Chinaunix

标题: BSD安全:设置FreeBSD的SSH,超时自动断开 [打印本页]

作者: marks911    时间: 2009-01-15 15:54
标题: BSD安全:设置FreeBSD的SSH,超时自动断开
由于安全需要,我要把我的BSD设置成5分钟没有键盘操作的用户,自动断开其连接
查阅来相关的资料,说法有很多
一一尝试,未能成功
苦寻无果,发帖求助
我把我的基本情况写下来:
FreeBSD5.5
使用SecureCRT 5.1连接


默认情况下我的BSD永远不超时断开,且SecureCRT 5.1未设置防呆定时发送



以下是我使用过,且没有成功的方法:


◥1



问:怎么样使得系统在一段时间不操作后自动退出?

答:当操作人员离开计算机而没有退出账户时,出于安全考虑,最好能让系统在隔一段时

间后能自动退出,尤其是root这种超级用户权限的账户。要做到这一点,必须设置一个叫

做“TMOUT”的Linux变量,该变量指明了账户在多长时间不操作后自动退出系统,时间单

位是秒。

编辑/etc/profile文件,在有“HISTFILESIZE=”字样的那一行后面添加关于“TMOUT”的

设置,比如“TMOUT=3600”,这一行的含义是如果系统连续1小时(3600秒)没有被使用,

系统会自动退出所有登录的账户。你也可以把“TMOUT”变量的设置放在账户各自

的.bashrc文件中,使得账户在指定的时间内不操作能自动退出。

修改完/etc/profile文件,再重新登录,设置才会生效。




不成功!

============================此处略去2万字  :)======================================
============================再来一道分割线=========================================

◥6
另有很多文章提到,于系统所用shell有关,按提示修改了相关的文件仍然不行,不一一例举




望有设置成功者告知!!
不胜感激!!

[ 本帖最后由 marks911 于 2009-1-21 17:03 编辑 ]
作者: marks911    时间: 2009-01-15 16:00
15楼 发表于 2009-1-20 22:48   
我将用户的shell改为/bin/csh
然后在用户的home目录下的.cshrc文件的最后添加

set autologout=(20 1)

除了在你idle20分钟后,tcsh自动帮你logout之外,你每idle1分钟,tcsh会将屏幕
lock住,并询问你的密码,在密码输入错误5次后,tcsh会自动logout,以保护你的资料的安全。


反正我是试验成功的。

所谓的idle,似乎只有在回到提示符的情况下才有效。比如你的SSH停留在编辑一个文档的界面上,idle是不管用的。



偶然发现用SecureCRT 5.1连接被踢下线后
摁几下回车就自己又连上了。。。。
研究中。。。


[ 本帖最后由 marks911 于 2009-1-21 16:15 编辑 ]
作者: xieweihua    时间: 2009-01-15 18:51
帮你顶呀
作者: marks911    时间: 2009-01-16 10:45
原帖由 xieweihua 于 2009-1-15 18:51 发表
帮你顶呀



谢谢了,兄弟。
我试了一下,第一条在Linux下没问题,一次成功!
BSD的目前仍然在查找
加油!

作者: lhmwzy    时间: 2009-01-16 13:25
如果你用的是shell是tcsh,可以设置
set autologout=X
数值为分钟,X分钟后,如果你没有活动,shell就自动退出登录
作者: marks911    时间: 2009-01-19 13:46
原帖由 lhmwzy 于 2009-1-16 13:25 发表
如果你用的是shell是tcsh,可以设置
set autologout=X
数值为分钟,X分钟后,如果你没有活动,shell就自动退出登录




不是,我就是用的默认设置,
现在默认的SHELL是SH
而且里面没有别的,只有SH和CSH
作者: lhmwzy    时间: 2009-01-19 14:07
原帖由 marks911 于 2009-1-19 13:46 发表




不是,我就是用的默认设置,
现在默认的SHELL是SH
而且里面没有别的,只有SH和CSH

TCSH,也就是CSH

[ 本帖最后由 lhmwzy 于 2009-1-19 16:05 编辑 ]
作者: marks911    时间: 2009-01-19 14:51
继续等待
隐隐的感觉到与系统使用的shell有很大关系噢  :)
作者: marks911    时间: 2009-01-19 17:09
原帖由 lhmwzy 于 2009-1-19 14:07 发表

TCSH,也就是CSH

感谢,我正在测试。
同时找到一篇关于shell的文章
分享给像我一样的初学者



shell的类型
在UNIX中主要有两大类shell
Bourne shell (包括 sh, ksh, and bash)
Bourne shell ( sh)
Korn shell ( ksh)
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)

Bourne Shell
最初的UNIX shell是由Stephen R. Bourne于20世纪70年代中期在新泽西的AT&T贝尔实验室编写的,这就是Bourne shell。Bourne shell 是一个交换式的命令解释器和命令编程语言。Bourne shell 可以运行为login shell或者login shell的子shell(subshell)。只有login命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。

C Shell
Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。

Korn Shell
有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。为了改变这种状况,AT&T的bell实验室David Korn开发了Korn shell。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,Korn shell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。Korn Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。

Bourne Again Shell (bash)
bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat, Slackware, Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。

POSIX Shell
POSIX shell 是Korn shell的一个变种. 当前提供POSIX shell的最大卖主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh.

各主要操作系统下缺省的shell:
AIX 下是Korn Shell.
Solaris和FreeBSD缺省的是Bourne shell.
HP-UX缺省的是POSIX shell.
Linux是Bourne Again shell.


作者: lhmwzy    时间: 2009-01-19 17:18
其实你离开的时候,执行一下
lock -pn
这个命令,也许是更好的选择。
具体的用法,请man lock
作者: marks911    时间: 2009-01-19 17:21
原帖由 lhmwzy 于 2009-1-19 14:07 发表

TCSH,也就是CSH



设置了etc下的profile,增加了兄台所说的“set autologout=1 ”
不过很不幸,没成功。
我继续研究研究

继续期待ing

作者: marks911    时间: 2009-01-20 08:43
原帖由 lhmwzy 于 2009-1-19 17:18 发表
其实你离开的时候,执行一下
lock -pn
这个命令,也许是更好的选择。
具体的用法,请man lock





恩。这个也不错,只是工作经常会有不定时的忙碌
事情多而繁琐,很容易忘记
谢谢分享。学习一下lock先

作者: lhmwzy    时间: 2009-01-20 09:31
原帖由 marks911 于 2009-1-20 08:43 发表





恩。这个也不错,只是工作经常会有不定时的忙碌
事情多而繁琐,很容易忘记
谢谢分享。学习一下lock先


可以alias一下,比如执行alias lk lock -pn
我想,你再忙,敲两个字母的时间还是有的吧?
况且这种方法不需要断开SSH连接,也节省一点时间吧?
类似于屏保密码
作者: marks911    时间: 2009-01-20 13:50
原帖由 lhmwzy 于 2009-1-20 09:31 发表


可以alias一下,比如执行alias lk lock -pn
我想,你再忙,敲两个字母的时间还是有的吧?
况且这种方法不需要断开SSH连接,也节省一点时间吧?
类似于屏保密码





呵呵,遇到忙的时候连想一下的空隙都没有。
主要是不是我一个人连服务器
我需要做的就是断开超时未操作的用户
谢谢你的分享。
:)

作者: lhmwzy    时间: 2009-01-20 22:48
我将用户的shell改为/bin/csh
然后在用户的home目录下的.cshrc文件的最后添加

set autologout=(20 1)

除了在你idle20分钟后,tcsh自动帮你logout之外,你每idle1分钟,tcsh会将屏幕
lock住,并询问你的密码,在密码输入错误5次后,tcsh会自动logout,以保护你的资料的安全。


反正我是试验成功的。

所谓的idle,似乎只有在回到提示符的情况下才有效。比如你的SSH停留在编辑一个文档的界面上,idle是不管用的。

[ 本帖最后由 lhmwzy 于 2009-1-20 22:50 编辑 ]
作者: ylhyh    时间: 2009-01-20 23:13
关注
作者: marks911    时间: 2009-01-21 10:08
原帖由 lhmwzy 于 2009-1-20 22:48 发表
我将用户的shell改为/bin/csh
然后在用户的home目录下的.cshrc文件的最后添加

set autologout=(20 1)

除了在你idle20分钟后,tcsh自动帮你logout之外,你每idle1分钟,tcsh会将屏幕
lock住,并询问你的 ...

衷心感谢,非常之好,太谢谢了,我再测试一下设置全局用户。一会回来告诉大家。
辛苦了兄弟。

我尝试在/etc/profile文件中增加
set autologout=(20 1)
不能对所有帐户起作用,看来需要手动在每个需要此设置的帐户家目录下的.cshrc文件的最后添加

set autologout=(20 1)

真的是非常感谢 lhmwzy
如果其它兄弟有其它方法,欢迎分享
今天过的很快乐  :)


[ 本帖最后由 marks911 于 2009-1-21 16:12 编辑 ]
作者: marks911    时间: 2009-01-21 14:07
原帖由 ylhyh 于 2009-1-20 23:13 发表
关注

感谢关注,有非常好的答案了,告诉你一声噢
O(∩_∩)O哈哈~
作者: lhmwzy    时间: 2009-01-21 15:46
可以给全部用户设置啊
/etc/csh.cshrc设置一下即可
设置方法同家目录下的.cshrc

[ 本帖最后由 lhmwzy 于 2009-1-21 15:48 编辑 ]
作者: xingjiudong    时间: 2009-01-21 16:39
开机。。。。。测试。。。。。。马上
作者: xingjiudong    时间: 2009-01-21 16:46
set autologout=(20 1)

成功了

freebsd#
password:
作者: marks911    时间: 2009-01-21 17:52
标题: 回复 #21 xingjiudong 的帖子
摁几下回车,等一下,是不是又连接上了?

不过也有可能是crt的问题

我再试试

[ 本帖最后由 marks911 于 2009-1-21 17:57 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2