Меры предосторожности при 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 к вашему компьютеру, эти права необходимо отменить, чтобы остановить текущий доступ.

Изменение пароля НЕ аннулирует эти права.

Другие вопросы по тегам