为服务器构建安全的操作系统

Share To Facebook Twitter

1. 关闭不需要的服务和端口

    在管理服务器的时候,要注意以下三个问题:a. 服务器的角色,或者说服务器是对外提供什么服务的服务器。b. 需要运行的程序。c. 需要开放的端口。

    开放的服务和端口越多,入侵的途径也就越多。所以禁用不必要的服务,封堵不必要的端口,是最基本的工作。需要禁用的服务一般包括Telnet,Ftp,Bluetooth,打印服务等等。

2. 限定Sudo的root用户权限

    sudo命令允许用户以超级用户或者其他用户身份执行命令,所有的配置都在/etc/sudoers文件中,指定了哪些用户可以执行哪些命令。单纯使用sudo,不加参数,是说让当前用户以超级用户的身份执行超级用户可以执行的所有命令。而sudo -u username这条命令,是说让用户以username这个用户的身份执行username可以执行的所有命令。

    sudo可以记录所有以其他用户身份执行的命令,许多管理员喜欢用它替代root shell, 这样就记录下自己的操作,可以用于排错。并且sudo有检票系统,检票过期后,就必须重新使用sudo登录。

    在/etc/sudoers中,有这样一行 root  ALL = (ALL)ALL。其中第一个All是任意主机,第二个ALL是以任意用户的身份允许程序,第三个ALL是任意程序。因此那句代码可以解释为root用户可以在任意主机上以任意用户身份运行该用户可运行的任意程序。再比如bob  TEST = (bugman) /sbin/ifconfig这句配置,意思是bob用户可以在TEST这台主机上,以bugman用户的身份运行/sbin/ifconfig这个程序。

Linux学习,http:// linux.it.net.cn

    所以,不要对root之外的用户在sudo中赋予过多权限,只赋予仅仅够用的权限即可。

    另一方面,sudo可以记录哪些用户执行了哪些命令。这需要事先做些配置。

1 $touch  /var/log/sudo
2  $vi  /etc/syslog.conf
3 在文件最后加上一句local2.debug    /var/log/sudo
4 注意,添加的这句配置,中间那段空白不是空格,而是tab键。保存syslog.conf文件,重启Syslogd服务。

3. 修改ssh服务的端口

    ssh服务需要密码认证才能登录,所以一般可以保留它。SSH的默认端口是一个众所周知的端口,所以应该改为10000以上的一个端口,但是不要和其他应用程序冲突。

复制代码
1 vim /etc/ssh/sshd_config
2
3 在原来的#Port 22下面添加一行,Port 11111,同时去掉Port 22前面的#
4
5 保存后重启服务,service sshd restart
复制代码
并在防火墙里开放11111端口,协议是TCP。测试11111端口是否可以SSH连接,如果可以,再将Port 22注释掉。

Linux学习,http:// linux.it.net.cn

4. 管理日志文件

    两个重要的命令是last和lastlog。Linux为每个服务程序也都分配了一个账户,可以定期检查这些账户是否登录过。如果是在自己不知情的情况下登录过,就有可能是非法登录。还可以检查/var/log/messages文件的内容,看看是否有异常的操作发生。

(责任编辑:IT)

发表评论