_iptables系列之layer7

uname -r查看内核版本。

[[email protected] ~]# ls

anaconda-ks.cfg  install.log.syslog      l7-protocols-2009-05-28.tar.gz  netfilter-layer7-v2.22.tar.gz

install.log      iptables-1.4.6.tar.bz2  linux-2.6.28.10.tar.bz2

[[email protected] ~]# tar xf linux-2.6.28.10.tar.bz2   -C /usr/src

[[email protected] ~]# tar xf netfilter-layer7-v2.22.tar.gz  -C /usr/src

[[email protected] ~]# cd /usr/src/

[[email protected] src]# ls

debug  kernels  linux-2.6.28.10  netfilter-layer7-v2.22

[[email protected] src]#

[[email protected] src]# ln -sv linux-2.6.28.10 linux

`linux‘ -> `linux-2.6.28.10‘

[[email protected] src]# cd linux

打补丁

[[email protected] linux]# patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch

patching file net/netfilter/Kconfig

patching file net/netfilter/Makefile

patching file net/netfilter/xt_layer7.c

patching file net/netfilter/regexp/regexp.c

patching file net/netfilter/regexp/regexp.h

patching file net/netfilter/regexp/regmagic.h

patching file net/netfilter/regexp/regsub.c

patching file net/netfilter/nf_conntrack_core.c

patching file net/netfilter/nf_conntrack_standalone.c

patching file include/net/netfilter/nf_conntrack.h

patching file include/linux/netfilter/xt_layer7.h

[[email protected] linux]#

[[email protected] linux]# yum -y groupinstall "Development Tools"

[[email protected] linux]# cp /boot/config-2.6.32-431.el6.x86_64  .config

[[email protected] linux]#  yum install  ncurses ncurses-devel ncurses-libs

[[email protected] linux]# make menuconfig

添加 Local version -append to kernel release

-l7 让系统支持layer7

Processor type and features --->

Processor family (Generic-x86-64)  ---> 把处理器改为自己的处理器最接近的型号

-*- Networking support  --->

Networking options  --->

[*] Network packet filtering framework (Netfilter)  --->

Core Netfilter Configuration  --->

<M> Netfilter connection tracking support 启用

<M>   "layer7" match support 启用

<M>   "time" match support 启用

<M>   "iprange" address range match support 启用

<M>   FTP protocol support 启用

<M>   Connection tracking netlink interface 启用

IP: Netfilter Configuration  --->

<M> IPv4 connection tracking support (required for NAT)   启用

<M>   Full NAT  启用

[ ]   Wireless  ---> 去掉

< >   Bluetooth subsystem support  ---> 去掉

Device Drivers  --->

< > Sound card support  --->  声卡去掉

< > InfiniBand support  --->   去掉

[*] Network device support  --->

[ ]   Ethernet (1000 Mbit)  --->   1000M网卡去掉

[ ]   Ethernet (10000 Mbit)  --->   万M网卡去掉

[ ]   Token Ring driver support  ---> 令牌环网去掉

[ ]   PCMCIA network device support  --->  PCI的去掉

[ ]   Wan interfaces support  --->    去掉

[ ]   ATM drivers  --->去掉

[ ]   FDDI driver support 去掉

[ ] Virtualization  --->去掉

File systems  --->

< > GFS2 file system support去掉

DOS/FAT/NT Filesystems  --->

<M> NTFS file system support NTFS可以启用

保存退出

yum -y install screen

[[email protected] linux]# screen  为了保证编译时连接中断造成影响打开此工具

[[email protected] linux]# make

Ctrl+a d 拆掉

[[email protected] linux]# screen -ls 查看会话

[[email protected] linux]# screen -r 26296 重连会话

[[email protected] linux]# make modules_install

[[email protected] linux]# make install

[[email protected] ~]# vim /etc/grub.conf 安装成功以后会在此文件生成一条新的条目

default=0 修改默认启动哪个内核

重启主机选择使用新版本的内核

uname -r 可以查看一下当前 内核是否切换

编译新版的iptables

[[email protected] ~]# cp /etc/init.d/iptables  ~/ 先备份一下启动脚本

[[email protected] ~]# cp /etc/sysconfig/iptables-config  ~/

[[email protected] ~]# cp /etc/sysconfig/iptables  ~/iptables.bak 备份已有规则

[[email protected] ~]# service iptables stop 卸载前 先停止服务

[[email protected] ~]# chkconfig iptables off

[[email protected] ~]# rpm -e iptables-ipv6 iptables iptstate --nodeps

[[email protected] ~]# tar xf iptables-1.4.6.tar.bz2  -C /usr/src

[[email protected] src]# cd /usr/src/iptables-1.4.6/

[[email protected] iptables-1.4.6]# cp ../netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*  ./extensions/

[[email protected] iptables-1.4.6]# ./configure  --prefix=/usr --with-ksource=/usr/src/linux

make

make install

[[email protected] iptables-1.4.6]# which iptables

/usr/sbin/iptables

[[email protected] ~]# vim iptables

修改iptbales的路径为/usr/sbin

[[email protected] ~]# cp iptables /etc/init.d/iptables

[[email protected] ~]# cp iptables-config /etc/sysconfig/

[[email protected] ~]# cp iptables.bak  /etc/sysconfig/iptables

[[email protected] ~]# tar xf l7-protocols-2009-05-28 -C /usr/src协议特征码

[[email protected] ~]# cd /usr/src

[[email protected] src]# make install

lsmod查看当前系统所加载的模块

[[email protected] ~]# vim /etc/sysctl.conf 开启nat

[[email protected] ~]# sysctl -p

拒绝用户使用QQ

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source  172.16.10.6

iptables -A FORWARD -s 192.168.0.0/24 -m layer7 --l7proto qq -j DROP

iptables -L -n -t nat

-m time

--datestart --datestop

--timestart  --timestop

拒绝用户某个时间段上网

iptables -A FORWARD -s 192.168.0.0/24 -m time --timestart 08:00:00  --timestart 12:00:00 -j DROP

service iptables save

iptables-save >/etc/sysconfig/iptables.tus 保存规则

iptables-restore </etc/sysconfig/iptables.tus 重新载入

#!/bin/bash

#

ipt=/usr/sbin/iptables

einterface=eth0

iinterface=eth1

eip=10.10.10.2

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 clean_up -j RETURN

$iptables -A

.....

[[email protected] ~]# vim /etc/rc.d/rc3.d/S99local  可以把iptables规则写成脚本开机自动运行

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don‘t

# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

/tmp/iptables

系统启动过程

POST-->MBR(bootloader)-->Kernel(initrd)--init(/etc/inittab)

1.设定默认级别

2.系统初始化脚本

3.运行指定级别的服务

/etc/rc.d/rc 0

/etc/rc.d/rcN.d/

S*

K*

/etc/rc.d/rc.local

/etc/rc.local

/etc/rc.d/rc3.d/S99local

IDS: 入侵检测系统

nids:snort+iptables=NIPS 网络入侵防御系统

hids:

时间: 2024-10-12 14:55:36

_iptables系列之layer7的相关文章

29_1_iptables系列之layer7

1.有一种场景:   该公司只有一个互联网地址,想让内网客户端上网,又想让内网的服务器被外网客户端访问.   想让内网客户端主机上网,就使用SNAT:   想让内网的服务器被外网客户端访问,就使用DNAT:   内网主机是员工用来办公的,有很多的机密资料,是不能被外网访问到的,   但是内网的服务器主机又必须被外网访问,那怎么把它们分开处理呢?   方法1:如果有人攻破了内网的服务器主机,利用它做跳板,去窃取内网客户端的资料,这是非常危险的.   在有公网IP的主机上设置3块网卡,1个面对互联网

LinuxDevOps两个月学习路线安排

01_01_面授班开场.mp401_02_面授班开场.mp401_03_操作系统基础.mp401_04_Linux操作系统基础.mp402_01_Linux操作系统及常用命令.mp402_02_Linux操作系统及常用命令.mp402_03_Linux根文件系统详解.avi02_04_Linux文件管理命令详解.avi03_01_Linux文件管理类命令详解.avi03_02_bash特性详解.avi03_03_bash特性详解.avi03_04_Linux用户及权限详解.avi04_01_Li

马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)

马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文件系统管理详解之三10_05_脚本编程之八 脚本完成磁盘分区格式化20_01_DNS主从复制及区域传送04_04_grep及正则表达式01_03_操作系统基础08_02_bash脚本编程之七 case语句及脚本选项进阶14_03_bash脚本编程之十一(Linux启动流程之三) SysV服务脚本01

【Windows10&nbsp;IoT开发系列】配置篇

原文:[Windows10 IoT开发系列]配置篇 Windows10 For IoT是Windows 10家族的一个新星,其针对不同平台拥有不同的版本.而其最重要的一个版本是运行在Raspberry Pi.MinnowBoard和Galileo平台上的核心版.本文重点针对Raspberry Pi平台的Windwos10 IoT配置做介绍. Windows 10 IoT Editions ​一:设置你的电脑. 注:​开发Windows10 IoT的电脑需要Visual Studio 2015.

【Windows10&nbsp;IoT开发系列】PowerShell的相关配置

原文:[Windows10 IoT开发系列]PowerShell的相关配置 可使用 Windows PowerShell 远程配置和管理任何 Windows 10 IoT 核心版设备.PowerShell 是基于任务的命令行 Shell 和脚本语言,专为进行系统管理而设计. 1.​启动 PowerShell (PS) 会话 注:若要使用装有Windows10 IoT Core设备启动PS会话,首先需要在主机电脑与设备之间创建信任关系. ​启动 Windows IoT 核心版设备后,与该设备相连的

【Windows10&nbsp;IoT开发系列】API&nbsp;移植工具

原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 API? 此工具可以为你回答这些问题,并协助你将你的当前 Win32 应用程序和库迁移到 Windows IoT Core. Windows 10 IoT 核心版 API 移植工具可在 ms-iot/iot-utilities github 存储库中找到.下载存储库 zip 并将 IoTAPIPor

【Windows10&nbsp;IoT开发系列】“Hello,World!”指导

原文:[Windows10 IoT开发系列]"Hello,World!"指导 本文主要是介绍使用C#来开发一个可以运行在Raspberry Pi2上的一个基本项目. ​1.在启动Visual Studio 2015后,选择"文件"→"新建项目". ​在打开的"新建项目"对话框中,选择"通用". ​选择第一个项目"空白应用(通用Windows)" 新建项目 ​注:如果这是你创建的第一个项

【Windows10&nbsp;IoT开发系列】开发人员模式设置

原文:[Windows10 IoT开发系列]开发人员模式设置  声明:本文转自微软Windows 开发人员中心(https://msdn.microsoft.com/library/windows/apps/xaml/dn706236.aspx),在此基础上进行删减和修改. ​对于要用于开发.安装或测试应用的设备,不再需要开发人员许可证.你只需从设备的设置中为这些任务启用设备一次.(仅限于运行Windows 10系统的设备) 使用开发人员功能 ​使用 Microsoft Visual Stud

【Windows10&nbsp;IoT开发系列】Powershell命令行实用程序

原文:[Windows10 IoT开发系列]Powershell命令行实用程序 更新帐户密码: 强烈建议你更新默认的管理员帐户密码.若要更新帐户密码,你可以发出以下命令: net user Administrator [new password]​ (其中 [new password] 表示你选择的强密码). 创建本地用户帐户: 如果你想要授予其他人访问你的 Windows IoT Core 设备的权限,你可以通过在 net user [username] [password] /add​ 中键