netfilter 防火墙--> iptables 命令
netfilter防火墙它有几个概念
table --> chain -->
首先是表,还有列,列下面还有一些规则
[root@www ~]# iptables -t filter -nvL //-t是指定它的表名 filter(费用特)表 -nvL 查看表下面的规则 三个列 用得最多的是filter表
[root@www ~]# iptables -t nat -nvL //nat表
[root@www ~]# iptables -t mangle -nvL //mangle表
4个表的优先级由高到低的顺序为:raw-->mangle-->nat-->filter
1.filter表作用:
只要用来过滤这个包的,我们服务器网卡它,无非是进和出,进包和出包,我们可以根据这个进包和出包做一些规则做一些限制,防火墙的规则就是像一些铁架一样。一些想进来的人呢,都要经过我们的检查,通过一层一层的规则过滤,如果匹配到就做一些相应的这个处理,可以把它拒绝掉,扔掉,也可以直接放行。
filter是我们的重点。
它有个INPUT(银扑) OUTPUT(欧特扑)这2个列用得最多的
2.规则使用:
[root@wwww ~]# iptables -t filter -I INPUT -p tcp --dport 2 -s 192.168.83.1 -j DROP
//-t 指定表 -I 指定链 -p指定tcp网络 --dport 指定端口 -s 指定来源ip -j 针对这个包做一些规则 是否通过 DROP是扔掉 REJECT拒绝掉 ACCEPT是接收
[root@aminglinux ~]# iptables -t filter-nvL //查看规则 默认不加-t 是指定filter表
刷新浏览器页面 一直在转圈圈 说明被拒绝访问了
[root@wwww ~]# iptables -nvL //pkts出现一些包的数量 bytes字节数 数据表明已经有包被过滤了
3.删除规则
[root@wwww ~]# iptables -t filter -D INPUT -p tcp --dport 80 -s 192.168.83.1 -j REJECT //-D就是删除规则 再次访问自己页面就可以访问了 -A就是增加一条规则
[root@wwww ~]# iptables -nvL
[root@wwww ~]# iptables -t filter -I INPUT -p tcp --dport 80 -s 192.168.0.105 -j REJECT
[root@wwww ~]# iptables -t filter -A INPUT -p tcp --dport 80 -s 192.168.0.106 -j REJECT
[root@wwww ~]# iptables -nvL //会发现-A的规则跑到了最下面 -I会增加到上头
[root@wwww ~]# iptables -t filter -I INPUT -p tcp --dport 80 -s 192.168.0.105 -j REJECT
[root@wwww ~]# iptables -nvL //刷新下页面 可以发现最上面的规则先生效 下面的不匹配
-I的规则 最先生效 -A的规则 最后生效
总结:iptables filter表可以限制一些IP的访问等,如果只允许一个IP访问网站的话,先允许这个IP,在拒绝全部。
netfilter 防火墙--> iptables 工具
防火墙过滤是有优先级的raw>mangle>nat>filter
table(表) --> chain(列) 列下面还有一些规则
iptables -t(指定表) filter -nvL 查看表下的规则
iptables -t nat -nvL
iptables -t mangle -nvL
iptables -t filter -I INPUT(针对INPUT) -p(指定tcp的包) tcp --dport(到达的端口) 80 -s(限定一个来源IP) 12.12.12.12 -j(针对这个包做一个什么样的行为和操作) REJECT(拒绝)
-n 不对ip地址进行反查,加上这个参数显示速度会 快很多
-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数
filter INPUT进 CUTPUT出 DROP(扔掉)
iptables -t(指定这个表) filter -I(增加一个规则) INPUT -p(指定的包) tcp --dport 80 -s(指定来源IP) 12.12.12.12 -j REJECT(拒绝)
-I增加一个规则(-D)删除一个规则
-I在上面增加 -A在最下增加
(上面的规则先生效)
iptables –F
#删除已经存在的规则
iptables -P INPUT DROP
#配置默认的拒绝规则。基本规则是:先拒绝所有的服务,然后根据需要再添加新的规则。
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#打开WEB服务端口的tcp协议
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
#打开POP3服务端口的tcp协议
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
#打开SMTP服务端口的tcp协议
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#打开FTP服务端口的tcp协议
iptables -A INPUT -p tcp -s 183.63.194.234 --dport 22 -j ACCEPT
#允许IP地址为202.106.12.130这台主机连接本地的SSH服务端口
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#允许DNS服务端口的tcp数据包流入
iptables -A INPUT -p udp --dport 53 -j ACCEPT
#允许DNS服务端口的udp数据包流入
iptables -A INPUT -p icmp -icmp-type echo-request -i eth1 -j DROP
#防止死亡之ping,从接口eth1进入的icmp协议的请求全部丢弃。
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
#防止SYN Flood (拒绝服务攻击)
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.226 -j MASQUERADE
#允许 192.168.0.226通过eth1 IP伪装出外网
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.4 -p tcp --dport 25 -j MASQUERADE
#允许 192.168.0.4通过eth0 伪装访问外网的 25端口