•  
 
 
iptables详解   

Iptables原理
现在防火墙主要分以下三种类型:包过滤、应用代理、状态检测
包过滤防火墙:现在静态包过滤防火墙市面上已经看不到了,取而代之的是动态包过滤技术的防火墙哈~
代理防火墙:因一些特殊的报文攻击可以轻松突破包过滤防火墙的保护,比如大家知道的SYN攻击、ICMP洪水攻击,所以以代理服务器作为专门为用户保密或者突破访问限制的数据转发通道的应用代理防火墙出现了哈~其使用了一种应用协议分析的新技术。
状态检测防火墙:其基于动态包过滤技术发展而来,加入了一种状态检测的模块,进一点发展了会话过滤功能,会话状态的保留是有时间限制的,此防火墙还可以对包的内容进行分析,从而避免开放过多的端口。
netfilter/iptables IP数据包过滤系统实际上由netfilter和iptables两个组件构成。netfilter是集成在内核中的一部分,其作用是定义、保存相应的规则,而iptables是一种工具,用来修改信息的过滤规则及其他配置,我们可以通过iptables来设置一些适合我们企业需求环境的规则哈~,而这些规则会保存在内核空间之中。
netfilter是Linux核心中的一个通用架构,其提供了一系列的表(tables),每个表由若干个链(chains)组成,而每条链可以由一条或若干条规则(rules)组成。实际上netfilter是表的容器,表是链的容器,而链又是规则的容器。
filter表
nat表
mangle表
iptables内置链
PREROUTING:路由表之前
INPUT:通过路由表后目的地为本机
FORWARDING:通过路由表后,目的地不为本机
OUTPUT:由本机产生,向外转发
POSTROUTIONG:路由之后
netfilter五条链相互关系,即iptables数据包转发流程图
 
Iptables工作流程图
iptables拥有三个表和五条链组成
 
Iptables基本语法
iptables [-t 表名] -命令 -匹配 -j 动作/目标
iptables内置了filter、nat和mangle三张表,我们可以使用-t参数来设置对哪张表生效哈~也可以省略-t参数,则默认对filter表进行操作。
具体命令参数可以通过man iptables查询哈~
 
配置SNAT命令基本语法
iptables -t nat -A POSTROUTING -o 网络接口 -j SNAT --to-source IP地址
配置DNAT命令基本语法
iptables -t nat -A PREROUTING -i 网络接口 -p 协议 --dport 端口 -j DNAT --to-destination IP地址
 
 
 
(1)删除策略
iptables -F:清空所选链中的规则,如果没有指定链则清空指定表中所有链的规则
iptables -X:清除预设表filter中使用者自定链中的规则
iptables -Z:清除预设表filter中使用者自定链中的规则
 
 
2、设置回环地址
有些服务的测试需要使用回环地址,为了保证各个服务的正常工作,需要允许回环地址的通信,如果不设置回环地址,有些服务不能启动哈~。
iptables -A INPUT -i lo -j ACCEPT
 
3、连接状态设置
为了简化防火墙的配置操作,并提高检查的效率,需要添加连接状态设置
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
连接跟踪存在四种数据包状态
NEW:想要新建连接的数据包
INVALID:无效的数据包,例如损坏或者不完整的数据包
ESTABLISHED:已经建立连接的数据包
RELATED:与已经发送的数据包有关的数据包
4、设置80端口转发
公司网站需要对外开放,所以我们需要开放80端口
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
5、DNS相关设置
为了客户端能够正常使用域名访问互联网,我们还需要允许内网计算机与外部DNS服务器的数据转发。
开启DNS使用UDP、TCP的53端口
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
 
6、允许访问服务器的SSH
管理员会通过外网进行远程管理,所以我们要开启SSH使用的TCP协议22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 
 
7、NAT端口映射设置
由于局域网的地址为私网地址,在公网上不合法哈~所以必须将私网地址转为服务器的外部地址进行地址映射哈~连接外网接口为ppp0
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
MASQUERADE和SNAT作用一样哈~相样是提供源地址转换的操作,但是MASQUERADE是针对外部接口为动态IP地址来设置滴,不需要使用--to-source指定转换的IP地址。如果网络采用的是拨号方式接入互联网,而没有对外的静态IP地址(主要用在动态获取IP地址的连接,比如ADSL拨号、DHCP连接等等),那么建议使用MASQUERADE哈~
注意:MASQUERADE是特殊的过滤规则,其只可以映射从一个接口到另一个接口的数据哈~
8、内网机器对外发布WEB网站
内网WEB服务器IP地址为192.168.0.3,我们需要进行如下配置哈~,当公网客户端访问服务器时,防火墙将请求映射到内网的192.168.0.3的80端口
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
9、保存与恢复iptables配置
保存:iptables-save
iptables-save [-c] [-t 表名]
-c:保存包和字节计数器的值。可以使在重启防火墙后不丢失对包和字节的统计
-t:用来保存哪张表的规则,如果不跟-t参数则保存所有的表
可以使用重定向命令来保存这些规则集
iptables-save > /etc/iptables-save
恢复:iptables-restore
iptables-restore [-c] [-n]
-c:如果加上-c参数则表示要求装入包和字节计数器
-n:表示不覆盖己有的表或表内的规则,默认情况下是清除所有己存在的规则
使用重定向来恢复由iptables-save保存的规则集
iptables-restore > /etc/iptables-save
如果要在服务或系统重启后依然生效
service iptables save
 
 
 
 

《iptables详解 》RHEL6的更多相关文章

  1. 《搭建更新DNS集群服务》RHEL6

    DNS服务器的更新: 一听就知道不止一台的DNS服务器,要是一台也用不着更新对吧?一般都是DNS集群. 一台DNS更新了,添加一条数据,下面的都要跟着它变. 主DNS服务器的配置 首先先配置DNS服务 ...

  2. 搭建redis cluster集群服务

    redis 5.0以下为ruby编写,运行命令时需要安装ruby,而5.0以上则为c编写,可直接安装后运行.因此本文使用redis5.0.5 1.编写配置文件 在 /home 下新建 redis-cl ...

  3. CentOs7.3 搭建 SolrCloud 集群服务

    一.概述 Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机Master-Slaver方式.C ...

  4. 使用Codis搭建redis集群服务

    转(http://www.jianshu.com/p/f8e968e57863) 一. 应用场景 redis 作为数据结构存储引擎,有着很多优点 高性能单机引擎可以达到5-10W qps 数据结构全面 ...

  5. LINUX中的DNS服务---DNS集群

    一.DNS集群的理解 在使用DNS的时候,为了缓解服务器的压力,会使用多个辅助DNS服务器来分担主DNS的工作.这些DNS就叫做DNS集群. 二.配置过程 1)在辅DNS中操作如下:(主机号为172. ...

  6. Windows10 搭建 ElasticSearch 集群服务

    一.前言 集群的搭建需要多台机器,之前我使用 ubuntu 16.04 搭建过 hadoop 的单机模式和分布式模式,这个今后会写,今天先写一篇使用 < Windows10 搭建 Elastic ...

  7. LVS负载均衡集群服务搭建详解(二)

    lvs-nat模型构建 1.lvs-nat模型示意图 本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7 VS内核都支持ipv ...

  8. LVS负载均衡集群服务搭建详解(一)

    LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...

  9. Linux Centos7 环境搭建Docker部署Zookeeper分布式集群服务实战

    Zookeeper完全分布式集群服务 准备好3台服务器: [x]A-> centos-helios:192.168.19.1 [x]B-> centos-hestia:192.168.19 ...

  10. 了解一下zookeeper,搭建单机版和集群版的环境玩玩,需要手稿的,留下邮箱

    第一章:Zookeeper介绍 Zookeeper,动物管理员,是用来管理hadoop(大象).Hive(蜜蜂).Pig(小猪)的管理员. Apache Hbase和Apache Solr的分布式集群 ...

随机推荐

  1. XMPP协议、IM、客户端互联详解

    导读 对于推送,IM服务器,目前可以使用一些厂家提供的SDK来实现,但是我们的老板又总是担心使用别人的SDK,假如别人的服务出现问题,或者别人偷看咱们的信息,那岂不是出现很大问题了 聊一聊xmpp的服 ...

  2. LeetCode38 Count and Say

    The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...

  3. Python-Day11 RabbitMQ/redis

    写在前面: 好久不写了,实在是不想写,坚持果然是一件不容易的事情. 我喜欢玩,我更爱学习,然而喜欢是放肆,爱是克制,哈哈.每天上班有些忙就不想动,只想在床上翻滚或者鏖战召唤师峡谷.上班闲着时想了想,一 ...

  4. AliasRegistry接口

    Spring - 4.2.3 // 将一个name注册为一个别名aliasvoid registerAlias(String name, String alias);// 移除一个别名aliasvoi ...

  5. ios -几种常见定时器

    转自cocoachina 网友分享: http://mp.weixin.qq.com/s?__biz=MjM5OTM0MzIwMQ==&mid=206637839&idx=7& ...

  6. iOS - UI - UIStepper

    7.UIStepper //计数器控件   固定宽高 UIStepper * stepper = [[UIStepper alloc] initWithFrame:CGRectMake(100, 10 ...

  7. html + js 右 点击 弹出 菜单

    页面 引用jar 包 <link rel="stylesheet" href="../../style/zui.min.css" type="t ...

  8. linux ----虚拟机无法与本地机通信

    1.以前能正常通信,电脑重启或休眠唤醒后, 虚拟机centos无法与本地主机通信,但能ping通同一局域网的其他主机,也能与外网通信 故障原因: 未找到 解决办法: 1.重启电脑 2.重启xshell ...

  9. 跨域 HTTP 请求

    如果你需要从不同的服务器(不同域名)上获取数据就需要使用跨域 HTTP 请求. 跨域请求在网页上非常常见.很多网页从不同服务器上载入 CSS, 图片,Js脚本等. 在现代浏览器中,为了数据的安全,所有 ...

  10. Unity3d之截图

    1.Application.CaptureScreenshot("Screenshot.png", 0); 2. exture2D CaptureScreenshot2(Rect  ...