# ์๋น์ค ์์
[root@localhost ~]# systemctl start firewalld
# ์๋น์ค ์ฌ์์
[root@localhost ~]# systemctl restart firewalld
# ์๋น์ค ์ค์ง
[root@localhost ~]# systemctl stop firewalld
# ์๋น์ค ๋ฑ๋ก
[root@localhost ~]# systemctl enable firewalld
# ์๋น์ค ์ํ ํ์ธ
[root@localhost ~]# systemctl status firewalld
# firewalld ์ ์ฑ
์ ์ฅ ๋๋ ์ ์ฉ
[root@localhost ~]# firewall-cmd --reload
# firewalld ์ค์ ํ์ผ ๊ฒฝ๋ก
[root@localhost ~]# vi /etc/firewalld/firewalld.conf
firewalld ์กด(zone) ๊ด๋ฆฌ
โท ์กด(zone)์ ๋ฐฉํ๋ฒฝ์์ ์ฌ์ฉํ๋ ์์ญ๋ณ ๊ทธ๋ฃน์ด๋ผ๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค. ๋ฐฉํ๋ฒฝ์ ๊ธฐ์ค์ผ๋ก ์ธ๋ถ๋ External(์ธ๋ถ), ๋ด๋ถ๋ Internal(๋ด๋ถ), ์ค๊ฐ ์์ญ์ธ DMZ ๋ฑ ๋ค์ํ ์กด์ผ๋ก ๋๋ ์ ๊ทธ๋ฃน ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
โท firewalld ์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ ์กด(zone)์ด ์์ผ๋ฉฐ, ์ ๊ท ์ถ๊ฐํ์ฌ ์ฌ์ฉ๋ ๊ฐ๋ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ๋ด์ฉ์ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋๋ค.
# ์ฌ์ ์ ์๋ zone ๋ชฉ๋ก ํ์ธ
[root@localhost ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
# ๊ธฐ๋ณธ ์ค์ zone ํ์ธ
[root@localhost ~]# firewall-cmd --get-default-zone
public
# ๊ธฐ๋ณธ zone ๋ณ๊ฒฝ
[root@localhost ~]# firewall-cmd --set-default-zone=external
# ํ์ฌ ์ค์ ํ์ธ
[root@localhost ~]# firewall-cmd --list-all
# ์ ์ฒด zone ๋ชฉ๋ก ์์ธ ํ์ธ
[root@localhost ~]# firewall-cmd --list-all-zones
# ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ์ ์ฉ๋ zone ๋ฆฌ์คํธ ํ์ธ (๋ณ๊ฒฝ ์ )
[root@localhost ~]# firewall-cmd --get-active-zone
external
interfaces: enp0s8 enp0s3
# ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ zone ๋ณ๊ฒฝ
[root@localhost ~]# firewall-cmd --change-interface=enp0s3 --zone=public
# ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ์ ์ฉ๋ zone ๋ฆฌ์คํธ ํ์ธ (๋ณ๊ฒฝ ํ)
[root@localhost ~]# firewall-cmd --get-active-zone
external
interfaces: enp0s8
public
interfaces: enp0s3
# ์ ๊ท zone ์ถ๊ฐ
[root@localhost ~]# firewall-cmd --permanent --new-zone=test
success
# ๊ธฐ์กด zone ์ญ์
[root@localhost ~]# firewall-cmd --permanent --delete-zone=test
success
firewalld ์๋น์ค ๊ด๋ฆฌ
โท firewalld ์๋น์ค๋ ์ ์๋ ค์ง ํฌํธ ๋๋ ์ดํ๋ฆฌ์ผ์ด์
์๋น์ค๋ฅผ ์ฌ์ ์ ์ํ ๊ฒ์
๋๋ค.
โท firewalld ์๋น์ค๋ฅผ ์ด์ฉํ๋ฉด ssh, telnet, icmp, mysql ๋ฑ ์ ์๋ ค์ง ์ดํ๋ฆฌ์ผ์ด์
์ ๋ํด ๋ณ๋ ํฌํธ๋ก ์ค์ ํ์ง ์๊ณ ์๋น์ค ์ด๋ฆ์ผ๋ก ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
# ์ฌ์ ๋ฑ๋ก๋ ์๋น์ค ๋ชฉ๋ก ํ์ธ
[root@localhost ~]# firewall-cmd --get-services
# ์ฌ์ ์ ์๋ ์๋น์ค ํ์ผ ์์น
[root@localhost ~]# firewall-cmd --get-services
# ํน์ zone์ ํ์ฉ๋ ์๋น์ค ๋ฆฌ์คํธ ํ์ธ (์๋น์ค ์ถ๊ฐ ์ )
[root@localhost ~]# firewall-cmd --list-service --zone=public
cockpit dhcpv6-client ssh
# ํน์ zone์ ์๋น์ค ์ถ๊ฐ (http, https, dns, telnet)
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=https
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=dns
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=telnet
# ํน์ zone์ ์๋น์ค ์ญ์ (telnet)
[root@localhost ~]# firewall-cmd --permanent --zone=public --remove-service=telnet
# ์๋น์ค ์ถ๊ฐ ํ ์๋น์ค ์ ์ฉ์ ์ํด ๋ฐฉํ๋ฒฝ ์ฌ์์
[root@localhost ~]# firewall-cmd --reload
# ํน์ zone์ ํ์ฉ๋ ์๋น์ค ๋ฆฌ์คํธ ํ์ธ (์๋น์ค ์ถ๊ฐ ํ)
[root@localhost ~]# firewall-cmd --list-service --zone=public
cockpit dhcpv6-client dns http https ssh
firealld ํฌํธ(port) ๊ด๋ฆฌ
โท firewalld ํฌํธ(port)๋ ์์์ ์ค๋ช
ํ firewalld ์๋น์ค์์ ์ธ๊ธ๋์ง ์์ ์๋น์ค์ ํฌํธ๋ฅผ ๋ฑ๋กํ ๋ ์ฌ์ฉํฉ๋๋ค.
# ํ์ฉ ํฌํธ ๋ฆฌ์คํธ ํ์ธ (์ถ๊ฐ ์ )
[root@localhost ~]# firewall-cmd --list-port --zone=public
# ํน์ ํฌํธ TCP 8080, 8081 ์ถ๊ฐ
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=8081/tcp
# ํน์ ํฌํธ TCP 8081 ์ญ์
[root@localhost ~]# firewall-cmd --permanent --zone=public --remove-port=8081/tcp
# ํฌํธ ์ ์ฉ์ ์ํ ๋ฐฉํ๋ฒฝ ์ฌ์์
[root@localhost ~]# firewall-cmd --reload
# ํ์ฉ ํฌํธ ๋ฆฌ์คํธ ํ์ธ (์ถ๊ฐ ํ)
[root@localhost ~]# firewall-cmd --list-port --zone=public
8080/tcp
firewalld IP ๊ด๋ฆฌ
โท firewalld IP๋ ํน์ IP๋ IP ๋์ญ์ ํ์ฉํ ๋ ์ฌ์ฉ ํฉ๋๋ค.
# ํ์ฉ IP ๋ฆฌ์คํธ ํ์ธ (์ถ๊ฐ ์ )
[root@localhost ~]# firewall-cmd --list-sources --zone=public
# ํ์ฉ IP ์ถ๊ฐ
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-source=10.0.2.0/24
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-source=10.0.3.0/24
# ํ์ฉ IP ์ญ์
[root@localhost ~]# firewall-cmd --permanent --zone=public --remove-source=10.0.3.0/24
# ํ์ฉ IP ์ ์ฉ์ ์ํ ๋ฐฉํ๋ฒฝ ์ฌ์์
[root@localhost ~]# firewall-cmd --reload
# ํ์ฉ IP ๋ฆฌ์คํธ ํ์ธ (์ถ๊ฐ ํ)
[root@localhost ~]# firewall-cmd --list-sources --zone=public
10.0.2.0/24
firewalld ์ ์ฑ
(rule) ํํฉ ํ์ธ
โท firewalld ์์ ์์ฑํ ์ ์ฑ
(rule)์ ์กด(zone)๋ณ๋ก ๊ด๋ฆฌ๋๋ฉฐ, ์๋ ๊ฒฝ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
โ ์ ์ฑ
๊ฒฝ๋ก : /etc/firewalld/zones
# firewalld zone ๊ฒฝ๋ก ํ์ธ
[root@localhost ~]# ls -al /etc/firewalld/zones
total 20
drwxr-x---. 2 root root 110 Jan 10 08:29 .
drwxr-x---. 7 root root 159 Jan 10 08:25 ..
-rw-r--r--. 1 root root 304 Jan 10 07:53 external.xml
-rw-r--r--. 1 root root 328 Jan 10 07:53 external.xml.old
-rw-r--r--. 1 root root 489 Jan 10 08:28 public.xml
-rw-r--r--. 1 root root 523 Jan 10 08:28 public.xml.old
-rw-r--r--. 1 root root 54 Jan 10 07:30 test.xml.old
# public zone ์ ์ฑ
ํ์ธ
[root@localhost ~]# cat /etc/firewalld/zones/public.xml
firewalld ๋ก๊น
(logging) ์ค์
โท firewalld ๋ก๊น
(logging)์ ๋ฐฉํ๋ฒฝ์ ์ ๊ทผํ ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๋ ๊ฒ์
๋๋ค. ๋ก๊น
(lgging) ์ค์ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ต๋๋ค.
# firewalld.conf์์ ๋ก๊น
์ค์ ๋ณ๊ฒฝ
[root@localhost ~]# vi /etc/firewalld/firewalld.conf
LogDenied=off
->
LogDenied=all
# ์๋น์ค ์ฌ์์
[root@localhost ~]# systemctl restart firewalld
# ์ค์ ํ์ธ
[root@localhost ~]# firewall-cmd --get-log-denied
# ๋ก๊ทธ ๋ณด๊ธฐ
[root@localhost ~]# dmesg | grep -i REJECT
# ๋ก๊ทธ ํ์ผ ์์ฑ ํ ๋ก๊น
์ค์ (์ ๊ท ํ์ผ ์์ฑ ํ ์๋ ๋ด์ฉ ์ถ๊ฐ)
[root@localhost ~]# vi /etc/rsyslog.d/firewalld-droppd.conf
:msg,contains,"_DROP" /var/log/firewalld-droppd.log
:msg,contains,"_REJECT" /var/log/firewalld-droppd.log
& stop
# rsyslog ์๋น์ค ์ฌ์์
[root@localhost ~]# systemctl restart rsyslog.service
# deny log ํ์ธ
[root@localhost ~]# tail -f /etc/firewalld-droppd.log