Меры предосторожности при SSH
Возможный дубликат:
Как я могу проверять пользователей и попытки доступа к SSH на моем сервере?
Недавно мне пришлось отдать свой пароль root Ubuntu 12.10 одному из моих друзей, чтобы он мог войти в мою систему по SSH и отправить мне несколько файлов. Теперь он мой друг, и я доверяю ему, поэтому я не отказался поделиться своим паролем. И я изменил это потом.
Но меня просто поразило, как я могу просмотреть все команды, которые были выполнены другим удаленным пользователем, входящим в мою систему (очевидно, не моим другом. Я имею в виду в целом). В какой степени они могут получить доступ к моим данным (особенно моим паролям, например, я использовать Last Pass, чтобы они могли также получить доступ к паролям моей учетной записи??) И если они открывают любой браузер после входа в мою систему, имеют ли они доступ ко всем моим паролям при условии, что я сохранил их, используя опцию "запомнить пароль", предоставленную chrome
Также, какие меры предосторожности я должен предпринять, когда я разрешаю кому-нибудь удаленный вход в систему, и как я могу отслеживать различные команды, которые они используют, или изменения, которые они вносили в мою систему. Также есть какой-то простой способ получать уведомления всякий раз, когда кто-то входит в мою систему, кроме проверки файла /var/log/auth.log??
2 ответа
Была похожая проблема, которая поразила меня после прочтения этого вопроса здесь на 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
Please remember that ports below 1024 need special (root) permission.
Я не знаю, как это может помешать этому, но я просто говорю.
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.
SSH не полностью безопасен в конфигурации по умолчанию.
Если вы предоставляете пароль, позволяющий удаленному пользователю подключаться через SSH к вашему компьютеру, эти права необходимо отменить, чтобы остановить текущий доступ.
Изменение пароля НЕ аннулирует эти права.