CentOS 7 에서 방화벽(firewalld) 설정하기
기본 설정은 /usr/lib/firewalld/ 에 위치하고 있으며 미리 설정된 zone과 zone 별 허용하는 서비스등은 이 폴더를 확인.
시스템 개별 설정은 /etc/firewalld/ 에 위치하며 default zone 등 firewall 의 동작은 /etc/firewalld/firewalld.conf 에서 지정
# vi /etc/firewalld/firewalld.conf DefaultZone=dmz /* 디폴트 존 변경 */
사전 정의된 존 목록 출력
# firewall-cmd --get-zones
전체 존 목록을 상세하게 출력
# firewall-cmd --list-all-zones
default 로 설정된 존 출력
# firewall-cmd --get-default-zone
활성화된 존 출력
# firewall-cmd --get-active-zone
새로운 존 추가 –new-zone=ZONENAME 으로 추가
# firewall-cmd --permanent --new-zone=webserver
존 삭제 –delete-zone=ZONENAME 으로 삭제
# firewall-cmd --permanent --delete-zone=webserver
사전에 정의된 서비스의 목록은 –get-services 으로 확인 가능
# firewall-cmd --get-services
permanent 로 등록된 서비스 목록 public 존에 영구적으로 등록된 서비스 목록 확인
gldigital ~]# firewall-cmd --permanent --list-all --zone=public
–add-service=SERVICE_NAME 으로 추가할 서비스 지정
# firewall-cmd --permanent --zone=dmz --add-service=http
–remove-service=SERVICE_NAME 으로 삭제할 서비스 지정
# firewall-cmd --permanent --zone=dmz --remove-service=http
–add-port=[-] / 옵션을 사용하여 포트 추가
포트 추가/변경, IP 추가/변경는 –reload 옵션을 실행해야 반영됨.
# firewall-cmd --permanent --zone=public --add-port=8080/tcp
포트를 범위로 지정하려면 – 구분자를 넣어서 설정 4000 ~ 4100 포트 오픈
# firewall-cmd --permanent --zone=public --add-port=4000-4100/tcp
–add-source=/netmask 옵션을 사용하여 IP 추가
아래 예는 192.168.1. 대역에서 ssh 접근을 허용
# firewall-cmd --permanent --zone=public --add-source=192.168.1.0/24 --add-port=22/tcp
보다 복잡한 규칙 설정이 필요할때나 firewall-cmd에서 필요로 하는 옵션을 제공하지 않을 경우 rich rule 언어를 사용하여 직접 방화벽 규칙을 설정할 수 있음.
새로운 룰 추가는 –add-rich-rule=” 와 같은 형식으로 설정
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address="59.19.93.128/24" service name=ssh accept"
룰 적용 상황 확인
# firewall-cmd --permanent --list-all
–permanent 옵션 넣었다면 방화벽 재로드
# firewall-cmd --reload