티스토리 뷰

Ubuntu iptables 방화벽 port 설정하기


Ubuntu에서 iptables를 사용하여 방화벽 port를 설정하는 방법입니다.

Ubuntu는 ufw를 사용하여 기본 방화벽을 설정해줄 수 있는데 수준 높은 방화벽 구성을 위해서는 iptables를 사용하여 설정해주어야 합니다.

각각의 경우에 따른 사용방법을 알아보겠습니다.


1. 모든 포트 차단하기


Ubuntu 리눅스는 0번부터 65535번까지 포트를 사용할 수 있는데 아래 명령어를 실행할 경우 모든 포트를 차단할 수 있습니다.


$ sudo iptables -A INPUT -p tcp --dport 0:65535 -j DROP (TCP 포트 대상)

$ sudo iptables -A INPUT -p udp --dport 0:65535 -j DROP (UDP 포트 대상)


2. 특정 포트만 열어주기


다음은 tcp 80번 포트를 열어주는 명령어입니다.


$ sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

$ sudo iptables -I OUTPUT -p tcp --sport 80 -j ACCEPT


3. 특정 IP에 특정 포트만 열어주기


다음은 111.222.333.444 IP에 tcp 80번 포트를 열어주는 명령어입니다. 


$ sudo iptables -I INPUT -p tcp --dport 80 -s 111.222.333.444 -j ACCEPT

$ sudo iptables -I OUTPUT -p tcp --dport 80 -d 111.222.333.444 -j ACCEPT


4. TCP 8080번 포트를 80번 포트로 REDIRECT 하기


※ Ubuntu 16.04 버전의 경우 기본 네트워크 인터페이스명이 eth0가 아니라 ens33 또는 eno1으로 되어있는 경우가 있습니다.

이런 경우엔 아래 명령어에서 eth0를 맞는 인터페이스명으로 바꿔서 실행해주시면 됩니다.


$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080


5. iptables 정보를 재부팅 이후에도 동작하도록 설정하기


먼저 루트 디렉터리(/)에 iptables_rule 디렉터리를 생성해줍니다. (디렉터리명은 자유롭게 생성해주시면 됩니다)


$ sudo mkdir /iptables_rule


다음으로 iptables_rule 디렉터리 하위의 iptables.rules 파일에 iptables 정보를 저장해줍니다.


$ sudo sh -c "iptables-save > /iptables_rule/iptables.rules"


마지막으로 intefaces 파일을 수정해줍니다.


$ sudo vi /etc/network/interfaces


하단에 아래 명령어를 추가하고 저장해줍니다.


pre-up iptables-restore < /iptables_rule/iptables.rules



이상으로 Ubuntu에서 iptables로 방화벽 port를 설정하는 방법을 알아보았습니다.



'LINUX > Ubuntu' 카테고리의 다른 글

Ubuntu 계정 삭제하기  (0) 2017.08.23
Ubuntu 계정 생성하기  (0) 2017.08.13
Ubuntu iptables로 방화벽 port 설정하기  (0) 2017.04.03
Ubuntu vi 에디터 설정하기  (1) 2017.02.12
Ubuntu Network 고정 IP 설정하기  (2) 2017.02.12
Ubuntu CUI(Text Mode) 설정하기  (2) 2017.01.22
댓글
댓글쓰기 폼