ÔõÑùÔÚLinuxЧÀÍÆ÷ÉÏʵÏÖÇ¿Ê¢µÄWeb½Ó¿Ú·ÀÓù£¿
ÔõÑùÔÚLinuxЧÀÍÆ÷ÉÏʵÏÖÇ¿Ê¢µÄWeb½Ó¿Ú·ÀÓù£¿
Ëæ×Å»¥ÁªÍøµÄ¿ìËÙÉú³¤£¬Web½Ó¿ÚÒѾ³ÉΪϵͳ֮¼äÊý¾Ý½»Á÷µÄÖ÷ÒªÇÅÁº£¬Í¬Ê±Ò²³ÉΪ¹¥»÷Õß¹¥»÷ЧÀÍÆ÷µÄÖ÷ҪĿµÄÖ®Ò»¡£ÎªÁ˱£»¤Ð§ÀÍÆ÷µÄÇå¾²£¬ÎÒÃÇÐèÒªÔÚLinuxЧÀÍÆ÷ÉÏʵÏÖÇ¿Ê¢µÄWeb½Ó¿Ú·ÀÓù¼Æ»®¡£±¾ÎĽ«ÏÈÈÝһЩ³£ÓõķÀÓùÊÖÒÕºÍÒªÁ죬²¢ÌṩһЩʵÏÖʾÀý´úÂë¡£
ʹÓÃWeb·À»ðǽ
WebÓ¦Ó÷À»ðǽ£¨WAF£©ÊÇÒ»ÖÖ¿ÉÒÔ¼à¿ØºÍ¹ýÂ˽øÈëЧÀÍÆ÷µÄHTTPºÍHTTPSÁ÷Á¿µÄ¹¤¾ß¡£Ëü¿ÉÒÔ¼ì²âºÍ×èÖ¹ÖÖÖÖ¹¥»÷£¬ÈçSQL×¢Èë¡¢¿çÕ¾¾ç±¾¹¥»÷£¨XSS£©ºÍ¿çÕ¾ÇëÇóαÔ죨CSRF£©¡£³£ÓõÄWeb·À»ðǽÈí¼þ°üÀ¨ModSecurity¡¢NAXSIºÍDjango DefendµÈ¡£
ÒÔÏÂÊÇÒ»¸öʹÓÃModSecurity¾ÙÐÐWeb·À»ðǽÉèÖõÄʾÀý´úÂ룺
# ×°ÖÃModSecurityÄ£¿é sudo apt-get install libapache2-modsecurity # ÆôÓÃModSecurityÄ£¿é sudo a2enmod mod_security # ÉèÖÃModSecurity¹æÔò sudo nano /etc/modsecurity/modsecurity.conf # ÔÚÉèÖÃÎļþÖÐÌí¼ÓÒÔϹæÔò SecRuleEngine On SecAuditLog /var/log/apache2/modsec_audit.log SecAuditEngine On # ÖØÆôApacheЧÀÍÆ÷ʹÉèÖÃÉúЧ sudo service apache2 restart
µÇ¼ºó¸´ÖÆ
ʵÑé»á¼û¿ØÖÆÁÐ±í£¨ACL£©
ACLÊÇÒ»ÖÖÓÃÓÚÏÞÖÆÍøÂçÁ÷Á¿µÄ»úÖÆ£¬ÓÃÓÚ¿ØÖÆË¿ÉÒÔ»á¼ûЧÀÍÆ÷ÉϵÄWeb½Ó¿ÚÒÔ¼°ÔÚºÎÖÖÇéÐÎÏ¿ÉÒÔ»á¼û¡£Í¨¹ýACL£¬ÎÒÃÇ¿ÉÒÔƾ֤IPµØµã¡¢Óû§Éí·ÝÑéÖ¤ºÍÆäËûÒòÏòÀ´½ç˵»á¼û¹æÔò¡£³£ÓõŤ¾ß°üÀ¨iptablesºÍNginxµÈ¡£
ÒÔÏÂÊÇÒ»¸öʹÓÃiptablesʵÑé»á¼û¿ØÖÆÁбíµÄʾÀý´úÂ룺
# Ìí¼ÓÔÊÐí»á¼ûWeb½Ó¿ÚµÄIPµØµã sudo iptables -A INPUT -s 192.168.0.1/32 -p tcp --dport 80 -j ACCEPT # ÆÁÕÏÀ´×ÔÖ¸¶¨IPµØµãµÄÇëÇó sudo iptables -A INPUT -s 192.168.0.2/32 -j DROP # Éó²éÒÑÌí¼ÓµÄiptables¹æÔò sudo iptables -L
µÇ¼ºó¸´ÖÆ
±£»¤Ãô¸ÐÊý¾ÝµÄ´«Êä
ÔÚWeb½Ó¿ÚÖд«ÊäÃô¸ÐÊý¾Ýʱ£¬Ê¹ÓüÓÃÜÐÒéÊǺÜÊÇÖ÷ÒªµÄ¡£HTTPS£¨Çå¾²HTTP£©ÊÇÒ»ÖÖͨ¹ýSSL / TLSÐÒéΪÊý¾Ý´«ÊäÌṩ¼ÓÃܺÍÈÏÖ¤µÄ·½·¨¡£ÎÒÃÇ¿ÉÒÔÔÚЧÀÍÆ÷ÉÏʹÓÃSSLÖ¤ÊéÀ´ÆôÓÃHTTPS¡£³£ÓõŤ¾ß°üÀ¨OpenSSLºÍApacheµÄmod_sslÄ£¿é¡£
ÒÔÏÂÊÇÒ»¸öʹÓÃOpenSSLÌìÉú×ÔÊðÃûSSLÖ¤ÊéµÄʾÀý´úÂ룺
# ×°ÖÃOpenSSLÈí¼þ°ü sudo apt-get install openssl # ÌìÉú˽Կ sudo openssl genrsa -out private.key 2048 # ÌìÉú×ÔÊðÃûÖ¤ÊéÇëÇó£¨CSR£© sudo openssl req -new -key private.key -out csr.csr # ÌìÉú×ÔÊðÃûÖ¤Êé sudo openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt # ÉèÖÃApacheЧÀÍÆ÷ʹÓÃSSLÖ¤Êé sudo nano /etc/apache2/sites-available/default-ssl.conf # ½«ÒÔÏÂÉèÖÃÏîÌí¼Óµ½ÉèÖÃÎļþÖÐ SSLEngine on SSLCertificateFile /path/to/certificate.crt SSLCertificateKeyFile /path/to/private.key # ÆôÓÃSSLÄ£¿é sudo a2enmod ssl # ÖØÐÂÆô¶¯ApacheЧÀÍÆ÷ʹÉèÖÃÉúЧ sudo service apache2 restart
µÇ¼ºó¸´ÖÆ
×ÛÉÏËùÊö£¬½¨ÉèÇ¿Ê¢µÄWeb½Ó¿Ú·ÀÓùÊDZ£»¤Ð§ÀÍÆ÷Çå¾²µÄÐëÒª°ì·¨¡£Í¨¹ýʹÓÃWeb·À»ðǽ¡¢ÊµÑé»á¼û¿ØÖÆÁбíºÍ±£»¤Ãô¸ÐÊý¾ÝµÄ´«Ê䣬ÎÒÃÇ¿ÉÒÔ×îºéÁ÷ƽµØïÔÌDZÔڵĹ¥»÷ºÍÊý¾Ýй¶Σº¦¡£Í¬Ê±£¬ÎÒÃÇ¿ÉÒÔƾ֤ÏêϸµÄÐèÇóºÍÇéÐξÙÐÐÏìÓ¦µÄµ÷½âºÍÓÅ»¯£¬ÒÔÈ·±£Ð§ÀÍÆ÷µÄÇå¾²ÐÔ¡£
ÉùÃ÷£ºÒÔÉÏʾÀý´úÂë½ö¹©²Î¿¼£¬Çëƾ֤×Ô¼ºµÄÏÖʵÐèÇóºÍÇéÐξÙÐÐÊʵ±µÄÐ޸ĺÍÉèÖá£ÔÚʵÑéÈκÎÇå¾²²½·¥Ê±£¬ÇëÎñ±ØÉóÉ÷²Ù×÷²¢±¸·ÝÏà¹ØÎļþ¡£
ÒÔÉϾÍÊÇÔõÑùÔÚLinuxЧÀÍÆ÷ÉÏʵÏÖÇ¿Ê¢µÄWeb½Ó¿Ú·ÀÓù£¿µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡