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-unreachableCOMMIT
# 防火墙的生效和权限iptables-restore < /etc/iptables/rules.v4 #加载规则# 创建文件,使防火墙开机启动vim /etc/network/if-pre-up.d/iptables# 添加的内容#!/bin/bashiptables-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 enablesudo 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. 添加特定IPsudo ufw alow from 192.168.80.30 # 添加允许访问的ipsudo 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的工作机器上的端口22sudo 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.servicesystemctl stop firewalld.servicesystemctl status firewalld.service# 端口的查看netstat -tunlp|grep 8001 # 模糊查询lsof -i:8001 # 精准查看# 开启端口firewall-cmd --zone=public --add-port=8001/tcp --permanentfirewall-cmd --zone=public --add-port=8001/udp --permanentfirewall-cmd --zone=public --remove-port=8001/tcp --permanetfirewall-cmd --zone=public --add-port=8000-9000/tcp --permanent #永久firewall-cmd --zone=public --add-port=8000-9000/udp # 临时# 不改变状态的情况下,重新加载防火墙 -- 配置立即生效firewall-cmd --reload# 查看开放的端口 和启动的服务firewall-cmd --list-portsfirewall-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