Ubuntu使用ufw或iptables配置防火墙(转)

防火墙只开放ssh(22端口),http(80端口).
Ubuntu使用ufw可以这样做:
sudo ufw enable && \
sudo ufw default deny && \
sudo ufw allow 22/tcp && \
sudo ufw allow 80/tcp && \
sudo ufw status
可以这样删除,比如80端口:
sudo ufw delete allow 80/tcp
Ubuntu使用iptables可以这样做:
sudo ufw disable && sudo ufw default allow 设置INPUT/FORWARD/OUTPUT为ACCEPT,如果为DENY,下一步骤将使系统的所有网络访问中断,包括ssh.
sudo iptables -F && sudo iptables -X && sudo iptables -Z && sudo iptables -L
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
sudo iptables -A INPUT -j DROP
iptables-save > /etc/iptables.up.rules 切换到root用户执行,sudo会提示无权限.Redhat的保存操作为service iptables save.
sudo nano /etc/network/interfaces 在末尾添加一行,在网络启动时应用防火墙规则:
pre-up iptables-restore < /etc/iptables.up.rules 查看设置的规则: sudo iptables -nvL --line-numbers 插入一条规则到INPUT链第6的位置: sudo iptables -I INPUT 6 -j DROP 修改INPUT链的第6条规则: sudo iptables -R INPUT 6 -j ACCEPT 删除INPUT链第6条规则: sudo iptables -D INPUT 6