2010-04-24

Linode虚拟主机Linux安全第一步

Views: 18354 | Add Comments

相信不少朋友用了Linode的VPS(虚拟主机), 或者类似的VPS, 用来搭建网站. 不过, 有几个最重要的安全防范要做:

1. SSH改变端口

sshd默认使用22端口, 这是众所周知的事情. 那么, 那些不怀好意的人就会用一些黑客软件来试图暴力登录你的ssh, 这是非常危险. 而且, 你的auth.log会留下大量日志.

这时, 只需要简单地改变sshd的端口号, 就能避免绝大多数的攻击尝试. 因为很多ssh攻击软件只尝试特定的几个端口.

编辑 /etc/ssh/sshd_config 文件:

Port 22

将22改为一个不太常见的端口号, 例如2390. 然后执行/etc/init.d/sshd restart重启sshd服务.

2. 禁止root登录ssh

改变了sshd端口号, 只是建立起了第一道屏障, 我们还需要建立起第二道更坚固的防线, 也即禁止root登录.

编辑 /etc/ssh/sshd_config 文件:

PermitRootLogin yes
改为
PermitRootLogin no

然后执行/etc/init.d/sshd restart重启sshd服务. 不过, 在禁用root登录ssh之前, 你要新建立一个用户, 以后用该用户账号登录, 当需要进行系统操作时, 再su到root进行操作.

做到了如上两项, 你的ssh的安全多加了两道坚固的防线. 但还不能高枕无忧, 还需要经常地查看是否有登录企图. 可以用下面的命令来查看有哪些IP在尝试登录, 可以添加到/etc/host.deny文件封掉它们.

cat /var/log/auth.log | grep 'sshd:auth' | awk '{print $14}' | sort | uniq -c | sort

sshd的配置文件说明中文版可以看: http://lamp.linux.gov.cn/OpenSSH/sshd_config.html

3. 密码尝试冻结

/etc/pam.d/login里面首行加

auth       required     pam_tally2.so        deny=3  unlock_time=30 even_deny_root root_unlock_time=1800

在/etc/pam.d/sshd 首行添加

auth       required     pam_tally2.so        deny=3  unlock_time=30 even_deny_root root_unlock_time=1800

注意, 一定要是首行!

4. MySQL安全

让MySQL只能从本机连接, 不对外提供服务. 修改my.cnf:

[mysqld]
bind-address = 127.0.0.1
# 或
skip-networking

Related posts:

  1. Linux下整合Apache和Tomcat
  2. 主要排序算法的比较(精炼)
  3. SSDB 发布 1.7.0.0 版本
  4. 众所期待 – 真正的类C通用型脚本编程语言出世了!
  5. Debian Linux 系统提速
Posted by ideawu at 2010-04-24 23:04:23

Leave a Comment