一、防火墻簡介
防火墻(Firewall)是一種網(wǎng)絡(luò)安全系統(tǒng),用于監(jiān)控和控制進(jìn)出網(wǎng)絡(luò)的數(shù)據(jù)流。它可以識別并阻止未經(jīng)授權(quán)的訪問,從而保護(hù)內(nèi)部網(wǎng)絡(luò)免受外部攻擊。在服務(wù)器環(huán)境中,防火墻通常作為最后一道防線,保護(hù)服務(wù)器免受DDoS攻擊、僵尸網(wǎng)絡(luò)等惡意活動(dòng)的侵害。
二、CentOS防火墻配置
1. 查看防火墻狀態(tài)
首先,我們需要查看防火墻的狀態(tài)。在終端中輸入以下命令:
sudo systemctl status firewalld
如果防火墻正在運(yùn)行,你將看到類似以下的輸出:
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-01-01 12:00:00 UTC; 3 weeks ago Main PID: 1847 (firewalld) CGroup: /system.slice/firewalld.service └─1847 /usr/sbin/firewalld -f Jul 01 12:00:00 server systemd[1]: Starting firewalld - dynamic firewall daemon... Jul 01 12:00:00 server systemd[1]: Started firewalld - dynamic firewall daemon.
2. 啟用防火墻
為了啟用防火墻,我們需要將其設(shè)置為開機(jī)自啟。在終端中輸入以下命令:
sudo systemctl enable firewalld
3. 添加防火墻區(qū)域
在CentOS中,我們可以使用firewalld創(chuàng)建不同的虛擬網(wǎng)絡(luò)(zone),每個(gè)zone代表一個(gè)獨(dú)立的網(wǎng)絡(luò)環(huán)境。例如,我們可以為內(nèi)網(wǎng)創(chuàng)建一個(gè)名為"internal"的zone,為外網(wǎng)創(chuàng)建一個(gè)名為"public"的zone。在終端中輸入以下命令:
sudo firewall-cmd --permanent --new-zone=internal sudo firewall-cmd --permanent --zone=internal --add-interface=eth0 --permanent sudo firewall-cmd --permanent --zone=internal --add-port=22/tcp --permanent sudo firewall-cmd --permanent --zone=internal --add-port=80/tcp --permanent sudo firewall-cmd --permanent --zone=internal --add-port=443/tcp --permanent sudo firewall-cmd --permanent --zone=internal --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" forward-port port="80" protocol="tcp" accept' --permanent sudo firewall-cmd --permanent --zone=internal --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" forward-port port="443" protocol="tcp" accept' --permanent sudo firewall-cmd --permanent --zone=internal --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" forward-port port="22" protocol="tcp" accept' --permanent sudo firewall-cmd --reload
以上命令分別創(chuàng)建了一個(gè)名為"internal"的zone,并為其添加了對內(nèi)網(wǎng)IP地址段(192.168.1.0/24)的訪問權(quán)限。我們允許這些IP地址通過TCP協(xié)議訪問HTTP、HTTPS和SSH服務(wù)。最后,使用firewall-cmd命令重新加載防火墻配置,使更改生效。
接下來,我們可以創(chuàng)建一個(gè)名為"public"的zone,并為其添加對外網(wǎng)的訪問權(quán)限。根據(jù)實(shí)際情況,修改上述代碼中的IP地址段。例如,如果你的服務(wù)器有公網(wǎng)IP地址(如192.168.56.1),則可以將代碼中的IP地址段修改為該值。執(zhí)行完上述命令后,再次使用firewall-cmd命令重新加載防火墻配置。至此,我們已經(jīng)成功創(chuàng)建了兩個(gè)防火墻區(qū)域。
三、配置防火墻策略
現(xiàn)在,我們可以根據(jù)需要配置防火墻策略。例如,我們可以允許特定用戶通過防火墻訪問內(nèi)部資源。首先,創(chuàng)建一個(gè)新的用戶(如user1):
sudo useradd user1
然后,為新用戶設(shè)置密碼:
sudo passwd user1
接下來,為新用戶分配網(wǎng)絡(luò)權(quán)限。在終端中輸入以下命令:
sudo firewall-cmd --permanent --zone=public --add-user=user1 --permanent
最后,重新加載防火墻配置以應(yīng)用更改:
sudo firewall-cmd --reload
至此,我們已經(jīng)成功配置了一個(gè)基本的防火墻策略。只有具有相應(yīng)權(quán)限的用戶才能訪問內(nèi)部資源。你還可以通過firewall-cmd命令進(jìn)一步調(diào)整防火墻策略,例如添加更多規(guī)則、刪除用戶等。詳細(xì)的用法可以參考firewalld官方文檔。