设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

iptables详解--转(8)

发布时间:2021-01-24 08:33 所属栏目:118 来源:网络整理
导读:[root@test3 ~]# grep -v '#' /etc/grub.confdefault=1timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitleCentOS (2.6.32-l7.1)? ? root (hd0,0)? ? kernel /vmlinuz-2.6.32-l7.1 roroot=UUID=1ef834

[root@test3 ~]# grep -v '#' /etc/grub.confdefault=1timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitleCentOS (2.6.32-l7.1)? ? root (hd0,0)? ? kernel /vmlinuz-2.6.32-l7.1 roroot=UUID=1ef834d4-3eae-4c95-a6ad-8940bb466dce rd_NO_LUKS ?KEYBOARDTYPE=pcKEYTABLE=us rd_NO_MD crashkernel=auto.UTF-8 rd_NO_LVM rd_NO_DM?rhgbquiet? ? initrd /initramfs-2.6.32-l7.1.imgtitle CentOS (2.6.32-358.el6.x86_64)? ? root (hd0,0)? ? kernel /vmlinuz-2.6.32-358.el6.x86_64 roroot=UUID=1ef834d4-3eae-4c95-a6ad-8940bb466dce rd_NO_LUKS ?KEYBOARDTYPE=pcKEYTABLE=us rd_NO_MD crashkernel=auto.UTF-8 rd_NO_LVM rd_NO_DM rhgbquiet? ? initrd /initramfs-2.6.32-358.el6.x86_64.img

可以看到已经被加载进来,先不要急着更改启动内核,先shutdown 将其关机 然后通过交互界面来选取相关内核,按回车进入

wKiom1Lw0LagawlcAACdl-iOzZY257.jpg

选择第一个,我们自己编译的内核,回车

[root@test3 ~]#uname -r2.6.32-l7.1

[root@test3 ~]# cd~/rpmbuild/SPECS/[root@test3 SPECS]# lsiptables.spec ?

对iptables.spec 进行rpm封装,如下所示

iptables的安装

1.?在iptables官方下载源码并打补丁后编译安装

在官网下载iptables-1.4.20.tar.bz2

[root@test3iptables]# cd /usr/src/netfilter-layer7-v2.23/[root@test3 netfilter-layer7-v2.23]# lsCHANGELOG ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?kernel-2.6.32-layer7-2.23.patchiptables-1.4.3forward-for-kernel-2.6.20forward ?README[root@test3 netfilter-layer7-v2.23]# cdiptables-1.4.3forward-for-kernel-2.6.20forward/[root@test3 iptables-1.4.3forward-for-kernel-2.6.20forward]# lllibxt_layer7.c ? ? ? #layer7的模块

libxt_layer7.man

#将其复制到源码目录中

[root@test3iptables]# tar xf iptables-1.4.20.tar.bz2[root@test3 iptables]# cd iptables-1.4.20

#找到extensions目录,extensions目录内是iptables所支持的模块

#将上面的libxt_layer7.c libxt_layer7.man复制进此目录 并重新编译即可

[root@test3extensions]# cp/usr/src/netfilter-layer7-v2.23/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*./[root@test3 extensions]# ls | grep laylibxt_layer7.clibxt_layer7.man

#要想编译iptables,前提是先编译好新内核后,并对新内核的源码进行编译,而且需要将之前的iptables卸载

#感觉有些麻烦,那么有了第二种方法

2.?下载src.rpm 格式包,安装 打补丁 而后重新制作成rpm包

在官网下载 iptables-1.4.7-9.el6.src.rpm

[root@test3iptables]# rpm -ivh iptables-1.4.7-9.el6.src.rpm

之后会在家目录生成rpmbuild的目录

[root@test3iptables]# cd

[root@test3rpmbuild]# cd SOURCES/

[root@test3SOURCES]# ls

iptables-1.4.5-cloexec.patch ? ? ? ? ?iptables-1.4.7-opt_parser_v2.patch iptables-1.4.7-xt_AUDIT_v2.patch iptables.init

iptables-1.4.7 ? ? ? ? ? ? ? ? ? ? ? ??iptables-1.4.7.tar.bz2?? ? ? ? ? ? iptables-1.4.7-xt_CHECKSUM.patch ?libxt_AUDIT.man

iptables-1.4.7-chain_maxnamelen.patch ?iptables-1.4.7-tproxy.patch ? ? ? ? iptables-config

解压iptables-1.4.7.tar.bz2

[root@test3SOURCES]# tar xf iptables-1.4.7.tar.bz2

[root@test3extensions]# pwd/root/rpmbuild/SOURCES/iptables-1.4.7/extensions

复制其目录

[root@test3extensions]# cp/usr/src/netfilter-layer7-v2.23/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*./

[root@test3SOURCES]# pwd/root/rpmbuild/SOURCES

[root@test3SOURCES]# rm -f iptables-1.4.7.tar.bz2?[root@test3 SOURCES]# tar jcf iptables-1.4.7.tar.bz2 ./iptables-1.4.7/*

升级:

[root@test3 SPECS]# ?pwd/root/rpmbuild/SPECS

编辑其配置文件并将其封装

[root@test3 SPECS]#vim iptables.spec

修改参数

Release:?10%{?dist} ? #之前为9% 将其值调大

将内核目录改为我们新建立的内核目录

CFLAGS="$RPM_OPT_FLAGS-fno-strict-aliasing" \

./configure--enable-devel --enable-libipq --bindir=/bin --sbindir=/sbin --sysconfdir=/etc--libdir=/%{_lib} --libexecdir=/%{_lib} --mandir=%{_mandir} --includedir=%{_includedir}--with-xtlibdir=/%{_lib}/xtables-%{version}?--with-kernel=/usr/src/linux/ --with-kbuild=/usr/src/linux/--with-ksource=/usr/src/linux/

制作rmp安装包

[root@test3 SPECS]#rpmbuild -bb iptables.spec?[root@test3 x86_64]# pwd/root/rpmbuild/RPMS/x86_64

#以下生成的为iptables的升级包

[root@test3x86_64]# lsiptables-1.4.7-10.el6.x86_64.rpm ? ? ? iptables-ipv6-1.4.7-10.el6.x86_64.rpmiptables-devel-1.4.7-10.el6.x86_64.rpm

先来看一下当前iptables是什么版本

[root@test3x86_64]# rpm -qa | grep iptablesiptables-1.4.7-9.el6.x86_64iptables-ipv6-1.4.7-9.el6.x86_64

这里我们来升级以下2个包

iptables-1.4.7-10.el6.x86_64.rpmiptables-ipv6-1.4.7-10.el6.x86_64.rpm

在升级之前先将iptables服务停止以防出错

[root@test3x86_64]# /etc/init.d/iptables stop[root@test3 x86_64]# rpm -Uvh iptables-1.4.7-10.el6.x86_64.rpmiptables-ipv6-1.4.7-10.el6.x86_64.rpm[root@test3 x86_64]# /etc/init.d/iptables start

使layer7 能够识别应用

[root@test3iptables]# tar xf l7-protocols-2009-05-28.tar.gz[root@test3 iptables]# cd l7-protocols-2009-05-28

#直接make install

[root@test3l7-protocols-2009-05-28]# make install[root@test3 l7-protocols-2009-05-28]# mkdir -p /etc/l7-protocols[root@test3 l7-protocols-2009-05-28]# cp -rfa * /etc/l7-protocols

Layer 7所别的协议全部都在/etc/l7-protocols/protocols 目录下

Layer 7的功能需要利用内核ACCT追踪的功能,所以还必须修改内核参数,修改ACCT参数

[root@test3protocols]# sysctl -w net.netfilter.nf_conntrack_acct=1

[root@test3protocols]# sysctl -a | grep acctnet.netfilter.nf_conntrack_acct = 1

这时,我们的iptables已经支持Layer 7了

Layer 7的规则匹配:

决绝使用QQ

[root@test3protocols]# iptables -A FORWARD -i eth0 -m layer7 --l7proto qq -j REJECT

拒绝到本机内部http协议

[root@test3protocols]# iptables -A INPUT -d?本机ip -m layer7--l7proto http -j DROP

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读