Linux防火墙

以下设置均在Ubuntu中操作

UFW防火墙配置

小白使用UFW

如果你对防火墙不了解,那么,这里适合你,按照以下步骤操作即可

Ubuntu安装UFW

1
sudo apt-get install ufw

CentOS安装UFW

CentOS默认软件源不提供UFW,所以你需要安装EPEL软件源,运行以下命令:

1
yum install epel-release -y

安装完成后使用以下命令安装UFW:

1
yum install --enablerepo="epel" ufw -y

安装完成了,就可以使用下面的命令了。

启动UFW

1
sudo ufw enable

默认拒绝外部访问本机

1
sudo ufw default deny

开放/拒绝端口

如需外部访问本机某端口,则使用以下开放端口命令

1
2
3
4
# 举例:开放 8080 端口
sudo ufw allow 8080
# 举例:拒绝外部访问 8090 端口
sudo ufw deny 8090

UFW防火墙未开启

UFW安装

1
sudo apt-get install ufw

启动防火墙

1
2
sudo ufw enable				#开启防火墙
sudo ufw default deny # 设置拒绝外部访问本机

运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。

禁止开机启动UFW(关闭UFW)

1
sudo ufw disable

开启/禁用服务

1
sudo ufw allow|deny [service]

开启/禁用端口

1
sudo ufw allow|deny [service]

举例

允许所有的外部IP访问本机的25/tcp (smtp)端口

1
sudo ufw allow smtp	

允许所有的外部IP访问本机的22/tcp (ssh)端口

1
sudo ufw allow 22/tcp

允许外部访问53端口(tcp/udp)

1
sudo ufw allow 53 

禁用53端口

1
sudo ufw delete allow 53

指定IP访问所有的本机端口

1
sudo ufw allow from 192.168.1.100 

删除某条这条规则

即上面刚新建的规则

1
sudo ufw delete allow from 192.168.1.100 

禁止外部访问smtp服务

1
sudo ufw deny smtp 	

删除上面建立的某条规则

1
sudo ufw delete allow smtp 

查看防火墙状态及规则

1
sudo ufw status

开启/关闭防火墙

1
sudo  ufw enable|disable

转换日志状态

1
sudo  ufw logging on|off

设置默认策略

(比如 “mostly open” vs “mostly closed”)

1
sudo  ufw default allow|deny

查看防火墙版本

1
sudo ufw version

重启UFW防火墙

1
sudo ufw reload

重置UFW防火墙配置

1
sudo ufw reset

Firewalld防火墙配置

Firewalld是CentOS 7的防火墙,但,Firewalld底层调用的命令还是iptables,所以后面也有必要学一学iptables防火墙。

启动、关闭、重启

启动防火墙

1
systemctl start firewalld

关闭防火墙

1
systemctl stop firewalld

重启防火墙

1
systemctl restart firewalld.service

开机自启、开机不启动

开机自启

开机自动启动防火墙。

1
systemctl enable firewalld

开机启动

表示开机自动关闭防火墙。

1
systemctl disable firewalld.service # 设置开机不启动

查看防火墙

查看防火墙状态

1
systemctl status firewalld.service

查看防火墙默认状态

1
firewall-cmd --state

查看防火墙的服务

1
firewall-cmd --get-services

查看防火墙正在使用的域

1
firewall-cmd --get-active-zones

查看防火墙默认域

1
firewall-cmd --get-default-zone

查看防火墙的域

1
firewall-cmd --get-zones

列出public域的所有设置

1
firewall-cmd --zone=public --list-all

查看已启动的服务列表

1
systemctl list-unit-files|grep enabled

开启端口

这里指定开启80端口,并且是tcp协议,如果需要udp,将tcp改为udp即可

1
firewall-cmd --zone=public --add-port=80/tcp --permanent

命令含义:
–zone :作用域
–add-port=80/tcp :添加端口,格式为:端口/通讯协议
–permanent :永久生效,没有此参数重启后失效

开启 or 关闭防火墙端口,都需要重新加载防火墙才生效

加载防火墙配置

操作Firewalld防火墙命令必须reload才生效

1
firewall-cmd --reload

Iptables防火墙配置

开放端口

案例一

1
iptables -I INPUT -p tcp --dport 8001 -j ACCEPT
  • -p:采用tcp协议

  • -j:动作为ACCEPT

案例二

1
iptables -t filter A INPUT -p tcp --dport 22 -j ACCEPT

参数:

  • -t:表的选择

  • A :追加

  • -p :采用tcp协议

  • -dport:指定开放端口22

  • -j :动作为ACCEPT