Доступ к серверу по ssh только для определённой группы

SSH позволяет ограничивать доступ к серверу только для пользователей, состоящих в определённой группе. Не являясь её членами, другие пользователи не смогут зайти на сервер по ssh. Это удобная возможность выдавать права доступа только тем пользователям, кому это действительно необходимо.

(далее…)

Базовая настройка iptables

Одной из первоочередных задач после установки системы является корректная настройка iptables для фильтрации трафика. Политика по-умолчанию разрешает всё, что не запрещено. Это не самый удачный метод в плане безопасности, потому что в таком режиме сервер подвержен воздействию злоумышленников.

Можно, например, заняться сканированием открытых на сервере портов. На основе этого возможно определение используемых сервисов, их версии, названия и версии операционной системы. Далее — подбор уязвимостей к ним. Или некоторые icmp — сообщения могут выдать лишнюю информацию.

(далее…)

Как скрыть факт использования nginx на сервере

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

static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;

Но чтобы пересобрать nginx из исходников, нужно обладать некоторыми знаниями.

Однако, существует и более простой метод, не требующий вообще никаких особых действий, типа редактирования исходников и перекомпиляции.

(далее…)

Использование nginx http_referer_module для защиты админки сайта от брутфорса

Читая документацию веб-сервера nginx, наткнулся на интересный модуль под названием http referer module. Он позволяет блокировать доступ к сайту, либо его разделам, если в запросе отсутствует корректный заголовок referer.

Этот модуль можно применить для защиты админки любого сайта от брутфорса. Например, сайт работает на вордпресс, но блокировка доступа по ip будет неуместной, если на сайте есть зарегистрированные пользователи. Им же тоже надо аутентифицироваться, а собирать их ip — занятие бессмысленное. :)

(далее…)

Простое отслеживание изменений файлов

В случае взлома сервера, хакер может модифицировать файлы с целью оставить какой-нибудь бэкдор, шелл и т.п. Изменённые файлы можно было бы отследить по дате модификации, но эту дату легко подделать посредством утилиты touch.
(далее…)

Ограничение доступа к wp-login по ip в nginx

В последнее время fail2ban перестал нормально защищать от брутфорса на wordpress потому, что ip во всяком запросе уникальный и блокировать каждый адрес бессмысленно.

Раз такая ерунда, решил ограничить доступ к файлу wp-login.php по ip. Здесь есть один нюанс: для прописанного в конфигурационном файле nginx локейшена (location) нужно добавить обработчик скриптов, при использовании php-fpm.

В итоге, конструкция выглядит так: (далее…)

Спам-боты, postfix и fail2ban

На моём сервере Postfix работает в качестве сервера исходящей почты, то есть только отправляет почту с сайтов. Естественно, открыт 25-ый порт. Но большую часть времени туда долбятся носом всякие боты, пытающиеся воспользоваться сервером, как открытым релеем. :) Естественно, у них ничего не получается, ибо настроены правила. Но логи засоряют.

(далее…)

Установка и настройка OpenVPN на Debian 8

OpenVPN — это программный комплекс, позволяющий защитить от «прослушки» интернет-трафик пользователя, обеспечивая зашифрованную передачу данных от устройства клиента до сервера с установленным OpenVPN. Отлично подходит при использования публичных wifi точек доступа, где информация может быть перехвачена третьими лицами. Или в случае, когда ваш ip заблокирован на определённом сайте и нужно безопасно обойти это ограничение.

(далее…)

Множественные запросы к xmlrpc.php в WordPress

Сегодня заглянул в access-лог одного сайта на вордпресс и обнаружил множество запросов подобного рода:

1.234.83.77 - - [05/Sep/2014:12:07:01 +0600] "POST /xmlrpc.php HTTP/1.1" 200 441 "-" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"
1.234.83.77 - - [05/Sep/2014:12:07:01 +0600] "POST /xmlrpc.php HTTP/1.1" 200 441 "-" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"
1.234.83.77 - - [05/Sep/2014:12:07:02 +0600] "POST /xmlrpc.php HTTP/1.1" 200 441 "-" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"
1.234.83.77 - - [05/Sep/2014:12:07:02 +0600] "POST /xmlrpc.php HTTP/1.1" 200 441 "-" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 125LA; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"

Судя по результатам гугления, есть какой-то эксплоит, связанный с этим файлом — xmlrpc.php. В одной статье на английском говорилось, как я понял, опираясь на свои плохие знания данного языка :), о возможности организовать подбор паролей. Правда, пока что я не заметил последствий, но лучше заранее принять меры. :)

(далее…)

Forward Secrecy для nginx

В современном мире шифрование данных является не просто прихотью, а прямой необходимостью. В частности — шифрование http трафика имеет огромное значение для всех сайтов, где производится обработка любых персональных данных. А также для защиты от mitm-атак.

Таким образом, использование Forward Secrecy на веб-серверах становится обязательным для каждого сайта, работающего по https протоколу и позволяет улучшить стойкость шифрования информации.

Forward secrecy можно соответствующим образом настроить в nginx.
(далее…)