{"id":1568,"date":"2014-11-03T09:00:16","date_gmt":"2014-11-03T08:00:16","guid":{"rendered":"http:\/\/vm.piszki.pl\/?p=1568"},"modified":"2014-11-19T19:09:47","modified_gmt":"2014-11-19T18:09:47","slug":"zwrotna-synchronizacja-z-vps-do-nas","status":"publish","type":"post","link":"https:\/\/vm.piszki.pl\/?p=1568","title":{"rendered":"Prowadzenie bloga, cz\u0119\u015b\u0107 4: Zwrotna synchronizacja z VPS do NAS."},"content":{"rendered":"<p align=\"justify\">W jednym z ostatnich post\u00f3w <a href=\"https:\/\/vm.piszki.pl\/prowadzenie-bloga-czesc-2-migrujemy-do-vps-digitalocean\/\">opisa\u0142em<\/a> migracj\u0119 bloga na zewn\u0119trzny serwer VPS. Teraz opisz\u0119 jak zrobi\u0107 zwrotn\u0105 synchronizacj\u0119 na naszego Synology. Mo\u017cna si\u0119 zapyta\u0107, po co? Odpowied\u017a jest prosta, VPS jako us\u0142uga chmurowa mo\u017ce znikn\u0105\u0107 tak jak si\u0119 pojawi\u0142a (wraz z naszymi danymi). Przyczyn mo\u017ce by\u0107 wiele, od ataku hakera po bankructwo dostawcy (\u015bledzicie takie informacje?). Dlatego backup zwrotny to podstawa, w przypadku awarii VPS wystarczy zmiana adresu bloga w serwerze DNS i strona wraca do \u017cycia (na naszym NAS)! W drug\u0105 stron\u0119 te\u017c to dzia\u0142a, jak popsujemy VPS to zawsze mamy aktualn\u0105 kopi\u0119 z kt\u00f3rej mo\u017cemy odtworzy\u0107 stron\u0119.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/backup.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"backup\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"backup\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/backup_thumb.jpg\" width=\"209\" height=\"198\"><\/a><\/p>\n<p align=\"justify\">Ca\u0142a procedura jest bardzo prosta.<\/p>\n<p><!--more--><\/p>\n<p align=\"justify\">W pierwszym kroku musimy zestawi\u0107 tunel VPN pomi\u0119dzy naszym VPS a NAS. Instalujemy i uruchamiamy na Synology&nbsp; VPN Server. Teraz wybieramy typ serwera. Ja zdecydowa\u0142em si\u0119 na OpenVPN, w przypadku Linuksa jest to chyba najprostsza i najmniej k\u0142opotliwa metoda. Konfiguracja po stronie Synology jest bardzo prosta, najpierw w\u0142\u0105czamy us\u0142ug\u0119 OpenVPN z odpowiednimi ustawieniami (adresacja sieci (10.10.10.0) mo\u017ce by\u0107 dowolna, inna ni\u017c lokalna dla DiskStation):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn1.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn1\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn1\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn1_thumb.png\" width=\"448\" height=\"295\"><\/a><\/p>\n<p>&nbsp;<\/p>\n<p align=\"justify\">Teraz w ustawieniach zmieniamy nazw\u0119 interfejsu z eth na LAN (lub je\u015bli NAS pracuje jako WiFi AP to opisany b\u0119dzie jako &#8222;Internet&#8221;):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vnp2.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vnp2\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vnp2\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vnp2_thumb.png\" width=\"442\" height=\"177\"><\/a><\/p>\n<p align=\"justify\">W moim przypadku NAS jest wystawiony bezpo\u015brednio do Internetu (DMZ), w takim przypadku firewall to podstawa. Jako \u017ce nie przewiduj\u0119 po\u0142\u0105cze\u0144 do serwera VPN innych ni\u017c z VPS, doda\u0142em tylko jedn\u0105 regu\u0142\u0119 otwieraj\u0105c\u0105 odpowiedni port tylko dla serwera VPS. Zawsze kilka atak\u00f3w mniej. Chod\u017a jak wida\u0107 na obrazku powy\u017cej, VPN Server jest zsynchronizowany z us\u0142ug\u0105 <a href=\"https:\/\/vm.piszki.pl\/nas-w-domu-suplement\/\">blokowania<\/a> (fail2ban). Na samym dole wida\u0107 te\u017c regu\u0142\u0119 otwieraj\u0105c\u0105 tylko wybrane us\u0142ugi (Syslog, Rsync, MariaDB) dla adresacji 10.10.10.0 (strze\u017conego etc. etc., sami wiecie), ale nie jest konieczna, poziom zaufania sami ustawiacie.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn3.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn3\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn3\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn3_thumb.png\" width=\"430\" height=\"260\"><\/a><\/p>\n<p align=\"justify\">Przechodzimy teraz na stron\u0119 klienta, instalacja i uruchomienie OpenVPN na CentOS 7 jest bardzo proste, wydajemy polecenie yum install openvpn (po wcze\u015bniejszym zainstalowaniu repozytorium <a href=\"http:\/\/www.tecmint.com\/how-to-enable-epel-repository-for-rhel-centos-6-5\/\">EPEL<\/a> z Fedory). Tak zainstalowany serwer nie tworzy plik\u00f3w konfiguracyjnych, te mo\u017cemy wyeksportowa\u0107 z DiskStation lub u\u017cy\u0107 tego:<\/p>\n<p><span style=\"font-size: xx-small\">[root@vps openvpn]# cat openvpn.conf<br \/>dev tun<br \/>tls-client<\/span><\/p>\n<p><span style=\"font-size: xx-small\">remote nas.piszki.pl 1194<\/span><\/p>\n<p><span style=\"font-size: xx-small\">pull<br \/>proto udp<br \/>script-security 2<\/span><\/p>\n<p><span style=\"font-size: xx-small\">ca \/etc\/openvpn\/ca.crt<br \/>comp-lzo<br \/>reneg-sec 0<\/span><\/p>\n<p><span style=\"font-size: xx-small\">auth-user-pass \/etc\/openvpn\/login.conf<\/span><\/p>\n<p><span style=\"font-size: xx-small\">#tls-auth \/etc\/openvpn\/ta.key 1<br \/>[root@vps openvpn]#<\/span><\/p>\n<p align=\"justify\">Bardzo wa\u017cny jest certyfikat CA za pomoc\u0105 kt\u00f3rego b\u0119dziemy weryfikowa\u0107 naszego NASa. Ja u\u017cywam certyfikatu wygenerowanego w RapidSSL. Wa\u017cne, aby plik ca.crt zawiera\u0142 ca\u0142y \u0142a\u0144cuch urz\u0119d\u00f3w certyfikacyjnych (chain). W przypadku RapidSSL nie jest to takie <a href=\"https:\/\/vm.piszki.pl\/horizon-workspace-manualna-analiza-%C5%82a%C5%84cucha-certyfikat%C3%B3w\/\">oczywiste<\/a>.<\/p>\n<p>Nast\u0119pnie r\u0119cznie sprawdzamy czy po\u0142\u0105czenie zapina si\u0119 poprawnie:<\/p>\n<p><span style=\"font-size: xx-small\">[root@vps openvpn]# \/usr\/sbin\/openvpn &#8211;cd \/etc\/openvpn &#8211;config openvpn.conf<br \/>Sat Oct 18 12:43:43 2014 OpenVPN 2.3.2 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Feb 14 2014<br \/>Sat Oct 18 12:43:43 2014 WARNING: No server certificate verification method has been enabled.&nbsp; See <\/span><span style=\"font-size: xx-small\">http:\/\/openvpn.net\/howto.html#mitm<\/span><span style=\"font-size: xx-small\"> for more info.<br \/>Sat Oct 18 12:43:43 2014 UDPv4 link local (bound): [undef]<br \/>Sat Oct 18 12:43:43 2014 UDPv4 link remote: [AF_INET]89.74.89.55:1194<br \/>Sat Oct 18 12:43:43 2014 WARNING: this configuration may cache passwords in memory &#8212; use the auth-nocache option to prevent this<br \/>Sat Oct 18 12:43:44 2014 [nas.piszki.pl] Peer Connection Initiated with [AF_INET]89.74.89.55:1194<br \/>Sat Oct 18 12:43:46 2014 TUN\/TAP device tun0 opened<br \/>Sat Oct 18 12:43:46 2014 do_ifconfig, tt-&gt;ipv6=0, tt-&gt;did_ifconfig_ipv6_setup=0<br \/>Sat Oct 18 12:43:46 2014 \/usr\/sbin\/ip link set dev tun0 up mtu 1500<br \/>Sat Oct 18 12:43:46 2014 \/usr\/sbin\/ip addr add dev tun0 local 10.10.10.6 peer 10.10.10.5<br \/>Sat Oct 18 12:43:46 2014 Initialization Sequence Completed<\/span><\/p>\n<p align=\"justify\">Komunikat \u201cserver certificate verification\u2026\u201d dotyczy dotakowej opcji tls-auth kt\u00f3ra domy\u015blnie nie jest w\u0142\u0105czona w Synology (i ja jej nie konfigurowa\u0142em ze wzgl\u0119du na zaufane po\u0142\u0105czenie punkt punkt poprzez firewall). Je\u015bli wszystko gra, wydajemy kolejne polecenia (przy za\u0142o\u017ceniu, \u017ce plik konfiguracyjny nazywa si\u0119 openvpn.conf):<\/p>\n<p>systemctl enable openvpn@openvpn.service<\/p>\n<p>systemctl start openvpn@openvpn.service<\/p>\n<p>Mo\u017cemy sprawdzi\u0107 status us\u0142ugi:<\/p>\n<p><span style=\"font-size: xx-small\">[root@vps log]# systemctl status openvpn@openvpn.service<\/span><br \/><span style=\"font-size: xx-small\">openvpn@openvpn.service &#8211; OpenVPN Robust And Highly Flexible Tunneling Application On openvpn<br \/>Loaded: loaded (\/usr\/lib\/systemd\/system\/openvpn@.service; enabled)<br \/>Active: active (running) since Sat 2014-10-18 12:46:30 CEST; 2min 12s ago<br \/>Main PID: 28025 (openvpn)<br \/>CGroup: \/system.slice\/system-openvpn.slice\/openvpn@openvpn.service<br \/>\u2514\u250028025 \/usr\/sbin\/openvpn &#8211;daemon &#8211;writepid \/var\/run\/openvpn\/openvpn.pid &#8211;cd \/etc\/openvpn\/ &#8211;config openvpn.conf<\/span><\/p>\n<p><span style=\"font-size: xx-small\">Oct 18 12:46:30 vps.piszki.pl openvpn[28025]: UDPv4 link local (bound): [undef]<br \/>Oct 18 12:46:30 vps.piszki.pl openvpn[28025]: UDPv4 link remote: [AF_INET]89.74.89.55:1194<br \/>Oct 18 12:46:30 vps.piszki.pl systemd[1]: Started OpenVPN Robust And Highly Flexible Tunneling Application On openvpn.<br \/>Oct 18 12:46:30 vps.piszki.pl openvpn[28025]: WARNING: this configuration may cache passwords in memory &#8212; use the auth-nocache option to prevent this<br \/>Oct 18 12:46:31 vps.piszki.pl openvpn[28025]: [nas.piszki.pl] Peer Connection Initiated with [AF_INET]89.74.89.55:1194<br \/>Oct 18 12:46:33 vps.piszki.pl openvpn[28025]: TUN\/TAP device tun0 opened<br \/>Oct 18 12:46:33 vps.piszki.pl openvpn[28025]: do_ifconfig, tt-&gt;ipv6=0, tt-&gt;did_ifconfig_ipv6_setup=0<br \/>Oct 18 12:46:33 vps.piszki.pl openvpn[28025]: \/usr\/sbin\/ip link set dev tun0 up mtu 1500<br \/>Oct 18 12:46:33 vps.piszki.pl openvpn[28025]: \/usr\/sbin\/ip addr add dev tun0 local 10.10.10.6 peer 10.10.10.5<br \/>Oct 18 12:46:33 vps.piszki.pl openvpn[28025]: Initialization Sequence Completed<br \/>[root@vps log]# cd<\/span><\/p>\n<p align=\"justify\">Tunel dzia\u0142a, przyst\u0119pujemy do synchronizacji danych. W przypadku plik\u00f3w u\u017cyjemy rsync, a w przypadku MariaDB zapniemy prawdziwy, geograficzny klaster online. Oczywi\u015bcie nie b\u0119dziemy tutaj zestawia\u0107 klastra typu Galera, w zupe\u0142no\u015bci wystarczy prosta replikacja danych poprzez tunel VPN w schemacie Master\u2014&gt;Slave. Zaczynamy od MariaDB na serwerze VPS, b\u0119dzie ona pe\u0142ni\u0142a rol\u0119 \u201cmaster\u201d. Do naszego pliku konfiguracyjnego dodajemy kilka linijek:<\/p>\n<p>log-basename=master<br \/>log-bin<br \/>binlog-format=mixed<br \/>server_id=1<br \/>sync_binlog = 1<br \/>expire_logs_days = 90<br \/>max_binlog_size = 1G<\/p>\n<p align=\"justify\">Nast\u0119pnie musimy otworzy\u0107 port na firewallu, tak aby mo\u017cna by\u0142o si\u0119 pod\u0142\u0105czy\u0107 z DiskStation do MariaDB. Jestem zwolennikiem mo\u017cliwie prostych rozwi\u0105za\u0144, dlatego na VPS u\u017cywam simple-firewall. Nie mo\u017cna w nim robi\u0107 skomplikowanych regu\u0142, dlatego po prostu doda\u0142em interfejs \u201ctun+\u201d do listy zaufanych (adresacja 10.10.10.0 nie jest widoczna z Internetu):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn4.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn4\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn4\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn4_thumb.png\" width=\"425\" height=\"234\"><\/a><\/p>\n<p align=\"justify\">Restartujemy MariaDB na VPS i poleceniem telnet sprawdzamy czy istnieje komunikacja z naszego NAS:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn5.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn5\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn5\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn5_thumb.png\" width=\"422\" height=\"51\"><\/a><\/p>\n<p align=\"justify\">Odpowiedzia\u0142 serwer MariaDB, po\u0142\u0105czenie dzia\u0142a poprawnie. Teraz mo\u017cemy doda\u0107 u\u017cytkownika slave z uprawnieniami do replikacji na serwerze Master (VPS).<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn6.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn6\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn6\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn6_thumb.png\" width=\"421\" height=\"151\"><\/a><\/p>\n<p>Od\u015bwie\u017camy uprawnienia:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn7.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn7\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn7\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn7_thumb.png\" width=\"240\" height=\"54\"><\/a><\/p>\n<p align=\"justify\">I po stronie Synology sprawdzamy czy mo\u017cna si\u0119 pod\u0142\u0105czy\u0107:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn8.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn8\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn8\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn8_thumb.png\" width=\"416\" height=\"118\"><\/a><\/p>\n<p align=\"justify\">Dzia\u0142a! Teraz musimy wykona\u0107 synchronizacj\u0119 baz danych z ustawieniem punktu od kt\u00f3rego serwer Slave b\u0119dzie odbiera\u0142 dane. Najbezpieczniej by\u0142oby odci\u0105\u0107 na chwil\u0119 dost\u0119p z Internetu do naszego Bloga tak, aby zmian by\u0142o jak najmniej. Ale z drugiej strony to nie system produkcyjny w korporacji, wystarczy chwilowe ustawienie LOCK na tabelach. Na serwerze Master (VPS) wydajemy polecenia:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn9.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn9\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn9\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn9_thumb.png\" width=\"420\" height=\"189\"><\/a><\/p>\n<p align=\"justify\">Mamy za\u0142o\u017conego LOCK a pozycja w logu to 9780 (od niej zaczniemy synchronizacj\u0119). Teraz eksportujemy wszystkie bazy danych i zdejmujemy blokad\u0119:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn10.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn10\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn10\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn10_thumb.png\" width=\"414\" height=\"133\"><\/a><\/p>\n<p align=\"justify\">Ca\u0142a procedura trwa poni\u017cej minuty, na blogu raczej nikt tego nie odczuje. Teraz kopiujemy plik z bazami danych na DiskStation:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn11.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn11\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn11\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn11_thumb.png\" width=\"409\" height=\"87\"><\/a><\/p>\n<p align=\"justify\">Rekonfigurujemy MariaDB na Synology DSM 5.0 tak aby dzia\u0142a\u0142 w trybie Slave.<\/p>\n<p align=\"justify\">Do pliku: \/var\/packages\/MariaDB\/etc\/my.cnf dopisujemy nast\u0119puj\u0105ce linijki :<\/p>\n<p>[mysqld]<\/p>\n<p>server-id = 2<br \/>log-bin<br \/>sync_binlog = 1<\/p>\n<p align=\"justify\">Nast\u0119pnie restartujemy MariaDB z poziomu Synology DSM. Nale\u017cy te\u017c po ka\u017cdym upgrade MariaDB przez Synology (w\u0142\u0105czaj\u0105c w to te\u017c upgrade DSM) sprawdzi\u0107 czy nasze zmiany nie zosta\u0142y usuni\u0119te! Teraz importujemy dane (to polecenie nadpisze wszystkie istniej\u0105ce lokalnie bazy danych!):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn12.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn12\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn12\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn12_thumb.png\" width=\"404\" height=\"165\"><\/a><\/p>\n<p align=\"justify\">Konfigurujemy serwer Slave tak, aby wiedzia\u0142 sk\u0105d ma pobiera\u0107 dane i od kt\u00f3rego momentu:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn13.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn13\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn13\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn13_thumb.png\" width=\"401\" height=\"159\"><\/a><\/p>\n<p align=\"justify\">Na koniec mo\u017cemy sprawdzi\u0107, czy replikacja dzia\u0142a poprawnie:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn14.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn14\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn14\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn14_thumb.png\" width=\"407\" height=\"178\"><\/a><\/p>\n<p align=\"justify\">Dzia\u0142a (Yes, Yes)! Je\u015bli b\u0119dzie \u201cNo\u201d to zwi\u0119kszamy uprawnienia u\u017cytkownika slave (grant RELOAD,SUPER,REPLICATION CLIENT on \u2026), mo\u017cna to te\u017c zrobi\u0107 pro forma. Mo\u017cemy teraz zaj\u0105\u0107 si\u0119 replikacj\u0105 plik\u00f3w pomi\u0119dzy VPS a NAS. Ten temat jest na szcz\u0119\u015bcie du\u017co prostszy, wystarczy na naszym serwerze VPS doinstalowa\u0107 (je\u015bli jeszcze nie mamy), polecenie rsync. Po stronie naszego Synology wystarczy wykona\u0107 jeden krok, uruchamiamy \u201cKopia zapasowa i replikacja\u201d i w\u0142\u0105czamy us\u0142ugi sieciowej kopii zapasowej (opcja \u201cdostosowana konfiguracja\u201d nie jest konieczna):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn_thumb.png\" width=\"403\" height=\"230\"><\/a><\/p>\n<p align=\"justify\">Teraz wracamy na VPS, polecenie rsync wymaga podania loginu i has\u0142a gdy synchronizujemy dane na zdalny serwer (w naszym przypadku przez tunel VPN). My zautomatyzujemy ca\u0142y proces, r\u0119czne podawanie has\u0142a nie wchodzi w gr\u0119, zaczniemy zatem od przygotowania autentykacji kluczami ssh pomi\u0119dzy naszymi serwerami. Zaczynamy od wygenerowania klucza publicznego na serwerze VPS:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn01.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn01\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn01\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn01_thumb.png\" width=\"401\" height=\"57\"><\/a><\/p>\n<p align=\"justify\">Zawarto\u015b\u0107 klucza id_rsa_pub wklejamy do pliku \/root\/.ssh\/authorized_keys na naszym Synology:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn02.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn02\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn02\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn02_thumb.png\" width=\"400\" height=\"67\"><\/a><\/p>\n<p align=\"justify\">W tej chwili jeste\u015bmy gotowi do synchronizacji, w\u0142a\u015bciwe polecenie wygl\u0105da tak (oczywi\u015bcie synchronizowane katalogi zale\u017c\u0105 tylko od Was):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn03.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn03\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn03\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn03_thumb.png\" width=\"400\" height=\"22\"><\/a><\/p>\n<p align=\"justify\">Ostatecznie pozostaje nam (w przypadku CentOS 7) stworzenie pliku z ww. poleceniem i wrzuceniem go do katalogu \/etc\/cron.daily <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none\" alt=\"U\u015bmiech\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/wlEmoticon-smile.png\"><\/p>\n<p align=\"justify\">A teraz bonus! W takiej konfiguracji mo\u017cemy wykona\u0107 backup odwrotny, czyli zgra\u0107 konfiguracj\u0119 Synology na serwer VPS poprzez rsync. Po stronie VPS nie wymaga to \u017cadnej konfiguracji, wystarczy za\u0142o\u017cy\u0107 katalog (\/bak) na pliki z Synology. Na DiskStation uruchamiamy program \u201cKopia zapasowa i replikacja\u201d i w sekcji \u201cMiejsce docelowe\u2026\u201d stworzy\u0107 odpowiednie po\u0142\u0105czenie:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn15.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn15\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn15\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn15_thumb.png\" width=\"402\" height=\"395\"><\/a><\/p>\n<p align=\"justify\">A w sekcji \u201cKopia zapasowa\u201d w\u0142a\u015bciw\u0105 kopi\u0119:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn16.png\"><img loading=\"lazy\" decoding=\"async\" title=\"vpn16\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"vpn16\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/vpn16_thumb.png\" width=\"390\" height=\"441\"><\/a><\/p>\n<p align=\"justify\">Dzia\u0142a to rewelacyjnie, ale pami\u0119tajcie: Prawdziwy m\u0119\u017cczyzna backupu nie robi! <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-winkingsmile\" style=\"border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none\" alt=\"Puszczam oczko\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/wlEmoticon-winkingsmile.png\"><\/p>\n<p align=\"justify\">Hmm, kobieta tym bardziej? <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-winkingsmile\" style=\"border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none\" alt=\"Puszczam oczko\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/wlEmoticon-winkingsmile.png\"><\/p>\n<p align=\"justify\">Ehh\u2026 <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none\" alt=\"U\u015bmiech\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/wlEmoticon-smile.png\"><\/p>\n<p>&nbsp;<\/p>\n<p>EDIT 2014.11.14:<\/p>\n<p align=\"justify\">W dniu dzisiejszym serwerownia Amsterdam-2 kt\u00f3r\u0105 wybra\u0142em na le\u017ce mojego VPS (a adresacj\u0119 mam rrusk\u0105) zaliczy\u0142a awari\u0119. Przez 1.5h m\u00f3j silos mia\u0142 wywalon\u0105 sie\u0107. Tak si\u0119 z\u0142o\u017cy\u0142o, \u017ce akurat siedzia\u0142em przy laptopie i d\u0142uba\u0142em w konsoli. Awari\u0119 zauwa\u017cy\u0142em w tej samej chwili w kt\u00f3rej wyst\u0105pi\u0142a. Po kilku nerwowych ruchach stwierdzi\u0142em, \u017ce serwerek jest martwy. Interfejs dzia\u0142a, konsola nie dzia\u0142a, nic si\u0119 nie pinga. <\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/11\/ams2.png\"><img loading=\"lazy\" decoding=\"async\" title=\"ams2\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto\" border=\"0\" alt=\"ams2\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/11\/ams2_thumb.png\" width=\"387\" height=\"247\"><\/a><\/p>\n<p align=\"justify\">Wykona\u0142em pierwsze, pe\u0142ne prze\u0142\u0105czenie pomi\u0119dzy o\u015brodkami (ale\u017c to brzmi!). I idea okaza\u0142a si\u0119 s\u0142uszna, ca\u0142o\u015b\u0107 ruszy\u0142a bez problemu! Kopia okaza\u0142a si\u0119 w pe\u0142ni zsynchronizowana. Po usuni\u0119ciu awarii przywr\u00f3ci\u0142em w\u0142a\u015bciwe rekordy DNS i ca\u0142o\u015b\u0107 wskoczy\u0142a na stare tory <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-smile\" style=\"border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none\" alt=\"U\u015bmiech\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2014\/10\/wlEmoticon-smile.png\"><\/p>\n<div style='text-align:left' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>W jednym z ostatnich post\u00f3w opisa\u0142em migracj\u0119 bloga na zewn\u0119trzny serwer VPS. Teraz opisz\u0119 jak zrobi\u0107 zwrotn\u0105 synchronizacj\u0119 na naszego Synology. Mo\u017cna si\u0119 zapyta\u0107, po co? Odpowied\u017a jest prosta, VPS jako us\u0142uga chmurowa mo\u017ce znikn\u0105\u0107 tak jak si\u0119 pojawi\u0142a (wraz &hellip; <a href=\"https:\/\/vm.piszki.pl\/?p=1568\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1538,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"Other","footnotes":""},"categories":[1],"tags":[37,7,14],"class_list":["post-1568","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ogolne","tag-blog","tag-nas","tag-synology"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":1,"sum_votes":5},"_links":{"self":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/1568"}],"collection":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1568"}],"version-history":[{"count":8,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/1568\/revisions"}],"predecessor-version":[{"id":1707,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/1568\/revisions\/1707"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/media\/1538"}],"wp:attachment":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}