Минусовки на DJ-X.info
Страницы: 1   Вниз

Автор Тема: DNS Автопилот - или убегая от DDoS-а  (Прочитано 14103 раз)

0 Пользователей и 1 Гость просматривают эту тему.

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
DNS Автопилот - или убегая от DDoS-а
« : 09 Апрель 2012, 22:18:52 »


DJ-X/DNS-Autopilot, DDNS Update API!
Наша новая разработка под названием DNS Автопилот или убегая от ДДОС-а!


Это оказалось лучше чем Рулетка - Round Robin DNS!
И чем-то напоминает облачный хостинг но намного проще и дешевле,а принцип тот же.
DNS Автопилот сделан для владельцев сайтов неимеющих физического доступа к серверу, на котором расположен сайт
для того чтобы самим восстановить его работу, но у которых есть полный доступ к настройкам DNS своего домена.

Реклама!
Создам облако из двух обычных виртуальных хостингов расположенных в разных компаниях с помощью динамических DNS - дёшево!
Такой вариант подойдет для сайтов у которых не обновляется информация пользователями, а только администратором на локальном сервере!
Преимущества - сайт будет доступен постоянно! Вам нужно будет обладать навыками администратора.


Скоро у зараженных компьютеров будет по 2 IP - IPv4 и IPv6 и ддос атаки будут ещё сильнее и изощрённее!
В связи с такой перспективой я разрабатываю пути обхода этой проблемы и как один из вариантов это мой DNS Автопилот.

Вы уже наверное задавались вопросом где найти дешевый и стабильно работающий хостинг за 1-2$ ?
Судя по отзывам практически на каждом хостинге периодически бывают проблемы с доступностью и работоспособностью сайтов.
И приходится выбирать тарифный план подороже в надежде что так будет лучше и надёжнее.
Но помогает это не всегда да и зачем переплачивать если и на дешевом тарифе ресурсов хватает!
А что если настроить сайт на двух разных хостингах? Вероятность того что у двух или трёх разных провайдеров
одновременно в одно и тоже время перестанут нормально работать сервера практически равна нулю.
 DNS Автопилот может помочь повысить аптайм сайта во много раз!
Существуют платные сервисы для мониторинга доступности серверов - они могут хостеру посреди ночи прислать СМС
о том что один из его серверов перестал нормально работать и он должен будет проснуться и выяснять что и почему!
На восстановление работоспособности сервера может уйти какое-то время. А мы подождём всего то 6 минут и если
за это время работоспособность сервера, на котором находится наш сайт, не восстановится тогда наш сайт
АВТОМАТИЧЕСКИ без посторонней помощи переезжает к другому провайдеру!

И однажды меня посетила мысль, а почему бы не поставить сайт на другом сервере пока первый досят?!
Самый простой способ это вручную изменить IP в настройках DNS в A и AAA записях на другой предварительно настроенный сервер,
а ещё можно использовать Dynamic DNS - это когда можно изменять IP в настройках DNS
с помощью простой отправки GET запроса на сервис который поддерживает DDNS!
Но что делать если мы вручную изменили IP, а у нас вдруг тоже пропал интернет, например вырубили электричество, и GPRS и 3G интернета тоже нет,
а первый сервер к тому времени уже перестали досить и он уже нормально работает.
Как изменить IP в настройках DNS A - AAA записи заново?

Для этого был написан PHP скрипт, который всё это дело автоматически контролирует !
Этот PHP скрипт будет периодически запускаться через единожды настроенный планировщик задач или CRON на любом заслуживающем доверия хостинге.

Что же он делает?
Проверяющие сервера, которых может быть несколько, проверяют тот сервер, на котором в данный момент
находится сайт с помощью CRON, который периодически запускает php файл и периодичность должна быть не меньше значения указанного в TTL.
Можно найти динамические DNS у которых минимальное значение TTL 20 секунд или 60 секунд.
Каждый проверяющий сервер должен использовать разные DNS сервера!

Что проверяется?
Проверяется время ответа сервера и HTTP код ответа сервера!
Проверяющие сервера открывают php файл, который подключается к базе данных и если всё нормально,
он возвращает HTTP код ответа сервера 202, а если проблемы с базой данных он покажет нам - 200.
Любой другой HTTP код ответа сервера кроме 202 будет расценен как неправильный, или вообще не ответит в течении 5 секунд.
Во время DDoS-атаки загрузка канала доступа в Интернет достигает и превосходит 100% максимальной пропускной способности, делая web-ресурсы компании недоступными для клиентов и страница может открываться 2 минуты или дольше, при этом время создания страницы остаётся 0.041 секунд.

Что произойдёт если DNS-Автопилот заметит проблему на сайте?
Если при проверке DNS-Автопилот заметит, что сервер не ответил вовремя или ответил, но HTTP код ответа сервера не был 202, тогда он автоматически выберет другой
рабочий сервер и изменит IP в настройках DNS на запасной, который работает в данный момент без сбоев.
И сайт снова начнёт работать, но уже на другом сервере!

И зачем это нужно?
DNS Автопилот автоматически выбирает другой рабочий сервер и максимальное время простоя сайта будет всего несколько минут!

Запасных серверов может быть несколько.
У нас их два!

Как это работает?
Например основной сервер перестал нормально работать - очень долго не отвечает (можно указать время в секундах - у нас максимальное время ожидания 5 секунд)
или показывает ошибку 503, 502, или не смог подключиться к базе данных из-за того что превышен лимит запросов к базе данных,
или вообще не отвечает более пяти секунд.
DNS Автопилот сам через 6 минут  изменит IP в настройках DNS на IP сервера №2.


195.114.138.162 - - [21/May/2012:22:06:16 +0300] "GET /Server-Status.php HTTP/1.0" 202 110 "-" "DJ-X/DNS-Autopilot"
195.114.138.162 - - [21/May/2012:22:12:16 +0300] "GET /Server-Status.php HTTP/1.0" 202 110 "-" "DJ-X/DNS-Autopilot"
195.114.138.162 - - [21/May/2012:22:18:16 +0300] "GET /Server-Status.php HTTP/1.0" 202 110 "-" "DJ-X/DNS-Autopilot"
195.114.138.162 - - [21/May/2012:22:24:16 +0300] "GET /Server-Status.php HTTP/1.0" 202 110 "-" "DJ-X/DNS-Autopilot"
195.114.138.162 - - [21/May/2012:22:30:16 +0300] "GET /Server-Status.php HTTP/1.0" 200 124 "-" "DJ-X/DNS-Autopilot"

Так в чём прикол?
Всё проверяется и настраивается АВТОМАТИЧЕСКИ без посторонней помощи!
Нужно всего один раз разместить сайт на нескольких обычных серверах и он
всё равно будет работать даже если один из них отключится!


С чем DNS Автопилот не может справиться.
Если сервер очень часто пропадает на 5-10 секунд в промежутках между проверками - DNS Автопилот не заметит проблем - таких хостингов следует избегать!


DNS Автопилот работает с сервисом на котором есть поддержка Dynamic DNS
и на котором можно обновлять IP адрес с помощью GET запроса.

Free DNS service Hurricane Electric Hosted DNS Dynamic DNS support IPv4+IPv6 - TTL 300.
И другие.


Синхронизация баз данных на разных серверах с помощью dbForge Studio for MySQL - одним нажатием файла.cmd !
Эта программа поможет легко синхронизировать базы данных на хостингах у которых можно включить удалённый MySQL
и на котором запрещена репликация! Желательно что бы копия сайта была и у нас на локальном сервере, на котором мы будем публиковать новости,
а после одним нажатием на файл.cmd синхронизировать их с другими серверами! Это оказывается очень удобно!

И ещё нам понадобиться расширение для Google Chrome IP Address and Domain Information.
Настройка копии сайта на другом IP без изменений в DNS.
Сколько времени проработал сайт на одном IP - посчитать можно здесь внизу страницы.
Скоро будет вестись весёлая статистика для нашего сайта с историей и причиной переездов, с датой и HTTP кодом ответа сервера!
Внимание! По нашей статистике нельзя сравнивать этот хостинг лучше, а тот хуже!
Из-за возможных проблем на проверяющих серверах информация может быть не совсем обьективна!


Статус разработки: Скоро в продаже!
DNS-Autopilot успешно прошел испытания на двух серверах, которые периодически
находятся под DDOS-атаками организованными недоброжелателями!
Nginx защита от DDoS атак с помощью Cookies

Разработка нестандартных решений.
Сделано компанией - Чикон Продакшнс DJ-X™ ® ©
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
DNS Автопилот - или убегая от DDoS-а
« Ответ #1 : 10 Декабрь 2012, 13:24:52 »


Для просмотра большой GIF анимации в браузере Google Chrome нужно обновить страницу!
Автоматический мониторинг серверов Схема №1 - испытания прошли успешно и всё отлично работает!
Проверка двух серверов на которых находится копия сайта со статическими IP.
Два сервера поочерёдно проверяют друг друга - проверяется тот сервер на котором в данный момент находится сайт.
Для нормальной работы такой схемы нужно чтобы хотя бы один сервер был доступен и нормально работал.
Как правило два сервера из разных компаний в одно и то же время не перестанут работать!
Это нам и нужно - в результате наш сайт доступен практически постоянно!
Максимально возможное время простоя сайта при такой схеме мониторинга 6 минут!
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
DNS Автопилот - или убегая от DDoS-а
« Ответ #2 : 10 Декабрь 2012, 17:37:07 »


Для просмотра большой GIF анимации в браузере Google Chrome нужно обновить страницу!
Автоматический мониторинг серверов Схема №2 - испытания прошли успешно и всё отлично работает!
Проверка двух серверов на которых находится наша копия сайта со статическими IP.
Проверяющий независимый сервер проверяет тот сервер на котором в данный момент работает наш сайт.
 Для нормальной работы такой схемы нужно чтобы хотя бы один сервер на котором расположен наш сайт
был доступен и нормально работал. Если два сервера одновременно перестанут работать IP меняться не будет,
пока хотя бы один из них снова не начнёт работать! Проверяющих серверов может быть несколько 2-3.
 Как правило два сервера из разных компаний в одно и то же время не перестают работать одновременно!
А это нам и нужно - в результате наш сайт доступен практически постоянно!
 У нас работала эта схема с TTL 60 секунд, сайт расположен на двух серверах и
проверяют их из трех независимых точек мониторинга с разным интервалом времени!
Максимально возможное время простоя сайта при такой схеме мониторинга всего несколько минут!

DNS Автопилот временно отключён!
Из-за того что на VDS пока не всё так плохо как на виртуальном хостинге,
хотя он иногда тоже бывает недоступен.
ftp.dj-x.info/monit.log
Эксперименты в этом направлении продолжаются - теперь уже на VDS.
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
DNS Автопилот - или убегая от DDoS-а
« Ответ #3 : 10 Декабрь 2012, 18:01:52 »

Автоматический мониторинг серверов Схема №3 - на доработке!
Мониторинг нашего компьютера с динамическим IP + 1 статический обычный хостинг!
При такой схеме мониторинга наш сайт будет расположен на двух серверах!
Один будет с динамическим у нас на компьютере с неограниченными ресурсами, а другой  со статическим IP на каком-то дешевом хостинге!
Если сайт будет находится на локальном сервере то второй сервер будет проверять доступность нашего компьютера
с интервалом 6 минут и при возникновении проблем сам переключит IP на свой статический.
После того как сайт переедет, никакие проверки выполняться не будут пока мы снова не появимся в сети и не изменим IP в DNS,
после чего автопилот автоматически начнёт проверять наш локальный сервер с динамическим IP!
Можно будет спокойно выключать локальный сервер с динамическим IP и Ваш сайт всёравно продолжит работать на статическом IP!
Можно будет не переживать IP будет изменён автоматически в течении нескольких минут!
Планируется поддержка всех популярных сервисов DDNS!
По-моему это просто супер!
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
DJ-X/Dynamic-DNS-Updater
« Ответ #4 : 05 Январь 2013, 21:13:15 »


Я написал новый универсальный Dynamic DNS Updater на PHP с поддержкой IPv4 и IPv6.
Он отправляет запросы на DDNS только после того как изменится ваш IP.
Он сверяет наш IP с настройкой IP в DNS домена и как только будет
замечено не соответствие IP будет обновлен на сервере DDNS.
Это будет хорошей альтернативой и заменителем подобных программ.
Уже есть новый кроссплатформенный Dynamic DNS Update Client на PHP с поддержкой всех популярных динамических DNS!
Он может обновлять A и AAA DNS записи домена одновременно!
Для правильной работы у вас на сервере должен быть IPv4 и IPv6!
Если у вас пока нет IPv6 вы можете отключить его в настройках в PHP файле!

Запуск php скрипта в планировщике задач Windows через Wget.

Планировщик (cron) интервал выполнения 10 минут.
/usr/bin/fetch -q -o /dev/null http://localhost/Dynamic-DNS-Updater.php
php -f /home/user/data/www/localhost/DDNS/Dynamic-DNS-Updater.php
wget -O - http://localhost/DDNS/Dynamic-DNS-Updater.php

Обновлено 28.06.2016.
Добавлена запись в базу данных ответов от серверов!
Скачать бесплатно Dynamic DNS Updater v.1 Free!
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
DJ-X/Dynamic-DNS-Updater+IPv6-Tunnel-Broker-Updater!
« Ответ #5 : 20 Апрель 2013, 17:18:39 »


DJ-X/Dynamic-DNS-Updater+IPv6-Tunnel-Broker-Updater! Он теперь может определять
IPv4 и IPv6 6to4 адреса не выходя в интернет с помощью команды ifconfig если у роутера белый IP.
Проверено в Linux в OpenWrt на сервере uhttpd + php5-cgi
- эта операционная система работает на многих роутерах и я в нём провожу эксперименты и так осваиваю линукс.
Теперь мой php скрипт сможет сам настраивать IP в A и AAA записях в DNS домена
и обновлять IPv4 адреса на сайтах туннельных брокеров NetAssist  и Hurricane Electric и любых других...

Тестируется на роутере TP Link TL Wr842nd - ftp://ftp.dj-x.info работает на динамических IPv4 и IPv6 6to4 адресах!

OpenWrt - виртуальный пользователь pure-ftpd.
Сайты в Ipv6 туннелях - узнай как настраивать на компьютере IPv6 туннель за непонимающим IPv6 роутером.
Записан

DJ-X

  • Музыкант №1
  • Ветеран
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 151
    • Просмотр профиля
    • Минусовки Бесплатно !
Re:DNS Автопилот - или убегая от DDoS-а
« Ответ #6 : 07 Май 2013, 14:31:46 »

Расширяем возможности мониторинга с помощью программы Monit на VDS/VPS!
Я его научил отправлять СМС сообщения с помощью сервиса отправки смс сообщений http://gogogo.sms.ru!
Бесплатные СМС для программистов.

Превращаем домашний роутер TP-LINK TL-WR842ND с OpenWrt в полноценную точку мониторинга серверов с уведомлением по СМС!
Для того чтобы запустить Monit в OpenWrt нужно в /etc/monitrc закоментировать вот это:
#use address
#allow @monit
#allow @users readonly


Обновите WGET!

Проверяем доступность FTP сервера через каждые 6 цыклов.

# ftp.dj-x.info
check host ftp.dj-x.info with address ftp.dj-x.info
every 6 cycles
if failed port 21 protocol ftp then exec "/bin/sh /root/ftp.dj-x.info-sms.sh"
if failed port 21 protocol ftp then unmonitor
alert info(собака)dj-x.info

Ищем текс на странице 202.
# dj-x.org.ua  
check host dj-x.org.ua with address dj-x.org.ua
every 6 cycles
if failed (url https://dj-x.info/Server-Status.php
and content == '202') then exec "/bin/sh /root/dj-x.org.ua-sms.sh"
if 1 restarts within 1 cycles then unmonitor
alert info(собака)dj-x.info

Пример POST отправки сообщения на кириллице в Windows через пакетный файл CMD в котором будет запускаться WGET для Windows.
sms.cmd - файл должен быть в кодировке UTF-8 WIN.

#UTF-8
chcp 65001
"C:\Program Files (x86)\GnuWin32\bin\wget.exe" -O D:\TXT\CMC.txt --post-data="api_id=ВАШ-АПИ-ИД&to=ВАШ-ТЕЛЕФОННЫЙ-НОМЕР&text=Всё потрачено, капец!&partner_id=16389" --user-agent="DJ-X\SMS" "http://sms.ru/sms/send?" --tries="0" --waitretry="120" --retry-connrefused --no-check-certificate --secure-protocol=auto --inet4-only

Linux
sms.sh - файл должен быть в кодировке UTF-8 Unix, даём файлу права на исполнение.

/usr/bin/wget -O "/tmp/CMC.txt" --post-data="api_id=ВАШ-АПИ-ИД&to=ВАШ-ТЕЛЕФОННЫЙ-НОМЕР&text=Всё потрачено, капец!&partner_id=16389" --user-agent="DJ-X\SMS" "http://sms.ru/sms/send?" --tries="0" --waitretry="120" --retry-connrefused --no-check-certificate --secure-protocol=auto --inet4-only

Можно ещё вставить этот параметр --no-clobber
он не даст WGET отправлять СМС сообщения через каждую минуту пока мы не удалим скачанный файл /tmp/CMC.txt
А удалять файл CMC.txt можно через команду которая удалит файл через 4 часа.
/bin/sleep 4h ; rm -rf /tmp/CMC.txt
Создаём файл rc в папке /root/.ssh с таким содержимым и мы будем всегда вкурсе кто и когда заходил к нам как ROOT на сервер по SSH.
rc
echo $(date) $SSH_CONNECTION $USER $SSH_TTY | sendmail -F "ssh login" info(собака)dj-x.info
/usr/bin/wget -O "/tmp/ssh-sms.txt" --post-data="api_id=ВАШ-АПИ-ИД&to=ВАШ-ТЕЛЕФОННЫЙ-НОМЕР&text=$(date) $SSH_CONNECTION $USER $SSH_TTY" --user-agent="DJ-X\SMS" "http://sms.ru/sms/send?" --tries="0" --waitretry="120" --retry-connrefused --no-clobber --no-check-certificate --secure-protocol=auto --inet4-only
СМС будет отправляться 1 раз пока не удалим /tmp/ssh-sms.txt, а письма всегда после каждого удачного подключения!

Правило с помощью которого можно удалять не нужные файлы и папки через веб интерфейс.
Чтобы оно работало пишем несуществующий домен!
# Deleting files
check host ssh-sms.dj-x.info with address ssh-sms.dj-x.info
  group CMC
  if failed port 21 protocol ftp then exec "/bin/rm -rf /tmp/ssh-sms.txt"
  if failed port 21 protocol ftp then unmonitor
Записан
Страницы: 1   Вверх
 

Страница сгенерирована за 0.069 секунд. Запросов: 23.