• 방화벽 위한 iptables 설정 [CentOS] :: 마이구미
    리눅스 2016. 7. 20. 00:51

    이번 글은 방화벽 설정에 대한 iptables에 대해 알아볼 것이다.

    많은 기능들이 있는데 다 생략생략생략. 딱 필요한 내용!

    방화벽 설정에서 포트에 대해 필요한 것들만 실습을 통해 알아본다!


    실습은 Nodejs와 함께 진행하겠다.

    필요한 건 당연히 서버, 그리고 NodeJS에 대한 살짝의 지식?

    해봐야알기 때문에 따라할 수 있게 진행할 것이기 때문에 NodeJS 살짝만.

    express 프로젝트까지는 만들었다고 가정하겠다.

    express는 그냥 Nodejs의 프레임워크다. 

    http://expressjs.com/ko/starter/installing.html 모른다면 요기요기 )


    var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello World!'); }); app.listen(8888, function () { console.log('Example app listening on port 8888!'); });

    셋팅되었다면 위 소스만 있으면 실습이 충분하다.

    간단히 설명하면 그냥 8888포트를 열어 웹서버를 만든 것이다. (http://xxx.xxx.xxx.xxx:8888/ )

    8888포트 경로로 접속 시 Hello World 페이지가 뜬다는 것을 알 수 있다.

    Hello World 까지 나오면 다음으로 넘어가자.


    이제 본론으로 다시 넘어가서 방화벽에 대해 알아보자.

    iptables는 방화벽 설정 도구이다.

    기본적으로 설치되어 있다.

    cd /etc/sysconfig //경로

    vi iptables //iptables 설정 파일


    iptables는 네트워크로 흘러들어오는 패킷데이터를 제어하는 netfilter 기능의 규칙을 만들어주는 툴이라 생각하자.

    기본적으로 iptables에는 세가지 chain이 존재한다.

    INPUT - 해당 서버에 들어오는 패킷

    OUTPUT - 해당 서버에서 보내는 패킷

    FORWORD - 해당 서버가 목적지가 아닌 모든 패킷, 즉 라우터로 사용되는 서버를 통과하는 패킷 (포워딩)

    직접 확인해보자.

    iptables -L // 현재 각 체인에 대한 규칙

    위 명령어를 치면 규칙은 정하지 않았으니 아래와 같이 나올 것이다.



    기본적으로 정책은 ACCEPT로 되어있을 것이다. (말그대로 "패킷을 받아들인다"는 뜻이다. DROP, REJECT 등등 더 있다.)


    만약 위와 같이 안 나온다면 초기에 설정되어있을 수도 있다.

    다시 해보고 싶다면 아래와 같이 초기화를 하고 다시 적용해보아도 된다.

    iptables -F // 초기화

    service iptables save // 규칙 저장

    service iptables restart // 새로운 규칙을 적용하기 위해 restart

    아무런 규칙 없이 restart를 한다면 아래와 같이 나올 것이다.



    vi 명령어를 통해 iptables을 보면,

    각 체인에 대한 기본 정책이 ACCEPT로 설정된 것을 확인할 수 있다.

    포트에 관한 규칙은 아직 정의하지 않았다.


     

    처음에 셋팅했던 Nodejs를 실행해보자.

    8888포트를 열어 웹서버를 구축했었다. 페이지 접속 시 HelloWorld 도 잘 나왔다.

    하지만 service iptables restart를 통해 기본 정책이 적용된 시점에서

    다시 한번 nodejs를 실행하여 페이지에 접속해보자.


    페이지는 계속 로딩중일 것이다. 아까 뜨던 HelloWorld가 안 나온다는 것이다.

    현재 iptables으로 인해 방화벽이 설정되었기 때문이다.

    이제 사용할 특정 포트들을 열어주어야 접속이 가능하다.


    아래 명령어를 통해 8888포트를 열어줄 것이다.

    iptables -A INPUT -p tcp -m tcp --dport 8888 -j ACCEPT

    그리고 다시 새로운 규칙을 적용하기 위한 명령어.

    service iptables save // 규칙 저장

    service iptables restart // 새로운 규칙을 적용하기 위해 restart

    vi 명령어를 통해 iptables 파일을 보면 추가된 규칙이 적용되어있다.



    그리고 8888포트로 접속 시 HelloWorld가 뜨는 페이지를 볼 수 있을 것이다.

    이런 식으로 원하는 규칙들을 지정하여 사용하면 된다.


    규칙에 대한 자세한 명령어들을 구글링으로 참고하길 바란다.


    위키

    https://ko.wikipedia.org/wiki/Iptables


    댓글 0

Designed by Tistory.