Ubuntu 16.04配置UFW防火牆

配置默認策略

sudo vim /etc/default/ufw

有如下默認規則:

IPV6=yes

這個開啓時,寫一條規則將自動變成兩條:IPv4的和IPv6的;如果用不上的話可以將其改爲no。

配置進入規則

默認情況下開啓ufw,會禁止一切從外到內的連接,可以直接建立白名單規則。

也可以手動配置是否禁用一切進入:

sudo ufw default allow incoming
sudo ufw default deny incoming

單個端口

開放ssh:

sudo ufw allow ssh

等價於

sudo ufw allow 22

因爲在/etc/services文件中記錄了ssh對應的端口是22。

範圍端口

開放6000到6007之間的TCP、UDP端口:

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

限定外部ip

sudo ufw allow from 203.0.113.4

這裏的IP也可以是一個網段:

sudo ufw allow from 203.0.113.0/24

限定外部ip+內部port

允許某個IP連接ssh:

sudo ufw allow from 203.0.113.4 to any port 22

限定網絡接口

若有多個網絡接口,可以通過allow in on限定允許接入的網絡接口,比如指定只能從eth0網絡接口訪問80端口:

sudo ufw allow in on eth0 to any port 80

配置外出規則

也可以限制從內向外的連接,這樣能防止連接到反彈木馬等不可預料的服務上。

默認情況下是允許一切外出連接的,這裏先禁止一切外出,再添加白名單:

sudo ufw default deny outgoing

限定連向某個端口

sudo ufw allow out 53 # DNS 53

限定連向某個IP+端口

sudo ufw allow out to 11.22.33.44 port http   # TCP 80
sudo ufw allow out to 11.22.33.44 port https  # TCP 443

限定從某個網絡接口外出

sudo ufw allow out on ens33 to any port 53

查看狀態和管理規則

查看防火牆狀態:

sudo ufw status
sudo ufw status verbose

查看帶編號的規則,刪除第2條:

sudo ufw status numbered
sudo ufw delete 2

也可以刪除指定的端口

sudo ufw delete allow http

sudo ufw delete allow 80

這個能同時刪除 IPv4 和 IPv6 的規則。

重啓 UFW 服務:

ufw reload

禁用ICMP

爲了防止nmap等軟件掃描,可以禁用ICMP響應。

修改配置文件/etc/ufw/before.rules

cp /etc/ufw/before.rules /etc/ufw/before.rules_backup_date
vim /etc/ufw/before.rules

初始內容如下:

# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

將上面的ACCEPT修改爲DROP:

# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
-A ufw-before-input -p icmp --icmp-type source-quench -j DROP
-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

重啓 UFW 服務即可:

ufw reload
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章