| 
 
| 一、磁盘分区 1、如果是新安装系统,对磁盘分区应考虑安全性:
 1)根目录(/)、用户目录(/home)、临时目录(/tmp)和/var目录应分开到不同的磁盘分区;
 2)以上各目录所在分区的磁盘空间大小应充分考虑,避免因某些原因造成分区空间用完而导致系统崩溃;
 2、对于/tmp和/var目录所在分区,大多数情况下不需要有suid属性的程序,所以应为这些分区添加nosuid属性;
 方法一:修改/etc/fstab文件,添加nosuid属性字.例如:
 /dev/hda2  /tmp ext2 exec,dev,nosuid,rw 0 0
 方法二:如果对/etc/fstab文件操作不熟,建议通过linuxconf程序来修改.
 * 运行linuxconf程序;
 * 选择"File systems"下的"Access local drive";
 * 选择需要修改属性的磁盘分区;
 * 选择"No setuid programs allowed"选项;
 * 根据需要选择其它可选项;
 * 正常退出.(一般会提示重新mount该分区)
 二、安装
 1、对于非测试主机,不应安装过多的软件包.这样可以降低因软件包而导致出现安全漏洞的可能性.
 2、对于非测试主机,在选择主机启动服务时不应选择非必需的服务.例如routed、ypbind等.
 三、安全配置与增强
 内核升级.起码要升级至2.2.16以上版本.
 GNU libc共享库升级.(警告:如果没有经验,不可轻易尝试.可暂缓.)
 关闭危险的网络服务.echo、chargen、shell、login、finger、NFS、RPC等
 关闭非必需的网络服务.talk、ntalk、pop-2等
 常见网络服务安全配置与升级
 确保网络服务所使用版本为当前最新和最安全的版本.
 取消匿名FTP访问
 去除非必需的suid程序
 使用tcpwrapper
 使用ipchains防火墙
 日志系统syslogd
 7. TCP_WRAPPERS
 默认地,Redhat Linux允许所有的请求,用TCP_WRAPPERS增强你的站点的安全性是举手
 之劳,你可以放入
 “ALL: ALL”到/etc/hosts.deny中禁止所有的请求,然后放那些明确允许的请求到
 /etc/hosts.allow中,如:
 sshd: 192.168.1.10/255.255.255.0 gate.openarch.com
 对IP地址192.168.1.10和主机名gate.openarch.com,允许通过ssh连接.
 配置完了之后,用tcpdchk检查
 [root@deep]# tcpdchk
 tcpchk是TCP_Wrapper配置检查工具,
 它检查你的tcp wrapper配置并报告所有发现的潜在/存在的问题.
 8. 别名文件aliases
 编辑别名文件/etc/aliases(也可能是/etc/mail/aliases),移走/注释掉下面的行.
 # Basic system aliases -- these MUST be present.
 MAILER-DAEMON: postmaster
 postmaster: root
 # General redirections for pseudo accounts.
 bin: root
 daemon: root
 #games: root ?remove or comment out.
 #ingres: root ?remove or comment out.
 nobody: root
 #system: root ?remove or comment out.
 #toor: root ?remove or comment out.
 #uucp: root ?remove or comment out.
 # Well-known aliases.
 #manager: root ?remove or comment out.
 #dumper: root ?remove or comment out.
 #operator: root ?remove or comment out.
 # trap decode to catch security attacks
 #decode: root
 # Person who should get root's mail
 #root: marc
 最后更新后不要忘记运行/usr/bin/newaliases,使改变生效.
 9.阻止你的系统响应任何从外部/内部来的ping请求.
 既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性.你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行.
 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
 10. 不要显示出操作系统和版本信息.
 如果你希望某个人远程登录到你的服务器时不要显示操作系统和版本信息,你能改变
 /etc/inetd.conf中的一行象下面这样:
 telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
 加-h标志在最后使得telnet后台不要显示系统信息,而仅仅显示login:
 11.The /etc/host.conf file
 编辑host.conf文件(vi /etc/host.conf)且加下面的行:
 # Lookup names via DNS first then fall back to /etc/hosts.
 order bind,hosts
 # We don't have machines with multiple IP addresses on the same card
 (like virtual server,IP Aliasing).
 multi off
 # Check for IP address spoofing.
 nospoof on
 IP Spoofing: IP-Spoofing is a security exploit that works by tricking
 computers in a trust relationship that you are someone that you really aren't.
 12. The /etc/securetty file
 该文件指定了允许root登录的tty设备,/etc/securetty被/bin/login程序读取,它的
 格式是一行一个被允许的名字列表,如你可以编辑/etc/securetty且注释出下面的行.
 tty1
 #tty2
 #tty3
 #tty4
 #tty5
 #tty6
 #tty7
 #tty8
 -意味着root仅仅被允许在tty1终端登录.
 13. 特别的帐号
 禁止所有默认的被操作系统本身启动的且不需要的帐号,当你第一次装上系统时就应该做此检查,Linux提供了各种帐号,你可能不需要,如果你不需要这个帐号,就移走它,你有的帐号越多,就越容易受到攻击.
 为删除你系统上的用户,用下面的命令:
 [root@deep]# userdel username
 为删除你系统上的组用户帐号,用下面的命令:
 [root@deep]# groupdel username
 在终端上打入下面的命令删掉下面的用户.
 [root@deep]# userdel adm
 [root@deep]# userdel lp
 [root@deep]# userdel sync
 [root@deep]# userdel shutdown
 [root@deep]# userdel halt
 [root@deep]# userdel mail
 如果你不用sendmail服务器,procmail.mailx,就删除这个帐号.
 [root@deep]# userdel news
 [root@deep]# userdel uucp
 [root@deep]# userdel operator
 [root@deep]# userdel games
 如果你不用X windows 服务器,就删掉这个帐号.
 [root@deep]# userdel gopher
 [root@deep]# userdel ftp
 如果你不允许匿名FTP,就删掉这个用户帐号
 
 | 
 |