通过编写防火墙规则,可以拒绝对服务器的某些访问请求。 Ubuntu Server 使用一个叫 Uncomplicated FireWall(ufw)的防火墙管理工具,它实际上是一个 iptable 的管理工具。iptable 根据系统管理员编写的一系列规则筛选网络数据包。对于初学者来说,iptable 可能比较复杂,所以 UFW 将其进行了简化。
要使用ufw 必须安装它。可以使用命令 sudo apt-get install ufw进行安装。 下面介绍utf的常见用法
1. 启用/禁止/重新加载防火墙
ufw [--dry-run] enable | disable | reload
命令[--试运行]启用|禁用|重新加载
ubuntu会记住防火墙的状态,重启后会自动启用或禁止.
2. 默认 允许/阻止/拒绝 入站或出站的数据包
ufw [--dry-run] default allow|deny|reject [in|out on INTERFACE] [proto protocol] [from ADDRESS [port PORT]] [to ADDRESS [port PORT]]
命令[--试运行]默认 允许|阻止|拒绝 [进|出 基于“什么网络设备”] [协议 “协议”] [来源 “地址” [端口 “端口”]] [目标 “地址” [端口 “端口”]]
注:reject让访问者知道数据被拒绝(回馈拒绝信息)。deny则直接丢弃访问数据,访问者不知道是访问被拒绝还是不存在该主机。
举例:
sudo ufw allow 65000 #允许外部IP访问本机65000端口
sudo ufw deny 65000 #阻止外部IP访问本机65000端口
sudo ufw alow 65000/tcp #允许外部IP通过tcp协议访问本机65000端口
sudo ufw deny http # 阻止所有http通信
sudo ufw allow proto tcp from 192.168.1.30 to 192.168.1.5 port 65000
# 允许IP为192.168.1.30的机器通过TCP协议访问IP为192.128.1.5的机器的65000端口
sudo ufw default allow/deny/reject # 除非有例外, 否则 允许/阻止/拒绝所有外部对本机的访问,但本机访问外部正常
3. 检查当前 UFW 运行的规则
ufw [--dry-run] status [verbose|numbered]
命令[--试运行]状态 [详细|被编号的规则]
4. 插入或删除某个规则
sudo ufw delete 1 # 删除sudo ufw status列出的第1条规则
sudo ufw delete allow http # 删除允许外部IP访问http服务的规则
sudo ufw insert 1 allow ssh # 在第1条规则前插入一条新都规则
5. 复位
ufw [--dry-run] reset
命令[--试运行]复位
6. 开启或关闭日志,定义日志级别
ufw [--dry-run] logging on | off | LEVEL
命令[--试运行]日志 开启|关闭|“级别”
7 查看防火墙的状态
sudo ufw status
一般用户,只需如下设置:
sudo apt-get install ufw
sudo ufw enable
sudo default deny
以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。