서버를 운영하면서 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에 대해서 알고 싶은 분들은 아래 링크를 참고해주세요.