Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐: 强烈推荐:Ylmf OS 3.0 正式版发布附迅雷高 XP系统下硬盘安装Fedora 14图文教程
搜索:
您的位置: Linux安全网 > Linux入门 > » 正文

iptables基础应用

来源: shanhuhai5739 分享至:

 

Iptables防火墙             官网www.netfilter.org        Iptables是跟内核一起的,不用手动安装 Iptables防火墙可根据七层协议 表和链关系  表(table)是链(chains)的容器,链是规则(rules)的容器 默认的4个规则表        表都是小写        raw表:对数据包进行状态跟踪        mangle表:为数据包设置标记,流量控制类似于QOS        nat表:修改数据包中得源,目标IP地址和端口        filter表:数据包过滤 如果没有指定表的类型,默认指定filter表               -t参数来指定表的类型 table 默认的5中规则链        链都是大写        INPUT:进入的数据包              与本机有关的数据包,用于防护本机        OUTPU:出去的数据包         与本机有关的数据包,用于防护本机        FORWARD:转发数据包与本机无关数据包,用于防护一个网络        POSTROUTING:路由选择后处理数据包                     PREROUTING:路由选择前处理数据包        每一个链中默认都有一条缺省的策略        #iptables –L 列出所有的策略                  (policy ACCEPT)就是默认的策略 政策接受                           #iptables –t nat –L         查看nat表的链结构,可以看到有三个链。 数据包过滤的优先顺序        规则表之间的优先顺序流程               raw、mangle、nat、filter        规则链之间的优先顺序流程               入站数据:PREROUTING、INPUT               出站数据:OUTPUT、POSTROUTING               转发数据:PREROUTING、FOURWARD、POSTROUTING 数据包的动作        写动作的时候都是大写        ACCEPT        允许数据包通过        DROP            丢弃数据包,就好像该数据包没有被接受一样(直接丢弃)常用        LOG              把数据信息记录到syslog REJECT         丢弃数据包,同时发送适当的响应报文(丢弃后并返回一个信息说为什么丢弃)        RETURN 在调用链中继续处理数据包 Iptables 命令的语法格式        iptables    [-t 表名] 管理选项 [链名] [条件匹配] [-j 动作]               如果不指定表名,默认是filter表               如果不指定表里的链,默认是所有链        iptables    -A           在链尾创建一条规则                      -D          删除一条规则 -I            在指定位置(不指定则在链首)插入一条规则 -F           清空所有规则 -P           设置指定链的默认策略 -p           指定协议 -s           源 -d           目标 -R           替换指定位置或内容的规则 -N          创建一条自定义规则链 -X          删除一条自定义规则链               端口匹配 --sport    源端口 --dprot    目标端口 -i            定义指定某网卡的进入       如-i ech0 多个网卡选择0网卡 -o           定义指定某网卡的出口               TCP标记匹配                      使用--tcp-flags 如SYN(序列号),ACK(确认号),RST,               ICMP类型匹配                      使用—icmp-type 如 echo-request ,echo-reply               显式条件匹配                       -m                      MAC地址匹配                             -m mac –mac-source 00:00:00:00:00:00 多端口匹配        -m multiport –dport 20,21,25 多IP地址匹配        -m iprange --src-range 192.168.1.20-192.168.1.30 数据包状态匹配        -m state         NEW 新发起的链接         ESTABLISHED 服务器正常响应的数据包      established:成立 RELATED与已有连接相关性的数据包(如FTP上传/下载建立的数据连接,这个连接与之前的FTP控制连接存在相关性)related:相关 数据包控制         SNAT 修改数据包的源地址信息         DNAT 修改数据包的目标地址信息 #iptables –t filter –I INPUT –p icmp –s 0.0.0.0/0 –d 192.168.1.2/24 –j DROP               #iptables –t filter –I OUTPUT –p icmp –j DROP  都可以               #iptables –t filter –D INPUT 1      这个1是行号 #/etc/init.d/iptables save 永久保存iptables命令                      保存到/etc/sysconfig/iptables文件里   ,不保存重启之后所有规则都没有了        列表查看规则                      -L    列表查看各条规则信息                      --line-numbers              查看规则时显示行号                      -n    以数字显示IP地址,端口号等信息,和协议号                      -v    显示数据包个数,字节数等信息               #iptables –L INPUT –line-numbers       查看filter表里的INPUT规则的行号 Iptables在实际应用中应该拒绝一切。不能进不能出        #iptables –P INPUT DROP    默认是policy ACCEPT        #iptables –P OUTPUT DROP        #iptables –P FORWARD DROP 查看协议        /etc/services   存放系统所支持的所有服务        /etc/protocols 存放系统所支持所有协议        #iptables –p icmp –help | less 防火墙规则        拒绝所有机器PING防火墙,允许防火墙PING所有机器         首先拒绝所有一切通信         #iptables –F 清空策略         #iptables –p icmp –help | more 查看icmp的类型         #iptables –A OUTPUT –p icmp --icmp-type echo-request –j ACCEPT 允许出去的请求包         #iptables –A INPUT –p icmp –icmp-tyep echo-reply –j ACCEPT     允许回来的回复的包         #iptables-save              保存         指定协议时也可以指定它的协议号,icmp协议号是1在/etc/protocols文件里可查看        允许使用SSH连接         在指定端口的时候必须先指定协议         #iptables –A OUTPUT –p tcp --sport 22 –s 172.16.1.200 –d 172.16.1.100 –j ACCEPT         #iptables –A INPUT –p tcp –dport 22 –s 172.16.1.100 –d 172.16.1.200 –j ACCEPT        允许本机127.0.0.1回环地址      保证一些服务的正常运行         #iptables –A INPUT –s 127.0.0.1 –d 172.0.0.1 –j ACCEPT         #iptables –A OUTPUT –s 127.0.0.1 –d 127.0.0.1 –j ACCEPT        MAC地址匹配         #iptables –A FORWARD –m mac –macc-source 00:00:00:00:00:00 –j DROP        多端口匹配         以逗号区分端口号         #iptables –A INPUT –p tcp –m multiprot –dport 20,21,25,1250-1260 –j ACCEPT        多IP地址匹配        #iptables –A FORWARD –p tcp –m iprange --src-range 192.168.1.20-192.168.1.30 –j DROP        数据包状态匹配               -m state #iptables –A FORWARD –p tcp –m state --state NEW ! --syn –j DROP    NEW 新发起的一个连接    ! 非(不是)                  --syn TCP连接的第一个握手数据包               #iptables –A INPUT –p tcp –m state --state NEW –j DROP       丢弃TCP发起的连接包               #iptables –A INPUT –p tcp –m state --state ESTABLISHED,RELATED –j ACCEPT                      只允许 ESTABLISHED,RELATED数据包状态,(拒绝TCP进入)        SNAT策略               局域网主机共享一个公网IP地址接入INTERNET               SNAT修改数据包的源IP地址     实验一        SNAT      source 三台虚拟机,外网的WWW服务,iptables防火墙,内网xp客户端 WWW服务        搭建外网的WWW服务,apache课件有讲 Iptables防火墙        #iptables –F 清空所有策略        #iptables –P INPUT DROP    拒绝所有一切        #iptables –P OUTPUT DROP        #iptables –P FORWARD DROP        #iptables –A INPUT –s 127.0.0.1 –d 127.0.0.1 –j ACCEPT 允许本地回环地址        #iptables –A OUTPUT –s 127.0.0.1 –d 127.0.0.1 –j ACCEPT        #iptables –I INPUT –p tcp --dport 22 –s 0.0.0.0/0 –d 61.233.154.1 –j ACCEPT        #iptables –I OUTPUT –p tcp --sport 22 –s 61.233.154.1 –d 0.0.0.0/0 –j ACCEPT        上面基本环境搭好        #vi /etc/sysclt.conf               net.ipv4.ip_forward = 1        开启ipv4的路由转发功能                      1 表示开启                      0表示关闭        #iptables –A FORWARD –s 172.16.0.0/16 –j ACCEPT 设置转发链,进入和出去        #iptables –A FORWARD –d 172.16.0.0/16 –j ACCEPT        #iptables –t nat –I POSTROUTING –s 172.16.0.0/16 –o eht1 --to-source 61.233.154.1               POSTROUTING 路由后规则               -s    局域网内网段               -o eth1 从eth1网卡出去    (可不指定)               --to-source     指定外网地址 XP客户端        访问外网WWW服务器,成功        可以在XP上抓下包,抓到包源地址都是61.233.154.1地址,说明SNAT做对了          使用地址伪装.如果外网地址不是固定IP地址,经常改动(ADSL),如果是ADSL接入外网的,那么外网接口名称就是ppp0,ppp1                把以上-j SNAT –to-source 改成 –j MASQUERADE        #iptables –t nat –A POSTROUTING –s 172.16.0.0/16 –o ppp0 –j MASQUERADE   实验二        DNAT     destination        通常用于往外网发布局域网内的服务器        #iptables –t nat –A PREROUTING –i eth1 –d 61.233.154.1 –p tcp –dport 80 \        -j DNAT --to-destination 172.16.1.2 客户端        访问公司外网地址        成功 WWW服务器查看访问记录        #tail /var/log/httpd/access_log               61.233.154.2主机访问过。  

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史