其实本身Linux已经很安全了,但是如果密码设置的不够复杂,如果说小写+数字共12位以下,你的SSH还用的默认端口,那强力一点的***用不上半小时,就能暴力破解你的密码。所以,最好的方法就是修改掉SSH的端口。

一、修改端口 修改文件:/etc/ssh/sshd_config Port 22 #在第三行或第四行,如果前面有井号,请删除,修改为65534以下即可 可在远程连接中用vi命令,或sftp下载到本地修改,修改后使用以下命令重启ssh服务 /etc/init.d/sshd restart #centos系统,重启ssh服务命令 /etc/init.d/ssh restart #debian/ubuntu系统,重启ssh服务命令

二、禁止root直接登录 更加安全的设置,禁止ROOT登陆,采用小号登陆再切换ROOT(此方法不能用SFTP上传文件) useradd vpsmm #新建一个小号 passwd vpsmm #给小号设置密码,需要输入完全相同的二次,注意提示 vi /etc/ssh/sshd_config #修改的文件还是这个 PermitRootLogin yes #把yes,改成no,保存退出,并重启SSH服务(上面有重启命令) 切记,如果没有新建小号,或小号密码设置错误,你又禁了ROOT,那你只能重启系统或回滚快照,再也登陆不了。

如果不是极度需要安全环境,并且,还需要使用SFTP管理文件,那改掉端口就行了。

三、设置Linux用户连续N次输入错误密码进行登陆时,自动锁定X分钟

执行 vim /etc/pam.d/login
在#%PAM-1.0 下新起一行,加入
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10

如果不限制root用户,则可以写成
auth required pam_tally2.so deny=3 unlock_time=5

注解:
even_deny_root    也限制root用户;
deny              设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time       设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time  设定root用户锁定后,多少时间后解锁,单位是秒;

备注: 1、此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 模块可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。

2、也可以直接在 system-auth 文件中直接添加这些命令,修改完成后,凡是调用 system-auth 文件的服务,都会生效。因为有自动解锁时间,所以,不用担心全部限制后,会出现永远无法登陆的”尴尬”情况。

3、可以使用 pam_tally2 -r -u username 命令,手动清除某用户记录次数。

# 限制用户从tty登录
在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是
可以登录的!
 
# vim /etc/pam.d/login
#%PAM-1.0
auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10
 
# 查看用户登录失败次数
# cd /etc/pam.d/
# pam_tally2 --user root
Login Failures Latest failure From
root 7 07/16/12 15:18:22 tty1