Linux添加访问控制策略

ubuntu系统默认已安装ufw。

Linux 2.4内核以后提供了一个非常优秀的防火墙工具:netfilter/iptables,他免费且功能强大,可以对流入、流出的信息进行细化控制,它可以 实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。

但是iptables的规则稍微有些“复杂”,因此ubuntu提供了ufw这个设定工具,以简化iptables的某些设定,其后台仍然是 iptables。ufw 即uncomplicated firewall的简称,一些复杂的设定还是要去iptables。

ufw相关的文件和文件夹有:

  • /etc /ufw/:里面是一些ufw的环境设定文件,如 before.rules、after.rules、sysctl.conf、ufw.conf,及 for ip6 的 before6.rule 及 after6.rules。
    这些文件一般按照默认的设置进行就ok。若开启ufw之 后,__/etc/ufw/sysctl.conf__会覆盖默认的__/etc/sysctl.conf__文件,若你原来的/etc/sysctl.conf做了修 改,启动ufw后,若/etc/ufw/sysctl.conf中有新赋值,则会覆盖/etc/sysctl.conf的,否则还以/etc /sysctl.conf为准。当然你可以通过修改/etc/default/ufw中的“IPT_SYSCTL=”条目来设置使用哪个 sysctrl.conf.

  • /var/lib/ufw/user.rules 这个文件中是我们设置的一些防火墙规则,打开大概就能看明白,有时我们可以直接修改这个文件,不用使用命令来设定。修改后记得ufw reload重启ufw使得新规则生效。

0x01 安装UFW

1
sudo apt-get install ufw

0x02 启用UFW

1
2
sudo ufw enable
sudo ufw default deny

打开ufw防火墙,并在系统启动时自动开启。

关闭所有外部对本机的访问,但本机访问外部正常。

0x03 设置访问控制策略

1
sudo ufw allow|deny [service]

打开或关闭某个端口,例如:

1
2
3
4
5
6
sudo ufw allow smtp #允许所有的外部ip访问本机的25/tcp(smtp)端口
sudo ufw allow 22/tcp #允许所有的外部ip访问本机的22/tcp(ssh)端口
sudo ufw allow 53 #允许所有的外部ip访问本机的53端口(tcp/udp)
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 #删除上面建立的某条规则

给某一ip添加规则:

1
2
sudo ufw allow from 192.168.1.100 #允许此ip访问所有的本机端口
sudo ufw delete allow from 192.168.1.100 #删除上面的规则

0x04 查看UFW防火墙状态

1
sudo ufw status

0x05 开启/关闭UFW防火墙

1
sudo ufw enable|disable