Linux 방화벽 포트 오픈 방법에 대해(Firewalld 명령어)

서버를 운영하면서 IP, Port 등 특정 방화벽 오픈이 필요한 경우가 다수 있다.

자빅스, 왓탭 등 솔루션을 설치해보시고 사용하신 분들이면 거쳐왔을 단계라고 생각을 합니다.

오늘은 간단하게 특정 Port를 오픈하는 방법에 대해서 알아보도록 하겠습니다.

ex : 포트 10000~10009를 오픈하면, 해당 포트를 통해 들어오는 트래픽은 IP 주소와 무관하게 허용

여기서 발생할 수 있는 문제점이 있으므로 다들 알고 있는 명령어 ” firewall-cmd –zone=public –add-port=10000-10009/tcp –permanent ” 이런식으로 오픈을 해버리면 모든 IP가 접근이 가능해져버리는 문제가 있을수 있으므로 특정 IP에 특정 Port만 오픈을 할려고 합니다.

*모든 방식에 정답은 없습니다. 운영하는 서버 환경에 맞춰서 진행을 합니다.*


1.가장 대표적인 모든 IP허용 + 특정 Port 오픈

Firewall 명령어를 사용하여 방화벽을 오픈하는 방식

리눅스 포트오픈.
[root@endoflinux ~]# systemctl status firewalld
 firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-10-13 14:14:19 KST; 7h ago
       Docs: man:firewalld(1)
   Main PID: 788 (firewalld)
      Tasks: 4 (limit: 10683)
     Memory: 44.5M
        CPU: 653ms
     CGroup: /system.slice/firewalld.service
             └─788 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

Notice: journal has been rotated since unit was started, output may be incomplete.
[root@endoflinux ~]# firewall-cmd --zone=public --add-port=10000-10009/tcp --permanent
success
[root@endoflinux ~]# firewall-cmd --reload
success
[root@endoflinux ~]# firewall-cmd --list-ports
80/tcp 2222/tcp 3306/tcp 10000-10009/tcp
[root@endoflinux ~]#

포트 10000~10009를 오픈하면 누구든지 해당 포트를 통해 서버에 접근할 수 있게 됩니다. 이는 잠재적인 보안 위협을 초래하므로 아래 명령어를 사용하여 오픈 포트를 삭제

# firewall-cmd --zone=public --remove-port=10000-10009/tcp --permanent

외부망을 통해 접근이 안되는 시스템이라면 위의 방식도 적당하지만 보안의 위협은 언제 생길지 모르니까 초반부터 막아야합니다.

2. 특정 IP, Port 오픈

rich-rule 사용

rich-rule은 firewalld에서 복잡한 방화벽 규칙을 설정할 때 사용하는 명령어

 보통 기본적인 포트 열기/닫기보다 더 구체적인 조건을 설정할 때 유용, 예를 들어, 특정 IP 주소나 IP 범위에서 오는 트래픽을 특정 포트로 허용하거나 차단할 때 사용

특정 아이피, 포트 오픈방법
[root@endoflinux ~]#
[root@endoflinux ~]# firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.1" port protocol="tcp" port="10000-10009" accept' --permanent
success
[root@endoflinux ~]# firewall-cmd --reload
success
[root@endoflinux ~]# firewall-cmd --zone=public --list-rich-rules
rule family="ipv4" source address="192.168.45.212" port port="2222" protocol="tcp" accept
rule family="ipv4" source address="192.168.0.1" port port="10000-10009" protocol="tcp" accept
[root@endoflinux ~]#

이렇게 방화벽 오픈에도 여러가지 상황이 있습니다. 각자 서버 환경에 맞춰서 최고의 선택을 해주시면 됩니다.

rich-rule 삭제는 아래 명령어를 참고

firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.2" port protocol="tcp" port="10000-10009" reject' --permanent

Iptables: Your Powerful Ally in Safeguarding Your Web Presence
iptables에 대해서 알고 싶은 분들은 아래 링크를 참고해주세요.

By Low ahn

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다