OS/Linux

CentOS 7 방화벽(Firewall)에서 특정 IP 및 포트만 허용

realforce111 2021. 6. 16. 17:48

CentOS 7부터는 방화벽 기능이 기본적으로 활성화되어 있습니다.

방화벽을 완전히 비활성화하는 방법은 아래 포스팅을 참조해주세요.

CentOS 7 방화벽 해제

방화벽을 비활성화하지 않은 상태에서 특정 IP 및 서비스 포트만 허용하는 방법을 알아보겠습니다.

 

IP 허용

#IP 허용
firewall-cmd --permanent --add-source=10.10.10.10

#IP 허용 제거
firewall-cmd --permanent --remove-source=10.10.10.10

 

IP대역 허용

#IP 대역 허용
firewall-cmd --permanent --add-source=10.10.10.0/24

#IP 대역 허용 제거
firewall-cmd --permanent --remove-source=10.10.10.0/24

 

서비스 포트 허용

#서비스 포트 허용
firewall-cmd --permanent --add-port=80/tcp

#서비스 포트 허용 제거
firewall-cmd --permanent --remove-port=80/tcp

 

서비스 포트 범위 허용

#서비스 포트 범위 허용
firewall-cmd --permanent --add-port=1000-2000/tcp

#서비스 포트 범위 허용 제거
firewall-cmd --permanent --remove-port=1000-2000/tcp

 

IP에 대해 서비스 포트 허용

#IP에 대해 서비스 포트 허용
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address=10.10.10.10 port port="80" protocol="tcp" accept

#IP에 대한 서비스 포트 허용 제거
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address=10.10.10.10 port port="80" protocol="tcp" accept

 

IP 차단

#IP 차단
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address=10.10.10.10 drop'

#IP 차단 제거
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address=10.10.10.10 drop'

 

방화벽 Rule 적용

#방화벽 Rule 변경 내역 적용
firewall-cmd --reload

#방화벽 Rule 리스트 확인
firewall-cmd --list-all

 

방화벽 실행 중인지 확인

#방화벽 실행 확인(실행중이면 running, 실행중이 아니면 not running으로 표시)
firewall-cmd --state

#not running일 경우 방화벽 실행
systemctl enable firewalld 
systemctl start firewalld