简易防火措施篇
时间:2006-06-02 来源:h0000001
防火墙阻止数据包的方法
拒绝让数据包进入主机的某些端口
拒绝让某些来源IP的数据包进入
拒绝让带有某些特殊标记(flag)的数据进入
分析硬件地址(MAC)来提供服务
Linux和数据包过滤机制
Linux内核版本与防火墙机制
Iptables的表格与数据包进入主机的流程
在iptables里有两个经常用到的内建表格(build-in table),分别是针对主机的filter,以及针对防火培内部主机设置的nat,这两个表格又分别具有三条链,分别是:
Filter: 主要跟Linux有关,这个是默认的table
INPUT:主要与数据包想要进入Linux本机有关
OUTPUT:主要与Linux本机所送也的数据包有关
FORWARD:与Linux本机关系不大,它可以将数据包转递到后端计算机中,与nat这个table有密切的关系.
Nat:主要跟NAT主机的设置有关
PREROUTING:在进行路由判断之前所要执行的规则.
POSTROUTING:在进行路由判断之后所要执行的规则.
OUTPUT:与发送出去的数据包有关
数据包想要进入本机流程
进入数据包ànat table(PREROUTING)àfilter table(INPUT)à进入本机,使用本机的资源
数据包想要进入本机后端的计算机
进入数据包ànat table(PREROUTING)àfilter table(FORWARD)ànat table(POSTROUTING)à后端主机
由本机发送的数据包
本机发出的数据包ànat table(OUTPUT)àfilter table(OUTPUT)ànat talbe(POSTROUTING)à发送数据包
iptables的语法
由于ipchains与iptables不能同时存在,所以在开始进行iptables设置之前,先检查ipchains是否不小心被加载到系统中了.#lsmod.若发现ipchains,卸载它,#rmmod ipchains,再加载iptables, #modprobe ip_tables
清除规则与观察规则
#iptables [-t tables] [-L] [-n]
-t:后面接iptables的table,例如nat或filter.默认是-t filter
-L:列出当前的table的规则.
-n:不进行IP与HOSTNAEM的转换,屏幕显示信息的速度会快很多.
#iptables [-t tables] [-FXZ]
-F:清除所有的己设置规则;
-X:杀掉所有用户建立的链(应该说是tables);
-Z:将所有链的计数与流量统计都清零.
定义策略
#iptables [-t tables] [-P] [INPUT,OUTPUT,FORWARD | RREROUTING, OUTPUT,POSTROUTING] [ACCEPT,DROP]
-P: 定义策略(Policy).
INPUT:数据包为输入主机的方向;
OUTPUT:数据包为输出主机的方向;
FORWARD:数据包为不进入主机而向外再输出去的方向
PREROUTING:在进入路由之前进行的工作;
OUTPUT:数据包为输出主机的方向;
POSTROUTING:在进入路由之后进行的工作.
增加与插入规则
#iptables [-t filter] [-AI INPUT,OUTPUT,FORWARD] [-io interface] [-p tcp,udp,icmp,all] [-s IP/network] [--sport ports] [-d IP/network] [--dport ports] –j [ACCEPT,DROP,LOG]
-A: 新增加一条规则,该规则增加在最后面.
-I: 插入一条规则,默认是插入变成第一条规则.
-io:设置数据包进入/流出的网卡接口;
interface:网卡接口
-p:数据包使用的协议.
-s:来源数据包的IP或Network(网段)
--sport:来源数据包的端口号,也可以使用port1:port2.
-d:目标主机的IP或Network(网段)
--dport:目标主机的端口号
[!]—syn:这个设置仅用于-p tcp规则,因为TCP数据包有syn标记.当TCP数据包带有syn标记,表示这个连接是对方主动发起的.若在—syn之前加上!,表示该数据包不带有syn(刚好意思相反)
--icmp-type:中以管理ICMP数据包的某些类型.
-m:表示数据包的状态,有以下几种:
-m mac –mac-source aa:bb:cc:dd:ee:ff
-m start –state<状态>
有多种状态,如下:
INVALID:无效的数据包.
ESTABLISHED:己经连接成功的连接状态;
NEW:想要新建连接的数据包状态;
RELATED:表示这个数据包是与我们主机发送出去的数据包有关,可能是响应数据包,或者是连接成功之后的传送数据包.
-j<动作>:除了比较常用的ACCEPT与DROP之外,还有如下动作:
REDIRECT –to-port<port number>:进行本机端口的转换,只能用在nat table的PREROUTING及OUTPUT.
MASQUERADE:数据包伪装.
记录与恢复防火墙规则
#iptables-save > filename
#iptables-restort < filename