ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CentOS] 리눅스 방화벽 Iptables 설정
    IT /Linux 2015. 2. 13. 13:15
    728x90




    iptables 는 방화벽인가요? 

    뭐 틀린말은 아니지만 netfilter 기능을 컨트롤하는 정책이라 할수 있습니다.


    저는 이제 기능을 배우기전에 이런 역사같은 탄생비화는 잠시 넣어둡니다.

    우선순위를 기능으로 iptables가 어떤건지 간단하게 알아보도록 합시다.

    그럼 iptables netfilter 의 역사를 알아보러 가보지 말고 기능과 설정 방법 등을 한번 훑어봅시다.



     IP Tables

     

    iptables A INPUT p tcp dport 53 j ACCEPT

     

    iptables A INPUT p tcp m tcp dport 80 j ACCEPT

     

    이런식의 명령으로 정책을 새로 추가 또는 삭제가 가능합니다.

    또는 iptables 경로의 파일을 편집기를 이용해서 정책을 추가하거나 지울수 있습니다.



    iptables 는 대부분 이미 설치가 되어있습니다.

    그래도 rpm qa 는 왠지 모르게 한번 쳐보고 싶으니 통해서 확인을 해봅시다.

     

     

     경로 :: /etc/sysconfig/


    iptables file 위치는 /etc/sysconfig/ 디렉토리 안에 있습니다.


    iptables -A INPUT... 식으로 셸에서 명령을 통해 기능을 이용할수 있지만

    디렉토리 내의 파일로 접근해서 파일 안에서도 조작이 가능합니다.





    저 기능들이 뭘 하는것인지 알면 좋겠지만 

    iptables F 를 통해 모든걸 없애버렸습니다.


    물론 사용자 마다 많은 방식이 있겠지만 크게 나눠 보자면 

    deny 방식과 allow 방식으로 나뉘게 됩니다.


    모든걸 차단하고 내가 허용하는 것만 허용하는 것과 

    모든걸 허용하고 내가 차단하는 것만 차단하는 것 인데요.


    마지막의 -j 옵션을 

    DROP 으로 모든 들어오는 버리게 만들거나 

    ACCEPT 로 모두 허용한 상태에서 시작하는겁니다.

     

     

     iptables의 기능

     

    기능은 상태추적, 매칭, 포트포워딩 기능을 지원합니다. 뭐 더 많겠지만 저는 부족한 사람입니다.

     

     

    상태 추적

    방화벽을 통과하는 모든 패킷에 대한 상태를 추적하여 메모리에 기억하고,

    외부에서 들어오는 패킷을 메모리에 저장된 목록과 비교하여 통과 또는 차단하는 기능을 수행합니다.

     

    매칭

    기본적인 매칭 정보의 IP, Port 주소 뿐 아니라 세부적인 필터링이 가능하답니다.

     

    포트포워딩

    .. 뭔지 아시죠? 옛날에 NAT연습할때 이것저것 해봤었는데..

    사용하는 공유기를 보시면 디디엔에스, 포트포워딩 지원하는모델이 많아요

    외부에 공유기를 통해 내부로 접속할수 있도록 포트를 이렇게 이렇게...


    NAT기능

    자체적으로 포함되어있고 다른 네트워크 구조를 지원한다고 합니다.


     

    저런 공부를 하기 싫어해서 그런지 남이 말하는건 너무 어렵습니다.




    간단한 예를 들어서 뭔지만 이라도 알수 있도록 한번 만들어 봅시다.

     

    INPUT 이라는 필터가 있습니다. 이건 들어오는 패킷에 대한 필터인데요.

     

    iptables A INPUT ~~~~~~~~~~~~~~~


    이런 식으로들 시작하죠?

    A는 이것저것 다 빼고 그냥 추가입니다.

     

    저렇게 시작하는것은 들어오는 패킷에 대해서 어떤 정책을 하나 추가한다는겁니다.

    자 그럼 추가하는 저 정책에 프로토콜을 지정해줍니다.



    iptables A INPUT p TCP ~~~~~~~~~~~~~

     

    정말 간단합니다.

    우리는 지금 tcp 로 들어오는 패킷에 대하여 어떤 정책을 만들고 있어요




    iptables A INPUT p TCP dport 2000:65535 ~~~~~


    자 포트를 지정해줬습니다. TCP 2000~65535 에 대해서 이제 뭔가를 지정해줍니다.

    1024 아래로 이것저것 포트가 정해져있잖아요?

    몇개 모르지만 21번이 ftp 22번이 ssh 80번 http,  

    뭐 다 알 필요 있습니까 적어놓고 보면되지 



    이제 뭘 해줘야 할까요

    받아들이거나 거부하거나, 버립시다

    ACEEPT는 받아들입니다. REJECT는 거부하기에 거부된 메시지가 전달이 됩니다. DROP은 문전박대 당합니다

     

    Iptables A INPUT p TCP dport 2000:65535 j DROP

     

    이렇게 해주면 이제 2000~65535의 포트에 들어오는 패킷을 버리자는 정책을 수립했습니다.

    -j  어떻게 할지 결정하는 그런 역할을 합니다.

     



    작성한 시간도 좀 오래 된 글이고, 정말 부족 of 부족한 글이 많습니다. 

    형식을 알아보고자 포스팅 합니다! 화이팅!




Designed by Tistory.