Sigurnost
- mahane na optsiiata FollowSymLinks
- ogranichavane na dostupa po IP
- ogranichavane na dostupa po ime/parola
- kombinirane na ogranichavaneto na
dostupa po IP i ime/parola
- dobaviane na prazen index.html fail
- zashto vsichko tova mozhe da e naprazno
Apache Web Server predlaga
mnozhestvo nachini da se zashtiti sudurzhanieto na dadena informatsiia na survura ot
natrapnitsi. Za da se razreshat za izpolzvane povecheto ot optsiite za uvelichavane
na sigurnosta v Apache te triabva da sa predvaritelno dobaveni v osnovniia konfiguratsionen
fail na survura httpd.conf. Imaite predvid, che ako pravite
promeni vuv tozi fail triabva da restartirate survura, za da se zaredi novata
konfiguratsiia. Tova stava chrez programata, namirashta se v bin
direktoriiata na survura - apachectl s optsiia restart. t.e
./apachectl restart
Ili s komandata:
killall -HUP httpd
Proverka za tova dali e pravilna konfiguratsiiata mozhete da napravite sus slednata
komanda:
./apachectl configtest
Optsiite v zavisimost ot tova kude sa napisani imat i razlichen obseg na deistvie.
Eto i niakoi ot po-vazhnite oblasti:
Ako sa napisani v .htaccess fail te sa validni samo za direktoriiata,
v koiato se namira failut i neinite poddirektorii
Ako sa napisani v httpd.conf faila, no sa zagradeni s <VirtualHost></VirtualHost>
tagove, sa validni samo za virtualen host
Ako sa napisani v httpd.conf faila, no sa zagradeni s <Directory></Directory>
tagove, sa validni samo za dadena direktoriia
Ako sa napisani v httpd.conf faila i ne sa zagradeni s niakakvi
tagove, togava vazhat za tseliiat survur
Da zapochvame s konfiguriraneto.
- mahane na optsiiata FollowSymLinks
Ako ne e absolyutno nalozhitelno da prisustva tazi optsiia v
konfiguratsiiata na vashiiat survur ia mahnete. S neia mozhete da imate samo problemi.
Ili po-dobre ia razreshete samo za direktoriiata, za koiato tova e absolyutno nalozhitelno.
- ogranichavane na dostupa po IP
Za da mozhete da ogranichavate dostupa po IP triabva v http.conf
faila da e zadadena slednata direktiva:
AllowOverride Limit
Ako ia zagradite v tagove, tia shte vazhi SAMO za konkretniia
virtualen host. Ako ia zagradite v tia shte vazhi SAMO za
direktoriiata, koiato e posochena v tagovete i vsichki neini poddirektorii. Mozhe
bi veche se doseshtate, che ako ne ia ogradite v niakakvi tagove tia shte vazhi za tseliia
survur.
Ako iskate da zashtitite dadena direktoriia da e dostupna samo za niakoe IP dobavete
faila .htaccess v direktoriiata, koiato iskate da zashtitite i napishete slednoto:
order deny, allow
deny from all
allow from IP_TO
kato zamenite IP_TO s IP adresa, koito iskate da ima dostup do tazi direktoriia.
Ako iskate, naprimer, samo IP nomer 212.0.0.1 da dostupva direktoriiata, napishete:
order deny, allow
deny from all
allow from 212.0.0.1
Osven pulen IP adres, mozhete da zadadete chastichen IP adres. Ako zadadete sledniia
IP adres 212.0.0. -- tova znachi, che vsichki IP adresi, koito zapochvat s IP 212.0.0.
mogat da dostupiat direktoriiata. Primeri za IP adresi, koito izpulniavat tova
uslovie sa: 212.0.0.12, 212.0.0.23.
Ot goliama vazhnost e direktivata order. Tia instruktira Apache-to
za reda, po koito triabva da se obrabotiat deny i allow
direktivite. Vizhte rezultatite ot slednite primeri:
order deny, allow
deny from all
allow from 212.0.0.1
Rezultat: samo IP adres 212.0.0.1 ima
dostup do tazi direktoriia,
order allow, deny
deny from all
allow from 212.0.0.1
Rezultat: nikoe IP niama dostup do tazi
direktoriia.
Zashto se poluchi taka pri vtoriia primer? Tochno zaradi direktivata order.
Purvo razreshihme na IP adres 212.0.0.1 da ima dostup do direktoriiata,
sled koeto zabranihme na vsichki IP-ta da imat dostup. V rezultat nikoe IP niama
dostup. Ne e vazhna posledovatelnosta na redovete, zapochvashti s deny from
i allow from; vazhna e posledovatelnostta, zadadena
s direktivata order.
- ogranichavane na dostupa po
ime/parola
Dosta chesto se sluchva da iskame da ogranichim dostupa do niakoia direktoriia s
ime i parola, a ne po IP. Za tazi tsel triabva v konfiguratsionniia fail na Apache
survura http.conf da e zadadena slednata direktiva:
AllowOverride AuthConfig
Neka probvame da zashtitim nashata direktoriia data. Iskame tia
da e dostupna samo s ime i parola. Za tazi tsel v direktoriiata data
triabva da suzdadem dva faila - .htaccess i .htpasswd. Vuv .htpasswd failut shte
suhraniavame potrebitelskite imena i parolite. V .htaccess faila imame slednite
redove:
AuthName "Zashtitena Direktoriq"
AuthType Basic
AuthUserFile .htpasswd
require valid-user
Neka da razgledame edin primeren .hpasswd fail:
test:dsSDvxc32440ztb5vmb
user:c3244dsSDb5vvx0ztYz
Vseki red predstavliava ime na potrebitel(test), dve tochki(:), i kriptiranata
Vi parola(dsSDvxc32440ztb5vmb). Tozi fail e tekstovi, kakto
i .htaccess failut, no parolata, koiato zadavate triabva da e kriptirana. Koeto
znachi, che ako napishete sledniia red:
user1:nopassword
potrebitel user1 niama da mozhe da vleze s parola nopassword.
Ima i nachin da napravite taka, che Apache-to da ne iska parolite da
sa kriptirani, no nie govorim tuk za tova kak da napravim sistemata po-sigurna,
a ne po-nesigurna.
Kak da dobavite potrebitel s parola kum .htpasswd
fail?
Nachin 1: Mozhe da go napravite s
programkata htpasswd koiato se namira v bin
direktoriiata na Apache. Eto i edin primer:
/www/bin/htpasswd -b /www/htdocs/user1/data/.htpasswd user password
Programata /www/bin/htpasswd suzdava
vuv faila /www/htdocs/user1/data/.htpasswd potrebitel
s ime user i parola password.
Nachin 2: Drug nachin e da izpolzvate standartnata crypt
funktsiia na vashiia Linux. Mozhete da napishete slednoto neshto ot komandniia red:
perl -e "print
crypt(\"password\",\"sl\")"
Rezultatut e "sl0N1Oj5JS0pw" - koeto e kriptiranata parola password.
Ot Vas se iziskva da redaktirate faila .htpasswd i da dobavite sledniia red:
user:sl0N1Oj5JS0pw
Sega veche imame potrebitel s ime user i
parola password
- kombinirane na ogranichavaneto
na dostupa po IP i ime/parola
Ako iskate da ogranichite dostupa do dadena direktoriia kombinirano po IP i parola,
mozhete da dobavite slednoto vuv Vashiia .htaccess fail:
order deny, allow
deny from all
allow from 212.0.0.
AuthName "Zashtitena Direktoriq"
AuthType Basic
AuthUserFile .htpasswd
require valid-user
Kato predi tova vuv Vashiia httpd.conf fail ste dobavili sledniia red:
AllowOverride AuthConfig Limit
Po tozi nachin pozvoliavate samo na potrebiteli s IP adresi, zapochvashti s 212.0.0.
i imashti potrebitelsko ime i parola v .htpasswd faila da dostupvat zashtitenata
direktoriia.
- dobaviane na prazen index.html fail
Za da se chustvame oshte po-sigurni mozhem da dobavim i fail s ime index.html,
sus slednoto sudurzhanie:
Po tozi nachin vseki, koito uspee da vleze v zashtitenata direktoriia triabva da
znae tochno imeto na faila, koito iska da vidi.
- zashto vsichko tova mozhe da e naprazno?
Ochakvaite produlzhenieto na statiiata, za da razberete zashto vsichki tezi predpazni
merki mogat da se okazhat naprazni.