суббота, 5 июня 2010 г.

Установка и настройка ssh сервера

SSH (англ. Secure Shell — «безопасная оболочка»)сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой.

Если при установке сервера не было выбрано установки SSH-сервера, то не беда, это можно сделать самостоятельно командой:

sudo apt-get install openssh-server

Чтобы его остановить/запустить/перезапустить введите команду

sudo /etc/init.d/ssh stop/start/restart или sudo service ssh stop/start/restart

Конфигурационный файл openssh-server находится /etc/ssh/sshd_config. Вот и займемся сейчас его правкой для защиты нашего сервера.

sudo nano /etc/ssh/sshd_config

Один из основных способов "взлома" сервера — подбор пароля к учетной записи администратора по протоколу SSH. (настройки по умолчанию закомментированы символом #)

Port 22

Для того, чтобы злоумышленник не смог подбирать пароли, спрячем от него SSH-сервер. Вы можете указать любой свободный порт, главное постарайтесь его не забыть, иначе сами не сможете получить доступ к серверу. Желательно указывать номер >1024, например 2200. Не забудьте изменить порт в своем SSH-клиенте.

ListenAddress 192.168.1.15

Смотрим какой адрес слушает наш сервер, если нам нужен только определенный адрес - указываем его, например 192.168.1.15.

Protocol 2

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

PermitRootLogin no

В этой строке мы запрещаем авторизацию пользователя root. Теперь злоумышленнику придется подбирать не только пароль, но и логин, что намного сложнее. Чтобы получить доступ с правами суперпользователя, необходимо сначала зайти на сервер под обычной учетной записью, а затем выполнить команду "su -" и ввести пароль пользователя root.

LoginGraceTime 2m

Время выделенное пользователю для авторизации - через 2м. сервер закроет сессию.

MaxAuthTries 3

Максимальное количество попыток авторизации с одного логина за сессию сессию.

MaxSessions 10

Максимальное количество одновременных сессий. Можно поставить число сессий и поменьше.

AllowUsers user1 user2 user3

Список (через пробел) пользователей системы разрешенных к логину по ssh.

Но злоумышленники все равно попытаются подключиться к серверу используя логин root. Поэтому мы сделаем ему небольшое предупреждение в виде сообщения, которое он увидит у себя на экране. Для этого отредактируем файл /etc/motd.

sudo nano /etc/motd

И напишем туда что-то типа следующего текста "ALERT! That is a secured area. Your IP is logged. Administrator has been notified".
Когда кто-нибудь попытается подключиться к серверу с помощью SSH, он увидит это сообщение : ALERT! That is a secured area. Your IP is logged. Administrator has been notified.

Если вы хотите получать уведомления о том, что кто-то попытался подключиться к вашему серверу с помощью SSH используя учетную запись root, то внесите соответствующие изменения в файл /root/.bash_profile

sudo nano /root/.bash_profile

и напишите там следующее в конце файла

echo 'ALERT - Root Shell Access on:' `date` `who` | mail -s "Alert: Root Access from `who | awk '{print $6}'`" mail@something.com

Да и не забудьте обязательно перестартовать служубу SSH (см. выше), а также добавить открытие порта в фаерволе для соединения с вашим сервером через SSH

sudo iptables -A INPUT -p TCP --dport номер_порта -i ethX -j ACCEPT

где номер_порта - это номер порта, который вы указали для связи с сервером через SSH
ethX - вместо X - подставьте нужное число своей сетевой карты.

Комментариев нет:

Отправить комментарий