י'צאפא לש םיתרש תחשקהו החטבאל םיפיט 13


.ךלש סקונילה תביתב י'צאפא לש טנרטניאה תרש תא רידגהל ךל רוזעל םילוכיש םירושיק המכ הנה .טנרטניאב ךלש רתאה תא וא ךלש טנרטניאה יצבק תא חראל דואמ ירלופופ טנרטניא תרש והז ,י'צאפא לש טנרטניאה תרש

    .Apache תרש לש תודוסי המכ ךל היהיש ךילע ,ךלש טנרטניאה תרשב הלא םייוניש ליחתש ינפל .ךלש טנרטניאה תרש תחטבאל םיירקיע םיפיט המכ רוקסא הז ךירדמב ןאכ

      תואיגשמ הלעפה תכרעמ תוהזו י'צאפא תואסרג ריתסהל דציכ .1

      .ךלש תרשב םינקתומה י'צאפא ילודומ לע עדימה תא גיצמ םג הז .תואיגשב ךלש תרשה לש הלעפהה תכרעמ םש םע ךלש תרשב ןקתומה Apache ךלש טנרטניאה תרש לש הסריגה תא גיצמ אוה ,yum ומכ רחא הליבח ןיקתמ לכ וא

      .י'צאפא לש ישארה הרוצתה ץבוקב םייוניש המכ עצבל ונילע ,םלועה ינפב הז עדימ גיצהל אל י'צפאמ עונמל ידכ .ךלש סקונילה תבית לע םגו ךלש טנרטניאה תרש לע םג לודג החטבא םויא תווהל לוכי הז .םכלש תרשב

      .ינשמו יזכרמ אסרג עדימ ,הלעפהה תכרעמ תא תאכדמ איה .דומע תשקב לכב תרשה תבוגת תרתוכב רצומכ י'צאפא תא קר ריזחהל י'צאפאל תרמוא "ServerTokens Prod" היינשה הרושהו וזה תרשה תמיתח תא לטבל ונילע .ל

      # 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

      .הטמל הנומתה תא האר אנא .סקדניא ץבוק רדעהב ךמסמה לש סיסבה תיירפס לש ןכותה לכ תא טרפמ י'צאפא לדחמ תרירבכ

      .apache2.conf וא httpd.conf ץבוקב ךרע ןיזהל ונילע ךכ םשל .תיפיצפס הירפס רובע הרוצתה ץבוקב תויורשפא תארוה תועצמאב תוירפסה םושיר תא לטבל םילוכי ונא

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

      עובק ןפואב י'צאפא תא ןכדעל ךשמה .3

      .ךלש טנרטניאה תרשכ י'צאפא לש הנורחאה הסרגב שמתשהל ץלמומ דימת ןכל .תושדח החטבא תויורשפא םע הלש תנכדועמה הסרגה תא תררחשמו החטבא תויעב לע תופיצרב תדבוע י'צאפא יחתפמ תליהק

      .httpd -v הדוקפה תועצמאב ךלש תיחכונה הסרגה תא קודבל לכות :י'צאפא תסרג תקידבל

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

      .האבה הדוקפה תועצמאב ךלש הסרגה תא ןכדעל ךתורשפאב

      # yum update httpd
      # apt-get install apache2

      .םייפיצפס ןיערג וא הלעפה תכרעמב קר דבועש יפיצפס םושיי ליעפמ ךניא םא תונורחאה תוביציה תואסרגל תכרעמהו הבילה ןוכדע לע רומשל םג ץלמומ

      םירתוימ םילודומ תבשה .4

      .האבה הדוקפה תועצמאב טנרטניאה תרש לש םירדוהמה םילודומה לכ תא םושרל לוכי התא .עגרכ שומישב םיאצמנ םניאש םילודומה לכ תא תיבשהל ץלמומ ןכל .תשרב הפקתה לכל ןברוק תויהל םייוכיסה תא ןיטקהל בוט דימ

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

      .תורישה תא שדחמ ליעפהלו הרושה תליחתב "#"\ףיסוהל לוכי התא ,םיוסמה לודומה תא תיבשהל ידכ .mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex :םהל םיצוחנ םניא תובורק םיתעל ךא לדחמ ת

      םידרפנ הצובקו שמתשמכ Apache תא לעפה .5

      .http-web :אמגודל .השרומ וניאש ןובשחב י'צאפא תא ץירהל ץלמומ החטבא ימעטמ .ןומדה שיא וא שמתשמה םע ולש ךילהתה תא ץירמ י'צאפא לדחמ תרירב תנקתה םע

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

      .תורישה תא שדחמ ליעפהלו etc/httpd/conf/httpd.conf/ -ב ךרע ןיזהל ונילע ,תאז תושעלו הז שדח שמתשמ םע ץורל י'צאפאל דיגהל ךירצ התא וישכע

      .שומישל הצובקה םשו שמתשמה םש תא ןייצל ךרטצת םשו" הצובק"ו "שמתשמ" חתפמה תלימ תא שפחו vim ךרוע םע etc/httpd/conf/httpd.conf/ חתפ

      User http-web
      Group http-web

      תוירפסל השיגה תא ליבגהל ידכ החדנו רשפא תורשפאב שמתשה .6

      .httpd.conf ץבוקב םיאבה םירבדה תרדגה ידי לע ךכ םשל ,שרושה תיירפס תא חיטבנ ,וז המגודב ןאכ .httpd.conf ץבוקב" החד"ו "רשפא" תויורשפאה תועצמאב תוירפסל השיגה תא ליבגהל םילוכי ונא

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

        י'צאפא תא חטבאל ידכ mod_evasive םילודומבו mod_security םילודומב ושמתשה .7

        .החטבא תניחבמ י'צאפא לש םיירלופופ םילודומ דואמ םה "mod_evasive" -ו "mod_security" הלאה םילודומה ינש

        .לדחמ תרירבכ םירדגומה תוליבחה ינקתמ תרזעב ךלש תרשב mod_security תא ןיקתהל טושפ לוכי התא .תוירזכא תופקתה ינפמ ונלש טנרטניאה תרש לע וא םירתאה לע ןגהל ונל רזוע םג הז .תמא ןמזב הרובעתה רחא בוק

        $ 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 תופקתהמ ענומ הז .בטיה התוא דבעמו דוביעל תחא השקב שרדנ ,הבר תוליעיב דבוע DDOS לש וז הנוכת .ךכ לכ בר קזנ םורגל mod_evasive לש חוכה חוכ םע דדומתהל ול תרשפאמ HTTP תפקתהו Dos וא DDo

          .ךלש סקונילה תביתב הלאה י'צאפאה ילודומ תא רידגהל ךל רוזעיש הלא םילודומ לש הנקתהו הנקתה ךירדמ ונל שי ,הנה .רוקמהמ תורישי mod_evasive תא ןיקתהל ןתינ

            םיילובמיס םירושיק לע י'צאפא לש ךשמהה תא תבשה .8

            .ישארה הרוצתה ץבוקב אבה ךרעה תא ןיזהל ונילע תאז תושעל ידכו .תויורשפא םע FollowSymLinks תארוה תועצמאב וז הנוכת לטבל םילוכי ונא ,םילובמיס םירושיק רחא בקוע י'צאפא לדחמ תרירבכ

            Options -FollowSymLinks

            .רתא ותואמ "htaccess." ץבוקב ללכ בותכל טושפ םילוכי ונא ,FollowSymLinks תלעפהל םיקוקז םיוסמ רתא וא שמתשמ םאו

            # Enable symbolic links
            Options +FollowSymLinks

            .םלועב תישארה הרוצתב חכונ תויהל ךירצ "htaccess" "AllowOverride All." ץבוק ךותב בותכש יללכ רשפאל ידכ :הרעה

            CGI עוציבו ללוכ תרשה יללכ תא הבכ .9

            .ישארה הרוצתה ץבוק תא תונשל ונילע ךכ םשלו ךרוצ ןיא םא CGI עוציבו (mod_include) ללוכ תרשה ללוכ תא תובכל םילוכי ונא

            Options -Includes
            Options -ExecCGI

            ."var/www/html/web1 /" תיירפסל Cgi -ו Includes םיצבקה יעוציב תא םיבכמ ונא ,וז המגודב ןאכ .Directory גת תועצמאב םג תמיוסמ היירפס רובע תאז תושעל םילוכי ונא

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

            .תויורשפאה תארוה תועצמאב תובכל וא ליעפהל ןתינש םירחא םיכרע המכ ןלהל

              השקבה לדוג תא לבגה .10

              .היירפסה גת םע "LimitRequestBody" י'צאפא תארוה לש תושקבה לדוג תא ליבגהל םילוכי ונא .תוריש תעינמ לש תופקתהל ןברוק תויהל לוכי התאש ןכתי טנרטניא תרשב תולודג תושקב רשפאמ התא רשאכו לבגומ אל רמו

              .תמיוסמ היירפסל האלעהה לדוג תא ליבגהל הצור התאו תואלעה רשפאמ התא ובש רתא ךל שיש חיננ ,ךלש רתאה יכרצ יפ לע וז הלבגמ רידגהל לוכי התא .השקב ףוגב םירתומה (2GB) 2147483647 -ל (הלבגה אלל) 0 -מ ם

              .500K לש הלבגמ ךכל םיסינכמ ונא .םישמתשמ ידי לע ולעוהש םיצבק הליכמה היירפס איה user_uploads ,וז המגודב ןאכ

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

              החשקהו DDOS תופקתה לע ןגה .11

              .הזב טולשל ךל רוזעל תולוכיש תוארוה המכ ןלהל .DDos תופקתה ינפמ ךלש טנרטניאה רתא לע ןיטולחל ןגהל לוכי אל התאש ןוכנ ,ןכבו

                י'צאפא לש םושיר רשפא .12

                .ךלש טנרטניאה תרש םע היצקארטניא ומייק רשא םישמתשמ ידי לע ונזוהש תודוקפה ןוגכ ,ףסונ עדימ קפסמ אוהש ןוויכמ ,י'צאפא לש םושיר רשפאל םכח הז .ךלש הלעפהה תכרעמ םושירב תולת אלל סנכיהל ךל רשפאמ י'צ

                .הסינכל תורושקה תוירקיע תוארוה שולש תומייק .mod_log_config לודומה תא לולכל ךילע ךכ םשל

                  .תלעפומ םושיר םע ילש רתאב ילאוטריווה חראמה תרוצת הנה ,אמגודל .ילאוטריווה חראמה ףיעסב ותוא ןייצל ךילע ךכ םשלו ילאוטריו חוריא עצבמ התא םא םיוסמ רתאל םהב שמתשהל םג לוכי התא

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

                  SSL ירושיא םע י'צאפא תחטבא .13

                  .ןפצומ טסקטב הזה עדימה לכ תא חלוש י'צאפא ,ךלש טנרטניאה ירתאל SSL ירושיאב שמתשמ התא רשאכ ךא טמרופ ליגר טסקטב הלאה םיטרפה תא חלוש ךלש טנרטניאה תרש לדחמ תרירבכ ,םירצומ תשיכרל םהלש יארשאה/בו

                  .SSL רושיאב הכימתל mod_ssl לודומב שמתשמ י'צאפא .ךלש רתאל תימצע המיתחב רושיא תוצקהל ןיידע לכות ,SSL תדועת שוכרל ןכומ ךניאו טנרטניאב דואמ ןטק קסע להנמ התא םא .namecheap.com ומכ םיבר םינוש SS

                  # 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

                  .תורישה תא שדחמ לעפהו תואבה תורושה תא ףסוהו vim -ה ךרוע םע ישארה הרוצתה ץבוק תא חתפ .י'צאפא תרוצתב תאז ףיסוהל ךילע תעכ .םתחנו רצונ ךלש רושיאה רחאל

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

                  .תימצע המיתחב שדחה רושיאה תא תוארל לכותו https://example.com דלקה ,ךלש ןפדפדה תא חתפ

                  .י'צאפא לש HTTP -ה תרש לש ימשרה ןווקמה דועיתב ןייע ,םיפסונ םיישומיש החטבא תונויערו םיפיט תלבקל .Apache -ב ךלש טנרטניאה תרש תנקתה תא חטבאל ידכ שמתשהל לוכי התא םהבש החטבאל םיפיט המכ הלא