Linux

[리눅스] iptables 명령어 완벽 가이드 사용법(방화벽 설정)

인생아 2024. 10. 19. 17:48
반응형

iptables는 리눅스에서 네트워크 패킷 필터링방화벽 설정을 관리하는 강력한 도구입니다. 이를 통해 트래픽을 제어하거나 특정 패킷을 차단, 허용할 수 있습니다. 패킷 필터링은 보안 정책을 구현하는 데 필수적인 요소이며, iptables는 이러한 역할을 매우 효율적으로 수행합니다.

iptables필터 테이블을 기반으로 동작하며, 이는 INPUT(수신), FORWARD(전달), OUTPUT(송신) 등의 체인으로 구성됩니다. 이를 통해 패킷이 시스템을 통과할 때 각 체인에서 설정된 규칙에 따라 처리됩니다.

iptables 기본 사용법

iptables [옵션] [체인] [규칙]
  • 옵션: 추가, 삭제, 목록 조회 등을 선택할 수 있습니다.
  • 체인: INPUT, OUTPUT, FORWARD 중 하나를 선택합니다.
  • 규칙: 트래픽 허용, 차단 등의 동작을 정의합니다.

기본 예제: 모든 외부 트래픽 차단

다음 명령어는 모든 외부에서 들어오는 트래픽을 차단하는 예제입니다.

user@linux:~$ sudo iptables -A INPUT -j DROP
  • -A: 체인에 규칙을 추가합니다.
  • INPUT: 외부에서 들어오는 패킷을 의미합니다.
  • DROP: 패킷을 차단합니다.

특정 포트 허용 예제

80번 포트(HTTP)를 통해 들어오는 웹 트래픽만 허용하는 규칙을 설정할 수 있습니다.

user@linux:~$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  • -p tcp: TCP 프로토콜을 사용합니다.
  • --dport 80: 80번 포트에서 들어오는 트래픽을 의미합니다.
  • ACCEPT: 해당 트래픽을 허용합니다.

특정 IP 차단

특정 IP 주소로부터 오는 트래픽을 차단하려면 아래 명령어를 사용할 수 있습니다.

user@linux:~$ sudo iptables -A INPUT -s 192.168.1.100 -j DROP
  • -s 192.168.1.100: 출발지 IP 주소를 지정합니다.
  • DROP: 해당 IP로부터의 트래픽을 차단합니다.

규칙 삭제

기존의 규칙을 삭제하려면 -D 옵션을 사용하여 제거할 수 있습니다. 예를 들어, 방금 추가한 특정 IP 주소 차단 규칙을 삭제하려면 아래 명령어를 사용합니다.

user@linux:~$ sudo iptables -D INPUT -s 192.168.1.100 -j DROP

iptables 규칙 보기

현재 설정된 iptables 규칙을 확인하려면 다음 명령어를 사용할 수 있습니다.

user@linux:~$ sudo iptables -L

이 명령어를 실행하면 현재 설정된 규칙들이 출력됩니다.

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
DROP       all  --  192.168.1.100        anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

모든 규칙 초기화

현재 설정된 모든 iptables 규칙을 초기화하고 싶다면 아래 명령어를 사용합니다.

user@linux:~$ sudo iptables -F
  • -F: 모든 규칙을 초기화합니다.

iptables 사용 예제

특정 포트 허용

80번 포트(HTTP)를 통한 트래픽을 허용하는 예제입니다.

user@linux:~$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

특정 IP 차단

192.168.1.100 IP에서 들어오는 트래픽을 차단하는 예제입니다.

user@linux:~$ sudo iptables -A INPUT -s 192.168.1.100 -j DROP

규칙 목록 확인

현재 설정된 모든 규칙을 확인하는 예제입니다.

user@linux:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
DROP       all  --  192.168.1.100        anywhere

iptables 사용 시 유의점

  1. 방화벽 설정 변경 시 주의: 잘못된 설정으로 네트워크 연결이 끊길 수 있으므로 항상 주의해야 합니다.
  2. 규칙 테스트: 실제 적용 전에 새로운 규칙을 테스트하는 것이 중요합니다.
  3. 정기적인 규칙 확인: 보안상 문제를 방지하기 위해 iptables 규칙을 정기적으로 점검하는 것이 좋습니다.

참고사이트

반응형