IPTABLES 사용해보기






    서버를 운영한다면 방화벽은 선택사항이 아니라 필수입니다 그중 리눅스에 방화벽인 IPTABLES 라는 네트워크 필터링이 있으며, 설정이 까다롭고 복잡하지만 천천 하나씩 알아보도록 하겠습니다.



    이전글 :


    IPTABLES 란? - http://server-talk.tistory.com/169


    방화벽 IPTABLES 용어와 옵션 - http://server-talk.tistory.com/170






     

     IPTABLES 설치, 부팅시 자동실행, 시작




    ▶ IPTABLES 설치 확인

    [root@server ~]# rpm -qa | grep iptables
    iptables-1.4.7-16.el6.x86_64
    iptables-ipv6-1.4.7-16.el6.x86_64
    


    먼저 IPTABLES이 설치되어 있는지 확인을 합니다


    ▶ IPTABLES 설치

    [root@server ~]# yum -y install iptables
    



    ▶ IPTALBES 부팅시 자동 실행 등록

    [root@server ~]# chkconfig iptables on
    



    ▶ IPTABLES 시작

    [root@server ~]# service iptables start
    


    ▶ IPTABLES 규칙 저장


    [root@server ~]# service iptables save
    




     

     IPTABLES 규칙 보기




    ▶ IPTABLES 기본 규칙보기

    [root@server ~]# iptables -L
    



    ▶ IPTABLES 상세한 모든 규칙보기

    [root@server ~]# iptables -nL
    



    ▶ IPTABLES 규칙 순서를 포함하여 보기


    [root@server ~]# iptables -nL -line-numbers
    





     

     IPTABLES 기본 정책



    1. IPTABLES 정책 초기화



    ▶ IPTABLES 체인내의 모든 규칙 제거

    [root@server ~]# iptables -F
    




    ▶ IPTABLES 체인제거

    [root@server ~]# iptables -X
    




    ▶ IPTABLES 체인내의 모든 규칙의 패킷과 바이트의 카운트를 0으로 초기화

    [root@server ~]# iptables -Z
    




    2. 들어오는 패킷 모두 차단



    ▶ IPTABLES 들어오는 패킷 차단

    [root@server ~]# iptables -P INPUT DROP
    




    ▶ IPTABLES 외부로 나가는 패킷 차단

    [root@server ~]# iptables -P OUTPUT DROP
    



    ▶ IPTABLES 지나가는 패킷 차단

    [root@server ~]# iptables -P FORWARD DROP
    



    3. 로컬호스트 접속 허용 네트워크가 연결되어 있지 않아도 로컬호스트의 접속이 이루어 질수 있는 설정


    ▶ IPTABLES 들어오는 패킷 허용

    [root@server ~]# iptables -A INPUT -i lo -j ACCEPT
    



    ▶ IPTABLES 나가는 패킷 허용

    [root@server ~]# iptables -A OUTPUT -i lo -j ACCEPT
    






     

     IPTABLES CentOS 서비스 허용




    네임서버(DNS)


    DNS - TCP 53 / UDP 53


    [root@server ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
    [root@server ~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
    



    웹서버


    HTTP - TCP 80


    [root@server ~]# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    




    HTTPS(SSL) - TCP 443


    [root@server ~]# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
    




    MYSQL - 3306


    [root@server ~]# iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
    



    FTP(파일전송)


    FTP

    [root@server ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    [root@server ~]# iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
    



    FTP(passive mode)


    [root@server ~]# iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT
    [root@server ~]# iptables -A OUTPUT -p tcp --dport 1024:65535 -j ACCEPT
    




    메일서버


    SMTP - TCP 25


    [root@server ~]# iptables -A INPUT -p tcp -m --dport 25 -j ACCEPT
    



    ICMP(인터넷 통제 메시지 프로토콜)


    ICMP 허용(ping)


    [root@server ~]# iptables -A INPUT -p icmp-type echo-request -j ACCEPT
    [root@server ~]# iptables -A OUTPUT -p icmp-type echo-reply -j ACCEPT
    



    NFS(Network File System) 허용


    NFS 서버 


    - TCP 111 / UDP 111


    [root@server ~]# iptables -A INPUT tcp --dport 111 -j ACCEPT
    [root@server ~]# iptables -A INPUT udp --dport 111 -j ACCEPT
    


    - TCP 2049 / UDP 2049


    [root@server ~]# iptables -A INPUT tcp --dport 2049 -j ACCEPT
    [root@server ~]# iptables -A OUTUP udp --dport 2049 -j ACCEPT
    



    - TCP 32766 ~ 32769


    [root@server ~]# iptables -A INPUT tcp --dport 32766 -j ACCEPT
    [root@server ~]# iptables -A INPUT tcp --dport 32767 -j ACCEPT
    [root@server ~]# iptables -A INPUT tcp --dport 32769 -j ACCEPT
    




    NFS 클라이언트


    - TCP 111 / UDP 111


    [root@server ~]# iptables -A INPUT -p tcp --sport 111 -j ACCEPT
    [root@server ~]# iptables -A INPUT -p udp --sport 111 -j ACCEPT
    




    - TCP  2049


    [root@server ~]# iptables -A INPUT -p tcp --sport 2049 -j ACCEPT
    [root@server ~]# iptables -A INPUT -p udp --sport 2049 -j ACCEPT
    



    Rsync(파일 동기화)


    - TCP 879


    [root@server ~]# iptables -A -INPUT -p tcp -m tcp --dport 873 -j ACCEPT
    









    Posted by Server-talk 서버이야기