免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8018 | 回复: 7

[原创]内核升级+升级脚本 [复制链接]

论坛徽章:
0
发表于 2008-11-04 18:22 |显示全部楼层
如果有问题欢迎在这留言:http://blog.chinaunix.net/u1/40306/showart_1359724.html
下边还有个word的文档内容在那,我去年写的今天整理一下发上了的,更详细内容请下载word文档


#--------------------------------------------------------------------------------------------------------------------------
  1. #!/bin/bash
  2. #wds
  3. #2007.12.6
  4. clear
  5. echo "Please wait ................................"
  6. kernel=$(uname -r)
  7. version=$(echo $kernel | cut -d. -f2)
  8. if [ "$version" -eq 6 ]
  9. then
  10. dir_down=$(pwd);
  11. dir=$(pwd)/src
  12. linux_bz2=$(ls linux-* | awk -F".tar" '{print $1}');
  13. iptables_bz2=$(ls iptables-* | awk -F".tar" '{print $1}');
  14. patch_bz2=$(ls patch-o-matic-ng-* | awk -F".tar" '{print $1}');
  15. netfilter_bz2=$(ls netfilter-* | awk -F".tar" '{print $1}');
  16. #-----------------------------------------------------------------------------------------------
  17. export KERNEL_DIR=$dir/$linux_bz2;
  18. export IPTABLES_DIR=$dir/$iptables_bz2;
  19. export PATCH_O_MATIC_NG=$dir/$patch_bz2;
  20. #------------------------------------------------------------------------------------------------
  21. [ ! -e /$dir ] && mkdir -p $dir
  22. [ ! -e /$dir/$linux_bz2 ] && tar -jxf ${linux_bz2}.tar.bz2 -C $dir
  23. [ ! -e /$dir/$iptables_bz2 ] && tar -jxf ${iptables_bz2}.tar.bz2 -C $dir
  24. [ ! -e /$dir/$netfilter_bz2 ] && tar -zxf ${netfilter_bz2}.tar.gz -C $dir
  25. [ ! -e /$dir/$patch_bz2 ] && tar -jxf ${patch_bz2}.tar.bz2 -C $dir
  26. #-update-kernel-----------------------------------------------------------------------------------
  27. cd $dir/$linux_bz2
  28. patch -p1 <../$netfilter_bz2/kernel-2.6.13-2.6.16-layer7-2.2.patch > /dev/null
  29. wait
  30. #-update-iptables---------------------------------------------------------------------------------
  31. cd $dir/$iptables_bz2
  32. patch -p1 <../$netfilter_bz2/iptables-layer7-2.2.patch > /dev/null
  33. wait
  34. #-update-patch----------------------------------------------------------------------------------------------
  35. cd $dir/$patch_bz2
  36. echo "y" | ./runme ipp2p

  37. wait
  38. echo "y" | ./runme time
  39. wait
  40. echo "y" | ./runme connlimit
  41. wait
  42. echo "y" | ./runme random
  43. wait
  44. #-make-kernel----------------------------------------------------------------------------------------c
  45. cd  $dir/$linux_bz2
  46. echo "`pwd` is you address:"
  47. else
  48.    echo "you kernel is not supper"
  49. fi
复制代码


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

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


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

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

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

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

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


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


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

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



  70. 10)        reboot 从新启动计算机

  71. 11)        升级防火墙 iptables
  72. Cd /home/wds/iptables-1.3.5 目录.从新加载环境变量source profile ,或
  73. export KERNEL_DIR=/home/wds/ linux-2.6.14.2
  74. export IPTABLES_DIR=/home/wds/iptables-1.3.5
  75. 执行命令: make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
  76.         执行完后测试: iptables –V 看是否为iptables-1.3.5
  77.         
  78.   
  79. 11.1 字符串匹配,可以用做内容过滤

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

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

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

  85. 11.3 时间匹配

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

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

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

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

  92. 11.6 ip范围匹配

  93. iptables -A FORWARD -m iprange --src-range 192.168.0.10-192.168.0.100 -j ACCEPT
  94. iptables -A FORWARD -m iprange --dst-range 192.168.1.5-192.168.1.124 -j ACCEPT

复制代码

[ 本帖最后由 7717060 于 2008-11-5 14:21 编辑 ]

081104181337.rar

129.99 KB, 下载次数: 269

论坛徽章:
0
发表于 2008-11-04 20:04 |显示全部楼层
好的,收了!支持!

论坛徽章:
0
发表于 2008-11-05 14:22 |显示全部楼层

论坛徽章:
0
发表于 2009-11-07 22:09 |显示全部楼层
up

论坛徽章:
0
发表于 2009-11-16 21:29 |显示全部楼层

回复 #1 7717060 的帖子

升级netfilter部分的内核是很实用的

论坛徽章:
0
发表于 2009-12-06 08:34 |显示全部楼层
嗯 。。还有很多要学习的呀!!

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2009-12-06 08:46 |显示全部楼层
不错,学习了

论坛徽章:
0
发表于 2009-12-06 14:03 |显示全部楼层
很好,谢谢版主
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP