13 Aabo Olupin Oju opo wẹẹbu Apache ati Awọn imọran Ikunkun


Gbogbo wa faramọ pupọ pẹlu olupin ayelujara Apache, o jẹ olupin wẹẹbu ti o gbajumọ pupọ lati gbalejo awọn faili wẹẹbu rẹ tabi oju opo wẹẹbu rẹ lori oju opo wẹẹbu. Eyi ni diẹ ninu awọn ọna asopọ eyiti o le ṣe iranlọwọ fun ọ lati tunto olupin ayelujara Apache lori apoti Linux rẹ.

  1. Fi Apèsè Wẹẹbu Apache sii
  2. Ṣeto Oju opo wẹẹbu Rẹ ninu Apoti Linux Rẹ

Nibi ninu ẹkọ yii, Emi yoo bo diẹ ninu awọn imọran akọkọ lati ni aabo olupin ayelujara rẹ. Ṣaaju ki o to lo awọn ayipada wọnyi ninu olupin wẹẹbu rẹ, o yẹ ki o ni diẹ ninu awọn ipilẹ ti olupin Apache.

  1. Iwe gbongbo Ilana:/var/www/html tabi/var/www
  2. Faili Iṣeto akọkọ: /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora) ati /etc/apache2/apache2.conf (Debian/Ubuntu).
  3. Ibudo HTTP Aiyipada: 80 TCP
  4. Ibudo HTTPS Aiyipada: 443 TCP
  5. Idanwo awọn eto faili iṣeto rẹ ati sintasi: httpd -t
  6. Awọn faili Wọle Wiwọle ti Olupin Wẹẹbu:/var/log/httpd/access_log
  7. Aṣiṣe Awọn faili Wọle ti Olupin wẹẹbu:/var/log/httpd/error_log

1. Bii o ṣe le tọju Ẹya Apache ati idanimọ OS lati Awọn aṣiṣe

Nigbati o ba fi Apache sori ẹrọ pẹlu orisun tabi awọn fifi sori ẹrọ package miiran bi yum, o ṣe afihan ẹya ti olupin ayelujara Apache rẹ ti a fi sori olupin rẹ pẹlu orukọ eto Isẹ ti olupin rẹ ni Awọn aṣiṣe. O tun fihan alaye nipa awọn modulu Apache ti a fi sii ninu olupin rẹ.

Ni aworan loke, o le rii pe Apache n ṣe afihan ẹya rẹ pẹlu OS ti a fi sii ninu olupin rẹ. Eyi le jẹ irokeke aabo pataki si olupin ayelujara rẹ bii apoti Linux rẹ paapaa. Lati ṣe idiwọ Apache lati ma ṣe fi alaye wọnyi han si agbaye, a nilo lati ṣe awọn ayipada diẹ ninu faili iṣeto akọkọ Apache.

Ṣii faili iṣeto ni pẹlu olootu vim ki o wa fun “Ibuwọlu Server”, rẹ nipasẹ aiyipada Lori. A nilo lati Ibuwọlu olupin wọnyi ati laini keji “ServerTokens Prod” sọ fun Apache lati pada nikan Apache bi ọja ni akọle idahun olupin lori gbogbo ibeere oju-iwe, O pa OS run, alaye akọkọ ati kekere.

# 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. Mu Atokọ Itọsọna ṣiṣẹ

Nipa aiyipada akojọ Apache gbogbo akoonu ti itọsọna root root Iwe ni isansa faili faili itọka. Jọwọ wo aworan ni isalẹ.

A le pa atokọ itọnisọna nipa lilo itọsọna Awọn aṣayan ni faili iṣeto fun itọsọna kan pato. Fun iyẹn a nilo lati ṣe titẹ sii ni httpd.conf tabi faili apache2.conf.

<Directory /var/www/html>
    Options -Indexes
</Directory>

3. Jeki mimu Apache ṣe imudojuiwọn nigbagbogbo

Agbegbe Olùgbéejáde Apache n ṣiṣẹ nigbagbogbo lori awọn ọran aabo ati dasile ẹya imudojuiwọn rẹ pẹlu awọn aṣayan aabo tuntun. Nitorinaa O ṣe iṣeduro nigbagbogbo lati lo ẹya tuntun ti Apache bi olupin ayelujara rẹ.

Lati ṣayẹwo ẹya Apache: O le ṣayẹwo ẹya ti isiyi rẹ pẹlu aṣẹ httpd -v.

# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Aug 13 2013 17:29:28

O le ṣe imudojuiwọn ẹya rẹ pẹlu aṣẹ atẹle.

# yum update httpd
# apt-get install apache2

O tun ṣe iṣeduro lati tọju Kernel rẹ ati OS imudojuiwọn si awọn idasilẹ iduroṣinṣin tuntun ti o ko ba nṣiṣẹ eyikeyi ohun elo kan pato eyiti o ṣiṣẹ nikan lori OS kan pato tabi Kernel.

4. Mu Awọn modulu Koṣe dandan

O dara nigbagbogbo lati kere si awọn aye ti jijẹ eyikeyi ikọlu wẹẹbu. Nitorinaa o ni iṣeduro lati mu gbogbo awọn modulu wọnyẹn ti ko lo lọwọlọwọ. O le ṣe atokọ gbogbo awọn modulu ti a ṣajọ ti olupin wẹẹbu, ni lilo pipaṣẹ atẹle.

# 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
....

Loke ni atokọ awọn modulu ti o muu ṣiṣẹ nipasẹ aiyipada ṣugbọn igbagbogbo ko nilo: mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex. Lati mu module pato naa, o le fi sii\"#" ni ibẹrẹ laini yẹn ki o tun bẹrẹ iṣẹ naa.

5. Ṣiṣe Apache bi Olumulo lọtọ ati Ẹgbẹ

Pẹlu fifi sori ẹrọ aiyipada Apache n ṣakoso ilana rẹ pẹlu olumulo ko si ẹnikan tabi daemon. Fun awọn idi aabo o ni iṣeduro lati ṣiṣẹ Apache ni akọọlẹ ti kii ṣe anfani tirẹ. Fun apẹẹrẹ: http-web.

# groupadd http-web
# useradd -d /var/www/ -g http-web -s /bin/nologin http-web

Bayi o nilo lati sọ fun Apache lati ṣiṣẹ pẹlu olumulo tuntun yii ati lati ṣe bẹ, a nilo lati ṣe titẹsi ni /etc/httpd/conf/httpd.conf ki o tun bẹrẹ iṣẹ naa.

Ṣii /etc/httpd/conf/httpd.conf pẹlu olootu vim ki o wa fun ọrọ-ọrọ “Olumulo” ati “Ẹgbẹ” ati nibẹ o yoo nilo lati ṣafihan orukọ olumulo ati orukọ ẹgbẹ lati lo.

User http-web
Group http-web

6. Lo Gba laaye ati Kọ lati ni ihamọ wiwọle si Awọn ilana

A le ni ihamọ iraye si awọn ilana pẹlu awọn aṣayan “Gba laaye” ati “Kọ“ ni faili httpd.conf. Nibi ni apẹẹrẹ yii, a yoo ni ifipamo liana gbongbo, fun iyẹn nipa siseto atẹle ni faili httpd.conf.

<Directory />
   Options None
   Order deny,allow
   Deny from all
</Directory>

  1. Awọn aṣayan “Ko si” - Aṣayan yii kii yoo gba awọn olumulo laaye lati jẹki eyikeyi awọn ẹya aṣayan.
  2. Bere fun sẹ, gba laaye - Eyi ni aṣẹ ninu eyiti awọn itọsọna “Sọ” ati “Gba laaye” yoo ṣiṣẹ. Nibi yoo “sẹ” ni akọkọ ati “gba laaye” atẹle.
  3. Sọ lati gbogbo - Eyi yoo sẹ ibeere lati ọdọ gbogbo eniyan si itọsọna gbongbo, ko si ẹnikan ti yoo ni anfani lati wọle si itọsọna gbongbo.

7. Lo mod_security ati modulu modulu lati ni aabo Apache

Awọn modulu meji wọnyi “mod_security” ati “mod_evasive” jẹ awọn modulu ti o gbajumọ pupọ ti Apache ni awọn ofin aabo.

Nibiti mod_security ṣiṣẹ bi ogiriina fun awọn ohun elo wẹẹbu wa ati gba wa laaye lati ṣe atẹle ijabọ lori ipilẹ akoko gidi. O tun ṣe iranlọwọ fun wa lati daabobo awọn oju opo wẹẹbu wa tabi olupin wẹẹbu lati awọn ikọlu agbara agbara. O le jiroro ni fi mod_security sori olupin rẹ pẹlu iranlọwọ ti awọn olutọpa package aiyipada rẹ.

$ 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 n ṣiṣẹ daradara daradara, o gba ibeere kan lati ṣe ilana ati ṣe ilana rẹ daradara. O ṣe idiwọ awọn ikọlu DDOS lati ṣe bibajẹ pupọ. Ẹya yii ti mod_evasive n jẹ ki o mu agbara agbara HTTP ati Dos tabi ikọlu DDos. Atokun yii n ṣe awari awọn ikọlu pẹlu awọn ọna mẹta.

  1. Ti ọpọlọpọ awọn ibeere ba wa si oju-iwe kanna ni awọn igba diẹ fun iṣẹju-aaya.
  2. Ti eyikeyi ilana ọmọde ba n gbiyanju lati ṣe diẹ sii ju awọn ibeere igbakanna 50.
  3. Ti eyikeyi IP ba tun n gbiyanju lati ṣe awọn ibeere titun nigbati igba diẹ ṣe akojọ dudu.

mod_evasive le fi sori ẹrọ taara lati orisun. Nibi, a ni Fifi sori ẹrọ ati itọsọna iṣeto ti awọn modulu wọnyi eyiti yoo ṣe iranlọwọ fun ọ lati ṣeto awọn modulu Apache wọnyi ninu apoti Linux rẹ.

  1. Dabobo Afun nipa lilo Mod_Security ati Mod_evasive

8. Mu atẹle Apache ti Awọn ọna asopọ Aami

Nipa aiyipada Apache tẹle awọn ọna asopọ, a le pa ẹya yii pẹlu FollowSymLinks pẹlu itọsọna Awọn aṣayan. Ati lati ṣe bẹ a nilo lati ṣe titẹsi atẹle ni faili iṣeto akọkọ.

Options -FollowSymLinks

Ati pe, ti olumulo tabi aaye ayelujara eyikeyi ba nilo FollowSymLinks muu ṣiṣẹ, a le jiroro kọ ofin ni faili “.htaccess” lati oju opo wẹẹbu yẹn.

# Enable symbolic links
Options +FollowSymLinks

Akiyesi: Lati jẹki awọn ofin atunkọ inu faili “.htaccess” “AllowOverride All” yẹ ki o wa ni iṣeto akọkọ ni kariaye.

9. Pa Apa Server Pẹlu Pẹlu Ipaniyan CGI

A le pa ẹgbẹ olupin pẹlu (mod_include) ati ipaniyan CGI ti ko ba nilo ati lati ṣe bẹ a nilo lati yipada faili iṣeto akọkọ.

Options -Includes
Options -ExecCGI

A le ṣe eyi fun itọsọna pato paapaa pẹlu tag Itọsọna. Nibi Ni apẹẹrẹ yii, a wa ni pipa Pẹlu Pẹlu ati awọn ipaniyan faili Cgi fun itọsọna “/ var/www/html/web1”.

<Directory "/var/www/html/web1">
Options -Includes -ExecCGI
</Directory>

Eyi ni diẹ ninu awọn iye miiran pẹlu le ti wa ni Tan-an tabi pipa pẹlu itọsọna Awọn aṣayan.

  1. Awọn aṣayan Gbogbo - Lati mu Gbogbo awọn aṣayan ṣiṣẹ ni ẹẹkan. Eyi ni iye aiyipada, Ti o ko ba fẹ pato awọn iye eyikeyi ni kedere ni faili Apache conf tabi .htaccess.
  2. NOEXEC - Aṣayan yii ngbanilaaye ẹgbẹ olupin pẹlu laisi igbanilaaye ṣiṣe si aṣẹ kan tabi awọn faili cgi.
  3. Awọn aṣayan MultiViews - Faye gba awọn ifọrọwerọ awọn idunadura akoonu pẹlu module mod_negotiation.
  4. Awọn aṣayan SymLinksIfOwnerMatch - O jẹ iru si FollowSymLinks. Ṣugbọn, eyi yoo tẹle nikan nigbati oluwa ba jẹ kanna laarin ọna asopọ ati itọsọna atilẹba si eyiti o ti sopọ mọ.

10. Iwọn Iwọn Ibeere

Nipa aiyipada Apache ko ni opin lori iwọn lapapọ ti ibeere HTTP ie ailopin ati nigbati o gba awọn ibeere nla lori olupin wẹẹbu ṣee ṣe pe o le jẹ olufaragba ti kiko awọn ikọlu iṣẹ. A le Idinwo iwọn awọn ibeere ti itọsọna Apache “LimitRequestBody” pẹlu ami atokọ.

O le ṣeto iye ni awọn baiti lati 0 (Kolopin) si 2147483647 (2GB) ti o gba laaye ninu ara ibeere kan. O le ṣeto opin yii ni ibamu si awọn iwulo aaye rẹ, Ṣebi o ni aaye kan nibiti o gba awọn ikojọpọ laaye ati pe o fẹ ṣe idinwo iwọn ikojọpọ fun itọsọna kan pato.

Nibi ni apẹẹrẹ yii, olumulo_uploads jẹ itọsọna eyiti o ni awọn faili ti o gbe nipasẹ awọn olumulo ni. A n fi opin si 500K fun eyi.

<Directory "/var/www/myweb1/user_uploads">
   LimitRequestBody 512000
</Directory>

11. Dabobo awọn ikọlu DDOS ati Ikunkun

O dara, o jẹ otitọ pe o ko le ṣe aabo oju opo wẹẹbu rẹ patapata lati awọn ikọlu DDos. Eyi ni diẹ ninu awọn itọsọna eyiti o le ṣe iranlọwọ fun ọ lati ni iṣakoso lori rẹ.

  1. TimeOut: Itọsọna yii n fun ọ laaye lati ṣeto iye akoko ti olupin yoo duro fun awọn iṣẹlẹ kan lati pari ṣaaju ki o to kuna. Iye aiyipada rẹ jẹ awọn iṣẹju-aaya 300. O dara lati jẹ ki iye yii dinku lori awọn aaye wọnyẹn eyiti o wa labẹ awọn ikọlu DDOS. Iye yii da lori iru ibeere ti o ngba lori oju opo wẹẹbu rẹ. Akiyesi: O le ṣe awọn iṣoro pẹlu awọn iwe afọwọkọ CGI ti o wa.
  2. MaxClients: Itọsọna yii fun ọ laaye lati ṣeto opin lori awọn isopọ ti yoo wa ni nigbakanna. Gbogbo asopọ tuntun yoo wa ni isinyi lẹhin opin yii. O wa pẹlu Prefork ati Osise mejeeji MPM. Iye aiyipada ti o jẹ 256.
  3. KeepAliveTimeout: Iwọn iye akoko ti olupin yoo duro de ibeere atẹle ṣaaju pipade asopọ naa. Iye aiyipada jẹ iṣẹju-aaya 5.
  4. LimitRequestFields: O ṣe iranlọwọ fun wa lati ṣeto idiwọn lori nọmba awọn aaye akọle akọle ibeere HTTP ti yoo gba lati ọdọ awọn alabara. Iye aiyipada rẹ jẹ 100. A ṣe iṣeduro lati dinku iye yii ti awọn ikọlu DDos ba n ṣẹlẹ nitori abajade ọpọlọpọ awọn akọle akọle http.
  5. LimitRequestFieldSize: O ṣe iranlọwọ fun wa lati ṣeto opin iwọn lori akọsori Ibere HTTP.

12. Jeki Iwọle nipa Afun

Apache gba ọ laaye lati buwolu wọle ni ominira ti gedu OS rẹ. O jẹ oye lati jẹki gedu Apache, nitori pe o pese alaye diẹ sii, gẹgẹbi awọn aṣẹ ti a tẹ nipasẹ awọn olumulo ti o ti ṣepọ pẹlu olupin Wẹẹbu rẹ.

Lati ṣe bẹ o nilo lati ni modulu mod_log_config naa. Awọn itọsọna akọkọ ti o ni gedu ni o wa pẹlu Apache.

  1. TransferLog: Ṣiṣẹda faili akọọlẹ kan.
  2. LogFormat: Sisọ ọna kika aṣa.
  3. CustomLog: Ṣiṣẹda ati kika faili faili kan.

O tun le lo wọn fun oju opo wẹẹbu kan pato eyiti o n ṣe alejo gbigba Foju ati fun pe o nilo lati ṣalaye rẹ ni apakan olupin foju. Fun apẹẹrẹ, eyi ni oju opo wẹẹbu aṣawakiri ipo iṣere oju opo wẹẹbu mi pẹlu ifisilẹ gedu ṣiṣẹ.

<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. Ipamo Afun pẹlu Awọn iwe-ẹri SSL

Kẹhin, ṣugbọn kii ṣe awọn iwe-ẹri SSL ti o kere ju, o le ni aabo gbogbo ibaraẹnisọrọ rẹ ni ọna ti paroko lori Intanẹẹti pẹlu ijẹrisi SSL. Ṣebi o ni oju opo wẹẹbu kan ninu eyiti awọn eniyan wọle nipa fifihan awọn ẹri Wiwọle wọn tabi o ni oju opo wẹẹbu E- Iṣowo nibiti awọn eniyan ti pese awọn alaye banki wọn tabi Debit/awọn alaye kaadi kirẹditi lati ra awọn ọja, ni aiyipada olupin ayelujara rẹ firanṣẹ awọn alaye wọnyi ni pẹtẹlẹ - ọrọ ọna kika ṣugbọn nigbati o ba lo awọn iwe-ẹri SSL si awọn oju opo wẹẹbu rẹ, Apache firanṣẹ gbogbo alaye yii ni ọrọ ti paroko.

O le ra awọn iwe-ẹri SSl lati Ọpọlọpọ awọn olupese SSL ti o yatọ bii namecheap.com. Ti o ba n ṣiṣẹ iṣowo wẹẹbu kekere pupọ ati pe ko fẹ lati ra ijẹrisi SSL o tun le fi iwe-ẹri ti o fowo si si oju opo wẹẹbu rẹ. Apache nlo modulu mod_ssl lati ṣe atilẹyin ijẹrisi 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

Lọgan ti a ti ṣẹda iwe-ẹri rẹ ti o si fowo si. Bayi o nilo lati ṣafikun eyi ni iṣeto Apache. Ṣii faili iṣeto ni akọkọ pẹlu olootu vim ki o ṣafikun awọn ila wọnyi ki o tun bẹrẹ iṣẹ naa.

<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>

Ṣii aṣawakiri rẹ, tẹ https://example.com, ati pe iwọ yoo ni anfani lati wo ijẹrisi ijẹrisi ti ara ẹni tuntun.

Iwọnyi ni awọn imọran aabo ti o le lo lati ni aabo fifi sori ẹrọ olupin ayelujara Apache rẹ. Fun awọn imọran aabo ti o wulo julọ ati awọn imọran, wo iwe aṣẹ lori ayelujara ti oṣiṣẹ ti Apache HTTP Server.