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

리눅스를 처음 접하시는 분들은 위한 다양한 리눅스 정보를 공유합니다.

답글 남기기

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