- 浏览: 589312 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (231)
- JAVA (64)
- Oracle (50)
- JAVA IDE (10)
- AJax (8)
- Spring (12)
- hibernate (10)
- Struts (9)
- Jquery (7)
- EXT js (9)
- Tomcat (2)
- MySql (13)
- SQLServer 2005 (3)
- java script (10)
- DB2 (6)
- Linux (15)
- solaris (3)
- 开发模式 (16)
- windows (15)
- 硬件 (2)
- PHP (3)
- 框架整合 (17)
- Weblogic (12)
- JBOSS (1)
- 协议 (7)
- 云计算 (6)
- JSF (1)
- richfaces (1)
- python (1)
最新评论
-
woshiicesky:
怎么使用的?
解决jdk1.7 不支持TLS1.2的问题 -
sunzbking:
哇!大佬谢谢分享解决问题啦
解决jdk1.7 不支持TLS1.2的问题 -
doren:
谢谢,很好解决我们的问题
解决jdk1.7 不支持TLS1.2的问题 -
贝塔ZQ:
PageOffice插件,挺好使得,可以试试
POI解析Excel 文件读取,修改,另存等功能 -
程俊2009:
需要用哪些jar,可以说下吗
jdom读写XMl文件
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拥有三个表和五条链组成
NAT工作原理
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 SNAT --to-destination IP地址
[size=+0]企业环境及需求
1、企业环境
230台客户机,IP地址范围为192.168.0.1~192.168.0.254,子网掩码为255.255.255.0
Mail服务器:IP地址为192.168.0.1 子网掩码为255.255.255.0
FTP服务器:IP地址为192.168.0.2 子网掩码为255.255.255.0
WEB服务器:IP地址为192.168.0.3 子网掩码为255.255.255.0
公司网络拓扑图如下:
2、配置默认策略
所有内网计算机需要经常访问互联网,并且员工会使用即时通信工具与客户进行沟通,企业网络DMZ隔离区搭建有Mail、FTP和Web服务器,其中Mail和FTP服务器对内部员工开放,仅需要对外发布Web站点,并且管理员会通过外网进行远程管理,为了保证整个网络的安全性,需要添加iptables防火墙并配置相应的策略
需求分析
企业的内部网络为了保证安全性,需要首先删除所有规则设置,并将默认规则设置为DROP,然后开启防火墙对于客户端的访问限制,打开WEB、MSN、QQ及MAIL的相应端口,并允许外部客户端登录WEB服务器的80、22端口。
解决方案
1、配置默认策略
默认iptables已经被安装好了
(1)删除策略
iptables -F:清空所选链中的规则,如果没有指定链则清空指定表中所有链的规则
iptables -X:清除预设表filter中使用者自定链中的规则
iptables -Z:清除预设表filter中使用者自定链中的规则
(2)设置默认策略
设置默认策略为关闭filter表的INPPUT及FORWARD链开启OUTPUT链,nat表的三个链PREROUTING、OUTPUT、POSTROUTING全部开启哈~默认全部链都是开启的,所以有些命令可以不操作,另外mangle表本文没用到,所以不做处理,mangle主要用在数据包的特殊变更处理上,比如修改TOS等特性。
2、设置回环地址
有些服务的测试需要使用回环地址,为了保证各个服务的正常工作,需要允许回环地址的通信,RHCE课程-RH253Linux服务器架设笔记二-NFS服务器配置己有涉及,如果不设置回环地址,有些服务不能启动哈~。
iptables -A INPUT -i lo -j ACCEPT
3、连接状态设置
为了简化防火墙的配置操作,并提高检查的效率,需要添加连接状态设置
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
4、设置80端口转发
公司网站需要对外开放,所以我们需要开放80端口
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
5、DNS相关设置
为了客户端能够正常使用域名访问互联网,我们还需要允许内网计算机与外部DNS服务器的数据转发。
开启DNS使用UDP、TCP的53端口
6、允许访问服务器的SSH
管理员会通过外网进行远程管理,所以我们要开启SSH使用的TCP协议22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
7、允许内网主机登录MSN和QQ相关设置
QQ能够使用TCP80、8000、443及UDP8000、4000登录,而MSN通过TCP1863、443验证。因此只需要允许这些端口的FORWARD转发即可以正常登录。
注意:当然,如果公司要限制这样即时通信工具的使用,只要禁止这些端口的转发就可以了哈~特别注意,马化腾这家伙忒坏~嘿嘿~,端口不固定,QQVIP会员专用通道什么的,代理登录等等哈~,所以我们如果需要封杀就要收集全登录端口及QQ服务器地址,根据本人总结,最好在企业实际配置中技术与行政管理相结合,这样达到的效果最好~0(^_^)0
8、允许内网主机收发邮件
客户端发送邮件时访问邮件服务器的TCP25端口。接收邮件时访问,可能使用的端口则较多,UDP协议以及TCP协议的端口:110、143、993及995
smtp:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
pop3:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 110 -j ACCEPT
imap:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 143 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 143 -j ACCEPT
imaps:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 993 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 993 -j ACCEPT
pop3s:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 995 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 995 -j ACCEPT
9、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是特殊的过滤规则,其只可以映射从一个接口到另一个接口的数据哈~
10、内网机器对外发布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
11、最终iptables配置如下
注意:
[root@rhel5 ~]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:msnp
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:irdmi
ACCEPT udp -- anywhere anywhere udp dpt:irdmi
ACCEPT udp -- anywhere anywhere udp dpt:terabase
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3
ACCEPT udp -- anywhere anywhere udp dpt:pop3
ACCEPT tcp -- anywhere anywhere tcp dpt:imap
ACCEPT udp -- anywhere anywhere udp dpt:imap
ACCEPT tcp -- anywhere anywhere tcp dpt:imaps
ACCEPT udp -- anywhere anywhere udp dpt:imaps
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3s
ACCEPT udp -- anywhere anywhere udp dpt:pop3s
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@rhel5 ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:http to:192.168.0.3:80
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.0.0/24 anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@rhel5 ~]#
SNAT将源网络地址进行转换,只能用在nat表的POSTROUTING链中,只要连接的第一个符合条件的包被SNAT了哈~,那么这个连接的其他所有的数据包都会自动地被SNAT。与SNAT对应,DNAT将目的地址进行转换,只能用在nat表的PREROUTIONG和OUTPUT链中,或者是被这两条链调用的链里面。包含DNAT的链不能被除此之外的其他链调用,比如POSTROUTING链。
发表评论
-
解决jdk1.7不支持TSL1.2的问题(续)
2017-02-16 16:16 3943解决jdk1.7 不支持TLS1.2的问题 续 ... -
解决jdk1.7 不支持TLS1.2的问题
2017-02-09 17:24 35477场景 java程序使用https方式调用nessus ... -
hosts的作用是什么?
2016-11-08 09:07 736很多用户都知道在Window系统中有个Hosts文件(没有 ... -
Java性能调优工具
2016-02-23 15:39 7421、JDK命令行工具 1.1、jps命令 jps用于列出 ... -
自动挂载远程目录解决方案
2015-05-29 11:12 7341.修改fstab文件,添加 ... -
linux 挂载硬盘
2014-10-16 14:42 9531. 添加磁盘,查看磁盘状况 [root@db1 /]# ... -
linux mount 远程服务器共享目录
2014-08-04 10:18 22569NFS是文件系统。在网络存储方面我们应该有所了解。那么针对 ... -
linux 设置tomcat 自启动
2014-06-11 19:21 930想tomcat开机自启动必须还得设置/etc/rc.d/rc ... -
Redhat Enterprise Linux 6.4 安装Oracle JDK替换OpenJDK
2014-06-11 11:13 1495缺省java版本为OpenJDK 1.7: # ja ... -
Ubuntu下MySQL的安装及远程连接配置等配置
2012-08-17 10:39 2364一、ubuntu下MySQL的安装 ... -
linux指令大全
2011-02-14 09:01 1103档案目录管理 cat ... -
linux中如何配置jdk 环境变量
2011-02-11 16:36 13351. 先从网上下载jdk(jdk-1_5_0_02-li ... -
Linux查看系统信息大全[备忘]
2011-02-11 16:02 993系统 # uname -a ... -
linux系统下使用free命令查看内存使用情况
2011-02-11 15:57 2027Linux这款操作系统的 ...
相关推荐
教程名称:Linux下IPtables的配置全攻略课程目录:【】Iptables学习笔记【】Iptables服务全攻略之实战配置【】Iptables配置指南【】iptables配置案例【】Linux Iptables配置文件【】LINUX下IPtables的详细配置【】...
本知识点详细介绍了iptables中的SNAT(源地址转换)和DNAT(目的地址转换)的高级应用,以及通过实战案例的形式展示它们的配置和应用。 首先,SNAT源地址转换的主要原理是在数据包通过路由器的POSTROUTING链时,将...
linux服务器配置之iptables.exe
《Linux 防火墙 IPtables 全攻略》.pdf
linux iptables 防火墙配置文件
### 服务器配置全攻略 #### 一、概述 在当今高度数字化的世界中,服务器作为互联网基础设施的核心组成部分,其配置的好坏直接影响着业务的稳定性和效率。本文将从多个角度出发,深入探讨服务器配置的关键知识点,...
iptables端口开放-配置实战[归类].pdf
Kylin_Iptables防火墙配置方法
通过理论讲解与实战练习的组合形式帮助用户全面了解iptables。 适合人群:适用于具有一定网络安全管理技能的IT管理员以及有兴趣于深入了解Linux系统的网络防护机制的技术人员。 使用场景及目标:针对不同的网络威胁...
iptables配置
Linux iptables防火墙深度理解与实战应用
附件为Debian的iptables服务脚本,脚本有详细描述脚本的用法,主要作用时讲iptables像CentOS一样,注册成Linux服务,方便iptables管理
Iptables 实例配置
Iptables服务器配置与管理
详细描述了Linux下iptables的配置
最基础的iptables配置脚本,一键加固Linux防火墙
阿里云CentOS配置iptables防火墙是一项重要的安全措施,尽管阿里云提供了云盾服务,但额外的防火墙层能提供额外的安全保障。以下是配置iptables防火墙的详细步骤: 1. **检查iptables服务状态**: 首先,通过运行`...