Linux_Server Firewall

lil·2023년 2월 11일
0

LinuxServiceAdmin

목록 보기
2/4

■ firewalld 소개
firewalld는 동적 방화벽 관리자로 nft 명령을 사용하는 nftables 프레임워크에 대한 프론트엔트이다. 일하는건 nft가 할건데 사용하기, 연결하기 편하게 firewalld 데몬을 사용한다.

firewalld는 시스템에 들어오는 모든 패킷의 소스 주소를 확인한다. 해당 소스 주소가 특정 영역(Zone)에 할당되는 경우 해당 영역의 규칙이 적용된다. 소스 주소가 영역에 할당되지 않은 경우, firewalld는 패킷을 들어오는 네트워크 인터페이스의 영역과 연결하고 해당 영역(Zone)의 규칙이 적용된다. 네트워크 인터페이스가 어떤 이유로 영역과 연결되지 않은 경우에는 firewalld가 패킷을 기본 영역(default zone)에 연결한다.(소스주소 -> 인터페이스 -> 기본영역(default zone))

● (ㄱ) 들어 오는 패킷의 소스 주소가 영역의 소스 규칙 설정과 일치하면 패킷의 경로가 해당 영역으로 지정된다. !소스 주소를 점검하는게 1순위다.

● (ㄴ) 패킷에 대해 들어오는 인터페이스가 영역에 대한 필터 설정과 일치하면 해당 영역이 사용된다. !해당존에 규칙을 적용하고

● (ㄷ) 그렇지 않은 경우 기본 영역이 사용된다.
!다 해당되지 않으면 기본영역으로 적용된다.
기본 영역(default zone)은 별도의 영역이 아닌 기존 영역을 가리킨다. firewalld는 처음에는 public zone을 기본으로 지정하고 lo 루프백 인터페이스를 trusted zone에 매핑한다.
trusted zone : 무조건 허용

서버 방화벽 관리

	netfilter project 		-> ipchain(아주 옛날거)	
							-> iptables(LINUX 공개 방화벽)  
							-> nft(코어상)/firewalld(외관상)
   			       		  	->ipfilter(UNIX 공개 방화벽)
							....

방화벽 설정 툴
(CLI) firewall-cmd CMD
(GUI) firewall-config (firewall-config 패키지 필요)

firewall-cmd CMD
	# firewall-cmd --permanent --add-service=http --add-service=https
	# firewall-cmd --permanent --add-port=1521/tcp(oracle 포트번호로 등록)
	# firewall-cmd --reload

리치 규칙(Rich Rule) #옵션이 풍부하다, 디테일하게 설정할때
* 자세하게 규칙 등록 방법: rich rule -> 자세한 설정(source ip 지정, 80/http, ...)

# firewall-config

■ firewall-cmd CMD
firewall-cmd 명령 수행시 명시적으로 --permanent 옵션을 주지 않은 경우, 런타임(runtime) 구성에서 실행된다. --permanent 옵션을 준 경우 firewall-cmd --reload 명령도 실행하여 해당 설정을 활성화 해야 한다. 이 명령은 현재의 영구 구성을 읽고, 이 구성을 새 런타임 구성으로 적용한다. 나열된 명령의 대부분은 --zone=ZONE 옵션을 사용하여 영향을 미칠 영역을 결정한다. 넷마스크가 필요한 경우 CIDR 표기법(예: 192.168.10/24)을 사용한다.

■ --permanent 옵션 대해서 (양쪽에 적용 시켜줘야한다.)
Runtime -> Permenent
Runtime -> Runtime to Permanent
Permanent -> Reload Firewalld

firewall-cmd 명령어 옵션 검색하기

# firewall-cmd --help | grep zone
# firewall-cmd --help | grep service
# firewall-cmd --help | grep port
# firewall-cmd --help | grep source

default zone 변경하는 경우

# firewall-cmd --get-default
# firewall-cmd --set-default-zone=public

소스 추가/삭제하는 방법

# firewall-cmd --permanent --zone=public --add-source=192.168.10.0/24
# firewall-cmd --reload

# firewall-cmd --permament --zone=public --remove-source=192.168.10.0/24
# firewall-cmd --reload

여러가지 서비스 등록/삭제하는 방법 예제

(WEB)	 # firewall-cmd --permanent --add-service=http --add-service=https
(DNS)	 # firewall-cmd --permanent --add-service=dns
(FTP)	 # firewall-cmd --permanent --add-service=ftp
(MAIL)	 # firewall-cmd --permanent --add-service=smtp --add-service=smtps
(NFS)	 # firewall-cmd --permanent --add-service=nfs
(SAMBA)	 # firewall-cmd --permanent --add-service=samba --add-service=samba-client
(MariaDB)# firewall-cmd --permanet --add-service=mysqld
# firewall-cmd --reload

# firewall-cmd --permanent --remove-service=dns
# firewall-cmd --reload

포트 등록하는 방법 예제
● 미리 등록된 서비스 목록에 없는 경우 포트 등록

# firewall-cmd --permanent --add-port=1521/tcp
# firewall-cmd --reload

# firewall-cmd --permanent --remove-port=1521/tcp
# firewall-cmd --reload

# firewall-cmd --permanent --add-port=8888-9999/tcp
# firewall-cmd --reload

(3) 도움말

# man firewall-cmd
# man firewalld
# man 5 firewall.zone
# man 5 firewall.zones
# man 8 nft

0개의 댓글