Linux利用firewalld和iptables實(shí)現(xiàn)IP端口限制與開放
前言
在服務(wù)器管理中,防火墻是保護(hù)系統(tǒng)安全的重要工具。通常,我們可能會(huì)關(guān)閉firewalld,但在某些情況下,我們需要利用firewalld或iptables來(lái)限制IP請(qǐng)求。本文將詳細(xì)介紹如何使用firewalld和iptables來(lái)實(shí)現(xiàn)IP端口限制與開放。
一、FirewalldIP端口限制
1.1 確認(rèn)啟動(dòng)狀態(tài)
首先,我們需要確認(rèn)firewalld的啟動(dòng)狀態(tài)
sudo systemctl status firewalld
1.2 啟動(dòng)Firewalld
如果firewalld未啟動(dòng),執(zhí)行以下命令啟動(dòng):
sudo systemctl start firewalld
1.3 查看當(dāng)前連接到Nacos的IP
以Nacos為例,查看當(dāng)前連接到Nacos的IP:
netstat -antp | grep ':8848' | awk '{print $5}' | cut -d':' -f1 | sort | uniq
此處查詢的ip僅供參考,可作為梳理后的補(bǔ)充
1.4 添加訪問(wèn)規(guī)則
添加訪問(wèn)規(guī)則,允許特定IP訪問(wèn)Nacos服務(wù):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.1.1.3" port port=8848 protocol=tcp accept'
其中,address是需要連接到Nacos的服務(wù)器的IP(內(nèi)網(wǎng)/彈性都要加),port指定Nacos端口。多個(gè)IP可多次執(zhí)行上面代碼。
1.5 重新加載配置
添加規(guī)則后,重新加載配置:
sudo firewall-cmd --reload
1.6 查看當(dāng)前活動(dòng)的規(guī)則列表
查看當(dāng)前活動(dòng)的規(guī)則列表:
sudo firewall-cmd --list-all
輸出示例:
public (active)
target: default
icmp-block-inversion: no
interfaces: ens3
sources:
services: cockpit dhcpv6-client mdns ssh
ports: 8848/tcp 6379/tcp 8012/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family=“ipv4” source address=“172.1.1.1” port port=“8848” protocol=“tcp” accept
rule family=“ipv4” source address=“172.1.1.2” port port=“8848” protocol=“tcp” accept
rule family=“ipv4” source address=“172.1.1.3” port port=“8848” protocol=“tcp” accept
rule family=“ipv4” source address=“172.1.1.4” port port=“8848” protocol=“tcp” accept
1.7 移除某個(gè)規(guī)則
- 查看當(dāng)前的rich rules
sudo firewall-cmd --list-rich-rules
- 移除 rich rule
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.1.1.4" port port="8848" protocol="tcp" accept'
- 重新加載防火墻
sudo firewall-cmd --reload
- 驗(yàn)證規(guī)則是否已移除
sudo firewall-cmd --list-rich-rules
二、Firewalld 開放端口
上一節(jié)是針對(duì)ip開放端口,那么如何直接開放端口,所有ip都可訪問(wèn)?
2.1 開放 6379端口
sudo firewall-cmd --permanent --add-port=6379/tcp
2.2 重新加載防火墻
添加完規(guī)則后,需要重新加載防火墻以使更改生效:
sudo firewall-cmd --reload
2.3 驗(yàn)證規(guī)則
您可以通過(guò)以下命令來(lái)驗(yàn)證當(dāng)前的防火墻規(guī)則,確保 Redis 的端口已經(jīng)被成功開放:
sudo firewall-cmd --list-all
三、Iptables限制ip端口(未驗(yàn)證)
3.1 添加規(guī)則允許特定IP訪問(wèn)Nacos服務(wù):
sudo iptables -A INPUT -p tcp -s 172.16.17.33 --dport 8848 -j ACCEPT sudo iptables -A INPUT -p tcp -m tcp --dport 8848 -s 172.16.61.83 -j ACCEPT
3.2 保存 iptables 規(guī)則
Ubuntu/Debian:
sudo iptables-save > /etc/iptables.up.rules
CentOS/RHEL:
sudo service iptables save
3.3 解決瀏覽器無(wú)法訪問(wèn)Nacos頁(yè)面的問(wèn)題
添加完規(guī)則之后,可能瀏覽器依然無(wú)法訪問(wèn)Nacos頁(yè)面,并且對(duì)應(yīng)服務(wù)器可能ping通,但curl無(wú)法訪問(wèn)??赡苁且?yàn)橛幸粭l規(guī)則導(dǎo)致的,去掉后可以正常訪問(wèn)。
5 REJECT all – 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
總結(jié)
在服務(wù)器管理中,梳理清楚當(dāng)前服務(wù)器有哪些需要對(duì)外訪問(wèn)的服務(wù)非常重要。類似1.3中查看連接IP并不全面,因此需要結(jié)合實(shí)際情況進(jìn)行規(guī)則配置。通過(guò)firewalld和iptables,我們可以靈活地控制IP端口的訪問(wèn)權(quán)限,從而提升服務(wù)器的安全性。
以上就是使用firewalld和iptables實(shí)現(xiàn)IP端口限制與開放的詳細(xì)內(nèi)容,更多關(guān)于firewalld iptables IP端口限制與開放的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Linux deepin 刪除多余內(nèi)核的實(shí)現(xiàn)方法
這篇文章主要介紹了Linux deepin 刪除多余內(nèi)核的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12騰訊云(ubuntu)下安裝 nodejs + 實(shí)現(xiàn) Nginx 反向代理服務(wù)器
本文將介紹如何給騰訊云上的 Ubuntu Server 12.04 LTS 64位主機(jī)安裝 node 及 nginx,并簡(jiǎn)單配置反向代理。2016-11-11Centos 7.4中的遠(yuǎn)程訪問(wèn)控制的實(shí)現(xiàn)方法
這篇文章主要介紹了Centos 7.4中的遠(yuǎn)程訪問(wèn)控制的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11使用Apache HttpClient執(zhí)行GET、POST、PUT和DELETE請(qǐng)求的操作方法
Apache HttpClient 是一個(gè)功能強(qiáng)大且靈活的庫(kù),用于在Java中處理HTTP請(qǐng)求,本教程將演示如何使用Apache HttpClient來(lái)執(zhí)行GET、POST、PUT和DELETE請(qǐng)求,感興趣的朋友跟隨小編一起看看吧2024-12-12Windows 10 下安裝 Apache 2.4.41的教程
這篇文章主要介紹了Windows 10 下安裝 Apache 2.4.41的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01Linux下gdb調(diào)試打印進(jìn)程內(nèi)存信息方式
這篇文章主要介紹了Linux下gdb調(diào)試打印進(jìn)程內(nèi)存信息方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09