Архив рубрики: Публикации

Способы защиты от флуда и DDoS атак в FreeBSD

Хотелось бы поговорить с вами на актуальную нынче тему, а именно — про DDoS и методы борьбы с ним. Рядовые администраторы знают, что это такое, а вот для большинства вебмастеров это аббревиатура остается загадкой до того момента пока они на личном опыте не столкнуться с этой неприятностью.

Итак, DDoS — это сокращение от Distributed Denial of Service (распределенный отказ в обслуживании), когда тысячи зараженных компьютеров отправляют на сервер множество запросов, с которыми он, в последствии, не может справиться. Целью DDoS атаки является нарушение нормальной работы сервера, а в дальнейшем — «падение» сайта или сервера целиком.

Как же от этого защититься? К сожалению, универсальных мер защиты от DDoS-атак до сих пор не существует. Тут необходим комплексный подход, который будет включать меры аппаратного, программного и даже организационного характера.

 

Черные дыры

 

net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1

 

Это превращает машину в черную дыру при попытке подключиться к портам, которые не слушают. Nmap по настоящему не любит это.

 

Защита очереди сокета от SYN атак.

 

Основной из самых популярных атак остается SYN флуд, при которой очередь сокета атакуемого хоста переполняется некорректными попытками соединений. Для защиты от таких атак некоторые из UNIX поддерживают отдельные очереди для входящих запросов на соединение. Одна очередь для полуоткрытых сокетов (SYN полученSYN|ACK послан), другая очередь для полностью открытых сокетов, ждущих вызова accept() от программы. Эти две очереди должны быть увеличены, чтобы атаки малой и средней интенсивности почти не влияли на стабильность и доступность сервера.

 

kern.ipc.somaxconn=1024

 

Редиректы (Перенаправления)

Атакующий может использовать IP redirect для изменения таблицы марщрутизации на удаленном хосте. В хорошо разработанной сети редиректы на конечные станции не должны требоваться. Оба – отправка и принятие редиректов должны быть отключены.

 

net.inet.icmp.drop_redirect=1

net.inet.icmp.log_redirect=1

net.inet.ip.redirect=0

net.inet6.ip6.redirect=0

 

Настройка стека IP в системах UNIX на оптимальную производительность

 

На размер буфера приема и передачи TCP напрямую влияет параметр размера TCP окна. Увеличенный размер окна позволит более эффективно передавать данные, особенно при интенсивной передаче, такой как FTP и HTTP. Значение по умолчанию не является оптимальным и должно быть увеличено до 32768 байт. Это значение не должно быть более 64Кб, если вы не знаете об ограничениях RFC1323 и RFC2018, и если нет поддержки с обеих сторон.

 

sysctl -w net.inet.tcp.sendspace=32768

sysctl -w net.inet.tcp.recvspace=32768

 

Очистка ARP

 

Существует возможность, что атакующий создаст нехватку ресурсов или уменьшение производительности заполнив кэш маршрутизации IP с помощью неправильных записей в ARP таблице. Этот параметр рекомендуется выставить в 20 минут по умолчанию.

 

sysctl -w net.link.ether.inet.max_age=1200

 

Маршрутизация отправителя:

 

С помощью маршрутизации отправителя атакующий может попытаться достигнуть внутренние IP адреса, включая адреса RFC1918. Важно отключить принятие пакетов маршрутизации отправителя для предотвращения незаметных проб вашей внутренней сети.

 

sysctl -w net.inet.ip.sourceroute=0

sysctl -w net.inet.ip.accept_sourceroute=0

 

Установка TIME_WAIT

 

На загруженном web сервере многие сокеты могут задерживаться в состоянии TIME_WAIT. Это вызвано неправильно написанными клиентскими программами, которые неправильно закрывают сокеты. Это так же может быть использовано для DDoS атак.

 

Нет рекомендаций по настройке.

 

Ответ на широковещательный ECHO

 

Эти атаки работают с помощью отправки сообщения ICMP 8 0 (запрос ECHO) на широковещательный адрес с фальшивого адреса. Некоторые стеки IP ответят по умолчанию на такие сообщения. Это должно быть отключено. Более того, если хост является фаерволом или роутером, то он не должен пропускать прямые широковещательные запросы.

 

sysctl -w net.inet.icmp.bmcastecho=0

 

Другие пробы с помощью широковещания

Существуют 2 вида проб. Запрос маски адреса может быть использован для определения размера блока сети и установки диапазона для дальнейших проб. Широковещательный запрос временного штампа (timestamp) – еще одно средство выявления хостов и определения их операционных систем (fingerprinting)

sysctl -w net.inet.icmp.maskrepl=0



2019-08-08T16:24:48
FreeBSD

Не работает wake on lan в linux, как настроить

После недавнего обновления proxmox до 6-й версии перестал работать WoL. Это технология wake on lan для запуска компьютера через сеть. Я использую proxmox для тестовых целей, поэтому ему не обязательно постоянно работать. Я сделал скрипт в mikrotik, с помощью которого удаленно запускаю гипервизор в случае необходимости и пользуюсь им. Потом завершаю работу.

Читать

Все методы и способы анализа локальной сети: сканирование скорости, IP-адресов и трафика

Отлаженная домашняя или корпоративная сеть может начать сбоить: проблемы с передачей файлов, общие тормоза сети, конфликтность адресов и т. д. В таких случаях необходимы программный анализ и исправление неполадок. Но сначала необходимо провести сканирование локальной сети, состоящее из нескольких этапов.

Читать

Как исправить ошибку 0x800703EE на Windows 10?

Если вы столкнулись с ошибкой 0x800703EE при копировании файлов на внешние устройства хранения и с них, то эти сообщения помогут вам. Эта ошибка может или не может сопровождаться этим сообщением — Том для файла был изменен извне, так что открытый файл больше не действителен. Это мешает вам копировать файлы.

Причинами этой ошибки могут быть любые из них:

  • Конфликт со сторонним антивирусом.
  • Служба, принадлежащая программе резервного копирования, может блокировать программу.
  • Драйверы USB могут быть повреждены или устарели.
  • Резервное копирование Windows и Volume Shadow Copy могут быть отключены
  • Некоторые системные файлы могут быть повреждены
  • Драйверы внешнего устройства повреждены.

Прежде чем начать, возможно, вы могли бы переместить файлы в другое место на локальном диске, вынуть USB-устройство, снова вставить его, а затем попытаться переместить файл с локального диска на USB-устройство. Если это не помогает, попробуйте следующие решения для решения проблемы:

  1. Переустановите драйверы контроллера USB
  2. Проверьте службы теневого копирования томов и Windows Backup
  3. Отключить постоянную защиту сторонних антивирусных продуктов
  4. Выполнить сканирование SFC
  5. Удалить драйверы фильтров.

1] Переустановите драйверы контроллера USB

Проблема может быть вызвана устаревшими или поврежденными драйверами контроллера USB. В этом случае вы можете обновить их следующим образом:

Нажмите Win + R, чтобы открыть окно «Выполнить» и введите команду devmgmt.msc. Нажмите Enter, чтобы открыть диспетчер устройств.

Выделите Контроллеры универсальной последовательной шины и раскройте список.

Щелкните правой кнопкой мыши и выберите «Удалить устройство» для каждого драйвера отдельно.

Затем перезагрузите систему, подключитесь к Интернету, и драйверы будут переустановлены самостоятельно.

Вы также можете скачать драйверы для внешнего устройства с сайта производителя и установить его.

2] Проверьте службы теневого копирования томов и резервного копирования Windows

Одна из причин обсуждаемой проблемы заключается в том, что службы теневого копирования и резервного копирования томов могут быть отключены или не запущены.

Нажмите Win + R, чтобы открыть окно «Выполнить» и введите команду services.msc. Нажмите Enter, чтобы открыть Управление службами.

Найдите сервис «Теневое копирование тома» и щелкните по нему правой кнопкой мыши. Выберите Свойства. Убедитесь, что тип запуска «Вручную» и что служба запущена. Если это не так, измените его и нажмите кнопку «Пуск». Нажмите «Применить», а затем «ОК», чтобы сохранить настройки.

Повторите тот же процесс для службы резервного копирования окон, а затем посмотрите, можете ли вы скопировать сейчас.

3] Отключить постоянную защиту сторонних антивирусных продуктов

Известно, что многие сторонние антивирусные продукты вызывают конфликты с подлинными файлами. Они могут стать чрезмерной защитой системы. Решение проблемы, в данном случае, заключается в том, чтобы временно отключить защиту в реальном времени с помощью этих сторонних антивирусных продуктов и посмотреть, поможет ли это.

4] Выполнить сканирование SFC

Если в системе отсутствуют какие-либо системные файлы, это может привести к ошибке 0x800703EE с внешними хранилищами. Чтобы устранить проблему, выполните сканирование SFC. Он проверяет отсутствующие или поврежденные системные файлы и заменяет их.

5] Удалить драйверы фильтров

Это предложение применимо только в том случае, если вы видите Том для файла был изменен извне, так что открытый файл больше не является действительным сообщением об ошибке с кодом ошибки 0x800703EE.

Создайте точку восстановления системы или создайте резервную копию реестра, а затем удалите драйверы фильтров. Для этого запустите regedit и перейдите к следующему ключу:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E965-E325-11CE-BFC1-08002BE10318}

Выберите этот ключ {4D36E965-E325-11CE-BFC1-08002BE10318} и затем на правой панели проверьте наличие значений Upperfilters и Lowerfilters. Если это так, щелкните правой кнопкой мыши значения и выберите «Удалить», чтобы удалить их, и перезагрузите компьютер. Если нет, то выйдите из редактора реестра.

Всего наилучшего.



2019-08-08T11:31:00
Вопросы читателей

Получения рейтинга A+ для домена

В сегодняшней статье рассмотрим конфигурацию Nginx для получения рейтинга A+ на сайте ssllabs.




Начальная конфигурация:




  • Сервер Ubuntu Server 18.04
  • VestaCP – контроль панель
  • Web сервер Nginx v1.17.2
  • DNS сервер bind9
  • PHP v7.4
  • MySQL v5.7




Все сайты конфигурируются через контроль панель VestaCP, поэтому все примеры будут показаны для данной панели, но также вся приведенная конфигурация применима и к обычной конфигурации сервера.




И так начнем:




Настройка сжатия в Nginx




Открываем файл конфигурации nginx




sudo nano /etc/nginx/nginx.conf




И вносим в секцию http следующие строки:




##Compression
gzip                on;
gzip_static         on;
gzip_vary           on;
gzip_comp_level     6;
gzip_min_length     1024;
gzip_buffers        16 8k;
gzip_types          text/plain text/css text/javascript text/js text/xml application/json application/javascript application/x-javascript application/xml application/xml+rss application/x-font-t$
gzip_proxied        any;
gzip_disable        "MSIE [1-6].";




Настройка stapling в Nginx




Для начала создадим файл dhparams.pem:




sudo openssl dhparam -out /home/admin/conf/web/dhparams.pem 4096




путь можете указать свой, но не забудьте тогда поменять его и в конфигурации nginx




Также ускорим проверку сертификата клиентом и увеличим скорость загрузку сайта. Для этого у вас должен быть сертификат SSL. У меня сертификат от letsencrypt, для него и привожу пример. Сертификат получен при помощи certbot установленного в системе.




Давайте добавим в конфигурацию nginx, следующую секцию:




##Stapling Session
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/obu4alka.ru/chain.pem;
resolver 8.8.8.8;
ssl_session_tickets off;
ssl_dhparam /home/admin/conf/web/dhparams.pem;




название сайта и пути пишем свои.




Включаем HSTS в Nginx




В секцию http:




## HSTS Session
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report";




Настройка TLSv3 в Nginx




Также вносим в секцию http:




##SSL Session
ssl_session_cache   shared:SSL:10m;
ssl_protocols       TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";




Если необходимо, то можете добавить TLSv1.1 и TLSv1.0 в ssl_protocols




Сгенерировать шрифты можно по адресу SSL Configuration Generator




Включаем SSL и HTTP2 в Nginx




Открываем на редактирование файлы виртуальных хостов. По умолчанию они находятся в директории /etc/nginx/sites-enabled/ваш-сайт.conf




В моем случае пути следующие:




sudo nano /home/admin/conf/web/mysite.nginx.ssl.conf




И вношу изменение:




##было
server {
     listen      80.81.82.83:443 ;
     server_name obu4alka.ru www.obu4alka.ru;




##стало
server {
     listen      80.81.82.83:443 http2 ssl;
     server_name obu4alka.ru www.obu4alka.ru;




Работа с HTTPS устроена таким образом, что если у сервера был запрошен по защищенному протоколу сайт, не имеющий сертификата, либо вообще произошло обращение по IP-адресу, то в ответ будет показан тот защищенный сайт, который находится первым в конфигурации. Во многих случаях такое поведение будет неожиданным для пользователя и его следует избегать. В нашем случае, при запросе узла отличного от указанного в конфиге, сервер оборвет соединение без отправки данных (ошибка 444 в Nginx).




server {
     listen      80.81.82.83:443 http2 ssl;
     server_name obu4alka.ru www.obu4alka.ru;
     if ($host != $server_name) {
        return 444;
     }




Тестирование на получения рейтинга A+




переходим на сайт ssllabs.com – для тестирования и получения рейтинга.




Также можете перейти на сайт hstspreload.org– для внесения сайта в списки HSTS сайтов.



[endtxt]




RSS




2019-08-08T08:00:33
Nginx

Монтирование сетевой папки в Linux | Ubuntu

Сегодня в статье рассмотрим пример как можно примонтировать сетевую папку Windows или Unix в операционную систему Linux.

В качестве подопытного будем использовать ПК с установленной на неё Ubuntu Server. Но данное руководство будет справедливо и для большинства других ОС на Linux. Читать