ufw是个很简单的防火墙生成器。
简单操作便可生的可靠的规则。
- sudo apt-get install ufw
- sudo ufw enable
- sudo ufw default deny
- sudo ufw allow proto tcp from 192.168.0.0/16 to any port 22
- sudo ufw allow proto tcp from 123.123.123.123/32 to any port 22
- sudo ufw allow proto udp from 192.168.0.0/16 to any port 123
- sudo ufw allow proto udp from 192.168.0.0/16 to any port 161
- sudo ufw allow proto tcp from 192.168.0.0/16 to any port 5666
- sudo ufw allow proto tcp from 192.168.0.0/16 to any port 9102
- sudo ufw allow 80/tcp
查看ufw状态
- $ sudo ufw status
- Status: active
- To Action From
- -- ------ ----
- 22/tcp ALLOW 192.168.0.0/16
- 22/tcp ALLOW 123.123.123.123
- 123/udp ALLOW 192.168.0.0/16
- 161/udp ALLOW 192.168.0.0/16
- 5666/tcp ALLOW 192.168.0.0/16
- 9102/tcp ALLOW 192.168.0.0/16
- 80/tcp ALLOW Anywhere
- 80/tcp ALLOW Anywhere (v6)
查看规则
- $ sudo iptables-save
- # Generated by iptables-save v1.4.12 on Fri Nov 2 19:24:23 2012
- *filter
- :INPUT DROP [1:32]
- :FORWARD DROP [0:0]
- :OUTPUT ACCEPT [0:0]
- :ufw-after-forward - [0:0]
- :ufw-after-input - [0:0]
- :ufw-after-logging-forward - [0:0]
- :ufw-after-logging-input - [0:0]
- :ufw-after-logging-output - [0:0]
- :ufw-after-output - [0:0]
- :ufw-before-forward - [0:0]
- :ufw-before-input - [0:0]
- :ufw-before-logging-forward - [0:0]
- :ufw-before-logging-input - [0:0]
- :ufw-before-logging-output - [0:0]
- :ufw-before-output - [0:0]
- :ufw-logging-allow - [0:0]
- :ufw-logging-deny - [0:0]
- :ufw-not-local - [0:0]
- :ufw-reject-forward - [0:0]
- :ufw-reject-input - [0:0]
- :ufw-reject-output - [0:0]
- :ufw-skip-to-policy-forward - [0:0]
- :ufw-skip-to-policy-input - [0:0]
- :ufw-skip-to-policy-output - [0:0]
- :ufw-track-input - [0:0]
- :ufw-track-output - [0:0]
- :ufw-user-forward - [0:0]
- :ufw-user-input - [0:0]
- :ufw-user-limit - [0:0]
- :ufw-user-limit-accept - [0:0]
- :ufw-user-logging-forward - [0:0]
- :ufw-user-logging-input - [0:0]
- :ufw-user-logging-output - [0:0]
- :ufw-user-output - [0:0]
- -A INPUT -j ufw-before-logging-input
- -A INPUT -j ufw-before-input
- -A INPUT -j ufw-after-input
- -A INPUT -j ufw-after-logging-input
- -A INPUT -j ufw-reject-input
- -A INPUT -j ufw-track-input
- -A FORWARD -j ufw-before-logging-forward
- -A FORWARD -j ufw-before-forward
- -A FORWARD -j ufw-after-forward
- -A FORWARD -j ufw-after-logging-forward
- -A FORWARD -j ufw-reject-forward
- -A OUTPUT -j ufw-before-logging-output
- -A OUTPUT -j ufw-before-output
- -A OUTPUT -j ufw-after-output
- -A OUTPUT -j ufw-after-logging-output
- -A OUTPUT -j ufw-reject-output
- -A OUTPUT -j ufw-track-output
- -A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
- -A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
- -A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
- -A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
- -A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
- -A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
- -A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
- -A ufw-after-logging-forward -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
- -A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
- -A ufw-before-forward -j ufw-user-forward
- -A ufw-before-input -i lo -j ACCEPT
- -A ufw-before-input -m state --state RELATED,ESTABLISHED -j ACCEPT
- -A ufw-before-input -m state --state INVALID -j ufw-logging-deny
- -A ufw-before-input -m state --state INVALID -j DROP
- -A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
- -A ufw-before-input -p icmp -m icmp --icmp-type 4 -j ACCEPT
- -A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
- -A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
- -A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
- -A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT
- -A ufw-before-input -j ufw-not-local
- -A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT
- -A ufw-before-input -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT
- -A ufw-before-input -j ufw-user-input
- -A ufw-before-output -o lo -j ACCEPT
- -A ufw-before-output -m state --state RELATED,ESTABLISHED -j ACCEPT
- -A ufw-before-output -j ufw-user-output
- -A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
- -A ufw-logging-deny -m state --state INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
- -A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
- -A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
- -A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
- -A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
- -A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
- -A ufw-not-local -j DROP
- -A ufw-skip-to-policy-forward -j DROP
- -A ufw-skip-to-policy-input -j DROP
- -A ufw-skip-to-policy-output -j ACCEPT
- -A ufw-track-output -p tcp -m state --state NEW -j ACCEPT
- -A ufw-track-output -p udp -m state --state NEW -j ACCEPT
- -A ufw-user-input -s 192.168.0.0/16 -p tcp -m tcp --dport 22 -j ACCEPT
- -A ufw-user-input -s 123.123.123.123/32 -p tcp -m tcp --dport 22 -j ACCEPT
- -A ufw-user-input -s 192.168.0.0/16 -p udp -m udp --dport 123 -j ACCEPT
- -A ufw-user-input -s 192.168.0.0/16 -p udp -m udp --dport 161 -j ACCEPT
- -A ufw-user-input -s 192.168.0.0/16 -p tcp -m tcp --dport 5666 -j ACCEPT
- -A ufw-user-input -s 192.168.0.0/16 -p tcp -m tcp --dport 9102 -j ACCEPT
- -A ufw-user-input -p tcp -m tcp --dport 80 -j ACCEPT
- -A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
- -A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
- -A ufw-user-limit-accept -j ACCEPT
- COMMIT
- # Completed on Fri Nov 2 19:24:23 2012
生成的规则果然还是比较漂亮的。
本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1048575,如需转载请自行联系原作者