Na wstępie zaproszę Cię do przeczytania poprzedniego artykułu, będącego zapowiedzią tego 3-częściowego tutoriala, pozwalającego każdemu laikowi na konfigurację serwera VPS do SEO (i nie tylko) od A do Z. Dowiesz się z niego, którą ofertę VPSów polecam do SEO i dlaczego. Przeczytasz jaki panel administracyjny warto wybrać do VPSa, a także jakie zmiany w konfiguracji VPSa obejmie obecny tutorial.

Pierwsza część tutoriala będzie dotyczyć czynności związanych z instalacją usług, panelu VestaCP oraz podstaw związanych z bezpieczeństwem. Zmienimy domyślne hasło root’a serwera VPS. Następnie zainstalujemy kilka podstawowych narzędzi, które przydadzą się podczas dalszych prac z serwerem VPS i panelem VestaCP. Poprawimy problem braku polskich znaków (zdarza się na serwerach od OVH). Następnie zainstalujemy panel VestaCP wraz z niezbędnymi usługami. Zmienimy hasło dla użytkownika admin. Dokonamy zmiany domyślnego portu SSH. Zaktualizujemy OpenSSL do wersji 1.0.2l lub 1.1.0f (do wyboru). Włączymy do firewalla usługi, które domyślnie są wyłączone. Zaktualizujemy fail2ban do wersji 0.9.6 lub 0.9.7 (do wyboru). Na sam koniec zainstalujemy zaawansowany firewall CSF w wersji 10.19.

Prócz instalacji panelu VestaCP wraz z domyślnymi usługami wszystkie inne czynności są opcjonalne. Możesz pominąć dowolny fragment tutoriala, jeśli uznasz, że instalacja/aktualizacja/modyfikacja nie jest Ci potrzebna. Ostrzegam też, że część usług aktualizowana jest do wersji, które nie znajdują się w repozytoriach z wersjami stable (jessie oraz jessie/updates), a znajdują się w repozytoriach jessie-backports oraz unstable. Część usług aktualizowanych jest do wersji zatwierdzonych jako stable dopiero dla Debiana 9 (stretch). Jeśli więc obawiasz się o stabilność/funkcjonalność takiej usługi to pomiń wybrany fragment.

Cały proces zawarty w trzyczęściowym tutorialu oparty jest na VPSach dzierżawionych od OVH. Nie gwarantuję, że wszystko będzie działać i u Ciebie, tym bardziej, jeśli masz VPS od innego usługodawcy. Z założenia jednak cały proces powinien być identyczny. Serwery VPS, do których ja mam dostęp znajdują się w różnych data center OVH, ale to nie powinno robić różnicy (poza jednym wyjątkiem, o którym później). Jeśli i Ty masz serwer VPS od OVH to w panelu OVH wybierz swój serwer, następnie kliknij po prawej stronie przycisk “Reinstalacja serwera VPS”. Z listy wybierz system “Debian 8 (Jessie) (64 bits)” i język polski dla wybranej instalacji. Pisałem chwilę wcześniej, że pomiędzy serwerami VPS od OVH może być jedna drobna różnica. Nawet wybierając wersję polską może okazać się, że instalacja będzie miała problem z polskimi znakami. Naprawimy to. Niektóre serwery VPS mają ten problem, inne nie. Nie mam zielonego pojęcia od czego to zależy, bo nawet VPSy z polskiego data center potrafią się pod tym względem różnić.

Do łączenia się z serwerem VPS poprzez SSH w Windowsie używam tradycyjnie PuTTY, na Androidzie używam JuiceSSH w wersji płatnej, ale darmowa spokojnie wystarczy. Połączyć się z serwerem można używając loginu i hasła (login i hasło wysłane w mailu od OVH) lub klucza SSH. Ja korzystam z tej drugiej opcji, bo jest dla mnie wygodniejsza. W przypadku OVH klucz SSH można do serwera dodać na 2 sposoby – poprzez panel OVH oraz tradycyjnie importując go przez SSH. Ja do tego używam JuiceSSH, bo wersja płatna umożliwia szybkie wklejenie snippet’u z kluczem SSH. Robi się to raz, a potem można logować się do serwera VPS bez podawania hasła. Zaraz po zalogowaniu do serwera zobaczymy następujący ekran.

Debian - login as root

Generowane z automatu przy instalacji serwera VPS w OVH hasło dla użytkownika root ma 8 znaków. To nie jest hasło łatwe do złamania, ale ja dla pewności zmieniam je na jakieś swoje, dłuższe, również generowane. To automatyczne hasło od OVH jest wysyłane na skrzynkę pocztową, więc w razie nieuprawnionego dostępu do poczty intruz uzyska również dostęp root do serwera VPS. Dlatego zmieniam hasło na swoje. Robimy to poniższą komendą.

passwd

Po zmianie hasła na własne (generujcie hasło, niech to nie będzie żadne typu test123) upewniamy się, że mamy zainstalowany system Debian 8 (jessie).

cat /etc/debian_version

W moim przypadku komenda ta zwraca wartość 8.8, co widać poniżej.

Debian - version check

Teraz zaktualizujemy listę usług/aplikacji dostępnych w domyślnych repozytoriach zapisanych w /etc/apt/sources.list i zainstalujemy kilka narzędzi, które przydadzą nam się podczas tego tutoriala.

apt-get update
apt-get install mc -y
apt-get install nano -y
apt-get install curl -y

Komenda apt-get install służy do instalacji usług/aplikacji. Narzędzie mc to Midnight Commander, czyli manager plików podobny do windowsowego Total Commandera. Dzięki niemu łatwiej jest poruszać się po drzewie kategorii niż przy użyciu komend cd oraz ls. Nano z kolei to przyjazny (jak na linuxa) tekstowy edytor plików. Alternatywą jest vim, można też korzystać z edytora wbudowanego w Midnight Commandera. Chyba nic prostszego niż Nano nie ma. Natomiast cURL to biblioteka programistyczna, którą wykorzystuje instalator VestaCP. Zastosowanie -y spowoduje, że nie będziemy musieli każdorazowo potwierdzać instalowania dodatkowych elementów.

Debian - apt-get update - stable

Pamiętasz jak pisałem, że czasami z polskimi instalacjami Debiana od OVH bywają problemy? Chodzi o problem z polskimi znakami. Sprawdźmy więc, czy u Ciebie wszystko jest w porządku, czy trzeba coś naprawić. Uruchomimy Midnight Commandera.

sudo mc

Jeśli wszystko wygląda tak, jak powinno to możesz pominąć poniższy fragment i przejść bezpośrednio do instalacji panela VestaCP. U mnie natomiast Midnight Commander wygląda następująco.

Debian - polskie znaki - krzaki

Wychodzimy więc z Midnight Commandera przy pomocy F10 i zabieramy się za naprawianie krzaków. Najpierw zedytujmy plik /etc/locale.gen

nano /etc/locale.gen

Przed linią en_US.UTF-8 UTF-8 nie powinno być hasha (#). Natomiast przed linią pl_PL.UTF-8 UTF-8 prawdopodobnie jest hash. Trzeba go usunąć.

Debian - locale.gen - nano

Następnie zapisujemy plik przy pomocy kombinacji klawiszy ctrl+o i wychodzimy przy pomocy kombinacji xtrl+x. Uruchamiamy /usr/sbin/locale-gen.

/usr/sbin/locale-gen

Pojawia się informacja Generating locales (this might take a while)… Po chwili mamy informację Generation complete.

Debian - locale-gen - generation complete

Sprawdzamy ponownie jak wygląda Midnight Commander.

sudo mc

Teraz już wszystkie znaki powinny być w porządku. U mnie wygląda to następująco.

Debian - polskie znaki - poprawne

Wychodzimy z Midnight Commandera przy pomocy F10.

Przechodzimy do części głównej tutoriala, czyli instalacji panelu VestaCP wraz wszystkimi niezbędnymi usługami. Wchodzimy na stronę https://vestacp.com/install/ i uzupełniamy w formularzu 3 pola – hostname, e-mail oraz password. Hostname to domyślny adres Twojego serwera VPS. Na podany e-mail będą przychodzić ważne wiadomości od VestaCP. Pierwszą z nich będzie informacja o zakończonej instalacji panelu VestaCP wraz z adresem panelu VestaCP, loginem oraz wpisanym przez Ciebie hasłem. Domyślnych ustawień formularza instalatora VestaCP prawie nie zmieniamy. Przestawiamy jedynie obsługę quota na yes (dzięki Mion za uwagę).

Vesta - install settings

Jeszcze jedna uwaga odnośnie wybranego hasła. Będziemy je i tak zmieniać, natomiast polecam wybrać długie, generowane hasło, bo instalator VestaCP przypisze owe hasło do użytkownika root bazy danych MySQL. Chyba nie chcesz mieć roota MySQL z hasłem typu test123. Po uzupełnieniu 3 wymaganych pól klikamy w Generate Install Command i pojawią się de facto 2 komendy, które musimy wkleić w SSH. Pierwszej komendy nie liczę, bo dotyczy ona zalogowania jako root przez SSH na serwer VPS, a to mamy już za sobą.

curl -O http://vestacp.com/pub/vst-install.sh
bash vst-install.sh --nginx yes --apache yes --phpfpm no --named yes --remi yes --vsftpd yes --proftpd no --iptables yes --fail2ban yes --quota yes --exim yes --dovecot yes --spamassassin yes --clamav yes --mysql yes --postgresql no --hostname vps123456.ovh.net --email vesta@lesiu.eu --password rsQJWsbz3N25d7rW

W PuTTY wygląda to następująco. Wciskamy enter i rozpoczynamy proces instalacji.

Vesta - install command

Po krótkiej chwili ukazuje się informacja z wymienionymi usługami, które mają zostać instalowane na naszym serwerze VPS przez instalator VestaCP. Proste pytanie, czy chcemy kontynuować, klikamy y, enter i rozpoczyna się proces instalacji usług wraz z panelem VestaCP.

Vesta - install continue question

Po kilkunastu minutach otrzymujemy e-mail z informacją, że proces instalacji został zakończony. W PuTTY również ukazuje się stosowna informacja wraz z adresem panelu VestaCP, nazwą głównego użytkownika (admin) i uzupełnionym przez nas hasłem.

Vesta - install complete

Możemy teraz sprawdzić, czy proces instalacji panelu VestaCP dokonał także aktualizacji samego systemu Debian 8 (jessie) w ramach tej samej wersji oczywiście.

cat /etc/debian_version

U mnie komenda ta zwraca teraz wartość 8.9, przed instalacją panelu VestaCP było 8.8. Debian 8.9 został wydany 22 lipca 2017. Więcej o tej wersji można znaleźć w tym newsie.

Zmieńmy teraz hasło dla użytkownika admin, które podawaliśmy podczas instalacji. Nie jest to czynność konieczna, ale ja wolę mieć różne hasła dla admina VestaCP oraz roota MySQL. Logujemy się do panelu przy wykorzystaniu danych wyświetlonych przed chwilą przez instalator VestaCP (łatwiej hasło skopiować z maila, który przyszedł). Następnie po prawej na górze klikamy na admin i uzupełniamy nowe hasło. Tradycyjnie polecam wygenerować sobie jakieś długie hasło i zapisać w bezpiecznym miejscu. Można też tutaj uzupełnić inne dane jak e-mail, imię, nazwisko, domyślny język, domyślne serwery DNS i rodzaj dostępu SSH (włącznie z wykluczeniem dostępu SSH dla danego użytkownika).

Teraz zmienimy port SSH naszego serwera VPS. Domyślny port SSH to 22 i to właśnie przez port 22 najwięcej botów/automatów próbuje się dostać na serwery dedykowane oraz VPS. Na potrzeby tego tutoriala wybieram port 1234 dla SSH, ale Ty możesz sobie wybrać dowolny. Polecam coś wysokiego np. 4154.

nano /etc/ssh/sshd_config

Następnie modyfikujemy linię z portem 22. Zamiast tej wartości podajemy wybrany przez siebie port. W moim przypadku jest to 1234.

Debian - sshd_config - nano

Zmiany zapisujemy przy użyciu kombinacji klawiszy ctrl+o, następnie wychodzimy przy pomocy ctrl+x. Pozostaje jeszcze zrestartować usługę SSH.

service sshd restart

Musimy jeszcze dokonać zmiany portu SSH w firewallu zainstalowanym przez VestaCP. W panelu klikamy Firewall i port SSH zmieniamy z 22 na wybrany przez siebie. Ja w tutorialu zmieniam na 1234. Zapisuję zmianę.

Przyszła kolej na pierwszą aktualizację usługi spoza domyślnych repozytoriów Debiana 8 (jessie). Chodzi konkretnie o OpenSSL. Domyślnie z VestaCP pakiet OpenSSL jest instalowany w wersji 1.0.1t. To dość leciwa, nie rozwijana już wersja. Na dzień dzisiejszy w repozytoriach Debiana 8 jessie mamy jeszcze wersję 1.0.2l oraz 1.1.0f. Obie wydane 25 maja 2017. Pierwsza z nich znajduje się w repozytorium jessie-backports, druga zaś w repozytorium unstable. Jak sama nazwa wskazuje, nie są to oficjalne wersje dla Debiana 8 jessie. Instalujemy je więc na własną odpowiedzialność. Wybór wersji należy do Ciebie, instaluje się je bardzo podobnie. Ja wybieram OpenSSL 1.1.0f. Po pierwsze dlatego, że to nowsza, wyższa wersja (pamiętaj jednak, że nie zawsze najnowsze znaczy najlepsze), po drugie dlatego, że to właśnie OpenSSL 1.1.0f jest domyślny dla Debian 9 (stretch).

Poniżej znajduje się instrukcja aktualizacji OpenSSL do wersji 1.0.2l. Pierwsza linia to dodanie do listy /etc/apt/sources.list repozytorium jessie-backports. Po dodaniu tego repozytorium trzeba przeładować listę przy użyciu apt-get update. Następnie sprawdzamy przy pomocy apt-cache policy openssl jaką wersję mamy zainstalowaną, jaka dostępna jest w repozytorium stable, a jaka w jessie-backports. Teraz wykonujemy instalację OpenSSL z wybranego repozytorium, czyli jessie-backports. Na samym końcu sprawdzamy wersję OpenSSL po naszej aktualizacji przy pomocy komendy openssl version.

echo 'deb http://ftp.debian.org/debian jessie-backports main' >> /etc/apt/sources.list
apt-get update
apt-cache policy openssl
apt-get install -t jessie-backports openssl -y
openssl version

Poniżej znajduje się instrukcja aktualizacji OpenSSL do wersji 1.1.0f. Pierwsza linia to dodanie do listy /etc/apt/sources.list repozytorium unstable. Po dodaniu tego repozytorium trzeba przeładować listę przy użyciu apt-get update. Następnie sprawdzamy przy pomocy apt-cache policy openssl jaką wersję mamy zainstalowaną, jaka dostępna jest w repozytorium stable, a jaka w unstable. Teraz wykonujemy instalację OpenSSL z wybranego repozytorium, czyli unstable. Na samym końcu sprawdzamy wersję OpenSSL po naszej aktualizacji przy pomocy komendy openssl version.

echo 'deb http://ftp.pl.debian.org/debian/ unstable main contrib non-free' >> /etc/apt/sources.list
apt-get update
apt-cache policy openssl
apt-get install -t unstable openssl -y
openssl version

Po aktualizacji OpenSSL do wersji 1.1.0f komenda openssl version zwraca poniższą informację.

Debian - OpenSSL - version check

Następnie zabieramy się za fail2ban. To domyślny dla VestaCP, bardzo powszechny firewall. Standardowo po świeżej instalacji Debiana 8 (jessie) oraz VestaCP na serwerze VPS fail2ban jest w wersji 0.8.13-1 i nadzoruje następujące usługi: vesta, ssh, exim, dovecot. W panelu administracyjnym VestaCP włączymy pozostałe usługi do firewalla fail2ban. W tym celu klikamy zakładkę Server -> fail2ban -> Configure. W pliku konfiguracyjnym dla usług, które mają ustawione enabled = false zmieniamy wartość na true. Po zapisaniu usługa fail2ban zostaje automatycznie przeładowana. Ustawienia te można modyfikować według uznania zarówno poprzez panel VestaCP, jak i edytując przez SSH plik /etc/fail2ban/jail.local. Jeśli jesteś zwolennikiem używania SSH zamiast panelu to pamiętaj tylko o przeładowaniu usługi po modyfikacji przy pomocy komendy service fail2ban restart. Teraz zabierzemy się za aktualizację firewalla fail2ban. Bez obaw, nasze zmiany w pliku konfiguracyjnym zostaną zachowane, gdyż jail.local służy do konfiguracji zgodnie z potrzebami administratora. Moglibyśmy porwać się na jakąś eksperymentalną wersję 0.10.x, ale według mnie bezpiecznie będzie zainstalować taką wersję fail2ban, która dla systemu Debian 9 (stretch) jest oznaczona jako stabilna, czyli 0.9.6-2. Jeśli użyjemy do aktualizacji repozytoriów unstable, które mamy już dodane w /etc/apt/sources.list, wówczas zainstalujemy wersję nowszą. W obecnej chwili w repozytoriach unstable dla Debiana 8 (jessie) znajduje się wersja 0.9.7-2. Poniżej przedstawię sposób instalacji obu tych wersji, przy czym instalację wersji 0.9.7-2 w dwóch wariantach – z pliku .deb oraz z repozytoriów unstable. Możesz więc wybrać opcję dla siebie.

W skrócie opiszę kolejne kroki. Przy pomocy komendy mkdir tworzymy folder copy w /usr/local w celu zrobienia kopii usług, które będziemy aktualizować. Następnie przy pomocy komendy cp kopiujemy rekursywnie (-r) całą zawartość folderu /etc/fail2ban do utworzonego przed chwilą katalogu. Zatrzymujemy usługę fail2ban przy pomocy komendy service fail2ban stop i komendą apt-get remove –purge fail2ban usuwamy całego firewalla. Potem odświeżamy listę usług/narzędzi, które znajdują się w repozytoriach zdefiniowanych w /etc/apt/sources.list. Raz zdarzyło mi się, że system prosił o zainstalowanie paczki python3 w trakcie instalacji fail2ban. Nie wiem, dlaczego tak się stało, ale jeśli i Tobie się to przytrafi to zainstaluj go przy pomocy komendy apt-get install python3 -y. Następnie zmieniamy folder na /usr/local/src przy użyciu komendy cd. Korzystając z wget pobieramy paczkę firewalla fail2ban z rozszerzeniem .deb. Instalujemy przy użyciu komendy dpkg -i. Potem edytujemy plik /etc/fail2ban/jail.conf przy pomocy edytora Nano. Warto poświęcić trochę czasu na zapoznanie się z fail2ban. Na start polecam zmienić wartość bantime, która wynosi 600 sekund (10 minut). Ja ją zmieniam na 3600 (1 godzina). Zapisuję ctrl+o, wychodzę ctrl+x z Nano. Dla pewności uruchamiam komendę update-rc.d fail2ban defaults, która zapewni nam uruchamianie firewalla fail2ban po restarcie systemu. Na 90% instalator fail2ban sam to robi, ale wykonanie tej komendy niczego nie popsuje. Komendy service fail2ban status oraz fail2ban-client status wyświetlą nam status działania usługi oraz wszystkie jail’e, czyli usługi włączone do firewalla.

mkdir /usr/local/copy
cp -r /etc/fail2ban /usr/local/copy/fail2ban
service fail2ban stop
apt-get remove --purge fail2ban
apt-get update
# apt-get install python3 -y
cd /usr/local/src
wget http://ftp.pl.debian.org/debian/pool/main/f/fail2ban/fail2ban_0.9.6-2_all.deb
dpkg -i fail2ban_0.9.6-2_all.deb
nano /etc/fail2ban/jail.conf -> bantime 3600
ctrl+o
ctrl+x
# update-rc.d fail2ban defaults
service fail2ban status
fail2ban-client status

Po wykonaniu wszystkich powyższych czynności powinniśmy otrzymać następujący efekt.

Debian - fail2ban status

Jeżeli chcesz mieć nowszą wersję fail2ban na serwerze to zamiast 0.9.6-2 zainstaluj fail2ban 0.9.7-2. Instrukcja poniżej.

mkdir /usr/local/copy
cp -r /etc/fail2ban /usr/local/copy/fail2ban
service fail2ban stop
apt-get remove --purge fail2ban
apt-get update
# apt-get install python3 -y
cd /usr/local/src
wget http://ftp.pl.debian.org/debian/pool/main/f/fail2ban/fail2ban_0.9.7-2_all.deb
dpkg -i fail2ban_0.9.7-2_all.deb
nano /etc/fail2ban/jail.conf -> bantime 3600
ctrl+o
ctrl+x
# update-rc.d fail2ban defaults
service fail2ban status
fail2ban-client status

Dla zwolenników instalacji fail2ban z repozytoriów unstable Debiana zamieszczam krótką instrukcję poniżej. Wykonaj komendę apt-cache policy fail2ban, by sprawdzić jaka wersja obecnie znajduje się w repozytoriach unstable.

Debian - apt-cache policy fail2ban

Pierwszą komendę wykonujemy, jeśli wcześniej tego nie zrobiliśmy i nie mamy repozytoriów unstable zawartych w pliku /etc/apt/sources.list. Tak naprawdę różnica między instalacją fail2ban 0.9.7-2 z pliku .deb i z repozytoriów unstable sprowadza się do różnicy w 1 komendzie (dpkg -i vs. apt-get install). Wypisuję wszystko po raz kolejny, bo tutorial miał być dla laika w wersji kopiuj, wklej.

echo 'deb http://ftp.pl.debian.org/debian/ unstable main contrib non-free' >> /etc/apt/sources.list
mkdir /usr/local/copy
cp -r /etc/fail2ban /usr/local/copy/fail2ban
service fail2ban stop
apt-get remove --purge fail2ban
apt-get update
apt-cache policy fail2ban
apt-get install -t unstable fail2ban -y (do wyboru)
service fail2ban status
fail2ban-client status

Został nam ostatni krok pierwszej części tutoriala, tradycyjnie opcjonalny. Chodzi konkretnie o instalację zaawansowanego firewalla ConfigServer Security & Firewall (CSF) w wersji 10.19 lub nowszej. Autorem tej części tutoriala jest Steven Sullivan. Skrypt oraz modyfikacje są jego autorstwa. Jeśli chcesz to zainstaluj wersję, którą udostępnił na blogu Steven Sullivan. Moja jest lekko zmodyfikowana. Uporządkowałem co nieco pliki, usunąłem niepotrzebne znaki i zmieniłem miejsce zakładki CSF w panelu VestaCP.

Krótki opis kolejnych kroków. Kopiujemy rekursywnie cały folder z plikami panelu VestaCP /usr/local/vesta do folderu /usr/local/copy/vesta. Zmieniamy przy pomocy komendy cd folder, w którym się znajdujemy. Pobieramy przy pomocy wget skrypt .sh, który zainstaluje dla nas najnowszą wersję zaawansowanego firewalla CSF. Zmieniamy uprawnienia przy pomocy chmod na 777. Następnie uruchamiamy skrypt csf-install.sh i czekamy aż wszystko się samo zainstaluje na naszym serwerze VPS. Teraz przy pomocy edytora nano modyfikujemy plik /etc/csf/regex.custom.pm.

cp -r /usr/local/vesta /usr/local/copy/vesta
cd
wget https://www.lesiu.eu/vestacp/csf-install.sh
chmod 777 ./csf-install.sh
./csf-install.sh
nano /etc/csf/regex.custom.pm

Mniej więcej na środku tego pliku jest puste pole z miejscem na własne definicje. Wklejamy następującą linię.

if (($lgfile eq $config{FTPD_LOG}) and ($line =~ /FAIL LOGIN: Client \"(\S+)\"/)) { return ("Failed FTP login from",$1,"vsftpd_vps","5","20,21","1"); }

Zapisujemy ctrl+o, wychodzimy ctrl+x.

Debian - CSF - regex.custom.pm - nano

Teraz musimy dodać port 8083, na którym jest zainstalowany panel VestaCP do konfiguracji CSF. Edytujemy plik /etc/csf/csf.conf i znajdujemy linię z TCP_IN, gdzie dodajemy port 8083. Na samej górze jest też wartość TESTING ustawiona na 1. Oznacza to, że firewall CSF pracuje w trybie testowym. Należy mu ustawić TESTING na 0. Powyższych dwóch zmian można dokonać w panelu VestaCP. Ja zrobiłem to w Nano. Teraz trzeba jeszcze uruchomić CSF oraz LFD (Login Failure Daemon). W panelu VestaCP na górnej belce po prawej stronie jest link do wszystkich opcji CSF. Na zielonym tle powinno się wyświetlać Firewall Status: Enabled and Running. Oznacza to, że firewall działa, ale o jego odpowiednią konfigurację musisz zadbać osobiście.

nano /etc/csf/csf.conf

To już niemal wszystko. Polecam teraz usunąć repozytoria jessie-backports oraz unstable z pliku /etc/apt/sources.list. Można je usunąć, można je wykluczyć przy pomocy hasha (#). Pamiętaj, by po modyfikacji pliku /etc/apt/sources.list uruchomić komendę apt-get update.

nano /etc/apt/sources.list

To byłoby na tyle, jeśli chodzi o pierwszą część tutoriala. Mam nadzieję, że wszystko poszło sprawnie. Jeśli dzięki mojej pracy uda się Tobie zaoszczędzić czas oraz/lub pieniądze, to może choć zdecydujesz się wesprzeć w walce z bardzo ciężką i rzadką chorobą moją małą córeczkę – https://pomagam.pl/lilusia i https://www.facebook.com/PomocDlaLilusi/.

Kolejne 2 części będą tutaj:
Konfiguracja serwera VPS od A do Z w oparciu o Debian i VestaCP – część 2 (w przygotowaniu)
Konfiguracja serwera VPS od A do Z w oparciu o Debian i VestaCP – część 3 (w przygotowaniu)