近日使用一台ubuntu18.04的桌面版开通了一些服务,但是出于安全考虑,需要对访问服务的端口及来访IP地址进行限制,默认关闭所有进入机器的流量,开启机器访问出去的流量。
1、ubuntu默认安装了ufw防火墙软件
默认ufw防火墙没有打开,需要手工显式打开,打开ufw防火墙的命令如下:
sudo ufw enable
2、设置默认网络安全规则
sudo ufw default deny incoming #拒绝掉所有流入机器流量
sudo ufw default allow outgoing #允许所有从机器流出流量
查看默认网络安全设置效果
3、查看本机开启服务的端口,确定有权限访问本地服务的IP地址及网段
netstat -ntlp #查看本地处于监听状态的服务端口号
确定本地需要外部访问的端口是22、2080、3080端口,假设只允许133.3.5.0/24和133.3.103.241地址访问
4、 配置具体开发网络服务安全策略
sudo ufw allow from 133.3.5.0/24 to 133.3.103.170 port 2080
sudo ufw allow from 133.3.5.0/24 to 133.3.103.170 port 3080
sudo ufw allow from 133.3.5.0/24 to 133.3.103.170 port 22
sudo ufw allow from 133.3.103.141 to 133.3.103.170 port 3080
通过sudo ufw status verbose命令查看配置后的效果如上图,可以发现默认的incoming方向动作是deny,对于outgoing方向默认是运行访问的,下面的ip及网段部分是对incoming方向的例外配置,也就是说采用了白名单方法配置,只有名单中存在的部分才能访问指定的IP加端口。
假设本地主机不止133.3.103.170这一个IP地址,完全可以对该主机所有不同的IP地址服务分别进行授权,非常方便。
5、网络安全例外规则修改
首先通过sudo ufw status numbered verbose 命令查看规则对应的【】内数字ID
比如要删除最后一条规则,可以通过
sudo ufw delete 4
或者直接通过直接删除rule的形式删除
sudo ufw delete allow from 133.3.103.141 to 133.3.103.170 port 3080
6、规则总结
from 指的是外部访问ip或子网,也就是需要允许或禁止的IP
to 指的是本地主机ip 端口 ,支持多地址主机配置,比如一台主机有192.168.1.2/133.3.103.170/202.103.44.150 三个IP地址,可以针对这三个IP地址分别设置,如果不想分开设置可以使用any关键字代替,比如:
sudo ufw allow from 133.3.5.0/24 to any port 22
action 匹配条件后的动作,有allow和deny两种操作