保护你的Ubuntu服务器

安全是相对的,使用本文介绍的这些方法不能绝对保证你的服务器是“安全的”,但可以肯定的是它比以前更安全,也比大多数服务器要安全,至少菜鸟级的黑客是无法攻破的;安全是一个持续的过程,它不是一蹴而就的,我们认为,在安全领域是需要一点偏执精神的。

本文所列举的这些保护措施在Ubuntu Server 10.04(Lucid)和10.10(Maverick)中测试通过,如果你想让你的新Ubuntu服务器变得坚不可摧,你应该仔细阅读本文。

保护你的Ubuntu服务器

Ubuntu服务器设计优良,并有定期更新,相对来说是比较安全的,Ubuntu安全团队表示会不断努力,保护Ubuntu的安全,将会定期提供安全更新。

· 不打开端口

· 基于角色的管理

· 无X服务器

· 安全更新

· 内核和编译器保护

在这篇文章中,我们将从不同方向来应对安全挑战,包括:系统分析,修改设置,安装防火墙,扫描rootkit和制定周期性维护制度。

· 修改设置,增强安全性

· 实施UFW,简单的防火墙

· 使用denyhosts自动将攻击者列入黑名单

· 使用Tiger扫描系统漏洞

· 使用psad检测入侵尝试行为

· 安装nmap,扫描系统打开的端口

· 使用chkrootkit检查系统rootkit

· 监控日志

修改设置,增强安全

保护共享内存

攻击一个运行中的服务(如httpd)时经常要使用/dev/shm,修改/etc/fstab使其更安全。

sudo vi /etc/fstab

添加下面这一行内容:

tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0

禁止root通过SSH登录

Root帐号在Ubuntu中默认是被禁用了的,如果你在Slicehost或Linode上安装Ubuntu,root则是被启用的,无论怎样,禁止root通过SSH登录系统都是一个好主意。

sudo vi /etc/ssh/sshd_config

PermitRootLogin设为no:

PermitRootLogin no

当然,如果你通过SSH访问你的服务器,在禁用root使用SSH之前,确保其它用户可以正常使用sudo工作。

只允许管理用户使用su

这将有助于预防特权提升,默认情况下,Ubuntu没有提供管理组,因此需要先创建一个管理组。

sudo groupadd admin

将你自己加入到管理组:

sudo usermod -a -G admin andrew

限制/bin/su的访问权,仅授予管理组成员:

sudo dpkg-statoverride --update --add root admin 4750 /bin/su

检查/bin/su的权限:

ls -lh /bin/su

看到下面的输出内容:

-rwsr-x--- 1 root admin 31K 2010-01-26 17:09 /bin/su

不允许跟踪入站数据包的源路由

sudo sysctl -w net.ipv4.conf.all.accept_source_route=0
sudo sysctl ­-w net.ipv4.conf.default.accept_source_route=0

不允许系统用户访问FTP服务器

只有当你安装了ftpd才需要这么做,只要tiger扫描报告中不出现相关警告即可,SFTP比FTP的安全性要好,如果可能,应尽量使用SFTP。

Edit /etc/ftpusers:

sudo vi /etc/ftpusers

添加系统用户拒绝使用ftpd:

  1. backup 
  2. bin 
  3. daemon 
  4. games 
  5. gnats 
  6. irc 
  7. libuuid 
  8. list 
  9. lp 
  10. mail 
  11. man 
  12. mysql 
  13. news 
  14. ntp 
  15. postfix 
  16. proxy 
  17. sshd 
  18. sync 
  19. sys 
  20. syslog 
  21. uucp 
  22. www-data 

相关推荐