나의 공부기록

[VMware] 16-2. VyOS Firewall 과제 본문

CS/Linux

[VMware] 16-2. VyOS Firewall 과제

나의 개발자 2025. 2. 10. 10:57

문제

기존 VyOS는 Suspend 해두시고, VyOS-exam을 만들어서 위의 그림과 같이 구성해 보세요.
사젠에 잘 되는 것을 확인한 스샷과 1,2,3,4,5,6을 각각 구성한 후의 스샷을 엮어서 제출하세요.

 

풀이

더보기

1. eth0 설정

vyos@vyos$ conf

# IP 지정
vyos@vyos#set int eth eth0 address 211.183.3.252/24

 

2. gateway 설정

# default-gateway 설정
vyos@vyos# set system gateway-address 211.183.3.2

 

3. ssh 포트 설정 & 반영(commit)

# ssh port 설정
vyos@vyos# set service ssh port 22

# 반영
vyos@vyos#commit

 

4. 외부 접속 가능 여부 확인

  • 외부 접속 가능 여부 확인
  • ssh 접속 가능 확인

 

5. eth1 NIC 추가 & 설정

  • NIC 추가
  • eth1 IP 설정
vyos@vyos# set int eth eth1 address 10.10.3.252/24
[edit]
vyos@vyos# commit
[ interfaces ethernet eth1 duplex auto ]
Cannot get current device settings: Operation not supported
  not setting autoneg

[edit]

 

6. eth2 NIC 추가 & 설정

  • NIC 추가
  • eth2 IP 설정
vyos@vyos# set int eth eth2 address 10.10.4.252/24
[edit]
vyos@vyos# commit
[ interfaces ethernet eth2 duplex auto ]
Cannot get current device settings: Operation not supported
  not setting autoneg

[edit]

 

7. host-connection 해제

  • 꼼수 해제

8. zone description 설정

vyos@vyos# set int eth eth0 description public
[edit]
vyos@vyos# set int eth eth1 description private
[edit]
vyos@vyos# set int eth eth2 description dmz    
[edit]
vyos@vyos# commit
[edit]

 

9. mint ➡️ 외부 접속 ❌

 

10. PAT 설정

  • 내부(private) PAT 설정
# private에 대한 PAT
vyos@vyos# set nat source rule 10 source address 10.10.3.0/24
[edit]
vyos@vyos# set nat source rule 10 outbound-interface eth0
[edit]
vyos@vyos# set nat source rule 10 translation address 211.183.3.252
[edit]
vyos@vyos# commit
[edit]
  • 내부(dmz) PAT 설정
# dmz에 대한 PAT
vyos@vyos# set nat source rule 20 source address 10.10.4.0/24
[edit]
vyos@vyos# set nat source rule 20 outbound-interface eth0
[edit]
vyos@vyos# set nat source rule 20 translation address 211.183.3.252
[edit]
vyos@vyos# commit
[edit]
  • PAT 설정 확인
  • mint ➡️ 외부(public) 통신 가능
  • web ➡️ 외부(public) 통신 가능

 

11. Mint 서버 설정

  • root 권한 설정
user1@mint : ~$sudo passwd root
[sudo] password for user1:
New Password : # test123
Retype new password : # test123
passwd: password updated successfully
  • ssh 서비스 다운로드
root@mint# apt install -y openssh-server

 

 12. DNAT

  • 2개만 해주면 됨❗
  • public ➡️ private : SSH
vyos@vyos# set nat destination rule 100 inbound-interface eth0
[edit]
vyos@vyos# set nat destination rule 100 destination port 222  
[edit]
vyos@vyos# set nat destination rule 100 protocol tcp        
[edit]
vyos@vyos# set nat destination rule 100 translation address 10.10.3.100
[edit]
vyos@vyos# set nat destination rule 100 translation port 22            
[edit]
vyos@vyos# commit
[edit]
  • public ➡️ dmz : ftp
vyos@vyos# set nat destination rule 200 inbound-interface eth0
[edit]
vyos@vyos# set nat destination rule 200 protocol tcp
[edit]
vyos@vyos# set nat destination rule 200 translation address 10.10.4.80
[edit]
vyos@vyos# set nat destination rule 200 translation port 21
[edit]
vyos@vyos# set nat destination rule 200 destination port 21
[edit]
vyos@vyos# commit
[edit]

 

  • public ➡️ private : mint SSH 접근 확인
  • private ➡️ dmz : http & telnet 확인
  • public ➡️ dmz : ftp 확인
telnet 확인

13. Zone 설정

vyos@vyos# set zone-policy zone public interface eth0
[edit]
vyos@vyos# set zone-policy zone private interface eth1
[edit]
vyos@vyos# set zone-policy zone dmz interface eth2
[edit]
vyos@vyos# commit
[edit]
  • 모든 통신 끊김

14. 1번 설정 & 반영

  • 설정
vyos@vyos# set firewall name PUBLIC_TO_PRIVATE rule 10 action accept 
[edit]
vyos@vyos# set firewall name PUBLIC_TO_PRIVATE rule 10 protocol tcp  
[edit]
vyos@vyos# set firewall name PUBLIC_TO_PRIVATE rule 10 destination port 222
[edit]
  • 반영
vyos@vyos# set zone-policy zone private from public firewall name PUBLIC_TO_PRIVATE
[edit]

15. 2번 정책

  • 설정
vyos@vyos# set firewall name PRIVATE_TO_PUBLIC rule 20 action accept 
[edit]
vyos@vyos# set firewall name PRIVATE_TO_PUBLIC rule 20 protocol all  
[edit]
vyos@vyos# set firewall name PRIVATE_TO_PUBLIC rule 20 state established enable
[edit]
vyos@vyos# set firewall name PRIVATE_TO_PUBLIC rule 20 state related enable
[edit]
  • 반영
vyos@vyos# set zone-policy zone public from private firewall name PRIVATE_TO_PUBLIC
[edit]

 

16. public  ➡️private : SSH 접속 확인 ⭕

 

17. 3번 정책 설정 & 반영

  • 설정
vyos@vyos# set firewall name PRIVATE_TO_DMZ rule 30 action accept 
[edit]
vyos@vyos# set firewall name PRIVATE_TO_DMZ rule 30 protocol tcp  
[edit]
vyos@vyos# set firewall name PRIVATE_TO_DMZ rule 30 de          
description  destination  
[edit]
vyos@vyos# set firewall name PRIVATE_TO_DMZ rule 30 destination port 80,23 
[edit]
  • 반영
vyos@vyos# set zone-policy zone dmz from private firewall name PRIVATE_TO_DMZ
[edit]

 

18. 4번 정책 설정 & 반영

  • 설정
vyos@vyos# set firewall name DMZ_TO_PRIVATE rule 40 action accept 
[edit]
vyos@vyos# set firewall name DMZ_TO_PRIVATE rule 40 state established enable
[edit]
vyos@vyos# set firewall name DMZ_TO_PRIVATE rule 40 state related enable
[edit]
vyos@vyos# set firewall name DMZ_TO_PRIVATE rule 40 protocol all        
[edit]
  • 반영
vyos@vyos# set zone-policy zone private from dmz firewall name DMZ_TO_PRIVATE
[edit]
vyos@vyos# commit
[edit]

 

19. private ➡️ dmz : 접속 확인

  • httpd 접속 확인
  • telnet 접속 확인

 

20. 5번 정책

vyos@vyos# set firewall name DMZ_TO_PUBLIC rule 50 action accept 
[edit]
vyos@vyos# set zone-policy zone public from dmz firewall name DMZ_TO_PUBLIC
[edit]

 

21. 6번 정책 

  • 설정
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 60 action accept 
[edit]
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 60 protocol tcp  
[edit]
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 60 destination port 20,21
[edit]

# 돌아오는 정책 필요
# public에서 dmz로 가는 ftp 트래픽을 위한 설정
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 70 action accept         
[edit]
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 70 state established enable 
[edit]
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 70 state related  enable 
[edit]
vyos@vyos# set firewall name PUBLIC_TO_DMZ rule 70 protocol all          
[edit]
  • 반영
vyos@vyos# set zone-policy zone dmz from public firewall name PUBLIC_TO_DMZ
[edit]
vyos@vyos# commit
[edit]

 

22. 통신 확인

  • web ➡️ 외부 ⭕ / web ➡️ mint ❌
  • ftp 접속 확인(client ➡️ web)