[리눅스] firewalld zone(영역) 생성 및 삭제

반응형

Firewalld zone 개념

1. zone 목록 확인

# firewall-cmd  --get-zones
block dmz drop external home internal public trusted work // 기본적인 default zone 리스트

firewalld 기본적인 zone들이 생성되어 있으며, 사용자 요구에 맞게 각 zone(그룹과 같은 의미)으로 분리하여 운영함

 

2. default zone 설명

- public : 기본 영역이며 ssh, dhcpv6-client를 제외한 모든 Inbound 패킷 거부(reject)

- block : 모든 Inbound 패킷 거부(reject)

- dmz : ssh를 제외한 모든 Inbound 패킷 거부(reject)

- drop : 모든 Inbound 패킷 폐기(drop)

- external : ssh를 제외한 모든 Inbound 패킷 거부(reject), masquerading 활성화

- internal, home : ssh, dhcpv6-client, ipp-client, mdns, samba-client를 제외한 모든 Inbound 패킷 거부(reject)

- trusted : 모든 Inbound 패킷 허용(accept)

- work : ssh, ipp-client, dhcpv6-client를 제외한 모든 Inbound 패킷 거부(reject)

 

※. 기본적으로 각 zone들은 outbound 허용(accept)

※. reject : 패킷 수신 시 거부한다는 ICMP 패킷을 송신 측에 보냄

※. drop : 패킷 수신 시 아무런 응답 없이 패킷 폐기 처리함

 

3. 모든 Zone 상세 정보 확인

# firewall-cmd --list-all-zones
block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

dmz
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

drop
  target: DROP
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

home
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh mdns samba-client dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

internal
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh mdns samba-client dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

trusted
  target: ACCEPT
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

work
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:


4. zone 상세 정보

- icmp-blocks : ping 차단 여부 (차단할 땐 echo-request 지정하면 됨)

- interfaces : 해당 정책에 사용될 인터페이스 지정

- sources : 출발지 IP

- services : 허용된 서비스 리스트 (firewall-cmd --get-services 명령어를 통해 firewalld에서 정의된 전체 서비스 리스트 확인 가능)

- ports : 허용할 특정 포트 (보통 firewalld에 정의되지 않은 서비스들을 허용할 때 포트로 허용시킴)

- masquerade : 마스커레이딩 활성 여부

 

5. 특정 zone 정보 확인

# firewall-cmd --list-all --zone=public // zone=[zone name] 입력하면 됨
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

 

6. 활성화된 zone 목록 확인

# firewall-cmd --get-active-zone

 

Firewalld zone 생성 및 삭제 & default zone 변경

1. 생성 및 확인

# firewall-cmd --permanent --new-zone=webzone // --new-zone=[zone name] 입력!
success

# firewall-cmd --reload // 변경사항 적용
success

# firewall-cmd --list-all --zone=webzone // 확인
webzone
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

 

2. default zone 변경

# firewall-cmd  --set-default-zone=webzone // --set-default-zone=[zone name] 입력
success

 

3. 삭제 및 확인

# firewall-cmd --permanent --delete-zone=webzone // --delete-zone=[zone name] 입력
success

# firewall-cmd --reload // 변경사항 적용
success

# firewall-cmd --list-all --zone=webzone // 확인 결과 webzone은 삭제되어 에러 발생
Error: INVALID_ZONE: webzone

 

반응형

댓글

Designed by JB FACTORY