zmena hesla pro POP3 uzivatele skrz https
Milan Sorm
xsorm na informatics.muni.cz
Pátek Červenec 3 21:51:26 CEST 1998
tak jsem to dodelal jakz takz, ale neni to jeste uplne vono a nema to
README. tady shrnu jak to chodi.
Musite si rozchodit Apache se SSL (mozna uz je clane v Linuxovych novinach,
pokud ne, kdysi jsem jej chtel spat, treba to pres prazdniny udelam).
Potom si zalozte nekde adresar
napr. /adm/web/debug (to sem mel ja)
tam dejte wrapper.c, ktery najdete na
ftp://ftp.gvid.cz/pub/users/popelnik/chpasswd
do podadresare sec dejte to, co najdete tamtez v podadresari sec.
pak je treba prelozit wrapper:
gcc -o index.cgi wrapper.c
(nejprve je vhodne dovnitr napsat, pod jakym uid bezi web server a cestu k
adresari sec).
prava vyslednych souboru a adresaru:
drwxr-xr-x 3 root root 1024 Jul 3 21:21 .
drwx--x--x 5 admin admin 1024 Jul 3 21:21 ..
-rws--x--x 1 root root 3040 Jul 3 21:15 index.cgi
drwxr-xr-x 2 root root 1024 Jul 3 21:13 sec
-rw------- 1 root root 449 Jul 3 21:15 wrapper.c
a v sec:
-rwx------ 1 root root 2297 Jul 3 21:37 chpasswd.pl
potom do /etc zalozte adresar users (bohuzel zatim s pravy rw-r--r--,
protoze z nej musi cist apache hesla (to nevim jak obejit).
do nej napisete vsechny uzivatele, kteri si takto smeji menit heslo ve
formatu:
popelnik:Xg56KDjfkjd5 (tj. zasifrovane heslo z /etc/shadow)
clovek:tuogvjUJFlfh apod.
na zaver pridejte nekam do webserveru definici virtualniho www:
<VirtualHost www.gvid.cz:443>
ServerAdmin popelnik na gvid.cz
DocumentRoot /adm/web/debug
ServerName www.gvid.cz
UserDir
ErrorLog logs/debug-adm-error_log
TransferLog logs/debug-adm-access_log
ScoreBoardFile logs/debug-apache_status
SSLCACertificatePath /www/conf
SSLCACertificateFile /www/conf/httpsd.pem
SSLCertificateFile /www/conf/httpsd.pem
SSLVerifyClient 0
SSLVerifyDepth 10
SSLFakeBasicAuth
SSLLogFile /www/logs/ssl.log
<Directory /adm/web/debug>
Options ExecCGI Includes
AllowOverride All
<Limit GET POST>
order allow,deny
allow from all
</Limit>
</Directory>
<Location />
AuthName Debug
AuthType Basic
AuthUserFile /etc/users
require valid-user
SourceCzechCodePageLocal CISO8859-2
</Location>
</VirtualHost>
tady je to samozrejme s mod_czechem a s mod_ssl direktivami, ale to se da
snadno doladit podle hlaseni web serveru na konkretni pripad.
potom uz se lze kochat z https://www.gvid.cz/, kde beha zmena hesla. design
formulare lze modifikovat v perl skriptu v adresari sec. bude nutne
zainstalovat modul CGI.pm, ktery je na CPANu.
no a na zaver:
tento skript cte a modifikuje hesla v souboru /etc/users.
navic je nutne si dopsat zmenu pro /etc/passwd.
je nekolik moznosti:
1. doplnit si kod do chpasswd.pl, kde ve funkci save_password navic heslo
ulozi i do /etc/passwd a zavola pwconv (konverze do /etc/shadow)
2. totez ale uklada primo do /etc/shadow
3. me prijde lepsi napsat si pro crona demona, ktery jednou v noci nacte
/etc/shadow, opravi si hesla (v pameti) podle /etc/users a zapise znovu do
/etc/shadow.
BUGS:
- prava /etc/users
- nenapsal jsem skript pro konverzi do shadow, coz je ovsem trivialni a je
moznych nekolik reseni (kdyby nekdo nevedel, poslu mu skriptik v Perlu)
- nutnost mit Perl, CGI, Apache, SSL
- nelze uzit NFS, protoze se uziva flock zamykani souboru
- muze dojit ke kolizi, pokud dva uzivatele soucasne ukladaji zmenu hesla
(mala sance dle mych zkusenosti).
pripadne dotazy rad zodpovim,
milan sorm
--
--------------------------------------------------------------------
Milan Sorm (aka Popelnik) tel/fax/zazn: +420 5 46211083/46211311
office: B205 - FI MU Brno e-mail: sorm na fi.muni.cz
telefon: +420 5 41512348 web: http://www.fi.muni.cz/~sorm/
Další informace o konferenci Linux