[ОТКАЗ] Я понимаю , что я опоздал на вечеринку, но я хотел бы, чтобы вставить ответ , который я дал еще один вопрос , потому что я чувствую , что он может предложить некоторое хорошее представление для читателей, и этот вопрос , кажется, идти к место для базовой информации SSH.
Была похожая проблема, которая поразила меня после прочтения этого вопроса здесь на AskUbuntu и проверки моего VPS, только чтобы увидеть несколько миллиардов попыток перебора. Именно тогда я решил принять меры.
Теперь, в соответствии с вопросом, на который я ссылался, если вы хотите увидеть неудачные попытки входа в систему на вашем компьютере через ssh (это могут быть попытки перебора или что-то в этом роде), попробуйте набрать следующее:
grep sshd.\*Failed /var/log/auth.log | less
Если выходные данные состоят из нескольких строк, то есть множества попыток грубой силы, особенно если они произошли между короткими интервалами, вы можете выполнить следующие действия:
Изменить файл конфигурации ssh
Для этого откройте файл, расположенный в / etc / ssh / sshd_config, в вашем любимом редакторе, например так vim /etc/ssh/sshd_config
.
1. Попробуйте переместить ssh из порта 22 : найдите строку с надписью:
# What ports, IPs and protocols we listen for
Port 22
и закомментируйте порт 22, и используйте кого угодно. Пример:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
Пожалуйста, помните, что порты ниже 1024 требуют специального (root) разрешения. Я не знаю, как это может помешать этому, но я просто говорю.
2. Отключите вход в систему Root через ssh : поскольку имя пользователя root предсказуемо и обеспечивает полный доступ к вашей системе, предоставлять беспрепятственный доступ к этой учетной записи через SSH нецелесообразно. Найдите строку с именем PermitRootLogin и установите для нее значение no .
PermitRootLogin no
3. Отключите аутентификацию по паролю . Создайте и используйте ключи SSH для входа в систему. Если пароли не включены, злоумышленникам потребуется угадать (или украсть) ваш закрытый ключ SSH, чтобы получить доступ к вашему серверу. Нечто очень сложное. Перейдите к строке, которая читает PasswordAuthentication, и установите для нее значение no
PasswordAuthentication no
!ПРЕДУПРЕЖДЕНИЕ! Прежде чем сделать это, пожалуйста, ознакомьтесь с этим руководством здесь о том, как настроить аутентификацию сертификата.
ПРИМЕЧАНИЕ. После внесения изменений используйте sudo /etc/init.d/ssh restart
. Для подключения к другому порту с помощью использования SSH: ssh username@hostname.com -p <port_number>
.
Настройте брандмауэр
Пожалуйста, ознакомьтесь с этим руководством о том, как настроить чрезвычайно мощный и эффективный межсетевой экран, который интегрирован в Linux, IPTables .
Сценарии установки, чтобы помочь вам с безопасностью
Тот, который я использую лично и быстро приходит на ум, - это Fail2Ban . Fail2ban будет контролировать ваши файлы журнала для неудачных попыток входа в систему. После того, как IP-адрес превысил максимальное количество попыток аутентификации, он будет заблокирован на уровне сети, и событие будет зарегистрировано /var/log/fail2ban.log
. Чтобы установить его:sudo apt-get install fail2ban
Проверьте историю команд через ssh
Существует команда linux с именем history
, которая позволяет вам видеть, какие команды были введены до этого момента. Попробуйте набрать history
в терминале, чтобы увидеть все команды до этого момента. Это могло бы помочь, если бы вы были root .
Для поиска конкретной команды попробуйте:history | grep command-name
Чтобы вывести список всех команд после ssh :fc -l ssh
Вы также можете редактировать команды, используя vi (я не пробовал vim, хотя я предполагаю, что это также работает):fc -e vi
Вы также можете удалить историю :history -c
ПРИМЕЧАНИЕ. Если вы не являетесь поклонником команды, history
в вашем домашнем каталоге ( cd ~
) также есть файл с именем .bash_history (если вы используете bash), в котором вы можете cat
увидеть все, что было введено в оболочке bash.
unset HISTFILE
в bash, и тогда их история bash не будет записана.