본문 바로가기
운영체제/리눅스

iptables 사용법

by o테리o 2010. 8. 27.

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은 영구적이며 삭제 불가능합니다. 


-j target 옵션은 iptables에서 이 특정 규칙을 jump하도록 지시합니다. 


명령에 내장된 타겟으로 ACCEPT, DROP, REJECT가 있습니다.


사용자 정의 chain이라고도 알려진 새로운 chain은 -N 옵션을 사용하여 생성 가능합니다. 


새로운 chain을 생성하여 보다 정교하고 세밀한 규칙을 사용자 정의하실 수 있습니다.


7.2.1. 기본 방화벽 정책

기본 방화벽 정책을 세워놓으면 향후 보다 상세하고 사용자 정의된 규칙을 생성하는데 도움이 됩니다. iptables는 정책 (-P) 을 사용하여 기본 규칙을 생성합니다. 관리자는 보안을 염두하여 일반적으로 모든 패킷을 드롭(drop)하며 상황 별로 특정 패킷을 허용하는 정책을 사용합니다. 다음은 네트워크 게이트웨이에서 들어오고 나가는 모든 패킷을 막는 규칙입니다:

  iptables -P INPUT DROP
iptables -P OUTPUT DROP


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

  iptables -P FORWARD DROP 


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


7.2.2. iptables 규칙 저장 및 복구하기

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

  /sbin/service iptables save


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