1. iptables 系统防火墙的安装、配置信息

  1. # 1.检查防火墙和配置
  2. whereis iptables # 防火墙安装位置
  3. sudo iptables -L # 防火墙配置详情
  4. # 2.新建规则
  5. mkdir /etc/iptables # 创建目录, 本身没有此目录
  6. vim /etc/iptables/rules.v4
  7. //添加内容
  8. *filter
  9. :INPUT DROP [0:0]
  10. :FORWARD ACCEPT [0:0]
  11. :OUTPUT ACCEPT [0:0]
  12. :syn-flood - [0:0]
  13. -A INPUT -i lo -j ACCEPT
  14. -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  15. -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
  16. -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
  17. -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
  18. -A INPUT -p icmp -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
  19. -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
  20. -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood
  21. -A INPUT -j REJECT --reject-with icmp-host-prohibited
  22. -A syn-flood -p tcp -m limit --limit 3/sec --limit-burst 6 -j RETURN
  23. -A syn-flood -j REJECT --reject-with icmp-port-unreachable
  24. COMMIT
  1. # 防火墙的生效和权限
  2. iptables-restore < /etc/iptables/rules.v4 #加载规则
  3. # 创建文件,使防火墙开机启动
  4. vim /etc/network/if-pre-up.d/iptables
  5. # 添加的内容
  6. #!/bin/bash
  7. iptables-restore < /etc/iptables/rules.v4
  8. # 修改执行权限
  9. chmod +x /etc/network/if-pre-up.d/iptables
  10. # 查看规则是否生效
  11. iptables -L -n

2. ufw防火墙配置工具

  1. # 检查ufw的情况
  2. sudo ufw status # 查看ufw是否启动,默认情况下不启动
  3. # 关闭外部对本机的访问,但本机正常访问外部
  4. sudo ufw enable
  5. sudo ufw default deny
  6. #允许外部访问某个端口
  7. sudo ufw allow 80 # 允许访问80端口
  8. sudo ufw allow 80/tcp # 只允许80端口的TCP包
  9. # 禁止外部访问
  10. sudo ufw delete allow 80 #
  1. ## ufw的基本使用场景
  2. ### a. 删除规则
  3. sudo ufw status numbered # 查看当前规则的排序
  4. sudo ufw delete xx # 删除ufw的规则,xx为规则对应的排序
  5. ### b. 添加特定端口
  6. sudo ufw allow ssh # 允许ssh连接
  7. sudo ufw allow 19090 # 添加指定端口(tcp/udp)
  8. sudo ufw allow 9000:10000/tcp # 允许[9000,10000]端口中的tcp协议
  9. sudo ufw delete allow 19090 # 删除指定的端口
  10. sudo ufw delete allow from 192.168.5.10 # 删除允许的ip
  11. ### c. 添加特定IP
  12. sudo ufw alow from 192.168.80.30 # 添加允许访问的ip
  13. sudo ufw allow from 192.168.0.0/16 # 通过子网掩码扩大访问ip
  14. ### d. 允许任何访问特定端口
  15. sudo ufw allow to any port 18022 # 允许从任何地方或协议都可以访问18022端口
  16. sudo ufw allow from 55.56.57.58 to any port 22 # IP地址为55.56.57.58的工作机器上的端口22
  17. sudo ufw allow from 192.168.1.0/24 to any port 3306 # 允许访问从192.168.1.1到192.168.1.254到3306(MySQL)
  18. sudo ufw allow proto tcp from 192.168.1.204 to any port 22 # 限制仅仅来自于 192.168.1.204 的 IP ,而且只能使用 tcp 协议和通过 22端口 来访问本地资源
  19. sudo ufw allow proto tcp from 10.0.1.0/10 to 本机ip port 25 # 允许自10.0.1.0/10的tcp封包访问本机的25端口。
  20. ### e.特定网络接口
  21. sudo ufw allow in on eth2 to any port 3306 # 端口3306仅适用于特定的网络接口eth2
  22. ### f. 禁止
  23. sudo ufw deny smtp # 禁止外部访问smtp服务
  24. sudo ufw deny 10010 # 禁止访问端口10010

3.CentOS的防火墙

  1. # 1.firewall-cmd 防火墙的查看和端口的开放
  2. # 查看防火墙的状态
  3. firewall-cmd --state
  4. # 开启、关闭和查看状态防火墙
  5. systemctl start firewalld.service
  6. systemctl stop firewalld.service
  7. systemctl status firewalld.service
  8. # 端口的查看
  9. netstat -tunlp|grep 8001 # 模糊查询
  10. lsof -i:8001 # 精准查看
  11. # 开启端口
  12. firewall-cmd --zone=public --add-port=8001/tcp --permanent
  13. firewall-cmd --zone=public --add-port=8001/udp --permanent
  14. firewall-cmd --zone=public --remove-port=8001/tcp --permanet
  15. firewall-cmd --zone=public --add-port=8000-9000/tcp --permanent #永久
  16. firewall-cmd --zone=public --add-port=8000-9000/udp # 临时
  17. # 不改变状态的情况下,重新加载防火墙 -- 配置立即生效
  18. firewall-cmd --reload
  19. # 查看开放的端口 和启动的服务
  20. firewall-cmd --list-ports
  21. firewall-cmd --get-service
  22. # 允许某个IP访问某个服务
  23. firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
  24. firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
  25. # 检查设定的端口是否生效
  26. sudo iptables -L -n | grep 21