iptables系列五

iptables系列之layer7

一块网卡多个IP,这张网卡上连接一个交换机,交换机上连接了多个不同网段的主机,如果设置网关,以及转发功能。不同网段主机可以通信。
地址是属于主机的,不属于网卡的。

内网:只是向公网请求,且是拒绝公网上任何主机的请求。利用网关防火墙就行源地址转换。
服务器:接受公网的请求,利用网关防火墙进行目的地址转换。 
注意:由于服务器是接受公网上任何主机进行响应的,故安全性低,所以就会有利用服务器当做跳板,进而去控制内网主机,已达到窃取数据的目的。

可以在网关防火墙上设置三张网卡,使内网主机和服务器隔离开来,即时服务器被攻陷,内网主机也不受影响。
DMZ:非军事化区
三宿主的主机 
           
内网客户端<------------>网卡1 
                         | ---|网卡3<------>  
服务器<---------------->网卡2
       DMZ          网关防火墙 
  内网                                           外网 

背靠背的模式:
 
    内网客户端<----->网卡2:内部防火墙:网卡1<-----------交换机--------->网卡2:外部防火墙:网卡1<————————>公网
                                                          |
                                                         \|/
                                                         服务器 
般通过ISA Server所设置的防火墙架构分为Edge Firewall(边缘防火墙)、3-Leg Perimeter Firewall(3向外围防火墙)、Back-to-Back Perimeter Firewall(背对背外围防火墙)与单一网络适配器(网卡)四种等。

DNS view 


内核编译:
2.6---->3.0 

单内核:模块化(文件系统,驱动,安全)
微内核:

编译内核:
 
 配置  .config (/proc/cpuinfo,lsusb,lspci,hal-device)
    make  menuconfig 
    make gconfig 
    make kconfig 
    make config
    make oldconfig  
    
    
 编译
     make 
      只编译部分源码 
     make SUBDIR=arch/
     make drivers/net/pcnet32.ko 
     make dir
     转存编译结果
      make o=/path/to/somdir     
 安装内核模块
    make modules_install 
 安装内核   
    make install 
    
    
make 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 layer7 --l7proto xunlei -j DROP

1、给内核打补丁,并重新编译内核
2、给iptables源码打补丁,并重新编译iptables
3、安装l7proto

kernel, patch

iptables, patch
Kernel Patch
# tar zxvf  linux-2.6.28.10.tar.gz  -C  /usr/src
# tar zxvf  netfilter-layer7-v2.22.tar.gz  -C  /usr/src
# cd /usr/src
# ln –s  linux-2.6.28.10  linux
# cd /usr/src/linux/
# patch -p1  <  ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch 

# cp /boot/config-2.6.18-164.el5  /usr/src/linux/.config
# make  menuconfig


Networking support → Networking Options →Network packet filtering framework →Core Netfilter Configuration
<M>  Netfilter connection tracking support 
<M>  “layer7” match support
<M>  “string” match support
<M>  “time”  match support
<M>  “iprange”  match support
<M>  “connlimit”  match support
<M>  “state”  match support
<M>  “conntrack”  connection  match support
<M>  “mac”  address  match support
<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>     NETMAP target support                                                                               
    <M>     REDIRECT target support 


# make 
# make modules_install
# make install


Compiles iptables :

# cp /etc/init.d/iptables ~/iptables
# cp /etc/sysconfig/iptables-config ~/
# rpm  -e  iptables-ipv6  iptables  iptstate  --nodeps
# tar jxvf iptables-1.4.6.tar.bz2 –C  /usr/src
# cd /usr/src/iptables-1.4.6
# cp ../netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*   ./extensions/


# ./configure  --prefix=/usr  --with-ksource=/usr/src/linux
# make
# make install
# tar zxvf l7-protocols-2009-05-28.tar.gz
# cd l7-protocols-2009-05-28
# make install

# mv ~/iptables  /etc/rc.d/init.d/

# 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 
iptables-1.4.6.tar.bz2 
l7-protocols-2009-05-28.tar.gz 
netfilter-layer7-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 linux-2.6.28.10 linux 
cd linux 
patch -p1 < ../netfilter-layer7-v2.22 /kernel-2.6.25-2.6.28-layer7-2.22.patch 

cp /boot/config-2.6.18-308.el5  .config 
yum grouplist 

make menuconfig 

Networking support → Networking Options →Network packet filtering framework →Core Netfilter Configuration

make 
make install_modules
make install 

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 iptables stop 
 chkconfig iptables off 
 rpm -e iptables-ipv6 iptables iptables  --nedeps 
 
 cd /usr/src 
 tar xvf iptables-1.4.6.tar.gz
cd iptables 
ls 
cp ../netfilter-layer7-v2/iptables-1.1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.* ./extensions/

./configure --prefix=/usr --with-ksource=/usr/src/linux 
make 
mkae install 

which iptables 
cp ~
vim iptables 
 /usr/sbin/
 cp iptables /etc/init.d/
 chkconfig --add  iptables 
 chkconfig iptables on 
chkconfig --list iptables 
cp iptables-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 I7-protocols-2009-05-28
make install 

service iptables restart

l7-filter使用语法:

iptables  [specify tables & chain] -m layer7 --l7proto [protocol name] -j [action]

ls /etc/I7-protocols/protocols/


172.16.100.7
192.168.10.6 
iptables -t nat  -A POSTRUTING -s 192.168.10.0/24 -j SNAT --to-source 172.16.100.7 

iptables -t filter -A FORWARD -s 192.168.10.0/24 -m layer7 --l7proto qq -j DROP 

qq:udp 


iptables  
   -m time 
      --datestart   --datestop 
      --timestart    --timestop 

iptables -A FORWARD -s 192.168.10.0/24 -m tme --timestart 08:10:00 --timestop 12:00:00 -j DROP 
iptables -A FORWARD -s 192.168.10.0/24 -m time --tmiestart 14:30:00 --timestop 18:20:00 -j DROP 

service iptables save 

iptables-save >/etc/sysconfig/iptables.tus
iptables-restore < /etc/sysconfig/iptables.tus

iptables脚本:

#!/bin/bash 
#
ipt=/usr/sbin/iptables
einterface=eth1 
iinterface=eth0 

eip=172.16.100.7 
iip=192.168.10.6

$ipt -t nat -F 
$ipt -t filter -F 
$ipt -t mangle -F 

$ipt -N clean_up 
$ipt -A clean_up -d 255.255.255.255 -p icmp -j DROP 
$ipt -A claen_up -j REJECT 


pOST--->MBR(bootloader)--->Kernael(initrd)--->init(/etc/inittab)


1.设定默认级别
2.系统初始化脚本
3.运行指定级别      
IDS:
   nids:snort  + iptables =NIPS 
   hids:

xen,kum:iptables:虚拟 

IDS是英文“Intrusion Detection Systems”的缩写,中文意思是“入侵检测系统”。专业上讲就是依照一定的安全策略,通过软、硬件,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么IDS就是这幢大楼里的监视系统。一旦小偷爬窗进入大楼,或内部人员有越界行为,只有实时监视系统才能发现情况并发出警告。
按入侵检测的手段、IDS的入侵检测模型可分为基于网络和基于主机两种。

在1998年,Martin Roesch先生用C语言开发了开放源代码(Open Source)的入侵检测系统Snort.直至今天,Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS.Snort符合通用公共许可(GPL——GNU General Pubic License),在网上可以通过免费下载获得Snort,并且只需要几分钟就可以安装并开始使用它。snort基于libpcap。
Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort 通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic(由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。 
  Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件的功能就是在规则匹配误用检测之前运行,完成TIP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

负载恶意软件HawkEye的VB Inject样本分析

恶意软件HawkEye的利用大多都是通过钓鱼邮件分发,利用office直接启动HawkEye主体或者一些经过加密的程序,本文中的VB Inject属于后者,也把...

861
来自专栏琯琯博客

awesome-php-cn软件资源

PHP 资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库、配置工具、Web 工具、书籍、电子书、经典博文等。 依赖管理 依赖和包管理库 Com...

4535
来自专栏安恒网络空间安全讲武堂

2018全国大学生软件测试大赛-安恒杯Web测试大赛write up

这里的知识点是当代码中存在$_REQUEST['user_id']里面类似的参数的时候,使用" "、"["、"+"、"."这样的符号的时候回自动转化成"_"从而...

2771
来自专栏FreeBuf

解包分析攻击越南机场和其它组织机构的间谍程序

根据我们接触到了前期入侵越南组织机构的间谍程序捕获样本,入侵活动涉及7月底对越南两大机场的攻击事件,攻击中使用的恶意软件用于窃取越南航空公司40万会员信息。 这...

2368
来自专栏Android群英传

从 Linux 进程调度到 Android 线程管理

3212
来自专栏Sorrower的专栏

内核必须懂(一): 用系统调用打印Hello, world!

1745
来自专栏ChaMd5安全团队

redhat2017_Writeup

HBCTF第一场2个pwn题的简单分析 From ChaMd5安全团队核心成员 Lncken MISC签到 flag{BE78989E-1F00-8326-...

2936
来自专栏owent

libatbus的几个藏得很深的bug

在写这篇文章前,我突然想到以前流行了一段时间的服务器面试题:当一个BUG只有几百万分之一的概率会出现,怎么办?这个问题在这个BUG里只是毛毛雨而已,因为这次的B...

873
来自专栏后台全栈之路

DNS 报文结构和个人 DNS 解析代码实现——解决 getaddrinfo() 阻塞问题

实际应用中发现一个问题,在某些国家/ 地区的某些 ISP 提供的网络中,程序在请求 DNS 以连接一些服务器的时候,有时候会因为 ISP 的 DNS 递归查询太...

7256
来自专栏安恒网络空间安全讲武堂

护网杯easy laravel ——Web菜鸡的详细复盘学习

复现让我发现了很多读wp以为懂了动手做的时候却想不通的漏掉的知识点(还是太菜orz),也让我对这道题解题逻辑更加理解。所以不要怂,就是干23333!

2433

扫码关注云+社区

领取腾讯云代金券