iptables nat表含义_十(4)iptables语法、iptables filter表小案例、iptables nat表应用
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表应用相关推荐
- iptables小案例,nat表应用
2019独角兽企业重金招聘Python工程师标准>>> iptables小案例: 需求1: 只针对filter表,预设INPUT链DROP,其他两个链ACCEPT,然后针对192.1 ...
- mysql数据库as表恢复_【翻译】如何从ibdata和.frm文件恢复MySQL表数据
这个教材叫你如何在数据库全部或者部分数据丢失,或者数据库加载数据失败时,如何恢复数据. 发生这种情况的一个原因是表数据损坏. 在这种特定情况下,你连接到MySQL服务器,你看不到更多的表,因为它们缺失 ...
- mysql 两张大表关联_详解mysql生产环境如何快速有效的删除大表,附实验说明
概述 我们很多时候都会去drop一些大表,特别是生产环境做操作时,这里主要提一些注意事项,仅供参考. 01 相关语法 1.删表 DROP TABLE SyntaxDROP [TEMPORARY] TA ...
- 打印设置自定义表尾_教大家Excel2013表格中如何打印固定的表头和表尾
近日有关于Excel2013表格中如何打印固定的表头和表尾的问题受到了很多网友们的关注,大多数网友都想要知道Excel2013表格中如何打印固定的表头和表尾的具体情况,那么关于到Excel2013表格 ...
- python map lambda 分割字符串_[转] Python特殊语法:filter、map、reduce、lambda
Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力! filter(function, sequence):对sequence中的item依次执行function(ite ...
- 10.15 iptables filter表小案例10.16/10.17/10.18 iptables nat表应用
2019独角兽企业重金招聘Python工程师标准>>> 10.15 iptables filter表小案例 iptables 命令.语法总结 iptables-nvL //查看ipt ...
- iptables filter表案例/iptables nat表应用
iptables filter表案例 iptables filter 表案例 创建一个iptables.sh脚本 [root@Ask-02 ~]# vim /usr/local/sbin/iptabl ...
- mysql 表与表之间的条件比对_十六年老司机笔记:MySQL性能优化之必备技能
导读:MySQL 是目前广泛使用的数据库,但很多项目对 MySQL 的使用仍然存在欠优化的地方,本文根据作者长年的经验提出了 MySQL 数据库优化方法,这些方法是否适合你的项目?还有哪些优化方法值得 ...
- clickhouse集群表删除_携程用ClickHouse轻松玩转每天十亿级数据更新
作者介绍 蔡岳毅,携程酒店大数据高级研发经理,负责酒店数据智能平台研发,大数据技术创新工作.喜欢探索研究大数据的开源技术框架. 一.背景 携程酒店每天有上千表,累计十多亿数据更新,如何保证数据更新过程 ...
最新文章
- java restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用!
- windows添加删除静态路由
- htc desire 10 pro android 8.0,HTC发布新机Desire 10 旗舰级像素配置
- rabbitmq怎样确认是否已经消费了消息_阿里Java研发二面:了解RabbitMQ?说说RabbitMQ可靠性投递...
- 接口测试---mock变量自定义变量的使用
- 版本控制工具——subversion
- 基于python+django框架+Mysql数据库的新闻信息管理系统设计与实现
- nifi从入门到实战(保姆级教程)——环境篇
- 相关系数excel_怎样征服老板?教你用excel找到数据之间隐藏信息
- 一封谷歌账号辅助邮箱变更的广告邮件
- 使用微信小程序怎么用wx.storage来实现收藏功能?
- 前端图片加载闪烁问题
- 华为正鸿蒙发布会,星星之火 数码视讯支持华为鸿蒙发布会全球直播
- Java IO BIO NIO
- 《大型网站技术架构》——第一章 大型网站架构演化
- 客户开发篇 | 外贸业务员怎么打电话开发跟进客户呢?
- 射影几何 -- 平面射影几何 2
- 计算机网络05(DHCP服务)
- 【20保研】大连理工大学软件学院2019年优秀大学生学术夏令营通知
- 计算机心理活动,计算机科学系关于心理活动的总结
热门文章
- c java开发对比_编程语言:Java和C语言的比较,你更偏向于哪个?老程序员:选C...
- 数控机床需要c语言程序吗,数控机床编程与操作--详细介绍
- linux文件属性是什么意思,Linux文件属性
- MySQL 常用运算符
- php 删除整个目录,php 删除整个目录功能实例
- 机器学习入门(1)之基本概念简介
- jlabel字怎么变化_怎样才能把字写好?详解最科学的练字方法及步骤
- linux删除文件_Linux中删除特殊名称文件的多种方式
- linux cat cd,linux 文件系统命令 cat cd chmod
- java静态方法库api下载_Java——静态方法库和抽象数据类型