13 Suġġerimenti dwar is-Sigurtà u l-Ebusija ta' Apache Web Server
Aħna lkoll familjari ħafna mas-server tal-web Apache, huwa server tal-web popolari ħafna biex jospita l-fajls tal-web tiegħek jew il-websajt tiegħek fuq il-web. Hawn huma xi links li jistgħu jgħinuk tikkonfigura s-server tal-web Apache fuq il-kaxxa Linux tiegħek.
- Installa Apache Web Server
- Imwaqqaf il-Websajt Tiegħek fil-Kaxxa tal-Linux Tiegħek
Hawnhekk f'dan it-tutorja, ser inkopri xi suġġerimenti ewlenin biex niżgura s-server tal-web tiegħek. Qabel ma tapplika dawn il-bidliet fis-server tal-web tiegħek, għandu jkollok xi punti bażiċi tas-server Apache.
- Direttorju ta' l-għerq tad-dokument: /var/www/html jew /var/www
- Fajl tal-Konfigurazzjoni Prinċipali: /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora) u /etc/apache2/apache2.conf (Debian/Ubuntu).
- Port HTTP default: 80 TCP
- Port HTTPS default: 443 TCP
- Ittestja l-issettjar u s-sintassi tal-fajl tal-Konfigurazzjoni tiegħek: httpd -t
- Aċċess fajls tar-Reġistri tal-Web Server: /var/log/httpd/access_log
- Fajls ta' log ta' Żbalji ta' Web Server: /var/log/httpd/error_log
1. Kif taħbi l-Verżjoni Apache u l-Identità tal-OS minn Żbalji
Meta tinstalla Apache b'sors jew kwalunkwe installaturi ta' pakketti oħra bħal yum, turi l-verżjoni tas-server tal-web Apache tiegħek installat fuq is-server tiegħek bl-isem tas-sistema operattiva tas-server tiegħek fi Żbalji. Juri wkoll l-informazzjoni dwar il-moduli Apache installati fis-server tiegħek.
Fl-istampa ta 'hawn fuq, tista' tara li Apache qed juri l-verżjoni tiegħu bl-OS installat fis-server tiegħek. Dan jista 'jkun theddida kbira għas-sigurtà għas-server tal-web tiegħek kif ukoll għall-kaxxa Linux tiegħek ukoll. Biex jiġi evitat li Apache ma jurix din l-informazzjoni lid-dinja, għandna bżonn nagħmlu xi bidliet fil-fajl tal-konfigurazzjoni prinċipali ta 'Apache.
Iftaħ il-fajl tal-konfigurazzjoni bl-editur tal-vim u fittex ServerSignature, li huwa awtomatikament Fuq. Għandna bżonn li Off dawn il-firma tas-server u t-tieni linja ServerTokens Prod tgħid Apache biex jirritorna biss Apache bħala prodott fl-intestatura tar-rispons tas-server fuq it-talba ta 'kull paġna, Huwa jrażżnu l-OS, l-informazzjoni tal-verżjoni maġġuri u minuri.
# vim /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora) # vim /etc/apache2/apache2.conf (Debian/Ubuntu)
ServerSignature Off ServerTokens Prod
# service httpd restart (RHEL/CentOS/Fedora) # service apache2 restart (Debian/Ubuntu)
2. Iddiżattiva l-Elenkar tad-Direttorju
B'default Apache jelenka l-kontenut kollu tad-direttorju tal-għerq tad-Dokument fin-nuqqas ta 'fajl indiċi. Jekk jogħġbok ara l-immaġni hawn taħt.
Nistgħu itfi l-elenkar tad-direttorju billi nużaw id-direttiva tal-Għażliet fil-fajl tal-konfigurazzjoni għal direttorju speċifiku. Għal dan irridu nagħmlu dħul fil-fajl httpd.conf jew apache2.conf.
<Directory /var/www/html> Options -Indexes </Directory>
3. Żomm aġġorna Apache Regolarment
Il-komunità tal-iżviluppaturi Apache qed taħdem kontinwament fuq kwistjonijiet ta 'sigurtà u tirrilaxxa l-verżjoni aġġornata tagħha b'għażliet ta' sigurtà ġodda. Għalhekk huwa dejjem rakkomandat li tuża l-aħħar verżjoni ta 'Apache bħala server tal-web tiegħek.
Biex tiċċekkja l-verżjoni Apache: Tista 'tiċċekkja l-verżjoni attwali tiegħek bil-kmand httpd -v.
# httpd -v Server version: Apache/2.2.15 (Unix) Server built: Aug 13 2013 17:29:28
Tista 'taġġorna l-verżjoni tiegħek bil-kmand li ġej.
# yum update httpd # apt-get install apache2
Huwa rakkomandat ukoll li żżomm il-kernel u l-OS tiegħek aġġornati għall-aħħar rilaxxi stabbli jekk m'intix qed tħaddem xi applikazzjoni speċifika li taħdem biss fuq OS jew Kernel speċifiċi.
4. Iddiżattiva Moduli bla bżonn
Dejjem huwa tajjeb li tnaqqas iċ-ċansijiet li tkun vittma ta 'kwalunkwe attakk fuq il-web. Għalhekk huwa rakkomandat li tiddiżattiva dawk il-moduli kollha li mhumiex qed jintużaw bħalissa. Tista' telenka l-moduli kollha kkumpilati tas-server tal-web, billi tuża l-kmand li ġej.
# grep LoadModule /etc/httpd/conf/httpd.conf # have to place corresponding `LoadModule' lines at this location so the # LoadModule foo_module modules/mod_foo.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule ldap_module modules/mod_ldap.so LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so LoadModule ext_filter_module modules/mod_ext_filter.so ....
Hawn fuq hemm il-lista ta 'moduli li huma attivati awtomatikament iżda ħafna drabi mhux meħtieġa: mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex. Biex tiddiżattiva l-modulu partikolari, tista' daħħal \# fil-bidu ta' dik il-linja u terġa' tibda s-servizz.
5. Mexxi Apache bħala Utent u Grupp separati
B'installazzjoni default Apache imexxi l-proċess tiegħu bl-utent ħadd jew daemon. Għal raġunijiet ta' sigurtà huwa rakkomandat li tħaddem Apache fil-kont mhux privileġġjat tiegħu stess. Per eżempju: http-web.
# groupadd http-web # useradd -d /var/www/ -g http-web -s /bin/nologin http-web
Issa trid tgħid lil Apache biex jaħdem ma' dan l-utent ġdid u biex nagħmlu dan, irridu nagħmlu dħul f' /etc/httpd/conf/httpd.conf u nibdew mill-ġdid is-servizz.
Iftaħ /etc/httpd/conf/httpd.conf bl-editur vim u fittex il-kelma prinċipali Utent u Grupp u hemm ikollok bżonn tispeċifika l-isem tal-utent u l-isem tal-grupp li tuża.
User http-web Group http-web
6. Uża Ħalli u Tiċħad biex tirrestrinġi l-aċċess għad-Diretorji
Nistgħu nirrestrinġu l-aċċess għad-direttorji b'għażliet Ħalli u Ċaħda fil-fajl httpd.conf. Hawnhekk f'dan l-eżempju, se nkunu qed niżguraw id-direttorju tal-għeruq, għal dan billi nissettjaw dan li ġej fil-fajl httpd.conf.
<Directory /> Options None Order deny,allow Deny from all </Directory>
- Għażliet “Xejn” – Din l-għażla ma tippermettix lill-utenti jattivaw xi karatteristiċi fakultattivi.
- Ordni ċaħda, tippermetti – Din hija l-ordni li fiha se jiġu pproċessati d-direttivi Iċħad u Ħalli. Hawnhekk se tiċħad l-ewwel u jħalli wara.
- Iċħad minn kulħadd – Dan se jiċħad it-talba minn kulħadd għad-direttorju tal-għeruq, ħadd ma jkun jista' jaċċessa d-direttorju tal-għeruq.
7. Uża Moduli mod_security u mod_evasive biex tassigura Apache
Dawn iż-żewġ moduli mod_security u mod_evasive huma moduli popolari ħafna ta 'Apache f'termini ta' sigurtà.
Fejn mod_security jaħdem bħala firewall għall-applikazzjonijiet tal-web tagħna u jippermettilna nissorveljaw it-traffiku fuq bażi ta' ħin reali. Jgħinna wkoll biex nipproteġu l-websajts jew is-server tal-web tagħna minn attakki ta’ forza bruta. Tista 'sempliċement tinstalla mod_security fuq is-server tiegħek bl-għajnuna tal-installaturi tal-pakketti default tiegħek.
$ sudo apt-get install libapache2-modsecurity $ sudo a2enmod mod-security $ sudo /etc/init.d/apache2 force-reload
# yum install mod_security # /etc/init.d/httpd restart
mod_evasive jaħdem b'mod effiċjenti ħafna, tieħu talba waħda biex tipproċessaha u tipproċessaha tajjeb ħafna. Jipprevjeni attakki DDOS milli jagħmlu ħsara kbira. Din il-karatteristika ta 'mod_evasive tippermettilha timmaniġġja l-forza bruta HTTP u l-attakk Dos jew DDos. Dan il-modulu jiskopri attakki bi tliet metodi.
- Jekk daqstant talbiet jaslu fl-istess paġna fi ftit drabi kull sekonda.
- Jekk xi tifel jipproċessa jipprova jagħmel aktar minn 50 talba konkorrenti.
- Jekk xi IP għadu qed jipprova jagħmel talbiet ġodda meta jkun temporanjament fil-lista sewda.
mod_evasive jista 'jiġi installat direttament mis-sors. Hawnhekk, għandna gwida ta 'Installazzjoni u setup ta' dawn il-moduli li tgħinek twaqqaf dawn il-moduli Apache fil-kaxxa Linux tiegħek.
- Ipproteġi Apache billi tuża Mod_Security u Mod_evasive
8. Iddiżattiva s-segwitu ta' Apache ta' Links Simboliċi
B'mod awtomatiku Apache isegwi symlinks, nistgħu nitfi din il-karatteristika bid-direttiva FollowSymLinks with Options. U biex nagħmlu dan irridu nagħmlu d-dħul li ġej fil-fajl tal-konfigurazzjoni prinċipali.
Options -FollowSymLinks
U, jekk xi utent jew websajt partikolari jeħtieġ li FollowSymLinks jawtorizzaw, nistgħu sempliċement niktbu regola fil-fajl .htaccess minn dik il-websajt.
# Enable symbolic links Options +FollowSymLinks
Nota: Biex tippermetti regoli ta' kitba mill-ġdid ġewwa l-fajl .htaccess AllowOverride All għandu jkun preżenti fil-konfigurazzjoni ewlenija globalment.
9. Itfi Server Side Includes u CGI Execution
Nistgħu itfi server side includes (mod_include) u eżekuzzjoni CGI jekk mhux meħtieġ u biex nagħmlu hekk għandna bżonn li timmodifika l-fajl tal-konfigurazzjoni prinċipali.
Options -Includes Options -ExecCGI
Nistgħu nagħmlu dan għal direttorju partikolari wkoll bit-tikketta tad-Direttorju. Hawnhekk F'dan l-eżempju, qed nitfi l-eżekuzzjonijiet tal-fajls Jinkludi u Cgi għad-direttorju /var/www/html/web1.
<Directory "/var/www/html/web1"> Options -Includes -ExecCGI </Directory>
Hawn huma xi valuri oħra li jistgħu jinxtegħlu jew jitfi bid-direttiva tal-Għażliet.
- Għażliet Kollha – Biex tippermetti l-għażliet kollha f'daqqa. Dan huwa l-valur default, Jekk ma tridx tispeċifika xi valuri b'mod espliċitu fil-fajl Apache conf jew .htaccess.
- Għażliet IncludesNOEXEC – Din l-għażla tippermetti l-inklużjoni tan-naħa tas-server mingħajr il-permess ta' eżekuzzjoni għal kmand jew fajls cgi.
- Għażliet MultiViews – Jippermetti kontenut innegozjat multiviews b'mod_negotiation module.
- Għażliet SymLinksIfOwnerMatch – Huwa simili għal FollowSymLinks. Iżda, dan isegwi biss meta s-sid ikun l-istess bejn il-link u d-direttorju oriġinali li miegħu huwa marbut.
10. Limitu tad-Daqs tat-Talba
B'mod awtomatiku Apache m'għandu l-ebda limitu fuq id-daqs totali tat-talba HTTP jiġifieri illimitat u meta tippermetti talbiet kbar fuq server tal-web huwa possibbli li inti tista 'tkun vittma ta' attakki ta 'Ċaħda ta' servizz. Nistgħu Nillimitaw id-daqs tat-talbiet ta 'direttiva Apache LimitRequestBody bit-tikketta tad-direttorju.
Tista' tissettja l-valur f'bytes minn 0 (illimitat) sa 2147483647 (2GB) li huma permessi f'korp tat-talba. Tista' tissettja dan il-limitu skont il-bżonnijiet tas-sit tiegħek, Ejja ngħidu li għandek sit fejn tippermetti uploads u trid tillimita d-daqs tal-upload għal direttorju partikolari.
Hawnhekk f'dan l-eżempju, user_uploads huwa direttorju li fih fajls imtella' mill-utenti. Qed inpoġġu limitu ta '500K għal dan.
<Directory "/var/www/myweb1/user_uploads"> LimitRequestBody 512000 </Directory>
11. Ipproteġi l-attakki DDOS u l-Ebusija
Ukoll, huwa veru li ma tistax tipproteġi kompletament is-sit web tiegħek minn attakki DDos. Hawn xi direttivi li jistgħu jgħinuk biex ikollok kontroll fuqha.
- TimeOut : Din id-direttiva tippermettilek li tissettja l-ammont ta' ħin li s-server se jistenna li ċerti avvenimenti jitlestew qabel ma jfalli. Il-valur default tiegħu huwa 300 sek. Tajjeb li dan il-valur jinżamm baxx fuq dawk is-siti li huma suġġetti għal attakki DDOS. Dan il-valur jiddependi totalment fuq it-tip ta' talba li qed tirċievi fuq il-websajt tiegħek. Nota: Jista' joħloq problemi bl-iskripts CGI ġejjin.
- MaxClients : Din id-direttiva tippermettilek li tissettja l-limitu fuq konnessjonijiet li se jiġu moqdija fl-istess ħin. Kull konnessjoni ġdida se tkun fil-kju wara dan il-limitu. Huwa disponibbli bi Prefork u Worker kemm MPM. Il-valur default tiegħu huwa 256.
- KeepAliveTimeout : Huwa l-ammont ta' ħin li s-server se jistenna għal talba sussegwenti qabel ma jagħlaq il-konnessjoni. Valur default huwa 5 sekondi.
- LimitRequestFields : Jgħinna biex nissettjaw limitu fuq in-numru ta' oqsma ta' header tat-talba HTTP li se jiġu aċċettati mill-klijenti. Il-valur default tiegħu huwa 100. Huwa rakkomandat li dan il-valur jitnaqqas jekk qed iseħħu attakki DDos bħala riżultat ta' tant headers ta' rikjesti http.
- LimitRequestFieldSize : Jgħinna nissettjaw limitu ta' daqs fuq l-header tat-Talba HTTP.
12. Ippermetti Apache Logging
Apache jippermettilek li tilloggja indipendentement mill-illoggjar tal-OS tiegħek. Huwa għaqli li tippermetti l-illoggjar ta 'Apache, għaliex jipprovdi aktar informazzjoni, bħall-kmandi mdaħħla mill-utenti li jkunu interazzjoni mas-server tal-Web tiegħek.
Biex tagħmel dan għandek bżonn tinkludi l-mod_log_config modulu. Hemm tliet direttivi ewlenin relatati mal-qtugħ disponibbli b'Apache.
- TransferLog: Il-ħolqien ta' fajl ta' log.
- LogFormat : Tispeċifika format personalizzat.
- CustomLog : Il-ħolqien u l-ifformattjar ta' log file.
Tista 'wkoll tużahom għal websajt partikolari li tkun qed tagħmel Virtual hosting u għal dak għandek bżonn tispeċifikaha fit-taqsima tal-host virtwali. Pereżempju, hawnhekk hija l-konfigurazzjoni tal-host virtwali tal-websajt tiegħi bil-logging attivat.
<VirtualHost *:80> DocumentRoot /var/www/html/example.com/ ServerName www.example.com DirectoryIndex index.htm index.html index.php ServerAlias example.com ErrorDocument 404 /story.php ErrorLog /var/log/httpd/example.com_error_log CustomLog /var/log/httpd/example.com_access_log combined </VirtualHost>
13. L-iżgurar ta' Apache b'Ċertifikati SSL
L-aħħar, iżda mhux l-inqas iċ-ċertifikati SSL, tista 'tiżgura l-komunikazzjoni kollha tiegħek b'mod kriptat fuq l-Internet b'ċertifikat SSL. Ejja ngħidu li għandek websajt li fiha n-nies jidħlu billi jagħtu prova tal-kredenzjali tal-Login tagħhom jew għandek websajt tal-Kummerċ elettroniku fejn in-nies jipprovdu d-dettalji bankarji tagħhom jew id-dettalji tal-karta ta’ Debitu/Kreditu biex jixtru prodotti, b’mod awtomatiku s-server tal-web tiegħek jibgħat dawn id-dettalji b’mod sempliċi – test format iżda meta tuża ċertifikati SSL għall-websajts tiegħek, Apache jibgħat din l-informazzjoni kollha f'test encrypted.
Tista 'tixtri ċertifikati SSl minn tant fornituri SSL differenti bħal namecheap.com. Jekk qed tmexxi negozju tal-web żgħir ħafna u m'intix lest li tixtri ċertifikat SSL xorta tista' tassenja ċertifikat iffirmat minnha nnifisha lill-websajt tiegħek. Apache juża l-mod_ssl modulu biex jappoġġja ċertifikat SSL.
# openssl genrsa -des3 -out example.com.key 1024 # openssl req -new -key example.com.key -out exmaple.csr # openssl x509 -req -days 365 -in example.com.com.csr -signkey example.com.com.key -out example.com.com.crt
Ladarba ċ-ċertifikat tiegħek ikun inħoloq u ffirmat. Issa trid iżżid dan fil-konfigurazzjoni Apache. Iftaħ il-fajl tal-konfigurazzjoni prinċipali bl-editur vim u żid il-linji li ġejjin u erġa ibda s-servizz.
<VirtualHost 172.16.25.125:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/example.com.crt SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key SSLCertificateChainFile /etc/pki/tls/certs/sf_bundle.crt ServerAdmin [email ServerName example.com DocumentRoot /var/www/html/example/ ErrorLog /var/log/httpd/example.com-error_log CustomLog /var/log/httpd/example.com-access_log common </VirtualHost>
Iftaħ il-brawżer tiegħek, ittajpja https://example.com, u tkun tista' tara ċ-ċertifikat il-ġdid iffirmat minnha stess.
Dawn huma ftit suġġerimenti dwar is-sigurtà li tista 'tuża biex tiżgura l-installazzjoni tas-server tal-web Apache tiegħek. Għal aktar suġġerimenti u ideat utli dwar is-sigurtà, ara d-dokumentazzjoni uffiċjali onlajn ta’ Apache HTTP Server.