美文网首页
iptables 常用配置

iptables 常用配置

作者: zorelu | 来源:发表于2018-06-03 17:49 被阅读0次

1.原理图

image image

2.常用vps命令

首先添加白名单:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT #22自行修改

iptables -A INPUT -p all -s 192.168.1.0/24 -j ACCEPT #允许机房内网机器可以访问

iptables -A INPUT -p tcp --dport 80 -j ACCEPT #开启80端口,因为web对外都是这个端口(可选)

iptables -I INPUT -p tcp --dport 2707 -j DROP #拒绝2707端口所有访问

iptables -I INPUT -s 39.108.93.21/16 -p tcp --dport 2707 -j ACCEPT ##允许 39.108.93.21访问2707

添 加以下四条规则:

iptables -A INPUT -s localhost -d localhost -j ACCEPT #允许本地的数据包

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许已经建立和相关的数据包进入

iptables -A OUTPUT -s localhost -d localhost -j ACCEPT #允许本地数据包

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许已经建立和相关的数据包出去

保存iptables(基于debian)

sudo iptables-save > /etc/iptables.rules (把规则写到etc下的文件,可以用vim修改不过只会下次重启网卡生效)

在 /etc/network/interfaces 下写入

pre-up iptables-restore < /etc/iptables.rules

image

或者在rc.locate写入

iptables-restore < /etc/iptables.rules

iptables -P INPUT DROP #配置默认的不让进

docker不开 iptables -P FORWARD DROP #默认的不允许转发 iptables -P OUTPUT ACCEPT #默认的可以出去

禁止其他未允许的规则访问

iptables -A INPUT -j REJECT (注意:如果22端口未加入允许规则,SSH链接会直接断开。)

docker不开启

iptables -A FORWARD -j REJECT

需要注意的是,以上的七条基本上是必须添加的;下面开始添加其他必要端口:

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT #打开DNS需要用到的53端口

iptables -A OUTPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT #允许80端口tcp协议的第一个数据包

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许ESTABLISHED和RELATED状态的包

iptables -A INPUT -P tcp --dport 443 -j ACCEPT #打开https需要用到的443端口

打开 syncookie (轻量级预防 DOS 攻击)

sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null

设置默认 TCP 连接痴呆时长为 3800 秒(此选项可以大大降低连接数)

sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null

设置支持最大连接树为 30W(这个根据内存和 iptables 版本来,每个 connection 需要 300 多个字节)

sysctl -w net.ipv4.ip_conntrack_max=300000 &>/dev/null

防止SYN攻击 轻量

iptables -N syn-flood

iptables -A INPUT -p tcp –syn -j syn-flood

iptables -A syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN

iptables -A syn-flood -j REJECT

对于不管来自哪里的ip碎片都进行控制,允许每秒通过100个碎片

iptables -A FORWARD -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT

icmp包通过的控制,防止icmp黑客攻击

iptables -A FORWARD -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT

丢弃坏的TCP包

iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j LOG –log-prefix “New not syn:”

iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j DROP
极速linux-专注开源

相关文章

网友评论

      本文标题:iptables 常用配置

      本文链接:https://www.haomeiwen.com/subject/skajsftx.html