리눅스에서 방화벽을 관리하는 방법 : iptables

iptables는 Linux의 강력한 방화벽 툴로, 네트워크 트래픽을 제어하는 데 사용됩니다. 각 항목과 설정 방법을 이해하는 것이 네트워크 보안 및 관리에 필수적입니다.


1. iptables 개요

  • iptablesNetfilter 프레임워크의 사용자 공간에서 네트워크 패킷을 필터링하는 도구입니다.
  • 패킷 필터링을 통해 네트워크 트래픽을 허용, 차단하거나 라우팅할 수 있습니다.

2. 기본 체인 설명

iptables는 기본적으로 세 가지 체인을 사용합니다. 각 체인은 특정 조건에서 규칙을 적용합니다.

  • INPUT : 서버로 들어오는 패킷을 제어합니다.
  • OUTPUT : 서버에서 나가는 패킷을 제어합니다.
  • FORWARD : 서버를 경유하는 패킷을 제어합니다 (주로 라우터에서 사용).

3. iptables 기본 명령어

3.1 규칙 추가 (-A 옵션)

특정 체인에 규칙을 추가합니다.

sudo iptables -A <체인 이름> -p <프로토콜> -s <소스 IP> -d <목적지 IP> --dport <포트> -j <액션>

3.2 규칙 목록 조회 (-L 옵션)

모든 규칙을 확인할 수 있습니다.

sudo iptables -L

3.3 규칙 삭제 (-D 옵션)

특정 규칙을 삭제합니다.

sudo iptables -D <체인 이름> <라인 번호>

또는 규칙 조건을 지정해 삭제할 수 있습니다.

sudo iptables -D <체인 이름> -p <프로토콜> --dport <포트> -j <액션>

3.4 규칙 초기화 (-F 옵션)

모든 규칙을 초기화합니다.

sudo iptables -F

4. 기본 설정 방법

4.1 특정 포트 허용 예시

예를 들어, HTTP(포트 80) 트래픽을 허용하려면 다음과 같이 설정합니다.

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

4.2 특정 IP 차단 예시

특정 IP에서 오는 트래픽을 차단하려면 다음과 같이 설정합니다.

sudo iptables -A INPUT -s <차단할 IP> -j DROP

4.3 SSH 접속 허용

SSH(포트 22) 접속을 허용하려면 다음 명령어를 사용합니다.

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

4.4 기본 정책 설정

기본 정책은 패킷이 어떤 규칙에도 맞지 않는 경우 적용됩니다. 예를 들어, 기본적으로 모든 들어오는 트래픽을 거부하려면:

sudo iptables -P INPUT DROP

5. iptables 설정 저장 및 복구

iptables는 시스템 재부팅 시 설정이 초기화되므로, 설정을 유지하려면 다음 방법을 사용할 수 있습니다.

  • 설정 저장:
    sudo iptables-save > /etc/iptables/rules.v4
    
  • 설정 복구:
    sudo iptables-restore < /etc/iptables/rules.v4
    

6. 예시 규칙 구성

6.1 기본 정책: 허용 및 차단 규칙 설정

# 기본 정책 설정
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

# 루프백 인터페이스 허용
sudo iptables -A INPUT -i lo -j ACCEPT

# 기존 연결 및 관련된 트래픽 허용
sudo iptables -A INPUT -m conntract --ctstat ESTABLISHED,RELATED -j ACCEPT

# SSH(22), HTTP(80), HTTPS(443) 포트 허용
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

이제 iptables 설정과 구성이 완료되었습니다. 네트워크 트래픽을 효과적으로 관리하려면 필요에 따라 규칙을 추가하거나 삭제하고, 기본 정책을 신중하게 설정해야 합니다.