环境: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
* 设置最大密码错误次数
MaxAuthTries
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 日志文件,它是根据这个文件来判断的。
HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件
PURGE_DENY = #过多久后清除已经禁止的,空表示永远不解禁
BLOCK_SERVICE = sshd #禁止的服务名,如还要添加其他服务,只需添加逗号跟上相应的服务即可
DENY_THRESHOLD_INVALID = #允许无效用户失败的次数
DENY_THRESHOLD_VALID = #允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = #允许root登陆失败的次数
DENY_THRESHOLD_RESTRICTED =
WORK_DIR = /var/lib/denyhosts #运行目录
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES #是否进行域名反解析
LOCK_FILE = /var/run/denyhosts.pid #程序的进程ID
ADMIN_EMAIL = root@localhost #管理员邮件地址,它会给管理员发邮件
SMTP_HOST = localhost
SMTP_PORT =
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=5d #用户的登录失败计数会在多久以后重置为0,(h表示小时,d表示天,m表示月,w表示周,y表示年)
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
RESET_ON_SUCCESS = yes #如果一个ip登陆成功后,失败的登陆计数是否重置为0
DAEMON_LOG = /var/log/denyhosts #自己的日志文件
DAEMON_SLEEP = 30s #当以后台方式运行时,每读一次日志文件的时间间隔。
DAEMON_PURGE = 1h #当以后台方式运行时,清除机制在 HOSTS_DENY 中终止旧条目的时间间隔,