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

详解Linux安全管理的基本技巧三


  五、服务安全
  
  取消并反安装所有不用的服务,这样你的担心就会少很多。察看“/etc/inetd.conf”文件,通过注释取消所有你不需要的服务(在该服务项目之前加一个“#”)。然后用“sighup”命令升级“inetd.conf”文件。
  
  第一步:
  
  更改“/etc/inetd.conf”权限为600,只允许root来读写该文件!
  
  # chmod 600 /etc/inetd.conf
  
  第二步:
  
  确定“/etc/inetd.conf”文件所有者为root。
  
  第三步:
  
  编辑 /etc/inetd.conf文件(vi /etc/inetd.conf),取消下列服务(你不需要的):ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth等等。把不需要的服务关闭可以使系统的危险性降低很多。
  
  第四步:
  
  给inetd进程发送一个HUP信号:
  
  # killall -HUP inetd
  
  第五步:
  
  用chattr命令把/ec/inetd.conf文件设为不可修改,这样就没人可以修改它:
  
  # chattr +i /etc/inetd.conf
  
  这样可以防止对inetd.conf的任何修改(意外或其他原因)。唯一可以取消这个属性的人只有root。如果要修改inetd.conf文件,首先要是取消不可修改性质:
  
  # chattr -i /etc/inetd.conf
  
  同时修“/etc/services”文件的属性,防止未经许可的删除或添加服务:
  
  # chattr +i /etc/services
  
  别忘了以后要修改时,再把它们的性质改为可修改的就行了。
  
  六、其它综合设置安全
  
  1、TCP_WRAPPERS 使用TCP_WRAPPERS可以使你的系统安全面对外部入侵。最好的策略就是阻止所有的主机("/etc/hosts.deny"文件中加入"ALL: ALL@ALL, PARANOID" ),然后再在"/etc/hosts.allow" 文件中加入所有允许访问的主机列表。
  
  第一步: 编辑hosts.deny文件(vi /etc/hosts.deny),加入
  
  # Deny access to everyone.
  
  ALL: ALL@ALL, PARANOID
  
  这表明除非该地址包在允许访问的主机列表中,否则阻塞所有的服务和地址。
  
  第二步:
  
  编辑hosts.allow文件(vi /etc/hosts.allow),加入允许访问的主机列表,比如:
  
  ftp: 202.54.15.99 foo.com
  
  202.54.15.99和 foo.com是允许访问ftp服务的ip地址和主机名称。
  
  第三步:
  
  tcpdchk程序是tepd wrapper设置检查程序。它用来检查你的tcp wrapper设置,并报告发现的潜在的和真实的问题。设置完后,运行下面这个命令:
  
  # tcpdchk
  
  2、修改“/etc/host.conf”文件
  
  “/etc/host.conf”说明了如何解析地址。编辑“/etc/host.conf”文件(vi /etc/host.conf),加入下面这行:
  
  # Lookup names via DNS first then fall back to /etc/hosts.
  
  order bind,hosts
  
  # We have mach!
  
  ines with multiple IP addresses.
  
  multi on
  
  # Ch!
  
  eck for
  
  IP address spoofing.
  
  nospoof on
  
  第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。第二项设置检测是否“/etc/hosts”文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。第三项设置说明要注意对本机未经许可的电子欺骗。
  
  3、Shell logging Bash
  
  shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。
  
  第一步:
  
  “/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行确定所有用户的“.bash_history”文件中可以保存的旧命令条数。强烈建议把把“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行的值设为一个较小的数,比如30。编辑profile文件(vi/etc/profile),把下面这行改为:
  
  HISTFILESIZE=30
  
  HISTSIZE=30
  
  这表示每个用户的“.bash_history”文件只可以保存30条旧命令。
  
  第二步:
  
  网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f $HOME/.bash_history" 。这样,当用户每次注销时,“.bash_history”文件都会被删除。
  
  编辑.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面这行:
  
  rm -f $HOME/.bash_history
  
  4、禁止Control-Alt-Delete键盘关闭命令
  
  在"/etc/inittab" 文件中注释掉下面这行(使用#):
  
  ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
  改为:
  
  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
  为了使这项改动起作用,输入下面这个命令:
  
  # /sbin/init q
  
  5、给"/etc/rc.d/init.d" 下script文件设置权限
  
  给执行或关闭启动时执行的程序的script文件设置权限。
  
  # chmod -R 700 /etc/rc.d/init.d/*
  
  这表示只有root才允许读、写、执行该目录下的script文件。
  
  6、隐藏系统信息
  
  在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。对于黑客来说这些信息足够它入侵你的系统了。你应该只给它显示一!
  
  个“login:”提示符。
  
  首先编辑
  
  /etc/rc.d/rc.local"
  
  文件,在下面显示的这些行前加一个“#”,把输出信息的命令注释掉。
  
  # This will overwrite /etc/issue at every boot. So, make any changes you
  
  # want to make to /etc/issue here or you will lose them when you reboot.
  
  #echo "" > /etc/issue
  
  #echo "$R" >> /etc/issue
  
  #echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue
  
  #
  
  #cp -f /etc/issue /etc/issue.net
  
  #echo >> /etc/issue
  
  其次删除"/etc"目录下的“isue.net”和"issue"文件:
  
  # rm -f /etc/issue
  
  # rm -f /etc/issue.net
  
  7、禁止不使用的SUID/SGID程序
  
  如果一个程序被设置成了SUID root,那么普通用户就可以以root身份来运行这个程序。网管应尽可能的少使用SUID/SGID 程序,禁止所有不必要的SUID/SGID程序。
  
  查找root-owned程序中使用s位的程序:
  
  # find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;
  
  用下面命令禁止选中的带有s位的程序:
  
  # chmod a-s [program!
  
  以上是一些基本的安全设置技巧。
相关内容
赞助商链接