使用Iptable限制SSH访问
时间:2020-01-09 10:43:16 来源:igfitidea点击:
问题描述:如何使用基于Linux iptables的防火墙停止或者限制对OpenSSH(SSHD)服务器的访问?
解决方法:Linux iptables防火墙可用于阻止或者限制对ssh服务器的访问。
iptables命令用于在Linux内核中设置,维护和检查IP数据包过滤器规则表。
但是,您也可以将tcpd(访问控制工具)用于Internet服务。
使用iptables限制SSH访问
以下是一条简单的规则,该规则阻止端口22上的所有传入ssh访问
iptables -A INPUT -p tcp -s 0/0 --sport 513:65535 -d 195.55.55.78 --dport 22 -m state --state NEW,ESTABLISHED -j DROP
但是,在现实生活中,您需要使用以下内容。
让我们假设您的ssh服务器IP地址为195.55.55.78,请记住ssh服务器使用TCP端口22进行所有传入连接。
使用iptables,您可以使用以下两个规则来阻止端口22上的所有传入连接:
iptables -A INPUT -p tcp -s 0/0 --sport 513:65535 -d 195.55.55.78 --dport 22 -m state --state NEW,ESTABLISHED -j DROP iptables -A OUTPUT -p tcp -s 195.55.55.78 --sport 22 -d 0/0 --dport 513:65535 -m state --state ESTABLISHED -j DROP
如果您只想拒绝对IPS组的访问,则需要在脚本中添加以下规则:
IPS="192.54.1.20 64.66.44.22 64.66.44.25" for i in $IPS do iptables -A INPUT -p tcp -s 0/0 -s $i --sport 513:65535 -d 195.55.55.78 --dport 22 -m state --state NEW,ESTABLISHED -j DROP iptables -A OUTPUT -p tcp -s 195.55.55.78 --sport 22 -d $i --dport 513:65535 -m state --state ESTABLISHED -j DROP done
将上述所有规则添加到您的iptables防火墙shell程序脚本中(不要执行@ shell提示符)