사용자 도구

사이트 도구


linux:iptables

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
linux:iptables [2023/04/15 01:50] taekgulinux:iptables [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +====== 리눅스 방화벽 ======
 +https://upcloud.com/resources/tutorials/configure-iptables-ubuntu
  
 +https://banggucha.tistory.com/entry/Tip-iptables-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EC%A0%95%EC%B1%85-%EC%A0%81%EC%9A%A9
 +===== iptables =====
 +아래에 저장되어야 작동된다.(reboot시)
 +/etc/iptables/rules.v4
 +/etc/iptables/rules.v6
 +
 +iptables설정 백업
 +<code bash>
 +sudo iptables-save > maro_rules.v4
 +</code>
 +<code bash>
 +# Overwrite the current rules
 +sudo iptables-restore < /etc/iptables/rules.v4
 +# Add the new rules keeping the current ones
 +sudo iptables-restore -n < /etc/iptables/rules.v4
 +</code>
 +
 +<code bash>
 +sudo iptables -I INPUT 1 -p tcp --dport 55432 -j ACCEPT
 +</code>
 +
 +<code bash web-service-port>
 +sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
 +sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT
 +</code>
 +
 +
 +=== 1-1.실행여부 확인 ===
 +  명령문 : service iptables status 또는 systemctl status iptables 
 +  결과 : active (exited) 실행 중인 경우
 +                 inactive (dead) 실행 중이지 않은 경우 
 +=== 1-2. iptables에 포트 추가 ===
 +/etc/iptables/rules.v4 파일에 포트를 추가/제거한다.
 +문서를 수정한 후 다음의 순서로 명령어를 실행한다.
 +  service iptables reload (iptables 정책을 reload)
 +  service iptables save (iptables 정책을 저장)
 +**service iptables save를 먼저 하면 현재 실행되고 있는 정책들이 다시 저장되어 수정한 내용이 없어진다.
 +iptables 정책에 수정한 내용을 반영한 다음에 저장해야 한다.
 + 
 +나의 경우에는 inactive 상태였다. 그렇다면 누군가 iptables 말고 다른 방화벽을 사용하는 것이다.
 +도대체 누가... 인지는 알고 있으나 따지고 싶지 않으니 다른 방화벽이 실행 중인지 확인한다.
 +
 +iptables -I INPUT -p tcp --dport 1022 -j ACCEPT
 + 
 +===== firewalld =====
 +==== 2-1. 실행여부 확인 ====
 +  firewall-cmd --state
 +  결과 : running 실행 중인 경우
 +  not running 실행 중이지 않은 경우
 + 
 +  명령문 : service firewalld status 또는 systemctl status firewalld
 +  결과 : active (exited) 실행 중인 경우
 +        inactive (dead) 실행 중이지 않은 경우
 + 
 +실행 중이다... 이런... 
 + 
 +==== 2-2. firewalld에 포트 추가 ====
 +
 +  firewall-cmd --permanent --zone=public --add-port=포트/tcp
 +  결과 : success
 + 
 +설정한 포트가 반영되기 위해 firewalld를 재시작한다.
 +  명령문 : firewall-cmd --reload
 +  결과 : success
 + 
 +==== 2-3. firewalld 에 포트 제거 ====
 +
 +포트를 추가하는 명령문에서 add 대신 remove를 넣어 실행하면 된다.
 +  명령문 : firewall-cmd --permanent --zone=public --remove-port=포트/tcp
 +  결과 : success
 + 
 +설정한 포트가 반영되기 위해 firewalld를 재시작한다.
 +  명령문 : firewall-cmd --reload
 +  결과 : success
 + 
 +그리하여 나는 원하는 포트를 사용할 수 있게 되었다. 
 + 
 +==== 2-4. firewalld 로 확인 ====
 +
 +위에 소개한 https://jootc.com/p/201808031482 (방화벽 상태 확인) 사이트에서
 +firewalld에 관한 명령문을 실행해 보았다.
 + 
 +1) firewalld에는 zone이라는 게 있다고 한다. default zone 확인
 +  명령문 : firewall-cmd --get-default-zone
 +  결과 : public   
 + 
 +2) firewalld에서 public zone에 알려진 서비스로 규칙이 추가된 경우 확인
 +  명령문 : firewall-cmd --zone=public --list-services
 +  결과 : dhcpv6-client samba ssh    (이것은 서버마다 다른 듯)
 + 
 +3) firewalld에서 public zone에 명령어로 등록된 포트 확인
 +  명령문 : firewall-cmd --zone=public --list-ports
 +  결과 : 허용된 포트들...
 + 
 +  모든 zone에 대한 내용을 확인하고 싶으면 --zone=public 옵션을 뺀다.
 + 
 +==== 2-5. 기타 firewalld 참고 사이트 ====
 +
 +https://oracle-base.com/articles/linux/linux-firewall-firewalld
 +===== ufw =====
 +program for managing a netfilter firewall