iptables四个表作用图:


iptables的四个表:
raw表有2个链:prerouting、output
mangle表有5个链:prerouting、postrouting、input、output、forward
nat表有3个链:prerouting、postrouting、output
filter表中有3个链:input、output、forward


命令


1. iptables打印信息解释

字段 解释
target 代表进行的操作。ACCEPT,放行;REJECT,拒绝;DROP,丢弃
prot 代表使用的数据包协议,主要有TCP、UDP、ICMP
opt 额外的选项说明
source 代表此规则是针对哪个来源IP进行限制
destination 代表此规则是针对哪个目标IP进行限制

2. 规则查看与清除
规则查看:

iptables [-t tables] [-L] [-nv]
选项 参数解释
-t 后面接table,例如nat或filter,若省略此项目,则默认使用filter
-L 列出目前的table规则
-n 不进行IP与HOSTNAME的反查,显示信息速度会快很多
-v 列出更多信息,包括通过该规则的数据包总位数、相关的网络接口等

例:

iptables -L -n  //列出filter table 3条链的规则
iptables -t nat -L -n  //列出nat table 3条链的规则

规则清除:

iptables-save  //列出完整防火墙规则
iptables-save [-t table] //列出NAT表规则
iptables-save [-t table] [-FXZ] 
选项 解释
-F 清除所有已制订的规则
-X 除掉所有用户“自定义”的chain(或者说tables)
-Z 将所有的chain的计数与流量统计都归零

例:

iptables -F
iptables -X
iptables -Z

3. 定义默认策略(policy)
当数据包不在我们设定的规则之内时,则该数据包的通过与否,是以Policy的设置为准

iptables [-t table] -P [INPUT, OUTPUT, FORWORD] [ACCEPT, DROP]
选项 解释
-P 定义策略(policy)。注意这个 P 大写
ACCEPT 该数据包可接受
DROP 该数据包直接丢弃,不会让Client端知道为何被丢弃

范例:将本机的INPUT设置为DROP,其他设置为ACCEPT

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWORD ACCEPT

4. 数据包的基础比对:IP、网络及接口设备

iptables [-AI 链名] [-io 网络接口] [-p 协议] [-s 来源 IP/网络] [-d 目标 IP/网络] -j [ACCEPT|DROP|REJECT|LOG]
选项 - 解释
-AI 链名 针对某条链进行规则的“插入”或 “累加”
-A 在原规则末尾新增加一条规则
-I 插入一条规则, 默认是插入变成第一条规则
有INPUT、OUTPUT、FOPRWARD等,此链名称又与 -io 有关
-io 网络接口 设置数据包进出接口规范
-i 数据包所进入的那个接口,如eth0, lo接口,需与INOUT配合
-0 数据包所传出的那个接口,需与OUTPUT配合
-p 协定 设置此数据包适用于那种数据包格式。常用的有:tcp、udp、icmp及all
-s 来源 IP/网络 设置此规则之数据包来源地,可指定单纯的IP或网络
IP 192.168.0.100
网络 192.168.0.0/24、 192.168.0.0/255.255.255.0 均可。 -s ! 192.168.100.0/24 表示不接受 192.168.100.24.0/24 发来的数据包
-d 目标 IP/网络 同 -s ,只不过这里表示的是目标的IP或网络
-j 后面接操作 主要的操作有接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)及记录(LOG)

范例1:设置lo成为受信任的设备,即 进出lo的数据包都予以接受

iptables -A INPUT -i lo -j ACCEPT

范例2:只要是来自内网的(192.168.100.0/24)的数据包就通通接受

iptables -A IMPUT -i eth1 -s 192.168.100.0/24 -j ACCEPT

范例3:接受来自192.168.100.10的数据,丢弃来自192.168.100.230的数据

iptables -A INPUT -i eth1 -s 192.168.100.10 -j ACCEPT
iptables -A INPUT -i eth1 -s 192.168.100.230 -j DROP

范例4: 记录某个规则记录

iptables -A INPUT -s 192.168.2.200 -j LOG

只要数据包来自192.168.2.200这个IP时,该数据包的相关信息就会被写入到内核日志文件(var/log/messages)中,然后该数据包会继续进行后续的规则比对


5. TCP、UDP的规则比对:针对端口设置

iptables [-AI 链] [-io 网络接口] [-p tcp,udp] [-s 来源 IP/网络] [--sport 端口范围] [-d 目标 IP/网络] [--drop 端口范围] -j [ACCEPT|DROP|REJECT]
选项 - 解释
–sport 端口范围 限制来源的端口号码,端口可以是连续的,例如:1024:65535
–dport 端口范围 限制目标端口号码

注意:因为仅有TCP与UDP数据包具有端口,因此想要使用-dport、–sport时,需要加上 -p tcp 或 -p udp 的参数才会成功。

范例1:阻挡进入本机 port 21 的数据包

iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP

范例2:想连到本台主机的网上邻居(udp port 137, 138 tcp port 139, 445)就放行

iptables -A INPUT -i eth0 -p udp --dport 137:138 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 445 -j ACCEPT

范例3:来自 192.168.1.0/24 的 1024:65535 端口的数据包,且想要连接到本机的 ssh port 就予以阻挡

iptables -A INPUT -i eth0 -p tcp -s 192.168.1.0/24 --port 1024:65534 --dport ssh -j DROP

范例4:将来自任何地方来源 port 1:1023 的主动连接到本机端的 1:1023 连接丢弃

iptables -A INPUT -i eth0 -p tcp --sport 1:1023 --drop 1:1023 --syn -j DROP

6. iptables外挂模块: mac 与 state
网络是双向的,当我们放行数据包出去的时候同样也要放行对应的数据包进来,在管理上就有一定的困难。
iptables可以通过一个模块来分析这个想要进入的数据包是否为刚刚发出去的响应,如果是,则予以接受放行。这样就不用考虑远程主机是否进来的问题了。

iptables -A INPUT [-m state] [--state 状态]
选项 - 解释
-m 一些iptables的外挂模块
state 状态模块
mac 网卡硬件地址(hardware address)
–state 一些数据包的状态
INVALID 无效的数据包,例如数据破损的数据包状态
ESTABLISHED 已经连接成功的连接状态
NEW 想要建立连接的数据包状态
ESTABLISHED 这个最常用、表示这个数据包时与主机发送出去的数据包相关

范例1:只要以建立连接或与已发出请求相关的数据包就予以通过,不合法的数据包就丢弃

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state --state INVALID -j DROP

范例2:针对局域网内的 aa:bb:cc:dd:ee:ff 主机放开其连接

iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -j ACCEPT
选项 解释
–mac-source 来源主机的mac

7. ICMP数据包规则的比对:针对是否相应ping来设计

iptables -A INPUT [-p icmp] [--icmp-type 类型] -j ACCEPT
选项 解释
–icmp-type 后面必须要接 ICMP 的数据包类型,也可以使用代号,例如:8 代表 echo request 的意思

范例:让 0,3,4, 11,12,14,16,18 的 ICMP type 可以进入本机

[root@F12 ~]# vi somefile
#!/bin/bash
icmp_type="0 3 4 11 12 14 16 18"
for typeicmp in $icmp_type
doiptables -A INPUT -i eth0 -p icmp --icmp-type $typeicmp -j ACCEPT
done
[root@F12 ~]# vi somefile

【Linux应用层】防火墙iptables命令相关推荐

  1. linux下防火墙iptables用法规则详解

    linux下防火墙iptables用法规则详解 分享者: du52.com 邮件: wangaibo168@163.com 主页: http://www.du52.com linux下防火墙iptab ...

  2. Linux下防火墙iptables用法规则详及其防火墙配置

    原博主文章更美丽: http://www.cnblogs.com/yi-meng/p/3213925.html iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国 ...

  3. linux下防火墙iptables原理及使用

    iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火 ...

  4. linux开启防火墙的命令行,Linux关闭/开启防火墙命令

    Linux还是比较常用的,于是我研究了一下Linux关闭防火墙命令,在这里拿出来和大家分享一下,希望你能学会Linux关闭防火墙命令 . 1) 永久性生效,重启后不会复原 开启: chkconfig ...

  5. linux通过防火墙iptables做隔离端口的脚本

    通过防火墙iptables做隔离端口的脚本 vi iptables_fix.sh #!/bin/bash #备份旧的规则 iptables-save > "/opt/firewall- ...

  6. linux 网络管理之iptables命令详解

    用途 iptables是Linux上常用的防火墙软件, 工作流程 iptables 会对数据包进行过滤,所以会对请求数据包的包头进行解析,并按照指定的规则进行匹配决定是否允许该数据包进入主机,其过滤规 ...

  7. Linux firewall(防火墙)相关命令

    // 1.检验防火墙是否启动 firewall-cmd --state // 2. 检查8080 端口是否启动: firewall-cmd --permanent --zone=public --li ...

  8. linux 网络管理   防火墙 iptables

    1 ifconfig 查看网卡ip 配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 重启网卡 service  network restart  给一个网 ...

  9. linux 看防火墙的启停日志,LINUX下防火墙iptables的日志管理

    iptables的日志(log)由syslogd纪录和管理.初始存放在 /var/log/messages里面.自动采取循环纪录(rotation)的方式记录.但是由于混在 messages中,对于管 ...

  10. linux查看防火墙状态命令

    1.查看防火墙状态     firewall-cmd --state 2.关闭防火墙     systemctl stop firewalld.service 3.禁用开启启动防火墙 systemct ...

最新文章

  1. 【NOIP2015提高组Day1】 神奇的幻方
  2. koa2+vue实现登陆以及是否登陆控制
  3. MySQL中in(常量列表)的执行计划
  4. RH413-测试文件的a属性
  5. 查看mysql 更新命令_MySQL UPDATE 查询
  6. wepy 父调用子组件方法_wepy踩坑小记(一)
  7. 20155229 2016-2007-2 《Java程序设计》第一周学习总结
  8. mysql5.6源码自动安装脚本
  9. 游戏代练平台源码打包+搭建教程
  10. 看数据模型界两大长老的神仙打架
  11. 如何拼局域网所有ip_如何查看局域网内所有ip?
  12. 计算机科学与技术高中选课,2019-2021年新高考专业选课要求 大学个专业选科要求解读...
  13. ubuntu linux安装google输入法
  14. 怎么更新计算机显卡,电脑显卡怎么升级 电脑显卡如何升级
  15. leetcode 每日一题 一起进步714 买卖股票的最佳时机含手续费
  16. Bmob后端云的使用
  17. 微信小程序 关于下载文件、打开文件预览文件(wx.downloadFile和wx.openDocument)
  18. 企业微信小程序获取手机号?
  19. 苹果 IAP 支付服务端处理完整流程及注意事项(包含订阅商品处理)
  20. Java与C语言链表的不同

热门文章

  1. 简单二叉树的模型和解法(C++)
  2. python爬虫论文总结与展望怎么写_论文总结与展望怎么写
  3. git push 报错 pre-receive hook declined
  4. 阿里云DataV数据展示的一些sql写法
  5. PPI | protein-protein interaction | 蛋白互作分析 | gene interaction | 基因互作
  6. sicilyOJ 09广东省赛重现H Westward Journey Online(线段树)
  7. 【多元函数微分学】易错点总结
  8. Linux系统移植(第2版)
  9. html点中弹出选择框,javascript点击弹出选择框
  10. 中国物联网:价值万亿美元的重大契机