본문 바로가기

OS/Linux

리눅스 방화벽 iptables - 1/3

출처 :  http://jekyung.com/15 


1. 개요
     선별적인 패킷필터는 보안의 기본이라 할 수 있습니다. 리눅스 시스템에서 
     이를 위해 iptables 를 사용할 수 있습니다. iptables 는 상태추적 기능과 로깅기능, 
     포트 포워딩 및  향상된 매칭기능을 제공해 줍니다. iptables는 많은 상용방화벽 
     장비에 사용되어 그 성능이 검증되었습니다. 

2. iptables 사용법 기초
 가. iptables 구성
       iptables 는 filter 테이블, nat 테이블, mangle 테이블 세개의 테이블로 구성되어 
       있으며 테이블의 생성 및 삭제가 불가합니다.  
   1) filter 테이블
       패킷의 차단 및 통과를 결정하는 테이블로 방화벽 설정을 위해 가장 많이 사용되는
       테이블입니다. filter 테이블은 INPUT, FORWARD, OUTPUT 세개의 Chain 으로 
       구성되어 있습니다.
       * filter 테이블의 설정값 보기  *
          
iptables -L -n
   2) nat 테이블 
       nat 테이블은 방화벽 내부로 향하는 패킷을  포워딩하거나 내부에서 외부로 나갈때
       IP 주소를 변환시켜 주는 역활을 합니다.
      (공유기 역활시 또는 사설IP 로 외부 서비스시 사용함)
       * nat 테이블의 설정값 보기 *
         iptables -L -t nat
   3) mangle 테이블
       mangle 테이블은 패킷의 TTL, TOS 값을 변경할 때 사용합니다.
       * mangle 테이블의 설정값 보기 * 
         iptables -L -t mangle

 나. iptables 사용법 (FILTER 테이블을 기준하였습니다. )
   1) 방화벽 초기화 하기 (설정된 모든 룰을 삭제합니다.)
       iptables -F
       
   2)  방화벽 기본정책 설정
       iptables -P INPUT DROP           (들어오는 모든패킷 차단. 화이트리스트 방식)
       iptables -P OUTPUT ACCEPT  (나가는 모든패킷 허용. 블랙리스트 방식)
       * 기본적책은 방화벽 설정 우선순위 최하위이며 기본정책은 iptables -F 로
         초기화 되지 않음을 명심해야 합니다. *
        
   3)  룰 추가하기
       iptables -A  .....    (가장 마지막에 룰이 추가됨 방화벽 우선순위 낮음)
       iptables -I  .....     ( 가장 처음에 룰이 추가됨 방화벽 우선순위 높음)
       예제)
       iptables -A INPUT -s 0/0 -p tcp --dport 80 -j ACCEPT (모든곳에 http 허용)
   
   4) 룰 삭제하기
       iptables -D ... 
      예제)
      iptables -D OUTPUT -d 192.168.10.0/24 -p tcp --dport 80 -j ACCEPT
      (192.168.10. C 클래스로 http 접속 허용된 OUTPUT 정책을 삭제)
      iptables -D INPUT 5
     (INPUT Chain 의 5번째 룰 삭제)
     
iptables 의 기본 사용법을 살펴 보셨습니다. 다음 장을 통해 고급기능을 살펴 보도록 하겠습니다. ^^;