让你的linux操做系统更加安全

Red Hat更安全   BIOS安全 记着要在BIOS设置中设定一个BIOS密码,不接收软盘启动。这样能够阻止不怀好意的人用专门的启动盘启动你的Linux系统,并避免别人更改BIOS设置,如更改软盘启动设置或不弹出密码框直接启动服务器等。 LILO安全 在“/etc/lilo.conf”文件中添加3个参数:time-out、restricted 和 password。这些选项会在启动时间(如“linux single”)转到启动转载程序过程当中,要求提供密码。 步骤1 编辑lilo.conf文件(/etc/lilo.conf),添加和更改这三个选项:   QUOTE: boot=/dev/hda  map=/boot/map  install=/boot/boot.b  time-out=00 #change this line to 00 prompt  Default=linux  restricted #add this line password=<password> #add this line and put your password  p_w_picpath=/boot/vmlinuz-2.2.14-12  label=linux  initrd=/boot/initrd-2.2.14-12.img  root=/dev/hda6  read-only 步骤2 因为其中的密码未加密,“/etc/lilo.conf”文件只对根用户为可读。 [root@kapil /]# chmod 600 /etc/lilo.conf (再也不为全局可读) 步骤3 做了上述修改后,更新配置文件“/etc/lilo.conf”。 [Root@kapil /]# /sbin/lilo -v (更新lilo.conf文件) 步骤4 还有一个方法使“/etc/lilo.conf”更安全,那就是用chattr命令将其设为不可改: [root@kapil /]# chattr +i /etc/lilo.conf 它将阻止任何对“lilo.conf”文件的更改,不管是否故意。 关于lilo安全的更多信息,请参考LILO。 禁用全部专门账号 在lp, sync, shutdown, halt, news, uucp, operator, games, gopher等系统中,将你不使用的全部默认用户账号和群组账号删除。 要删除用户账号: [root@kapil /]# userdel LP  要删除群组账号: [root@kapil /]# groupdel LP  选择恰当的密码 选择密码时要遵循以下原则: 密码长度:安装Linux系统时默认的最短密码长度为5个字符。这个长度还不够,应该增为8个。要改成8个字符,必须编辑 login.defs 文件(/etc/login.defs): PASS_MIN_LEN 5  改成:  PASS_MIN_LEN 8  “login.defs”是登陆程序的配置文件。  启用盲区密码支持 请启用盲区密码功能。要实现这一点,使用“/usr/sbin/authconfig”实用程序。若是想把系统中现有的密码和群组改成盲区密码和群组,则分别用 pwconv 和 grpconv 命令。 根账户 在UNIX系统中,根账户具备最高权限。若是系统管理员在离开系统时忘了从根系统注销,系统应该可以自动从shell中注销。那么,你就须要设置一个特殊的 Linux 变量“TMOUT”,用以设定时间。 编辑“/etc/profile”文件在  "HISTFILESIZE="  以后添加:  TMOUT=3600  为“TMOUT=”输入的值表明1小时的妙数(60 * 60 = 3600妙)。 在“/etc/profile”文件中加了这一行后,任何用户使用该系统时有1小时的休止状态,将自动执行注销操做。而若是用户要对该变量进行分别设定,能够在“.bashrc”文件中定义自动注销的时间。 修改了该参数后,必须退出并从新登陆(为根账户),更改才能生效。  禁止普通用户对控制台的全部访问 应该禁止服务器上的普通用户对关闭、重启、挂起等控制台级别程序的访问。运行以下命令: [root@kapil /]# rm -f /etc/security/console.apps其中<servicename>为禁止访问的程序名称。 禁用 & 卸载全部不使用的服务 对全部不使用的服务,应该禁用并卸载,这样能够少些麻烦。查看“/etc/inetd.conf”文件,在不须要的项目行前加“#”号,即改成注释语句,就能够禁用它们了。而后给 inetd 过程发送一个 SIGHUP 命令,对“inetd.conf”文件进行更新。步骤以下: 步骤1 将“/etc/inetd.conf”文件许可改成600,使其只对根用户为可读写。 [Root@kapil /]# chmod 600 /etc/inetd.conf  步骤2 确保“/etc/inetd.conf”文件的全部者为根用户。 步骤3 编辑 inetd.conf 文件(/etc/inetd.conf),禁用以下服务: ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-二、pop-三、finger、auth,等等。 若是不打算用,禁用了这些服务能够减小风险。 步骤4 给 inetd 过程发送HUP信号: [root@kapil /]# killall -HUP inetd  步骤5 将“/etc/inetd.conf”文件设为不可更改,chattr 命令可使任何人都没法对其进行修改: [root@kapil /]# chattr +i /etc/inetd.conf  惟一能够设置或清除该属性的用户只有根用户。要修改inetd.conf文件,必须去掉不可更改标记: [root@kapil /]# chattr -i /etc/inetd.conf  TCP_WRAPPERS  经过 TCP_WRAPPERS,可使服务器更好地抵制外部侵入。最好的办法是拒绝全部主机:在“/etc/hosts.deny”文件中加入“ALL:&nbspALL@ALL, PARANOID”,而后在“/etc/hosts.allow”列出容许访问的主机。TCP_WRAPPERS 受控于两个文件,搜索时停在第一个匹配的地方。 /etc/hosts.allow /etc/hosts.deny  步骤1 编辑 hosts.deny 文件(/etc/hosts.deny),加入以下行: # Deny access to everyone.  ALL:&nbspALL@ALL, PARANOID  语句的意思是,除非在 allow 文件中说明容许访问,全部服务、全部主机都被拒绝。 步骤2 编辑 hosts.allow 文件(/etc/hosts.allow),例如在文件中添加以下行: ftp: 202.54.15.99 foo.com 对于你的客户机来讲:202.54.15.99为IP地址,foo.com为容许使用ftp的一个客户机。 步骤3 tcpdchk 程序是tcpd wrapper配置的检查程序。它对tcpd wrapper的配置进行检查,并报告所发现的潜在的和实际存在的问题。配置完成后,运行tcpdchk 程序: [Root@kapil /]# tcpdchk  不要显示系统发行文件 当别人远程登陆时,不该该显示系统发行文件。作法是在“/etc/inetd.conf”文件中更改telnet选项:  telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd 改成: telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h  在末尾加“-h”标记使后台程序不显示任何系统信息,而只给用户提供一个 login: 提示符。 更改“/etc/host.conf”文件 “/etc/host.conf”文件用来指定如何解析名称的方法。编辑 host.conf 文件(/etc/host.conf),添加以下各行: # Lookup names via DNS first then fall back to /etc/hosts.  order bind,hosts  # We have machines with multiple IP addresses.  multi on  # Check for IP address spoofing.  nospoof on  第一个选项首先经过DNS解析主机名称,而后解析主机文件。multi 选项用于肯定“/etc/hosts”文件中的主机是否有多个IP地址(多接口以太网)。 nospoof 选项指明该机器不容许假信息。 为“/etc/services”文件免疫 必须为“/etc/services”文件进行磁盘免疫,以免对文件未经受权的删除或添加。使用以下命令: [root@kapil /]# chattr +i /etc/services  不接受从不一样控制台的根用户登陆 “/etc/securetty”文件能够指定“root”用户容许从哪一个TTY设备登陆。编辑“/etc/securetty”文件,在不须要的tty前面加“#”,禁用这些设备。 禁止任何人使用su命令 su命令(Substitute User,替代用户)可使你成为系统的现有用户。若是不但愿别人使用su进入根账户,或者对某些用户限制使用“su”命令,则在“/etc/pam.d/”目录的“su”配置文件顶部加上下文中给出的两行代码。 编辑su文件(/etc/pam.d/su),在文件顶部添加以下两行: auth sufficient /lib/security/pam_rootok.so debug  auth required /lib/security/Pam_wheel.so group=wheel  意思是,只有“wheel”组的成员能够用su命令;其中还包括了日志。你能够在wheel组中添加容许使用该命令的用户。 shell日志 shell可存储500个旧命令在“~/.bash_history”文件中(其中“~/”表明主目录),这样能够便于重复前面的长命令。系统中的每一个账号用户在各自的主目录中都有这个“.bash_history”文件。为安全起见,应使shell存储较少的命令,并在注销用户时将其删除。 步骤1 “/etc/profile”文件中的 HISTFILESIZE 和 HISTSIZE 行决定了系统中全部用户的“.bash_history”文件可容纳的旧命令个数。建议将“/etc/profile”文件中的 HISTFILESIZE 和 HISTSIZE 设为比较小的数,好比30。 编辑 profile 文件(/etc/profile),并更改: HISTFILESIZE=30  HISTSIZE=30  步骤2 系统管理员还应在“/etc/skel/.bash_logout”文件中加进“rm -f $HOME/.bash_history”行,这样就能够在每次用户退出时删除“.bash_history”文件。 编辑 .bash_logout 文件(/etc/skel/.bash_logout),并添加以下行: rm -f $HOME/.bash_history  禁用 Control-Alt-Delete 键盘关机命令 只要在该行前面加“#”,改成注释行。在“/etc/inittab”文件中找到: ca::ctrlaltdel:/sbin/shutdown -t3 -r now  改成: #ca::ctrlaltdel:/sbin/shutdown -t3 -r now  而后,为使更改生效,在提示符下输入: [root@kapil /]# /sbin/init q  修正脚本文件在“/etc/rc.d/init.d”目录下的权限 对脚本文件的权限进行修正,脚本文件用以决定启动时须要运行的全部正常过程的开启和中止。添加: [root@kapil/]# chmod -R 700 /etc/rc.d/init.d/*  这句指的是,只有根用户容许在该目录下使用 Read、Write,和 Execute 脚本文件。 隐藏系统信息 默认状况下,当用户登陆到 Linux 中时,会显示 Linux 发行名称、版本、内核版本,以及服务器名称。这些已经足够让***获取服务器的信息了。正确的作法是只为用户显示“Login: ”提示符。 步骤1 编辑“/etc/rc.d/rc.local” 文件,并将“#”标在下列行的前面:   QUOTE: # 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 步骤2 而后在“/etc”目录下删除“issue.net”和“issue”文件: [root@kapil /]# rm -f /etc/issue  [root@kapil /]# rm -f /etc/issue.net  禁用一般不用的 SUID/SGID 程序 若是设为 SUID 根用户,普通用户也能够做为根用户运行程序。系统管理员应该减小 SUID/GUID 程序的使用,并禁用那些不须要的程序。 步骤1 要从根用户的程序中搜索全部包含“s”字符的文件,使用命令: [root@kapil]# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;  要在搜索到的程序中禁用 suid 程序,键入以下命令: [root@kapil /]# chmod a-s [program]  按照上述的一些安全指南,系统管理员就能够达到基本的系统安全要求。上述的一些操做是一个连续的过程。系统管理员必须保持它们的连续性,才能使系统真正安全。       
相关文章
相关标签/搜索