手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

菜鸟学堂之Iptables基础

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  参数 --mark
  范例 iptables -t mangle -A INPUT -m mark --mark 1
  说明 用来比对封包是否被表示某个号码,当封包被比对成功时,我们能够透过 MARK 处理动作,将该封包标示一个号码,号码最大不能够超过 4294967296。
  参数 -m owner --uid-owner
  范例 iptables -A OUTPUT -m owner --uid-owner 500
  说明 用来比对来自本机的封包,是否为某特定使用者所产生的,这样能够避免服务器使用 root 或其他身分将敏感数据传送出去,能够降低系统被骇的损失。可惜这个功能无法比对出来自其他主机的封包。
  参数 -m owner --gid-owner
  范例 iptables -A OUTPUT -m owner --gid-owner 0
  说明 用来比对来自本机的封包,是否为某特定使用者群组所产生的,使用时机同上。
  参数 -m owner --pid-owner
  范例 iptables -A OUTPUT -m owner --pid-owner 78
  说明 用来比对来自本机的封包,是否为某特定行程所产生的,使用时机同上。
  参数 -m owner --sid-owner
  范例 iptables -A OUTPUT -m owner --sid-owner 100
  说明 用来比对来自本机的封包,是否为某特定联机(Session ID)的响应封包,使用时机同上。
  参数 -m state --state
  范例 iptables -A INPUT -m state --state RELATED,ESTABLISHED
  说明 用来比对联机状态,联机状态共有四种:INVALID、ESTABLISHED、NEW 和 RELATED。
  INVALID 表示该封包的联机编号(Session ID)无法辨识或编号不正确。
  ESTABLISHED 表示该封包属于某个已建立的联机。
  NEW 表示该封包想要起始一个联机(重设联机或将联机重导向)。
  RELATED 表示该封包是属于某个已建立的联机,所建立的新联机。例如:FTP-DATA 联机必定是源自某个 FTP 联机。
  常用的处理动作:
  -j 参数用来指定要进行的处理动作,常用的处理动作包括:ACCEPT、REJECT、DROP、REDIRECT、MASQUERADE、LOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、MARK,分别说明如下:
  ACCEPT 将封包放行,进行完此处理动作后,将不再比对其他规则,直接跳往下一个规则炼(nat:postrouting)。
  REJECT 拦阻该封包,并传送封包通知对方,能够传送的封包有几个选择:ICMP port-unreachable、ICMP echo-reply 或是 tcp-reset(这个封包会需要对方关闭联机),进行完此处理动作后,将不再比对其他规则,直接 中断过滤程式。 范例如下:
  iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset
  DROP 丢弃封包不予处理,进行完此处理动作后,将不再比对其他规则,直接中断过滤程式。
  REDIRECT 将封包重新导向到另一个端口(PNAT),进行完此处理动作后,将 会继续比对其他规则。 这个功能能够用来实作通透式 porxy 或用来保护 web 服务器。例如:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
  MASQUERADE 改写封包来源 IP 为防火墙 NIC IP,能够指定 port 对应的范围,进行完此处理动作后,直接跳往下一个规则炼(mangle:postrouting)。这个功能和 SNAT 略有不同,当进行 IP 伪装时,不需指定要伪装成哪个 IP,IP 会从网卡直接读取,当使用拨接连线时,IP 通常是由 ISP 公司的 DHCP 服务器指派的,这个时候 MASQUERADE 特别有用。范例如下:
  iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000
  LOG 将封包相关讯息纪录在 /var/log 中,周详位置请查阅 /etc/syslog.conf 组态档,进行完此处理动作后,将会继续比对其他规则。例如:
  iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"
  SNAT 改写封包来源 IP 为某特定 IP 或 IP 范围,能够指定 port 对应的范围,进行完此处理动作后,将直接跳往下一个规则炼(mangle:postrouting)。范例如下:
  iptables -t nat -A POSTROUTING -p tcp-o eth0 -j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000
  DNAT 改写封包目的地 IP 为某特定 IP 或 IP 范围,能够指定 port 对应的范围,进行完此处理动作后,将会直接跳往下一个规则炼(filter:input 或 filter:forward)。范例如下:
  iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination 192.168.1.1-192.168.1.10:80-100
  MIRROR 镜射封包,也就是将来源 IP 和目的地 IP 对调后,将封包送回,进行完此处理动作后,将会中断过滤程式。
  QUEUE 中断过滤程式,将封包放入队列,交给其他程式处理。透过自行研发的处理程式,能够进行其他应用,例如:计算联机费用.......等。
  RETURN 结束在现在规则炼中的过滤程式,返回主规则炼继续过滤,假如把自订规则炼看成是个子程式,那么这个动作,就相当于提早结束子程式并返回到主程式中。
  MARK 将封包标上某个代号,以便提供作为后续过滤的条件判断依据,进行完此处理动作后,将会继续比对其他规则。范例如下:
  iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2
  
  六、应用实例
  #!/bin/sh
  #
  # 石牌国小防火墙设定指令稿
  # 2002/8/27
  # 设定者:李忠宪(修改自 iptables tutorial 1.1.11 by Oskar Andreasson )
  # 原文档是依 DMZ 需求设计,已根据校园 NAT 网络之需求修改,其余改变部份包括:
  # 新增通讯协议定义区块
  # 新增执行时,自动清除已设定之规则
  # 支援 FTP
  # 修改任何规则,改采 multiport 方式以简化规则
  # 原文档仅支持 IP 伪装(多对一对应),已扩充为支持一对一对应及多对多对应
  # 原文档仅支援 DNS 及 WEB,新增 ftp、mail、wam、PCAnywhere、ssh......等多种服务器
  # 修改若干规则设定上的小错误
  #
  # Copyright (C) 2001 Oskar Andreasson <bluefluxATkoffeinDOTnet>
  #
  # This program is free software; you can redistribute it and/or modify

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!