默认情况下root用户的密码是和安装ubuntu时候所建立的用户的密码一致的,所以在系统安装成功之后,就要为root用户修改密码:
$ sudo passwd root 然后两次输入密码即可,而密码长度最好是能够大于8,我们可以强制用户使用8个字符以上的口令。
$ sudo vi /etc/login.defs 找到
PASS_MIN_LEN 5 修改为
PASS_MIN_LEN 8 3.禁止控制台的访问 一个最简单而且最常用的保证系统安全的方法就是禁止使用所有的控制台程序,如:shutdown和halt。
$ sudo rm –f /etc/security/console.apps/halt $ sudo rm –f /etc/security/console.apps/poweroff $ sudo rm –f /etc/security/console.apps/reboot $ sudo rm –f /etc/security/console.apps/shutdown 要禁止控制台的访问,除了程序,还需要给/etc/pam.d/目录下的所有文件中,给那些包含pan_console.so的行加上注释。这点可以使用shell脚本来减轻工作量:
$ sudo vi disable.sh 然后在disable.sh文件中输入 # !/bin/sh cd /etc/pam.d for i in * ; do sed '/[^#].*pam_console.so/s/^/#/' < $i > foo && mv foo $I done 第13页 共48 页
然后保存,并且退出并使用以下命令使脚本有可执行的权限,并执行它: $ sudo chomd 700 disable.sh $ sudo ./disable.sh 这样 /etc/pam.d目录下所有文件中包含“pam_console.so”的行都被加上了注释。
4.关闭不需要的服务和端口
作为一名Linux系统管理员或者安全管理员,一定要定义下面3项: ? 服务器角色(Web、数据库、代理、FTP、DNS、DHCP或其他) ? 服务器成为这种角色要运行的服务程序 ? 开启的端口
操作系统的开发的端口和服务,是黑客入侵的第一目标和接口,所以为了使服务器更安全,应该关闭不必要的服务程序和端口。
在ubuntu下面,使用sysv-rc-conf工具来关闭不需要的服务。 首先是安装sysv-rc-conf:
$ sudo aptitude install sysv-rc-conf 然后运行: $ sudo sysv-rc-conf sysv-rc-conf工具会将系统的服务以列表形式显示出来,然后根据需求来打开和关闭系统服务。
第14页 共48 页
图3.1.5 服务列表
表3.1.3 关闭ubuntu不必要服务
atd Bluetooth cupsys gdm 5.路由协议
类似cron,一个作业调度程序。因为已打开cron,所以可以关闭。 服务器一般不需要蓝牙服务。 管理打印机的子系统。同样,服务器角色为Web服务器,而不是打印服务器。 gnome桌面管理器。作为服务器,一般不需要图形界面。 路由和路由协议会导致一些问题,IP原路径路由(IP source routing),也就是IP包包含到达目的地址的的详细路径信息,而根据RFC1122规定目的主机必须按原路径返回这样的IP包。如果黑客能够伪造原路径路由的信息包,那么它就能截取返回的信息包,并且欺骗用户计算机,让它觉得正在和它交换信息的是可以信任的主机。所以应该禁止IP原路径路由以避免这个安全漏洞。
第15页 共48 页
使用以下命令:
$ sudo vi /etc/rc.d/rc.local 在最后加入:
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do echo 0 > $f done 6.保护重要文件的不可改变位
给口令文件和组文件设置不可改变位,这样就可以有些人对这些文件删除、重写或者创建符号链接,可以用下面的命令:
$ sudo chattr +i /etc/passwd $ sudo chattr +i /etc/shadow $ sudo chattr +i /etc/group $ sudo chattr +i /etc/gshadow 注意:如果将来需要在口令文件或组文件中增加或删除文件,就必须先清除这些文件的不可改变位,否则不能做任何改变,清除命令为:
$ sudo chattr –i /etc/passwd 7.资源限制 限制用户对系统资源的使用,可以避免拒绝服务(如:创建很多进程、消耗系统的内存等)这种攻击方式。这些限制必须在用户之前设定。使用如下命令:
第一步:
$ sudo vi /etc/security/limits.conf 加入以下行: * hard core 0 * hard rss 5000 * hard nproc 20 第16页 共48 页
这些行的意思是:―core 0‖表示禁止创建core文件,―nproc20‖把最多进程数限制到20,―rss5000‖表示除了root之外,其他用户都最多只能用5M内存。星号―*‖表示的是所有登陆到系统中的用户。
第二步:
$ sudo vi /etc/pam.d/login 在文件末尾假如下面这一行:
$ session required /lib/security/pam_limits.so 3.1.4 系统安全漏洞检测
1.使用rkhunter检测系统漏洞
众所周知,要取的一部主机的所有权限,那就是需要取得该部主机的超级管理员root的权限。所以一般的黑客都会想尽办法去取的root的权限的,而最简单的方法就是利用网络上流传的RootKit软件程序来进行入侵的动作。
而Rootkit程序就是一些有心人士将某些恶意的cracker发现并且利用的系统漏洞做成的恶意程序收集起来,并且做成的软件包,这些软件包被上传至Internet,以至于任何人都可以下载并且某些别有用心的人会利用此来攻击网络上的服务器。
由于RootKit主要是籍由主机的漏洞来攻击的,因此确定把不必要的服务关闭,并且随时更新系统。
除此之外,还应该关注系统安装的软件,因为RootKit也可能会伪装Internet上合法的软件来吸引你去安装他。而这方面,可以用Root Kit Hunter来做出检测。
RKHunter可以做的事情包括:侦测RootKit程序、侦测后门程序以及主机端的套件检查问题。
我们通过以下命令来安装RKHunter: $ sudo apt-get install rkhunter 使用RKHunter来检测系统: $ sudo rkhunter ––check 然后RKHunter就会从以下几个项目去检查系统的安全性
第17页 共48 页