[转]CentO下限制SSH登录次数

应公司内部网站等级测评的需求,正逐渐加强系统安全防护。

设备默认 3 次验证失败自动退出,并且结束会话;网络登录连接超时自动退出时间 5 分钟;

第一种方法:已验证。

1.ssh超时时间设置

# cd /etc/profile.d/  #创建两个空白文件autologout.csh 、autologout.sh用来保存TMOUT配置 
# touch autologout.csh 
# touch autologout.sh 
# vi autologout.sh       #编辑autologout.sh

#auto out in 5 minutes
TMOUT=300            #超时时间,单位为s
readonly TMOUT      #设置TMOUT变量只读
export TMOUT        #设置环境TMOUT  

# vi autologout.csh   #编辑autologout.csh

set -r autologout 2  

# chmod  +x autologout.*     #可执行权限,其实单给u+x就行了。

断开Client,重新登录终端5分钟不使用ssh就会自动断开连接.

2. ssh认证次数限制:

/etc/ssh/sshd_config

MaxAuthTries=3   这仅是超过3次验证错误断开连接。

第二种方法:(试验中还是有问题出现)

原理:通过系统的pam认证实现。

1.备份/etc/pam.d/system_auth文件,更改:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_unix.so nullok try_first_pass  将原来的sufficient改为required
#auth        requisite     pam_succeed_if.so uid >= 500 quiet 注释掉此行
auth        required      pam_tally.so deny=3 unlock_time=300  增加一行,失败超过3次限制5分钟后登录
#auth        required      pam_deny.so    注释掉此行

account     required      pam_unix.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so
account     required      pam_tally2.so   增加一行  

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so  

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so 

2. 建议sshtest帐户,进行密码错误登录验证。查看tail  /var/log/secure |grep sshtest记录:

Feb 22 15:21:11 SN524 sshd[4900]: Failed password for sshtest from 192.168.40.130 port 53995 ssh2
Feb 22 15:21:17 SN524 sshd[4900]: pam_tally(sshd:auth): user sshtest (503) tally 7, deny 3
Feb 22 07:21:19 SN524 sshd[4903]: Disconnecting: Too many authentication failures for sshtest
Feb 22 15:21:19 SN524 sshd[4900]: Failed password for sshtest from 192.168.40.130 port 53995 ssh2
Feb 22 15:22:05 SN524 sshd[4906]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.40.130  user=sshtest

帐户已被锁住,无法登录,等待5分钟后才能重新登录.

3、禁止root通过ssh远程登录

vi /etc/ssh/sshd_config

找到PermitRootLogin,将后面的yes改为no,把前面的注释#取消,这样root就不能远程登录了!

可以用普通账号登录进去,要用到root的时候使用命令su root 切换到root账户

=======================================================================

4、限制用户的SSH访问

假设我们只要root,user1和user2用户能通过SSH使用系统,向sshd_config配置文件中添加

vi /etc/ssh/sshd_config

AllowUsers rootuser1user2

=======================================================================

5、配置空闲超时退出时间间隔

用户可以通过ssh登录到服务器,你可以设置一个空闲超时时间间隔。

打开sshd_config配置文件,设置为如下。

vi /etc/ssh/sshd_config

ClientAliveInterval 600

ClientAliveCountMax 0

上面的例子设置的空闲超时时间间隔是600秒,即10分钟,

过了这个时间后,空闲用户将被自动踢出出去(可以理解为退出登录/注销)。

=======================================================================

6、限制只有某一个IP才能远程登录服务器

vi /etc/hosts.deny #在其中加入sshd:ALL

vi /etc/hosts.allow #在其中进行如下设置:sshd:192.168.1.1 #(只允许192.168.1.1这个IP远程登录服务器)

最后重启ssh服务:/etc/init.d/sshd restart

时间: 2024-08-05 01:31:22

[转]CentO下限制SSH登录次数的相关文章

linux下更改ssh登录前的banner信息

默认情况下,telnet ip 22端口会显示 openssh的版本信息 whereis sshd 如 cp /usr/sbin/sshd /usr/sbin/sshd2016.bak sed -i 's/OpenSSH_4.2/OpenSSH_8.2/g' /usr/sbin/sshd service restart sshd telnet 22端口测试banner信息

shell脚本精华----在10秒内SSH登录失败次数超过3次就使用iptables/tcpwrappers拒绝

#!/bin/bash while true do badip=$(lastb -i -a | awk '/ssh:notty/ {print $NF}'|sort|uniq -c|awk '($1>3) {print $2}') for i in $badip do iptables -t filter -I INPUT -s $i -p tcp --dport 22 -j DROP done : > /var/log/btmp sleep 10s done shell脚本精华----在10

linux下设置SSH无密码登录

ssh配置 主机A:10.0.5.199 主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B 先确保所有主机的防火墙处于关闭状态. 在主机A上执行如下: 1. $cd ~/.ssh 2. $ssh-keygen -t rsa  --------------------然后一直按回车键,就会按照默认的选项将生成的密钥保存在.ssh/id_rsa文件中. 3. $cp id_rsa.pub authorized_keys 这步完成后,正常情况下就可以无密码登录本机了,即ssh lo

DenyHosts限制SSH登录尝试次数

DenyHosts官方网站为:http://denyhosts.sourceforge.net 1. 安装 # tar -zxvf DenyHosts-2.6.tar.gz # cd DenyHosts-2.6 # python setup.py install 默认是安装到/usr/share/denyhosts目录的. 2. 配置 # cd /usr/share/denyhosts/ # cp denyhosts.cfg-dist denyhosts.cfg # vi denyhosts.c

Mac下,使用sshpass让iterm2支持多ssh登录信息保存

Mac下,使用sshpass让iterm2支持多ssh登录信息保存 windows里有个Xshell非常的方便好使,因为它能保存你所有的ssh登录帐号信息.MAC下并没有xshell,有些也提供这样的功能,但效果都不好.iterm2是很好的终端,但却不能很好的支持多profiles,当要管理的机器较多时,就比较麻烦了.好在它有profiles设置,只是不能保存ssh登录帐号及密码,它还提供了加载profiles时执行外部命令的功能,因此,这里就可以使用sshpass来帮它执行. 安装iterm2

linux下远程服务器登录命令(SSH)

方法一.使用用户名密码登录 在命令行中输入命令: ssh [email protected]_address -p port 之后系统会提示输入密码,输入后即可登录,如果不添加-p选项,则默认是22端口. 还可以使用-l选项输入用户名: ssh -l username ip_address -p port 方法二.使用密钥登录(不使用密码) 首先生成密钥,在任意目录下输入命令: ssh-keygen -t rsa -P '' -P表示密码,-P '' 表示空密码之后系统会提示输入生成的密钥文件的

Ubuntu下通过SSH远程登录服务器的方法

1. 首先在服务器上安装ssh的服务器端.$ sudo aptitude install openssh-server 2. 启动ssh-server.$ /etc/init.d/ssh restart 3. 确认ssh-server已经正常工作.$ netstat -tlptcp6 0 0 *:ssh *:* LISTEN -看到上面这一行输出说明ssh-server已经在运行了. 4. 在Ubuntu客户端通过ssh登录服务器.假设服务器的IP地址是192.168.0.103,登录的用户名是

Linux系统下的ssh使用(依据个人经验总结)

对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验而言,做一些总结记录来下. (1)ssh远程登陆后的提示信息,标题信息我们经常会使用中控机ssh信任跳转到其他机器上,但是不知道有没有运维朋友注意到ssh跳转成功后的终端显示的提示信息?这些提示信息,是为了方便我们在第一时间知道ssh跳转到哪台目标机上,也是为了避免长期频繁跳转后由于大意造成的误入机器操作的风险,我们通常会在ssh跳转到目

ssh 登录

一.ssh登录过程 在实际开发中,经常使用ssh进行远程登录.ssh 登录到远程主机的过程包括: 版本号协商 密钥和算法协商 认证 交互 1.1 版本号协商阶段 (1) 服务端打开22端口(也可以为了避免攻击,重定义ssh端口),等待客户连接 (2) 客户端向服务端发起TCP连接,连接建立后,服务端向客户端发送第一个报文,包括版本标志字符串,格式为"协议版本号 次协议版本号 软件版本号". (3) 客户端收到报文后进行解析,如果服务端的协议版本号比自己的低,则使用服务端的协议版本号,否