当前位置导航:炫浪网>>网络学院>>操作系统>>Linux教程

红帽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加到文件的末尾
  
  最后一步:再集中检查一次一些文件的所有者和权限,备份数据。
相关内容
赞助商链接