7.2. IPTables 사용법

IPTables를 사용하기 위한 첫번째 단계는 IPTables 서비스를 시작하는 것입니다. 다음 명령을 사용하시면 됩니다:

service iptables start

경고경고
 

IPTables 서비스를 사용하기 위해서는 다음 명령을 사용하여 IP6Tables 서비스를 꺼야합니다:

service ip6tables stop
chkconfig ip6tables off

시스템이 부팅될 때마다 IPTables가 기본으로 시작되도록 설정하시려면 chkconfig 명령을 사용하여 서비스의 런레벨 상태를 변경하셔야 합니다.

chkconfig --level 345 iptables on

IPTables의 구문은 여러 부분으로 나뉘어 집니다. 주요 부분은 chain 입니다. chain은 패킷이 조작될 상태를 지정하며 사용법은 다음과 같습니다:

iptables -A chain -j target

-A는 기존 규칙이 마지막에 규칙을 추가합니다. chain은 규칙에 사용될 chain의 이름입니다. IPTables에 내장된 (즉, 네트워크를 지나가는 모든 패킷에 영향을 미치는) 3가지 chain은 INPUT, OUTPUT, FORWARD 입니다. 이 세가지 chain은 영구적이면 삭제할 수 없습니다.

중요중요
 

IPTables 규칙을 만드실때 순서가 매우 중요합니다. 예를 들어 만일 chain에서 로컬 192.168.100.0/24 서브넷에서 들어오는 모든 패킷을 drop하도록 지정하신 후 (drop 하도록 지정된 서브넷에 포함되는) 192.168.100.13에서 들어오는 패킷을 모드 허용하는 chain (-A)을 그 후에 추가하시면 뒤에 추가된 추가 규칙이 무시됩니다. 먼저 192.168.100.13를 허용하는 규칙을 설정하신 후 서브넷을 drop하는 규칙을 설정하셔야 합니다.

기존 chain 규칙에 원하시는 규칙을 넣으시려면 -I 다음에 규칙을 삽입할 chain 이름과 규칙이 위치할 번호 (1,2,3,...,n)를 입력하십시오. 예를 들면:

iptables -I INPUT 1 -i lo -p all -j ACCEPT

이 규칙은 INPUT chain의 첫번째 규칙으로 삽입되어 로컬 룹백 장치 트래픽을 허용할 것입니다.

7.2.1. 기본 방화벽 정책

처음에 수립한 일부 기본 정책을 기반으로 이후 보다 자세하고 사용자 정의된 규칙을 생성할 수 있습니다. IPTables는 정책 (-P)을 사용하여 기본 규칙을 생성합니다. 관리자는 보안을 염두하여 일반적으로 모든 패킷을 드롭(drop)하며 상황 별로 특정 패킷을 허용하는 정책을 사용합니다. 다음은 네트워크 게이트웨이에서 들어오고 나가는 모든 패킷을 막는 규칙입니다:

iptables -P INPUT DROP
iptables -P OUTPUT DROP

추가로 전송 패킷(forwarded packets) — 방화벽에서 목적 시스템으로 라우팅될 네트워크 트래픽 — 을 거부하여 내부 클라이언트가 의도하지 않게 인터넷에 노출되는 것을 방지하시기를 권장합니다. 다음과 같은 규칙을 사용하시면 됩니다:

iptables -P FORWARD DROP 

알림알림
 

규칙을 추가시 REJECT 하는 것과 DROP 하는 것의 차이를 아셔야 합니다. REJECT는 서비스에 접속하려는 사용자의 액세스를 거부하고 connection refused라는 오류 메시지를 보여주는 반면 DROP은 말 그대로 telnet 사용자에게 어떠한 경고 메시지도 보여주지 않은 채 패킷을 드롭합니다. 관리자의 재량껏 이러한 규칙을 사용할 수 있지만 사용자가 혼란스러워하며 계속해서 접속을 시도하는 것을 방지하시려면 REJECT를 사용하시는 것이 좋습니다.

정책 chain을 설정하신 후 특정 네트워크와 보안 요건에 맞는 새로운 규칙을 만드십시오. 다음 부분에서는 IPTables 방화벽을 구축하는데 실행하실 일부 규칙들에 대하여 간단하게 설명해 보겠습니다.

7.2.2. IPTables 규칙 저장과 복구

방화벽 규칙은 컴퓨터가 켜져있는 동안에만 유효합니다. 만일 시스템이 재부팅되면 규칙이 자동으로 지워지고 재설정됩니다. 이후에도 똑같이 읽혀지도록 규칙을 저장하시려면 다음 명령을 사용하십시오:

/sbin/service iptables save

규칙이 /etc/sysconfig/iptables 파일에 저장되어 서비스가 시작되거나 재시작되며 컴퓨터가 재부팅될 때마다 동일하게 적용됩니다.