⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000001.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;mephisto&nbsp;(魔鬼*修心养性*重新做人),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;增加Linux系统安全性的一种方法&nbsp;(转载)&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Sep&nbsp;&nbsp;2&nbsp;01:24:55&nbsp;1999)&nbsp;<BR>&nbsp;<BR>【&nbsp;以下文字转载自&nbsp;Security&nbsp;讨论区&nbsp;】&nbsp;<BR>【&nbsp;原文由&nbsp;howareyou&nbsp;所发表&nbsp;】&nbsp;<BR>Linux缺省的安全等级是0,如果将其升到1,就可以一定程度上提高系统的安全性.安全等级&nbsp;<BR>为1的时候,它会禁止修改ex2fs系统中文件的immutable和append-only位,同时禁止装入&nbsp;<BR>/移除module.所以我们可以先用chattr&nbsp;+i&nbsp;&lt;file&gt;将大部分的可执行文件,动态连接库,&nbsp;<BR>一些重要的系统文件(inetd.conf,securetty,hosts.allow,hosts.deny,rc.d下的启&nbsp;<BR>动script...)加上immutable位,这样&quot;黑客&quot;就很难在你的机器上放置木马和留后门了.&nbsp;<BR>(即便他已经得到了root权限,当然通过直接硬盘读写仍然可以修改,但比较麻烦而且危险&nbsp;<BR>).&nbsp;<BR>&quot;黑客&quot;们一旦进入系统获得root,首先会清除系统的记录文件.你可以给一些系统记录文件&nbsp;<BR>(wtmp,messages,syslog...)增加append-only位,使&quot;黑客&quot;不能轻易的修改它们.要抓&nbsp;<BR>他们就容易多了.:-)&nbsp;<BR>修改安全等级比较直接的办法是直接修改内核源码.将linux/kernel/sched.c中的&nbsp;<BR>securelevel设成1即可.不过如果要改变安全等级的话需要重新编译内核,我太懒,不想那&nbsp;<BR>么麻烦.:-)&nbsp;<BR>为什么不用module呢?我写了个很简单的lkm和一个client程序来完成安全等级的切换.&nbsp;<BR>&nbsp;<BR>方法:&nbsp;insmod&nbsp;lkm;&nbsp;clt&nbsp;-h;&nbsp;<BR>&nbsp;<BR>注意:普通用户也可以执行clt来切换安全等级,所以最好是在clt和lkm中加段密码检查,&nbsp;<BR>如果密码不对就不允许执行.:-)&nbsp;<BR>&nbsp;<BR>这两个程序在Redhat&nbsp;5.2(2.0.36)下编译运行通过.对于2.2.x的内核,securelevel&nbsp;<BR>变成了securebits,简单的将它改到1,会连setuid()都被禁止了,这样普通用户就不能&nbsp;<BR>登陆了.如果谁对2.2.x比较熟悉,请不吝赐教,共同提高嘛.:)&nbsp;<BR>&nbsp;<BR>&lt;在测试这些程序以前,请备份重要数据.本人不为运行此程序带来的任何损失负责.&gt;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>(一旦securelevel=1,kernel将不允许装入modlue,所以你的kerneld可能不能正&nbsp;<BR>常工作)&nbsp;<BR>(关于chattr,lsaddr请man&nbsp;chattr和man&nbsp;lsattr)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="mailto:warning3@hotmail.com">warning3@hotmail.com</A>&nbsp;<BR>&nbsp;<BR>/****************************&nbsp;lkm.c&nbsp;********************************/&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>/*&nbsp;Simple&nbsp;lkm&nbsp;to&nbsp;secure&nbsp;Linux.&nbsp;<BR>&nbsp;*&nbsp;This&nbsp;module&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;change&nbsp;the&nbsp;securelevel&nbsp;of&nbsp;Linux.&nbsp;<BR>&nbsp;*&nbsp;Running&nbsp;the&nbsp;client&nbsp;will&nbsp;switch&nbsp;the&nbsp;securelevel.&nbsp;&nbsp;<BR>&nbsp;*&nbsp;&nbsp;&nbsp;<BR>&nbsp;*&nbsp;gcc&nbsp;-O3&nbsp;-Wall&nbsp;-c&nbsp;lkm.c&nbsp;<BR>&nbsp;*&nbsp;insmod&nbsp;lkm&nbsp;<BR>&nbsp;*&nbsp;<BR>&nbsp;*&nbsp;It&nbsp;is&nbsp;tested&nbsp;in&nbsp;Redhat&nbsp;5.2&nbsp;(2.0.36).&nbsp;<BR>&nbsp;*&nbsp;(It&nbsp;should&nbsp;be&nbsp;modified&nbsp;if&nbsp;you&nbsp;want&nbsp;to&nbsp;run&nbsp;it&nbsp;in&nbsp;2.2.x&nbsp;kernel).&nbsp;&nbsp;<BR>&nbsp;*&nbsp;It&nbsp;is&nbsp;really&nbsp;very&nbsp;simple,but&nbsp;we&nbsp;just&nbsp;for&nbsp;educational&nbsp;purposes.:-)&nbsp;<BR>&nbsp;*&nbsp;<BR>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="mailto:warning3@hotmail.com">warning3@hotmail.com</A>&nbsp;&nbsp;<BR>&nbsp;*/&nbsp;<BR>&nbsp;<BR>#define&nbsp;MODULE&nbsp;<BR>#define&nbsp;__KERNEL__&nbsp;<BR>&nbsp;<BR>#include&nbsp;&lt;linux/config.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/module.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/version.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/errno.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/types.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/fs.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/string.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/mm.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/proc_fs.h&gt;&nbsp;<BR>#include&nbsp;&lt;asm/segment.h&gt;&nbsp;<BR>#include&nbsp;&lt;asm/unistd.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/dirent.h&gt;&nbsp;<BR>#include&nbsp;&lt;asm/unistd.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/sockios.h&gt;&nbsp;<BR>#include&nbsp;&lt;linux/if.h&gt;&nbsp;<BR>&nbsp;<BR>#define&nbsp;__NR_secureswitch&nbsp;250&nbsp;&nbsp;<BR>&nbsp;<BR>extern&nbsp;void&nbsp;*sys_call_table[];&nbsp;<BR>&nbsp;<BR>int&nbsp;sys_secureswitch(int&nbsp;secure)&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;if(secure==0)&nbsp;securelevel=0;&nbsp;<BR>&nbsp;&nbsp;&nbsp;if(secure==1)&nbsp;securelevel=1;&nbsp;<BR>&nbsp;&nbsp;&nbsp;return&nbsp;securelevel;&nbsp;<BR>}&nbsp;<BR>&nbsp;<BR>int&nbsp;init_module(void)&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys_call_table[__NR_secureswitch]&nbsp;=&nbsp;(void&nbsp;*)sys_secureswitch;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;<BR>}&nbsp;<BR>&nbsp;<BR>void&nbsp;cleanup_module(void)&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys_call_table[__NR_secureswitch]&nbsp;=&nbsp;NULL;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;<BR>}&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>/************************&nbsp;clt.c&nbsp;**************************/&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -