iptables详解--转
iptables -I INPUT ?-p tcp --dport 22 -m state --state NEW -m recent--set --name SSHiptables -I INPUT ?-p tcp --dport 22 -m state --state NEW -m recent--update --seconds 300 --hitcount 3 --name SSH -j LOG --log-prefix "SSHAttach: "iptables -I INPUT ?-p tcp --dport 22 -m state --state NEW -m recent--update --seconds 300 --hitcount 3 --name SSH -j DROP 第三句是指SSH记录中的IP,300s内发起超过3次连接则拒绝此IP的连接。--update 是指每次建立连接都更新列表;--seconds必须与--rcheck或者--update同时使用--hitcount必须与--rcheck或者--update同时使用 (3).iptables的记录:/proc/net/xt_recent/SSH 也可以使用下面的这句记录日志: iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent--update --name SSH --second 300 --hitcount 3 -j LOG --log-prefix "SSHAttack" 6.netfilter?第三方扩展模块,Layer 7 Layer 7能够识别大部分协议,比如QQ BT 迅雷 等 iptables/netfilter?是工作在tcp/ip协议栈上的一规则生成框架,iptables只是规则编写工具,让iptables识别layer 7 系统自带的iptables并不识别Layer 7 ,所以必须对其进行打补丁 1?向内核的netfilter打补丁 2?向iptables打补丁 (实验中我们使用红帽专用的源码专用内核) 使用到的命令: diff ? ? #比较两个版本的不同并生成补丁 patch ? ?#实现将某个补丁文件,升级到当前比较老的版本上,使得其完成源码升级 diff命令可以对目录进行比较,能够将老目录和新目录的文件逐个进行比较,将不一致的文件逐个创建补丁 为自己的内核打补丁使其支持netfilter RedHat src格式的rpm包: http://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS/ 开始打补丁: 以下为所需要用的工具包 [root@test3 iptables]# ll总用量 88936-rw-r--r-- 1 rootroot ? ?546864 2月 ? 2 19:15 iptables-1.4.20.tar.bz2-rw-r--r-- 1 root root ? ? ?90347331 2月 ?2 20:10?kernel-2.6.32-358.el6.src.rpm-rw-r--r-- 1 root root ? ?1420502月 ? 2 19:14 l7-protocols-2009-05-28.tar.gz-rw-r--r-- 1 root root ? ?22754 2月 ?2 19:14 netfilter-layer7-v2.23.tar.bz2 解压netfilter-layer7-v2.23.tar.bz2 至/usr/src [root@test3 iptables]# tar xf linux-2.6.32-358.el6.tar.bz2 -C /usr/src/ [root@test3 src]# cd /usr/src/ [root@test3 src]# ln -s linux-2.6.32-358.el6 linux[root@test3 src]# cd linux [root@test3 linux]# cp /boot/config-2.6.32-358.el6.x86_64 .config 拷贝netfilter内核补丁 [root@test3 iptables]# tar xf netfilter-layer7-v2.23.tar.bz2 -C /usr/src/ [root@test3 netfilter-layer7-v2.23]# pwd/usr/src/netfilter-layer7-v2.23[root@test3 netfilter-layer7-v2.23]# lltotal 76-rw-r--r-- 1 1000 1000 ?7414 Jul 14 ?2009 CHANGELOG ? #补丁版本变化新增功能drwxr-xr-x 2 1000 1000 ?4096 Jul 14 ?2009iptables-1.4.3forward-for-kernel-2.6.20forward ? #补给iptables补丁-rw-r--r-- 1 1000 1000 59232 Aug 29 14:08 kernel-2.6.32-layer7-2.23.patch ? ? ? ? #补给内核的补丁-rw-r--r-- 1 1000 1000 ?2013 Jul 14 ?2009 README [root@test3 netfilter-layer7-v2.23]# cd /usr/src/linux #使用patch命令开始打补丁 将第一个斜线之前的所有内容去掉,直接把文件补当前内核源码数做比较 #../是父目录起始点 [root@test3 linux]# patch -p1 <../netfilter-layer7-v2.23/kernel-2.6.32-layer7-2.23.patch 开始编译内核 解决make menuconfig的依赖关系问题,首先安装ncurses [root@test3 linux]# yum install ncurses-devel ?-y 进入内核编译界面 [root@test3 linux]# make menuconfig 按照图中内容依次选择 按空格选择 默认是没有选择的,按空格键将其选择 保存退出 使用screen 模式来编译内核,以防终端掉线等一些特殊意外情况发生 [root@test3 linux]# screen?make make modules install make install 安装内核过程中,这个脚本会自动修改grub中的配置文件,而后重新启动当前系统就可以使用当前内核了。 由于内核中新增了对Layer7 的支持,但是系统上已经安装的iptables并不实现利用l7写规则,所以必须向iptables打补丁 打完补丁后,还必须将其编译至当前系统上 #编译好之后可以看到会生成我们自己编译的内核目录,如下所示: [root@test3 ~]# ls /lib/modules/2.6.32-358.el6.x86_64?2.6.32-l7.1 编译完成后,查看gurb.conf确保新内核被加载进来 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |