中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 操作系统 > Linux > Linux综合
iptables经典设置
作者:guangdong  时间:2007-10-15 17:45 出处:linuxpk 责编:月夜寒箫
              摘要:iptables经典设置
 举些例子,自己学习

  iptables 使用时的样板

  在设定 iptables 的封包过滤规则时,有几个样板的动作,若先熟悉它们,往后就可自行套用,依此类推,很快地,您就可以进入这个天地之中。

  观察目前的设定

  作法如下∶

  iptables -L -n

  iptablse -t nat -L -n

  定义变数

  FW_IP="163.26.197.8"

  打开核心 forward 功能

  作法如下∶

  ###-----------------------------------------------------###

  # 打开 forward 功能

  ###-----------------------------------------------------###

  echo "1" > /proc/sys/net/ipv4/ip_forward

  清除所有的规则

  一开始要先清除所有的规则,重新开始,以免旧有的规则影响新的设定。作法如下∶

  ###-----------------------------------------------------###

  # 清除先前的设定

  ###-----------------------------------------------------###

  # 清除预设表 filter 中,所有规则链中的规则

  iptables -F

  # 清除预设表 filter 中,使用者自订链中的规则

  iptables -X

  # 清除mangle表中,所有规则链中的规则

  iptables -F -t mangle

  # 清除mangle表中,使用者自订链中的规则

  iptables -t mangle -X

  # 清除nat表中,所有规则链中的规则

  iptables -F -t nat

  # 清除nat表中,使用者自订链中的规则

  iptables -t nat -X

  选定预设的政策

  接着,要选定各个不同的规则链,预设的政策为何。作法如下∶

  预设全部丢弃∶

  ###-----------------------------------------------------###

  # 设定 filter table 的预设政策

  ###-----------------------------------------------------###

  iptables -P INPUT DROP

  iptables -P OUTPUT DROP

  iptables -P FORWARD DROP

  或者预设全部接受∶

  ###-----------------------------------------------------###

  # 设定 filter table 的预设政策

  ###-----------------------------------------------------###

  iptables -P INPUT ACCEPT

  iptables -P OUTPUT ACCEPT

  iptables -P FORWARD ACCEPT

  各个规则链的预设政策可独立自主的设定,不必受其它链的影响。

  以下练习,若目标为 DROP,则 policy 请设为 ACCEPT;若目标为 ACCEPT,则 policy 请设为 DROP,如此方可看出效果。

  开放某一个介面

  作法如下∶

  iptables -A INPUT -i lo -j ACCEPT

  iptables -A OUTPUT -o lo -j ACCEPT

  注∶IPFW 或 Netfilter 的封包流向,local process 不会经过 FORWARD Chain,

  因此 lo 只在 INPUT 及 OUTPUT 二个 chain 作用。

  iptables -A INPUT -i eth1 -j ACCEPT

  iptables -A OUTPUT -o eth1 -j ACCEPT

  iptables -A FORWARD -i eth1 -j ACCEPT

  iptables -A FORWARD -o eth1 -j ACCEPT

  IP 伪装

  使内部网路的封包经过伪装之后,使用对外的 eth0 网卡当作代表号,对外连线。作法如下∶

  ###-----------------------------------------------------###

  # 启动内部对外转址

  ###-----------------------------------------------------###

  iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/16 -j SNAT --to-source $FW_IP

  上述指令意指∶把 172.16.0.0/16 这个网段,伪装成 $FW_IP 出去。

  虚拟主机

  利用转址、转 port 的方式,使外部网路的封包,可以到达内部网路中的伺服主机,俗称虚拟主机。这种方式可保护伺服主机大部份的 port 不被外界存取,只开放公开服务的通道(如 Web Server port 80),因此安全性甚高。

  作法如下∶

  ###-----------------------------------------------------###

  # 启动外部对内部转址

  ###-----------------------------------------------------###

  # 凡对 $FW_IP:80 连线者, 则转址至 172.16.255.2:80

  iptables -t nat -A PREROUTING -i eth0 -p tcp -d $FW_IP --dport 80 -j DNAT --to-destination 172.16.255.2:80

  开放内部主机可以 telnet 至外部的主机

  开放内部网路,可以 telnet 至外部主机。

  作法如下∶(预设 policy 为 DROP)

  ###-----------------------------------------------------###

  # open 外部主机 telnet port 23

  ###-----------------------------------------------------###

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 23 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 23 -d $FW_IP --dport 1024:65535 -j ACCEPT

  开放邮包转递通道

  开放任意的邮件主机送信包给你的 Mail Server,而你的 Mail Server 也可以送信包过去。

  作法如下∶(预设 policy 为 DROP)

  ###-----------------------------------------------------###

  # open SMTP port 25

  ###-----------------------------------------------------###

  # 以下是∶别人可以送信给你

  iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 1024:65535 -d $FW_IP --dport 25 -j ACCEPT

  iptables -A OUTPUT -o eth0 -p tcp ! --syn -s $FW_IP --sport 25 -d any/0 --dport 1024:65535 -j ACCEPT

  # 以下是∶你可以送信给别人

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 25 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 25 -d $FW_IP --dport 1024:65525 -j ACCEPT

  开放对外离线下载信件的通道

  开放内部网路可以对外部网路的 POP3 server 取信件。

  作法如下∶(预设 policy 为 DROP)

  ###-----------------------------------------------------###

  # open 对外部主机的 POP3 port 110

  ###-----------------------------------------------------###

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 110 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 110 -d $FW_IP --dport 1024:65535 -j ACCEPT

  开放观看网页的通道

  开放内部网路可以观看外部网路的网站。

  作法如下∶(预设 policy 为 DROP)

  ###-----------------------------------------------------###

  # open 对外部主机的 HTTP port 80

  ###-----------------------------------------------------###

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 80 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 80 -d $FW_IP --dport 1024:65535 -j ACCEPT

  开放查询外部网路的 DNS 主机

  开放内部网路,可以查询外部网路任何一台 DNS 主机。

  作法如下∶(预设 policy 为 DROP)

  ###-----------------------------------------------------###

  # open DNS port 53

  ###-----------------------------------------------------###

  # 第一次会用 udp 封包来查询

  iptables -A OUTPUT -o eth0 -p udp -s $FW_IP --sport 1024:65535 -d any/0 --dport 53 -j ACCEPT

  iptables -A INPUT -i eth0 -p udp -s any/0 --sport 53 -d $FW_IP --dport 1024:65535 -j ACCEPT

  # 若有错误,会改用 tcp 封包来查询

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 53 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 53 -d $FW_IP --dport 1024:65535 -j ACCEPT

  # 开放这台主机上的 DNS 和外部的 DNS 主机互动查询∶使用 udp

  iptables -A OUTPUT -o eth0 -p udp -s $FW_IP --sport 53 -d any/0 --dport 53 -j ACCEPT

  iptables -A INPUT -i eth0 -p udp -s any/0 --sport 53 -d $FW_IP --dport 53 -j ACCEPT

  # 开放这台主机上的 DNS 和外部的 DNS 主机互动查询∶使用 tcp

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 53 -d any/0 --dport 53 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! -y -s any/0 --sport 53 -d $FW_IP --dport 53 -j ACCEPT

  开放内部主机可以 ssh 至外部的主机

  开放内部网路,可以 ssh 至外部主机。

  作法如下∶(预设 policy 为 DROP)

  ###-----------------------------------------------------###

  # open 外部主机 ssh port 22

  ###-----------------------------------------------------###

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 22 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 22 -d $FW_IP --dport 1024:65535 -j ACCEPT

  # 以下是 ssh protocol 比较不同的地方

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1020:1023 -d any/0 --dport 22 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 22 -d $FW_IP --dport 1020:1023 -j ACCEPT

  开放内部主机可以 ftp 至外部的主机

  开放内部网路,可以 ftp 至外部主机。

  作法如下∶(预设 policy 为 DROP)

  ###-----------------------------------------------------###

  # open 对外部主机 ftp port 21

  ###-----------------------------------------------------###

  # 以下是打开命令 channel 21

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 21 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 21 -d $FW_IP --dport 1024:65535 -j ACCEPT

  # 以下是打开资料 channel 20

  iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 20 -d $FW_IP --dport 1024:65535 -j ACCEPT

  iptables -A OUTPUT -o eth0 -p tcp ! --syn -s $FW_IP --sport 1024:65535 -d any/0 --dport 20 -j ACCEPT

  # 以下是打开 passive mode FTP 资料通道

  iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 1024:65535 -j ACCEPT

  iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 1024:65535 -d $FW_IP --dport 1024:65535 -j ACCEPT

  开放 ping

  可以对外 ping 任何一台主机。

  作法如下∶(预设 policy 为 DROP)

  iptables -A OUTPUT -o eth0 -p icmp -s $FW_IP --icmp-type 8 -d any/0 -j ACCEPT

  iptables -A INPUT -i eth0 -p icm -s any/0 --icmp-type 0 -d $FW_IP -j ACCEPT
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有