Только что открыл для себя функцию журнала в Linux сервере... увидел кучу подключений в секунду с разных IP пытаясь войти в систему, но неверный пароль. Хотелось бы ограничить доступ только для одного IP. Но на сервере стоит игровой сервер и я не знаю как это правильно сделать, поскольку могу заблокировать доступ игрокам
$errors[] = 'Пользователь с таким логином уже существует!';
Как я понял он не видит переменную token (rb.php)
if ( R::count('users', "token = ?", token > 0)
{
$errors[] = 'Пользователь с таким логином уже существует!';
}
if ( empty($errors) )
{
//ошибок нет, теперь регистрируем
$user = R::dispense('users');
$user->login = $data['login'];
$user->email = $data['email'];
$user->password = password_hash($data['password'], PASSWORD_DEFAULT); //пароль нельзя хранить в открытом виде, мы его шифруем при помощи функции password_hash для php > 5.6
$user->admin = 0;
$user->token = $token;
R::store($user);
}
uuuu, твой ip может поменяться. да и доступ к системе иногда необходим из произвольного места. уехал брюхо греть на тайланд, а система слоалмалась...
проблемка может быть пшивой, но для ентого придется лететь через пол-мира.
1) перенесите ssh на другой порт
2) настройте авторизацию по ключу
3) установите fail2ban
4) настройте iptables ( новичкам не рекомендуется)
п.4 позволит оставить открытыми только игровые порты и ssh для доступа, а ssh защитите п.1-3
Интересно!
Я так понял, что сейчас машина получает несколько запросов в секунду, и тем самым снижает ее производительность. Если я все правильно понял, то сделав шаги которые вы порекомендовали, я увеличу производительность машины?
uuuu, увеличить - это добавить, но у Вас уже есть потолок. :)
ради интереса поменяйте порт и посмотрите статистику нагрузки на сетевой интерфейс и процессор ДО и ПОСЛЕ. Пока просканируют что порт изменился будет время.
uuuu, запросы ssh это не видосики в инстаграме. они не большие, ибо быстро обрубаются и на загрузку не сильно скажутся. несколько запросов в секунду имхо фигня.
выполнив указанные шаги ты увеличишь защищиенность системы, и не получишь трояна с майнером. вот это реально уменшит поизводительность машины.
pfg21, это верно, но все же машина тратит ресурсы на проверку правильности пароля, и так по 3 раза для каждого ip. На самом деле достаточно затратно, учитывая что машинка не мощная, всего 4 ядра(4гб озу), ещё и сверху сервер стоит. Хотелось бы что в машина вообще не тратила на такие левые подключения свои ресурсы. Похоже, через iptables это можно настроить
uuuu, проверить пароль 3 раза в секунду это фигня, а не расход ресурсов. И 4 ядра с 4 Гб памяти это нисколько не слабо, в интернетах овердофига виртуалок намного "слабее".
uuuu, проверка пароля = вычисление хеша + сравнение чисел. но я думаю ты откажешься от паролей в ssh. ибо это дыра в безопасности размером с секретаршу :)
проверка ключа аналогично. чуть-чуть мож дольше.
ткну пальцем в небо и скажу (с большим запасом) мильон-другой тактов проца (это если проц древний и нет аппаратного md5) для проца в 2ггц (а сейчас сильно больше будет) это 2 тысячных секунды. это мало
какой-нить пыхо-скрипт пожрет и поболее на пустом месте
uuuu, Данная инструкция ограничивает подключение только к ssh.
Игровой сервер я так думаю на другом порту. До кучи можете добавлять этих сканеров в черный список.
FanatPHP, ну так при авторизации по ключу логи и не будут засираться - ни один переборщик не станет подбирать ключ.
Выяснение, что именно принимает сервер за неудачную попытку аутентификации не считается.