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 ...
随机推荐
- jwt 无状态分布式授权
基于JWT(Json Web Token)的授权方式 JWT 是JSON风格轻量级的授权和身份认证规范,可实现无状态.分布式的Web应用授权: 从客户端请求服务器获取token, 用该token 去访 ...
- SpringCloud使用Consul作为分布式配置中心
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_36027670/article/de ...
- JAVA实现种子填充算法
种子填充算法原理在网上很多地方都能找到,这篇是继上篇扫描线算法后另一种填充算法,直接上实现代码啦0.0 我的实现只是实现了种子填充算法,但是运行效率不快,如果大佬有改进方法,欢迎和我交流,谢谢! 最后 ...
- python学习笔记(CMD运行文件并传入参数)
好久没更新博客了 最近换了份新工作 有时间来整理一篇 在命令行CMD中执行文件过程中如何传入并识别参数 # -*- coding: utf-8 -*- # CMD运行类 # 作者: # 时间: 201 ...
- VSCode-设置webstorm的主题和快捷键
前提:VScode很火啊,理由:轻量,免费,不用找各种破解qi.... 好吧那我也从webstorm转过来试试,但是webstorm已经用了4年多了,对于一个有洁癖的人,必须把VScode打扮的和we ...
- List<T> or IList<T>
If you are exposing your class through a library that others will use, you generally want to expos ...
- 后端参数校验器v1.0(调用一个方法校验所有参数并得到校验结果,且包括错误原因)
一:介绍 在写后端时,面对多个参数,比如手机号码.密码等我们常常需要写验证逻辑,当需要验证的参数较多的时候我们会需要写很多的判断语句,这就造成了大量的代码冗余.因此我开发了一套参数验证器,只需要调用参 ...
- 【转载】Asp.Net MVC网站提交富文本HTML标签内容抛出异常
今天开发一个ASP.NET MVC网站时,有个页面使用到了FCKEditor富文本编辑器,通过Post方式提交内容时候抛出异常,仔细分析后得出应该是服务器阻止了带有HTML标签内容的提交操作,ASP. ...
- Java 之 注解
一.注解介绍 注解概念:注解是说明程序的,给计算机看的. 注释概念:用文字描述程序的,给程序员看的. 注解定义:注解(Annotation),也叫元数据.一种代码级别的说明.它是 JDK1.5 及以后 ...
- sql server动态分页
USE RYPlatformManagerDB GO SET ANSI_NULLS, QUOTED_IDENTIFIER ON GO CREATE Proc [dbo].[WEB_PageView] ...