linux下要使用iptables限制只有指定的ip才能访问本机则需要先设置一个默认的规则iptables有默认的规则,它可以适用于所有的访问。因为只有指定或特定的ip地址才能访问本机延展阅读:总之不管是阻止所有的服务还是只阻止指定的服务,我们可以先将默认的规则设置为所有ip都不可访问,然后再手动添加ip地址到白名单。
把下面的命令保存到脚本中,执行就好了。
默认开启了ping返回,用于检测服务器的状态,还有22端口,这个如果你是远程连接的千万别忘记开启,否则你就把自己关在门外了(设置了自己IP允许的情况下除外)。
#!/bin/bashIPTABLES=/sbin/iptables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
$IPTABLES -F -t filter
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X -t filter
$IPTABLES -X -t nat
$IPTABLES -X -t mangle
$IPTABLES -Z -t filter
$IPTABLES -Z -t nat
$IPTABLES -Z -t mangle
$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P FORWARD ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P INPUT ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -t mangle -P FORWARD ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
#设置你允许的IP
$IPTABLES -A INPUT -s xxx.xxx.xxx.xxx -j ACCEPT
你可以试试!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)