iptables一些练习
iptables 一些小练习
可以参考之前的一起食用 https://www.cnblogs.com/lovesKey/p/10909633.html
允许来自192.168.0.0/16网段的地址来访问我的192.168.1.7的sshd服务(22端口).
定义进来的:
iptables -t filter -A INPUT -s 192.168.0.0/16 -d 192.168.1.7 -p tcp --dport 22 -j ACCEPT定义出去的:
iptables -t filter -A OUTPUT -s 192.168.1.7 -d 192.168.0.0/16 -p tcp --dport 22 -j ACCEPT将默认策略都改成
DROP:iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
状态检测
这是一种现实扩展(意味着我们要用-m 显示加载模块),用于检测回话之间的连接关系,我们可以实现会话功能的扩展
什么是状态检测?
对于tcp协议来说,它是一个有连接的协议,需要三次握手,第一次握手我们称之为
NEW连接,而从第二次握手之后,ack都为1,这是正常的数据传输,tcp第二次第三次握手称为 已建立的连接ESTABLISHED,如:SYN=1 ACK=1 RST=1 这种我们无法识别,称为 无法识别的INVALID在如比较特殊的,ftp协议 21是控制端口,20是数据端口.在主动模式下是这样的. 这样21和20端口就是有关系的,我们称为
RELATED这样我们就有了四种状态了.
NEW
ESTABLISHED
RELATED
INVALID
2.1 练习题
默认进来的拒绝,出去的允许,进来的只允许ESTABLISHED进来,出去只允许ESTABLISHED出去,默认规则都是用拒绝
查看之前的规则位于第几行.[这里是因为上一个练习的原因才使用替换的,请注意. 默认你可以增加或插入不用改写的]
iptables -L -n --line-number改写INPUT
iptables -R INPUT 2 -s 192.168.0.0/16 -d 192.168.1.7 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -R OUTPUT 1 -m state --state ESTABLISHED -j ACCEPT
允许自己ping别人,别人不能ping我们.
icmp 协议 进来的 request 8(ping),出去的 response 0(响应) . 我需要标记为8出去,标记为0进来. 其中 8 可以用 echo-request 0 可以用echo-reply
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPTiptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
小扩展:对于127.0.0.1比较特殊,我们需要明确定义它
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
SNAT 源地址转换
将所有192.168.0.0网段ip经过的时候全部转换成
223.223.223.223这个假设出来的外网ip:
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j SNAT --to-source 223.223.223.223- 如果外网地址不确定,如拨号连接的每次都会变动的ip可以使用
MASQUERADE(动态地址伪装)iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
- 如果外网地址不确定,如拨号连接的每次都会变动的ip可以使用
地址伪装并不适用于所有的地方。
DNAT 目标地址转换
- 数据流向是由外向内的,外面是客户端,里面是服务器端通过目标地址转换可以让外面的ip通过我们的外网ip来访问我们内部不同的服务器.
iptables -t nat -A PREROUTING -d 223.223.223.223 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.7
目标地址转换一定要在路由之前来进行转换,所以要在 PREROUTING
- 数据流向是由外向内的,外面是客户端,里面是服务器端通过目标地址转换可以让外面的ip通过我们的外网ip来访问我们内部不同的服务器.
iptables一些练习的更多相关文章
- iptables
一.在服务器上打开 22.80.9011端口: iptables -A INPUT -p tcp --dport 9011 -j ACCEPT iptables -A OUTPUT -p tcp -- ...
- 浅谈iptables 入站 出站以及NAT实例
--------------本文是自己工作上的笔记总结,适合的可以直接拿去用,不适合的,适当修改即可!--------------- iptbales默认ACCEPT策略,也称通策略,这种情况下可以做 ...
- Failed to stop iptables.service: Unit iptables.service not loaded.
redhat 7 [root@lk0 ~]# service iptables stop Redirecting to /bin/systemctl stop iptables.service Fai ...
- CentOS7安装iptables防火墙
CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables st ...
- linux iptables常用命令之配置生产环境iptables及优化
在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...
- CentOS系统配置 iptables防火墙
阿里云CentOS系统配置iptables防火墙 虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FO ...
- /etc/sysconfig/下找不到iptables文件解决方法
时间:2014-12-19 01:17来源:csdn 作者:大智 举报 点击:5639次 本想做些防火墙策略.防火墙策略都是写在/etc/sysconfig/iptables文件里面的.可我发现我也没 ...
- docker通过iptables修改或新增镜像映射端口
443 8088 22 端口是初始映射端口 [root@SERVER ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAM ...
- lnmp 预设iptables设置
「LNMP」iptables初始配置 首先使用命令iptables -P INPUT ACCEPT允许所有连接,否则容易把自己关在外边.然后使用iptables -F;iptables -X;ip ...
- 关闭SELinux和iptables防火墙
1.关闭SELinux: 编辑SELinux配置文件: [root@Redis selinux]# vim /etc/selinux/config 修改SELINUX配置项为disable SELIN ...
随机推荐
- Jira是什么
JIRA这个工具接触有好几年了,在多个海外项目上都用过这个工具.去年又在项目上深度使用后就有点爱不释手了,回国后也在找机会推荐给其它项目上用.最近正好有新项目需要用,借这个机会把JIRA的配置学习的过 ...
- 使用 react 的 hooks 进行全局的状态管理
使用 react 的 hooks 进行全局的状态管理 React 最新正式版已经支持了 Hooks API,先快速过一下新的 API 和大概的用法. // useState,简单粗暴,setState ...
- 解决阿里云OSS The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint的办法
以前有一个上海节点的存储包,一直使用正常.最近购买了一个全国的存储包,发现在上传文件的时候有这个问题. 尝试了很多办法,还提交了工单,都没有解决. 最后解决办法如下: 1.在阿里云OSS管理控制台下, ...
- sqlserver导入Excel数据 总是报错:错误 0xc020901c: 数据流任务 1: 输出“Excel 源输出”(55) 上的 输出列“T2”(64) 出错。返回的列状态是:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项
在网络上搜索解决办法,解决办法是把excel导入到access数据库中,再把access数据库导入到sqlsever中,公司机器上不让安装office工具,问了一个同事得到的回答是把数据中很长的那行数 ...
- win7用驱动精灵安装了bcm94352ac蓝牙驱动后还是不能用蓝牙的解决方法
驱动精灵安装了驱动后,设备管理器处显示Bluetooth USB,但是没法用蓝牙,找不到蓝牙图标,后来在华硕官方下载了win7的Broadcom 蓝牙驱动程序装上之后就好了
- 用Python爬取小说《一念永恒》
我们首先选定从笔趣看网站爬取这本小说. 然后开始分析网页构造,这些与以前的分析过程大同小异,就不再多叙述了,只需要找到几个关键的标签和user-agent基本上就可以了. 那么下面,我们直接来看代码. ...
- git一些简单运用
1.删除本地文件后,继续从远处仓库拉取回来,提示up-to-date,执行如下 git reset --hard origin/master 待补充
- vue的data里面的值是数组时,在更改其某一项的时候,怎么触发视图的重新渲染?
1. 设置对象或数组的值:Vue.set(target,key,value) :2.删除对象或数组中元素: Vue.delete ( target,key) ;3. 数组对象直接修改属性,可以触发视图 ...
- css 层叠 比较特殊性
css 层叠: 多个相同的css声明(属性),应用到同一个元素上.当一个标签声明冲突时,浏览器会自动出发层叠机制 1:比较优先级 2:比较特殊性 3:比较源次序 依次经过上面的1,2,3的比较后,最终 ...
- Ipython 和 python 的区别
IPython是一个python交互shell,它比默认的python shell更易于使用.它支持自动变量完成.自动缩进.bash shell命令,并且内置了许多有用的函数和函数. IPython是 ...