- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
歡迎來到藍隊云技術小課堂,每天分享一個技術小知識。
在 Ubuntu 系統中配置 iptables 防火墻,實際上是通過一系列步驟來控制網絡流量的進出,確保系統的安全性。下面我將詳細講解如何安裝、配置以及確保防火墻生效的過程。
1. 檢查是否安裝 iptables
首先,檢查系統中是否已經安裝了 iptables:
whereis iptables
如果輸出了相關信息,說明已經安裝了。如果沒有安裝,可以通過以下命令進行安裝:
sudo apt-get install iptables
2. 編輯 iptables 策略
iptables 的規則可以通過編輯 /etc/iptables.rules 文件來進行配置。在這個文件中,我們可以設置允許和拒絕的網絡流量。例如,常見的規則設置如下:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# 允許常用端口
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # 允許 HTTP
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT # 允許 HTTPS
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT # 允許 SSH
# 允許本地回環接口
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
# 允許 ICMP 請求(即 ping)
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# 允許已建立連接的流量
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 其他未明確允許的流量一律拒絕
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
在上述規則中,我們開放了 HTTP (80)、HTTPS (443) 和 SSH (22) 端口,同時確保本地回環接口 (lo) 不受限制。此外,我們允許 ICMP 請求(即 ping)并確保已建立的連接能夠正常通信。
3. 加載并生效規則
編輯完成規則文件后,可以通過以下命令加載并使規則生效:
sudo iptables-restore < /etc/iptables.rules
使用 iptables -L -n 命令可以查看當前的防火墻規則,確認配置是否生效。
4. 確保防火墻開機自啟
為了確保防火墻配置在系統重啟后自動加載,我們需要做以下操作:
創建軟鏈接,確保防火墻規則在系統啟動時加載:
sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/
編輯 /lib/systemd/system/rc-local.service 文件,在 [Install] 部分添加以下內容:
[Install]
WantedBy=multi-user.target
編輯并創建 /etc/rc.local 文件,添加防火墻啟動命令:
sudo vi /etc/rc.local
在文件中加入:
iptables-restore < /etc/iptables.rules
給 /etc/rc.local 文件添加執行權限:
sudo chmod +x /etc/rc.local
最后,啟用并啟動服務:
sudo systemctl start rc-local.service
sudo systemctl enable rc-local.service
5. 常見命令和操作
查看現有規則:
sudo iptables -L -n
清空現有規則并設置默認策略:
sudo iptables -P INPUT ACCEPT
sudo iptables -F
sudo iptables -X
sudo iptables -Z
允許來自本地回環接口的數據包:
sudo iptables -A INPUT -i lo -j ACCEPT
開放常用端口:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允許 SSH
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允許 HTTP
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允許 HTTPS
拒絕來自特定 IP 的請求:
sudo iptables -I INPUT -s 192.168.1.100 -j DROP
保存規則:
sudo service iptables save
藍隊云官網上擁有完善的技術支持庫可供參考,大家可自行查閱,更多技術問題,可以直接咨詢。同時,藍隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP