[CentOS] Linux Firewall로 NAT 사용하기[Firewall / Wireshark]
Nowhere 와 Now here 의 차이

IT/ㄴ Linux

[CentOS] Linux Firewall로 NAT 사용하기[Firewall / Wireshark]

TIENE 2023. 8. 11. 07:16
반응형

[구성도 및 초기 설정]

 

1) Internet (공인) PC 설정

IP = 192.168.1.20/24
DNS = 192.168.1.132/24

 

2) Linux Server (NAT / Host GW)

Internet(공인) IP = 192.168.1.132/24
Internal(사설) IP = 10.10.10.253/24 (G/W)

 

3) Linux Server (Web / FTP Server)

Internal(사설) IP = 10.10.10.10/24
FTP User = ftpuser
FTP P/W = 1

 

 

4) Window Server (DNS Server)

Internal(사설) IP = 10.10.10.12/24


[설정 내용]

1) Linux#2 Firewall 설정

- [CentOS] Linux Telnet Server 설치 및 활용 [telnet / port / firewalld]에서 Firewall의 설정을 간략하게 볼 수 있다.

- 이번에는 [마스커레이딩 영역] 을 체크하고 [포트 포워딩] 영역에서 NAT 가 필요한 IP 및 Port를 지정한다.

- 다음 사진의 설정을 풀어보면 다음과 같다.

        [목적지]              [Port-Forwarding]
192.168.1.132:80 ----> 10.10.10.10:80 (TCP)
192.168.1.132:21 ----> 10.10.10.10:21 (TCP)
192.168.1.132:53 ----> 10.10.10.10:53 (TCP / UDP)

 

2) Linux#1 & Window Server Service 구축

[CentOS] Linux Apache 정리 및 구축[/etc/httpd/conf/httpd.conf ] 에서 Web Server 설정을 살펴볼 수 있다.

- [IT/ㄴ Windows] - [Win2003] DNS 서버 구성하기 [GNS3 연동] 에서 DNS Server 설정을 살펴볼 수 있다.

- 설정을 마무리하고, 하나씩 살펴보자.


 

2) FTP Server 접속

- Internet (공인) PC에서 FTP를 접속한다. 

 

ftp 192.168.1.132

- cmd 창을 열고, ftp 서비스를 운영하는 192.168.1.132 로 접속한다.

- 실제 FTP Server의 IP 는 10.10.10.10 이지만, NAT 설정을 통하여 접속이 가능하다.

 

- Firewall에서 지정한 Port 21을 통하여 정상적으로 접속한 기록을 확인할 수 있다.


 

3) Web Server 접속

3.1) Internet (공인) PC에서 www.tiene.vm으로 접속하려고 한다. 

- 입력한 도메인의 IP를 알아야하기 때문에, DNS Server 에게 쿼리를 보내어 도메인의 IP를 알아온다.

- Firewall에서 지정한대로 Port 53을 열어주었기 때문에 DNS Server에 요청할 수 있다.

- 실제 DNS Server의 IP 는 10.10.10.12 이지만, NAT 설정을 통하여 요청이 가능하다.

- DNS 요청 Queries를 살펴보면 A Record www.tiene.vm  에 대한 IP 를 요청한다.

 

 

- DNS Answers에는 Quries에 대한 정보를 담아서 전송한다.

- Web Server의 IP가 포함되었다.

 

3.2) Internet (공인) PC에서 10.10.10.10:80으로 접속하려고 한다. 

- DNS Query를 통해서 알아온 IP로 접속하여, Web Server에게 Web Page를 요청한다.

- 아래와 같이 정상적으로 요청 후 응답을 받아서 출력되었다.

 

 

- Firewall에서 지정한 Port 80을 통하여 정상적으로 접속한 기록을 확인할 수 있다.

 


4) Firewall Port Forwarding Disabling

- DNS(53)과 FTP(21)에 대한 Port Forwarding을 제거 후, 다시 접속해보았다.

- 다음과 같이 ICMP Code 10 이 출력되었다. Code 10에 대한 내용을 ChatGPT에게 물어보았다.

 

The log entries you posted earlier show that incoming TCP traffic with source port 1054 (SYN packets) to destination port 21 (FTP) is being rejected by the firewall with the "Host administratively prohibited" message. This means that the firewall rules or settings on your Linux system are configured to block or prohibit this type of traffic, possibly for security reasons.

- 이전에 입력한 Log는 출발지 포트 1054에서 목적지 포트 21로 들어오는 TCP 트래픽이 방화벽에 의해 거부당했다는 것을 보여준다. 즉, Linux 시스템에서 Firewall의 Rule이나 설정이 이와 같은 종류의 트래픽을 막거나 보호하기 위해 보안적인 이유로 구성되었다는 것을 의미한다. # 참고 : ChatGPT

* Firewalld에서 Log 확인

- Firewalld에서 FTP를 막고, 위에서 접속했던 것처럼 진행했을 때, Deny Log를 확인할 수 있었다.

- 192.168.1.20(Win2003-외부)에서 192.168.1.132:21으로 접속했지만 거부되었다.

Aug 10 12:36:20 Linux02 kernel: FINAL_REJECT: IN=ens33 OUT= MAC=00:0c:29:77:2f:98:00:0c:29:ba:f6:aa:08:00 SRC=192.168.1.20 DST=192.168.1.132 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=441 DF PROTO=TCP SPT=1052 DPT=21 WINDOW=64240 RES=0x00 SYN URGP=0 Aug 10 12:36:23 Linux02 kernel: FINAL_REJECT: IN=ens33 OUT= MAC=00:0c:29:77:2f:98:00:0c:29:ba:f6:aa:08:00 SRC=192.168.1.20 DST=192.168.1.132 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=442 DF PROTO=TCP SPT=1052 DPT=21 WINDOW=64240 RES=0x00 SYN URGP=0 Aug 10 12:36:29 Linux02 kernel: FINAL_REJECT: IN=ens33 OUT= MAC=00:0c:29:77:2f:98:00:0c:29:ba:f6:aa:08:00 SRC=192.168.1.20 DST=192.168.1.132 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=443 DF PROTO=TCP SPT=1052 DPT=21 WINDOW=64240 RES=0x00 SYN URGP=0

 

Firewall Log 생성 방법 참고

 

[CentOS 8] firewalld 사용법

윈도우즈 OS에서 기본 제공하는 Windows Defender 방화벽과 같이 CentOS에서도 firewalld라는 이름으로 시스템 방화벽을 제공하고 있습니다. iptable이라는 방화벽도 있지만, 이번 포스팅에서는 firewalld 사

mpjamong.tistory.com


 

반응형