템플릿 로고

 
 강좌/팁 - 글조회
제목  CentOS7 방화벽설정
작성자  윤상일 작성시간  2016-08-22 조회수  458

CentOS 7 에서는 ‘firewalld’라는 방화벽 시스템이 기본으로 탑재되었습니다.

방화벽에는 zone(영역)이라는 것이 존재합니다. 개방된 네트워크와 연결되어 있다면 public zone(공개영역)에 있는 룰이 적용되고, 개인 네트워크에 있다면 다른 zone의 룰을 적용할 수 있습니다.

 

서비스 추가
# firewall-cmd --permanent --add-service=http --add-service=https
 --permanent 옵션은 영구적인 설정을 의미하며 옵션을 주지 않으면 런타임 환경에서 적용되기 때문에 서버를 리부팅하면 룰이 없어짐
 --add-service 옵션을 사용하여 오픈하고자 하는 서비스를 추가
 --remove-service 옵션을 사용하여 추가된 서비스를 제거

포트 및 프로토콜 추가
# firewall-cmd --permanent --add-port=5900-5910/tcp
# firewall-cmd --permanent --add-port=53/tcp

 --add-port 옵션을 사용하여 오픈하고자 하는 포트 및 포트범위/프로토콜을 추가
 --remove-port 옵션을 사용하여 추가된 포트 및 포트범위/프로토콜 제거

포트포워딩
# firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080
 --add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]
 --remove-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]]

특정IP 차단
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=116.31.116.38 service name=ssh reject"
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=116.31.116.38 service name=http reject"

특정IP 차단해제
# firewall-cmd --permanent --zone=public --remove-rich-rule="rule family=ipv4 source address=192.168.0.4 service name=ssh reject"

설정반영/재시작
# firewall-cmd --reload

허용한 포트 목록
# firewall-cmd --list-ports
 
방화벽 상태 확인
# firewall-cmd --state
 
활성화된 zone 목록
# firewall-cmd --get-active-zones

전체 서비스 목록
# firewall-cmd --get-service

public zone에서 관리하고 있는 서비스 목록
# firewall-cmd --zone=public --list-services

public zone 설정파일
# cat /etc/firewalld/zones/public.xml

설정내역 확인
# firewall-cmd --list-all

설정내역 확인(iptables)
# iptables -nL | grep reject

열려있는 포트확인
# netstat -tulpn | grep LISTEN