Kroki, aby zabezpieczyć nasz VPS

Ten samouczek pokazuje, jak przygotować i zabezpieczyć wirtualny serwer prywatny (VPS) w systemie Debian GNU / Linux. Zanim zaczniemy, zakładamy pewne rzeczy:

  1. Masz średni poziom znajomości systemu GNU / Linux.
  2. Istnieje VPS do użytku osobistego, do którego mamy dostęp przez SSH.
  3. VPS ma dedykowane zewnętrzne IPv4 250.250.250.155, a nasz dostawca jest właścicielem bloku 250.250.0.0/16. (1)
  4. W naszym VPS będziemy mieć dostęp tylko z zewnątrz do usług http, https i ssh.
  5. Zewnętrzny DNS nie zostanie włączony, ponieważ zwykle odbywa się to w panelu naszego dostawcy. (2)
  6. Będzie działać jako superużytkownik.

instalacja

W pierwszej kolejności zaktualizujmy serwer i zainstaluj kilka pakietów, których będziemy potrzebować:

# 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

konfiguracja

Teraz utworzymy użytkownika roboczego. Praca jako root na serwerze jest niebezpieczna, więc najpierw utworzymy specjalnego użytkownika:

operator adduser usermod -aG operator sudo

Pierwsze polecenie tworzy użytkownika operatora, drugie dodaje go do grupy sudo, co pozwoli na uruchamianie aplikacji jako root.

Dostosuj uprawnienia dla superużytkowników

Jeśli chodzi o regularną pracę, będziemy korzystać z użytkownika operator wcześniej utworzony, musimy dostosować opcje wykonywania polecenia jako superużytkownik, dla którego wykonujemy następujące polecenie:

visudo

To polecenie w zasadzie umożliwia modyfikację pliku / etc / sudoers; w którym powinniśmy zawrzeć te wiersze:

Domyślnie env_reset, timestamp_timeout = 0% sudo ALL = (ALL: ALL) ALL

W pierwszym wierszu opcja jest dodawana do wartości domyślnych znacznik czasu_timeout co pozwala ustawić czas wygaśnięcia (w minutach) hasła podczas wykonywania polecenia sudo. Wartość domyślna to 5, ale czasami jest to niebezpieczne z dwóch powodów:

  1. Jeśli nieumyślnie zostawimy nasz komputer zalogowany przed wygaśnięciem hasła, ktoś może wykonać polecenie jako superużytkownik bez żadnych ograniczeń.
  2. Jeśli z powodu ignorancji uruchomimy aplikację lub skrypt, który zawiera złośliwy kod przed wygaśnięciem hasła, aplikacja może mieć dostęp do naszego systemu jako superużytkownik bez naszej wyraźnej zgody.

Aby uniknąć ryzyka, ustawiliśmy wartość na zero, czyli za każdym razem, gdy wykonywane jest polecenie sudo, trzeba będzie wprowadzić hasło. Jeśli wartość ujemna jest ustawiona na -1, w efekcie hasło nigdy nie wygasa, co dałoby wynik odwrotny do oczekiwanego.

W drugiej linii wyjaśniono, że grupa sudo może wykonać dowolne polecenie na dowolnym komputerze, co jest normalne, chociaż można je dostosować. (3) Są tacy, którzy dla wygody umieszczają następującą linię, aby uniknąć konieczności wpisywania hasła:

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

Jednak, jak wyjaśniliśmy wcześniej, jest to ryzykowne i dlatego nie jest zalecane.

Wyłącz ponowne uruchomienie

Ze względów bezpieczeństwa wyłączymy również ponowne uruchomienie za pomocą kombinacji klawiszy Ctrl + Alt + Del, dla którego musimy dodać tę linię w pliku / etc / inittab:

ca: 12345: ctrlaltdel: / bin / echo "Ctrl + Alt + Del zostało wyłączone."

Zastąp OpenSSH DropBear

Większość VPS jest dostarczana z zainstalowanym OpenSSH, co z pewnością jest bardzo przydatne, ale jeśli nie musimy wykorzystać całej funkcjonalności OpenSSH, istnieją lżejsze alternatywy dla VPS, takie jak niedźwiedź, co zwykle wystarcza do regularnego stosowania. Jednak wadą tej aplikacji jest to, że nie ma zintegrowanego serwera SFTP, dlatego pakiet zainstalowaliśmy na początku serwer gestftp.

Aby skonfigurować Dropbear, zmodyfikujemy plik / etc / default / dropbear tak, aby zawierał te dwie linie:

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

Pierwsza linia po prostu włącza usługę, a druga robi kilka rzeczy:

  1. Unikaj dostępu do roota.
  2. Sprawia, że ​​usługa nasłuchuje na porcie 22 interfejsu lokalnego (wyjaśnimy dlaczego później).
  3. Ustawia czas oczekiwania (20 minut).

SSLH

Port 22 (SSH) jest dobrze znany i generalnie jest jednym z pierwszych, które hakerzy próbują złamać, więc zamiast tego użyjemy portu 443 (SSL). Zdarza się, że ten port służy do bezpiecznego przeglądania przez HTTPS.

Z tego powodu użyjemy pakietu sslh, który jest niczym innym jak multiplekserem, który analizuje pakiety docierające do portu 443 i kieruje je wewnętrznie do jednej lub drugiej usługi w zależności od tego, czy typ ruchu to SSH czy SSL.

SSLH nie może nasłuchiwać na interfejsie, w którym inna usługa już nasłuchuje, dlatego wcześniej sprawiliśmy, że Dropbear nasłuchuje na interfejsie lokalnym.

Teraz musimy wskazać interfejs sslh i port, na którym ma nasłuchiwać i gdzie przekierować pakiety w zależności od rodzaju usługi iw tym celu zmodyfikujemy plik konfiguracyjny / etc / default / sslh:

DAEMON = / usr / sbin / sslh DAEMON_OPTS = "- użytkownik 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 = yes

Na koniec ponownie uruchamiamy usługi:

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

Po wykonaniu poprzedniego polecenia nasza bezpieczna sesja prawdopodobnie zostanie przerwana, w takim przypadku wystarczy zalogować się ponownie, ale tym razem z użytkownikiem roboczym i korzystającym z portu 443. Jeśli sesja nie zostanie przerwana, wskazane jest jej zamknięcie i ponowne rozpoczęcie. z odpowiednimi wartościami.

Jeśli wszystko działa poprawnie, możemy kontynuować pracę jako root i jeśli chcemy, odinstaluj OpenSSH:

sudo su - aptitude -r purge openssh-server

Zapora ogniowa

Następną rzeczą, którą zrobimy, będzie oddzielenie dzienników z zapory do osobnego pliku /var/log/firewall.log aby ułatwić dalszą analizę, dlatego podczas uruchamiania zainstalowaliśmy pakiet ulogd. W tym celu zmodyfikujemy plik /etc/logd.conf aby dostosować odpowiednią sekcję:

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

Następnie zmodyfikujemy plik rotacji rekordów / etc / logrotate / ulogd aby zachować codzienną rotację (z datą) i zapisywać skompresowane salwy w katalogu / var / log / ulog /:

/var/log/ulog/*.log /var/log/firewall.log {daily dateext missingok compress delaycompress sharedscripts utwórz 640 root adm postrotate /etc/init.d/ulogd reload mv /var/log/firewall.log-* .gz / var / log / ulog / endcript}

Następnie stworzymy reguły netfilter, wykonując następujące czynności:

IPT = $ (które 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 INPUT -i lo -j AKCEPTUJ $ IPT - P INPUT DROP $ IPT -P FORWARD DROP $ IPT -P OUTPUT ACCEPT $ IPT -A INPUT -m stan --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 INPUT!  -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ługość!  --length 28: 1322 -j ULOG --ulog-prefix IN_ICMP_INVALIDSIZE $ IPT -A ICMP_IN -p icmp -m icmp -m hashlimit --hashlimit-powyżej 4 / s --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- prefiks IN_ICMP $ IPT -A ICMP_IN -p icmp -m icmp --icmp-type echo-request -m limit --limit 1 / sec --limit-burst 4 -j AKCEPTUJ $ 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 / sek. --limit-burst 4 -j AKCEPTUJ $ IPT -A ICMP_IN -p icmp -m icmp - przekroczony czas typuicmp -m limit --limit 2 / sek --limit-burst 4 -j AKCEPTUJ $ IPT -A ICMP_IN -p icmp -m icmp --icmp-type problem z parametrami -m limit --limit 2 / s --limit-burst 4 -j AKCEPTUJ $ IPT -A ICMP_IN -j RETURN $ IPT -N UDP_IN $ IPT -A INPUT!  -i lo -p udp -j UDP_IN $ IPT -A UDP_IN!  -i lo!  -p udp -f -j ULOG --ulog-prefix IN_UDP_FRAGMENTED $ IPT -A UDP_IN -p udp -m udp --sport 53 -m długość!  --length 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 NOWOŚĆ -j REJECT --reject-with icmp-port-unreachable $ IPT -A UDP_IN -p udp -m udp!  - sport 53!  -s $ IPEXTBLK!  -d $ IPBCAST -m stan - stan NOWY -j ULOG --ulog-prefix IN_UDP $ IPT -A UDP_IN -p udp -m udp -m stan - stan USTANOWIONO, ZWIĄZANE -j AKCEPTUJ $ IPT -A UDP_IN -j RETURN $ IPT -N TCP_IN $ IPT -A INPUT!  -i lo -p tcp -j TCP_IN $ IPT -A TCP_IN!  -i lo!  -p tcp -f -j ULOG --ulog-prefix IN_TCP_FRAGMENTED $ IPT -A TCP_IN -p tcp -m tcp --sport 53 -m stan --state USTANOWIONO, POWIĄZANE -m długość!  --length 513: 1500 -j ULOG --ulog-prefix IN_TCP_DNS_INVALIDSIZE $ IPT -A TCP_IN -p tcp -m tcp --dport 53 -m stan --state NEW -j ULOG --ulog-prefix IN_TCP_DNS $ IPT -A TCP_IN -p tcp -m tcp --dport 53 -m stan --state NOWOŚĆ -j REJECT --reject-with icmp-port-unreachable $ IPT -A TCP_IN -p tcp -m tcp -m multiport!  --dports 80,443 -m stan --state NEW -j ULOG --ulog-prefix IN_TCP $ IPT -A TCP_IN -p tcp -m tcp -m multiport --dports 80,443 -m stan --state NEW -m hashlimit - hashlimit-upto 4 / sec --hashlimit-burst 16 --hashlimit-mode srcip --hashlimit-name navreq -j AKCEPTUJ $ IPT -A TCP_IN -p tcp -m tcp -m multiport --dports 80,443 -m stan - stan USTANOWIONO -m connlimit!  --connlimit-above 16 -j AKCEPTUJ $ IPT -A TCP_IN -p tcp -m tcp -m multiport! 

Przy poprzedniej konfiguracji nasz VPS powinien być w miarę zabezpieczony, ale jeśli chcemy, możemy go zabezpieczyć trochę bardziej, do czego możemy użyć bardziej zaawansowanych reguł.

Nie wszystkie VPS pozwalają na instalację dodatkowych modułów dla netfiltra, ale bardzo przydatny jest psd, co pozwala uniknąć skanowania portów. Niestety ten moduł nie jest domyślnie zintegrowany z netfilter, więc konieczne jest zainstalowanie pewnych pakietów, a następnie zbudowanie modułu:

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

Po wykonaniu powyższych czynności możemy dodać taką regułę:

iptables -A INPUT -m psd --psd-weight -reshold 15 --psd-delay-próg 2000 --psd-lo-port-weight 3 --psd-hi-ports-weight 1 -j ULOG --ulog- przedrostek IN_PORTSCAN

Poprzednia reguła zasadniczo oznacza, że ​​utworzymy licznik, który będzie zwiększał się o 3 za każdym razem, gdy zostanie podjęta próba uzyskania dostępu do portu niższego niż 1024 i o 1 za każdym razem, gdy zostanie podjęta próba uzyskania dostępu do portu wyższego niż 1023, a gdy licznik osiągnie 15 okres krótszy niż 20 sekund, pakiety zostaną zarejestrowane przez uloguj jako próba skanowania portów. Pakiety nadal mogą zostać odrzucone od razu, ale w tym przypadku zamierzamy użyć fail2ban, które skonfigurujemy później.

Po utworzeniu reguł musimy podjąć pewne środki ostrożności, aby były trwałe, w przeciwnym razie utracimy je podczas ponownego uruchamiania serwera. Jest na to kilka sposobów; W tym samouczku użyjemy pakietu iptables-persistent, który zainstalowaliśmy na początku, który przechowuje reguły w /etc/iptables/rules.v4 y /etc/iptables/rules.v6 dla ipv6.

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

W rzeczywistości, chociaż użycie IPv6 na Kubie nie jest jeszcze rozpowszechnione, moglibyśmy stworzyć kilka podstawowych zasad:

IPT = $ (które ip6tables) $ IPT -P INPUT DROP $ IPT -P FORWARD DROP $ IPT -P OUTPUT ACCEPT $ IPT -A INPUT -i lo -j ACCEPT $ IPT -A INPUT! -i lo -m stan - stan USTANOWIONY, POWIĄZANY -j AKCEPTUJ nie ustawiono IPT

Te zasady można również utrwalić:

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

Wreszcie dla większego bezpieczeństwa, czyścimy rejestr zapory i ponownie uruchamiamy usługi:

echo -n> /var/log/firewall.log usługa logrotate restart usługa ulogd restart usługa iptables-persistent restart

nginx

Będziemy używać Nginx jako serwera WWW, ponieważ VPS mają zwykle mniejszą ilość pamięci RAM w porównaniu do prawdziwego serwera, więc ogólnie dobrym pomysłem jest posiadanie czegoś lżejszego niż Apache.

Przed skonfigurowaniem Nginx utworzymy certyfikat (bez hasła) do użytku przez 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

Gdy to zrobisz, utworzymy plik z hasłami dla użytkownika „elusuario”:

htpasswd -c .htpasswd użytkownika

Następnie zmodyfikujemy plik / etc / nginx / sites-available / default aby ustawić domyślne preferencje serwisu. Mogłoby to wyglądać tak:

serwer {nazwa_serwera localhost; index index.html index.htm default.html default.htm; root / var / www; location / {# ustaw kolejność weryfikacji i strony do załadowania, jeśli URI nie zostanie znaleziony try_files $ uri $ uri / /index.html; }} serwer {nasłuchiwanie 127.0.0.1:443; nazwa_serwera localhost; index index.html index.htm default.html default.htm; root / var / www; ssl włączony; ssl_certificate cert.crt; ssl_certificate_key cert.key; ssl_session_timeout 5m; # Włącz HTTPS tylko przez TLS (bezpieczniejsze niż SSL) ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # preferuj szyfry o wysokiej sile [WYSOKI], # przesuń szyfry o średniej sile [ŚREDNI] na koniec listy, # wyłącz szyfry o niskiej sile [NISKI] (40 i 56 bitów) # wyłącz szyfry z algorytmy eksportu [EXP] # wyłączanie szyfrów null [eNULL], bez uwierzytelniania [aNULL], SSL (wersje 2 i 3) i DSS (zezwalaj tylko na klucze do 1024 bitów) ssl_ciphers HIGH: + MEDIUM :! LOW :! EXP: ! aNULL :! eNULL :! SSLv3 :! SSLv2 :! DSS; # Preferuj metody szyfrowania serwera (domyślnie używane są klienckie) ssl_prefer_server_ciphers on; lokalizacja / {# włącz uwierzytelnianie auth_basic "Login"; auth_basic_user_file /etc/nginx/.htpasswd; # ustaw kolejność weryfikacji i kod strony do załadowania, jeśli URI try_files $ uri $ uri / = 404 nie zostanie znaleziony; # zezwalaj na tworzenie indeksu dla uwierzytelnionych użytkowników na autoindeks; autoindex_exact_size off; autoindex_localtime on; }}

Sprawdzamy, czy konfiguracja jest poprawna:

nginx -t

Na koniec ponownie uruchamiamy usługę:

ponowne uruchomienie usługi nginx

Fail2Ban

Przed przystąpieniem do konfiguracji Fail2Ban dla większego bezpieczeństwa zatrzymujemy usługę i czyścimy rejestr:

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

Następnie tworzymy plik konfiguracyjny /etc/fail2ban/jail.local z następującą zawartością niestandardową:

# Niestandardowy plik konfiguracyjny /etc/fail2ban/jail.local # [DOMYŚLNIE] findtime = 43200; 12 godzin bantime = 86400; 1 dzień maxretry = 3; blokada zacznie obowiązywać po czwartej próbie [ssh] enabled = false [nginx-auth] enabled = true filter = nginx-auth action = iptables-multiport [name = NoAuthFailures, port = "http, https"] logpath = / var / log / nginx * / * error * .log [nginx-badbots] enabled = true filter = apache-badbots action = iptables-multiport [nazwa = BadBots, port = "http, https"] logpath = / var / log / nginx * /*access*.log bantime = 4; 604800 tydzień maxretry = 1 [nginx-login] enabled = true filter = nginx-login action = iptables-multiport [name = NoLoginFailures, port = "http, https"] logpath = / var / log / nginx * / * access *. log bantime = 0; 1800 minut [nginx-noscript] włączone = true action = iptables-multiport [nazwa = NoScript, port = "http, https"] filter = nginx-noscript logpath = /var/log/nginx*/*access*.log maxretry = 30 [nginx-proxy] enabled = true action = iptables-multiport [nazwa = NoProxy, port = "http, https"] filter = nginx-proxy logpath = /var/log/nginx*/*access*.log bantime = 0 ; 604800 tydzień maxretry = 1 [firewall] włączony = true action = iptables-multiport [nazwa = Firewall] filter = firewall logpath = /var/log/firewall.log maxretry = 0

Gdy to zrobisz, tworzymy w katalogu /etc/fail2ban/filters.d/ następujące pliki:

# /etc/fail2ban/filter.d/nginx-auth.conf # Filtr uwierzytelniania # Blokuje adresy IP, które nie mogą uwierzytelnić się przy użyciu podstawowego uwierzytelniania # [Definicja] failregex = nie podano użytkownika / hasła do podstawowego uwierzytelnienia. * klient: użytkownik. * nie został znaleziony w. * klient: użytkownik. * niezgodność hasła. * klient: ignoreregex =
# /etc/fail2ban/filter.d/nginx-login.conf # Filtr logowania # Blokuje adresy IP, które nie mogą zostać uwierzytelnione przy użyciu strony logowania aplikacji internetowej # Skanuj dziennik dostępu dla HTTP 200 + POST / session => nieudane logowanie # [Definicja ] failregex = ^ -. * POST / sesje HTTP / 1 \ .. "200 ignoreregex =
# /etc/fail2ban/filter.d/nginx-noscript.conf # Filtr Noscript # Blokuj adresy IP próbujące uruchamiać skrypty takie jak .php, .pl, .exe i inne zabawne skrypty. # Pasuje np. # 192.168.1.1 - - "GET /something.php # [Definition] failregex = ^ -. * GET. * (\. Php | \ .asp | \ .exe | \ .pl | \ .cgi | \ scgi) ignoreregex =
# /etc/fail2ban/filter.d/proxy.conf # Filtr proxy # Zablokuj adresy IP próbujące używać serwera jako proxy. # Pasuje np. # 192.168.1.1 - - "GET http://www.something.com/ # [Definition] failregex = ^ -. * GET http. * Ignoreregex =
# /etc/fail2ban/filter.d/firewall.conf # Filtr zapory # [Definicja] failregex = ^. * IN_ (INVALID | PORTSCAN | UDP | TCP |). * SRC = . * $ ignoreregex =

Na koniec uruchamiamy usługę i wczytujemy konfigurację:

fail2ban-service -b fail2ban-client reload

Weryfikacja

Na koniec możemy przeglądać rekordy za pomocą ogon -f o multitail - follow-all. W rzeczywistości ta ostatnia aplikacja ma tę zaletę, że umożliwia jednoczesne przeglądanie wielu plików i zapewnia podstawowe podświetlanie składni.

W przypadku, gdy konto e-mail nie jest skonfigurowane w VPS, wskazane jest wyłączenie komunikatu ostrzegawczego, który pojawia się przy uruchamianiu multitail, dla którego wykonamy następujące polecenie:

echo "check_mail: 0"> ~ / .multitailrc

W rzeczywistości moglibyśmy stworzyć alias (4), aby szybko przeglądać dzienniki za pomocą krótkiej komendy, na przykład „flog”:

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

1) To są fikcyjne wartości.
2) Włączenie innych usług jest łatwe, jeśli zrozumiesz, jak to działa.
3) Aby uzyskać więcej informacji, uruchom man sudoers.
4) Opcjonalnie można go dodać do pliku ~ / .bash_aliases


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   msx powiedział

    Jest kilka interesujących rzeczy, +1

  2.   jukiteru powiedział

    @Hugo ta linia w konfiguracji:

    ssl_protokoły SSLv3 TLSv1;

    Usunąłbym z niego SSLv3, ponieważ ten protokół nie jest już bezpieczny, nawet w Debianie Jessie wiele usług zostało skonfigurowanych tak, aby uniknąć używania tego protokołu z tego powodu.

    Informacje na ten temat tutaj:

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

    1.    Hugo powiedział

      Pomysł nie polegał tak naprawdę na oferowaniu głównych usług przez HTTPS, ale na wyjaśnieniu, jak używać portu 443 dla SSH bez utraty możliwości używania go dla HTTPS, jeśli to konieczne, ale dzięki za ostrzeżenie.

      W każdym razie zaktualizowałem artykuł, aby nieco zmodyfikować konfigurację nginx i, nawiasem mówiąc, zamieściłem kilka komentarzy, aby wyjaśnić nieco więcej kwestii związanych z mechanizmami szyfrowania i naprawić drobne błędy.

  3.   Daniel PZ powiedział

    Dziękuję bardzo za ten świetny tutorial, teraz zastosuję go w praktyce! :D, tak trzymaj DesdeLinux, zawsze mnie zaskakują. Pozdrowienia z Peru.

  4.   andekuera powiedział

    Dziękuję bardzo za dzielenie się.

  5.   fernando powiedział

    bardzo dobry przewodnik i pochodzi z pereł teraz, gdy zacząłem na tym blogu, ale tym bardziej teraz, gdy mam zamiar zamontować swoje pierwsze vps i nadal mam wiele problemów, ale ten artykuł wyrwał mnie z wielu wątpliwości, podziękowań i pozdrowień