Iptables学习笔记
最近一段时间一直在做路由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的精彩内容!
近期评论