6. 방화벽 설정 및 테스트(firewalld)
사용 버전
들어가기 앞서 사용한 OS와 Firewalld Version 입니다.
구분 | Version |
GNS3 | 2.2.14 |
CentOS | CentOS Linux release 7.8.2003 (Core) |
Firewalld | 0.6.3 |
원래는 iptables로 진행을 하는게 좀더 차근차근 다가가는 느낌인데
정신을 차리고보니 Firewalld를 먼저 하고있었습니다.
iptables도 나중에 시간이 된다면 한번 도전해 보겠습니다.
앞에서 진행을 했을 때 보다 GNS3 버전을 한단계 올려서 진행을 하였습니다.
버전을 올려서 그런건지 아닌건지 오류가 상당히 많았습니다.
그래서 진행하는데 시간이 조금 오래걸렸습니다.
아무튼 이제 서론을 마치고 바로 시작해 보겠습니다.
Virtual Machin 추가
일단 방화벽을 GNS3에서 사용 할 수 있도록 추가해야 합니다.
방화벽은 CentOS의 Firewalld를 사용 할 예정입니다.
일단 저는 CentOS 7의 minimal 버전으로 설치 후 아래의 명령어로만 설정을 진행하였습니다.
yum install net-tools // ifconfig
yum install bash-completion // 자동완성
yum -y upgrade // 업그레이드
설치가 완료됬다면 가상머신을 GNS3에 추가시켜 봅시다.
먼저 저는 VMware를 사용했는데요 Virtual Box를 사용하여 했을때는 호환성이 문제인지
아니면 제가 설정을 잘 못 한건지 진행이 잘 안되서 VMware를 사용하여 진행하였습니다.
아마도 개인차이가 있을것으로 보입니다.
혹시 VirtualBox를 사용하신다고 해도 VMware 가상머신 추가와 거의 똑같으니 큰 문제는 없을 것 같습니다.
다시 넘어와서 GNS3의 위쪽의 메뉴탭 중 Edit → Preferences 순으로 들어오시면 위와 같은 창이 뜹니다.
왼쪽의 메뉴에서 VMware → VMware VMs를 눌러주시면 추가된 것이 없으면 저와 똑같은 화면일겁니다.
여기서 New버튼을 눌러 추가를 실행해줍니다.
여기서는 볼 것도 없이 Next> 버튼을 바로 눌러줍시다.
여기서 VM list 콤보박스를 눌러주시면 VMware에 있는 모든 VM들이 나오게 됩니다.
저는 VM이름을 Firewalld로 해주었고 원하는 VM을 선택 후 Finish를 눌러주시면 됩니다.
추가가 완료되면 VM이름과 함께 빈 자리에 올라와 있는 것을 볼 수 있습니다.
저는 Firewalld의 Zone기능을 이용해 총 3개의 Zone으로 나눌 예정입니다.
그러니 총 3개의 NIC가 있어야 하기 때문에 NIC도 추가를 해줍니다.
눌러서 들어오신 후 Network 탭으로 넘어갑니다.
Adapters를 3개로 늘린 후 아래의 Allow GNS3를 체크 하고 Configure custom adapters를 누릅니다.
그럼 이렇게 늘린 NIC까지 합해서 3개의 NIC가 있는데 여기서 Adapter type을 오른쪽과 같이 default로 바꿔줍니다.
저는 이렇게 안하니까 ping이 잘 넘어가지 않는 등 여러 문제를 겪었습니다만 개인의 환경에 차이가 있을 수 있습니다.
다음으로 OK를 누르고 설정을 완료해 줍시다.
다시 Preferences 메뉴로 넘어와 VMware -> Advanced local settings 로 넘어갑시다.
여기서는 VMware에서 GNS3 전용으로 사용 할 인터페이스를 설정하게 됩니다.
저는 가장 마지막부터 총 4개를 사용하였습니다. (vmnet16 ~ vmnet19)
원하는 어뎁터 범위를 지정 후 바로 옆 Configure를 누르면 설정이 진행 됩니다.
기다리고 있으면 알아서 설정이 끝나게 됩니다.
설정이 모두 끝난 후 적용하시고 메인화면으로 나오시면 Device 탭에 VM이 추가된 것을 볼 수 있습니다.
망 구성
일단 이런 모양으로 테스트를 진행해볼 예정입니다.
참고로 OutsideR1은 Cisco IOU L3를 사용하였습니다.
방화벽 기본 설정
위의 망 구성을 충족시키기 위해 방화벽에 기본적이 설정을 해주어야 합니다.
일단은 GNS3에서가 아닌 VMware에서 따로 먼저 VM을 실행하여 설정을 해줍시다.
일단 각 Zone에 인터페이스 IP를 먼저 설정해 줍시다.
설정 명령어는 아래와 같습니다.
[root@firewall ~]# vi /etc/sysconfig/network-script/ifcfg-ens[33~35] // 33에서 35까지
네트워크 어뎁터는 개인 환경에 차이가 있습니다.
'ifconfig' 명령어나 'ip' 명령어로 확인 후 진행하면 되겠습니다.
// ens33(external)
TYPE=Ethernet
#BOOTPROTO=dhcp // 주석달고 아래에 none으로 추가
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ad131619-0722-4c90-b360-5eed00778849
DEVICE=ens33
ONBOOT=yes // no로 되어있다면 yes로 바꿔주기
//---------------------------- 아래부터 새로 추가
IPADDR=1.1.1.2
PERFIX=24
GATEWAY=1.1.1.1
ZONE=external
// ens34(dmz)
TYPE=Ethernet
#BOOTPROTO=dhcp // 주석달고 아래에 none으로 추가
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens34
UUID=e1133c4c-ed67-4648-b12d-d9fb3e9b536e
DEVICE=ens34
ONBOOT=yes // no로 되어있다면 yes로 바꿔주기
//---------------------------- 아래부터 새로 추가
IPADDR=2.2.2.1
PREFIX=24
ZONE=dmz
// ens35(trusted)
TYPE=Ethernet
#BOOTPROTO=dhcp // 주석달고 아래에 none으로 추가
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens35
UUID=939e9858-b82d-4bd3-b1c7-87e152c76609
DEVICE=ens35
ONBOOT=yes // no로 되어있다면 yes로 바꿔주기
//---------------------------- 아래부터 새로 추가
IPADDR=3.3.3.1
PREFIX=24
ZONE=trusted
원래의 상태에서 주석 하나 그리고 아래에 IP와 Zone을 추가해주면 끝입니다.
추가적으로 Zone끼리 통신을 하기위하여 ip forwarding을 활성화 해주어야 합니다.
활성방법은 아래와 같습니다.
[root@firewall ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
[root@firewall ~]# sysctl -w net.ipv4.ip_forward=1
[root@firewall ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
바꾼 뒤에는 GNS3에서 직접 켜주기 전까지 꺼두면 됩니다.
[root@firewall ~]# shutdown now
테스트
여기서 모든 장비의 전원을 켜 주시고 Firewalld VM을 아래의 명령어들로 확인해 봅시다.
[root@firewall ~]# ifconfig
[root@firewall ~]# firewall-cmd --get-active-zones
이렇게 잘 설정이 되었다면 다음으로 다른 Device 설정입니다.
[OutsideR1]
OutsideR1#conf t
OutsideR1(config)#int e0/0
OutsideR1(config-if)#ip addr 1.1.1.1 255.255.255.0
OutsideR1(config-if)#no sh
OutsideR1(config-if)#do show ip int br
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 1.1.1.1 YES manual up up
Ethernet0/1 unassigned YES NVRAM administratively down down
Ethernet0/2 unassigned YES NVRAM administratively down down
Ethernet0/3 unassigned YES NVRAM administratively down down
Ethernet1/0 unassigned YES NVRAM administratively down down
Ethernet1/1 unassigned YES NVRAM administratively down down
Ethernet1/2 unassigned YES NVRAM administratively down down
Ethernet1/3 unassigned YES NVRAM administratively down down
Serial2/0 unassigned YES NVRAM administratively down down
Serial2/1 unassigned YES NVRAM administratively down down
Serial2/2 unassigned YES NVRAM administratively down down
Serial2/3 unassigned YES NVRAM administratively down down
OutsideR1(config-if)#do copy r s
OutsideR1(config-if)#
[DMZ PC]
DMZ> ip 2.2.2.2/24 2.2.2.1 // IP : 2.2.2.2 Prefix : 255.255.255.0 gateway : 2.2.2.1
Checking for duplicate address...
PC1 : 2.2.2.2 255.255.255.0 gateway 2.2.2.1
DMZ> save // 설정 저장(껏다 켯을때 저장된 설정 불러옴)
Saving startup configuration to startup.vpc
. done
[Trusted PC]
Trusted> ip 3.3.3.2/24 3.3.3.1 // IP : 3.3.3.3 Prefix : 24 gateway : 3.3.3.1
Checking for duplicate address...
PC1 : 3.3.3.2 255.255.255.0 gateway 3.3.3.1
Trusted> save // 설정 저장(껏다 켯을때 저장된 설정 불러옴)
Saving startup configuration to startup.vpc
. done
Trusted>
여기까지 전부 설정이 되었다면 ping테스트로 잘 통신이 되는지 확인해 보겠습니다.
DMZ Zone과 Trusted Zone에서는 외부 1.1.1.1(External)로 잘 나가는 것을 볼 수 있습니다.
하지만 외부의 OutsideR1에서는 내부의 DMZ나 Trusted로 접근이 불가 합니다.
아무 설정도 하지 않았는데 왜 이런 결과가 나왔을까요?
이유는 Firewalld에서 Zone의 기본적인 Rule을 만들어 놓아서 그렇습니다.
기본적으로 External Zone에서 내부로의 접근을 SSH를 제외하고 전부 막게 되어있어 위와 같은 결과가 나타나게 됩니다.
다른 Zone도 마찬가지로 기본적인 Rule이 다 있고 여러개의 Zone도 있지만
다음에 정리하여 올리도록 하겠습니다.
다음은 Firewalld에서 Rule설정을 해보겠습니다.
감사합니다!
'네트워크 > 관제망 구축' 카테고리의 다른 글
오류. GNS VM Server 연결 안됨 (1) | 2020.09.09 |
---|---|
5. GNS3 Network Test (4) | 2020.09.09 |
오류. Solar-PUTTY 창 분리 해결 (1) | 2020.08.26 |
4-1. IOU Device 추가 (3) | 2020.08.26 |
4. GNS3 Insert Device (4) | 2020.08.14 |