About防火墙
防火墙是用于监控和过滤传入和传出网络流量的工具。 它通过定义一组确定是允许还是阻止特定流量的安全规则来工作。
Linux原始的防火墙工具iptables可用于Ubuntu下开启/关闭防火墙及端口。
但是iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw,以简化iptables的某些设定,其后台仍然是 iptables。
ufw 即uncomplicated firewall的简称,它的主要目标是使防火墙的管理变得更容易,一些复杂的设定还是要使用iptables。
安装 ufw
1 | sudo apt-get install ufw |
启用 ufw
1 | sudo ufw enable |
这两条命令的作用:开启防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。
开启/禁用 服务或端口
1 | sudo ufw allow|deny [service] |
打开或关闭某个端口,例如:
- sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
- sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
- sudo ufw allow 53 允许外部访问53端口(tcp/udp)
- sudo ufw allow from 192.168.1.1 允许此IP访问所有的本机端口
- sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
- sudo ufw deny smtp 禁止外部访问smtp服务
- sudo ufw delete allow smtp 删除上面建立的某条规则
- sudo ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25:允许自10.0.1.0/10的tcp封包访问本机的25端口。
查看防火墙状态
1 | sudo ufw status |
一台常见的web server只需开启 443/80 22 53端口:
1 | sudo ufw status |
- 22: SSH登陆机器用
- 443/80: http服务使用
- 53: DNS使用 - DNS uses Port 53 which is nearly always open on systems, firewalls, and clients to transmit DNS queries.
重启防火墙
1 | sudo ufw reload |
小结
一般用户,只需如下设置:
1 | sudo apt update |
以上三条命令已经足够安全了,如果你需要开放某些服务和端口,再使用sudo ufw allow开启。