본문 바로가기

OS/Linux

리눅스 방화벽 iptables - 2/3

 다. iptables 고급기능
   1) 루프백 허용하기
        한 서버에 웹서버와 DB 서버를 동시에 서비스 할 경우 웹서버에서 DB 서버에 
        접근시 루프백에 대한 허용이 되어야 통신이 가능합니다.

         iptables -A INPUT -i lo -j ACCEPT
         iptables -A OUTPUT -o lo -j ACCEPT

   2) 상태추적 사용하기
        syn 패킷에의해 생성된 접속테이블 (session table)의 정보를 이용하여 
        후속 패킷들에 대해 보안정책의 검사 없이 고속으로 패킷처리를 가능하게 합니다.

        " 상태추적 기능이 제공되지 않는 방화벽에서 웹서비스를 허용하는 정책을 
         세운다면 INBOUND 정책중 tcp 80 요청을 허용하고 source port 80 에서  
         OUTBOUND 허용되는 정책을 또 작성해야 합니다. 하지만 상태추적이 가능한
         방화벽에서는 INBOUND 정책중 tcp 80 요청을 허용하고 OUTBOUND 에대한
         상태추적 기능을 Accept 설정해 두기만 하면 됩니다. 이처럼 상태추적 기능은
         정책 수립을 간소화 할 수 있습니다. "  
         
         iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
         iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

   3) FTP 서비스 방화벽 정책설정
        FTP 는 서비스 특성상 command 포트(tcp 21)와 data 포트 (20, 또는 1024 이후)
        를 사용하는데 클라이언트 입장에서 Atcive 모드와 Passive모드를 선택 접속하게 
        됩니다. 이러한 서비스 특성 때문에 초보관라자 에게 FTP 관련 방화벽 설정이
        쉽지 않습니다.
         우선 간략히 Active 모드와 Passive 모드의 차이를 살펴 보자면 Active 
        모드는 21번 포트로 인증 후 서버의 20번 포트에서 클라이언트로 데이타 목록을
        보내줍니다. 그렇기 때문에 클라이언트에 방화벽이 설정되어 있을경우 서버에서
        보내주는 데이타 목록을 수신할 수 없게 됩니다.
          반면에 Passive 모드는 처음 21 포트로 인증 후 클라이언트에서 FTP 서버의 
        1024 이후 임의의 포트에 접속해서 테이타 목록을 받아가게 됩니다. 따라서 
        Passive 모드를 사용할 경우 클라이언트에 방화벽이 설정되어 있어도 사용에 
        문제가 없지만 반대로 서버 입장에서 방화벽 정책을 1024 이후의 모든 포트를
        열어 두어야 된다는 단점이 생기게 됩니다. 
        이러한 FTP 서비스의 특성에 맞게 IPTables 의 정책을 세워야 원활한 서비스
        제공과 강화된 보안수준을 유지할 수 있습니다.