-
LINUX 방화벽(Firewall)서버 구축하는 방법[2편]System of Infra/Linux System 2022. 7. 14. 00:05반응형
LINUX 방화벽(Firewall) 서버 구축하는 방법[2편]
★테스트 환경
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 마스커레이딩 이라고 함.[root@localhost /]# vi /etc/sysctl.conf # sysctl settings are defined through files in # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/. # # Vendors settings live in /usr/lib/sysctl.d/. # To override a whole file, create a new file with the same in # /etc/sysctl.d/ and put new settings there. To override # only specific settings, add a file with a lexically later # name in /etc/sysctl.d/ and put new settings there. # # For more information, see sysctl.conf(5) and sysctl.d(5). net.ipv4.ip forward = 1 -> 추가
▶ 리눅스 서버#3(Firewall Server)의 /etc/sysctl.conf 파일에서 패킷 포워딩을 위해서 net.ipv4.ip forward = 1 항목을 추가해주도록 합니다.
LVS 라우터가 실제 서버에 네트워크 패킷을 올바르게 포워딩하기 위해 각각의 LVS 라우터 노드는 커널에서 IP 포워딩을 활성화시켜야 합니다.[root@localhost /]# echo 1 > /proc/sys/net/ipv4/ip_forward [root@localhost /]# cat /proc/sys/net/ipv4/ip_forward 1
▶ 리눅스 서버#3(Firewall Server)에서 echo 명령어를 통해 1로 지정하여 잘 출력이 되는지 확인합니다.
[root@localhost /]# iptables --policy FORWARD DROP [root@localhost /]# iptables --policy INPUT DROP [root@localhost /]# iptables --policy OUTPUT DROP
▶ 리눅스 서버#3(Firewall Server)에서 iptables를 사용하기 위해서 최초에 초기화를 진행합니다. 운영장비에서는 방화벽 정책이 초기화될 수 있으니, 확인 후 수행하시길 바랍니다. iptables에 관한 설명은 다음 포스팅에서 자세히 다루도록 하겠습니다.
[root@localhost /]# iptables --append INPUT --in-interface ens224 --source 10.1.1.0/24 --match state --state NEW,ESTABLISHED --jump ACCEPT [root@localhost /]# iptables --append OUTPUT --out-interface ens224 --destination 10.1.1.0/24 --match state --state NEW,ESTABLISHED --jump ACCEPT [root@localhost /]# iptables --append FORWARD --in-interface ens224 --source 10.1.1.0/24 --destination 0.0.0.0/0 --match state --state NEW,ESTABLISHED --jump ACCEPT [root@localhost /]# iptables --append FORWARD --in-interface ens160 --destination 10.1.1.0/24 --match state --state ESTABLISHED --jump ACCEPT
▶ 리눅스 서버#3(Firewall Server) iptables 정책에서 ens224 인터페이스에 INPUT, OUTPUT, FORWARD 정책을 설정하고 source, destination에 10.1.1.0/24 아이피를 부여합니다. 마지막으로 ens160 인터페이스에 FORWARD 정책을 설정해주고 마무리합니다.
[root@localhost /]# iptables --table nat --append POSTROUTING --out-interface ens160 --jump MASQUERADE
▶ 리눅스 서버#3(Firewall Server)에서 외부와 통신을 하게 될 인터페이스(ens160)에게 마스커레이딩 설정을 하도록합니다. 해당 테이블의 인터페이스는 NAT 변환을 통해서 공인아이피로 변환하게 됩니다.
[root@localhost /]# iptables-save > /etc/sysconfig/iptables
▶ 리눅스 서버#3(Firewall Server)에서 설정한 iptables 정책을 저장합니다.
[root@localhost /]# firewall-cmd --permanent --zone=public --add-masquerade Warning: ALREADY_ENABLED: masquerade success [root@localhost /]# firewall-cmd --reload success
▶ 리눅스 서버#3(Firewall Server)에서 마스커레이딩 포트를 사용하기 위해서 방화벽에서 해당 서비스를 영구적으로 활성화 한 뒤 방화벽 설정을 저장합니다.
[root@localhost /]# nmcli connection down ens224 연결 'ens224'이(가) 성공적으로 비활성화되었습니다(D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/6). [root@localhost /]# nmcli connection up ens224 연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/7)
▶ 리눅스 서버#3(Firewall Server)의 내부망과 외부망 인터페이스에 대해 네트워크 재활성화를 실행합니다.
[root@localhost /]#reboot
▶모든 설정이 완료가 되면 리눅스 서버#3(Firewall Server) 재부팅을 진행합니다.
▶ 리눅스 서버#2(Web Server)에서 구글 홈페이지에 접속을 하게 되면 내부망 아이피를 가지고 있지만 리눅스 서버#3(Firewall Server)의 정책을 통해서 외부의 홈페이지를 접속할 수 있게 됩니다.
반응형2022.07.13 - [System of Infra/LINUX] - LINUX 방화벽(Firewall)서버 구축하는 방법[1편]
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 메일서버 구축하는 방법[1편] - Sendmail/dovecot (8) 2022.07.17 LINUX 방화벽(Firewall) 서버 구축하는 방법[3편] (6) 2022.07.15 LINUX 방화벽(Firewall)서버 구축하는 방법[1편] (2) 2022.07.13 LINUX PROXY(프록시)서버 구현하는 방법 (18) 2022.07.11 LINUX NFS서버 구축하는 방법 (12) 2022.07.09