Kroky k zajištění našeho VPS

Tento kurz ukazuje, jak připravit a zabezpečit virtuální privátní server (VPS) v systému Debian GNU / Linux. Než začneme, předpokládají se určité věci:

  1. Máte střední úroveň znalostí GNU / Linuxu.
  2. Existuje VPS pro osobní použití, ke kterému máme přístup přes SSH.
  3. VPS má vyhrazený externí ipv4 250.250.250.155 a náš poskytovatel vlastní blok 250.250.0.0/16. (1)
  4. V našem VPS budeme mít pro přístup zvenčí povoleny pouze služby http, https a ssh.
  5. Externí DNS nebude povoleno, protože se obvykle provádí na panelu našeho poskytovatele. (2)
  6. Bude to fungovat jako superuživatel.

Instalace

Jako první krok aktualizujme server a nainstalujte některé balíčky, které budeme potřebovat:

# aptitude update & aptitude safe-upgrade # aptitude -RvW install dropbear gesftpserver sslh iptables-persistent ulogd fail2ban nginx-light apache2-utils dnsutils telnet ghostscript poppler-utils zip unzip unrar-free p7zip-full less multitail tee mc

konfigurace

Nyní vytvoříme pracovního uživatele. Práce jako root na serveru je nezabezpečená, takže nejprve vytvoříme speciálního uživatele:

operátor adduser usermod -aG operátor sudo

První příkaz vytvoří uživatele operátoru, druhý ho přidá do skupiny sudo, což vám umožní spouštět aplikace jako root.

Upravte oprávnění pro superuživatele

Abychom mohli pravidelně pracovat, budeme uživatele používat operátor dříve vytvořené, musíme upravit možnosti provádění příkazu jako superuživatele, pro které provedeme následující příkaz:

visudo

Tento příkaz v zásadě umožňuje upravit soubor / etc / sudoers; ve kterém bychom měli obsahovat tyto řádky:

Výchozí nastavení env_reset, timestamp_timeout = 0% sudo ALL = (ALL: ALL) ALL

V prvním řádku je možnost přidána k výchozím hodnotám timestamp_timeout což vám umožňuje nastavit dobu platnosti (v minutách) hesla při spuštění příkazu sudo. Výchozí hodnota je 5, ale to je někdy nebezpečné ze dvou důvodů:

  1. Pokud neúmyslně necháme náš počítač přihlášen před vypršením platnosti hesla, někdo může provést příkaz jako root bez jakýchkoli omezení.
  2. Pokud z neznalosti provedeme aplikaci nebo skript, který obsahuje škodlivý kód, než vyprší platnost hesla, mohla by aplikace bez našeho výslovného souhlasu mít přístup do našeho systému jako superuživatel.

Abychom se vyhnuli rizikům, nastavili jsme hodnotu na nulu, to znamená, že při každém spuštění příkazu sudo bude nutné zadat heslo. Pokud je záporná hodnota nastavena na -1, bude to mít za následek, že platnost hesla nikdy nevyprší, což by vedlo k opačnému výsledku, než jaký chceme.

Na druhém řádku je objasněno, že skupina sudo může provádět jakýkoli příkaz na libovolném počítači, což je obvyklé, i když je možné jej upravit. (3) Existují lidé, kteří pro usnadnění uvádějí řádek následujícím způsobem, aby nemuseli zadávat heslo:

% sudo ALL = (ALL: ALL) NOPASSWD: ALL

Jak jsme však vysvětlili dříve, je to riskantní, a proto se to nedoporučuje.

Zakázat restart

Z bezpečnostních důvodů deaktivujeme také restart pomocí kombinace kláves Ctrl + Alt + Del, pro které musíme přidat tento řádek do souboru / etc / inittab:

ca: 12345: ctrlaltdel: / bin / echo "Ctrl + Alt + Del byl deaktivován."

Nahraďte OpenSSH za DropBear

Většina VPS přichází s nainstalovaným OpenSSH, což je jistě velmi užitečné, ale pokud nepotřebujeme využívat všechny funkce OpenSSH, existují pro VPS lehčí alternativy, jako například dropbear, což je obvykle dostatečné pro pravidelné používání. Nevýhodou této aplikace však je, že nepřichází s integrovaným serverem SFTP, a proto jsme na začátku nainstalovali balíček gesftpserver.

Abychom nakonfigurovali Dropbear, upravíme soubor / etc / default / dropbear takže obsahuje tyto dva řádky:

NO_START = 0 DROPBEAR_EXTRA_ARGS = "- w -p 127.0.0.1:22 -I 1200 -m"

První řádek jednoduše povolí službu a druhý provede několik věcí:

  1. Vyhněte se přístupu root.
  2. Díky tomu služba naslouchá na portu 22 místního rozhraní (proč vysvětlíme později).
  3. Nastavuje dobu čekání (20 minut).

SSLH

Port 22 (SSH) je dobře známý a je obecně jedním z prvních, které se hackeři pokusí prolomit, takže místo toho použijeme port 443 (SSL). Stává se, že tento port slouží k zabezpečenému procházení přes HTTPS.

Z tohoto důvodu použijeme balíček sslh, který není ničím jiným než multiplexerem, který analyzuje pakety, které přicházejí na port 443, a směruje je interně do jedné nebo jiné služby v závislosti na tom, zda je typ provozu SSH nebo SSL.

SSLH nemůže poslouchat na rozhraní, kde již poslouchá jiná služba, a proto jsme dříve nechali Dropbear naslouchat na místním rozhraní.

Nyní musíme sslh uvést rozhraní a port, přes který má poslouchat a kam přesměrovat pakety v závislosti na typu služby, a proto upravíme konfigurační soubor / etc / default / sslh:

DAEMON = / usr / sbin / sslh DAEMON_OPTS = "- uživatel sslh --listen 250.250.250.155:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile / var / run / sslh / sslh .pid "RUN = ano

Nakonec restartujeme služby:

service ssh stop && service dropbear start && service sslh restart

Po předchozím příkazu bude naše zabezpečená relace pravděpodobně přerušena, v takovém případě se stačí znovu přihlásit, ale tentokrát s pracovním uživatelem a pomocí portu 443. Pokud relace není přerušena, je vhodné ji ukončit a začít znovu s příslušnými hodnotami.

Pokud vše funguje správně, můžeme pokračovat v práci jako root a pokud si přejeme, odinstalovat OpenSSH:

sudo su - aptitude -r vymazat openssh-server

Firewall

Další věc, kterou uděláme, je oddělit protokoly z brány firewall do samostatného souboru /var/log/firewall.log abychom usnadnili další analýzu, a proto jsme při spuštění nainstalovali balíček ulogd. Za tímto účelem soubor upravíme /etc/logd.conf upravit příslušnou část:

[LOGEMU] file = "/ var / log / firewall.log" sync = 1

Dále upravíme soubor rotace záznamu / etc / logrotate / ulogd udržovat denní rotaci (s datem) a ukládat komprimované salvy do adresáře / var / log / ulog /:

/var/log/ulog/*.log /var/log/firewall.log {denní datum chybí chybí komprimovat zpoždění komprimovat sdílené skripty vytvořit 640 root admin postrotovat /etc/init.d/ulogd znovu načíst mv /var/log/firewall.log-* .gz / var / log / ulog / endscript}

Potom vytvoříme pravidla netfilteru provedením následujícího:

IPT = $ (který iptables) IPEXT = 250.250.250.155 IPEXTBLK = 250.250.0.0 / 16 IPBCAST = 255.255.255.255 $ IPT -F $ IPT -X $ IPT -Z $ IPT -A VSTUP -i lo -j PŘIJMOUT $ IPT - P VSTUP DROP $ IPT -P VPRED DROP $ IPT -P VÝSTUP PŘIJMOUT $ IPT -A VSTUP -m stav --state INVALID -j ULOG --ulog-prefix IN_INVALID $ IPT -A INPUT -p igmp -j ULOG --ulog -prefix IN_IGMP $ IPT -A INPUT -m pkttype --pkt-type broadcast -j ULOG --ulog-prefix IN_BCAST $ IPT -A INPUT -m pkttype --pkt-type multicast -j ULOG --ulog-prefix IN_MCAST $ IPT -A FORWARD -j ULOG --ulog-prefix FORWARD $ IPT -N ICMP_IN $ IPT -A VSTUP!  -i lo -p icmp -j ICMP_IN $ IPT -A ICMP_IN -p icmp -f -j ULOG --ulog-prefix IN_ICMP_FRAGMENTED $ IPT -A ICMP_IN -p icmp -m icmp -m délka!  --lenght 28: 1322 -j ULOG --ulog-prefix IN_ICMP_INVALIDSIZE $ IPT -A ICMP_IN -p icmp -m icmp -m hashlimit --hashlimit-above 4 / sec --hashlimit-mode srcip --hashlimit-srcmask 24 - -hashlimit-name icmpflood -j ULOG --ulog-prefix IN_ICMP_FLOOD $ IPT -A ICMP_IN -p icmp -m icmp -m hashlimit --hashlimit-upto 64kb / min --hashlimit-mode srcip --hashlimit-srcmask 24 - hashlimit-name icmpattack -j ULOG --ulog-prefix IN_ICMP_FLOOD $ IPT -A ICMP_IN -p icmp -m icmp -m u32!  --u32 "0x4 & 0x3fff = 0x0" -j ULOG --ulog-prefix IN_ICMP_ATTACK $ IPT -A ICMP_IN -p icmp -m icmp!  --icmp-type echo-request -m state --state NEW -j ULOG --ulog-prefix IN_ICMP_INVALID $ IPT -A ICMP_IN -p icmp -m icmp --icmp-type echo-request -j ULOG --ulog- prefix IN_ICMP $ IPT -A ICMP_IN -p icmp -m icmp --icmp-typ echo-request -m limit --limit 1 / sec --limit-burst 4 -j ACCEPT $ IPT -A ICMP_IN -p icmp -m icmp --icmp-type echo-response -m limit --limit 2 / sec --limit-burst 4 -j ACCEPT $ IPT -A ICMP_IN -p icmp -m icmp --icmp-type destination-unreachable -m limit - limit 2 / s --limit-burst 4 -j ACCEPT $ IPT -A ICMP_IN -p icmp -m icmp --icmp-typ časově překročen -m limit --limit 2 / sec --limit-burst 4 -j ACCEPT $ IPT -A ICMP_IN -p icmp -m icmp --icmp typ parametrického problému -m limit --limit 2 / s --limit-burst 4 -j ACCEPT $ IPT -A ICMP_IN -j RETURN $ IPT -N UDP_IN $ IPT - VSTUP!  -i lo -p udp -j UDP_IN $ IPT -A UDP_IN!  - hle!  -p udp -f -j ULOG --ulog-prefix IN_UDP_FRAGMENTED $ IPT -A UDP_IN -p udp -m udp --sport 53 -m délka!  --lenght 28: 576 -j ULOG --ulog-prefix IN_UDP_DNS_INVALIDSIZE $ IPT -A UDP_IN -p udp -m udp --dport 53 -m -state --state NEW -j ULOG --ulog-prefix IN_UDP_DNSREQUEST $ IPT - A UDP_IN -p udp -m udp --dport 53 -m -state --state NEW -j REJECT --reject-with icmp-port-unreachable $ IPT -A UDP_IN -p udp -m udp!  --sport 53!  -s $ IPEXTBLK!  -d $ IPBCAST -m state --state NEW -j ULOG --ulog-prefix IN_UDP $ IPT -A UDP_IN -p udp -m udp -m state --state ESTABLISHED, RELATED -j ACCEPT $ IPT -A UDP_IN -j NÁVRAT $ IPT -N TCP_IN $ IPT -A VSTUP!  -i lo -p tcp -j TCP_IN $ IPT -A TCP_IN!  - hle!  -p tcp -f -j ULOG --ulog-prefix IN_TCP_FRAGMENTED $ IPT -A TCP_IN -p tcp -m tcp --sport 53 -m stav --state ZAVEDENO, SOUVISEJÍCÍ -m délka!  - délka 513: 1500 -j ULOG --ulog-prefix IN_TCP_DNS_INVALIDSIZE $ IPT -A TCP_IN -p tcp -m tcp --dport 53 -m state --state NEW -j ULOG --ulog-prefix IN_TCP_DNS $ IPT -A TCP_IN -p tcp -m tcp --dport 53 -m stav --state NOVINKA -j ODMÍTNOUT - odmítnout-s icmp-port-nedosažitelný $ IPT -A TCP_IN -p tcp -m tcp -m multiport!  --dports 80,443 -m state --state NEW -j ULOG --ulog-prefix IN_TCP $ IPT -A TCP_IN -p tcp -m tcp -m multiport --dports 80,443 -m state --state NEW -m hashlimit - hashlimit-upto 4 / sec --hashlimit-burst 16 --hashlimit-mode srcip --hashlimit-name navreq -j ACCEPT $ IPT -A TCP_IN -p tcp -m tcp -m multiport --dports 80,443 -m state - stát ZALOŽENO - m connlimit!  --connlimit-above 16 -j ACCEPT $ IPT -A TCP_IN -p tcp -m tcp -m multiport! 

S předchozí konfigurací by měl být náš VPS přiměřeně zabezpečen, ale pokud si přejeme, můžeme ho zabezpečit trochu víc, pro které můžeme použít některá pokročilejší pravidla.

Ne všechny VPS umožňují instalaci dalších modulů pro netfilter, ale velmi užitečný je psd, což vám umožní vyhnout se skenování portů. Tento modul bohužel není ve výchozím nastavení integrován do netfilteru, takže je nutné nainstalovat určité balíčky a poté modul sestavit:

aptitude -RvW nainstalovat iptables-dev xtables-addons-source module-assistant module-assistant --verbose --text-mode auto-install xtables-addons-source

Po dokončení výše uvedeného můžeme přidat toto pravidlo:

iptables -A VSTUP -m psd --psd-váha-práh 15 --psd-zpoždění-práh 2000 --psd-lo-hmotnost-portu 3 --psd-hi-porty-váha 1 -j ULOG --ulog- předpona IN_PORTSCAN

Výše uvedené pravidlo v zásadě znamená, že vytvoříme čítač, který se zvýší o 3 při každém pokusu o přístup k portu nižšímu než 1024 a o 1 při každém pokusu o přístup k portu nad 1023, a když tento čítač dosáhne 15 v po dobu kratší než 20 sekund budou balíčky zaregistrovány do ulog jako pokus o portcancan. Pakety by mohly být stále vyřazeny najednou, ale v tomto případě hodláme použít fail2ban, které nakonfigurujeme později.

Jakmile jsou pravidla vytvořena, musíme učinit určitá opatření, aby byla trvalá, jinak o ně při restartu serveru přijdeme. Existuje několik způsobů, jak toho dosáhnout; V tomto kurzu použijeme balíček iptables-persistent, který jsme nainstalovali na začátku a do kterého se ukládají pravidla /etc/iptables/rules.v4 y /etc/iptables/rules.v6 pro ipv6.

iptables-save> /etc/iptables/rules.v4

Ve skutečnosti, i když používání protokolu ipv6 na Kubě ještě není rozšířené, mohli bychom vytvořit některá základní pravidla:

IPT = $ (který ip6tables) $ IPT -P VSTUP DROP $ IPT -P VPRED DROP $ IPT -P VÝSTUP AKCEPT $ IPT -A VSTUP -i lo -j PŘIJMOUT $ IPT -A VSTUP! -i lo -m state --state ESTABLISHED, RELATED -j ACCEPT unset IPT

Tato pravidla lze také nastavit jako trvalá:

ip6tables-save> /etc/iptables/rules.v6

Nakonec pro větší zabezpečení vyčistíme registr brány firewall a restartujeme služby:

echo -n> /var/log/firewall.log služba logrotate restart služba ulogd restart služba iptables-trvalý restart

Nginx

Jako webový server použijeme Nginx, protože VPS mají ve srovnání se skutečným serverem obvykle menší množství RAM, takže je obecně vhodné mít něco lehčího než Apache.

Před konfigurací Nginx vytvoříme certifikát (bez hesla) pro použití přes HTTPS:

cd / etc / nginx openssl genrsa -des3 -out cert.key 4096 cp -v cert.key cert.key.original openssl req -new -key cert.key -out cert.csr openssl rsa -in cert.key.original - out cert.key openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.crt

Jakmile to provedete, vytvoříme soubor hesla pro uživatele „elusuario“:

htpasswd -c .htpasswd uživatele

Dále soubor upravíme / etc / nginx / sites-available / default nastavit výchozí předvolby webu. Může to vypadat takto:

server {název_serveru localhost; index index.html index.htm default.html default.htm; root / var / www; umístění / {# nastavit pořadí ověření a stránku, která se má načíst, pokud není nalezen identifikátor URI try_files $ uri $ uri / /index.html; }} server {naslouchat 127.0.0.1:443; název_serveru localhost; index index.html index.htm default.html default.htm; root / var / www; ssl zapnuto; ssl_certificate cert.crt; ssl_certificate_key cert.key; ssl_session_timeout 5m; # Povolit HTTPS pouze přes TLS (bezpečnější než SSL) ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # upřednostnit šifry s vysokou pevností [HIGH], # přesunout šifry se střední silou [STŘEDNÍ] na konec seznamu, # deaktivovat šifry s nízkou pevností [LOW] (40 a 56 bitů) # deaktivovat šifry pomocí exportních algoritmů [ EXP] # deaktivovat nulové šifry [eNULL], bez ověřování [aNULL], SSL (verze 2 a 3) a DSS (povolit klíče pouze do 1024 bitů) ssl_ciphers VYSOKÉ: + STŘEDNÍ :! NÍZKÉ :! EXP:! ANULL :! eNULL :! SSLv3 :! SSLv2 :! DSS; # Upřednostněte metody šifrování serveru (ve výchozím nastavení jsou použity klientské) ssl_prefer_server_ciphers on; umístění / {# povolit ověřování auth_basic "Přihlásit se"; auth_basic_user_file /etc/nginx/.htpasswd; # nastavte pořadí ověření a načtení kódu stránky, pokud nebyl nalezen identifikátor URI try_files $ uri $ uri / = 404; # povolit vytvoření indexu pro autoindex ověřených uživatelů; autoindex_exact_size off; autoindex_localtime zapnuto; }}

Zkontrolujeme správnost konfigurace:

nginx -t

Nakonec službu restartujeme:

restart služby nginx

Fail2Ban

Před zahájením konfigurace Fail2Ban pro větší zabezpečení zastavíme službu a vyčistíme registr:

fail2ban-client stop echo -n> /var/log/fail2ban.log

Dále vytvoříme konfigurační soubor /etc/fail2ban/jail.local s následujícím vlastním obsahem:

# Vlastní konfigurační soubor /etc/fail2ban/jail.local # [VÝCHOZÍ] findtime = 43200; 12 hodin Bantime = 86400; 1 den maxretry = 3; zákaz se projeví po 4. pokusu [ssh] povoleno = false [nginx-auth] povoleno = true filtr = nginx-auth akce = iptables-multiport [name = NoAuthFailures, port = "http, https"] logpath = / var / log / nginx * / * error * .log [nginx-badbots] enabled = true filter = apache-badbots action = iptables-multiport [name = BadBots, port = "http, https"] logpath = / var / log / nginx * /*access*.log bantime = 604800; 1 týden maxretry = 0 [nginx-login] povoleno = skutečný filtr = nginx-login akce = iptables-multiport [name = NoLoginFailures, port = "http, https"] logpath = / var / log / nginx * / * přístup *. log bantime = 1800; 30 minut [nginx-noscript] enabled = true action = iptables-multiport [name = NoScript, port = "http, https"] filter = nginx-noscript logpath = /var/log/nginx*/*access*.log maxretry = 0 [nginx-proxy] enabled = true action = iptables-multiport [name = NoProxy, port = "http, https"] filter = nginx-proxy logpath = /var/log/nginx*/*access*.log bantime = 604800 ; 1 týden maxretry = 0 [firewall] povolen = true action = iptables-multiport [name = Firewall] filtr = firewall logpath = /var/log/firewall.log maxretry = 0

Jakmile to provedete, vytvoříme v adresáři /etc/fail2ban/filters.d/ následující soubory:

# /etc/fail2ban/filter.d/nginx-auth.conf # Filtr ověřování # Blokuje adresy IP, které se při základním ověřování nepodaří ověřit # [Definice] failregex = pro základní ověřování nebyl zadán žádný uživatel / heslo. * klient: uživatel. * nebyl nalezen v. * klient: uživatel. * neshoda hesla. * klient: ignoreregex =
# /etc/fail2ban/filter.d/nginx-login.conf # Filtr přihlášení # Blokuje adresy IP, které se nepodaří ověřit pomocí přihlašovací stránky webové aplikace # Prohledat protokol přístupu pro HTTP 200 + POST / relace => neúspěšné přihlášení # [Definice ] failregex = ^ -. * POST / relace HTTP / 1 \ .. "200 ignoreregex =
# /etc/fail2ban/filter.d/nginx-noscript.conf # Filtr Noscript # Blokovat adresy IP, které se pokoušejí spouštět skripty, jako jsou .php, .pl, .exe a další vtipné skripty. # Odpovídá např. # 192.168.1.1 - - "ZÍSKAT /something.php # [definice] failregex = ^ -. * GET. * (\. Php | \ .asp | \ .exe | \ .pl | \ .cgi | \ scgi) ignoreregex =
# /etc/fail2ban/filter.d/proxy.conf # Filtr proxy # Blokovat adresy IP, které se snaží použít server jako proxy. # Odpovídá např. # 192.168.1.1 - - „ZÍSKEJTE http://www.something.com/ # [Definice] failregex = ^ -. * ZÍSKAT http. * Ignoreregex =
# /etc/fail2ban/filter.d/firewall.conf # Filtr brány firewall # [Definice] failregex = ^. * IN_ (NEPLATNÝ | PORTSCAN | UDP | TCP |). * SRC = . * $ ignoreregex =

Nakonec spustíme službu a načteme konfiguraci:

fail2ban-service -b fail2ban-client reload

Ověření

Jako poslední krok můžeme záznamy prohlížet pomocí tail -f o multitail - následovat vše. Druhá aplikace ve skutečnosti nabízí tu výhodu, že umožňuje zobrazit více souborů najednou a poskytuje základní zvýraznění syntaxe.

V případě, že e-mailový účet není nakonfigurován ve VPS, je vhodné deaktivovat varovnou zprávu, která se objeví při spuštění multitailu, pro kterou provedeme následující příkaz:

echo "check_mail: 0"> ~ / .multitailrc

Ve skutečnosti bychom mohli udělat alias (4) pro rychlé zobrazení protokolů pomocí krátkého příkazu, například „flog“:

alias flog = 'multitail --follow-all /var/log/firewall.log /var/log/fail2ban.log'

1) Jedná se o fiktivní hodnoty.
2) Povolení dalších služeb je snadné, jakmile pochopíte, jak to funguje.
3) Pro více informací spusťte man sudoers.
4) Volitelně lze přidat do souboru ~ / .bash_aliases


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   MSX řekl

    Existuje několik zajímavých věcí, +1

  2.   yukiteru řekl

    @ Hugo tento řádek v konfiguraci:

    ssl_protocols SSLv3 TLSv1;

    Vybral bych z toho SSLv3, protože tento protokol již není bezpečný, dokonce ani v Debianu Jessie bylo nakonfigurováno mnoho služeb, aby se z toho důvodu tento protokol nepoužíval.

    Informace k tématu zde:

    https://www.linode.com/docs/security/security-patches/disabling-sslv3-for-poodle
    http://disablessl3.com/

    1.    Hugo řekl

      Myšlenkou nebylo skutečně nabídnout hlavní služby přes HTTPS, ale vysvětlit, jak používat port 443 pro SSH, aniž by přišla o možnost jeho použití pro HTTPS, pokud je to nutné, ale díky za varování.

      Každopádně jsem článek aktualizoval, abych trochu upravil konfiguraci nginx a mimochodem zahrnoval několik komentářů, abych trochu objasnil věci s tímto šifrovacím mechanismem a opravil některé drobné chyby.

  3.   Daniel PZ řekl

    Moc děkuji za tento skvělý návod, teď ho uvedu do praxe! :D, jen tak dál DesdeLinux, vždy mě překvapí, Zdravím z Peru.

  4.   Ekuandekuera řekl

    Děkuji moc za sdílení.

  5.   Fernando řekl

    velmi dobrý průvodce a pochází z perel, když jsem začal v tomto blogu, ale ještě víc, když se chystám připojit své první vps a stále s mnoha problémy, ale tento článek mě vzal z mnoha pochybností, díky a pozdravy