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를 설정하는 방법을 알아보았습니다. 도움이 되셨다면 광고 한 번 클릭 부탁드립니다. 한 번의 클릭이 제게 큰 힘이 된답니다!^^ IP 패킷, 포트 접근 권한을 관리하는 명령어 iptables에 대해 알아보겠습니다. # iptables 기본 출력
# iptables 기본 출력 + IP 주소 & 포트 번호들을 숫자 형식으로 출력
# iptables 규칙 리스트를 출력
# iptables 특정 포트 접근 허용하기 (규칙 추가하기)
# iptables 특정 포트 접근 허용했던 것 막기 (규칙 삭제하기)
※ 8080 port 규칙을 추가하고 삭제하는 명령어입니다. 실제 사용 화면 캡처 8080 포트에 접근이 허용된 규칙을 확인할 수 있습니다. 만들어 놓은 페이지를 8080으로 띄었고, 외부에서 8080으로 접근하니 잘 되는 것을 확인할 수 있습니다. iptables 명령어를 사용해 특정 포트 방화벽을 허용하는 방법에 대해 알아보았습니다. 도움이 되셨다면 광고 한 번 클릭해주시면 감사하겠습니다!^^ 안녕하세요? 서버 개발을 진행하면서 포트 및 방화벽에 대해서 설정할 일이 많아 정리를 해보았습니다. A. 포트 상태 확인 1. 열려있는 모든 포트 표시 -n: host명으로 표시 안함 2. LISTEN중인 포트 표시 3. 확인하려는 포트번호 상태확인 4. 특정 호스트 포트 상태 확인 4.1 특정 포트 상태 확인 Sample Result) Connection to www.google.com 80 port [tcp/http] succeeded! 4.2 특정 호스트의 포트 범위를 지정하여 열린 포트 확인 Sample Result) Connection to
10.20.30.40 21 port [tcp/ftp] succeeded! B. 포트 열기 ※ 방화벽 설정 정보
확인하기 1. 특정포트 외부에서 접속할 수 있도록 열기 (외부에서 접속할 수 있도록 포트 OPEN) 1.1 TCP PORT일 경우 1.2 UDP PORT일
경우 -I: 새로운 규칙을 추가한다. ※ 내부에서 외부로 나갈 수 있도록 포트 열기 # iptables -I OUTPUT 1 -p tcp --dport 9002 -j ACCEPT 2. 추가한 설정 조회 3. 추가한 설정 삭제 a) 규칙번호로 삭제 b) 추가한 규칙으로 삭제 4. 변경사항 저장 C. 방화벽 활성화&비활성화 1. 켜기 2. 끄기 ------------------------------------------------------------------------------------------ |