本文共 3230 字,大约阅读时间需要 10 分钟。
防火墙(一)主机型防火墙
默认防火墙规则
拒绝与禁止一个数据包
IP防火墙的数据包传输
在IP防火墙中,有三个内建的过滤规则链被使用。所有到达接口的数据包都按照输入规则链被过滤。如果数据包被接受,它会被送到路由模块。路由功能决定数据包是被送到本地还是转发到另一个出站接口。
如果被转发,数据包会由转发规则链进行第二次过滤。如果数据包被接受,它会被送到输出规则链。
本地产生的出站数据包和将被转发的数据包都要经过输出规则链。如果数据包被接受,它会被送出接口。
回环路径包括两个规则链,如图示。每一个回环数据包在出回环接口之前需要通过输出规则链,在那里它会被送到回环的输入接口,然后输入规则链被应用。
Iptables命令的基本语法以iptables本书开始,后面跟着一个或多个选项、一个规则链、一个匹配标准级和一个目标或部署。命令的设计很大程度上取决于要执行的操作。你可以参考这个语法:
Iptables <option> <chain> <matching criteria> <target>
常用命令列表:命令 -A, --append说明 新增规则到某个规则链中,该规则将会成为规则链中的最后一条规则。
命令 -D, --delete说明 从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。
命令 -R, --replace说明 取代现行规则,规则被取代后并不会改变顺序。
命令 -I, --insert说明 插入一条规则,原本该位置上的规则将会往后移动一个顺位。命令 -L, --list说明 列出某规则链中的所有规则。
命令 -F, --flush说明 删除某规则链中的所有规则。
命令 -Z, --zero说明 将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式***不可或缺的工具。 命令 -N, --new-chain说明 定义新的规则链。命令 -X, --delete-chain说明 删除某个规则链。
命令 -P, --policy说明 定义过滤政策。 也就是未符合过滤条件之封包,预设的处理方式。
命令 -E, --rename-chain说明 修改某自订规则链的名称。
参数 :
--source (-s)-----------匹配源IP地址
--destination (-d)---------匹配目标IP地址
--protocol (-p)-------------匹配的协议
--in-interface (-i)------------入口
--out-interface (-o)-----------出口
--state ------------------------匹配一组连接状态
--string-------------------------匹配应用层数据直接序列
--comment-----------------------在内核内存中为一个规则关联多大256个字节的注释数据
目标参数:
ACCEPT----------------------允许数据包通过
DROP-------------------------丢弃数据包
LOG---------------------------将数据信息记录到syslog
REJECT-------------------------丢弃数据包,同时发送适当的响应报文
RETURN--------------------------在调用链中继续处理数据包
主机型防火墙需要提供服务,所以安全性要最高
所以我们要把默认策略全部改成拒绝!
#!/bin/bash
#防火墙过滤脚本(主机型防火墙)
iptables -t filter -P INPUT ACCEPT // 首先给2个链 的默认策略改成允许 防止远程操作断开
iptables -t filter -P OUTPUT ACCEPT
iptables -F INPUT //然后清除所有内容
iptables -F OUTPUT
iptables -I INPUT -p tcp -m multiport --dport 22,25,80,21,110,143 -j ACCEPT //填写规则
iptables -I INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -t filter -P INPUT DROP //再把默认策略改成拒绝
iptables -I OUTPUT -p udp --sport 53 -j ACCEPT
iptables -I OUTPUT -p tcp -m multiport --sport 22,25,80,21,110,143 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -t filter -P OUTPUT DROP
#从MAC地址匹配
#根据MAC地址封锁主机
#iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP
测试各种服务
首先测试www服务
我们开放80端口在尝试
[root@hao ~]# sh fang.sh
运行脚本
Web服务前面搭建好了
例如:禁止从其他主机ping主机,但是允许本机ping其他主机
[root@hao ~]# ping 192.168.129.1
PING 192.168.129.1 (192.168.129.1) 56(84) bytes of data.
64 bytes from 192.168.129.1: icmp_seq=1 ttl=128 time=0.150 ms
64 bytes from 192.168.129.1: icmp_seq=2 ttl=128 time=0.190 ms
64 bytes from 192.168.129.1: icmp_seq=3 ttl=128 time=0.127 ms
64 bytes from 192.168.129.1: icmp_seq=4 ttl=128 time=0.150 ms
64 bytes from 192.168.129.1: icmp_seq=5 ttl=128 time=0.136 ms
64 bytes from 192.168.129.1: icmp_seq=6 ttl=128 time=0.289 ms
64 bytes from 192.168.129.1: icmp_seq=7 ttl=128 time=0.131 ms
64 bytes from 192.168.129.1: icmp_seq=8 ttl=128 time=0.175 ms
但是客户端ping主机就是不通
服务端
主机端
这时查看下脚本原件
默认就是 filter表
在来测试 dns服务器
加入规则表后 就可以了
可以正常访问了!主机型防火墙 安全级别最高 因为 INPUT和OUTPUT 默认策略是拒绝所有!这样可以防止防弹******!
转载地址:http://gwkla.baihongyu.com/