Serija RHCSA: Instaliranje, konfiguriranje i osiguranje web i FTP servera - 9. dio
Web server (također poznat kao HTTP server) je usluga koja upravlja sadržajem (najčešće web stranicama, ali i drugim vrstama dokumenata) do klijenta u mreži.
FTP server je jedan od najstarijih i najčešće korištenih resursa (čak i do danas) za omogućavanje datoteka dostupnim klijentima na mreži u slučajevima kada nije potrebna autentifikacija jer FTP koristi korisničko ime i lozinkabez enkripcije.
Web server dostupan u RHEL 7 je verzija 2.4 Apache HTTP servera. Što se tiče FTP servera, koristićemo Very Secure Ftp Daemon (aka vsftpd) za uspostavljanje veza zaštićenih TLS-om.
U ovom članku ćemo objasniti kako instalirati, konfigurirati i osigurati web server i FTP server u RHEL 7.
Instalacija Apache i FTP servera
U ovom vodiču ćemo koristiti RHEL 7 server sa statičkom IP adresom 192.168.0.18/24. Da instalirate Apache i VSFTPD, pokrenite sljedeću naredbu:
yum update && yum install httpd vsftpd
Kada se instalacija završi, obje usluge će biti u početku onemogućene, tako da ih za sada moramo ručno pokrenuti i omogućiti im da automatski počnu sa sljedećim pokretanjem:
systemctl start httpd
systemctl enable httpd
systemctl start vsftpd
systemctl enable vsftpd
Osim toga, moramo otvoriti portove 80 i 21, gdje web i ftp demoni slušaju, respektivno, kako bismo omogućili pristup tim uslugama izvana:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-service=ftp --permanent
firewall-cmd --reload
Da biste potvrdili da web server radi ispravno, pokrenite pretraživač i unesite IP servera. Trebali biste vidjeti stranicu za testiranje:
Što se tiče ftp servera, morat ćemo ga dodatno konfigurirati, što ćemo učiniti za minut, prije nego što potvrdimo da radi kako se očekuje.
Konfiguriranje i osiguranje Apache web servera
Glavna konfiguracijska datoteka za Apache nalazi se u /etc/httpd/conf/httpd.conf
, ali se može oslanjati na druge datoteke prisutne unutar /etc/httpd /conf.d
.
Iako bi zadana konfiguracija trebala biti dovoljna za većinu slučajeva, dobra je ideja upoznati se sa svim dostupnim opcijama kako je opisano u službenoj dokumentaciji.
Kao i uvijek, napravite sigurnosnu kopiju glavne konfiguracijske datoteke prije nego što je uredite:
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.$(date +%Y%m%d)
Zatim ga otvorite u željenom uređivaču teksta i potražite sljedeće varijable:
- ServerRoot: direktorij u kojem se čuvaju serverske konfiguracije, greške i datoteke evidencije.
- Slušaj: nalaže Apacheu da sluša na određenoj IP adresi i/ili portovima.
- Uključi: omogućava uključivanje drugih konfiguracijskih fajlova, koji moraju postojati. U suprotnom, server neće uspjeti, za razliku od direktive IncludeOptional, koja se tiho zanemaruje ako specificirane konfiguracijske datoteke ne postoje.
- Korisnik i grupa: ime korisnika/grupe za pokretanje httpd usluge.
- DocumentRoot: Direktorij iz kojeg će Apache posluživati vaše dokumente. Prema zadanim postavkama, svi zahtjevi se preuzimaju iz ovog direktorija, ali se mogu koristiti simboličke veze i pseudonimi za upućivanje na druge lokacije.
- ServerName: ova direktiva postavlja ime hosta (ili IP adresu) i port koji server koristi za identifikaciju.
Prva sigurnosna mjera sastojat će se od kreiranja namjenskog korisnika i grupe (tj. tecmint/tecmint) za pokretanje web servera kao i promjene zadanog porta na viši (9000u ovom slučaju):
ServerRoot "/etc/httpd"
Listen 192.168.0.18:9000
User tecmint
Group tecmint
DocumentRoot "/var/www/html"
ServerName 192.168.0.18:9000
Možete testirati konfiguracijsku datoteku sa.
apachectl configtest
i ako je sve OK, ponovo pokrenite web server.
systemctl restart httpd
i ne zaboravite omogućiti novi port (i onemogućiti stari) u firewall-u:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload
Imajte na umu da, zbog pravila SELinux, možete koristiti samo portove koje vraća
semanage port -l | grep -w '^http_port_t'
za web server.
Ako želite koristiti drugi port (tj. TCP port 8100), morat ćete ga dodati u SELinux kontekst porta za uslugu httpd:
semanage port -a -t http_port_t -p tcp 8100
Da dodatno osigurate svoju instalaciju Apachea, slijedite ove korake:
1. Korisnik Apache radi jer ne bi trebao imati pristup ljusci:
usermod -s /sbin/nologin tecmint
2. Onemogućite popis direktorija kako biste spriječili preglednik da prikaže sadržaj direktorija ako u tom direktoriju ne postoji index.html.
Uredite /etc/httpd/conf/httpd.conf
(i konfiguracijske datoteke za virtuelne hostove, ako ih ima) i uvjerite se da je direktiva Opcije, i na vrhu i na na nivoima bloka direktorija, postavljeno je na Ništa:
Options None
3. Sakrij informacije o web serveru i operativnom sistemu u HTTP odgovorima. Uredite /etc/httpd/conf/httpd.conf
na sljedeći način:
ServerTokens Prod
ServerSignature Off
Sada ste spremni za početak posluživanja sadržaja iz vašeg /var/www/html direktorija.
Konfiguriranje i osiguranje FTP servera
Kao iu slučaju Apachea, glavna konfiguracijska datoteka za Vsftpd (/etc/vsftpd/vsftpd.conf)
je dobro komentirana i dok bi zadana konfiguracija trebala biti dovoljna za većinu aplikacija , trebalo bi da se upoznate sa dokumentacijom i man stranicom (man vsftpd.conf)
kako biste efikasnije radili sa ftp serverom (ne mogu to dovoljno naglasiti!).
U našem slučaju, ovo su direktive koje se koriste:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
Korištenjem chroot_local_user=YES
, lokalni korisnici će (po defaultu) biti smješteni u chroot'ed zatvor u svom kućnom direktoriju odmah nakon prijave. To znači da lokalni korisnici neće moći pristupiti datotekama izvan odgovarajućih kućnih direktorija.
Konačno, da biste omogućili ftp-u da čita datoteke u korisničkom početnom direktoriju, postavite sljedeći SELinux boolean:
setsebool -P ftp_home_dir on
Sada se možete povezati na ftp server koristeći klijent kao što je Filezilla:
Imajte na umu da /var/log/xferlog
dnevnik bilježi preuzimanja i otpremanja, što je u skladu s gornjim popisom direktorija:
Pročitajte također: Ograničite FTP mrežni propusni opseg koji koriste aplikacije u Linux sistemu pomoću Trickle
Sažetak
U ovom vodiču smo objasnili kako postaviti web i ftp server. Zbog opsežnosti teme, nije moguće pokriti sve aspekte ovih tema (npr. virtuelni web hostovi). Stoga vam preporučujem da pogledate i druge odlične članke na ovoj web stranici o Apacheu.