사용자 도구

사이트 도구


linux:iptables

리눅스 방화벽

iptables

아래에 저장되어야 작동된다.(reboot시) /etc/iptables/rules.v4 /etc/iptables/rules.v6

iptables설정 백업

sudo iptables-save > maro_rules.v4
# 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
sudo iptables -I INPUT 1 -p tcp --dport 55432 -j ACCEPT
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

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 참고 사이트

ufw

program for managing a netfilter firewall

linux/iptables.txt · 마지막으로 수정됨: 2025/04/15 10:05 저자 127.0.0.1