1.关闭无用的端口
任何网络连接都是通过开放的应用端口来实现的。如果我们尽可能少地开放端口,就使网络攻击变成无源之水,从而大大减少了攻击者成功的机会。
首先检查你的inetd.conf文件。inetd在某些端口上守侯,准备为你提供必要的服务。如果某人开发出一个特殊的inetd守护程序,这里就存在一个安全隐患。你应当在inetd.conf文件中注释掉那些永不会用到的服务(如:echo、gopher、rsh、rlogin、rexec、ntalk、finger等)。
注释除非绝对需要,你一定要注释掉rsh、rlogin和rexec,而telnet建议你使用更为安全的ssh来代替,然后杀掉lnetd进程。这样inetd不再监控你机器上的守护程序,从而杜绝有人利用它来窃取你的应用端口。你最好是下载一个端口扫描程序扫描你的系统,如果发现有你不知道的开放端口,马上找到正使用它的进程,从而判断是否关闭它们。
2.安装和配置一个防火墙
3.删除不用的软件包
在进行系统规划时,总的原则是将不需要的服务一律去掉。默认的Linux就是一个强大的系统,运行了很多的服务。但有许多服务是不需要的,很容易引起安全风险。这个文件就是/etc/inetd.conf,它制定了/usr/sbin/inetd将要监听的服务,你可能只需要其中的两个:telnet和ftp,其它的类如shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth等,除非你真的想用它,否则统统关闭。
4.不设置缺省路由
在主机中,应该严格禁止设置缺省路由,即default route。建议为每一个子网或网段设置一个路由,否则其它机器就可能通过一定方式访问该主机。
5.口令管理
口令的长度一般不要少于8个字符,口令的组成应以无规则的大小写字母、数字和符号相结合,严格避免用英语单词或词组等设置口令,而且各用户的口令应该养成定期更换的习惯。另外,口令的保护还涉及到对/etc/passwd和/etc/shadow文件的保护,必须做到只有系统管理员才能访问这2个文件。
安装一个口令过滤工具加npasswd,能帮你检查你的口令是否耐得住攻击。如果你以前没有安装此类的工具,建议你现在马上安装。如果你是系统管理员,你的系统中又没有安装口令过滤工具,请你马上检查所有用户的口令是否能被穷尽搜索到,即对你的/ect/passwd文件实施穷尽搜索攻击。
6.分区管理
为了防止此类攻击,我们从安装系统时就应该注意。如果用root分区记录数据,如log文件,就可能因为拒绝服务产生大量日志或垃圾邮件,从而导致系统崩溃。所以建议为/var开辟单独的分区,用来存放日志和邮件,以避免root分区被溢出。最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还建议为/home单独分一个区,这样他们就不能填满/分区了,从而就避免了部分针对Linux分区溢出的恶意攻击。