当前位置:Linux教程 - Linux综合 - 红帽linux6.2server安装----安全设置

红帽linux6.2server安装----安全设置

  作者: STAR    首先声明一点,这里所说的安全设置都是建立在前面的基础上,也就是说这里的安全设置并不是通用的,如我并没有提供NFS服务,所以就不会对/etc/eXPorts进行设置,如果安装了什么其他的服务,请自行解决相关安全问题   再说一下,我的习惯是注释而不删除,因为这样你能在以后知道你更改了什么,这是个好习惯吧   安全权限体制是基于密码的,一个用户的密码过于简单就能使别有用心者侵入你的系统,并不要以为他干不了什么,以xxxx信息港提供个人主页空间这台机为例,如果一个权限很小很小的工作帐号给破译,那就能用这个密码进入系统。就能拿到任何在这台主机上的htdocs目录和UsweDir(假定是按默认public_Html目录)设定目录下的东东   也就是说/home/*/public_html/下的东东可以给别人拿走分析.....如PHP这类的是不给别人看源码的,辛辛苦苦写的东东不想给别人吧,呵呵   因如要通过Apache提供服务,就必须至少把所有放置网页的目录设权限设为701,也就是任何人都有可执行权限,一般的方法甚至设为755,这直接就能读了,根本不用分析URL,一句话说明这个问题,源代码是保护不了的!   对apache的根也是对个人主页存放目录也是,如是CGI,只有用C写的CGI才行   所以   一、我选择限定最小密码长度,当然是越长越好,呵呵,但我都不习惯用十位以上的密码,惯例是设为八位   打开/etc/login.defs    把PASS_MIN_LEN 5这行把5改为8 (还有许多有用的设置,具体看此文件上几行的说明)   二、root密码的重要性自不用提了   我的做法是首先限定root只许本地登录,只许在tty1登录,网上telnet的可以使用su转为root,再限定su转root的用户组,这的安全点就可以多步设卡,我是这样设的,设一个组(我选super组),只有里面的组员可以su root,其余的就是知道root密码也su不了,必须知道两个密码才能取得root权限(当然这是在不考虑缓冲区溢出和其他更改自身UID和GID的攻击法,这个后面有相应对策)   1.打开/etc/securetty,把除tty1外全部注释掉,这样就只有tty1能用root登录   2.打开/etc/pam.d/su,下面是我机上的文件,加入加☆那两行…. ☆可不是文件里的(#%PAM-1.0你不用理,vi时就明白了)    #%PAM-1.0   ☆auth sufficient /lib/security/pam_rootok.so debug   ☆auth required /lib/security/pam_wheel.so group=super   auth required /lib/security/pam_pwdb.so shadow nullok   account required /lib/security/pam_pwdb.so   passWord required /lib/security/pam_cracklib.so   password required /lib/security/pam_pwdb.so shadow use_authtok nullok   session required /lib/security/pam_pwdb.so   session optional /lib/security/pam_xauth.so     在这我用的是super这个组,你可以改的   我的super 组ID值是33(我故意设在中间的,不想给别人猜出的,呵呵)   然后usrmod –G33 shadow   把我的登录的普通帐号shadow加入super,也只有shadwo才能su root了   (限定tty这个最好留到后面做,因为做服务器过程中,要安很多软件要安,要做很多设置,用普通用户再转root有点累,呵呵,真的,我这样是想写的有条理点,走形式主义了)   三、本地安全    这个非常重要,本想放在最前面说的,衡量了一下,站在全局观来说,这只是一个局部,所以放在这,但确用重要……我能用root进入同学任何一台Linux,很大一部份原因在此   只有root才能改root密码,这是常识也有一个小小的盲区   还有二种方式改root密码,一是init 1 !二是用软盘起动!   到1模式就能更改任何人的密码,所以在这要设卡,起动时进入1默认设置不是需要认证的,如果一个本地普通用户登录后是不能使用init 1 等进入模式1的,所以只有在机器起动时无论起动哪项都要认证权限,通过lilo可以做到   首先在bios里设置不能通过软盘起动,bios也要设密码,再在/etc/lilo.conf里写上一行password=”密码”,这是明文的,所以确保万一   chown 0.0 /etc/lilo.conf 确保是root的   chmod 600 /etc/lilo.conf 除root外谁也不能看   lilo –v   chattr +i /etc/lilo.conf 如果没有写错lilo,我想很久不会改这个文件,给它一个不可更改标志     这两个密码某种意义上和root 密码是一样重要的     四、把系统预置的帐号能不要的全删掉    反正大部份都用不到,删吧,如果提供匿名FTP,ftp这个不要删,放心删吧,反正是帐号越少越好   五、/etc/inetd.conf    打开它,把除ftp、telnet以外的全注释掉,其实这也不是最好的方法,但先用着吧    如按这几份贴的过程,你现在是没有提供ftp服务的,不用理安,要不按后面安wu-ftp-2.6.1时,又要来改这了,再telnet后加个-h,telnet时不显示登录系统信息    ls –l /etc/inetd.conf 看看不是root的,如不是chown 0.0 /etc/inetd.conf    chmod 600 /etc/inetd.conf   六、尽量不外泄系统信息    除了上面那个telnet –h外,再把/etc/rc.d/rc.local关于写/etc/issue、/etc/issue.net写入信息的语句注释掉,如果你没有向rc.local里写过东东,就把里面的东东全注释掉就行。    再删掉或替换掉/etc/issue.net,删掉了telnet时就只有一个“login:”了,换成欢迎词是个好办法,谁要?我收集了很多有性格的耶     七、/etc/rc.d/init.d/   chown –R 0.0 /etc/rc.d/initd/   chmod –R 700 /etc/rc.d/init.d/*    如果以后再加入新的script,也要确认所有者和700权限   八、更好的挂装文件系统   nosuid就是在这个分区里不能有suid和sgid   nodev 不充许有特殊块设备   noexec不充许有任何可执行的二进制文件   关于我的/chroot分区上的natime留到优化那篇说吧   这是我的/etc/fstab   /dev/hda11 / ext2 defaults 1 1   /dev/hda4 /back ext2 defaults 1 2   /dev/hda5 /boot ext2 defaults 1 2   /dev/hda8 /apacheroot ext2 defaults,nosuid,noatime 1 2   /dev/hda7 /home ext2 nosuid,nodev,noexec 1 2   /dev/hda10 /tmp ext2 nosuid,nodev,noexec 1 2   /dev/hda6 /usr ext2 defaults 1 2   /dev/hda9 /var ext2 defaults 1 2   none /proc proc defaults 0 0   none /dev/pts devpts gid=5,mode=620 0 0   /dev/hda1 swap swap defaults 0 0     九、find是好东东    找“.”开头的”特殊”目录和文件名(如果你想放东东在别人的机上,又不是别人知道,怎么做?) :find / -name .* -print –xdev    找任何人都有写权限的文件和目录:   find / -type f \( -perm -2 -o -perm -020 \) -exec ls -lg {} \;   find / -type d\( -perm -2 -o -perm -020 \) -exec ls -ldg {} \;    找没有所有者的文件:find / -nouser –o –nogroup   找.rhosts :find /home -name .rhosts    找s位: find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls -lg {} \;    把找出的一些带S的用chmod a-s去掉S    我去掉的有/usr/bin/下的有chage、gpasswd、wall、chfn、chsh、newgrp、write   /usr/sbin/的有usernetctl、traceroute   /bin/的有mount、umount和/sbin/netreport   你最好像我一样导出一个记录,不然你都不知改了什么,有些程序是需要s位的,如passwd    要用的话,把上面的拷到一个文件里,然后chmod 755就行了(任意帐号都可执行的),再要求高点,做成cron定时任务吧,如果有空,我贴一个上来,唉,下星期考试...   十、/etc/aliases    这个只看过介绍,接触不多----没地方用嘛----但还是解决掉这个隐患才好    因为文件有点长,所以我不贴上来了,除这几行外全部注释   MAILER-DAEMON: postmaster   postmaster: root   bin: root   daemon: root   nobody: root   十一、如果你是多用户系统,有家伙滥用系统资源以这种方式D.o.S,请修改/etc/secrity/limits.conf   因为我的机器能淡的飞出鸟来,硬件也太差了点这步我没有做,我是想到有这种可能所以找到这种方法,呵呵,打开文件   soft core 0 (意为禁止生成core文件)   hard rss 10000 (每用户最大可用10M内存)   hard nproc 20 (20个进程)   可根据需要修改,如修改了还要修改/etc/pam.d/security/pam_limits.so   把session required /lib/security/pam_limits.so加到文件的末尾     最后一步:再集中检查一次一些文件的所有者和权限,备份数据。
[1] [2] 下一页 

(出处:http://www.sheup.com)


上一页 [1] [2]