Spis treści
- 1. Instalacja paczek wymaganych do poprawnej instalacji i działania serwera Firefox Syncserver (wer. 1.5).
- 2. Tworzenie użytkownia i grupy fsync dla serwera Firefox Syncserver (wer. 1.5).
- 3. Instalacja serwera Firefox Syncserver (wer. 1.5).
- 4. Konfiguracja serwera Firefox Syncserver (wer. 1.5).
- 5. Tworzenie bazy danych MySQL.
- 6. Konfiguracja serwera DNS – Bind9.
- 7. Konfiguracja serwera Apache2.
- 8. Konfiguracja przegladarki Firefox.
- 9. Aktualizacja serwera Firefox Sync – Weave.
Important!
Testowane:
Debian 7.6.x, (64bit).
Debian 7.8.x, (64bit).
Debian 8.x.x, (64bit).
Apache 2.4.10
Apache 2 (2.2.1x) – tutorial,
Serwer MySQL (5.1.6x) – tutorial,
Serwer DNS -Bind 9 (9.7.x) – tutorial,
Serwer poczty np: Sendmail, Postfix, Qmail…
Python 2.6.
Python 2.7.
Windows 7 (64bit).
1. Instalacja paczek wymaganych do poprawnej instalacji i działania serwera Firefox Syncserver (wer. 1.5).
sudo apt-get install python-dev git-core python-virtualenv python-mysqldb mercurial libapache2-mod-wsgi libmysqlclient-dev php5-sqlite python make sqlite3
2. Tworzenie użytkownia i grupy fsync dla serwera Firefox Syncserver (wer. 1.5).
Tworzenie użytkownika:
- katalog domowy – /opt/syncserver,
- bez hasła,
- bez logowania się.
Dodanie użytkownika www-data (apache2) do grupy fsync.
sudo useradd -d /opt/syncserver -m fx-sync sudo adduser www-data fx-sync
3. Instalacja serwera Firefox Syncserver (wer. 1.5).
Pobranie i instalacja najnowszej wersji serwera Firefox Syncserver do katalogu np: /opt.
cd /opt sudo git clone https://github.com/mozilla-services/syncserver cd syncserver sudo make build sudo make test sudo chown fx-sync:fx-sync /opt/syncserver -R
4. Konfiguracja serwera Firefox Syncserver (wer. 1.5).
Tworzenie kopii zapasowej plików konfiguracyjnych.
sudo cp -p /opt/syncserver/syncserver.ini /opt/syncserver/syncserver.ini-orig
4.1. Edycja pliku konfiguracyjnego syncserver.ini.
sudo nano /opt/syncserver/syncserver.ini
Odszukujemy parametry, edytujemy je lub dodajemy do konfiguracji:
- Hash’ujemy: host i port,
- Ustawiamy adres url : public_url = https://fx-sync.domena.pl,
- sqluri – link do bazy danych – sqluri = mysql://fx-sync:HASŁO@localhost:3306/syncserver,
... # host = 0.0.0.0 # port = 5000 use = egg:Paste public_url = https://fx-sync.domena.pl sqluri = mysql://fx-sync:HASŁO@localhost:3306/syncserver ...
5. Tworzenie bazy danych MySQL.
Tworzenie bazy danych i użytkownika bazy danych o nazwie np: fsync.
sudo mysql -u root -p
create database syncserver;
GRANT ALL PRIVILEGES ON syncserver.* TO fx-sync@localhost IDENTIFIED BY 'HASŁO';
flush privileges;
quit
6. Konfiguracja serwera DNS – Bind9.
Tutorial – http://pl.terminal28.com/1-ip-bind-dns-buddysns-hosting-delegacja-debian-ubuntu
Dodajemy do strefy np: domena.pl wpis:
fx-sync CNAME fx-sync.domena.pl
fx-sync IN A <adres IP>
sudo /etc/init.d/bind9 restart
7. Konfiguracja serwera Apache2.
Przed konfiguracją serwera WWW należy upewnić się że posiadamy prywatny certyfikat.
Tutorial – http://pl.terminal28.com/instalacja-i-konfiguracja-apache-php5-ruby-python-webdav. – patrz pkt. 10. Tworzenie prywatnych certyfikatów.
Jeżeli posiadamy już certyfikaty należy dostosować ścieżkę dostępu do nich w konfiguracji hosta na porcie 443.
Do konfiguracji serwera WWW Apache2 dodajemy dwa wirtualne hosty:
Host na porcie 80 ze stałym przekierowaniem na port 443 (SSL).
sudo mkdir /etc/apache2/{sites-available,sites-enabled} sudo nano /etc/apache2/sites-available/syncserver
# fx-sync.domena.pl #================================================================================= ServerName fx-sync.domena.pl ServerAdmin webmaster@domena.pl
DocumentRoot /opt/syncserver/
#Redirect permanent / https://fx-sync.domena.pl/
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
RewriteCond %{SERVER_PORT} !^443$
RedirectMatch ^/$ https://fx-sync.domena.pl
#=================================================================================
# fx-sync.domena.pl
#=================================================================================
ServerName fx-sync.domena.pl ServerAdmin webmaster@domena.pl DocumentRoot /opt/syncserver WSGIProcessGroup fx-sync WSGIDaemonProcess fx-sync user=fx-sync group=fx-sync processes=2 threads=25 python-path=/opt/syncserver/local/lib/python2.7/site-packages WSGIPassAuthorization On WSGIScriptAlias / /opt/syncserver/syncserver.wsgi
ErrorLog /var/log/apache2/error-ssl.log CustomLog /var/log/apache2/access-ssl.log combined
SSLEngine on SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown CustomLog ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" SSLProtocol +SSLv3 +TLSv1
SSLCertificateFile /etc/apache2/ssl/fx-sync/fx-sync.crt SSLCertificateFile /etc/apache2/ssl/domena.pl.crt SSLCertificateKeyFile /etc/apache2/ssl/domena.pl.key # SSLCertificateChainFile /etc/apache2/ssl/root_CA.crt
<Directory "/opt/syncserver"> Order deny,allow Allow from all # Konfiduracja dla Apache2.4 #<Directory "/opt/syncserver"> # Require all granted #</Directory>
#=================================================================================
7.1. Ochrona serwera przed botami.
Utworzenie pliku .htaccess i blokada serwera przed botami.
sudo nano /opt/syncserver/.htaccess
# OCHRONA PLIKU .htaccess <Files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </Files> # OCHRONA PRZED BOTAMI I RIPPErAMI STRON RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR] RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR] RewriteCond %{HTTP_USER_AGENT} ^Custo [OR] RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR] RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR] RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR] RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR] RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR] RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR] RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR] RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR] RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR] RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR] RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR] RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR] RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR] RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR] RewriteCond %{HTTP_USER_AGENT} ^HMView [OR] RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR] RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR] RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR] RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR] RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR] RewriteCond %{HTTP_USER_AGENT} ^larbin [OR] RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR] RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR] RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR] RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR] RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR] RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR] RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR] RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR] RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR] RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR] RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR] RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR] RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR] RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR] RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR] RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR] RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR] RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR] RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR] RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR] RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR] RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR] RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR] RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR] RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR] RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR] RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR] RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR] RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR] RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Wget [OR] RewriteCond %{HTTP_USER_AGENT} ^Widow [OR] RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR] RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule ^.* - [F,L]
sudo chmod 644 /opt/syncserver/.htaccess
Test konfiguracji serwera WWW: Jeżeli wszystko zostało poprawnie skonfigurowane to wynikiem testu powinno być: Syntax OK.
sudo a2ensite syncserver
sudo apache2ctl configtest
Syntax OK
sudo /etc/init.d/apache2 restart
Test serwera Firefox Sync – Weave.
sudo ps auxwww | grep fx-sync
fx-sync 2988 0.0 0.5 663168 45964 ? Sl 20:59 0:00 /usr/sbin/apache2 -k start fx-sync 2989 0.0 0.5 663396 46032 ? Sl 20:59 0:00 /usr/sbin/apache2 -k start root 4485 0.0 0.0 7832 880 pts/0 S+ 22:23 0:00 grep fx-sync
Dostęp do strony:
- http://fx-sync.domena.pl/
- https://fx-sync.domena.pl/
- https://fx-sync.domena.pl/token/1.0/sync/1.5
8. Konfiguracja przegladarki Firefox.
Uruchamiamy przeglądarkę Firefox i wpisujemy adres:
about:config
Nastepnie wyszukujemy:
services.sync.tokenServerURI
lub
identity.sync.tokenserver.uri
Edytujemy i dodajemy wartość:
https://fx-sync.domena.pl/token/1.0/sync/1.5
9. Aktualizacja serwera Firefox Sync – Weave.
Dodanie użytkownika i grupy fsync do pliku /etc/mercurial/hgrc jako zaufanego, aby móc zaktualizować serwer za pomocą komendy hg.
sudo nano /etc/mercurial/hgrc
# system-wide mercurial configuration file
# See hgrc(5) for more information
[trusted] users = fx-sync groups = fx-sync
Tworzenie kopii zapasowej serwera Firefox Sync – Weave i aktualizacja.
Folder kopii zapasowej bedzie nosił nazwę: fsync z datą i godziną:
np: fsync-08.12.2021-18:43
cd /opt cp -pr syncserver syncserver-`date +%d.%m.%Y-%H:%M` cd /opt/syncserver sudo git pull -uv sudo make build
sudo /etc/init.d/apache2 restart
From https://github.com/mozilla-services/syncserver = [up to date] master -> origin/master = [up to date] cleanup -> origin/cleanup = [up to date] docker -> origin/docker = [up to date] rfk/reduce-requirements -> origin/rfk/reduce-requirements = [up to date] rfk/strict-audience -> origin/rfk/strict-audience = [up to date] use-persistent-db -> origin/use-persistent-db Already up-to-date.
Jeżeli z jakiegoś powodu aktualizacja nie powiedzie się, należy utworzyć kopię zapasową uszkodzonej aktualizacji i przywrócić poprzednią (dobrą) kopię.
cd /opt sudo cp -pr syncserver syncserver-`date +%d.%m.%Y-%H:%M`-uszkodzony sudo cp -pr syncserver-`date +%d.%m.%Y-%H:%M`syncserver sudo /etc/init.d/apache2 restart
Przykład:
sudo cp -pr syncserver syncserver-08.12.2012-18:43-uszkodzony sudo cp -pr fsync-22.10.2012-16:18 syncserver sudo /etc/init.d/apache2 restart
Notice
Jeśli ten artykuł pomógł Ci, masz co do niego jakieś wątpliwości lub pytania
„Zostaw komentarz”, a na pewno na niego odpowiem.
Wspomóż rozwój tego serwisu darowizną:
Wszelkie pozyskane fundusze idą na opłacenie miesięcznego abonamentu za sprzęt na, którym stoi serwer.