在linux系统中安装yum install iptables-services
然后 vi /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Sun Aug 28 12:14:02 2016 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] #这里开始增加白名单服务器ip(请删除当前服务器的ip地址) -N whitelist -A whitelist -s 8.8.8.8 -j ACCEPT -A whitelist -s x.x.x.x -j ACCEPT #这些 ACCEPT 端口号,公网内网都可访问 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许接受本机请求之后的返回数据 RELATED,是为FTP设置的 -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 13020 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 1000:8000 -j ACCEPT #开放1000到8000之间的所有端口 #下面是 whitelist 端口号,仅限 服务器之间 通过内网 访问 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j whitelist -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j whitelist -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j whitelist #为白名单ip开放的端口,结束 -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
解释:
添加防火墙过滤规则步骤如下;
1、查看现有防火墙过滤规则:
iptables -nvL --line-number
2、添加防火墙过滤规则(设置白名单):
1)添加白名单
iptables -I INPUT 3 -s 136.6.231.163 -p tcp --dport 1521 -j ACCEPT
命令详解:
-I:添加规则的参数
INPUT:表示外部主机访问内部资源
规则链:
1)INPUT——进来的数据包应用此规则链中的策略
2)OUTPUT——外出的数据包应用此规则链中的策略
3)FORWARD——转发数据包时应用此规则链中的策略
4)PREROUTING——对数据包作路由选择前应用此链中的规则 (记住!所有的数据包进来的时侯都先由这个链处理)
5)POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
3:表示添加到第三行(可以任意修改)
-s:指定作为源地址匹配,这里不能指定主机名称,必须是IP;
-p: 用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)
--dport: 用于匹配端口号
-j: 用于匹配处理方式:
常用的ACTION:
DROP:悄悄丢弃,一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表
REJECT:明示拒绝
ACCEPT:接受
2)查看添加结果
iptables -nvL --line-number
然后重启防火墙即可生效
重启防火墙的命令:service iptables restart
此时,防火墙规则只是保存在内存中,重启后就会失效。
使用以下命令将防火墙配置保存起来;
保存到配置中:service iptables save (该命令会将防火墙规则保存在/etc/sysconfig/iptables文件中。)
-----------------------------------------------------------------------------------
附:
开放端口段3000~3008
iptables -A INPUT -p tcp --dport 3000:3008 -j ACCEPT
开放ip段
iprange模块提供了两个匹配参数:
--src-range: 匹配来源地址的范围,例如,iptables -A INPUT -p tcp -m iprange --src-range 192.168.0.2-192.168.0.61 -j DROP
--dst-range: 匹配目的地址的范围,例如,iptables -A OUTPUT -p tcp -m iprange --dst-range 192.168.0.2-192.168.0.61 -j DROP
禁止用户访问www.baidu.com
iptables -I FORWARD -d www.baidu.com -j DROP
iptables—命令(-A、-I、-D、-R、-L等)、
1、常用命令列表: 常用命令(-A追加规则、-D删除规则、-R修改规则、-I插入规则、-L查看规则) 命令-A,--append 范例 iptables -A INPUT ... 说明新增规则(追加方式)到某个规则链(这里是INPUT规则链)中,该规则将会成为规则链中的最后一条规则。 命令-D,--delete 范例 iptables -D INPUT --dport 80 -j DROP iptables -D INPUT 1 说明 从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。 命令-R, --replace 范例 iptables -R INPUT1-s 192.168.0.1 -j DROP 说明取代现行规则,规则被取代后并不会改变顺序。(1是位置) 命令-I,--insert 范例 iptables -I INPUT1--dport 80 -j ACCEPT 说明插入一条规则,原本该位置(这里是位置1)上的规则将会往后移动一个顺位。 命令-L, --list 范例 iptables -L INPUT 说明 列出某规则链中的所有规则。 命令-F, --flush 范例 iptables -F INPUT 说明 删除某规则链(这里是INPUT规则链)中的所有规则。 命令-Z,--zero 范例 iptables -Z INPUT 说明 将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。 命令-N, --new-chain 范例 iptables -N allowed 说明 定义新的规则链。 命令-X, --delete-chain 范例 iptables -X allowed 说明 删除某个规则链。 命令-P, --policy 范例 iptables -P INPUT DROP 说明 定义过滤政策。 也就是未符合过滤条件之封包,预设的处理方式。 命令-E,--rename-chain 范例 iptables -E allowed disallowed 说明 修改某自订规则链的名称。
规则的删除等:linux下iptables的使用下面是可能用于防止慢连接攻击的方式
#处理IP碎片数量,防止攻击,允许每秒100个 iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT #设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包 iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT