Spouštění pod uživatelem:
Začněme tím, co si na serveru spouštíte. Vždy se všude mluví o tom, že byste nikdy neměli nic spouštět pod rootem, přesto to ale mnoho lidí stále dělá. Ideální je pro každou službu kterou si na serveru spustíte vytvořit zvlášť uživatele bez administrátorských oprávnění.
Pokud tedy máte na serveru TS3, vytvořte si pro něj uživatele třeba teamspeak, pokud máte minecrafty, vytvořte si pro ně dalšího uživatele, např. minecraft.
Příkazem
Kód: Vybrat vše
su jmeno_uzivatele -c "./teamspeakserver"
Toto neplatí pro programy, které jste nainstalovali z repozitáře přes apt-get, např apache, mysql apod. Ty si už sami svého uživatele vytvoří při instalaci a poté spouští se pod běžným uživatelem, nikoliv rootem.
Oprávění souborů
S předchozím bodem souvisí nastavení oprávnění. Řada lidí má ve zvyku se s tím prostě "nesrat" a pustit chmod -R 777. Dejte si tu minutu času navíc a práva pro ten teamspeak a minecraft server nastavte správně tak, aby dané soubory mohl číst pouze ten, kdo je číst má.
Spouštění skriptů pochybného původu:
Další věc je spouštění všelijakých pochybných skriptů stažených z internetu, které mají cracknout nějaký server apod. Většinou se jedná o nějaký shellový skript, který je nutno rovnou spustit pod rootem, a dělá bůh ví co. 99% z Vás pravděpodobně nebude do detailu zkoumat, co že to ten skript pouští za příkazy a jakéže programy stahuje odněkund z netu. Vyhněte se podobným věcem a když už opravdu musíte něco takového spouštět, detailně si prohlídněte co to vůbec dělá. Nezapoměňte, že stačí jeden jediný příkaz spuštěný pod rootem a máte komplet vymazaný souborový systém apod. Toto je taky jeden z důvodů, proč byste neměli být neustále přihlášeni pod rootem pokud v tomto nejste zběhlí.
Aktualizace OS:
Do /etc/apt/sources.list přideje následující repozitáře (stačí celý obsah souboru vymazat a nahradit níže uvedeným):
Pro debian 7 wheezy:
Spoiler: zobrazit
Pro debian 8 jessie:
Spoiler: zobrazit
Pro ubuntu 14.04:
Spoiler: zobrazit
poté proveďte
Kód: Vybrat vše
sudo apt-get update && sudo apt-get upgrade
případně ještě
Kód: Vybrat vše
sudo apt-get dist-upgrade
Firewall
Měl by to být základ, ale zatím jsem se nesetkal s tím, že by to někdo řešil.
Pro ubuntu/debian existuje jednoduchý nástroj pro práci s iptables, UFW. Vhodné je zablokovat především SSH a povolit pouze IP adresu z které víte, že se na VPS budete připojovat. Je samozřejmě nutné mít na vědomí, že je k tomu potřeba mít statickou neměnnou IP adresu. Veřejná IP potřeba není, ale musí být statická, případně alespoň musíte znát rozsah IP adres Vašeho providera a povolit třeba celý rozsah. Jde o to zablokovat především boty, kteří se snaží uhádnout heslo na roota. Pokud se podíváte do souboru /var/log/auth.log jistě tam uvidíte tisíce pokusů o připojení z cizích IP. To všechno jsou boti a je to bohužel zcela normální na každém serveru, který má veřejně dostupné SSH.
Pokud z nějakého důvodu nemůžete použít firewall, je vhodné nainstalovat např denyhosts, což je program, který kontroluje připojování na SSH a v případě že 1 IP adresa vícekrát zadá špatné heslo, dostane ban. https://www.digitalocean.com/community/ ... untu-12-04
Zde dám příklad pro triviální firewall, který bude v základu blokovat veškerá připojení zvenčí, povolí všechna připojení zevnitř ven a povolí připojení na SSH, Teamspeak server, jeden minecraft a webserver.
Kód: Vybrat vše
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 80/tcp # povolim http ba portu 80 tcp
sudo ufw allow 9987/udp # povolim ts server na portu 9987 udp
sudo ufw allow 10011/tcp # povolim query protokol TS serveru
sudo ufw allow 25565/tcp #povolim defaultni port pro minecraft
sudo ufw allow 25565/udp #povolim defaultni query.port pro minecraft
sudo ufw allow from 100.100.100.100 # zde nahradte svou IP adresou, zjistite ji treba na https://www.whatismyip.com/
!!! Porty a IP adresy samozřejmě musíte nahradit vlastními !!! Případně přidat další pravidla podle toho co za služby na serveru máte.
Firewall se zapíná příkazem
Kód: Vybrat vše
sudo ufw enable
Vypíná
Kód: Vybrat vše
sudo ufw disable
Zjištění stavu a cisel vsech pravidel:
Kód: Vybrat vše
sudo ufw status numbered
Pokud chcete smazat nějaké pravidlo:
Kód: Vybrat vše
sudo ufw delete cislo_pravidla
Po zapnutí firewallu je vhodné se z SSH neodpojovat a zkusit se připojit podruhé. Pokud se umíte připojit, nastavil jste vše pravděpodobně vpořádku. Pokud se připojit neumíte, firewall vypněte přes první terminál na kterém jste zůstali připojeni. Pokud nefunguje ani jedno, nezbývá než VPS restartovat, firewall by se po restartu neměl automaticky zapnout, pokud to není nastaveno v configu, což je v tomto případě nejspíše dobře
Tohle jsou asi nejzákladnější věci, pokud máte něco dalšího, klidně je sem postněte.