Chinaunix

标题: 一次性口令opie(FreeBSD) [打印本页]

作者: eliumao    时间: 2005-12-07 11:34
标题: 一次性口令opie(FreeBSD)
我发在CU的BLOG上了,但是文章里的回车都没了,为什么?


一次性口令OPIE(FreeBSD)

口令用久了,就可能泄露,所以就有了一次性口令,用完就没用了。有没有想过强化一下你的ssh登陆呢?
原理:服务器维护一个不断变化的口令列表,这个列表是算出来的。你每次用一个口令,用什么口令是预定好的,用过就失效,轮到下一个口令你不必非记住每个口令,登陆时,系统会给你提示,根据提示,再根据你事先知道的一个密码,在安全的客户端算出口令,再用其登陆。

步骤:
1.初始化:需要初始化要登陆的系统的口令序列:
在你要使用的帐户的提示符下:
%opiepasswd -c -n 1000
Adding eliumao:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrasexxxx
Again new secret pass phrasexxxx

ID eliumao OTP key is 1000 el6652
LOB COCO DISK FAIN CRAG CAM

其中第一行中,-c是创建或初始化的意思,-n后面有个数字,是你要创建的口令序列的长度,用完还要重新初始化。默认是500个。
第七行,输入你的密码,这个密码是用来以后根据系统提示算密码的,或用来重新初始化。密码复杂些没有坏处。
第八行,再输入一遍密码。
成功。
下次想修改的话,直接用不带-c的命令就好了。

2.配置sshd_config使ssh使用opie的方式验证口令
(注意,如果你用的是6.0,那么就不用第2步的配置了!!!!!)
请安装/usr/ports/security/openssh-portable。别忘了在/etc/rc.conf里加上这一行:
sshd_program="/usr/local/sbin/sshd

/etc/ssh/sshd_config
--------------------------------------
ChallengeResponseAuthentication yes     #这一行不要是no,默认是yes
--------------------------------------

3.配置PAM
(如果你用的是6.0,那么就不用第3步的配置了,相关配置文件的位置/etc/pam.d/sshd!!!!!)

以下是我的/etc/pam.conf中关于ssh的内容
--------------------------------------------------------------------------------
# OpenSSH with PAM support requires similar modules.  The session one is
# a bit strange, though...
#sshd   auth    sufficient      pam_skey.so
sshd    auth    sufficient      pam_opie.so                     no_fake_prompts
sshd    auth    requisite       pam_opieaccess.so
#sshd   auth    sufficient      pam_kerberosIV.so               try_first_pass
#sshd   auth    sufficient      pam_krb5.so                     try_first_pass
sshd    auth    required        pam_unix.so                     try_first_pass
sshd    account required        pam_unix.so
sshd    password required       pam_permit.so
sshd    session required        pam_permit.so
---------------------------------------------------------------------------------
注意,第三行,我屏蔽掉了skey方式
第四行,我设置成使用opie认证就足够了
第五行,我设置成opie认证通过是必须的,如果你还希望通过普通口令(UNIX系统口令)登陆,就不要这一行。
OK,大功告成

4.试试看
%ssh ssh.eliumao.com
otp-md5 451 gw0965 ext
Password:

这里的password是这样算的,在本地运行

%opiekey 451 gw0965
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrasexxxxxx
REIN BONN WAYS FILL CALF BRAD

注意,第一行,opiekey命令的参数就是ssh时这一行(otp-md5 451 gw0965 ext)得到的。
第四行,输入步骤1时那个secret pass phrase。
最后一行,得到的就是登陆要用的口令。

5.注意事项
显然,步骤1的那个口令的安全十分重要。产生时,最好通过安全的连接活着干脆就在服务器本地。算一次性口令时,也要注意是在安全的终端上。
作者: FinalBSD    时间: 2005-12-07 12:18
good^_^
作者: bb8848    时间: 2005-12-07 13:12
跟Deep Freeze 差不多
作者: eliumao    时间: 2005-12-07 15:56
原帖由 bb8848 于 2005-12-7 13:12 发表
跟Deep Freeze 差不多

谢谢让我知道了Deep Freeze,长见识了。不过好象那是要花钱的吧!
作者: rainren    时间: 2005-12-07 16:06
看过一篇文章写如何使用一次性口令, 自己打印过, 现在忘记网址了!
作者: 剑心通明    时间: 2005-12-07 16:31
原帖由 eliumao 于 2005-12-7 11:34 发表
我发在CU的BLOG上了,但是文章里的回车都没了,为什么?


一次性口令OPIE(FreeBSD)

口令用久了,就可能泄露,所以就有了一次性口令,用完就没用了。有没有想过强化一下你的ssh登陆呢?
原理:服务器维护 ...

看起来不错啊
作者: eliumao    时间: 2005-12-07 17:04
原帖由 剑心通明 于 2005-12-7 16:31 发表

看起来不错啊

谢谢。
系统配置好后,好久也不用调整,FreeBSD真是够呛。
所以把自己的配置写下来,以免以后忘了。呵呵!
作者: qufo    时间: 2005-12-08 00:27
Mark.改天试一下。
作者: 剑心通明    时间: 2005-12-08 08:27
忘记加精华了
作者: eliumao    时间: 2005-12-08 08:30
原帖由 剑心通明 于 2005-12-8 08:27 发表
忘记加精华了


来得及,完全来得及!!!
作者: bb8848    时间: 2005-12-08 09:47
原帖由 eliumao 于 2005-12-7 15:56 发表

谢谢让我知道了Deep Freeze,长见识了。不过好象那是要花钱的吧!

不要錢的也有啊,lan裡裝一個還是有些幫助的。
作者: 海鹰    时间: 2005-12-08 10:28
看样子不错。不过我用ssh+密钥。不用系统帐号的密码,只要公钥对密钥

1.GIF (26.59 KB, 下载次数: 63)

1.GIF

2.GIF (24.79 KB, 下载次数: 62)

2.GIF

作者: bb8848    时间: 2005-12-08 10:39
花花這個在那裡搞的。也太多了吧
作者: norman_lu    时间: 2005-12-08 11:16
我也是用ssh+public key登陆的,基本不用考虑被攻破的问题。
作者: 海鹰    时间: 2005-12-08 11:30
原帖由 bb8848 于 2005-12-8 10:39 发表
花花這個在那裡搞的。也太多了吧



why?
作者: qufo    时间: 2005-12-08 11:31
我更猛,干脆把22端口关了,把sshd服务禁用了。

出差的时候就打开
作者: 剑心通明    时间: 2005-12-08 11:43
原帖由 qufo 于 2005-12-8 11:31 发表
我更猛,干脆把22端口关了,把sshd服务禁用了。

出差的时候就打开

人家一直扫描的,你刚打开,说不定就over了,至少得改成key吧
作者: 海鹰    时间: 2005-12-08 12:29
anti scan port
作者: eliumao    时间: 2005-12-08 14:10
证书方式确实已经比较安全了。但是考虑一下多证书的管理是多么的麻烦(麻烦有时意味着不安全)。而使用opiekey,只需要一个口令,何其简单。
第二,freebsd下的opie使用的是PAM,可以很方便的集成到如telnet,ftpd等使用pam的程序上去。
最后,我是很懒的。

to bb8848:抱歉我实在是看不懂您的文字。
作者: 海鹰    时间: 2005-12-08 17:15
证书好比是你的锁钥,安不安全,如何安全,完全是个人行为。这个opie麻烦的是,需要另一台“安全”的机器来运算口令

㴇冂
作者: eliumao    时间: 2005-12-08 17:47
原帖由 海鹰 于 2005-12-8 17:15 发表
证书好比是你的锁钥,安不安全,如何安全,完全是个人行为。这个opie麻烦的是,需要另一台“安全”的机器来运算口令

㴇冂

但是你只需要记住一个口令呀,比管理一大堆证书要方便吧!
不过“方便”这种感觉是个人行为,对我来说opie这样的方式是“方便”的。呵呵

作者: 海鹰    时间: 2005-12-08 19:28
一个证书,可以对应多台机器,多个不同的帐号。没必要生成很多的密钥。密钥的口令可以是空,多少位由你自己决定

想想,每次进系统,都要先到一台“安全”的机器上算口令,再上去真正的系统,不也很麻烦吗?
作者: norman_lu    时间: 2005-12-08 19:51
安全和方便是对立的
作者: eliumao    时间: 2005-12-09 08:23
原帖由 海鹰 于 2005-12-8 19:28 发表
一个证书,可以对应多台机器,多个不同的帐号。没必要生成很多的密钥。密钥的口令可以是空,多少位由你自己决定

想想,每次进系统,都要先到一台“安全”的机器上算口令,再上去真正的系统,不也很麻烦吗?


“密钥的口令可以是空”这样恐怕就不那么安全了吧!
““安全”的机器”对于无论哪种方式都是需要的,我特别提到了“安全的机器”使你产生了误解。对于证书的方式来说,证书必须存放在安全的机器上,或者在安全的机器上使用。


楼上那位说得有道理“安全和方便是对立的”,但是我更原意加上“在某种程度上”。呵呵

:wink:




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