iptables 小结

标签: iptables | 发表时间:2013-06-22 20:20 | 作者:xingliyuan22
出处:http://blog.csdn.net

        最近工作上一个作业用到了iptables命令,主要进行端口映射,在网上查了好多资料,尽管有很多例子,但还是整了好几天才整明白。在这里将学习到的知识总结一下。以下均属个人见解。(有一些是从网络中总结的,不断完善中...)

 一、基本知识

(1) iptables简介

           iptables是一个Linux下优秀的nat+防火墙工具,iptables操作的是2.4以上内核的netfilter,所以需要linux的内核在2.4以上。其功能性与安全性远远比其前辈ipforward、ipchains强大,iptables大致是工作在OSI七层的二、三、四层。

          首先简单介绍一下netfilter的大致工作流程,也就是一个数据包(或者分组,packet),在到达linux的网络接口(网卡)的时候,如何处理这个包。然后再介绍一下如何利用iptables改变或控制这个数据包。

         netfilter的内部有三个表吗,分别是filter、nat和mangle。每个表有不同的操作链(Chain)。

         filter表中,即起防火墙功能的表,定义了三个Chain,分别是INPUT、FORWARD、OUTPUT(即对包的进入、转发和出进行定义的三个链),对这个filter表的操作是实现防火墙功能的一个重要手段。

        nat表(Network Address Translation网络地址翻译),定义了PREROUTING、POSTROUTING、OUTPUT三个链,主要用于实现地址转换和端口转发。

        mangle表,是一个自定义表,包括上述的filter和nat表中的各种chains,它可以让我们进行一些自定义的操作。mangle表中的chains存在netfilter对包的处理流程中处于一个比较优先的位置(对此表的了解不多,一般情况我们用不到这个mangle表,在此不做介绍)。

        下述图清晰的描绘了netfilter对包的处理流程(摘自网上,不知作者是谁,在此深表敬意!)。

                                                   

   注:详细的解说参见如下文章:

      http://blog.csdn.net/xingliyuan22/article/details/9047767

(2)基本操作

 ①iptables命令启动、停止、重启、保存:

  #/etc/init.d/iptables start

 #service iptables start

 #/etc/init.d/iptables stop

 #/etc/init.d/iptables restart

 #service iptables restart

 #/etc/init.d/iptables save

②其他操作详解见

http://blog.csdn.net/xingliyuan22/article/details/8960917

http://blog.csdn.net/xingliyuan22/article/details/9142891

二、应用

(1)端口映射

 前提:一台Linux双网卡计算机IP:192.168.1.2、202.201.1.2,内网有一个Web服务器192.168.1.6

 要求:在外网的浏览器输入202.201.1.2:8000访问到192.168.1.6的80Web服务端口

详细配置:

注意:在此之前要打开端口转发服务

/etc/sysctl.conf配置文件的  net.ipv4.ip_forward = 1 默认是0

可以获得root权限修正,也可以用如下命令:

echo "1" > /etc/sysctl.conf/net.ipv4.ip_forward

①清除原有规则

#iptables -F -t nat

#iptables -F -t filter

#/etc/init.d/iptables save

②配置映射规则

#iptables -t nat -A PREROUTING -d 202.201.1.2 -t tcp  --dport 8000 -t tcp -j DNAT -to--destination 192.168.1.6:80

#iptables -t nat -A POSTROUTING -d 192.168.1.6 -p tcp --dport 80 -j SNAT -- to 192.168.1.2

#iptables -A FORWARD -o eth0 -d 192.168.1.6 -p tcp --dport 80 -j ACCEPT

#iptables -A FORWARD -i eth0 -s192.168.1.6 -p tcp --dport 80 -j ACCEPT

#iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

③保存,启动服务

 #/etc/init.d/iptables save

 #service iptables restart

注:在/proc/net/ip_conntrack文件里有包的流向

(2)IP映射

前提:Linux先在一个网卡上追加一个IP地址,Linux上的一个网卡可以有多个IP地址。

  LINUX双网卡,IP分别为eth0:192.168.1.2/24、eth1:192.168.2.2/24

要求:将IP:192.168.2.5映射到LINUX上的192.168.1.2上

①追加linux的eth0一个网址

#ip address add 1.1.1.1/30 brd + dev eth0

②iptables配置

#iptables -A FORWARD -s 192.168.12.95 -j ACCEPT

#iptables -A FORWARD -d 192.168.12.95 -j ACCEPT

#iptables -t nat -A PREROUTING -d 202.201.1.2 -j DNAT -to--destination 192.168.1.6

#iptables -t nat -A POSTROUTING -d 192.168.1.6 -j SNAT -- to -source 192.168.1.2

#/etc/init.d/iptables save

 #service iptables restart

注:详细的解释参加下述文章:

http://blog.csdn.net/xingliyuan22/article/details/9152323

作者:xingliyuan22 发表于2013-6-22 20:20:11 原文链接
阅读:185 评论:0 查看评论

相关 [iptables] 推荐:

iptables NAT 学习

- - BlogJava-首页技术区
为了搞清楚iptables NAT的过程,做了这个实验. 使用了1台双网卡服务器和1台单网卡服务器,2个网段. 1.       为了看到调度服务器上的数据转发过程,首先在调度服务器上分出内核的debug日志:. l 在/etc/rsyslog.conf最后增加:kern.debug /var/log/iptables.log.

iptables 小结

- - CSDN博客系统运维推荐文章
        最近工作上一个作业用到了iptables命令,主要进行端口映射,在网上查了好多资料,尽管有很多例子,但还是整了好几天才整明白. (有一些是从网络中总结的,不断完善中...). (1) iptables简介.            iptables是一个Linux下优秀的nat+防火墙工具,iptables操作的是2.4以上内核的netfilter,所以需要linux的内核在2.4以上.

iptables 详解

- - 行业应用 - ITeye博客
以下文章转载于:http://blog.chinaunix.net/uid-26495963-id-3279216.html. 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种. 无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘. 而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测.

iptables原理说明

- - CSDN博客互联网推荐文章
1.iptables的前身叫ipfirewall (内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具. 2. 作者一共在内核空间中选择了5个位置,.     1).内核空间中:从一个网络接口进来,到另一个网络接口去的.     2).数据包从内核流入用户空间的.

linux下IPTABLES配置详解

- - Linux - 操作系统 - ITeye博客
作者博客:http://www.cnblogs.com/JemBai/. 原文地址:http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html. 如果你的IPTABLES基础知识还不了解,建议先去看看. 我们来配置一个filter表的防火墙.

利用iptables 封与解封IP

- - 傻子-王跸西的blog-WangBiXi.com
I表示Insert(添加),-D表示Delete(删除).

iptables 访问控制规则两则

- - 依云's Blog
一直以来,面对 Vim 显示的 auth.log 里满屏的红色 ssh 登录失败记录,要么容忍,要么换端口号,要么是 fail2ban. 换端口号显然会造成很多不便,尤其是使用者比较多的时候. fail2ban 以前也用得挺好的,但是需要手工编辑配置文件,阅读其中长长的注释并且小心翼翼地修改参数. 配置好之后还会经常收到 fail2ban 发出的邮件.

[转]iptables防火墙与NAT服务

- - 小鸥的博客
iptables防火墙与NAT服务. (1)设置在不同的网络或网络安全域之间的一系列部件的组合,它能增强机构内部网络的安全性. (2)通过审查经过每一个数据包,判断它是否有相匹配的过滤规则,根据规则先后顺序一一进行比较,直到满足其中的一条规则为止,然后依据控制机制做出相应的动作,若都不能满足,则将数据包丢弃,从而保护网络安全.

Shadowsocks屏蔽端口iptables规则

- - 深度VPS
Shadowsocks经常被人滥发垃圾邮件之类的而被暂停服务. 我们仅需保留SSH,SQL,DNS,HTTP和HTTPS这些主要端口,其它的用iptables做下限制,这样就高枕无忧了. 请把你的SSH22端口改了.

使用 iptables 透明代理 TCP 与 UDP

- - 依云's Blog
本文来自 依云's Blog,转载请注明. 很早之前,我在 《Linux「真」全局 HTTP 代理方案》中介绍了 redsocks 方案. 不过它只处理了 TCP,并没有处理 UDP,DNS 也是采用强制 TCP 的方式来处理的,再加上它本身还要将请求转发到真正的代理客户端,延迟比较高. 然后,还可以结合 Wi-Fi 分享 或者 网络命令空间,玩点更有趣的.