分享

【Linux】iptables学习笔记

 java_laq小馆 2013-10-23

1      iptables

Linux内核防火墙Netfilter提供了iptables指令来作为防火墙封包过滤的指令。与规则的顺序强相关。默认情况下,iptables有三张表格,包括管理本机进出的filter、管理后端主机的NAT、管理特殊标志的mangle

显示:iptables [-t tables] [-L] [-nv]

清除:iptables [-t tables] [-FXZ]F:清除所有;X:所有自定义;Z:将所有chain的计数与流量清零;

定义默认规则(当规则都不匹配时按默认规则处理):iptables –P [INPUT, OUTPUT, FORWARD] [ACCEPT, DROP]

插入规则:iptables [-AI 链名] [-io 网络接口] [-p 协议] [-s IP] [--sport 源端口] [-d 目标IP] [--dport 目的端口] –j [ACCEPT|DROP|REJEDCT|LOG]

参数说明:A:在后面新增; I:在前面新增; LOG将包信息写入/var/log/messages,然后接着比对后续的规则。

iptables –A INPUT [-m state] [--state 状态]

miptables的外挂模块,如statemac --state:封包的状态,INVALID|ESTABLISHED|NEW|RELATED

这个命令减少规则的个数,让iptables去分析包的状态。

/etc/init.d/iptables save 保存设定的规则

自定义链:-J 链名  这样,匹配的数据包会进入自定义链中,如果有匹配规则,则结束;如果没有,则接着在父链匹配。

 

SNAT 主要是应付内部 LAN 连接到 Internet 的使用方式,至于 DNAT 则主要用在内部主机想要架设可以让 Internet 存取的服务器。

2      数据包流向策略

若内部 LAN 有任何一部主机想要传送封包出去时, 那么这个封包要如何透过 Linux 主机而传送出去?它是这样的:

1. 先经过 NAT table PREROUTING 链;

2. 经由路由判断确定这个封包是要进入本机与否,若不进入本机,则下一步,若进入本机就是进入INPUT链;

3. 再经过 Filter table FORWARD 链;

4. 通过 NAT table POSTROUTING 链,最后传送出去(如果是来自本机进程的数据包,则会检查 OUTPUT 以及 POSTROUTING)。

这里,POSTROUTING在修改源IPSNAT),PREROUTING则修改目标IPDNAT)。

处理动作除了 ACCEPTREJECTDROPREDIRECT MASQUERADE 以外,还多出 LOGULOGDNATSNATMIRRORQUEUERETURNTOSTTLMARK 等,其中某些处理动作不会中断过滤程序,某些处理动作则会中断同一规则链的过滤,并依照前述流程继续进行下一个规则链的过滤。

3      TCP wrappers

TCP wrappers通过应用程序的名称和相应的规则来判断包的拒绝与否,通过/etc/hosts.allow, /etc/hosts.deny来管理一个类似于防火墙的机制,前者优先级较高。并非所有的软件都可以控管,只有:

§   super daemon(xinetd)所管理的服务(即配置文件在 /etc/xinetd.d/,查看命令:chkconfig xinetd on; chkconfig --list);

§   有支持libwrap.so模块的服务;

示例:

ALL: 127.0.0.1 <==这就是本机全部的服务都接受!

rsync: 192.168.1.0/255.255.255.0 10.0.0.100

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多