방화벽이란?

IP 주소와 Port 번호를 기반으로 필터링 정책(방화벽 룰 셋)에 따라 패킷 필터링을 수행하는 보안 장비

  • 접근 제어(Access Control) / 패킷 필터링
  • NAT
  • 액세스 기록 기능
  • 사용자 인증
  • 암호화 + 터널링

방화벽 정책

트래픽 방향사용자송신지 IP수신지 IP허용포트시간대
외부 → 내부
외부 → DMZ모든 사용자모든 네트워크DMZ 네트워크HTTP, SMTP, POP3모든 시간대
내부 → 외부내부 사용자내부 네트워크모든 네트워크차단 권고하는 포트를 제외한 대부분의 포트를 허용근무 시간에 특정 사이트에 대해 접속을 차단
내부 → DMZ인증을 거친 사용자내부 네트워크DMZ 네트워크SSH, SFTP, HTTP, SMTP, POP3모든 시간대
DMZ → 외부DMZ 네트워크 사용자DMZ 네트워크모든 네트워크차단 권고하는 포트를 제외한 대부분의 포트를 허용모든 시간대
DMZ → 내부DMZ 네트워크의 특정 IP내부 네트워크의 특정 IP내부 네트워크의 서비스 포트로 제한모든 시간대

방화벽 한계

  • 내부 네트워크에 존재하는 악의적인 공격은 막을 수 없음
  • 방화벽을 경유하지 않는 공격을 막을 수 없음
  • 방화벽에 방어 규칙에 포함되지 않는 공격을 막을 수 없음
  • 데이터에 실려 있는 악성 코드나 바이러스를 막을 수 없음 ⇒ 메일에 첨부된 악성 코드를 막을 수 없음
  • DoS와 DDoS 공격을 막을 수 없음 ⇐ 정상적인 서비스 포트를 이용한 공격이므로

iptables

iptables는 리눅스 시스템에서 네트워크 패킷을 필터링하고 조작하는 데 사용되는 유틸리티. 주로 방화벽 규칙을 설정하고 관리하는 데에 쓰인다. iptables는 커널 수준에서 네트워크 트래픽을 처리하며, 패킷을 검사하고 필터링하여 정책에 따라 허용하거나 거부한다.

iptables COMMAND <chain> -p <protocol> -s <source> -d <destination> -j <actioN>

COMMAND

  • -A 규칙 추가
  • -L 규칙 조회
  • -D 규칙 삭제

<chain>

관련된 규칙(rule)의 모음

  • INPUT: incoming traffic
  • OUTPUT : outgoing traffic
  • FORWARD : 다른 네트워크로 라우팅되는 트래픽

<protocol>
프로토콜

<source>
출발지 IP

<destination>
도착지 IP

<action>
조건(chain, protocol, source, dest)을 만족하는 패킷의 처리 방법

  • ACCEPT : 트래픽을 허용
  • DROP : 트래픽을 차단

iptables-save : 규칙을 파일로 저작
iptables-restore : 규칙 파일을 규칙에 적용

명령어 예시

규칙 조회

sudo iptables -L

sudo iptables -L -v

규칙 추가

sudo iptables -A OUTPUT -d "192.168.40.130" -j DROP

  • -A OUTPUT: OUTPUT 체인에 대한 규칙을 추가하는 옵션. OUTPUT 체인은 시스템에서 발생하는 패킷(시스템이 생성하는 패킷)을 필터링하는 데 사용된다.

  • -d "192.168.40.130": 패킷의 목적지 IP 주소가 "192.168.40.130"인 경우를 지정. 이 규칙은 목적지가 해당 IP 주소인 패킷을 대상으로 한다.

  • -j DROP: 매치되는 패킷에 대해 수행할 동작을 지정합니다. 여기서는 DROP으로 설정되어 있어, 매치되는 패킷을 버립니다(거부합니다).

예시로 만들어준 bee.box (192.168.40.130) 에서 발생되는 패킷은 DROP 한다. 그래서 curl 해도 아무것도 안나옴.

규칙 삭제

sudo iptables -D OUTPUT 2 ⇐ 삭제할 체인과 규칙 번호를 입력

규칙을 파일로 저장 및 복원

저장

sudo iptables-save > ./iptables.rules

복원

sudo iptables-restore < ./iptables.rules

profile
https://github.com/John-Jung

0개의 댓글

관련 채용 정보