當(dāng)我們需要限制某些不受歡迎的IP地址或整個(gè)網(wǎng)段訪問Linux服務(wù)器上的服務(wù)時(shí),可以采取多種策略。以下兩種方法提供了有效的途徑來實(shí)現(xiàn)這一目標(biāo):
方法一:通過/etc/hosts.deny文件進(jìn)行訪問控制
- 登錄到服務(wù)器:首先,您需要使用具有足夠權(quán)限的用戶賬戶登錄到您的Linux服務(wù)器。
- 編輯/etc/hosts.deny文件:使用您喜歡的文本編輯器(如vi、nano等)打開/etc/hosts.deny文件。
sudo vi /etc/hosts.deny
- 添加禁止規(guī)則:在文件中添加以下行以禁止特定IP或網(wǎng)段訪問ssh服務(wù)(或其他您想要限制的服務(wù))。請(qǐng)注意,這里使用的IP地址和網(wǎng)段是示例,您需要根據(jù)實(shí)際情況進(jìn)行替換。
sshd:203.XXX.XXX.189
sshd:203.XXX.XXX.0/24
第一行禁止了單個(gè)IP地址203.XXX.XXX.189
,而第二行則禁止了整個(gè)203.XXX.XXX.0/24
網(wǎng)段。
4. 保存并退出:保存您的更改并關(guān)閉文本編輯器。
5. 重啟服務(wù):對(duì)于某些服務(wù)(如ssh),您可能需要重啟相關(guān)服務(wù)以使更改生效。但請(qǐng)注意,對(duì)于hosts.deny
和hosts.allow
文件,通常不需要重啟服務(wù),更改會(huì)立即生效。然而,如果您的系統(tǒng)使用了xinetd
來管理服務(wù),您可能需要執(zhí)行以下命令:
sudo service xinetd restart
但請(qǐng)注意,現(xiàn)代系統(tǒng)通常不使用xinetd
來管理ssh,因此這一步可能不是必需的。確保了解您的系統(tǒng)配置。
方法二:使用iptables進(jìn)行防火墻級(jí)別的訪問控制
- 登錄到服務(wù)器:同樣,首先使用具有足夠權(quán)限的用戶賬戶登錄到您的Linux服務(wù)器。
- 編輯規(guī)則文件或直接應(yīng)用iptables規(guī)則:
您可以直接在命令行中輸入iptables規(guī)則,或者將它們添加到啟動(dòng)腳本中(如/etc/rc.local
),以便在系統(tǒng)重啟時(shí)自動(dòng)應(yīng)用。但是,現(xiàn)代系統(tǒng)通常使用systemd
而不是/etc/rc.local
,因此更推薦的方法是創(chuàng)建自定義的systemd
服務(wù)單元文件或使用現(xiàn)有的管理工具(如firewalld
)。
以下是一些基本的iptables命令示例,用于禁止特定IP或網(wǎng)段的訪問:
sudo iptables -I INPUT -s 61.XXX.XXX.1 -j DROP
sudo iptables -I INPUT -s 61.XXX.XXX.0/24 -j DROP
sudo iptables -I INPUT -s 192.XXX.XXX.0/24 -p tcp –dport 80 -j DROP
這些命令分別禁止了單個(gè)IP、整個(gè)網(wǎng)段和特定網(wǎng)段對(duì)80端口的訪問。請(qǐng)根據(jù)您的需求替換IP地址和端口號(hào)。
3. 保存iptables規(guī)則:如果您直接應(yīng)用了iptables規(guī)則,您需要確保這些規(guī)則在系統(tǒng)重啟后仍然有效。這可以通過安裝iptables-persistent
包或使用其他方法來實(shí)現(xiàn),具體取決于您的Linux發(fā)行版。
4. 重啟服務(wù)器(如果需要):如果您更改了啟動(dòng)腳本或安裝了新軟件包來保存iptables規(guī)則,您可能需要重啟服務(wù)器以使更改生效。但是,如果您只是直接應(yīng)用了iptables規(guī)則,這一步通常不是必需的。
重要提示:在應(yīng)用任何防火墻規(guī)則之前,請(qǐng)確保您已經(jīng)仔細(xì)考慮了這些規(guī)則可能帶來的影響,并始終在生產(chǎn)環(huán)境之外的地方進(jìn)行測試。錯(cuò)誤地配置防火墻可能會(huì)導(dǎo)致您無法遠(yuǎn)程訪問服務(wù)器或?qū)е缕渌馔獾姆?wù)中斷。