-
LINUX 방화벽(Firewall)서버 구축하는 방법[1편]System of Infra/Linux System 2022. 7. 13. 22:03반응형
LINUX 방화벽(Firewall) 서버 구축하는 방법[1편]
★테스트 환경
1. 리눅스 서버#1(Client)
IP address: 10.1.1.10[내부망]
2. 리눅스 서버#2(Web Server)
IP address: 10.1.1.20 [내부망]
3. 리눅스 서버#3(Firewall Server)
IP address: 10.1.1.1 [내부망 게이트웨이]
IP address: 192.168.111.100 [외부망 NAT]
4. 윈도우 서버#4(Host Client)
IP address: 공인 IP [외부 네트워크]
사설 IP 주소 범위
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
사설 IP주소가 외부의 인터넷을 접속할 때 사용할 수 있게 해주는 방법을 IP 마스커레이딩 이라고 함.리눅스 서버#3(Firewall Server) [root@localhost etc]# dnf -y install iptables-services 마지막 메타 데이터 만료 확인 : 0:00:19 전에 2022년 06월 26일 (일) 오후 05시 35분 23초. 종속성이 해결되었습니다. ======================================================================================================== 꾸러미 아키텍처 버전 리포지토리 크기 ======================================================================================================== Installing: iptables-services x86_64 1.8.2-9.el8_0.1 BaseOS 58 k Upgrading: iptables x86_64 1.8.2-9.el8_0.1 BaseOS 582 k iptables-ebtables x86_64 1.8.2-9.el8_0.1 BaseOS 67 k iptables-libs x86_64 1.8.2-9.el8_0.1 BaseOS 97 k 거래 요약 ======================================================================================================== 설치 1 꾸러미 업그레이드 3 꾸러미 총 다운로드 크기 : 805 k 패키지 다운로드중: (1/4): iptables-services-1.8.2-9.el8_0.1.x86_64.rpm 25 kB/s | 58 kB 00:02 (2/4): iptables-ebtables-1.8.2-9.el8_0.1.x86_64.rpm 28 kB/s | 67 kB 00:02 (3/4): iptables-libs-1.8.2-9.el8_0.1.x86_64.rpm 216 kB/s | 97 kB 00:00 (4/4): iptables-1.8.2-9.el8_0.1.x86_64.rpm 178 kB/s | 582 kB 00:03 -------------------------------------------------------------------------------------------------------- 합계 245 kB/s | 805 kB 00:03 트랜잭션 점검 실행 중 트랜잭션 검사가 성공했습니다. 트랜잭션 테스트 실행 중 트랜잭션 테스트가 완료되었습니다. 거래 실행 중 준비 중입니다 : 1/1 스크립틀릿 실행: iptables-libs-1.8.2-9.el8_0.1.x86_64 1/1 Upgrading : iptables-libs-1.8.2-9.el8_0.1.x86_64 1/7 스크립틀릿 실행: iptables-1.8.2-9.el8_0.1.x86_64 2/7 Upgrading : iptables-1.8.2-9.el8_0.1.x86_64 2/7 스크립틀릿 실행: iptables-1.8.2-9.el8_0.1.x86_64 2/7 Installing : iptables-services-1.8.2-9.el8_0.1.x86_64 3/7 ...(생략) 업그레이드 됨: iptables-1.8.2-9.el8_0.1.x86_64 iptables-ebtables-1.8.2-9.el8_0.1.x86_64 iptables-libs-1.8.2-9.el8_0.1.x86_64 설치됨: iptables-services-1.8.2-9.el8_0.1.x86_64 완료되었습니다!
▶ 리눅스 서버#3(Firewall Server)에서 방화벽 서버로써의 기능을 사용하기 위해서는 해당 서버가 방화벽 정책을 관리해야 합니다.
방화벽 서버에서 인바운드(IN), 아웃바운드(OUT) 정책을 관리하고 있어야 외부와 내부 간의 허용 정책을 통해 안전하게 시스템 운영을 할 수 있기 때문에 해당 서버에 iptables 서비스 패키지를 설치합니다.▶ 리눅스 서버#2(WebServer)의 기존 IP가 192.160.111.200으로 10.1.1.20의 내부망 아이피로 변경을 해보도록 하겠습니다.
리눅스 서버#2(WebServer) [root@localhost etc]# nmtui edit ens160
▶ 리눅스 서버#2(WebServer)에서 nmtui edit ens160을 통해서 네트워크 IP 편집기를 수행합니다.
▶ 리눅스 서버#2(WebServer)에서 설정되어 있는 아이피 주소를 삭제합니다.
▶ 리눅스 서버#2(WebServer)에 10.1.1.20 아이피를 설정한 뒤 게이트웨이는 10.1.1.1 마지막으로 DNS 주소는 구글 아이피 8.8.8.8로 설정한 뒤 저장합니다.
▶ 리눅스 서버#2(WebServer)의 nmcli connection 명령어를 통해서 네트워크 재활성화를 시켜줍니다. 네트워크 재활성화가 완료되면 기존 192.160.111.200에서 10.1.1.20 아이피로 변경된 것을 확인할 수 있습니다.
이것으로 리눅스 서버#2(WebServer)의 준비는 완료되었습니다.리눅스 서버#1(Client) [root@localhost /]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:20:71:88 brd ff:ff:ff:ff:ff:ff inet 172.30.1.50/24 brd 172.30.1.255 scope global dynamic noprefixroute ens160 valid_lft 3519sec preferred_lft 3519sec inet6 fe80::ec0a:3af4:3a46:1197/64 scope link noprefixroute valid_lft forever preferred_lft forever
▶ 리눅스 서버#1(Client) 서버의 네트워크(ens160)의 아이피가 172.30.1.50이므로 10.1.1.10으로 변경을 해주는 작업을 해줍니다.
리눅스 서버#1(Client) [root@localhost etc]# nmtui edit ens160
▶ 리눅스 서버#1(Client)에서도 동일하게 아이피 변경을 위해서 네트워크 IP 편집기를 수행합니다.
▶ 리눅스 서버#1(Client)에 10.1.1.10의 아이피를 설정하고 게이트웨이는 10.1.1.1 마지막으로 DNS 주소는 구글 주소인 8.8.8.8로 설정한 뒤 저장합니다.
리눅스 서버#1(Client) [root@localhost /]# nmcli connection down ens160 연결 'ens160'이(가) 성공적으로 비활성화되었습니다(D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/1). [root@localhost /]# nmcli connection up ens160 연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/4)
▶ 리눅스 서버#1(Client)의 nmcli connection 명령어를 통해서 네트워크 재활성화를 시켜줍니다. 네트워크 재활성화가 완료되면 기존 172.30.1.50에서 10.1.1.10 아이피로 변경된 것을 확인할 수 있습니다.
리눅스 서버#1(Client) [root@localhost /]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:20:71:88 brd ff:ff:ff:ff:ff:ff inet 10.1.1.10/8 brd 10.255.255.255 scope global noprefixroute ens160 valid_lft forever preferred_lft forever inet6 fe80::ec0a:3af4:3a46:1197/64 scope link noprefixroute valid_lft forever preferred_lft forever
▶ 리눅스 서버#1(Client)의 네트워크(ens160)의 아이피가 10.1.1.10으로 변경되었으며 이것으로 리눅스 서버#1(Client)의 준비는 완료되었습니다.
리눅스 서버#1(Client) [root@localhost /]# ping -c 3 10.1.1.20 PING 10.1.1.20 (10.1.1.20) 56(84) bytes of data. 64 bytes from 10.1.1.20: icmp_seq=1 ttl=64 time=0.547 ms 64 bytes from 10.1.1.20: icmp_seq=2 ttl=64 time=0.500 ms 64 bytes from 10.1.1.20: icmp_seq=3 ttl=64 time=0.512 ms --- 10.1.1.20 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 88ms rtt min/avg/max/mdev = 0.500/0.519/0.547/0.033 ms
▶ 리눅스 서버#1(Client)과 리눅스 서버#2(WebServer) 간의 내부망 아이피 설정은 완료가 되었기 때문에 두 서버 간의 ICMP PING 테스트를 통해서 통신이 되는지 확인합니다.
리눅스 서버#1(Client) -> 리눅스 서버#2(WebServer)로 PING 테스트합니다.▶ 리눅스 서버#3(Firewall Server)의 아이피를 두 개 부여하기 위해서 네트워크 포트 2개를 활용해야 합니다. ens160의 경우 외부와 통신이 되는 아이피를 할당, ens224의 경우는 내부와 통신을 하는 아이피를 할당해주도록 하겠습니다.
▶ 리눅스 서버#3(Firewall Server)의 아이피를 10.1.1.1로 할당하고 서브넷 마스크는 255.255.255.0 C클래스로 할당 마지막으로 게이트웨이는 10.1.1.1로 설정 후 저장합니다.
[root@localhost /]# vi /etc/sysconfig/network-scripts/ifcfg-ens224 HWADDR=00:0C:29:E7:47:05 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none IPADDR=10.1.1.1 PREFIX=24 GATEWAY=10.1.1.1 -> 삭제 DEFROUTE=yes ->삭제 PEERDNS=no PEERROUTES=no IPV4_FAILURE_FATAL=no IPV6INIT=no NAME=ens224 UUID=3bc2be09-c915-3fd7-90e5-dc4607ce9f52 ONBOOT=yes AUTOCONNECT_PRIORITY=-999
▶ 리눅스 서버#3(Firewall Server)의 /etc/sysconfig/network-scripts/ifcfg-ens224 설정에서 GATEWAY와 DEFROUTE 항목을 삭제합니다.
리눅스 서버#3(Firewall Server) [root@localhost /]# nmcli connection down ens224 연결 'ens224'이(가) 성공적으로 비활성화되었습니다(D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/2). [root@localhost /]# nmcli connection up ens224 연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/5)
▶ 리눅스 서버#3(Firewall Server)의 mcli connection 명령어를 통해서 네트워크 재활성화를 시켜줍니다. 네트워크 재활성화가 완료되면 설정된 아이피가 해당 어댑터에 활성화되는 것을 확인할 수 있습니다.
리눅스 서버#3(Firewall Server) [root@localhost /]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:e7:47:fb brd ff:ff:ff:ff:ff:ff inet 192.168.111.100/24 brd 192.168.111.255 scope global noprefixroute ens160 valid_lft forever preferred_lft forever inet6 fe80::4beb:7287:7a69:cde2/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:e7:47:05 brd ff:ff:ff:ff:ff:ff inet 10.1.1.1/24 brd 10.1.1.255 scope global noprefixroute ens224 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fee7:4705/64 scope link
▶ 리눅스 서버#3(Firewall Server)의 ens160(192.168.111.100) 외부망 아이피 부여, ens224(10.1.1.1) 내부망 아이피 부여가 된 것을 확인할 수 있습니다.
2022.07.14 - [System of Infra/LINUX] - LINUX 방화벽(Firewall)서버 구축하는 방법[2편]
2022.07.15 - [System of Infra/LINUX] - LINUX 방화벽(Firewall) 서버 구축하는 방법[3편]
2021.06.01 - [System of Infra/LINUX] - LINUX Centos 7 방화벽 설정 및 확인
PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.
포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.
반응형'System of Infra > Linux System' 카테고리의 다른 글
LINUX 방화벽(Firewall) 서버 구축하는 방법[3편] (6) 2022.07.15 LINUX 방화벽(Firewall)서버 구축하는 방법[2편] (8) 2022.07.14 LINUX PROXY(프록시)서버 구현하는 방법 (18) 2022.07.11 LINUX NFS서버 구축하는 방법 (12) 2022.07.09 LINUX SMB 리눅스 공유볼륨 윈도우 드라이브 연결하기 (2) 2022.07.08