Jedna od prvih stvari koje biste trebali napraviti nakon instalacije MySQL baze na server (ili na vaše privatno računalo) je postaviti lozinku za root korisnika. Naime, po defaultu nakon instalacije korisnik root (koji ima sve ovlasti za rad s bazom) nema podešenu lozinku što predstavlja ogroman sigurnosni rizik za server (dovoljno je da imate instaliran phpMyAdmin i već vam netko može raditi svašta po bazi).
Lozinku možete podesiti na dva načina - preko MySQL konzole i pomoću mysqladmin skripte. Ja ću vam ovdje pokazati kako podesiti lozinku pomoći MySQL konzole.
Prvo uđite u konzolu:
debian:~# mysql -u root
Ukoliko želite promijeniti root lozinku, dodajte i opciju -p (označava da se mora upisati lozinka). Nakon toga, u MySQL konzolu upišite slijedeće:
mysql> SET PASSWORD FOR root@localhost=PASSWORD('novalozinka‘);
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Iako piše 0 rows affected, lozinka je ipak podešena. Važno je da izvršite i naredbu FLUSH PRIVILEGES kako bi nova lozinka počela djelovati.
Posted in Korisno, MySQL, Tutoriali
Do sada ste se sigurno susreli sa FTP protokolom. To su sve one “stranice” (stranice pod navodnicima jer to ustvari nisu stranice nego lista direktorija na FTP serveru) kojima adresa počinje sa “ftp://” umjesto sa “http://”. Takvi serveri služe kako bi korisnici uploadali datoteke na njih i tako ih učinili dostupnima sebi i svima ostalima (naravno, ako ne zaštite lozinkom svoj polazni direktorij). Ono što neki ne znaju jest kako je ustvari lako napraviti jedan FTP server za po doma. Već sam napisao kako napraviti kućni Linux server ili kako za malo novaca kupiti jedan VPS server pa ukoliko nemate računalo na koje bi instalirali FTP server, počnite od jedne od tih tema.
Dakle, pretpostavimo da imate računalo kojem se može pristupiti preko Interneta (ili lokalne mreže ukoliiko ćete FTP server koristiti samo za lokalnu mrežu) i na kojem je instalirana Debian (ili Ubuntu) distribucija Linuxa. Prvi korak je sama instalacija FTP servera:
apt-get install proftpd
Pomoću ove naredbe instalirati ćemo jedan od popularnijih FTP servera - ProFTPD. Tijekom instalacije pojavit će se prozor u kojem vas pita da li hoćete standalone (samostalnu) instalaciju ili instalaciju preko inetd servera. Odaberite standalone instalaciju. Nakon završetka instalacije malo ćemo se pozabaviti konfiguracijskom datotekom.
vim /etc/proftpd/proftpd.conf
Većinu postavki možete ostaviti kakve su i po defaultu, a promijenite slijedeće:
# Da bi korisnicima onemogućili pristup datotekama izvan njihovog home direktorija
DefaultRoot ~
# Da bi sakrili verziju servera
IdentLookups off
ServerIdent on “Debian FTP server.”
# Naziv servera
ServerName “Naziv servera”
Na dnu konfiguracijske datoteke postoji cijeli blok koji je zakomentiran, a tiče se anonimnih korisnika. Ukoliko želite dozvoliti anonimnim korisnicima pregledavanje sadržaja, otkomentirajte cijeli blok.
I to je to. Imate instaliran i funkcionalan FTP server. Ukoliko će veliki broj korisnika imati svoj korisnički račun, pretražite na Google-u pojam “ProFTPD Virtual Users” jer po defaultu svi sistemski korisnici mogu zapisivati datoteke u svoj home direktorij. Dodavanje i brisanje korisnika radi se tako da se dodaju ili brišu sistemski korisnici.
Posted in Tutoriali
Svi znaju koliko je backup koristan i važan. Oni koji to ne znaju, saznati će čim prvi put izgube podatke, a oni koji znaju koliko je važan znaju i kolika je gnjavaža svako malo raditi backup. Zbog toga većina administratora ima skriptu koja automatski izrađuje backup jednom dnevno, jednom tjedno ili u nekom drugom periodu (u svakom slučaju, što češće to bolje). E sad, kod backupa je važno da se ne nalazi na istom mjestu gdje je računalo sa podacima koji se backupiraju jer uvijek može doći do požara ili nekog drugog problema zbog čega mogu nestati i backupirani podaci čak i ako se nalaze na drugom disku.
Zato bi bilo dobro da skripta koja radi sigurnosnu pohranu podataka odmah te podatke i iskopira na drugo računalo, a jedan od najsigurnijih načina je kopiranje preko SSH protokola. Budući da nije sigurno u skriptu upisati lozinku, bolje je izgenerirati privatni i javni ključ i preko njih vršiti autorizaciju bez lozinke. To se radi na slijedeći način.
- Generiramo privatni i javni ključ:
ssh-keygen -t dsa -f /home/<korisnik>/.ssh/id_dsa
Na upit da upišete passphrase, samo stisnite Enter.
Ovdje -t određuje tip enkripcije, a -f određuje gdje će se nalaziti datoteke sa privatnim i javnim ključevima.
- Nakon toga iskopiramo javni ključ na server na koji se ubuduće želimo spajati putem SSH protokola bez lozinke.
scp /home/<korisnik>/.ssh/id_dsa.pub <korisnik>@<udaljeni.server>:~/.ssh/id_dsa.pub
Ovaj put morate upisati lozinku.
- Sada se spojite na udaljeni server (još jednom, posljednji put upišite lozinku) i dodajte javni ključ u poznate javne ključeve na serveru.
ssh <korisnik>@<udaljeni.server>
cd ~/.ssh
cat id_dsa.pub >> authorized_keys2
chmod 640 authorized_keys2
rm id_dsa.pub
exit
- Na kraju, pokušajte se ponovo spojiti na udaljeni server. Trebali biste uspjeti bez da morate upisati lozinku.
Posted in Korisno, Tutoriali
Sigurno ste se do sad susretali sa web adresama tipa http://www.domena.hr/~imekorisnika/. To je standardna adresa za web prostor svakog korisnika na nekom web serveru. Svaka takva adresa ima DocumentRoot u direktoriju /home/<imekorisnika>/public_html. To je defaultna postavka Apache web servera.
No, mogli ste se susresti i sa puno “ljepšim” adresama tipa http://imekorisnika.domena.hr. Do takvog oblika web adrese vrlo je lako doći koristeći mod_rewrite modul Apache web servera.
Otvorite datoteku /etc/apache2/httpd.conf (ili /etc/apache2/apache2.conf) u nekom editoru teksta (ja ću, kao i uvijek do sad koristiti vim).
vim /etc/apache2/httpd.conf
U nju upišite slijedeće:
<VirtualHost 192.168.1.1:80>
ServerName korisnici.domena.hr
ServerAlias *.domena.hr
DocumentRoot /var/www/korisnici/
UseCanonicalName Off
RewriteEngine on
RewriteCond %{HTTP_host} ^([a-z0-9][-a-z0-9]+)\.domena\.hr\.?(:80)?$ [NC]
RewriteCond /home/%1/public_html -d
RewriteRule ^(.*) /home/%1/public_html/$1 [L]
</VirtualHost>
U prvoj liniji umjesto IP adrese 192.168.1.1 stavite IP adresu vašeg servera. Svugdje gdje piše domena.hr promijenite u vlastitu domenu i restartajte Apache.
/etc/init.d/apache2 restart
Ako na serveru imate nekog korisnika (ovo ne vrijedi za root korisnika), u njegovom home direktoriju kreirajte direktorij naziva public_html. Otvorite Internet preglednik i upišite http://imekorisnika.domena.hr i trebali biste vidjeti korisnikov web prostor.
U slučaju da prilikom restarta Apache servera dobijete grešku o liniji RewriteEngine on, vjerojatno nemate instaliran modul mod_rewrite. Upišite slijedeće:
a2enmod rewrite
Nakon toga ponovno napravite restart Apache servera i sve bi trebalo raditi kako treba.
Posted in Korisno, Tutoriali
Sigurno su se mnogi od vas do sad susreli sa .htaccess zaštitom neke Internet stranice ili nekog njenog dijela (npr. dijela stranice namijenjenog registriranim korisnicima). Radi se o zaštiti od strane Apache web servera i prilično je siguran način zaštite.
Logično, da bi ovo radilo morate imati instaliran Apache web server (poželjno verziju 2.x).
- Na serveru se pozicionirajte u direktorij koji želite zaštititi (u ovom primjeru ja ću zaštititi direktorij /home/korisnik/public_html):
cd /home/korisnik/public_html
- Kreirajte datoteku .htaccess u tom direktoriju i otvorite ju u nekom uređivaču teksta (ja ću koristiti vim):
vim .htaccess
- U datoteku upišite slijedeće:
AuthUserFile /usr/share/apache2/.htpasswds
AuthName "Naziv zasticenog direktorija"
AuthType Basic
Require valid-user
Prva linija označava putanju gdje će biti datotekama sa popisom korisnika i pripadajućih lozinki. Iako su lozinke kriptirane, preporuča se tu datoteku staviti u neki direktorij koji nije dostupan preko Weba. Najbolje da koristite direktorij kao i ja, dakle /usr/share/apache2, te da u njega stavite datoteku naziva .htpasswds (naziv može biti bilo koji).
Druga linija je naziv direktorija koji će biti zaštićen. Ovdje možete napisati bilo što.
Treća linija označava da će se koristiti uobičajeni tip zaštite.
Četvrta linija znači da će se za autorizaciju tražiti bilo koji korisnik zapisan u datoteci sa popisom korisnika i lozinki.
Nakon što ste sve prilagodili vlastitim potrebama, snimite datoteku i vratite se u shell.
- Pomoću programa htpasswd kreirajte datoteku sa novim korisnikom:
htpasswd -c /usr/share/apache2/.htpasswds nekikorisnik
Primijetite opciju -c koja se koristi samo onda kad datoteka sa popisom korisnika ne postoji. Ukoliko ste već prije kreirali datoteku i u njoj postoje neki korisnici, a želite dodati novog, naredba je ista, samo se ne koristi opcija -c.
Prvi argument je putanja do datoteke sa popisom korisnika (kod mene je to /usr/share/apache2/.htpasswds), a drugi je naziv korisnika (u mojem slučaju to je nekikorisnik).
Gotovi ste. Otvorite Internet preglednik i pokušajte otvoriti stranicu koju ste zaštitili. Ukoliko ste sve napravili kako treba, preglednik će vas tražiti da upišete korisničko ime i lozinku.
Na ovaj način vrlo jednostavno i efikasno možete zaštititi dijelove Internet stranice ili cijelu stranicu od neželjenih pogleda.
Posted in Tutoriali