RHEL 7 부터는 방화벽을 관리하는 데몬이 firewalld 로 변경되었고 방화벽 설정은 복잡한 iptables 명령어대신 firewall-cmd (콘솔), firewall-config(X-Windows) 명령어를 사용하는 것을 권장합니다.
firewall-cmd 는 iptables 를 쓰기 쉽게 하는 wrapper 이고 복잡한 규칙을 사용할 경우 --direct 옵션으로 iptables 내부에 접근해야 합니다.
설치
설정
설정 파일
기본 설정은 /usr/lib/firewalld/ 에 위치하고 있으며 미리 설정된 zone과 zone 별 허용하는 서비스등은 이 폴더를 보면 확인할 수 있습니다.
시스템 개별 설정은 /etc/firewalld/ 에 위치하며 default zone 등 firewall 의 동작은 /etc/firewalld/firewalld.conf 에서 지정할 수 있으며 예로 default zone 을 dmz로 변경하려면 아래와 같이 설정하고 firewalld 를 재시작하면 됩니다.
커스터마이징된 zone 설정은 /etc/firewalld/zones//[ZONE].xml 에서 확인할 수 있으며 예로 public 존은 /etc/firewalld/zones/public.xml 에 설정합니다.
재구동
서비스 재구동시 service iptables restart 대신 firewall-cmd 명령어를 사용합니다.
zone
존은 서버의 용도에 맞게 사전에 정의된 네트워크의 신뢰 레벨을 의미.
사전 정의된 존 목록 출력
전체 존 목록을 상세하게 출력
기본 존 출력
default 로 설정된 존 출력
활성화된 존 출력
새로운 존 추가
--new-zone=ZONENAME 으로 추가
존 삭제
--delete-zone=ZONENAME 으로 삭제
서비스 목록
사전에 정의된 서비스의 목록은 --get-services 으로 확인 가능
permanent 로 등록된 서비스 목록
dmz 존에 영구적으로 등록된 서비스 목록 확인
서비스 추가
--add-service=SERVICE_NAME 으로 추가할 서비스 지정
서비스 삭제
--remove-service=SERVICE_NAME 으로 삭제할 서비스 지정
포트 추가
--add-port=<portid>[-<portid>]/<protocol> 옵션을 사용하여 포트 추가
포트 추가/변경, IP 추가/변경는 --reload 옵션을 실행해야 반영됨.
포트를 범위로 지정하려면 - 구분자를 넣어서 설정
포트 삭제
--remove-port=<portid>[-<portid>]/<protocol> 옵션 사용
허용 IP 추가
--add-source=<source range>/netmask 옵션을 사용하여 IP 추가
아래 예는 192.168.1. 대역에서 ssh 접근을 허용
rich-rule
보다 복잡한 규칙 설정이 필요할때나 firewall-cmd에서 필요로 하는 옵션을 제공하지 않을 경우 rich rule 언어를 사용하여 직접 방화벽 규칙을 설정할 수 있음.
새로운 룰 추가는 --add-rich-rule='<rule>' 와 같은 형식으로 설정
direct
--direct 옵션을 사용하면 기존의 iptables 명령처럼 직접 방화벽 내부에 접근해서 설정할 수 있음
서비스 설정
웹 서버 방화벽 설정
새로운 zone 생성
활성화
방화벽에 포트 추가
기본 zone이 webserver 이므로 --zone=webserver 옵션은 생략 가능
firewalld 재시작
정상 설정 여부 확인
apache 웹서버 설정
서비스 활성화
서비스 시작
nginx 설정
기존에 아파치 httpd 가 설치되어 있으면 비활성화
서비스 활성화
시작
Ref
- https://www.digitalocean.com/community/tutorials/additional-recommended-steps-for-new-centos-7-servers
- https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Migration_Planning_Guide/sect-Red_Hat_Enterprise_Linux-Migration_Planning_Guide-Security_and_Access_Control.html
- https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html
- http://stackoverflow.com/questions/24729024/centos-7-open-firewall-port
'Linux' 카테고리의 다른 글
iptables 범위 차단 (0) | 2018.08.20 |
---|---|
서브 디렉토리, 파일 권한 변경 (0) | 2018.08.20 |
CentOS minimal 설치후 추가 패키지 설치 (0) | 2018.07.10 |
서버교체 후 CentOS 6 랜카드(NIC) 인식 안될때 (0) | 2018.07.02 |
iptables 한국 IP 만 오픈 방법/ NO 커널컴파일 (0) | 2018.06.26 |
댓글