一、安装
yum -y install epel-release
yum -y install fail2ban
二、配置
mv /etc/fail2ban/jail.local /etc/fail2ban/jail.local.bak
touch /etc/fail2ban/jail.local
cat <<EOF >> /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1
bantime = 86400
maxretry = 3
findtime = 1800
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 5
findtime = 3600
bantime = 1
EOF
三 、运行
systemctl restart fail2ban
systemctl enable fail2ban
systemctl restart sshd
四 、基础操作命令:
4.1 Iptables规则配置
iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -j LOG --log-prefix "iptables denied"
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
service iptables save
service iptables restart
iptables -nL
iptables -P INPUT ACCEPT
表示先允许所有的输入通过防火墙,以防远程连接断开。
iptables -F
表示清空所有默认规则。
iptables -X
表示清空所有自定义规则。
iptables -Z
表示将所有计数器归0。
iptables -A INPUT -i lo -j ACCEPT
表示允许来自于lo接口(本地访问)的数据包
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
表示开放22端口(SSH)。
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
表示开放80端口(HTTP)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
表示开放443端口(HTTPS)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
表示允许接受本机请求之后的返回数据。
iptables -A INPUT -p tcp -j LOG --log-prefix "iptables denied"
表示所有被丢弃的包都会被记录到/var/log/iptables.log文件中,且每条记录会以”iptables denied”作为前缀。
iptables -P INPUT DROP
表示其他入站一律丢弃
iptables -P OUTPUT ACCEPT
表示所有出站一律通过
iptables -P FORWARD DROP
表示所有转发一律通过
如果要添加可信任网段:192.168.0.1/24,接受其所有请求。
iptables -A INPUT -s 192.168.0.1/24 -j ACCEPT
如果要添加可信任ip:192.168.0.1,接受其所有TCP请求。
iptables -A INPUT -p tcp -s 192.168.0.1 -j ACCEPT
如果要添加可信任ip:192.168.0.1,接受其对某个端口:3306的所有TCP请求。
iptables -I INPUT -p tcp -s 192.168.0.1 --dport 3306 -j ACCEPT
如果要封停一个IP:192.168.0.1。
iptables -I INPUT -s 192.168.0.1 -j DROP
4.2 删除黑名单中的IP
fail2ban-client status ssh-iptables
fail2ban-client set ssh-iptables unbanip 8.8.8.8
iptables -D f2b-SSH -s 8.8.8.8 -j REJECT