IPTables를 사용하기 위한 첫번째 단계는 IPTables 서비스를 시작하는 것입니다. 다음 명령을 사용하시면 됩니다:
service iptables start |
![]() | 경고 | |
|---|---|---|
IPTables 서비스를 사용하기 위해서는 다음 명령을 사용하여 IP6Tables 서비스를 꺼야합니다:
|
시스템이 부팅될 때마다 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)를 입력하십시오. 예를 들면:
이 규칙은 INPUT chain의 첫번째 규칙으로 삽입되어 로컬 룹백 장치 트래픽을 허용할 것입니다. |
처음에 수립한 일부 기본 정책을 기반으로 이후 보다 자세하고 사용자 정의된 규칙을 생성할 수 있습니다. 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 방화벽을 구축하는데 실행하실 일부 규칙들에 대하여 간단하게 설명해 보겠습니다.