http://www.linuxso.com/linuxpeixun/10332.htmlhtml
先查看本机配置linux
如要从新配置,则先清除已有配置web
若是是远程经过ssh链接服务器进行配置,则先加入容许ssh的规则vim
设定预设规则,DROP掉INPUT链与FORWARD链安全
INPUT链规则配置服务器
容许来自于lo接口的数据访问本机网络
lo:loopback,回环接口,一般对应的IP地址为127.0.0.1(未开启以前,本机不能ping通本机)app
容许icmp包经过,也就是容许pingssh
开启web服务端口tcp
FORWARD链规则配置
开启转发功能,(在作NAT时,FORWARD默认规则是DROP时,必须作)
丢弃坏的TCP包
处理IP碎片数量,防止攻击,容许每秒100个
限制ICMP,容许每秒1个包,限制触发条件是10个包
保存及调用
重启后会失效,从新调用配置
设置自动保存与调用
在
后面加上
解决INPUT DROP后,引发sshd服务DNS反向解析不顺,从而致使登陆等待时间过长的问题:
vim /etc/ssh/sshd_config
在最后添加下面一行,关闭 SSH 的 DNS 反解析
UseDNS no
重启sshd服务
sudo /etc/init.d/ssh restart
常见命令:
-A, --append 新增规则(追加方式)
-D, --delete 删除规则
-L, --list 列出某规则链中的全部规则 iptables -L INPUT
常见参数:
-p, --protocol 指定协议
-s --source 源地址
-d, --dst, --destination 指定目的地址
-i, --in-interface 指定入口网卡 iptables -A INPUT -i eth0 (-i eth+ 全部网卡)
--out-interface -o 指定出口网卡 iptables -A INPUT -o eth0 (-i eth+ 全部网卡)
--dport, --destination-port 目的端口
-j 指定对包的处理(ACCEPT、DROP、REJECT、REDIRECT)
-A:指定链名
-p:指定协议类型
-d:指定目标地址
--dport:指定目标端口(destination port 目的端口)
--sport:指定源端口(source port 源端口)
-j:指定动做类型
对于防火墙的设置,有两种策略:一种是所有通信口都容许使用,只是阻止一些咱们知道的不安全的或者容易被利用的口;另一种,则是先屏蔽全部的通信口,而只是容许咱们须要使用的通信端口。
注意-P中的P须要大写,表示Protocol。
能够看出INPUT,FORWARD两个链采用的是容许什么包经过,而OUTPUT链采用的是不容许什么包经过。
当超出了IPTABLES里filter表里的两个链规则(INPUT、FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃)。应该说这样配置是很安全的,咱们要控制流入数据包。
而对于OUTPUT链,也就是流出的包咱们不用作太多限制,而是采起ACCEPT,也就是说,不在这个规则里的包怎么办呢,那就是经过。
为INPUT链添加规则
容许icmp包经过,也就是容许ping
容许loopback!(否则会致使DNS没法正常关闭等问题)
sudo iptables -A INPUT -i lo -p all -j ACCEPT
对于OUTPUT规则,由于预设的是ACCEPT,因此要添加DROP规则,减小不安全的端口连接。
有些特洛伊木马会扫描端口31337到31340(即黑客语言中的 elite 端口)上的服务。既然合法服务都不使用这些非标准端口来通讯,阻塞这些端口可以有效地减小你的网络上可能被感染的机器和它们的远程主服务器进行独立通讯的机会。
咱们还能够把规则限制到只容许某个IP:
这表示只容许192.168.0.18的机器进行SSH链接。
若是要容许一个IP段,可使用下面的写法:
这表示容许192.168.0.1/255IP段的机器进行链接。
可是,注意咱们前面已经添加一条规则来容许全部IP链接22端口,须要把这条规则删除掉。
在下面就是FORWARD链,FORWARD链的默认规则是DROP,因此咱们就写须要ACCETP(经过)的链,对正在转发链的监控
开启转发功能,(在作NAT时,FORWARD默认规则是DROP时,必须作)
丢弃坏的TCP包
处理IP碎片数量,防止攻击,容许每秒100个
设置ICMP包过滤,容许每秒1个包,限制触发条件是10个包(在前面只容许ICMP包经过,在这里做限制)
例如我给SSH加放行的语句: 添加input记录: iptables -A INPUT -p tcp --dport 22 -j ACCEPT 添加output记录: iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT