본문 바로가기
Linux

7월 27일 Linux(1)

by 개발자 영만 2022. 7. 27.

방화벽 컴퓨터 만들기


 

보안을 위한 네트워크 설계

  • 방화벽이란
    • 외부의 공개된 네트워크와 내부의 사설 네트워크 사이에 자리잡고, 외부와 내부에 전달되는 트래픽을 ‘정책(Policy)’에 의해서 허용/거부하는 역할을 하는 컴퓨터나 장치를 말함
  • 내부의 사용자는 외부의 인터넷을 이용하면서, 외부에서는 내부로 침입할 수 없게 하는 방법 중 가장 보편적으로 많이 사용하는 방법이 사설IP(Private IP)라고 흔히 불리는 nonroutable 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 마스커레이딩(Masquerading)이라는 함
  • 보편적인 회사 네트워크 구성

리눅스 방화벽 구축

  • 실습에서 구현할 네트워크의 구성

실습

  • 네트워크는 브릿지모드로 변경 후 IP 변경
  • ServerB - 10.10.10.20
    • nano /etc/netplan/00-installer-config.yaml

  • Client - 10.10.10.10

  • Server는 IP를 두개 사용 - 192.168.111.100 / 10.0.0.0
    • Virtual Machine Settings에서 Network Adapter를 추가하고 브릿지모드로 변경(하나는 NAT, 하나는 Bridged)

  • WinClient는 기존 IP 사용 - 192.168.111.x

Server

  • 사설 네트워크의 컴퓨터들이 외부의 인터넷을 사용할 수 있도록 마스커레이드를 설정
  • 마스커레이드 허가 관련 설정은 sysctl 파일에서
    • gedit /etc/sysctl.conf
    • 28행 #net.ipv4.ip_forward=1 주석 제거
    • echo 1 > /proc/sys/net/ipv4/ip_forward - 설정한 내용이 바로 IP 포워딩될 수 있도록
    • cat /proc/sys/net/ipv4/ip_forward - 결과가 1이 나오는지 확인

  • FORWARD, INPUT, OUTPUT의 기본 정책을 DROP으로 설정한다.
    • iptables --policy FORWARD DROP
    • iptables --policy INPUT DROP
    • iptables --policy OUTPUT DROP

  • 내부 사설 네트워크와 연결되는 장치인 Server의 ens33와 외부 인터넷과 연결되는 장치인 ens32에 모든 패킷이 통과하도록 설정.
    • iptables --append INPUT --in-interface ens33(내부사설네트워크와 연결되는 네트워크 장치) --source 10.10.10.0/24 --match state --state NEW,ESTABLISHED --jump ACCEPT
    • iptables --append OUTPUT --out-interface ens33(내부사설네트워크와 연결되는 네트워크 장치) --destination 10.10.10.0/24 --match state --state NEW,ESTABLISHED --jump ACCEPT
    • iptables --append FORWARD --in-interface ens33(내부 사설네트워크와 연결되는 네트워크 장치) --source 10.10.10.0/24 --destination 0.0.0.0/0 --match state --state NEW,ESTABLISHED --jump ACCEPT
    • iptables --append FORWARD --in-interface ens32(외부 인터넷과 연결되는 네트워크 장치) --destination 10.10.10.0/24 --match state --state NEW,ESTABLISHED --jump ACCEPT

  • 외부 인터넷으로 연결되는 장치인 ens32에 마스커레이드를 허가. 그러면 내부 사설 네트워크와 연결되는 장치인 ens33에 연결된 모든 컴퓨터는 외부와 인터넷이 가능하도록 연결됨
    • iptables --table nat --append POSTROUTING --out-interface ens32 --jump MASQUERADE
  • iptables-save > /etc/iptables.rules 로 지금까지 설정한 내용 저장

  • 과정을 요약해서 정리하자면
    • 마스커레이드 허가 관련 설정: sysctl 파일 수정
    • 기존정책관련 정리(제거)
    • 정책 적용 INPUT ens33
      OUTPUT ens33
      FORWARD ens33
      FORWARD ens32
    • 마스커레이드 허가

Client

  • Firefox 웹 브라우저로 www.google.com에 접속하면 잘 접속된다.
  • Client(10.10.10.10) -> 게이트웨이(10.10.10.1) -> 방화벽 공인 IP(192.168.111.100) -> 외부 인터넷 순으로 접속
  • traceroute www.google.com 으로 테스트

 

'Linux' 카테고리의 다른 글

7월 28일 Linux  (0) 2022.07.28
7월 27일 Linux(2)  (0) 2022.07.27
7월 26일 Linux(2)  (0) 2022.07.26
7월 26일 Linux(1)  (0) 2022.07.26