{% note info simple %}
以下设置均在Ubuntu中操作
{% endnote %}
UFW防火墙配置
小白使用UFW
如果你对防火墙不了解,那么,这里适合你,按照以下步骤操作即可
Ubuntu安装UFW
bash 复制
BASH
sudo apt-get install ufw

CentOS安装UFW
CentOS默认软件源不提供UFW,所以你需要安装EPEL软件源,运行以下命令:
bash 复制
BASH
yum install epel-release -y
安装完成后使用以下命令安装UFW:
bash 复制
BASH
yum install --enablerepo="epel" ufw -y
安装完成了,就可以使用下面的命令了。
启动UFW
bash 复制
BASH
sudo ufw enable默认拒绝外部访问本机
bash 复制
BASH
sudo ufw default deny
开放/拒绝端口
如需外部访问本机某端口,则使用以下开放端口命令
bash 复制
BASH
# 举例:开放 8080 端口sudo ufw allow 8080
# 举例:拒绝外部访问 8090 端口sudo ufw deny 8090
UFW防火墙未开启

UFW安装
bash 复制
BASH
sudo apt-get install ufw
启动防火墙
bash 复制
BASH
sudo ufw enable #开启防火墙sudo ufw default deny # 设置拒绝外部访问本机运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。

禁止开机启动UFW(关闭UFW)
bash 复制
BASH
sudo ufw disable开启/禁用服务
bash 复制
BASH
sudo ufw allow|deny [service]
开启/禁用端口
bash 复制
BASH
sudo ufw allow|deny [service]
举例
允许所有的外部IP访问本机的25/tcp (smtp)端口
bash 复制
BASH
sudo ufw allow smtp
允许所有的外部IP访问本机的22/tcp (ssh)端口
bash 复制
BASH
sudo ufw allow 22/tcp
允许外部访问53端口(tcp/udp)
bash 复制
BASH
sudo ufw allow 53
禁用53端口
bash 复制
BASH
sudo ufw delete allow 53
指定IP访问所有的本机端口
bash 复制
BASH
sudo ufw allow from 192.168.1.100
删除某条这条规则
即上面刚新建的规则
bash 复制
BASH
sudo ufw delete allow from 192.168.1.100
禁止外部访问smtp服务
bash 复制
BASH
sudo ufw deny smtp
删除上面建立的某条规则
bash 复制
BASH
sudo ufw delete allow smtp
查看防火墙状态及规则
bash 复制
BASH
sudo ufw status
开启/关闭防火墙
bash 复制
BASH
sudo ufw enable|disable转换日志状态
bash 复制
BASH
sudo ufw logging on|off
设置默认策略
(比如 “mostly open” vs “mostly closed”)
bash 复制
BASH
sudo ufw default allow|deny
查看防火墙版本
bash 复制
BASH
sudo ufw version
重启UFW防火墙
bash 复制
BASH
sudo ufw reload
重置UFW防火墙配置
bash 复制
BASH
sudo ufw reset
Firewalld防火墙配置
Firewalld是CentOS 7的防火墙,但,Firewalld底层调用的命令还是iptables,所以后面也有必要学一学iptables防火墙。
启动、关闭、重启
启动防火墙
bash 复制
BASH
systemctl start firewalld
关闭防火墙
bash 复制
BASH
systemctl stop firewalld
重启防火墙
bash 复制
BASH
systemctl restart firewalld.service
开机自启、开机不启动
开机自启
开机自动启动防火墙。
bash 复制
BASH
systemctl enable firewalld
开机启动
表示开机自动关闭防火墙。
bash 复制
BASH
systemctl disable firewalld.service # 设置开机不启动查看防火墙
查看防火墙状态
bash 复制
BASH
systemctl status firewalld.service
查看防火墙默认状态
bash 复制
BASH
firewall-cmd --state
查看防火墙的服务
bash 复制
BASH
firewall-cmd --get-services
查看防火墙正在使用的域
bash 复制
BASH
firewall-cmd --get-active-zones
查看防火墙默认域
bash 复制
BASH
firewall-cmd --get-default-zone
查看防火墙的域
bash 复制
BASH
firewall-cmd --get-zones
列出public域的所有设置
bash 复制
BASH
firewall-cmd --zone=public --list-all
查看已启动的服务列表
bash 复制
BASH
systemctl list-unit-files|grep enabled
开启端口
这里指定开启80端口,并且是tcp协议,如果需要udp,将tcp改为udp即可
bash 复制
BASH
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义:–zone :作用域–add-port=80/tcp :添加端口,格式为:端口/通讯协议–permanent :永久生效,没有此参数重启后失效
开启 or 关闭防火墙端口,都需要重新加载防火墙才生效
加载防火墙配置
操作
Firewalld防火墙命令必须reload才生效
bash 复制
BASH
firewall-cmd --reload
Iptables防火墙配置
开放端口
案例一
bash 复制
BASH
iptables -I INPUT -p tcp --dport 8001 -j ACCEPT
-p:采用tcp协议-j:动作为ACCEPT
案例二
bash 复制
BASH
iptables -t filter A INPUT -p tcp --dport 22 -j ACCEPT
参数:
-t:表的选择A:追加-p:采用tcp协议-dport:指定开放端口22-j:动作为ACCEPT



