Vyladenie vyhradeného virtuálneho webového servera

Obsah:

Vyladenie vyhradeného virtuálneho webového servera
Vyladenie vyhradeného virtuálneho webového servera

Video: Vyladenie vyhradeného virtuálneho webového servera

Video: Vyladenie vyhradeného virtuálneho webového servera
Video: How to Secure Your Twitter Account - YouTube 2024, Apríl
Anonim

Keď dostanete vyhradený virtuálny server na spustenie svojich webových stránok, je pravdepodobné, že sú nakonfigurované pre všetkých a nie sú prispôsobené na maximalizáciu výkonu pre spustenie webových stránok.

obsah

[Skryť]

  • 1 Prehľad
  • 2 Konfigurácia systému Linux

    • 2.1 Zakázať DNS
    • 2.2 Zakázať SpamAssassain
    • 2.3 Zakázať xinetd
    • 2.4 Použitie limitu Plesk pamäte
    • 2.5 Vypnúť alebo vypnúť Plesk (voliteľné)
  • 3 konfigurácia MySQL

    • 3.1 Povolenie vyrovnávacej pamäte dopytov
    • 3.2 Zakázať protokol TCP / IP
  • 4 Apache Configuration
  • 5 Konfigurácia PHP

    • Odstrániť nepotrebné PHP moduly
    • 5.2 PHP Opcode Cache
  • 6 Zálohovanie

    • 6.1 Vytvorte automatický zálohovací skript
    • 6.2 Synchronizácia záloh mimo pracoviska pomocou služby Rsync
  • 7 Zabezpečenie

    • 7.1 Zakázať koreňové prihlásenie cez SSH
    • 7.2 Zakázať verziu SSH 1
    • 7.3 Reštartujte server SSH
    • 7.4 Skontrolujte otvorené porty
    • 7.5 Nastavenie brány firewall
  • 8 Pozri tiež
  • 9 Referencie

Prehľad

Existuje niekoľko problémových oblastí, v ktorých chceme maximalizovať výkonnosť:

  • Konfigurácia systému Linux Bežne prebiehajú bežné služby, ktoré nemusia byť, plytvanie pamäťou, ktorá by mohla byť použitá pre viac spojení.
  • MySQL konfigurácia Často sú predvolené nastavenia založené na malom serveri, môžeme pridať niekoľko kľúčových zmien na zvýšenie výkonnosti veľa.
  • Apache konfigurácia V predvolenom nastavení väčšina hostiteľských poskytovateľov nainštaluje Apache takmer na každý inštalovaný modul. Nie je žiadny dôvod na načítanie modulov, ak ich nikdy nebudete používať.
  • Konfigurácia PHP Predvolená konfigurácia PHP je podobne nafúknutá, zvyčajne sa nainštaluje niekoľko nepotrebných ďalších modulov.
  • PHP Opcode Cache Namiesto toho, aby PHP mohol skompilovať skripty každý čas, vyrovnávacej pamäte vo vyrovnávacej pamäti cache skompilovaných skriptov v pamäti pre obrovské zvýšenie výkonu.
  • zálohy Mal by pravdepodobne nastaviť nejaké automatické zálohovanie, pretože váš poskytovateľ hostingu to neurobí pre vás.
  • zabezpečenia Samozrejme, Linux je v predvolenom nastavení dostatočne bezpečný, ale zvyčajne sa vyskytujú isté problémy s bezpečnosťou, ktoré môžete opraviť niekoľkými rýchlymi nastaveniami.

Konfigurácia systému Linux

Je tu dosť vylepšení, ktoré môžete urobiť, čo sa mierne líši v závislosti od servera, ktorý používate. Tieto vylepšenia sú pre server so systémom CentOS, ale mali by pracovať pre väčšinu DV serverov.

Zakázať DNS

Ak poskytovateľ hosťovania spravuje DNS pre vašu doménu (pravdepodobne), môžete vypnúť službu DNS.

disable dns /etc/init.d/named stop chmod 644 /etc/init.d/named

Príkaz chmod odstráni povolenie vykonať zo skriptu a zastaví ho pri spustení.

Zakázať SpamAssassain

Ak na svojom serveri nepoužívate e-mailové účty, nemali by ste obťažovať spustenie antispamových nástrojov. (Tiež by ste sa mali pozrieť na službu Google Apps, oveľa lepšie riešenie e-mailu)

/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin

Zakázať xinetd

Proces xinetd obsahuje množstvo ďalších procesov, z ktorých žiadny nie je užitočný pre typický webový server.

/etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd

Použitie obmedzenej pamäti Plesk

Ak použijete plesk panel, môžete ho vynútiť, aby ste použili menej pamäte pridaním súboru možností.

vi /usr/local/psa/admin/conf/httpsd.custom.include

Do súboru pridajte nasledujúce riadky:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Upozorňujeme, že táto možnosť je známa tým, že pracuje na serveroch MediaTemple DV, ale nebola skontrolovaná na žiadnych ďalších. (Pozri odkazy)

Zakázať alebo vypnúť plesk (voliteľné)

Ak používate Plesk len raz ročne, je veľmi málo dôvodov, aby ste ho nechali bežať vôbec. Upozorňujeme, že tento krok je úplne nepovinný a o niečo pokročilejší.

Spustite nasledujúci príkaz na vypnutie plesk:

/etc/init.d/psa stop

Môžete ho zakázať pri spúšťaní spustením nasledujúceho príkazu:

chmod 644 /etc/init.d/psa

Všimnite si, že ak ho zakážete, nemôžete ho spustiť manuálne bez zmeny povolenia súboru (chmod u + x).

Konfigurácia MySQL

Povolenie vyrovnávacej pamäte dopytov

Otvorte súbor /etc/my.cnf a pridajte nasledujúce riadky do sekcie [mysqld] takto:

[mysqld] query-cache-type = 1 query-cache-size = 8M

Ak chcete, môžete do vyrovnávacej pamäte dopytovať viac pamäte, ale nepoužívajte príliš veľa.

Zakázať protokol TCP / IP

Prekvapivý počet hostiteľov umožňuje predvolený prístup k MySQL na TCP / IP, čo nemá zmysel pre webové stránky. Môžete zistiť, či mysql počúva na TCP / IP spustením nasledujúceho príkazu:

netstat -an | grep 3306

Ak chcete zakázať, pridajte do súboru /etc/my.cnf nasledujúci riadok:

skip-networking

Apache Configuration

Otvorte súbor httpd.conf, ktorý sa často nachádza v súbore /etc/httpd/conf/httpd.conf

Nájdite riadok, ktorý vyzerá takto:

Timeout 120

A zmeňte to na toto:

Timeout 20

Teraz nájdete sekciu, ktorá obsahuje tieto riadky a upravte na niečo podobné:

StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000

Konfigurácia PHP

Jedna z vecí, ktorú je potrebné mať na pamäti pri vylepšovaní servera na platforme PHP, je, že každá apache vlákno bude načítať PHP na samostatné miesto v pamäti. To znamená, že ak nepoužitý modul pridá 256 kB pamäte do PHP, cez 40 apache vlákien strácate 10 MB pamäte.

Odstrániť nepotrebné PHP moduly

Budete musieť vyhľadať súbor php.ini, ktorý sa zvyčajne nachádza na súbore /etc/php.ini (V niektorých distribúciách sa zobrazí adresár /etc/php.d/ s počtom súborov.ini, jeden pre každý modul.

Komentujte akékoľvek loadmodule linky s týmito modulmi:

  • ODBC
  • snmp
  • PDO
  • odbc pdo
  • mysqli
  • Ioncube-nakladače
  • json
  • imap
  • ldap
  • ncurses

Todo: Viac informácií tu.

PHP Opcode Cache

Existuje niekoľko pamäťových cache, ktoré môžete použiť, vrátane APC, eAccelerator a Xcache, pričom posledná je pre mňa osobnou preferenciou kvôli stabilite.

Stiahnite xcache a vytiahnite ho do adresára a potom spustite z príkazového adresára xcache nasledujúce príkazy:

phpize./configure --enable-xcache make make install

Otvorte súbor php.ini a pridajte novú sekciu pre xcache. Ak sú vaše php moduly načítané z niekde inde, budete musieť upraviť cesty.

vi /etc/php.ini

Do súboru pridajte nasledujúcu časť:

[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = 'myusername' xcache.admin.pass = 'putanmd5hashhere' [xcache]; Change xcache.size to tune the size of the opcode cache xcache.size = 16M xcache.shm_scheme = 'mmap' xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Change xcache.var_size to adjust the size of variable cache xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Off xcache.readonly_protection = On xcache.mmap_path = '/tmp/xcache' xcache.coredump_directory = '' xcache.cacher = On xcache.stat = On xcache.optimizer = Off

Todo: Potrebujete toto rozšírenie trochu a odkaz na xcache v referenciách.

zálohy

Je veľmi málo dôležitejšie ako mať automatické zálohovanie vašich webových stránok. Môžete mať možnosť získať zálohovanie snímok od vášho poskytovateľa hostingu, ktoré sú tiež veľmi užitočné, ale radšej tiež automatizované zálohovanie.

Vytvorte automatický zálohovací skript

Zvyčajne začínam vytváraním adresára / záloh s adresou / backups / files pod ním. Tieto cesty môžete upraviť, ak chcete.

mkdir -p /backups/files

Teraz vytvorte skript backup.sh v adresári záloh:

vi /backups/backup.sh

Pridajte do súboru nasledujúce údaje a podľa potreby upravte cestu a heslo mysqldump:

#!/bin/sh THEDATE=`date +%d%m%y%H%M` mysqldump -uadmin -pPASSWORD DATABASENAME > /backups/files/dbbackup$THEDATE.bak tar -cf /backups/files/sitebackup$THEDATE.tar /var/www/vhosts/my-website-path/httpdocs gzip /backups/files/sitebackup$THEDATE.tar find /backups/files/site* -mtime +5 -exec rm {}; find /backups/files/db* -mtime +5 -exec rm {};

Skript najprv vytvorí premennú dátumu, takže všetky súbory budú pri jednej zálohe pomenované rovnaké, potom skopírujú databázu, vytrhávajú webové súbory a gzipujú ich. Príkazy na vyhľadávanie sa používajú na odstránenie všetkých súborov starších ako 5 dní, pretože nechcete, aby sa vaša jednotka dostala do prázdna.

Spustite spustiteľný skript spustením nasledujúceho príkazu:

chmod u+x /backups/backup.sh

Potom budete musieť priradiť, aby sa automaticky spúšťal pomocou programu cron. Uistite sa, že používate účet, ktorý má prístup do adresára záloh.

crontab -e

Do crontabu pridajte nasledujúci riadok:

1 1 * * * /backups/backup.sh

Môžete otestovať skript vopred spustením pri prihlásení do užívateľského konta. (Zvyčajne spúšťam zálohy ako root)

Synchronizácia záloh mimo miesta pomocou služby Rsync

Teraz, keď máte automatizované zálohy vášho servera, môžete ich synchronizovať niekde inde pomocou pomôcky rsync. Budete chcieť prečítať tento článok o tom, ako nastaviť ssh kľúče pre automatické prihlásenie: Pridajte verejný SSH kľúč k vzdialenému serveru v jedinom príkaze

Môžete to vyskúšať spustením tohto príkazu na linuxovom alebo Macovom počítači na inom mieste (mám linuxový server doma, kde som to spustil)

rsync -a [email protected]:/backups/files/* /offsitebackups/

Bude to chvíľu trvať, kým sa spustí prvýkrát, ale nakoniec váš lokálny počítač má mať kópiu adresára súborov v adresári / offsitebackups /. (Pred vytvorením skriptu nezabudnite vytvoriť tento adresár)

Môžete to naplánovať pridaním do riadku crontab:

crontab -e

Pridajte nasledujúci riadok, ktorý bude spustiť rsync každú hodinu pri 45 minútach. Všimnete si, že tu používame úplnú cestu k rsync.

45 * * * * /usr/bin/rsync -a [email protected]:/backups/files/* /offsitebackups/

Môžete ho naplánovať na spustenie v inom čase, alebo len raz za deň. To je naozaj na vás.

Upozorňujeme, že existuje veľa nástrojov, ktoré vám umožnia synchronizáciu prostredníctvom ssh alebo ftp. Nemusíte používať rsync.

zabezpečenia

Prvá vec, ktorú chcete urobiť, je uistiť sa, že máte bežný používateľský účet na použitie prostredníctvom ssh a uistite sa, že môžete použiť su na prepnutie na koreň. Je to veľmi zlý nápad povoliť priame prihlásenie pre root cez ssh.

Zakázať koreňové prihlásenie cez SSH

Upravte súbor / etc / ssh / sshd_config a vyhľadajte nasledujúci riadok:

#PermitRootLogin yes

Zmeňte tento riadok takto:

PermitRootLogin no

Presvedčte sa, či máte pravidelné používateľské konto a či môžete vykonať túto zmenu, inak by ste sa mohli uzamknúť.

Zakázať SSH verziu 1

Naozaj neexistuje žiadny dôvod na použitie iného ako SSH verzie 2, pretože je bezpečnejší ako predchádzajúce verzie. Upravte súbor / etc / ssh / sshd_config a vyhľadajte nasledujúcu časť:

#Protocol 2,1 Protocol 2

Uistite sa, že používate len protokol 2, ako je znázornené.

Reštartujte server SSH

Teraz budete musieť reštartovať server SSH, aby sa to stalo účinným.

/etc/init.d/sshd restart

Skontrolujte otvorené porty

Pomocou nasledujúceho príkazu môžete zistiť, na ktoré porty server počúva:

netstat -an | grep LISTEN

Skutočne by ste nemali mať nič iné počúvať ako porty 22, 80 a možno 8443 pre plesk.

Nastavte bránu firewall

Hlavný článok:Používanie aplikácie Iptables v systéme Linux

Môžete voliteľne nastaviť bránu firewall protokolu iptables na zablokovanie ďalších pripojení. Napríklad zvyčajne zablokujem prístup k akýmkoľvek iným portom iným ako z mojej pracovnej siete. Ak máte dynamickú adresu IP, budete sa chcieť tejto možnosti vyhnúť.

Ak ste už všetky kroky v tejto príručke postupovali, pravdepodobne nie je potrebné pridávať do mixu aj firewall, ale je dobré porozumieť vašim možnostiam.

Pozri tiež

Používanie aplikácie Iptables v systéme Linux

Referencie

  • Optimalizácia vášho DV servera (mediatemple.net)
  • XCache

Odporúča: