firewalld防火墙
一、防火墙的开启、关闭、禁用命令
(1)设置开机启用防火墙:systemctl enable firewalld
(2)设置开机禁用防火墙:systemctl disable firewalld
(3)启动防火墙:systemctl start firewalld
(4)关闭防火墙:systemctl stop firewalld 或 systemctl stop firewalld.service
(5)检查防火墙状态 systemctl status firewalld
二、使用firewall-cmd配置端口
(1)查看防火墙状态:firewall-cmd --state
(2)重新加载配置:firewall-cmd --reload
(3)查看开放的端口:firewall-cmd --list-ports
(4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
命令含义:
–zone #=作用域=pubic
–add-port=9200/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
(5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent
iptables防火墙
一、防火墙的开启、关闭、禁用命令
1、查看防火墙状态:service iptables status
2、停止防火墙:service iptables stop
3、启动防火墙:service iptables start
4、重启防火墙:service iptables restart
5、永久关闭防火墙:chkconfig iptables off
6、永久关闭后重启:chkconfig iptables on
二、使用iptables的常用命令
1.1 iptables -L
列出 iptables 规则,可以查看当前系统中的所有防火墙规则。
1.2 iptables -F
清空 iptables 规则,可以删除所有规则,从而重新开始配置。
1.3 iptables -P INPUT DROP
将 INPUT 链的默认策略设置为 DROP,拒绝所有的入站数据包。
1.4 iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
允许来自 192.168.1.0/24 网段的数据包进入系统。
1.5 iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允许通过 SSH 连接进入系统,前提是 SSH 服务已经开启并监听在 22 端口上。
1.6 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
允许已经建立的连接数据包通过防火墙。
1.7 iptables -A INPUT -i lo -j ACCEPT
允许本地回环接口的数据包通过防火墙。
1.8 iptables -A INPUT -j DROP
拒绝所有未匹配到规则的数据包进入系统。
1.9 iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
在 INPUT 链的第一条规则之前插入一条允许 HTTP 流量的规则。
1.10 iptables-save
保存 iptables 规则,可以将当前配置的防火墙规则保存到一个文件中。
1.11 iptables-restore
还原 iptables 规则,可以从一个文件中加载之前保存的防火墙规则。
1.12 iptables -D
删除指定规则,可以根据规则的编号或者内容来删除已经存在的规则。例如:
1.13 iptables -D INPUT 2
删除 INPUT 链中的第二条规则。
1.14 iptables -D INPUT -s 192.168.1.0/24 -j ACCEPT
删除允许 192.168.1.0/24 网段的数据包进入系统的规则。
1.15 iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
允许从 eth0 接口到 eth1 接口的数据包转发,用于多网卡的情况。
1.16 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
使用 NAT 技术将内部网络的 IP 地址转换成公网 IP 地址,从而实现对外访问。这个命令是在 nat 表中新增 POSTROUTING 规则,表示对从 192.168.1.0/24 网段发出的数据包,通过 eth0 接口发送出去时进行地址转换,使用 MASQUERADE 参数可以自动获取外部网络的 IP 地址。
1.17 iptables -A OUTPUT -d 192.168.1.10 -j DROP
拒绝系统向指定 IP 地址发送数据包,用于限制系统对某些地址的访问。
1.18 iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
限制 HTTP 流量,每分钟最多接受 25 个数据包,最大缓冲 100 个数据包。
1.19 iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
限制 ICMP 流量,每秒最多接受一个 echo-request 数据包。
1.20 iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT
限制 HTTP 流量,最多允许 10 个并发连接,超过限制则拒绝连接。
1.21 iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --set -j ACCEPT
使用 recent 模块记录 SSH 连接,设置为 SSH,如果连续多次连接失败,则拒绝连接。可以通过以下命令实现:
1.22 iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --rcheck --seconds 60 --hitcount 3 -j DROP
检查 SSH 连接是否已经超过 3 次,如果在 60 秒内达到了 3 次,则拒绝连接。
1.23 iptables -A INPUT -m geoip --src-cc CN -j DROP
使用 geoip 模块限制国家/地区访问,只允许来自中国的数据包进入系统。