2011年(11)
分类: LINUX
2011-08-19 23:15:57
初始iptables的人或许都会认为它就是防火墙,其实不然,作为linux中的内置防火墙的配置工具,管理员通过iptables配置防火墙规则,而后把配置从用户空间直接导入到内核中,立即即可生效。
iptables 通过各种不同的自定义策略实现网络过滤器的功能,iptables 主要用于定义网关的过滤功能,通过检测ip、协议、端口和状态等特性配置策略。
iptables 主要包括三个表和5个链,表:filter、nat、mangle和raw,对应关系如下
iptables主要靠两种策略定义,“通”和“堵”,及如果默认是拒绝所有,那就主要这基础上让那些特定的服务和端口通过,如果默认是“堵”,就是在允许所有的基础上关闭特定的服务和端口,在配置iptables的时候主要在5个位置,
iptables 主要在这几个位置定义策略,
PREROUTING:主要是用在nat 转换中,通过一个公网ip 提供多个网络服务的功能
如上这种情况就需要用到PREROUTING 进行地址转换,当2.2.2.2 访问1.1.1.1 web 服务时,本地网关通过iptables定义的策略把1.1.1.1:80 ,转换成内部的192.168.1.1:80,通过这种机制可以提供多个服务
POSTROUTING 这好PREROUTING的功能相反,PODTROUFING是在内部有多个私有地址的时候,而大家都想上网,就需要把私用地址在到达网关的时候转换成一个公网ip
INPUT 是在filter中使用的,用于定义进入本机的策略,INPUT定义了任何向本机的请求都要配置这个策略,就连本机也要遵循它定义的策略,
OUTPUT可以用在nat和filter两个表中,定义进入对外的请求和对外部主机请求的回应
FORWARD主要是本机提供转发功能,并在转发中定义策略,限制特定的条件通过或拒绝
iptables 的命令格式:( iptables [ -t tablename ] command chain 匹配标准
-j action ),如果-t 不指定,则默认是对filter操作,
command 对链的操作和选项
command 链(chain)
-P 设置默认策略 iptables -t filter -P INPUT ( DROP|ACCEPT)对应(拒绝|允许)
-F 清空链规则 iptables -t nat -F PREROUTING 清空特定chain的规则
-N 新建 iptables -t nat -N chainname,如果让自定义的chain生效必须和原有的5 个 链相关联
-X 删除空链 iptables -t nat -X chainname 只能删除用户自定义的链
-E 重命名 iptables -t filter -E oldchainname newchainname
-Z 清空链默认规则及其他规则的计数器,
规则
-A 追加规则 iptables -t filter -A INPUT --- 添加规则到INPUT
-I 插入 -I num iptables -t filter -I num --- 指定插入到第几行
-R 替换 -R num iptables -t filter -R INPUT num --- 替换指定行的规则
-D 删除 -D num 删除指定行的规则
查看
-L 显示所有规则
-n 数字格式地址,不要解析,及把对应的ip解析成域名
-V 详细信息
-VV
-VVV 越多越详细,最多三个
-x 不做单位换算,到数据过大是默认是按照单位换算成M、G,为了查看更准确的数据使用-x 要求不做单位转算
--line-numbers 显示行号
cretiria 匹配标准
通用匹配
-s network/netmask 源地址(不能用名称)默认0.0.0.0/0.0.0.0
-d 目标地址同-s 用法相同
-p 协议 (tcp udp icmp)
-i 数据流入接口 -i eth0 -o 数据流出接口 -o
扩展匹配
隐含扩展 (对特定协议)
-p 协议 --dport|--sport|--tcp-flags(syn ack fin fsh rst urg )
icmp --icmp-type ping (echo-request 8)(echo-reply0)8 ping 0 回应
显示扩展 (各扩展模块)
-m multiport --dports 23,23,34,45 同时指定多个端口
-j action
DROP 表示隐式拒绝
REJECT 明示拒绝
ACCEPT 允许
custom_chain 自定义链
DNAT 目地地址转换
SNAT 源地址转换
MASQUERADE 地址伪装,用于地址经常变更的情况
REDIRECT 端口重定向
MARK 打标记
RETURN 返回
state 状态检测, 现在防火墙主流的配置
new 第一次的连接
established 已建立的连接 服务器的OUTPUT
related 相关联的连接
invalid 不合法的连接
外----> 内 通过一个公网ip 对外提供web 和 ssh 服务
iptables -t nat -A PREROUTING -d 172.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.28.2
iptables -t nat -A PREROUTING -d 172.1.1.1 -p tcp --dport 22 -j DNAT --to-destination 192.168.28.2
内----> 外 多个私有主机通过一个公网ip 访问internet
iptables -t nat -A POSTROUTING -s 192.168.28.0/24 -j SNAT --to-source 172.1.1.1
地址伪装 用于地址经常变更的环境中
iptables -t nat -A POSTROUTING -s 192.168.28.0/24 -j MASQUERADE
表和规则的保存
service iptables save 直接保存到/etc/sysconfig/iptables,可开机自动启动
iptables-save > /etc/sysconfig/iptables.bak 需手动启动
iptables-restore < /etc/sysconfig/iptables.bak