环境:ubuntu 12.04
一、简单安装设置
1. 安装ssh 服务器
$ sudo apt-get install openssh
2. 查看运行状态
$ service ssh status
3. 设置(/etc/ssh/sshd_config)
* 禁用root用户登录
PermitRootLogin yes #yes改为no
* 端口扫描软件默认扫描22端口,修改为其它端口。
port 22
* 设置最大密码错误次数
MaxAuthTries 3
4. 重启
$ sudo service ssh restart
5. 查看ssh登录日志文件
$ sudo vim /var/log/auth.log
a. 查看登录失败的IP
sudo grep "Failed password for root" /var/log/auth.log | awk {‘print $11‘} | uniq -c | sort -rn
b. 查看登录成功的IP
grep "Accepted password for " /var/log/auth.log
二、限制IP登录
1. 编辑/etc/hosts.allow (手动)
2. 安装denyhosts,自动加登录失败的到黑名单
$ sudo apt-get install denyhosts
默认配置就可以了。
查看配置信息:
$ sudo vim /etc/denyhosts.conf
下面是一些设置的介绍,配置文件中有详细说明。
1 SECURE_LOG = /var/log/auth.log #ssh 日志文件,它是根据这个文件来判断的。 3 HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件 4 PURGE_DENY = #过多久后清除已经禁止的,空表示永远不解禁 5 BLOCK_SERVICE = sshd #禁止的服务名,如还要添加其他服务,只需添加逗号跟上相应的服务即可 6 DENY_THRESHOLD_INVALID = 5 #允许无效用户失败的次数 7 DENY_THRESHOLD_VALID = 10 #允许普通用户登陆失败的次数 8 DENY_THRESHOLD_ROOT = 1 #允许root登陆失败的次数 9 DENY_THRESHOLD_RESTRICTED = 1 10 WORK_DIR = /var/lib/denyhosts #运行目录 11 SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES 12 HOSTNAME_LOOKUP=YES #是否进行域名反解析 13 LOCK_FILE = /var/run/denyhosts.pid #程序的进程ID 14 ADMIN_EMAIL = root@localhost #管理员邮件地址,它会给管理员发邮件 15 SMTP_HOST = localhost 16 SMTP_PORT = 25 17 SMTP_FROM = DenyHosts <nobody@localhost> 18 SMTP_SUBJECT = DenyHosts Report 19 AGE_RESET_VALID=5d #用户的登录失败计数会在多久以后重置为0,(h表示小时,d表示天,m表示月,w表示周,y表示年) 20 AGE_RESET_ROOT=25d 21 AGE_RESET_RESTRICTED=25d 22 AGE_RESET_INVALID=10d 23 RESET_ON_SUCCESS = yes #如果一个ip登陆成功后,失败的登陆计数是否重置为0 24 DAEMON_LOG = /var/log/denyhosts #自己的日志文件 25 DAEMON_SLEEP = 30s #当以后台方式运行时,每读一次日志文件的时间间隔。 26 DAEMON_PURGE = 1h #当以后台方式运行时,清除机制在 HOSTS_DENY 中终止旧条目的时间间隔,