ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LINUX 방화벽(Firewall) 서버 구축하는 방법[3편]
    System of Infra/Linux System 2022. 7. 15. 00:01
    반응형

    LINUX 로고이미지

    LINUX 방화벽(Firewall) 서버 구축하는 방법[3편]

    ★테스트 환경
    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 마스커레이딩 이라고 함.

     

    LINUX 로고이미지1

    ▶ 윈도우 서버#4(Host Client)에 FTP Filezilla 서버를 구축하여 내부망에서 FTP 서버로 접속시 어떤 아이피 정책을 통해서 연결이 되는지 테스트 해보도록 하겠습니다.
    해당 윈도우 호스트 서버의 아이피는 192.168.111.132로 설정되어 있는 것을 추가적으로 확인 후 테스트 결과를 보시면 됩니다.

     

    LINUX 로고이미지2

    ▶ 윈도우 서버#4(Host Client)에 Filezilla 32bit FTP-server를 설치해주도록 합니다.

     

    LINUX 로고이미지3

    ▶ 윈도우 서버#4(Host Client)에 pinetree라는 FTP 계정 하나를 생성합니다.

     

    LINUX 로고이미지4

    ▶ 윈도우 서버#4(Host Client)에 생성한 pinetree 계정에 패스워드를 생성하고 저장합니다.

     

    LINUX 로고이미지5

    ▶ 윈도우 서버#4(Host Client)의 공유 사용할 홈 디렉토리 폴더를 지정합니다. 해당 윈도우 서버에서는 C:\PerfLogs 디렉토리를 지정하도록 하겠습니다.

     

    LINUX 로고이미지6

    ▶ 윈도우 서버#4(Host Client) Powershell을 통해 FTP를 허용할 수 있도록 21번 FTP 포트를 활성화 해주도록 합니다.
    리눅스 서버#1(Client)
    [root@localhost /]# dnf -y install ftp
    CentOS-8 - AppStream                                                            4.5 kB/s | 4.3 kB     00:00    
    CentOS-8 - Base                                                                 2.0 kB/s | 3.9 kB     00:01    
    CentOS-8 - PowerTools                                                           2.3 kB/s | 4.3 kB     00:01    
    CentOS-8 - Plus                                                                 1.6 kB/s | 3.0 kB     00:01    
    CentOS-8 - Extras                                                               814  B/s | 1.5 kB     00:01    
    종속성이 해결되었습니다.
    ================================================================================================================
     꾸러미                아키텍처                 버전                          리포지토리                   크기
    ================================================================================================================
    Installing:
     ftp                   x86_64                   0.17-78.el8                   AppStream                    70 k
    
    거래 요약
    ================================================================================================================
    설치  1 꾸러미
    
    총 다운로드 크기 : 70 k
    설치 크기 : 112 k
    패키지 다운로드중:
    ftp-0.17-78.el8.x86_64.rpm                                                       30 kB/s |  70 kB     00:02    
    ----------------------------------------------------------------------------------------------------------------
    ...(생략)
      준비 중입니다  :                                                                                          1/1 
      Installing     : ftp-0.17-78.el8.x86_64                                                                   1/1 
      스크립틀릿 실행: ftp-0.17-78.el8.x86_64                                                                   1/1 
      확인 중        : ftp-0.17-78.el8.x86_64                                                                   1/1 
    
    설치됨:
      ftp-0.17-78.el8.x86_64                                                                                        
    
    완료되었습니다!
    ▶ 리눅스 서버#1(Client)에서 FTP 윈도우 서버에 접속 테스트를 위해서 FTP 패키지를 설치하도록 합니다.
    리눅스 서버#1(Client)
    [root@localhost /]# ftp 192.168.111.132
    Connected to 192.168.111.132 (192.168.111.132).
    220-FileZilla Server 0.9.60 beta
    220-written by Tim Kosse (tim.kosse@filezilla-project.org)
    220 Please visit https://filezilla-project.org/
    Name (192.168.111.132:root): pinetree
    331 Password required for pinetree
    Password:
    230 Logged on
    Remote system type is UNIX.
    ftp> pwd
    257 "/" is current directory.
    ▶ 리눅스 서버#1(Client)에서 윈도우 서버#(Host Client)로 FTP 접속이 성공된것을 확인할 수 있습니다.

    LINUX 로고이미지7

    ▶ 윈도우 서버#4(Host Client) Powershell에서 netstat /an 명령어를 수행하게 되면 192.168.111.100:45282에서 ESTABLISHD가 되었다는 결과 값이 보이게 됩니다.
    이것은 리눅스 서버#1(Client)의 내부망 아이피인 10.1.1.10에서 출발을 하였지만 리눅스 서버#3(Firewall Server) 10.1.1.1 내부망 게이트웨이를 통과하고 192.168.111.100 외부망 NAT의 아이피로부터 통신이 되기 때문에 결과적으로 마지막 확인된 아이피인 192.168.111.100을 통해서 FTP 서버에 접근이 된 것을 확인할 수 있습니다.

    ★방화벽 서버 구축 로직 순서
    1번 리눅스 서버#1(Client) IP address: 10.1.1.10 [내부망]

    2번 리눅스 서버#3(Firewall Server) IP address: 10.1.1.1 [내부망 게이트웨어]

    3번 리눅스 서버#3(Firewall Server) IP address: 192.168.111.100 [외부망 NAT]

    4. 윈도우 서버#(Host Client) IP address: 공인 IP [외부 네트워크]

     

    LINUX 로고이미지8

    ▶ 리눅스 서버#2(Web Server)에 웹 서버를 구축하고 외부의 윈도우 서버#(Host Client)에서 웹 서버로 접속할 수 있는 방화벽 정책 설정을 하기 전에 간단한 웹 서버 구축을 위해서 httpd 패키지를 설치합니다.

     

    LINUX 로고이미지9

    ▶ 리눅스 서버#2(Web Server)에서 웹 서버를 사용할 수 있도록 http 서비스에 대해서 방화벽 오픈을 해주도록 합니다. 서비스 활성화가 되면 저장을 합니다.
    리눅스 서버#3(Firewall Server)
    [root@localhost /]# iptables --table nat --append PREROUTING --proto tcp --in-interface ens160 --dport 80 --jump DNAT --to-destination 10.1.1.20
    
    [root@localhost /]# iptables-save > /etc/sysconfig/iptables
    ▶ 리눅스 서버#3(Firewall Server)에서 외부에서 80번 포트로 들어오는 아이피에 대해서 목적지를 10.1.1.20인 리눅스 서버#2(Web Server)에게만 오픈을 하겠다는 iptables의 정책을 설정합니다. 설정 후 iptables 설정을 저장하고 완료합니다.
    리눅스 서버#3(Firewall Server)
    [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/5)
    ▶ 리눅스 서버#3(Firewall Server)의 외부망으로 연결되는 인터페이스 ens160을 재활성화시켜줍니다.

     

    LINUX 로고이미지10

    ▶ 리눅스 서버#2(Web Server)에서 간단한 웹서버 구축을 위해서 /var/www/html 디렉터리에서 index.html 파일을 생성합니다.

     

    LINUX 로고이미지11

    ▶리눅스 서버#2(Web Server)에서 index.html 파일에  웹 서버에 접속 시 firewall web server test라는 문구가 출력되게 설정을 한 뒤 저장합니다.

     

    LINUX 로고이미지12

    ▶ 리눅스 서버#2(Web Server)에서 httpd 서비스를 재시작합니다. 그리고 재부팅 후에도 영구적으로 활성화될 수 있도록 enable 설정까지 합니다.

     

    LINUX 로고이미지13

    ▶ 윈도우 서버#4(Host Client)에서 웹서버에 접속을 하게 되면 index.html 파일에 작성했던 firewall web server test 문구가 출력되면서 간단하게 생성된 웹 서버에 접속이 성공한 것을 확인할 수 있습니다.

    2022.07.13 - [System of Infra/LINUX] - LINUX 방화벽(Firewall)서버 구축하는 방법[1편]

     

    LINUX 방화벽(Firewall)서버 구축하는 방법[1편]

    LINUX 방화벽(Firewall) 서버 구축하는 방법[1편] ★테스트 환경 1. 리눅스 서버#1(Client) IP address: 10.1.1.10[내부망] 2. 리눅스 서버#2(Web Server) IP address: 10.1.1.20 [내부망] 3. 리눅스 서버#3(..

    pinetreeday.tistory.com

    2022.07.14 - [System of Infra/LINUX] - LINUX 방화벽(Firewall)서버 구축하는 방법[2편]

     

    LINUX 방화벽(Firewall)서버 구축하는 방법[2편]

    LINUX 방화벽(Firewall) 서버 구축하는 방법[2편] ★테스트 환경 1. 리눅스 서버#1(Client) IP address: 10.1.1.10[내부망] 2. 리눅스 서버#2(Web Server) IP address: 10.1.1.20 [내부망] 3. 리눅스 서버#3(..

    pinetreeday.tistory.com

    2021.06.01 - [System of Infra/LINUX] - LINUX Centos 7 방화벽 설정 및 확인

     

    LINUX Centos 7 방화벽 설정 및 확인

    LINUX Centos 7 방화벽 설정 및 확인 [root@test_svr1 /]# netstat -ntl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0...

    pinetreeday.tistory.com

     

    PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.

    포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.

    반응형

    댓글

Designed by Tistory.