iptables语法

filter表:

INPUT链:作用于进入本机的包

OUTPUT链:作用于送出本机的包

FORWARD链:作用于和本机无关的包

nat表:

PREROUTING链:作用是包在刚刚到达防火墙时改变包的目标地址

OUTPUT链:改变本地产生的包的目标地址

POSTROUTING链:作用是在包将离开防火墙时改变包源地址

1.查看iptables规则

iptables -nvL  (此时默认查看filter表,加选项 -t 可以指定表 iptables -t nat -nvL)

(规则的保持路径: /etc/sysconfig/iptables

)

把所有规则清空 iptables -F:(/etc/sysconfig/iptables仍然是保存着的)

保存默认规则到配置文件(/etc/sysconfig/iptables)

重启一下服务:service iptables restart (因为刚刚删除了规则:iptables -F ,需要重启加载。否则无东西可保持!)

执行:service iptables save     保存

当我们添加规则的时,如果需要保存到配置文件需要保存操作(service iptables save),否则只是保持在当前的内存中。

2. iptables -Z  把计数器清零 (因为每时每刻都是在通信,数据清零一会又会有数据)

iptables -Z; iptables -nvL

3.增加/删除一条规则:

-A/-D  表示增加或删除一条规则

-I :     表示插入一条规则

-p   :  指定协议(tcp、udp、icmp)

--dport   和-p一起使用,指定目标端口  (使用dport必须使用-p指定协议)

--sport    和-p一起使用,指定源端口   (使用dport必须使用-p指定协议)

-s            表示指定源IP

-d           表示指定目标ip

-j     后面加动作: (1)ACCEPT  允许包  (2)DROP 丢掉包 (3)REJECT 拒绝包

-i   指定网卡

(DROP 丢掉包 和 REJECT 拒绝包 :效果一样,DROP 丢掉包,直接把包丢弃;REJECT 拒绝包 :分析过再拒绝)

(3.1)增加规则

如:

(操作默认表filter)

iptables -A INPUT -s 192.168.136.1 -p tcp --sport 1234 -d 192.168.136.123 --dport 80 -j DROP

iptables -I INPUT -p tcp --dport 80 -j DROP

(-I 和-A 的区别 ,-I把规则插入到最前面,-A把规则添加到最后,在过滤时,先执行最前面的)

(3.2)删除规则 -D

1.(记得规则前提下删除规则,直接把选项加-D)

iptables -D INPUT -s 192.168.136.1 -p tcp --sport 1234 -d 192.168.136.123 --dport 80 -j DROP

iptables -D INPUT -p tcp --dport 80 -j DROP

(2)不记得规则命令时删除规则方法:

a.把规则的序列号打印出来 iptables -nvL --line-number

b.针对规则编号进行删除

iptables -D INPUT 规则编号

iptables -D INPUT  1

iptables -nvL 可以看到链的默认策略

通过-P 可以改链的策略(千万不要执行)

iptables -P OUTPUT DROP

(如果执行了这个命令,则我们远程连接就会链接不上,因为我们的包不能正常的返回给我们)

iptables filter表小案例

需求:对filter表开放22端口、80端口、 21端口,INPUT链:DROP ,OUTPUT链和FORWARD链:ACCEPT,22端口只针对192.168.136.0/24开通,所有网段开发80端口、 21端口。

(这条规则必须要写,不然后面的80端口和21端口无法取得包)

看结果:

icmp示例

iptables -I INPUT -p icmp --icmp-type 8 -j DROP

执行命令后,只能ping通外网,别人不能ping通我们的本机(禁ping作用)

命令的 8 是指能在本机ping 同其他机器,而其他机器不能ping通本机。

ptables nat表应用

(一).首先准备两台机器(让A\B能相连)

先在两台机器都添加多一个网络适配器

步骤 :

第一台机器  编辑虚拟机设置 -->添加-->网络适配器-->选中右边LAN(图中操作)-->选中我们定义的LAN区段--->确认

(LAN相当于网卡选到一个内网交换机上,但此时我们的window机连不上这个交换机)

第二台机器:(也是添加一个网络适配器,因为原机器上已经配置了一个ip)

(首先把原来网络适配器设备状态 启动时连接 选项取消,(此时ip不存在,不能再远程连接)。再开始添加网络适配器)

启动两台机器

第一台机器:(查看一下ip,ifconfig)

1.  设置ip

方法一:(步骤和设置虚拟网卡一样)

(1)先复制一份配置文件 cp  /etc/sysconfig/network-scripts/ifcfg-ens33  /etc/sysconfig/network-scripts/ifcfg-ens37

(2) 修改配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens37

(3)保存退出

方法二:(临时生效)

命令:ifconfig ens37 192.168.100.1/24 (临时设置,重启消失)

第二台机器(B )

(我们在设置网络适配器时已经取消它开机启动,使用命令

ifdown ens33 是为更保险的down掉ens33网卡对实现的影响)

1.设置ip

方法如上第一台机器

设置ip为 ifconfig ens37 192.168.100.100/24

配置完了ip 测试两台机器相ping是否通:

A机器:

ping 192.168.100.100

查看配置的网卡是否有问题方法:

(1)ping 自己的ip

(2)mii-tool 网卡名(mii)

(以上准备工作已经实现A,B两台机器可以通信,能相互ping通)

(二)

1.A机器修改一下配置文件,开启内核转发

内核参数配置文件: /proc/sys/net/ipv4/ip_forward

默认内容为:“0” 表示没有开启内核转发

把配置文件中的"0"改为1 开启内核转发

echo "1" >/proc/sys/net/ipv4/ip_forward

2.A实现设置的网段能上网

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

3. B上设置网关为192.168.100.1

(数据包要想从B-->A ,必须设置一个网关)

查看网关命令: route -n

还没网关

设置网关:route add default gw 192.168.100.1 (A机器的网卡ens37的ip)

route add default gw 192.168.100.1

接着测试 是否能ping同A机器的ens33,同则证明能外网/公网通信

设置DNS 链接到网络上

vi /etc/resolv.conf

添加内容保存: nameserver 119.29.29.29

保存后测试是否能ping通外网:ping www.baidu.com

(实验不能ping通外网,可能是和我的网络环境(实验时我用的网络是手机热点),但是此时我能ping通A机器的ens33和ping通网关就行了)

应用需求二:

需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口

A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward

A上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22

A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.136.133

B上设置网关为192.168.100.1

(其实就是端口映射)

1.A上打开端口转发

echo "1">/ proc/sys/net/ipv4/ip_forward

2.删除需求一的nat表的设置,让它恢复为空:

执行命令:iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

(因之前操作过:iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE)

3.向nat表添加操作:

(3.1)A上执行

iptables -t nat -A PREROUTING -d 192.168.136.133 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22   (实现把进来的包通过端口映射转发到22端口)

(3.2)A上执行

iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.136.133 (返回的包,进行SNAT操作)

4.给B机器加上网关(必须要设置网关)

route add default gw 192.168.100.1

5.测试,使用192.168.136.133 /1234端口远程连接B机器

(实验不成功)

iptables规则备份和恢复

1. service iptables save //命令会把规则保存到 /etc/sysconfig/iptables

根据自己的需求把iptables规则保存到指定的文件中:

步骤:iptables-save > /自定义文件

iptables-save >/tmp/ipt.txt

恢复保存的规则:

iptables-restore < /保存的文件

iptables-restore

iptables nat表含义_十(4)iptables语法、iptables filter表小案例、iptables nat表应用相关推荐

  1. iptables小案例,nat表应用

    2019独角兽企业重金招聘Python工程师标准>>> iptables小案例: 需求1: 只针对filter表,预设INPUT链DROP,其他两个链ACCEPT,然后针对192.1 ...

  2. mysql数据库as表恢复_【翻译】如何从ibdata和.frm文件恢复MySQL表数据

    这个教材叫你如何在数据库全部或者部分数据丢失,或者数据库加载数据失败时,如何恢复数据. 发生这种情况的一个原因是表数据损坏. 在这种特定情况下,你连接到MySQL服务器,你看不到更多的表,因为它们缺失 ...

  3. mysql 两张大表关联_详解mysql生产环境如何快速有效的删除大表,附实验说明

    概述 我们很多时候都会去drop一些大表,特别是生产环境做操作时,这里主要提一些注意事项,仅供参考. 01 相关语法 1.删表 DROP TABLE SyntaxDROP [TEMPORARY] TA ...

  4. 打印设置自定义表尾_教大家Excel2013表格中如何打印固定的表头和表尾

    近日有关于Excel2013表格中如何打印固定的表头和表尾的问题受到了很多网友们的关注,大多数网友都想要知道Excel2013表格中如何打印固定的表头和表尾的具体情况,那么关于到Excel2013表格 ...

  5. python map lambda 分割字符串_[转] Python特殊语法:filter、map、reduce、lambda

    Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力! filter(function, sequence):对sequence中的item依次执行function(ite ...

  6. 10.15 iptables filter表小案例10.16/10.17/10.18 iptables nat表应用

    2019独角兽企业重金招聘Python工程师标准>>> 10.15 iptables filter表小案例 iptables 命令.语法总结 iptables-nvL //查看ipt ...

  7. iptables filter表案例/iptables nat表应用

    iptables filter表案例 iptables filter 表案例 创建一个iptables.sh脚本 [root@Ask-02 ~]# vim /usr/local/sbin/iptabl ...

  8. mysql 表与表之间的条件比对_十六年老司机笔记:MySQL性能优化之必备技能

    导读:MySQL 是目前广泛使用的数据库,但很多项目对 MySQL 的使用仍然存在欠优化的地方,本文根据作者长年的经验提出了 MySQL 数据库优化方法,这些方法是否适合你的项目?还有哪些优化方法值得 ...

  9. clickhouse集群表删除_携程用ClickHouse轻松玩转每天十亿级数据更新

    作者介绍 蔡岳毅,携程酒店大数据高级研发经理,负责酒店数据智能平台研发,大数据技术创新工作.喜欢探索研究大数据的开源技术框架. 一.背景 携程酒店每天有上千表,累计十多亿数据更新,如何保证数据更新过程 ...

最新文章

  1. java restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用!
  2. windows添加删除静态路由
  3. htc desire 10 pro android 8.0,HTC发布新机Desire 10 旗舰级像素配置
  4. rabbitmq怎样确认是否已经消费了消息_阿里Java研发二面:了解RabbitMQ?说说RabbitMQ可靠性投递...
  5. 接口测试---mock变量自定义变量的使用
  6. 版本控制工具——subversion
  7. 基于python+django框架+Mysql数据库的新闻信息管理系统设计与实现
  8. nifi从入门到实战(保姆级教程)——环境篇
  9. 相关系数excel_怎样征服老板?教你用excel找到数据之间隐藏信息
  10. 一封谷歌账号辅助邮箱变更的广告邮件
  11. 使用微信小程序怎么用wx.storage来实现收藏功能?
  12. 前端图片加载闪烁问题
  13. 华为正鸿蒙发布会,星星之火 数码视讯支持华为鸿蒙发布会全球直播
  14. Java IO BIO NIO
  15. 《大型网站技术架构》——第一章 大型网站架构演化
  16. 客户开发篇 | 外贸业务员怎么打电话开发跟进客户呢?
  17. 射影几何 -- 平面射影几何 2
  18. 计算机网络05(DHCP服务)
  19. 【20保研】大连理工大学软件学院2019年优秀大学生学术夏令营通知
  20. 计算机心理活动,计算机科学系关于心理活动的总结

热门文章

  1. c java开发对比_编程语言:Java和C语言的比较,你更偏向于哪个?老程序员:选C...
  2. 数控机床需要c语言程序吗,数控机床编程与操作--详细介绍
  3. linux文件属性是什么意思,Linux文件属性
  4. MySQL 常用运算符
  5. php 删除整个目录,php 删除整个目录功能实例
  6. 机器学习入门(1)之基本概念简介
  7. jlabel字怎么变化_怎样才能把字写好?详解最科学的练字方法及步骤
  8. linux删除文件_Linux中删除特殊名称文件的多种方式
  9. linux cat cd,linux 文件系统命令 cat cd chmod
  10. java静态方法库api下载_Java——静态方法库和抽象数据类型