Skip to main content

Дублирующий сервер ISP Go

Выполните установку второго (подчиненного) сервера SkyDNS ISP Go аналогично установке первого (главного) сервера. При этом isp-go-api должен быть запущен только на главном сервере и все запросы должны идти к нему. Чтобы запретить запуск isp-go-api на подчиненном сервере и проксирование запросов на него, выполните команды:

service isp-go-api stop
update-rc.d isp-go-api disable
rm -f /etc/nginx/sites-enabled/isp-go-api
service nginx restart

Настройте репликацию между серверами Redis. Для этого нужно разрешить главному серверу слушать на сетевых адресах, отличных от 127.0.0.1, при помощи настройки параметра bind в /etc/redis/redis.conf. Этот параметр надо выставить в 0.0.0.0

bind 0.0.0.0

или, если на то есть особые причины, в IP-адрес или адреса сервера.

bind 127.0.0.1 192.168.5.100 10.0.0.100

Для применения настроек необходимо перезапустить Redis:

service redis-server restart

Внимание: порт tcp/6379, на котором слушает Redis, необходимо закрыть средствами iptables, оставив только доступ с loopback-интерфейса (это нужно для isp-go-dnsproxy и isp-go-blockpage) и с подчиненного сервера. Атакующий, имея доступ к redis-серверу по tcp, смог бы изменить любую настройку любого пользователя, или, что еще хуже, заставить Redis занять всю доступную память.

Рассмотрим пример, когда главный сервер имеет IP-адрес 192.168.5.100, а подчиненный - 192.168.5.200. В этом случае безопасность на главном сервере обеспечивается таким правилом iptables:

iptables -A INPUT ! -s 192.168.5.200 -p tcp --dport 6379 ! -i lo -j DROP

Для сохранения этого правила, чтобы оно восстановилось после перезагрузки, следует выполнить команду:

service netfilter-persistent save

В настройках Redis на подчиненном сервере в файле /etc/redis/redis.conf в конце указать:

slaveof <masterip> <masterport>

и перезапустить Redis:

service redis-server restart