在服务器中安装防火墙软件就相当于给所有的端口配了一把锁,任何程序要开端口监听或对外连接,都需要通过防火墙的规则去允许他。在Ubuntu Server服务器中可以使用UFW防火墙软件。
可以使用如下命令查看防火墙的安装状态:
sudo ufw status(如果你是root,则去掉sudo,ufw status)
如果返回的是inactive,则说明防火墙没有被启用。Ubuntu系统默认是安装UFW防火墙的,如果没有安装可以使用如下命令安装:
sudo apt-get install ufw
还可以使用如下命令查看防火墙的版本:
sudo ufw version
1 防火墙的启用
防火墙安装完成后可以使用如下命令开启防火墙:
sudo ufw enable
sudo ufw default deny
第一条命令开启防火墙,第二条命令设置在系统启动时自动开启防火墙。关闭防火墙的命令为:
sudo ufw disable
可以使用如下命令开启或关闭防火墙的日志:
ufw logging on|off
2 端口设置
防火墙开启后默认关闭所有外部对本机的访问,但本机访问外部正常。如果要允许外部访问服务器需要开启相应的端口。UFW开启或关闭端口的命令为:
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.100 #允许此IP访问所有的本机端口
ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25:允许自10.0.1.0/10的tcp封包访问本机的25端口
sudo ufw deny smtp #禁止外部访问smtp服务
sudo ufw delete allow from 192.168.254.254
sudo ufw delete allow smtp #删除上面建立的某条规则
3 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使得新规则生效。