- 浏览: 412654 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
锦毛鼠:
嗯!不错哦,先支持一下!
MySQL-Front 5 注册码 -
bolan392:
我公司现在也想用这个工具,对于商业用户所使用的版本在国内该如何 ...
IP端口扫描工具(Tenable Nessus)的简介 -
exe:
如果目录结果不变,ant其实也不需要怎么修改,直接copy。
Maven 和 ANT 的区别 -
wx3957156:
wx3957156 写道灰常好!灰常好!
利用Java生成静态HMTL页面的方法收集 -
wx3957156:
灰常好!灰常好!
利用Java生成静态HMTL页面的方法收集
iptables使用实例
首先让我们看一下服务器/客户机的交互原理。服务器提供某特定功能的服务总是由特定的后台程序提供的。在TCP/IP网络中,常常把这个特定的服
务绑定到特定的TCP或UDP端口。之后,该后台程序就不断地监听(listen)该端口,一旦接收到符合条件的客户端请求,该服务进行TCP握手后就同
客户端建立一个连接,响应客户请求。与此同时,再产生一个该绑定的拷贝,继续监听客户端的请求。
举一个具体的例子:假设网络中有一台服务器A(IP地址为1.1.1.1)提供WWW服务,另有客户机B(2.2.2.2)、
C(3.3.3.3)。首先,服务器A运行提供WWW服务的后台程序(比如Apache)并且把该服务绑定到端口80,也就是说,在端口80进行监听。当
B发起一个连接请求时,B将打开一个大于1024的连接端口(1024内为已定义端口),假设为1037。A在接收到请求后,用80端口与B建立连接以响
应B的请求,同时产生一个80端口绑定的拷贝,继续监听客户端的请求。假如A又接收到C的连接请求(设连接请求端口为1071),则A在与C建立连接的同
时又产生一个80端口绑定的拷贝继续监听客户端的请求。如下所示,因为系统是以源地址、源端口、目的地址、目的端口来标识一个连接的,所以在这里每个连接
都是唯一的。
服务器 客户端
连接1:a.b.c.1:80 <=>; a.b.c.4:1037
连接2:a.b.c.1:80 <=>; a.b.c.7:1071
每一种特定的服务都有自己特定的端口,一般说来小于1024的端口多为保留端口,或者说是已定义端口,低端口分配给众所周知的服务(如WWW、
FTP等等),从512到1024的端口通常保留给特殊的UNIX TCP/IP应用程序,具体情况请参考/etc/services文件或
RFC1700。
假设网络环境如下:某一单位,租用DDN专线上网,网络拓扑如下:
+--------------+
| 内部网段 | eth1+--------+eth0 DDN
| +------------|firewall|<===============>;Internet
| 198.168.80.0 | +--------+
+--------------+
eth0: 198.199.37.254
eth1: 198.168.80.254
以上的IP地址都是Internet上真实的IP,故没有用到IP欺骗。并且,我们假设在内部网中存在以下服务器:
www服务器:www.yourdomain.com 198.168.80.11
ftp服务器:ftp.yourdomain.com 198.168.80.12
email服务器:mail.yourdomain.com 198.168.80.13
下面我们将用iptables一步一步地来建立我们的包过滤防火墙,需要说明的是,在这个例子中,我们主要是对内部的各种服务器提供保护。
1. 在/etc/rc.d/目录下用touch命令建立firewall文件,执行chmod u+x firewll以更改文件属性 ,编辑
/etc/rc.d/rc.local文件,在末尾加上 /etc/rc.d/firewall 以确保开机时能自动执行该脚本。
2. 刷新所有的链的规则
#!/bin/sh
echo "Starting iptables rules..."
#Refresh all chains
/sbin/iptables -F
3. 我们将首先禁止转发任何包,然后再一步步设置允许通过的包。
所以首先设置防火墙FORWARD链的策略为DROP:
/sbin/iptables -P FORWARD DROP
4.设置关于服务器的包过虑规则:
在这里需要注意的是,服务器/客户机交互是有来有往的,也就是说是双向的,所以我们不仅仅要设置数据包出去的规则,还要设置数据包返回的规则,我们先建立针对来自Internet数据包的过虑规则。
WWW服务:服务端口为80,采用tcp或udp协议。规则为:eth0=>;允许目的为内部网WWW服务器的包。
###########################Define HTTP packets####################################
#Allow www request packets from Internet clients to www servers
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.11 --dport www -i eth0 -j ACCEPT
FTP服务:FTP服务有点特别,因为需要两个端口,因为FTP有命令通道和数据通道。其中命令端口为21,数据端口为20,并且有主动和消极两
种服务模式,其消极模式连接过程为:FTP客户端首先向FTP服务器发起连接请求,三步握手后建立命令通道,然后由FTP服务器请求建立数据通道,成功后
开始传输数据,现在大多数FTP客户端均支持消极模式,因为这种模式可以提高安全性。FTP服务采用tcp协议。规则为:eth0=>;仅允许目的
为内部网ftp服务器的包。
############################Define FTP packets#####################################
#Allow ftp request packets from Internet clients to Intranet ftp server
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.12 --dport ftp -i eth0 -j ACCEPT
EMAIL服务:包含两个协议,一是smtp,一是pop3。出于安全性考虑,通常只提供对内的pop3服务,所以在这里我们只考虑针对smtp的安全性问题。smtp端口为21,采用tcp协议。eth0=>;仅允许目的为email服务器的smtp请求。
###########################Define smtp packets####################################
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.13 --dport smtp -i eth0 -j ACCEPT
5. 设置针对Intranet客户的过虑规则:
在本例中我们的防火墙位于网关的位置,所以我们主要是防止来自Internet的攻击,不能防止来自Intranet的攻击。假如我们的服务器都
是基于linux的,也可以在每一部服务器上设置相关的过虑规则来防止来自Intranet的攻击。对于Internet对Intranet客户的返回
包,我们定义如下规则。
#############Define packets from Internet server to Intranet#######################
/sbin/iptables -A FORWARD -p tcp -s 0/0 --sport ftp-data -d 198.168.80.0/24 -i eth0 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.0/24 ! -syn -i eth0 -j ACCEPT
/sbin/iptables -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT
说明:第一条允许Intranet客户采用消极模式访问Internet的FTP服务器;第二条接收来自Internet的非连接请求tcp包;最后一条接收所有udp包,主要是针对oicq等使用udp的服务。
6. 接受来自整个Intranet的数据包过虑,我们定义如下规则:
#############Define packets from Internet server to Intranet server###############
/sbin/iptables -A FORWARD -s 198.168.80.0/24 -i eth1 -j ACCEPT
7. 处理ip碎片
我们接受所有的ip碎片,但采用limit匹配扩展对其单位时间可以通过的ip碎片数量进行限制,以防止ip碎片攻击。
#################################Define fregment rule##################################
/sbin/iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
说明:对不管来自哪里的ip碎片都进行限制,允许每秒通过100个ip碎片,该限制触发的条件是100个ip碎片。
8. 设置icmp包过滤
icmp包通常用于网络测试等,故允许所有的icmp包通过。但是黑客常常采用icmp进行攻击,如ping of death等,所以我们采用limit匹配扩展加以限制:
#################################Define icmp rule##################################
/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
说明:对不管来自哪里的icmp包都进行限制,允许每秒通过一个包,该限制触发的条件是10个包。
通过以上个步骤,我们建立了一个相对完整的防火墙。只对外开放了有限的几个端口,同时提供了客户对Internet的无缝访问,并且对ip碎片攻
击和icmp的ping of death提供了有效的防护手段。以下是完整的脚本文件内容,希望通过这个实例能是对iptables的用法有所了解:
#!/bin/sh
echo "Starting iptables rules..."
#Refresh all chains
/sbin/iptables -F
###########################Define HTTP packets####################################
#Allow www request packets from Internet clients to www servers
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.11 --dport www -i eth0 -j ACCEPT
############################Define FTP packets#####################################
#Allow ftp request packets from Internet clients to Intranet ftp server
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.12 --dport ftp -i eth0 -j ACCEPT
###########################Define smtp packets####################################
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.13 --dport smtp -i eth0 -j ACCEPT
#############Define packets from Internet server to Intranet#######################
/sbin/iptables -A FORWARD -p tcp -s 0/0 --sport ftp-data -d 198.168.80.0/24 -i eth0 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -d 198.168.80.0/24 ! -syn -i eth0 -j ACCEPT
/sbin/iptables -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT
#############Define packets from Intranet to Internet###############
/sbin/iptables -A FORWARD -s 198.168.80.0/24 -i eth1 -j ACCEPT
#################################Define fregment rule##################################
/sbin/iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#################################Define icmp rule##################################
/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
发表评论
-
iptables封ip段
2011-09-28 21:01 1632linux下实用iptables封ip段的一些常见命令: ... -
linux gzip 命令详解
2010-06-29 09:08 1931linux gzip 命令详解 减少文件大小有两个明显的好 ... -
Nginx 介绍
2010-06-19 11:16 963一、介绍 Nginx是俄罗斯人编写的十分轻量级的HTTP服务 ... -
使用 xmllint + schema 校验 xml 文档
2010-01-23 18:31 3191使用 xmllint + schema 校验 xml 文档 ... -
Linux操作系统下Route命令详细使用说明
2010-01-18 16:00 1438Linux 操作系统下Route 命令详细 ... -
init6与reboot的区别
2010-01-13 21:08 1399init命令用于改变操作系统的运行级别。 Init 6是重新 ... -
lsof 命令详解
2010-01-08 17:18 1994lsof 命令详解 lsof全名list opened f ... -
linux id 命令详解
2010-01-07 15:52 5147linux id 命令详解 功能说明:显示用户的 ... -
xhost +
2010-01-07 15:42 1093xhost是用来控制X server访问权限的。 通常当你从 ... -
Shell 条件判断总结
2010-01-06 13:57 1005Shell 条件判断总结 UNIX ... -
查看硬盘信息的linux命令
2010-01-05 11:13 3373[root@localhost ~]# fdisk -l D ... -
Linux面试题
2009-12-18 13:37 1457Linux面试题 一.填空题 ... -
Linux一句话精彩问答
2009-12-04 21:35 23420001 修改主机名(陈绪) vi /etc/sy ... -
tar命令详解
2009-12-04 21:18 1360tar命令详解 ... -
linux gzip 命令详解
2009-12-04 21:11 1989linux gzip 命令详解 减 ... -
什么是xinetd?
2009-11-26 09:27 1539什么是xinetd? 大家 ... -
inetd Internet 超级服务器
2009-11-26 09:19 697inetd ... -
How to create user on linux
2009-11-24 09:17 980Create a user named nxuser. 1. ... -
Linux 指令篇:文件系统--sync
2009-11-23 15:19 835名称 : sync 使用权限 : 系统管理者 ... -
Linux/UNIX命令dd简介
2009-11-23 15:08 955dd 是 Linux/UNIX 下的一个非常有用的命令 ...
相关推荐
多个实用的linux iptable实例应用。让你快速掌握好linux iptable的部署使用。
1. 概述 2. 框架图 3. 语法 4. 实例分析 5. 网管策略 6. FAQ 7. 实战
当数据包进入或离开受保护的网络空间时,将根据防火墙规则测试数据包的内容(特别是有关其来源、目标和计划使用的协议的信息),以确定是否应该允许数据包通过。下面是一个简单的例子: 防火墙可以根据协议或基于目标...
Ubuntu中保存iptables防火墙规则的例子.docx
在这个`IPStorage`类中,我们创建了一个`Hashtable`实例`ipTable`,提供了`addIP`方法来添加IP并更新计数,以及`getIPCount`方法来获取IP的出现次数。这样的设计使得对大量IP数据的操作变得高效。 在压缩包文件`...
参考实例 还原iptables配置: [root@linuxcool ~]# iptables-restore < iptables.bak 指定在还原iptables表时候,还原当前的数据包计数器和字节计数器的值: [root@linuxcool ~]# iptables-restore -c < ip
第一次上传,发个iptables实例。内容很简单,希望对大家有所帮助;
在`GetTcode()`函数中,我们打开一个名为`text_en.txt`的文件,并使用`with`语句确保文件在使用后会被正确关闭。接着,我们遍历文件的每一行,忽略空行,将每行按照制表符分隔成多个元素。第一部分(转换为小写)...
linux下防火墙iptables 一、基本知识 二、iptable的安装与配置 禁止端口的实例 强制访问指定的站点 发布内部网络服务器 通过NAT上网 iptables实例
iptable详细配置 iptables官方网站:http://netfilter.org/ •数据包经过防火墙的路径 •禁止端口 •强制访问某站点 •发布内部网络服务器 •智能DNS •端口映射 •通过NAT上网 •IP规则的保存与恢复 •iptables...
iptable 配置实例: * iptables -L 列出 iptables 规则 * iptables -F 清除 iptables 内置规则 * iptables -X 清除 iptables 自定义规则 * 设定默认规则在 iptables 规则中没有匹配到规则则使用默认规则进行处理 * ...
源码中可能会有使用SqlConnection(针对SQL Server)、SQLiteConnection(针对SQLite)等类的实例化和关闭,以及SqlCommand对象来执行SQL命令。 在显示查询结果时,WinForm的DataGrid控件是常见的选择。源码会涉及...
主要内容包括:防火墙的基础知识,linux防火墙管理程序iptable,构建防火墙的方法,防火墙的优化,数据包的转发,网络监控和攻击检测,内核强化等。本书独立于linux某个发行版本,涉及常驻于linux内核的netfilter...
首先,设置好邮件配置,然后执行iptable命令和日志记录。这对于实时监控系统安全状况非常有用。 3. MySQL数据库备份: 这里有两个脚本,分别实现了单循环和多循环备份。单循环脚本备份所有数据库,而多循环脚本则...
以下是一个例子: ```python ipTable = ['158.59.194.213', '18.9.14.13', '58.59.14.21'] fileObject = open('sampleList.txt', 'w') for ip in ipTable: fileObject.write(ip) fileObject.write('\n') ...
在这个例子中,`IPTable`是假设的表名,`IPStart` 和 `IPEnd` 是IP地址段的起始和结束值,`Region` 和 `Operator` 分别代表地区和运营商字段。请注意,实际的表结构和字段可能根据数据库的具体设计有所不同。 为了...
iptable的核心在于其规则集,通过定义一系列规则来决定网络数据包的命运。 在iptables的框架图中,有五个基本的链:PREROUTING、INPUT、FORWARD、OUTPUT和POSTROUTING。这些链分别在数据包的不同阶段发挥作用: 1....
使用这个IP数据库时,你需要将.MDF文件附加到你的SQL Server实例上。这可以通过SQL Server Management Studio (SSMS) 完成,操作包括:打开SSMS,连接到服务器,右键点击"数据库",选择"附加",然后浏览并添加.MDF...
使用Cloudeploy可以快速创建主流云实例,安装等各种简化发布工作。 特性 支持多平台创建实例 阿里云 Ucloud 极简接口,仅有3个RESTful API 内嵌数据库 可配置化 小巧方便,仅8M大小的jar文件 安装 Oracle官方下载...