AWS Cloud School 13기 47일차

Forever 김·2026년 3월 6일

AWS Cloud School

목록 보기
43/97

TIL

배운 내용

어제와 동일하게 VyOS를 배웠고 Zone 기반 방화벽을 배웠다.

Zone 기반 방화벽

우리는 총 3개의 존(zone) public,private, DMZ를 구성하여, 각 존에 방화벽을 활성화 할 예정이다.

방화벽 설정 전 선행되어야 하는 기본 설정이 있다.

  • 방화벽을 설정전 테스트할 VM들끼리 통신이 되는지를 확인한다.

먼저 vyos에서 존을 정의해준다

vyos@vyos# set zone-policy zone public interface eth0
vyos@vyos# set zone-policy zone private interface eth1
vyos@vyos# set zone-policy zone dmz interface eth2
# public,private,dmz 존 정의.

vyos@vyos# commit
# 반영

존을 반영하자마자 각 xshell에서 접속이 끊긴다. 방화벽 설정으로

이제 각 정책을 구성해서 그림과 같이 되도록 한다.

1.PUBLIC -> PRIVATE

  1. 정책생성
vyos@vyos# set firewall name PUBLIC_TO_PRIVATE rule 10 action accept
vyos@vyos# set firewall name PUBLIC_TO_PRIVATE rule 10 state established enable
vyos@vyos# set firewall name PUBLIC_TO_PRIVATE rule 10 state related enable
vyos@vyos# set firewall name PUBLIC_TO_PRIVATE rule 10 protocol all
  • action accept = 허용하겠다, protocol all = 모든 프로토콜중에서 established+related '만'
  • related? ftp의 경우에는 20,21번 이외에 추가적으로 '랜덤한 포트'가 할당되어 실사용자들이 데이터를 주고받는다. 따라서 프로토콜의 포트(20,21) 이외에 해당 프로토콜을 수행하기 위해 추가적으로 필요한 포트를 related 라고 부른다.
    = 배려해주는 정책.
  1. 정책을 적용
vyos@vyos# set zone-policy zone private from public firewall name PUBLIC_TO_PRIVATE

2. PRIVATE -> PUBLIC

vyos@vyos# set firewall name PRIVATE_TO_PUBLIC rule 20 action accept
# 특정 프로토콜 이하를 명시하지 않으면 '모든 트래픽을 다 허용하겠다' 라는 뜻.
# 2번 정책 = 모든 트래픽 다 허용.

vyos@vyos# set zone-policy zone public from private firewall name PRIVATE_TO_PUBLIC
# 정책 적용.

vyos@vyos# commit

이후 확인을 위해 DNAT를 통해 xshell에서 mint로의 접속이 차단되었는지 확인 하고 mint에서 ping 8.8.8.8로 나가서 2. 정책이 설정되었는지도 확인한다.

3. PRIVATE -> DMZ

vyos@vyos# set firewall name PRIVATE_TO_DMZ rule 30 action accept
# 모두 허용

vyos@vyos# set zone-policy zone dmz from private firewall name PRIVATE_TO_DMZ

vyos@vyos# commit

3번 정책만 세워서는 mint(private) 에서 dmz서버(dmz)로 통신이 안된다.

4. DMZ -> PRIVATE

vyos@vyos# set firewall name DMZ_TO_PRIVATE rule 40 action accept
vyos@vyos# set firewall name DMZ_TO_PRIVATE rule 40 protocol all  
vyos@vyos# set firewall name DMZ_TO_PRIVATE rule 40 state established enable 
vyos@vyos# set firewall name DMZ_TO_PRIVATE rule 40 state related enable
# 4번 정책

vyos@vyos# set zone-policy zone private from dmz firewall name DMZ_TO_PRIVATE
# 적용
vyos@vyos# commit

5. DMZ -> PUBLIC

vyos@vyos# set firewall name DMZ_TO_PUBLIC rule 50 action accept 
vyos@vyos# set firewall name DMZ_TO_PUBLIC rule 50 protocol all 
vyos@vyos# set firewall name DMZ_TO_PUBLIC rule 50 state established enable 
vyos@vyos# set firewall name DMZ_TO_PUBLIC rule 50 state related enable
# 5번 정책 생성

vyos@vyos# set zone-policy zone public from dmz firewall name DMZ_TO_PUBLIC

6. PUBLIC -> DMZ

vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 60 action accept 
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 60 protocol
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 60 protocol tcp
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 60 destination port 22,80
# 정책 생성. 허용하겠다. tcp중에서, 목적지포트가 22,80인 애들만! = 22,80 허용
# destination 포트는 = DNAT에서의 translation 포트 = 내부 포트

vyos@vyos# set zone-policy zone dmz from public firewall name PUBLIC_TO_DMZ
vyos@vyos# commit

이렇게해서 zone 방화벽에 대해서 배웠다.
오늘은 이론보다는 실습하는 시간이 조금 많았다. 그래서 더 재미있었고 의미있었다 난 개발보다 이런 엔지니어가 더 맞는것같고 재미있는것 같다.

profile
나를 한줄로

0개의 댓글