iptables系列五

iptables系列之layer7

iptables系列五
一块网卡多个IP,这张网卡上连接一个交换机,交换机上连接了多个不同网段的主机,如果设置网关,以及转发功能。不同网段主机可以通信。
地址是属于主机的,P a d | M不属于网卡的。
内网:只0 , V W % o是向公j + S M网请求,且是拒绝公网上任何主机的请求。利: c X r ] t网关M x x火墙就行源地址转换。
服务器:接受公网的请求,利用网关防火; [ O p I墙进行目的地址转换。
注意:由于服务器是接受公网上任何主机进行响应的,故安全性低,所以就会有利用服务器当做跳板,进而去控制内网主机,已达到窃取数据的目的。
可以( T ? w w Q + 2在网关防火墙上设置三张网卡,使内w [ 3 T I [ Q U网主机和服务器隔离开O 3 - : y来,即时服务器被攻陷,内网主机也不受影响。
DMZ:非军事化区
三宿主y 5 f / n X的主机
内网客户端<------------>网卡1
| ---|网卡3<------>
服务器<---------------->网卡2
DMZ          网关防火墙
内网                                           外网
背靠背C * f P I c n 的模式:
内网客户端&P % D # - 4 h = wlt;--4 [ n u g / f P S--->网卡2:内部防火墙:网卡1<-----------交换机--------->网卡2:外部防火墙:网卡1<————————>公网
|
\|/
服务器
般通过ISA Server所设置的防火墙架构分为Edge Firewall(边缘防火墙)、3-Leg Perimeter Firewall(3向外围防火墙)、Back-to-Back Perimeter Firewall(背对背外围防火墙)与单一网络适配器(网卡)四种等。
DNS view
内核编译:
2.6---->3.0
单内核:模块化(文件系统,驱动,安全)
微内核:
编译内核:
配置  .cok L [nfig (/proc/cpuinfo,lsusb,lspci,hal-device)
make  menuconfig
make gconfig
make kconfig
make confj P ( gig
make oldconfig
编译
make
只编译部R x ) [分源码
maM S : p eke SUBDIR=arch) N j # T a/
make drivers/net/pcnet32.ko
make dir
转存编译结果
make o% A k  ; [ | A=/path/to/somdir
安装内核模块
makez V t * ? modules_install
安装内J R S p = | }核
make install
makeQ 3 ; ^ clean   清除以前的编译
make mrproper
/boot
busybox+kernel = linux
ulibc
iptables :二,三,四
string
过滤层次越高,消耗资源越多。
p2p,qq,msn
netfilter:(打上补丁后)http,smtp,
netfilter:框架,过滤是通过rules
/|\
iptables:语法正确。
注意:要对netfilter和iptables打补丁,进行匹配。
uname -r
layer7 -- l7
应用:xunlei, qq, netfilter<--patch
-m layer{ 9 6 D } 0 9 j Y7 --l7proto2  9 6 xunlei -j DROP
1、给内核打补丁,并重新编译内核
2~ t 6 T v @ Gn D u Z Z p R v [给iptables源码打补; a N P i Z 5丁,并重新编译4 A ~ = R V yiptables
3、安装l7proto
kernel, patch
ipta b 2bles, patch
Kernel Patch
# tar zxvf  linux-2.6.28.: q ] ; (10.tar.gz  -C  /usr/src
# tar zxvf  net2 q #filter-layer7-v2.22.tD 3 Iar.gz  -C  /usr/src
# cd /usr/src
# ln –s  linux-2.6.28.10  linux
# cd /usr/sri 0 @ @ y T C 0c/linuY _ g Y / = . px/
# patch -p1  <Y T } C V W  ../netfilter-l/ ! d ? f R x (ayer7-v2.22/kernel-2.6.25-2.6.| o W D o # o28-la2 G D O 3yer7-2.22.patch
# cp /boot/config-2.6.18-164.el5  /usr/src/linux/.config
# make  menucon= L k |fig
NetD Y uworkin{ = jg support → Networking Options →Network packet filtering framework →Core Netfilter Configuration
<M&g2 : ! Ct;  Netfilter connection tracking supportS M l a m ,
<M>  “layer7f W r i T” match support
<M>  “string” match sup^ 4 ! 6port
<M>  “time”  match support
<M>  “iprange”  mam n !tch support
& j ! } / | q -lt;M&g) / W _ B H nt;  “connlimit”  match support
<M>  “state”  match support
<M>  “conntrack”  connection  matchD / 8 1 [ support
<M>  “mac”  address  match suppor: ` | tt
<M>   "multiport" Multiple port match support
Networking support → Networking Options →Network packet filtering framework → IP: Netfilter Configuration
<M> IPv4 connection tracking support (required for NAT)
<M>   Full NAT
<M>     MASQUERADE target support
<M>     NET7 x 7 j (MAP taf a Y A $ mrget support
<M>     REDIRECT target support
# make
# make modules_install
# make install
Compiles iptables :
# cp /etc/init.d/iptables ~/iptables
# c- t G c u l ep /etc/sysconfig/ipl & 3tables-config ~/
# rpm  -e  iptables-ipv6  iptables  iptstate  --nodeps
# tar jxvf iptables-1.4.6.tar.bz2 –C  /usr/src
# cd /usr/src/iptaw q f g t ;bles-1.4.6
# cp ../nj f S e netfilter-layer7-o L / W + s sv2.22/iptables-1.4.3c X Aforward-for-kernel-2.6.20forward/libxt_layer7.*   ./extensio` 6 O D F D D ` ;ns/
# ./configure  --prefix=/usr  --with-ksource=/usr/src/linux
# make
# mak!  u 5e install
# tar zxvf l7-protocols-2009-05-28.tar.gz
# cd l7-C  D 5protocols-2009-05-28
# make install
# mv! E y i s ) ( ~/iptables  /etc/rc.d/init.& i $ h d _ qd/
# service iptables start
l7-filter uses the standard iptables extension syntax
# iptables [specify table & chain] -m layer7 --l7proto [protocol name] -j [action]
linux-2.6.18
iptablv : 1 D T J  @ Tes-1.4.6.tar.bz2
l7-protocols-2009-05-28.tar.gz
netfilter-layer7Y = 5 U P ` B-v2.22.tar.bz2
tar xvf linux-2.6.28.110.tzr.gz -C /usr/src
tar xvf netfilter-layer7-v2.22 -C /usr/src
cd /usr/src
ln linuxL I % 5 $ $ ~-2.6Z V p 6 5.28.10 linux
cd linux
patch -p1 < ../netfilter-layer7-v2.22 /kernel-2X S U.6.25-2.6.28-layer7-2.22.paQ g w d etch
cp /boot/confi, f Z k M ; Tg-2.6.18-308.el5  .config
yum grouplist
make menuconfig
Networking suppz I 7ort → Networking Options →Network packet filtering framework →Core Netfilter Configuration
make
make install_modules
make inst5 Z `all
vim /etc/grub.conf
default=0
reboot
uname -r
ipt---->xt_
编译iptables
cp /etc/init.d/iptbales   ~/
cp /etc/sysconfig/iptables-config ~/
cp /etc/sysconfig/iptables ~/iptables.rules
servcie^ ! X Q v . l iptables stop
chkconfig iptR 0 n U C V ! Kables off
rpm -e iptables-il & N M ; _ k vpv6 iptables iptables  --nedeps
cd /usr/src
tar xvf iptables-1.4.6.tar.gz
cd iptables
ls
cp ../netfilter-layer7-v2/iptaU ] X F able[ Y t x } 1 l = !s-1.1.4.3forward-for-Q ^ , x & ) Rkernel-2.6.20forward/libxt_layer7.* ./extensions/
./configure --prefix=/usr --with-ksource=/usj Q f T 8r/srs # U 0c/linux
make
mkae install
which iptables
cp ~B 8 [ ^ ` N
vim iptables
/usr/sbin/
cp iptables /etc/init.d/
chkconfig --add= | D  iptables
chkconfig iptables on
chkconfig --list iptables
cp iptaJ y b } p + m ~ {bles-config /etc/sysconfig/iptables
vim iptables.rules
cp iptables.rules /etc/sysconfig/iptables
service iptables start
lsmod
cd /usr/src
tar I7-protocols-2009-05-28.tar.gz
cd IY m y f ~ 4 W 7-protocols-2009-05-28
make install
service iptables restart

l7-filter使用语法:

ip3 i Ftables  [specify tables & chain] -m layer7 --l7proto [protocol nh & o U ?ame] -j [action]
ls /etc/I7-protocols V as/protocols/
172.16.100.7
192.168.10.6
iptables -t nat  -A POSTRUTING -s 192.168.10.$ 8 S 2 S0/24 -j SNATA , s C ? e --to-source 172.1l h 86.100.P W J j k Q Y7
iptables -t filter -A FORWARD -s 192.168.10.0/{ _ r D @ M G j )24 -m layer7 --l7proto qq -j0 x  y ! j E DROP
qq:udp
iptable+ g ^ b R | 0 L $s
-m time
--datestart   -b . A-datestop
--timestart    --timestop
iptables -A FORWARD -s 192.162 } / E /8.10.0/24; + F -m tme --timestart 08:10:00 --timestop 12:00:00 -j DROP
iptab] p A n H G ]le Y 3 1 Fes -A FORWARD -s 1p k n R F92.168.10.0/24 -m time --tmiestart 14:30:00 --timestop 18:20:00 -j DROP
service iptable| 5 ] 2 ` % q y Fs save
iptables-save >/etc/sysconfig/iptabO K ^ fles.tus
iptables-restore < /etc/sy| s ] U ? , msconfig/ipti 0 ? Cables.tus

iptables脚本:

#= ) 0 r [ S , _!/bin/bash
#
ipt=/0 r V J K usr/sbin/iptables
einterface=eth1
iinterface=eth0
eip=172.16.100.7
iip=192.168.1Y u ( 3 H | $0.6
$ipt -t nat -F
$ipt -t filter -F
$ipt -t m` h , ? Rangle -F
$ipt -N clean_up
$ipt -A clean_up -d # { $ * nd 255.255.255.255 -p icmp -j DROP
$ipt -A claen_up -j REJR ~ O ^ fECT
pOST--->MBR(bootload8 5 B Ver)--->Kernael(initrd)--->init(/etc/inittab)
1.设定默认级别
2.系统初始化脚本
3.运行指定级别
IDS:
nids:snort  + iptables =NIPS
hids:
xD 5 N R + Q P +en,kum:iptables:虚拟
IDS是英文“Intrus_ C M t _ion Detection Systems”的缩写,中文意思是“入侵检测系统”。专% . j业上讲就是依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行c Y /监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网 * _ z ? @ r络系统资源的机密性、完整性和可用性。做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么IDS就是这幢大楼里的监视系统v k L 5 Z % a J。一旦小偷爬窗进入大楼% [ / ~ G,或内部人员有越界行为,只有实时监视系统才能发现情况并发出警告。
按入侵检测的手段、IDS的入侵检测模型可分为基于网络和基于主机两种。
在1998年,Martin Roesch先生用C语言开发了开放n E { + E源代码(Open Source)的入侵检测系统Snort.直W  ] : d b C至今天,Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time~ H ( . 5 I W)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Preven/ 9 ~ g Z 8 + _tion System),即NIDS/NIPS.Snort符合通用公共许可(GP- } , ) ? zL——GNU General Pubic License),在网上可以通过免费下载获得SnoL ~ A B f : grt[ A q x x,并$ ( . d 3  }且只需要几分钟就可以安装并开始使用它。snort基于libpcap。
Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并4 = G s作为连续不断的流显示在终端上。数据包记录9 z | | @ * q 4器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
Snort能够对网络上的数据包进行抓包分析,{ 1 G j } , j U但区别于其它嗅探器的是,它能根据8 F $ n 2 Z R 3 s所定义的规则进行响应及处理。Snort 通过对获T G Q 1 c取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网1 m 7 W E F G络流量)五种响应的机制。
  ^ E q d c PSnort有数据包嗅探,数据包分析,数据包检测,# V I P 7 *响应处理等多种功能,每个模块实现不同的功能,各模块都F 2 L M是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件Q j & :的功能就是在规则匹配误用检测之前运行,完成TI6 j ( 4 g z D 4P碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,M ` o : .关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。
iptables系列五