热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

内核升级+升级脚本

内核升级+升级脚本--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
#!/bin/bash
#wds
#2007.12.6
clear
echo "Please wait ................................"
kernel=$(uname -r)
version=$(echo $kernel | cut -d. -f2)
if [ "$version" -eq 6 ]
then
dir_down=$(pwd);
dir=$(pwd)/src
linux_bz2=$(ls linux-* | awk -F".tar" '{print $1}');
iptables_bz2=$(ls iptables-* | awk -F".tar" '{print $1}');
patch_bz2=$(ls patch-o-matic-ng-* | awk -F".tar" '{print $1}');
netfilter_bz2=$(ls netfilter-* | awk -F".tar" '{print $1}');
#-----------------------------------------------------------------------------------------------
export KERNEL_DIR=$dir/$linux_bz2;
export IPTABLES_DIR=$dir/$iptables_bz2;
export PATCH_O_MATIC_NG=$dir/$patch_bz2;
#------------------------------------------------------------------------------------------------
[ ! -e /$dir ] && mkdir -p $dir
[ ! -e /$dir/$linux_bz2 ] && tar -jxf ${linux_bz2}.tar.bz2 -C $dir
[ ! -e /$dir/$iptables_bz2 ] && tar -jxf ${iptables_bz2}.tar.bz2 -C $dir
[ ! -e /$dir/$netfilter_bz2 ] && tar -zxf ${netfilter_bz2}.tar.gz -C $dir
[ ! -e /$dir/$patch_bz2 ] && tar -jxf ${patch_bz2}.tar.bz2 -C $dir
#-update-kernel-----------------------------------------------------------------------------------
cd $dir/$linux_bz2
patch -p1 <../$netfilter_bz2/kernel-2.6.13-2.6.16-layer7-2.2.patch > /dev/null
wait
#-update-iptables---------------------------------------------------------------------------------
cd $dir/$iptables_bz2
patch -p1 <../$netfilter_bz2/iptables-layer7-2.2.patch > /dev/null
wait
#-update-patch----------------------------------------------------------------------------------------------
cd $dir/$patch_bz2
echo "y" | ./runme ipp2p

wait
echo "y" | ./runme time
wait
echo "y" | ./runme connlimit
wait
echo "y" | ./runme random
wait
#-make-kernel----------------------------------------------------------------------------------------c
cd $dir/$linux_bz2
echo "`pwd` is you address:"
else
echo "you kernel is not supper"
fi




linux-2.6.14.2内核升级
现在升级内核的方法有很多比如原码升级,rpm升级,yum升级等,我觉的还是原码升级比较专业,可以自己定制自己的内核。
1.编辑环境
虚拟机 VMware Workstation 6.0.0 build-
Red hat 4
Kernel version 2.6.-9-42
Iptables v1.2.11

2.下载原码包
官方网站(可以得到最新的补丁和内核,还有安装说明):
http://www.kernel.org/pub/linux/kernel/v2.6/
http://ftp.netfilter.org/pub/iptables/
http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/
http://sourceforge.net/projects/l7-filter/
下载后解压缩


3基本安装顺序
0) 配置环境变量
1)生成.config文件
2)给内核打补丁
3)给防火墙打补丁
4)给防火墙增加新特性
5)make menuconfig,把新的选项选上(即第二步“打进去”的选项),保存退出
6)make
7)make modules_install
8)make install
9)编辑/boot/grub/grub.conf,把默认启动改为0(即选择新的内核启动)
10)reboot
11)升级iptables


0) vi profile
export KERNEL_DIR=/home/wds/kernel/linux-2.6.14.2
export IPTABLES_DIR=/home/wds/kernel/iptables-1.3.5
export PATCH_O_MATIC_NG=/home/wds/kernel/patch-o-matic-ng-20060510
黑体字的地方是你放置原码的地方
[wds@localhost kernel]# source profile 倒入环境变量
[wds@localhost kernel]# set | more 查看是否倒入

1) 生成.config文件
这一步也不是必需的,只是为了方便以后的步骤,因为.config文件的作用是纪录“哪 些选项选了,哪些选项没有选”的,仅此而已,如果有兴趣你可以研究一下makefile, 看看.config有什么用最简单生成.config的方法就是执行make menuconfig,然 后什么都不做,保存退出也可以 cp /boot/config-2.6.xxx ./.config

2) 给内核打补丁
进入内核文件夹(linux-2.6.14.2)
patch ?p1 <../netfilter-layer7-v2.2/kernel-2.6.13-2.6.16
-layer7-2.2.patch

3) 给防火墙打补丁
进入防火墙目录(iptables-1.3.5):
patch -p1 <../netfilter-layer7-v2.2/iptables-layer7-2.2.patch
4) 增加新特性
进入(patch-o-matic-ng-20060510)
里面有个patchlets 文件夹为新特性文件夹可以进去看一下都有什么新特性
退回到上一级目录进行新特性的安装,我主要使用ipp2p(防p2p软件)
Time(按时间过滤) connlimit(控制并发) random(随机丢包)
./runme time
./runme ipp2p
./runme connlimit
./runme random


进入内核目录输入make menuconfig 命令会出现上边的图片,具体按下边配置
1. 有SCSI卡(如VMware 中的BusLogic BT946C) 的要把它编译成模块(M) 不然会在make install 出错 。 (其它关于SCSI的选项为内核内建,Buslogic可以选择为模块,只是最后需要制作initrd模块)
Device Drivers --->SCSI device support ---><*> SCSI disk support
Device Drivers --->SCSI device support --->SCSI low-level drivers ---> <*> BusLogic SCSI support
2. Linux Kernel Configuration ---> Networking ---> Networking options ---> Network packet filtering (replaces ipchains) ---> IP: Netfilter Configuration --->
你会发现下面多了几个后面带“(NEW)”字眼的,这就是我们刚才“打进去”的补丁.
3. 其他选项请参照网上帮助.


6) make
保存后退出.并执行make 命令如果你的虚拟机内存大的话可以在make后加参数 ?j
后加数字表示增加多少的线程.


7) make modules_install
编译模块………………………………
8) make install
安装……………………………………
9)编辑/boot/grub/grub.conf,把默认启动改为0(即选择新的内核启动)



10) reboot 从新启动计算机

11) 升级防火墙 iptables
Cd /home/wds/iptables-1.3.5 目录.从新加载环境变量source profile ,或
export KERNEL_DIR=/home/wds/ linux-2.6.14.2
export IPTABLES_DIR=/home/wds/iptables-1.3.5
执行命令: make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
执行完后测试: iptables ?V 看是否为iptables-1.3.5


11.1 字符串匹配,可以用做内容过滤

iptables -A FORWARD -m string --algo kmp --string "www.qq.com" -j DROP
iptables -I FORWARD -d 192.168.3.0/24 -m string --string "宽频影院" --algo kmp -j DROP

11.2 Peer-to-Perr 过滤,封杀BT类P2P软件

iptables -A INPUT -m ipp2p --ipp2p -j DROP
iptables -A FORWARD -m ipp2p --edk --dc --kazaa --gnu --bit --apple --winmx --soul --ares -j DROP

11.3 时间匹配

iptables -A FORWARD -m time --timestart 08:00 --timestop 17:00 -j DROP

11.4 备注匹配,可以支持最多256个字符

iptables -I FORWARD -s 192.168.0.100 -p tcp --dport 80 -j DROP -m comment --comment "the bad guy can not online"

11.5 同时连接个数限制匹配
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j DROP
iptables -I FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j DROP

11.6 ip范围匹配

iptables -A FORWARD -m iprange --src-range 192.168.0.10-192.168.0.100 -j ACCEPT
iptables -A FORWARD -m iprange --dst-range 192.168.1.5-192.168.1.124 -j ACCEPT
DOC文件下载:


[ 本帖最后由 ipitx 于 2008-11-9 11:11 编辑 ]

推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
author-avatar
影子的影子的家
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有