博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux iptables 命令详解
阅读量:4160 次
发布时间:2019-05-26

本文共 3005 字,大约阅读时间需要 10 分钟。

语法:

iptables (选项) (参数)

iptables命令选项输入顺序:

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

参数说明:

表名包括

  • raw:高级功能,如:网址过滤。
  • mangle:数据包修改(QOS),用于实现服务质量。
  • net:地址转换,用于网关路由器。
  • filter:包过滤,用于防火墙规则。

规则链名包括

  • INPUT链:处理输入数据包。
  • OUTPUT链:处理输出数据包。
  • PORWARD链:处理转发数据包。
  • PREROUTING链:用于目标地址转换(DNAT)。
  • POSTOUTING链:用于源地址转换(SNAT)。

动作包括

  • ACCEPT:接收数据包。

  • DROP:丢弃数据包。

  • REDIRECT:重定向、映射、透明代理。

  • SNAT:源地址转换。

  • DNAT:目标地址转换。

  • MASQUERADE:IP伪装(NAT),用于ADSL。

  • LOG:日志记录。

常用命令


 

查看现在iptables规则:

iptables -L -n -v

清空配置:

iptables -F #清楚规则链中已有的条目;使用iptables -F 要小心,搞不好,你就马上同服务器断开连接了iptables -X #删除没有用户配置文件相关的chainiptables -Z #清空规则链中的数据包计算器和字节计数器;

用规则配置:

#配置,禁止进,允许出,允许回环网卡iptables -P INPUT DROPiptables -A OUTPUT -j ACCEPTiptables -A INPUT -i lo -j ACCEPT#允许pingiptables -A INPUT -p icmp -j ACCEPT#允许sshiptables -A INPUT -p tcp --dport 22 -j ACCEPT#允许ftpiptables -A INPUT -p tcp --dport 21 -j ACCEPTiptables -A INPUT -p tcp --dport 20 -j ACCEPT#允许ftp被动接口范围,在ftp配置文件里可以设置iptables -A INPUT -p tcp --dport 20000:30000 -j ACCEPT#学习felix,把smtp设成本地iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -s 127.0.0.1iptables -A INPUT -p tcp -m tcp --dport 25 -j REJECT#允许DNSiptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPTiptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT#允许http和httpsiptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPT#允许已建立的或相关连的通行iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT#禁止其他未允许的规则访问iptables -A INPUT -j REJECT #(注意:如果22端口未加入允许规则,SSH链接会直接断开。)iptables -A FORWARD -j REJECT

屏蔽ip——使用-I参数

iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段即从123.45.0.1到123.45.255.254的命令iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段即从123.45.6.1到123.45.6.254的命令是

删除已添加的iptables规则——使用-D参数

#假设之前用iptables -A INPUT -s 192.168.1.4 -j DROP 添加的规则iptables -D INPUT -s 192.168.1.4 -j DROP#或者#查出当前规则的列表,使用当前列表下的序号:由下至下顺序iptables -D INPUT 3 #这里是删除第三条

修改规则——使用-R参数

#假设之前用iptables -A INPUT -s 192.168.1.4 -j DROP 添加的规则iptables -R INPUT -s 192.168.1.4 -j DROP#或者#查出当前规则的列表,使用当前列表下的序号:由下至下顺序iptables -R INPUT 3 -j ACCEPT

规则永久生效:包括重启

service iptables save #保存service iptables restart #重启iptables防火墙

备份与还原

#保存配置iptables-save > /etc/iptables #(注意:后边这个文件路径可以自选)#还原配置iptables-restore < /etc/iptables #(注意:后边这个文件路径可以自选,要是前边备份文件的位置)

使用iptables命令操作的规则仅对当前会话有效,规则存在于内存中,如果重启就会丢失规则,上边提到永久生效的方法,经测试debian下没有成功,所以这里额外记述一些解决方案

本方法的原理是使用重启后系统会扫描并执行指定文件夹下的脚本,在脚本内执行还原之前保存的规则文件

step1

#保存规则iptables-save > /etc/iptables/iptables-script

step2

#在/etc/network/if-pre-up.d目录下创建脚本vim /etc/network/if-pre-up.d/auto_restore_iptables

step3

#添加如下内容,其中后边的路径为保存的规则文件路径#!/bin/sh/sbin/iptables-restore < /etc/iptables/iptables-script#保存退出

step4

#为脚本添加可执行权限sudo chmod +x /etc/network/if-pre-up.d/auto_restore_iptables

至此,已经完成开机自动还原规则的操作了


那么增、删、改等操作就简单了

#1.使用命令修改规则#2.保存规则iptables-save > /etc/iptables/iptables-script

 

--End--

本文内容来自网络,如有雷同,不胜荣幸

转载地址:http://abjxi.baihongyu.com/

你可能感兴趣的文章
JavaScript substring() 方法
查看>>
HTML 5 新的表单元素 datalist keygen output
查看>>
(转载)正确理解cookie和session机制原理
查看>>
jQuery ajax - ajax() 方法
查看>>
将有序数组转换为平衡二叉搜索树
查看>>
最长递增子序列
查看>>
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>
腾讯的一道面试题—不用除法求数字乘积
查看>>
素数算法
查看>>
java多线程环境单例模式实现详解
查看>>
将一个数插入到有序的数列中,插入后的数列仍然有序
查看>>
在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found
查看>>
阿里p8程序员四年提交6000次代码的确有功,但一次错误让人唏嘘!
查看>>
一道技术问题引起的遐想,最后得出结论技术的本质是多么的朴实!
查看>>
985硕士:非科班自学编程感觉还不如培训班出来的,硕士白读了?
查看>>
码农:和产品对一天需求,产品经理的需求是对完了,可我代码呢?
查看>>
第六章 背包问题——01背包
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>