我们定义了四张表:raw表、mangle表、nat表、filter表,不同的表有不同的功能

filter表用来过滤,允许哪些ip、端口访问,禁止哪些ip、端口访问,表中会有很多链

①禁止ip地址访问我们主机------>发往本机的经过PREROUTING,但是PREROUTING不在filter表中,因此PREROUTING没有过滤能力,只能定义在INPUT链

②转发到另一个地方 则需要在FORWARD链或者OUTPUT链中定义

 一、基本操作

1、查看
iptables -t表名 -nvL –line-number

iptables --line -t filter -nvxL INPUT

-t 加表名-L加链名

-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数 -L加上链名
-n 不对ip地址进行反查,直接显示ip地址,加上这个参数显示速度会快很多
-v 输出详细信息,verbose显示详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口
–line-number 显示规则的序列号,这个参数在删除或修改规则时会用到

-x精确计算

参数解释:

root@ROUTER:~# iptables --line -nvL INPUT
Chain INPUT (policy ACCEPT 6177 packets, 579K bytes)
num pkts bytes target prot opt in out source destination
1 14778 1394K wan_input_chain all -- * * 0.0.0.0/0 0.0.0.0/0
2 14778 1394K lan_input_chain all -- * * 0.0.0.0/0 0.0.0.0/0

policy 表示链的默认策略,默认是ACCEPT,该策略收到了6177个包,iptables -nvxL 可以将省略的k信息显示出来

2、添加
添加规则有两个参数:-A和-I。其中-A是添加到规则的末尾;-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部。

1  Append

在指定表的指定链的指定尾部添加一条规则,-A表示在对应链的末尾添加规则,省略-t选项,表示默认操作filter表

命令语法:iptables -t 表名 -A 链名 匹配条件 -j 动作
示例:iptables -t filter -A INPUT -s 192.168.1.146 -j DROP

2 Insert

在指定链的指定首部添加一条规则,-I默认是表示在对应链的开头添加规则,加上序号后则表示为在当前的序号位置添加一条规则,则底下的规则会往下移一位

命令语法:iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作
示例:iptables -t filter -I INPUT  -s 192.168.1.146 -j ACCEPT

示例操作:

步骤①加入append

iptables -A INPUT -s 192.168.23.242 -j DROP

步骤② 插入insert

 iptables -I INPUT 2 -s 192.168.23.242 -j ACCEPT  

3、删除

1 具体匹配规则删除

命令语法:iptables -t 表名 -D 链名 匹配条件 -j 动作
示例:iptables -t filter -D INPUT -s 192.168.1.146 -j DROP  

2 按--line按删除规则,-D表示删除对应链中的规则

命令语法:iptables -t 表名 -D 链名 规则序号
示例:iptables -t filter -D INPUT 3

  

3 清空指定表和链中的所有规则

命令语法:iptables -t 表名 -F 链名
示例:iptables -t filter -F INPUT  

4 清空表中的所有规则

命令语法:iptables -t 表名 -F
示例:iptables -t filter -F 或者
iptables –flush 

  

示例操作:  

步骤① 删除匹配条件的规则

iptables -D INPUT -s 192.168.23.242 -j ACCEPT  

步骤② 按照 --line 的行号去删除(省去写一大串规则的时间)

iptables -D INPUT 3

4、修改

1 修改指定表中指定链的指定规则,-R要指定对应的链和规则对应的序号和原本匹配的条件

命令语法:iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作
示例:iptables -t filter -R INPUT 3 -s 192.168.1.146 -j ACCEPT

注意:如果省略-s 等条件则当前的规则的源地址会变成0.0.0.0/0

也可先删掉当前规则,再在同样的位置再 添加同不一样的规则

2 修改指定表的指定链的默认策略(默认动作),并非修改规则

命令语法:iptables -t 表名 -P 链名 动作
示例:iptables -t filter -P FORWARD ACCEPT

  

示例操作  

步骤① 修改规则

 iptables -R INPUT 3 -j ACCEPT 

注意 如果要进行更改规则一定要指定-s 源地址 ,如果有多个匹配规则 则都需要指定

因为在前面的-R 没有指定对应的地址,所以当前的修改地址都变成0.0.0.0/0

DROP动作直接是卡住没有响应,然后REJECT则会给出Destination Port Unreachable的回应

②修改默认规则

每张表的每条链中都有自己的默认策略,当报文没有被链中任何规则匹配,或者链中没有任何规则,则当前按照默认动作处理报文

iptables -t filter -P FORWARD DROP  

-t 加表名 -P加链名

DROP(丢弃) 和 REJECT(拒绝) 有什么不同的呢?REJECT的时候会显示Destination Port Unreachable 但是DROP则会直接卡在那边不动

 5、保存规则-----永久生效
在默认的情况下我们对防火墙所做的修改都是临时的,当服务器重启或者iptables服务重启后,所有的规则操作都会消失。

① CentOS6, RedHat

# 保存iptables规则 
service iptables save

# 重启iptables服务
service iptables stop
service iptables start/restart

查看当前规则:

cat  /etc/sysconfig/iptables

② Centos7

不使用init风格的脚本启动服务,使用unit文件,yum源安装iptables和iptables-services

#配置好yum源以后安装iptables-service
# yum install -y iptables-services
#停止firewalld
# systemctl stop firewalld
#禁止firewalld自动启动
# systemctl disable firewalld
#启动iptables
# systemctl start iptables
#将iptables设置为开机自动启动,以后即可通过iptables-service控制iptables服务
# systemctl enable iptables

上述配置只需要一次,以后即可在centos7中愉快地使用service iptables save命令保存iptables规则

============通用方法=============

iptables-save 可以把之前修改的命令输出到屏幕但是并不能保存命令

所以要使用 iptables-save > /etc/sysconfig/iptables 将修改的规则重定向到这个文件中

最新文章

  1. lua c api
  2. FusionCharts饼图的图例属性
  3. SSH框架中spring的原理
  4. DevExpress 关于 GridView 表格编辑中 点击其他按钮里导致 值未取到处理
  5. LeetCode17 Letter Combinations of a Phone Number
  6. hdu 3535 AreYouBusy
  7. 用JS实现避免重复加载相同js文件
  8. SSM整合中遇到的不能扫描注解的bug
  9. sqlserver查询数据库中有多少个表
  10. 伸展树(Splay树)的简要操作
  11. Hadoop SSH+IP、SSH+别名 免密登录配置
  12. 双向链表设计与API实现
  13. java实习面试题(阿里一面)
  14. percona-toolkit 之 【pt-online-schema-change】说明【转】
  15. 通过TCPView工具查看foxmail用exchange方式连接exchange时用什么端口
  16. pygame-KidsCanCode系列jumpy-part1-如何组织复杂游戏的代码
  17. web 接口测试入门
  18. qrcode模块简单使用
  19. eQTL | Expression quantitative trait loci | 数量性状位点 | 表达数量性状基因座
  20. java 字符串截取的几种方式(转)

热门文章

  1. mysql数据库表的查询
  2. 洛谷 题解 UVA247 【电话圈 Calling Circles】
  3. phaser三个学生做题目
  4. MySQL索引工作原理
  5. 20191125:Python中的上下文管理机制with
  6. C++11 特性
  7. Ubuntu下apt-get命令详解(转)
  8. Centos7+puppet+foreman,模板介绍
  9. Java 之 递归
  10. oracle:sql添加合计语句(union)