Защита аккаунта от взлома на веб-сайтах и соцсетях

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

Итак, тезисно:

  • Пароли. Существует мнение, что пароли должны быть сложными для того чтобы их не взломали. На самом деле, даже супер-сложный пароль могут подобрать. Особенно, если вы используете один и тот же пароль на разных сайтах. Некоторые сайты (со слабой защитой) могут взломать и базы данных логинов и паролей «утекут» в открытый доступ. Далее, злоумышленники обязательно попробуют именно этот логин и пароль на других популярных сервисах.

Конечно, пароль должен быть не из тех, что простые и распространенные. Но главное, все таки, это количество символов — не менее 10. И самое главное — не использовать один и тот же пароль для различных сервисов. Но чтобы не усложнять вам жизнь, существует такой лайфхак — добавлять к вашему «сложному паролю» несколько символов (систему) в зависимости от сервиса.

Предположим, ваш обычный пароль есть «ParOLb83561». Для YouTube вы можете использовать такой пароль «ParOLb83561-YT» (черточка как разделитель и две буквы, которыми можно зашифровать сервис), для TWitter такой «ParOLb83561-TW». И тогда сложный пароль становится уникальным

  • Двух-факторная авторизация. Этим понятием, уже не удивить, это не диковинка. Многие сервисы и соцсети предлагают ее, как дополнительную меру безопасности. Это не сложно, советую ее использовать в тех сервисах, где взлом будет очень болезненный (или потерей денег или других ценностей).

Наиболее распространённые разновидности: с помощью СМС и подтверждающих кодов Google Authenticator.

  • Ссылки в письмах. К письмам со ссылками или кнопками стоит относится очень скептически. (Злоумышленники умеют маскироваться свой адрес электронной почты под емэйл компании, от лица которой пишут) Вполне вероятно, что злоумышленники сделали свой сайт, похожий на знакомый вам сервис для того, чтобы украсть ваш логин и пароль.

Далее вы переходите по ссылке на этот сайт, вводите свой логин и пароль и получаете сообщение, что введено неверно. А на самом деле, ваши данные уже скомпрометированы и сохранены в базе хакеров.

  • В продолжении предыдущего пункта — для чувствительных сайтов или соцсетей используйте функцию браузера — избранное, чтобы открывать такие сайты только от туда, а не из писем или даже из поиска в гугле. Так надежнее и исключается возможность попадания на фишинговый (поддельные) сайты.

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

Nginx basic auth — аутентификация для сайта или папки сайта на Linux

Иногда возникает желание поставить аутентификацию (запаролить) сайт или же папку на сайте.

Например:

  • Для области администрирования
  • Проводятся работы по разработке и рано открывать область или функционал широкому кругу пользователей
  • Область, предназначенная только для разработки
  • Необходимо закрыть от индексирования (не через специальные файлы, а совсем)
  • Есть желание предоставлять доступ к области только для ограниченного круга лиц
  • Другие причины

Генерация аутентификационного файла

Такого рода аутентификация называется Basic auth (или Http auth), подразумевает ввод логина и пароля и выглядит следующим образом

При этом, если логин и пароль не введен или введен не верно — выдает 401ю ошибку

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

/etc/nginx/.htpasswd

Проверим, существует ли уже такой файл

$ sudo su
# cat /etc/nginx/.htpasswd

И если он не существует, создадим такой файл с пользователем user01

# htpasswd -c /etc/nginx/.htpasswd user01

Система предложит 2 раза ввести пароль, который мы заранее подготовили и сохранили. Именно этот логин (user01) и пароль будут использованы для аутентификации

Если же файл .htpasswd существует, можно добавить пользователя таким образом

# htpasswd -c /etc/nginx/.htpasswd user02

При этом, далее, можно в режиме редактирования файла убрать других пользователей, если это необходимо — удалением соответствующих строк.

Если введенные пользователь (user02) уже существует — таким образом, мы просто поменяем ему пароль…

Конфигурирование Nginx

Следующий шаг — внедрение аутентификации в конфигурацию сайта Nginx. При этом, можно закрыть как весь сайт, расположив строчки:

auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/.htpasswd

На уровне server:

server {
    .…
    auth_basic "Restricted area";
    auth_basic_user_file /etc/nginx/.htpasswd
    ….
}

Так и на уровне какой то области (папки), в примере ниже в зоне «admin»:

server {
    .…
    location /admin {
        ….
        auth_basic "Restricted area";
        auth_basic_user_file /etc/nginx/.htpasswd
        ….
    }
    ….
}


После добавления в конфигурацию сайте — не забываем перезагрузить nginx.

Исключения для определенных IP

Бонусом, есть возможность добавить какие то айпишники в «белый список», чтобы для них не запрашивалась аутентификация, а для остальных — запрашивались логин и пароль. Делается это следующим образом:

{
    …
    satisfy any;
    allow 11.22.33.44; # whitelisted IP 1
    allow 22.33.44.55; # whitelisted IP 2
    …
    deny all;
    auth_basic "Restricted area";
    auth_basic_user_file /etc/nginx/.htpasswd;
    …
}