Пакета, който се инсталира в Дебиан е opie-server (ще се инсталират и следните две зависимости: libpam-opie и opie-client), като съкращението е "one time passwords in everything".
OPIE може да се инсталира и приложи към всичко, примерно Използване на OPIE за времено отваряне на портове, но аз лично ще ви покажа как се ползва при ssh
След като сме инсталирали нужните пакети, трябва да:
1. Настройм sshd да позволява логване само на opie потребители. Това става като добавите pam_opie.so в /etc/pam.d/sshd и забраните unix логина (логване с истинска парола:)), т.е.
- добавяте pam_opie.so и трябва да получите следното:
- Код за потвърждение: Избери целия код
[root: ~]# grep ^auth /etc/pam.d/sshd
auth required pam_env.so # [1]
auth required pam_env.so envfile=/etc/default/locale
auth required pam_opie.so
[root: ~]#
- закоментирате (слагате # пред) @include common-auth
- Код за потвърждение: Избери целия код
[root: ~]# grep common-auth /etc/pam.d/sshd
#@include common-auth
[root: ~]#
2. Задаваме "ChallengeResponseAuthentication" да е yes в конфига
- Код за потвърждение: Избери целия код
[root ~]# grep ChallengeResponseAuthentication /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
[root ~]#
и рестартираме ssh сървиса (/etc/init.d/ssh restart)
Все още не сме готови за да се логнем
Стартираме opiepassword за да генреираме парола (pass phrase) ... не знам как се превежда най-точно. Благодарение на тази фраза (парола) и OPI challenge-a ще се генерира временната ви парола, следтователно гледайте да не забравите, какво сте написали (минималната дължина е 10 символа).
- Код за потвърждение: Избери целия код
[gaara ~]$ opiepasswd -c
Adding spectra:
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 phrase:
Again new secret pass phrase:
ID spectra OTP key is 499 cc4700
HAVE COOK LOLA AIRY NEIL ROAM
[gaara ~]$
Важно: Горната команда е препоръчително да се изпълни от място с малък риск от пробив, т.е. в конзолата (параметъра -c), а не през remote връзка
От сървърна страна всичко е готово, но сега остава да разберем как да се логнем... за целта ни трбява opie calc (вижте в Ресурси) или opie-client (под линукс).
Аз ще използвам линукски тул, но и споменатите тулове в Ресурси ги проверих и работят, та... при опит за логване ще видите:
- Код за потвърждение: Избери целия код
[gaara: ~]$ ssh gaara@localhost
otp-md5 498 CC4700 ext, Response:
Интересната информация е otp-md5 498 CC4700, където:
- otp-md5 - е вида на кодирането
- 498 - пореден номер, който се мени при всяко успешно логване
- тъй нареченият seed CC4700
За да разберем каква ни е временната парола, то подаваме 498 CC4700 на opiekey, т.е.
- Код за потвърждение: Избери целия код
[gaara: ~]$ opiekey 498 CC4700
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Sorry, but you don't seem to be on the console or a secure terminal.
Warning: Continuing could disclose your secret pass phrase to an attacker!
Enter secret pass phrase:
RID BIB HOOT BOOM ROAR UN
[gaara: ~]$
Както се вижда паролата ми е RID BIB HOOT BOOM ROAR UN.
Затварям ssh сесията и пускам нова.... резултата:
- Код за потвърждение: Избери целия код
[gaara: ~]$ ssh gaara@localhost
otp-md5 497 CC4700 ext, Response:
Съответният ключ: bad hose act egg sit lye (ходи го разбери )
Ако искате да видите, какви ще бъдат следващите 5 пароли, то изпълнете:
- Код за потвърждение: Избери целия код
[gaara: ~]$ opiekey -n 5 497 CC4700
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Sorry, but you don't seem to be on the console or a secure terminal.
Warning: Continuing could disclose your secret pass phrase to an attacker!
Enter secret pass phrase:
493: SOCK PAM FEST JO TO JUDE
494: JOIN NOVA MASH HAAG LILA GRAY
495: CLOG SLEW ALVA CLAM LOLA NORM
496: SEAL GERM US SAM CART BUY
497: BAD HOSE ACT EGG SIT LYE
[gaara: ~]$
Ресурси:
OPIE S/Key Calculator for Microsoft Windows
JavaScript OTP Calculator