1. UOS支持的防火墻
iptables ufw firewalld Netfilter區別?
iptables ufw firewall 都是前端管理,Netfilter才是內核。
統信的UOS服務器操作系統是基于Debian開發的,因此和Debian和Ubuntu很多命令都是相同的。在Debian和Ubuntu上面可以使用的防火墻在UOS也是可以正常使用的。
默認情況下,Debian使用iptables,Ubuntu有iptables,也使用簡單的ufw,在CentOS7 之前使用的是iptables,CentOS 7開始使用firewall,Centos 7前可以使用iptables命令也可以直接編輯文件/etc/sysconfig/iptables,在firewall一般都是使用命令。在Debian和UOS是使用iptables命令,由于不是直接編輯配置文件,需要對iptables命令比較熟悉,再就是對重啟生效需要編輯文件設置。ufw也可以在UOS使用,由于是簡易的命令,在本文主要討論怎么使用iptables來設置防火墻功能。
2. 防火墻設置
UOS防火墻設置步驟:
- 檢查iptables有沒有安裝
如果之前有使用CentOS經驗使用service iptables status 是檢查不出來的,在CentOS中iptables是以服務形式,這里iptables只是配置的前端的命令,也不能使用yum list查看。而是使用apt list|grep iptables 看到已經安裝。表示已經正常安裝,如果沒有安裝可以使用apt install iptables 或者apt-get install iptables,如果想要使用ufw安裝apt install ufw,如果希望使用firewall,也可以安裝后使用。


- 清空原有規則
iptables -L 可以查看現有生效的規則
iptables -P INPUT ACCEPT 清空規則前放開INPUT 否則清空以后可能導致無法遠程連接
#清空配置
iptables -F【清空規則】
iptables -X 【刪除自建鏈】
iptables -Z 【重置過濾包數據】


- 新建規則配置文件
第一種方式,編輯/etc/iptables.sh然后賦予執行權限chmod +x /etc/iptables.sh。執行以后規則就生效了,如果需要修改規則每次都可以修改此文件。
第二種方式配置文件/etc/iptables(需要使用/sbin/iptables-restore 導入規則,可以配置重啟時就執行該文件)
#清空配置
iptables -F
iptables -X
iptables -Z
#配置,禁止進,允許出,允許回環網卡
iptables -P INPUT DROP
iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#允許ping
iptables -A INPUT -p icmp -j ACCEPT
#允許ssh
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
#允許VNC
iptables -A INPUT -p tcp –dport 5900 -j ACCEPT
#學習felix,把smtp設成本地
iptables -A INPUT -p tcp -m tcp –dport 25 -j ACCEPT -s 127.0.0.1
iptables -A INPUT -p tcp -m tcp –dport 25 -j REJECT
#允許DNS
iptables -A INPUT -p tcp -m tcp –dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp –dport 53 -j ACCEPT
#允許http和https
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 443 -j ACCEPT
# 允許已建立的或相關連的通行
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
#禁止其他未允許的規則訪問
iptables -A INPUT -j REJECT #(注意:如果22端口未加入允許規則,SSH鏈接會直接斷開。)
iptables -A FORWARD -j REJECT
- 導入規則
iptables-save >/etc/iptables 【保存規則】
/sbin/iptables-restore </etc/iptables 【導入規則】
- 設置重啟生效腳本
1.)將iptables.sh腳本放到init.d中每次都重啟【需要保障iptables腳本一致都是最新的規則,如果是后續臨時修改的規則可能不在其中】
2.)編輯/etc/network/if-pre-up.d/iptables,重啟會自動生效。要保障/etc/iptables中規則一致是最新的,每次修改規則可以編輯/etc/iptables 如果是使用iptables命令新增,需要增加iptables-save >/etc/iptables 保存。
#!/bin/sh
/sbin/iptables-restore < /etc/iptables
3. 防火墻腳本
編輯如下腳本【第一次執行】,后續編輯/etc/iptables,使用/sbin/iptables-restore < /etc/iptables重新導入,或者直接iptables命令新增,iptables-save>/etc/iptables 保存,防止機器重啟無效
#!/bin/sh
#防火墻腳本
echo “#!/bin/sh
/sbin/iptables-restore < /etc/iptables” >/etc/network/if-pre-up.d/iptables
echo “#清空配置
iptables -F
iptables -X
iptables -Z
#配置,禁止進,允許出,允許回環網卡
iptables -P INPUT DROP
iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#允許ping
iptables -A INPUT -p icmp -j ACCEPT
#允許ssh
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
#允許VNC
iptables -A INPUT -p tcp –dport 5900 -j ACCEPT
#學習felix,把smtp設成本地
iptables -A INPUT -p tcp -m tcp –dport 25 -j ACCEPT -s 127.0.0.1
iptables -A INPUT -p tcp -m tcp –dport 25 -j REJECT
#允許DNS
iptables -A INPUT -p tcp -m tcp –dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp –dport 53 -j ACCEPT
#允許http和https
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 443 -j ACCEPT
# 允許已建立的或相關連的通行
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
#禁止其他未允許的規則訪問
iptables -A INPUT -j REJECT #(注意:如果22端口未加入允許規則,SSH鏈接會直接斷開。)
iptables -A FORWARD -j REJECT” > /etc/iptables.sh
chmod +x /etc/iptables.sh
chmod +x /etc/network/if-pre-up.d/iptables
/etc/iptables.sh
iptables-save > /etc/iptables
/sbin/iptables-restore < /etc/iptables
4. 關閉防火墻(清空所有規則,刪除腳本,關閉重啟)
iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
rm /etc/iptables*
rm /etc/network/if-pre-up.d/iptables
5. 配置黑白名單
#黑白名單
####當只有部分人可以訪問使用白名單,當只有部分人不能訪問使用黑名單
##設置鏈名
iptables -N whitelist
iptables -N blacklist
##設置自定義鏈規則
iptables -A whitelist -s xxxx ACCEPT
iptables -A blacklist -s xxxx DROP
##設置INPUT規則
iptables -A INPUT -p tcp –dport 22 -j whitelist
iptables -A INPUT -p tcp –dport 22 -j blacklist
#刪除規則
iptables -D INPUT 數字(iptables -L INPUT –line-numbers 查看對應鏈的規則序號)
iptables -D INPUT -p tcp –dport 22 -j whitelist (也可以使用設置規則時相同的命令把A改成D)
#刪除自定義鏈
iptables -X 鏈名(注意內置鏈不可刪除)
iptables -Z 置零
iptables -F 清空規則
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。