相信不少朋友用了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