방화벽(firewalld) 설정

firewall

방화벽(firewalld) 설정 가이드

서비스 제어

명령어 설명
service firewalld start service 시작
service firewalld stop service 중지
firewall-cmd --reload 재시작

목록 조회

명령어 설명
firewall-cmd --list-all default zone 설정 정보
firewall-cmd --list-all-zones 전체 zone 설정 정보
firewall-cmd --list-all —zone=dmz 특정 zone 설정 정보
firewall-cmd --get-zones zone 목록
firewall-cmd --get-default-zone default zone 이름
firewall-cmd --get-services 사전 정의 service 목록

추가 & 삭제

--zone=<zone> --zone=<zone> 옵션이 없을 경우 default zone에 추가, 삭제 됩니다. {: .notice—info}

{% capture notice-2 %} --permanent firewall-cmd 로 방화벽 정책을 변경 시 즉시 적용되지만 reload 하거나 재부팅 할 경우 정책이 초기화됩니다. 방화벽 정책을 영구적으로 적용하기 위해서는 --permanent 옵션을 사용해야 합니다. 옵션을 사용할 경우 즉시 적용 되지 않아 reload를 수행해야 합니다.

—permanent 옵션 사용 —permanent 옵션 미사용
즉시 적용 X O
정책 영구적용 O X

{% endcapture %}

{{ notice-2 | markdownify }}
명령어 설명
firewall-cmd --add-service=ssh ssh service 추가
firewall-cmd --remove-service=ssh ssh service 삭제
firewall-cmd --add-port=21/tcp tcp(21) port 추가
firewall-cmd --remove-port=21/tcp tcp(21) port 삭제
firewall-cmd --add-source=192.168.0.0/24 source ip 추가
firewall-cmd --remove-source=192.168.0.0/24 source ip 삭제

rich rule

rich rule 규칙

rule
  [family="ipv4|ipv6"]
  [source [not] address="address[/mask]"|mac="mac-address"|ipset="ipset"]
  [destination [not] address="address[/mask]]
  service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port
  [log]
  [audit]
  [accept|reject|drop|mark]
명령어 설명
firewall-cmd --add-rich-rule=‘rule ~’ rich rule 추가
firewall-cmd --remove-rich-rule=‘rule ~’ rich rule 삭제

rich rule 예제

특정 대역에 대한 모든 연결 허용

firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" accept'

특정 IP에 대한 모든 연결 거부

firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.10/32" reject'  

특정 대역에 대한 22 port 연결 허용

firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" port port="22" protocol="tcp" accept'