Základní zabezpečení a rady

Message
Autor
Uživatelský avatar
Austin
Site Admin
Příspěvky: 1251
Věk: 37
Registrován: 07 pro 2009, 23:58
Reputation: 4
Kontaktovat uživatele:

Základní zabezpečení a rady

#1 Příspěvekod Austin » 11 lis 2016, 17:29

Pokusím se zde vypsat alespoň pár základních rad jak zabezpečit Váš VPS server.

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"
jej poté můžete spustit pod daným uživatelem i když jste přihlášen třeba pod rootem.
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

Kód: Vybrat vše

###### Debian Main Repos
deb http://ftp.cz.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.cz.debian.org/debian/ wheezy main contrib non-free

###### Debian Update Repos
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb http://ftp.cz.debian.org/debian/ wheezy-proposed-updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://ftp.cz.debian.org/debian/ wheezy-proposed-updates main contrib non-free


Pro debian 8 jessie:
Spoiler: zobrazit

Kód: Vybrat vše

###### Debian Main Repos
deb http://ftp.cz.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.cz.debian.org/debian/ jessie main contrib non-free

###### Debian Update Repos
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.cz.debian.org/debian/ jessie-proposed-updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://ftp.cz.debian.org/debian/ jessie-proposed-updates main contrib non-free


Pro ubuntu 14.04:
Spoiler: zobrazit

Kód: Vybrat vše

###### Ubuntu Main Repos
deb http://....archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://....archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse

###### Ubuntu Update Repos
deb http://....archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://....archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://....archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://....archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://....archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://....archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://....archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://....archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse


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.
FakaHeda.eu - Administrátor, http://www.minecraft-hosting.cz, http://www.bf3-hosting.cz Pište nám tickety, ne PM.
Nezapomeňte dát karmu těm, kteří Vám pomohli s problémem

Uživatelský avatar
joker
Příspěvky: 116
Věk: 28
Registrován: 25 srp 2015, 14:10
Reputation: 2

Re: Základní zabezpečení a rady

#2 Příspěvekod joker » 06 pro 2016, 23:15

Pekný návod, a určite pomôže lepšie zabezpečiť VPS. (Sám používam :) )
ChatbanSystém (CS 1.6): https://github.com/Kalendarky/chatban/releases
-----------------------------------------------------------------------------------------------------

Menežéris.

ZiDyPL
Příspěvky: 295
Registrován: 13 dub 2015, 22:01
Reputation: 17

Re: Základní zabezpečení a rady

#3 Příspěvekod ZiDyPL » 09 pro 2016, 17:05

Pro zajímavost příkaz, který vypíše číslo, kolikrát se někdo snažil připojit na roota se špatným heslem:

Kód: Vybrat vše

cat /var/log/auth.log | grep "Failed password for root" | wc -l

Pokud nebude fungovat, zkuste před něj dát sudo (nebo se přihlásit za roota), nebo nainstalovat balíčky:

Kód: Vybrat vše

apt-get install grep wc -y


Zpět na „Návody“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host