Installare otpw su Ubuntu

2009
06.02

Mi sono imbattuto in un software molto simpatico per l’accesso a un qualsiasi servizio che usi PAM tramite una “one time password“.Password...

Ciò vuol dire che, se ad esempio volessi associare otpw a SSH, ogni volta che proverò a connettermi ad una shell remota sulla macchina dov’è installato otpw mio verrà presentato insieme al prompt di login un numero.
Quindi dovrò cercare il numero su di una tabella (precedentemente stampata) e digitare la password associata.
Ovviamente per generare la tabella dovrò lanciare il programma prima e creare una “master password” che verrà utilizzata anche nel processo di login, facendola precedere alla password “usa e getta”.

I vantaggi di questo sistema sono principalmente legati ai pericoli di sniffing delle password, dato che un eventuale attaccante, anche se intercettasse le password avrebbe solo uno dei due fattori di autenticazione, stesso ragionamento nel caso trovasse il nostro “foglietto” con le password: senza la master password non potrebbe farci nulla (e noi nel frattempo lo potremmo rigenerare senza sforzo).

Date le caratteristiche di sicurezza intrinseche di SSH (autenticazione cifrata) questo software è abbastanza inutile, se non siete paranoici come me, o se non vi va di sporcarvi un po’ le mani…anche se è sempre possibile associarlo a qualsiasi software che fornisca un’autenticazione basata su PAM, quindi in teoria anche al normale prompt dei comandi di Linux.

Ubuntu (versione server 8.10) fornisce i seguenti pacchetti (cercati tramite apt-cache search)

libotpw-dev - OTPW library development files and documentation
libpam-otpw - Use OTPW for PAM authentication
otpw-bin - OTPW programs for generating OTPW lists

Per fare il tutto abbiamo bisogno anche di una macchina (magari virtuale) su cui compilare modificare e ricompilare i pacchetti, dato che le versioni fornite dai repository di Ubuntu sono un po’ buggate.
Una macchina diversa ovviamente per non “sporcare” la macchina su cui lavoriamo, ma se a voi piace così…

Ecco le istruzioni per procedere. Per fare il tutto  ho usato una macchina virtuale con su Ubuntu Server 8.04 i386 aggiornata (apt-get update && apt-get upgrade) ma dovrebbe andare bene una Ubuntu qualsiasi.

    sudo apt-get install dpkg-dev
    sudo apt-get source libpam-otpw
  • Vengono scaricati alcuni files (i sorgenti di otpw, come potete immaginare) e creata una directory otpw-1.3
  • cd otpw-1.3/
    sudo vim debian/rules
  • Se non sapete usare vim (e non avete voglia di impararlo) potete usare un editor qualsiasi…
  • Andate a modificare la riga

    $(MAKE) CFLAGS="-fPIC -0 -ggdb -W -Wall" otpw-gen pam_otpw.so

    in

    $(MAKE) CFLAGS="-fPIC -0 -ggdb -W -Wall -fno-stack-protector" otpw-gen pam_otpw.so
  • Salvate e chiudete il file
  • sudo apt-get install devscripts build-essential fakeroot
  • Questi pacchetti sono indispensabili per la creazione degli archivi .deb
  • sudo apt-get install libpam0g-dev
    sudo apt-get build-dep otpw
  • Ora, se non siete usciti dalla cartella otpw-1.3/ basterà dare:
  • sudo debuild -us -uc
  • E aspettare quei pochi secondi in cui l’archivio viene creato. A questo punto, nella directory superiore saranno presenti i seguenti files:
    • libotpw-dev_1.3-2_i386.deb
    • libpam-otpw_1.3-2_i386.deb
    • otpw-bin_1.3-2_i386.deb
  • Assicuriamoci che siano i soli files .deb nella cartella e installiamoli con un:
  • sudo dpkg -i *.deb
  • Editiamo ora alcuni files:
  • sudo vim /etc/pam.d/sshd
  • Commentiamo le linee:

  • auth required pam_env.so
    auth required pam_env.so envfile=/etc/default/locale
    @include common-auth

  • E aggiungiamo all’inizio del file:

  • auth required pam_otpw.so
    session required pam_otpw.so

  • Che si occuperanno di gestire l’autenticazione di ssh con le one-time-password, sia dal punto di vista dell’autenticazione vera e propria che per la presentazione dei numeri da inserire al prompt.
    Salviamo e chiudiamo il file.
  • sudo vim /etc/ssh/sshd_config
  • E modifichiamo la riga:

  • ChallengeResponseAuthentication

  • da no a yes
  • Facciamo ripartire ssh con
  • sudo /etc/init.d/ssh restart
  • E finalmente generiamo il nostro bel file delle one-time-password con:
  • cd ~/ && otpw-gen > pass.txt
  • Verrà richiesta una master password che dovrà essere inserita ogni volta insieme alla password corrispondente al numero indicato al prompt, quindi scegliamone una sicura.
  • Finita la procedura ci ritroveremo con il nostro bel pass.txt all’interno della home che potremo stampare e tenere nel portafogli/taschino/cassetto. Il file dovrebbe assomigliare ad una cosa del genere:

  • OTPW list generated 2009-06-02 02:55 on virtubuntu
    000 wLFp yIHF  056 GQdV URNs  112 jc%Q p8xz  168 ICa4 iBej  224 GcK: cHUp
    001 Yx8C AtjN  057 aX:N wxFf  113 W=3m Gj9e  169 gDDX oMjn  225 Qsgs Y:gc
    002 Gpb+ iPrd  058 ALkd F9am  114 6wd+ :8aK  170 X+rP r7/d  226 Yau9 BVV/
    003 nhRO 5Rgd  059 Lre% smd/  115 V7/T G4pA  171 R7/5 EmoX  227 L=gK fCj7
    004 jc/n ehGv  060 GFUs sRLt  116 Jnnp FsI=  172 8Jy+ xq3s  228 QKCh rvA8
    005 HC/G =SX8  061 LMEC RCo:  117 +zbC Ukoi  173 do8b HIPH  229 sVPJ =UO+
    006 Sg5/ 95O9  062 vx2T K%mi  118 U8V+ o6UM  174 qmwu 7rjg  230 epJD DJ3P
    007 ELFp NMyM  063 8Zoo 8K%o  119 doVf FE3c  175 X7s+ BigA  231 mFBu TJir
    008 PWg7 vmKj  064 G3Nb 8yf8  120 H7Mt kLFx  176 JpXL 2Z=J  232 gbLd No53
    009 bYwY z5F7  065 oDa= O=jV  121 mMjy DWL5  177 q+9S gN:M  233 5aqJ d%Bw
    010 TXgN etJT  066 iJes He6w  122 =EA6 :WTK  178 9a+L CMFI  234 SJtk hwLv
    011 pf4P io9E  067 yDF4 hNiX  123 39wX 3bsP  179 =Yo6 vhAQ  235 ZQqI nTuV
    012 6/ae naJ%  068 VUY6 :7nd  124 Ls/N YZw+  180 /Gw/ :3UV  236 WwPB Ze3m
    013 irWa B826  069 9yBz M:yP  125 upqt 6x3Q  181 Pq%G t%Uf  237 3FLH bjTK
    014 R68: b6tx  070 dZnO KhD:  126 aPEh Ii8p  182 sLkt cwMz  238 buDU vvSV
    015 an4N yNfr  071 MP8p CuCx  127 CA=A STcj  183 F:hx Oih2  239 :qIV 7MiD
    016 b+Ij 59jc  072 Ch7k IItZ  128 JwwS Uz=G  184 JzXE ucaP  240 Lx38 gbuQ
    017 /B+h ena5  073 rJY= vXer  129 F3Dj xeMy  185 mbsH GVnQ  241 XdfK nXvD
    018 ObN= 7utt  074 DZCB F=eU  130 d6h= fuyK  186 S%Q3 A49Z  242 4N=n NBgd
    019 R%os YZZG  075 4e5Z Xvxv  131 gkde mrhn  187 IQ7o 6ve9  243 WK:L edS5
    020 TO4w iwEa  076 XYoO RsvR  132 jx2g gYdu  188 7fQ9 NeVB  244 9r4J Uup=
    021 to6g 7SVI  077 my5g AxcF  133 SXVz SVkB  189 VXMR Qpow  245 CvFd 6zFk
    022 Bgko ndVX  078 L/YG qOfa  134 :FER nLay  190 fvSC +Ckf  246 H2/T O6Jw
    023 pzCx aDPz  079 =9gH 6AFE  135 E7/3 WFH6  191 J6Pr 7Bog  247 B:BI k9u9
    024 o5Vm evU4  080 yAOL We%g  136 oAQP 5VpY  192 g7US fEAP  248 aMXQ RN/p
    025 9TQu Vf7b  081 5PNE dmU=  137 WA+r oZDF  193 UEkq TrgR  249 +Rus OhiM
    026 qt/+ jJFb  082 z+Dp :dW/  138 Q5kU gnne  194 /jZD 5GtN  250 iCep urrg
    027 LInn A=wi  083 EnDE SPKD  139 oeoK KoNZ  195 2jws K4Qa  251 /:5o ax:+
    028 Nco7 eGn5  084 Tfwd FQG3  140 :+T: RMa3  196 9+td JhCg  252 YNxV HN4p
    029 UuDS vqaA  085 55SR ZTOM  141 Xh/m cWAP  197 c7CY pTrb  253 mfqH avRT
    030 gNk2 %Wzb  086 7FnL Kfh:  142 99oE SUc9  198 ofbT :z2g  254 yzX: WwhG
    031 EL7o zWta  087 6W8V rE3A  143 YTJ9 kdJP  199 nS/5 D:Tz  255 MT7W 5jVI
    032 +iVK cvvV  088 BT4+ 3PxX  144 matD 2Vqq  200 YZku Ke5s  256 574R +xPr
    033 f5XA t5qX  089 PoUT EUcK  145 sKKC n+Lv  201 5gSG dLsY  257 OD5f Mmtr
    034 GpRG DoEu  090 dKGY yWhe  146 VYAc EOUZ  202 VB7w S5xD  258 SGR: Cf%:
    035 fJ=C Is/R  091 APVB 6VFz  147 Z6xM kBWO  203 ciCW UPTn  259 aVuf :LU7
    036 Z//o ced9  092 2F:s :8kB  148 trXZ fvcv  204 LwGj /Y5Q  260 Ao47 yXMY
    037 evgi Bxe:  093 bNm+ prv=  149 vq7% UN5r  205 wOvM UwmS  261 Vn6N 4s:q
    038 fnmo VyA9  094 Df%r x97g  150 :5Sw +eEo  206 pUX4 eWCp  262 szkL t+ZB
    039 Or6s oTsd  095 tYMW b7O7  151 fBqk a=DO  207 5Frz ke=L  263 2puf Hao7
    040 3qa= EHtR  096 on7E 8oF:  152 DWda rdpF  208 MjV/ hXW3  264 HO%K FD6W
    041 8=aH YZGp  097 QJz3 voAP  153 a8Ym wErB  209 7rYj uNF:  265 7f+s :r9i
    042 bO5h Exgv  098 PkjH BIBN  154 3Bo9 T:8b  210 QEDp oV=W  266 kXRA D7qq
    043 mBip eidY  099 +sYt 7zke  155 aJ4% kRzQ  211 k%EB F8gU  267 9QbB 58uv
    044 X:q= 6rvU  100 NKba %qa2  156 UMJY tQsR  212 hdV4 CWZu  268 v3tc eU8Q
    045 IXG5 SK3A  101 dW3X Zd+J  157 MzHN y4fI  213 g=%E xMPm  269 dFg2 jTGv
    046 V/LR mYTL  102 LOIv Kr9u  158 :T2J LUyq  214 /:Tt 6EkR  270 TBb+ tOYq
    047 kqUV bnk3  103 sfs7 6iLk  159 n7ha Thmy  215 Dh:S CJw2  271 BkUU eWF+
    048 vePE A4aY  104 x5n: SP=y  160 2n8X eBjO  216 diI6 9rPs  272 j=RG MCG7
    049 :KdX DVEZ  105 cXTg G3%t  161 6/VO 6Fw2  217 %IX8 omE+  273 /GVS fFto
    050 PiLD =MZF  106 cVQe %Acs  162 XB4h SxEB  218 z=ha Gx6s  274 shYV viR5
    051 AxM+ ddjk  107 N9nT :/5+  163 zWdN Jq4n  219 7zrE HB9U  275 /Orn ge5b
    052 Q69p xFRN  108 hCP7 9o/W  164 aYMm kUVg  220 jzye Ziox  276 bf9r =x52
    053 u+aA LAwN  109 j=P= eYjs  165 ZT4s cj5/  221 ttif orsF  277 Lp2= efxg
    054 n=u/ JUIs  110 gac+ vIxn  166 :o L2 oGRp  222 r+Kf CjBP  278 wmM2 T/dw
    055 JNKw ts3B  111 XYF8 ZIxh  167 jiK7 mVhC  223 T+9Q yY:n  279 NfLC VMdx
    !!! REMEMBER: Enter the PREFIX PASSWORD first !!!

  • Andando ora in ssh sulla macchina in questione noteremo un login simile a questo:

  • dirichlet@linuxbox:~$ ssh virtubuntu
    Password 061:

  • Inseriamo prima la master password e poi la password numero 61 senza gli spazi e avremo fatto il nostro bel login
  • Se si prova troppe volte a fare login via ssh in breve tempo, scatta l’autodifesa di otpw e vengono richieste tre password anzichè una, per evitare attacchi basati su questa tecnica. E’ interessante vedere che se una password non viene inserita o viene sbagliata, viene comunque richiesta alla sessione successiva
  • Se la nostra lista di password venisse compromessa basterebbe ridare sulla macchina il comando
  • otpw-gen >  file.txt

Per invalidare le vecchie password e averne di nuove

  • Per disattivare il servizio occorre invece dapprima disinstallare i pacchetti e poi riportare il files /etc/ssh/sshd_config e /etc/pam.d/sshd al loro status originale (un buon motivo per farne dei backup prima di modificarli)
  • Ovviamente potete modificare il pacchetto come descritto nella guida e quindi copiare i files .deb su un’altra macchina per installarli li in maniera “pulita”….
  • Ecco alcuni link utili:
Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • Identi.ca
  • LinkedIn
  • PDF
  • RSS
  • Twitter
  • FriendFeed
  • Slashdot

Post simili

Tags: , , , , , , ,

Your Reply

Spam Protection by WP-SpamFree