SSH的登录限制

标签: ssh 登录 限制 | 发表时间:2014-04-17 03:30 | 作者:yingbin920
出处:http://www.iteye.com
1、ip限制
从网络来的数据包首先要经过iptables,所以可以在iptables上面加上规则来限制ip的访问
打算用
/etc/hosts.deny
/etc/hosts.allow
比如只限制3个外网,1个内网IP连接
怎么写哦?
解决办法:
直接在/etc/hosts.deny里面加一行
sshd: ALL EXCEPT xxx.xxx.xxx.xxx(允许的ip或网段)
sshd: ALL EXCEPT xxx.xxx.xxx.xxx/255.255.255.0(允许的网段) 就可以了.
要注意网段的书写格式
上面是TCP Wrappers的过滤机制,它由tcpd程序控制,有点类似TCP包的检验程序,这个程序的主要参数文件在/etc/hosts.allow及 /etc/hosts/hosts.deny两个文件中,必须要某个软件支持tcpd(TCP Wrappers)的功能才能接受TCP Wrappers的校验。
数据包的校验顺序首先是/etc/hosts.allow,然后才是/etc/hosts/hosts.deny。所以我们通常的设置方法是:在 /etc/hosts/hosts.allow里针对某些服务与数据包来源开启它们的使用权限;在/etc/hosts/hosts.deny里将该服务 的其它来源过滤掉。
注意:如果您在/etc/hosts/hosts.allow里没有设置,那么TCP Wrappers默认的动作是allow(通过校验并进入主机)。
简单的语法如下:

<服务名称>:
特别注意:其中“服务名称”其实就是程序文件名,比如telnet程序的服务名称是“in.etlnetd”、ssh的是“sshd”;network可以使用192.168.0.0/255.255.255.0,但不可以使用192.168.0.0/24。
针对楼主的需求,我认为/etc/hosts.allow应该这样写:
sshd: 192.168.0.0/255.255.255.0,202.101.73.0/255.255.255.0,202.101.74.0/255.255.255.0,202.101.75.0/255.255.255.0
在/etc/hosts.deny里写上:
sshd: ALL
PS:上面的IP是我假想而来,第一个代表内网,后面3个代表外网,应用时,换成你的实际IP即可。
最后还有点补充的是,个人认为数据包进入主机的第一道关卡应该是iptables,第二道才是TCP Wrappers,如果已经越过iptables,说明已登入你的主机了,下一步只是通过TCP Wrappers来进行TCP包校验,那么如果这个支持TCP Wrappers功能的程序有漏洞,结果是什么不用我说了吧。所以而是先从iptables进行限制,把TCP Wrappers作为个补充应该更安全些。
2、限制用户登录

vi /etc/sshd_config
在最后一行加入一行,me 为指定的用户
AllowUsers me
重启SSH
如果是多个用户的话:AllowUsers A B C
注意中间是空格,而不是分号


3、指定尝试密码次数
vi /etc/sshd_config
修必
MaxAuthTries  3
将默认的值改掉即可 Fedora 默认可以允许做3次尝试
重启SSH


防止ssh登录后闲置时间过长而断开连接

因为工作环境就是在linux下,需要登录到服务器上,而当键盘、鼠标闲置时间过长的时候往往会被服务器给自动断开,前面做的一些事情就被打断了,这样就很麻烦,所以得想办法来防止被服务器给踢出来。

一种方法是修改服务器段,在/etc/ssh/sshd_config里配置ClientAliveCountMax,以分为单位,默认是3分钟,即闲置3分钟就会被自动断开,可以修改时间长一点,比如30分钟:
ClientAliveCountMax=30

另一种方法比较通用,原理就是模拟键盘动作,在闲置时间之内模拟地给个键盘响应,如下:
工具:expect
代码如下:

#!/usr/bin/expect

set timeout 60
spawn ssh user@host�0�2�0�2 interact {
        timeout 300 {send "\x20"}

}
保存为文本文件xxx,然后用expect执行:
expect xxx
接着按提示输入密码就可以了,这样每隔300秒就会自动打一个空格(\x20),具体的时间间隔可以根据具体情况设置。
用这个还能解决乱码问题,比如服务器是用GB18030编码的,那只要把
spawn ssh user@host
换成
spawn luit -encoding GB18030 ssh user@host
其他的还有包括自动登录什么的,感兴趣的可以自己研究一下。

另外,如果是在windows下,则secureCRT就自带了反空闲的功能,打开选项->会话选项->终端,如图:

在发送字串的地方打个空格就可以了。

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [ssh 登录 限制] 推荐:

SSH的登录限制

- - 操作系统 - ITeye博客
从网络来的数据包首先要经过iptables,所以可以在iptables上面加上规则来限制ip的访问. 比如只限制3个外网,1个内网IP连接. 直接在/etc/hosts.deny里面加一行. sshd: ALL EXCEPT xxx.xxx.xxx.xxx(允许的ip或网段). sshd: ALL EXCEPT xxx.xxx.xxx.xxx/255.255.255.0(允许的网段) 就可以了.

Linux SSH帐号权限限制

- Jona - 细节的力量
来源:http://feedproxy.google.com/~r/JoysBoy/~3/TdH16qMVTJk/. 在天朝用SSH来Proxy是家常便饭了,别跟我说你不知道怎么用. 我自己也经常在vps上开一些ssh帐号给朋友用,一般都把shell设置为nologin,这样来禁止他们登入服务器. 不过有一点很麻烦,密码只能由我设,当然也只能设个简单的,朋友不可能把自己平常用的密码随便告诉我,改密码也只能由我操作.

SSH原理与运用(一):远程登录

- Stephanie - 阮一峰的网络日志
SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机、外设和家用电器,SSH的使用范围也越来越广. 不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于很多场合. 本文是我的学习笔记,总结和解释了SSH的常见用法,希望对大家有用. 虽然本文内容只涉及初级应用,较为简单,但是需要读者具备最基本的"Shell知识"和了解"公钥加密"的概念.

Linux下修改ssh端口和禁止root远程登录

- - 记录开发点点滴滴
1、编辑/etc/ssh/ssh_config文件:. 将被注释掉的Port 22前的注释符号“#”去掉,并将22改为8888,保存退出. 2、编辑/etc/ssh/sshd_config文件:. 将Port 22改为8888,并找到PermitRootLogin,将后面的yes改为no,这样root就不能远程登录了,保存退出.

在FreeBSD系统中用pkill命令踢出SSH在线登录用户

- - haohtml's blog
FreeBSD是一个多用户多任务的操作系统,用户可以在不同地方通过ssh连上FreeBSD服务器,在系统中我们可以使用w命令来查看当前在线登录用户. 看到了吧,已经有3个用户登录到服务器了. 接下来使用who am i 看那个是自己的登录终端,下面自己是pts/1. 接下来使用pkill命令将要其它的用户踢出,这里为p0和p2.

Shiro security限制登录尝试次数

- - CSDN博客推荐文章
之前讲了Shiro Security如何结合验证码,这次讲讲如何限制用户登录尝试次数,防止多次尝试,暴力破解密码情况出现. 要限制用户登录尝试次数,必然要对用户名密码验证失败做记录,Shiro中用户名密码的验证交给了 CredentialsMatcher. 所以在CredentialsMatcher里面检查,记录登录次数是最简单的做法.

SSH Tunnel扫盲

- Jerry - 老王的技术手册 ( 我的新博客:http://huoding.com )
前些天,由于我不知道如何在Putty里拷贝字符而被朋友们取笑,着实糗了一把. 不过被别人B4的一大好处就是你会知耻而后勇,这阵子通过研读PuTTY 中文教程,估计以后不会再犯同样的错误了,在学习Putty的同时偶然发现自己对SSH Tunnel的了解很匮乏,所以便有了今天这篇笔记. SSH Tunnel有三种,分别是本地Local(ssh -NfL),远程Remote(ssh -NfR),动态Dynamic(ssh -NfD).

SSH那些事儿

- Mao.. - Visual Mao++
不知道读者中知道SSH有多少,我想除了pro们,剩下的都是用VPS. 一般来说,用SSH就是用ssh –D[1]这个动态转发接口,至于做什么用也就不明说了,大家都懂. 熟悉hg的都知道可以从“ssh://”地址克隆repository[2],那剩下的呢. 故事的起因是office desktop在department firewall之内,用laptop的remote desktop(RDP)连接office需要先用PuTTY之类的神器连接department firewall(OpenBSD的哦),然后再用RDP连接desktop[3].

linux配置ssh+rsync

- - CSDN博客推荐文章
sftp    文件共享 类似ftp  ssh  secure file transfer client. scp    文件共享 类似cp. #PermitRootLogin yes    改成no 禁止root直接登录. #Port 22    改变ssh的默认端口号   要打开注释. 登录  ssh  gwyy@192.168.111.130  然后输入密码就好了.

spring security中限制用户登录次数超过限制的处理

- - ITeye博客
在登录的时候,往往希望记录如果登录失败者的ip,并且登录失败次数超过一定的,则不给登录,予以封锁. 在spring security中,可以通过如下方式实现. 1) 实现AuthenticationFailureEventListener,这个监听器用来监听. 2) 同样有登录成功的监听. 3) LoginAttemptService中,主要是通过缓存记录登录失败次数等,十分简单.