1. iptables 系统防火墙的安装、配置信息
# 1.检查防火墙和配置
whereis iptables # 防火墙安装位置
sudo iptables -L # 防火墙配置详情
# 2.新建规则
mkdir /etc/iptables # 创建目录, 本身没有此目录
vim /etc/iptables/rules.v4
//添加内容
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:syn-flood - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p icmp -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
-A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A syn-flood -p tcp -m limit --limit 3/sec --limit-burst 6 -j RETURN
-A syn-flood -j REJECT --reject-with icmp-port-unreachable
COMMIT
# 防火墙的生效和权限
iptables-restore < /etc/iptables/rules.v4 #加载规则
# 创建文件,使防火墙开机启动
vim /etc/network/if-pre-up.d/iptables
# 添加的内容
#!/bin/bash
iptables-restore < /etc/iptables/rules.v4
# 修改执行权限
chmod +x /etc/network/if-pre-up.d/iptables
# 查看规则是否生效
iptables -L -n
2. ufw防火墙配置工具
# 检查ufw的情况
sudo ufw status # 查看ufw是否启动,默认情况下不启动
# 关闭外部对本机的访问,但本机正常访问外部
sudo ufw enable
sudo ufw default deny
#允许外部访问某个端口
sudo ufw allow 80 # 允许访问80端口
sudo ufw allow 80/tcp # 只允许80端口的TCP包
# 禁止外部访问
sudo ufw delete allow 80 #
## ufw的基本使用场景
### a. 删除规则
sudo ufw status numbered # 查看当前规则的排序
sudo ufw delete xx # 删除ufw的规则,xx为规则对应的排序
### b. 添加特定端口
sudo ufw allow ssh # 允许ssh连接
sudo ufw allow 19090 # 添加指定端口(tcp/udp)
sudo ufw allow 9000:10000/tcp # 允许[9000,10000]端口中的tcp协议
sudo ufw delete allow 19090 # 删除指定的端口
sudo ufw delete allow from 192.168.5.10 # 删除允许的ip
### c. 添加特定IP
sudo ufw alow from 192.168.80.30 # 添加允许访问的ip
sudo ufw allow from 192.168.0.0/16 # 通过子网掩码扩大访问ip
### d. 允许任何访问特定端口
sudo ufw allow to any port 18022 # 允许从任何地方或协议都可以访问18022端口
sudo ufw allow from 55.56.57.58 to any port 22 # IP地址为55.56.57.58的工作机器上的端口22
sudo ufw allow from 192.168.1.0/24 to any port 3306 # 允许访问从192.168.1.1到192.168.1.254到3306(MySQL)
sudo ufw allow proto tcp from 192.168.1.204 to any port 22 # 限制仅仅来自于 192.168.1.204 的 IP ,而且只能使用 tcp 协议和通过 22端口 来访问本地资源
sudo ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25 # 允许自10.0.1.0/10的tcp封包访问本机的25端口。
### e.特定网络接口
sudo ufw allow in on eth2 to any port 3306 # 端口3306仅适用于特定的网络接口eth2
### f. 禁止
sudo ufw deny smtp # 禁止外部访问smtp服务
sudo ufw deny 10010 # 禁止访问端口10010
3.CentOS的防火墙
# 1.firewall-cmd 防火墙的查看和端口的开放
# 查看防火墙的状态
firewall-cmd --state
# 开启、关闭和查看状态防火墙
systemctl start firewalld.service
systemctl stop firewalld.service
systemctl status firewalld.service
# 端口的查看
netstat -tunlp|grep 8001 # 模糊查询
lsof -i:8001 # 精准查看
# 开启端口
firewall-cmd --zone=public --add-port=8001/tcp --permanent
firewall-cmd --zone=public --add-port=8001/udp --permanent
firewall-cmd --zone=public --remove-port=8001/tcp --permanet
firewall-cmd --zone=public --add-port=8000-9000/tcp --permanent #永久
firewall-cmd --zone=public --add-port=8000-9000/udp # 临时
# 不改变状态的情况下,重新加载防火墙 -- 配置立即生效
firewall-cmd --reload
# 查看开放的端口 和启动的服务
firewall-cmd --list-ports
firewall-cmd --get-service
# 允许某个IP访问某个服务
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
# 检查设定的端口是否生效
sudo iptables -L -n | grep 21