Firewalld 관리
개념)
들어오는 모든 트래픽 각각을 자체 규칙 집합을 갖는 영역으로 분리한다
들어오는 연결에 사용할 영역을 확인하기 위해 firewalld는 첫 번째로 일치하는 규칙이 적용되는 다음과 같은 논리를 사용한다
기본 구성)
trusted | 들어오는 모든 트래픽을 허용한다 |
home | 나가는 트래픽과 관련이 없거나 사전 정의된 서비스인 ssh, mdns, ipp-clent, samba-client 또는 dhcpv6-client 와 일치하지 않을 경우 들어오는 트래픽을 거부한다 |
internal | home 기능과 비슷 |
work | 나가는 트래픽과 관련이 없거나 ssh, mdns, ipp-client, samba-client 또는 dhcpv6-client와 일치하지 않을 경우 들어오는 트래픽을 거부한다 |
public |
나가는 트래픽과 관련이 없거나 사전 정의 서비스인 ssh 또는 dhcpv6-client 와 일치하지 않을 경우 들어오는 트래픽을 거부한다. 새로 추가된 네트워크 인터페이스의 기본 영역이다 |
external | 나가는 트래픽과 일치하지 않거나 사전 정의 서비스인 ssh와 일치하지 않을 경우 들어오는 트래픽을 거부한다. 이 영역을 통해 전달되어 나가는 IPv4 트래픽은 나가는 네트워크 인터페이스의 IPv4 트래픽은 나가는 네트워크 인터페이스의 IPv4 주소에서 시자가된 것처럼 마스커레이드 된다 |
dmz | 나가는 트래픽과 일치하지 않거나 사전 정의된 서비스인 ssh와 일치하지 않을 경우 들어오는 트래픽을 거부한다. |
block | 나가는 트래픽과 관련되지 않은 경우 들어오는 모든 트래픽을 거부한다 |
drop | 나가는 트래픽과 관련되지 않은 경우(ICMP 오류에도 대응하지 않음) 들어오는 모든 트래픽을 거부한다 |
관리)
1. 명령줄 도구 firewall-cmd 사용
2. 그래픽 도구 firewall-config 사용
firewall-cmd를 사용하는 방화벽 설정 구성)
firewalld 패키지에 포함되어 설치된다
firewalld-cmd는 firewall-config와 동일한 작업을 수행할 수 있다
명령 대부분은 --zone=<ZONE> 옵션을 사용하여 영향을 미칠 영역을 결정한다
--zone을 생략하면 기본영역이 사용된다
방화벽을 구성하는 동안 관리자는 일반적으로 모든 변경 내용을 --permanent 구성에 적용한 다음 firewall-cmd --reload를 사용하여 해당 변경 내용을 활성화한다
실습)
리치 규칙 관리
기본)
관리자에게 기본 firewalld 구문으로는 나타낼 수 없는 사용자 지정 방화벽 규칙을 나타내는 표현 언어를 제공한다
예를 들어 영역으로 경로가 지정된 모든 IP 주소가 아닌 단일 IP 주소에서 서비스에 연결하도록 할 수 있다
리치 규칙으로 기본 허용/거부 규칙을 나타낼 수 있지만 포트 전달, 마스커레이딩 및 속도 제한은 물론, syslog 및 auditd에 대한 로깅을 구성할 수도 있다
사용)
옵션 | 설명 |
--add-rich-rule='<RULE>' | 지정된 영역 또는 영역을 지정하지 않은 경우 기본 영역에 <RULE>을 추가한다 |
--remove-rich-rule='<RULE>' | 지정된 영역 또는 영역을 지정하지 않은 경우 기본 영역에서 <RULE>을 제거한다 |
--query-rich-rule='<RULE>' |
지정된 영역 또는 영역을 지정하지 않은 경우 기본 영역에 <RULE>이 추가되었는지 쿼리한다. 규칙이 있으면 0을 반환하고, 그렇지 않으면 1을 반환한다 |
--list-rich-rules | 지정된 영역 또는 영역을 지정하지 않은 경우 기본 영역에 대한 모든 리치 규칙을 출력한다 |
EX)
firewall-cmd --permanent --zone=classroom --add-rich-rule='rlue family=ipv4
source address=192.168.0.11/32 reject'
firewall-cmd --add-rich-rule='rule service name=ftp limit value=2/m accept'
firewall-cmd --permanent --add-rich-rule='rule protocol value=esp drop'
firewall-cmd --permanent --zaone=vnc --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24
port port=7900-7905 protocol=tcp accept'