首页 > Linux > Iptables学习笔记

Iptables学习笔记

2014年4月23日 发表评论 阅读评论

最近一段时间一直在做路由wifi的项目,这里面主要用的就是前面日志里面提到过的wifidog,而wifidog的核心其实就是iptables。所以在这过程中不得不对iptables进行深一步的学习和了解,以便能更好的完成工作。以前在centos下面对iptables也有粗浅的了解,但那就是简单的按照/etc/sysconfig/iptables文件中它的样例,该一下端口添加一条http的,然后重启iptables或者是更暴力直接使用iptables -F直接解决问题。下面就是我接触学习过程做的一些笔记。

1 iptables帮助

iptables -h 或者  iptables –help

你会看到iptables的各种用法了,当然可能大部分都是英文,英文不是很好的同学可能会有点纠结了,我这里面会尽可能的提到大部分我所知道的用法,没有提到的也欢迎大家补充。

iptables主要参数:


-A 向规则链中添加一条规则,默认被添加到末尾

-T指定要操作的表,默认是filter

-D从规则链中删除规则,可以指定序号或者匹配的规则来删除

-R进行规则替换

-I插入一条规则,默认被插入到首部

-F清空所选的链,重启后恢复

-N新建用户自定义的规则链

-X删除用户自定义的规则链

-p用来指定协议可以是tcp,udp,icmp等也可以是数字的协议号,

-s指定源地址

-d指定目的地址

-i进入接口

-o流出接口

-j采取的动作,accept,drop,snat,dnat,masquerade

--sport源端口

--dport目的端口,端口必须和协议一起来配合使用

2 iptables 添加记录

禁止访问80服务器端口

iptables -A INPUT -p tcp –dport 80 -j DROP

这里面-A 表示append添加,后面跟着的INPUT是链表名称,也就是这条记录添加到INPUT表中,后面的-p 表示协议,后面的tcp表示tcp协议,–dport表示目标端口号,80就表示服务器的80端口了,-j表示采取那种操作,DROP表示不允许

禁止ping操作

iptables -A INPUT -p icmp -j DROP

这里面的-p icmp就是制定icmp协议(ping协议)即禁止ping操作

禁止192.168.1.10访问本机http服务

iptables -A INPUT -p tcp -s 192.168.1.10 –dport 80 -j DROP

上面提到的参数就不再一一解释了,-s表示source的意思也就是来源后面跟的是ip地址

禁止192.168.1.10的8080端口进行tcp链接

iptables -A INPUT -p tcp -s 192.168.1.10 –sport 8080 -j DROP

阻止MAC地址为00:0C:29:AC:95:05主机的所有通信

iptables -A INPUT -m mac –mac-source 00:0C:29:AC:95:05 -j DROP

3 链(chain)操作

自定义链

iptables -N MYCHAIN

清空链指定链

iptables -F MYCHAIN

备注:注意这里如果 -F后面不跟链名,会清空所有链

删除指定链

iptables -X MYCHAIN

查看指定链

iptables -L INPUT -n

备注:同时如果-L后不加链名会显示所有链,-n表示不进行反向解析,速度会快很多

将自定义链关联起来

iptables -A INPUT -j MYCHAIN

这里的意思是INPUT链之后跳到MYCHAIN链,如果不仅这一步,我们自定义的链就不会起作用,我们在进行-L进行查看操作时,就会看到Chain MYCHAIN (0 references),如果我们进行上面的关联操作就会变成Chain MYCHAIN (1 references)这样。

目前就介绍这么多iptables的基础内容吧,当然还有很多内容没有说道,如果你赶兴趣可以google或者查看《鸟哥的Linux私房菜:服务器架设篇》,里面有更多关于iptables的精彩内容!

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
您必须在 登录 后才能发布评论.