RHEL7/CentOS 7 에서 방화벽(firewalld) 설정

기본 설정은 /usr/lib/firewalld/ 위치

시스템 개별 설정은 /etc/firewalld/ 위치하며 default zone firewall 동작은 /etc/firewalld/firewalld.conf 에서 지정할 있으며 예로 default zone dmz 변경하려면 아래와 같이 설정하고 firewalld 재시작

/etc/firewalld/firewalld.conf

DefaultZone=dmz

커스터마이징된 zone 설정은 /etc/firewalld/zones//[ZONE].xml 에서 확인할 있으며 예로 public 존은 /etc/firewalld/zones/public.xml 설정

<?xml version=”1.0″ encoding=”utf-8″?>

<zone>

<short>Public</short>

<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accept

ed.</description>

<service name=”dhcpv6-client”/>

<service name=”http”/>

<service name=”ssh”/>

<service name=”https”/>

</zone>

재구동

서비스 재구동시 service iptables restart 대신 firewall-cmd 명령어를 사용합니다.

firewall-cmd –reload

zone

존은 서버의 용도에 맞게 사전에 정의된 네트워크의 신뢰 레벨을 의미.

사전 정의된 목록 출력

firewall-cmd –get-zones

work drop internal external trusted home dmz public block

전체 목록을 상세하게 출력

firewall-cmd –list-all-zones

기본 출력

default 설정된 출력

firewall-cmd –get-default-zone

public

활성화된 출력

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

RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https

permanent 등록된 서비스 목록

dmz 존에 영구적으로 등록된 서비스 목록 확인

firewall-cmd –permanent –list-all –zone=dmz

서비스 추가

–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=<portid>[-<portid>]/<protocol> 옵션을 사용하여 포트 추가

포트 추가/변경, IP 추가/변경는 –reload 옵션을 실행해야 반영됨.

firewall-cmd –permanent –zone=public –add-port=8080/tcp

포트를 범위로 지정하려면구분자를 넣어서 설정

4000 ~ 4100 포트 오픈

firewall-cmd –permanent –zone=public –add-port=4000-4100/tcp

포트 삭제

–remove-port=<portid>[-<portid>]/<protocol> 옵션 사용

firewall-cmd –permanent –zone=public –remove-port=8080/tcp

허용 IP 추가

–add-source=<source range>/netmask 옵션을 사용하여 IP 추가

아래 예는 192.168.1. 대역에서 ssh 접근을 허용

firewall-cmd –permanent –zone=public –add-source=192.168.1.0/24 –add-port=22/tcp

firewall-cmd –reload

rich-rule

https://fedoraproject.org/wiki/Features/FirewalldRichLanguage

보다 복잡한 규칙 설정이 필요할때나 firewall-cmd에서 필요로 하는 옵션을 제공하지 않을 경우 rich rule 언어를 사용하여 직접 방화벽 규칙을 설정할 있음.

새로운 추가는 –add-rich-rule='<rule>’ 같은 형식으로 설정

firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4″  source address=”192.168.10.0/24″  port protocol=”tcp” port=”9000″ accept”

direct

–direct 옵션을 사용하면 기존의 iptables 명령처럼 직접 방화벽 내부에 접근해서 설정할 있음

$ sudo firewall-cmd  –direct –get-all-rules

ipv4 filter INPUT 0 -p tcp -m multiport –dports ssh -m set –match-set fail2ban-sshd src -j REJECT –reject-with icmp-port-unreachable

firewall-cmd –direct –add-rule ipv4 nat POSTROUTING 0 -o eth_ext -j MASQUERADE

서비스 설정

서버 방화벽 설치

1.새로운 zone 생성

firewall-cmd –permanent –new-zone=webserve

  1. 활성화

5firewall-cmd –set-default-zone=webserver

  1. 방화벽에포트추가

8firewall-cmd –permanent –zone=webserver –add-service=http
firewall-cmd –permanent –zone=webserver –add-service=https

기본 zone이 webserver 이므로 –zone=webserver 옵션은 생략 가능

  1. firewalld 재시작

firewall-cmd –reload

  1. 정상설정여부확인

firewall-cmd –list-services   –zone=webserver

dhcpv6-client http https ssh

https://www.lesstif.com/pages/viewpage.action?pageId=22053128 참고

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Videos, Slideshows and Podcasts by Cincopa Wordpress Plugin