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. (Не путать с файлом ssh_config). Вот и займемся сейчас его правкой для защиты нашего сервера.
sudo nano /etc/ssh/sshd_config
Один из основных способов «взлома» сервера — подбор пароля к учетной записи администратора по протоколу SSH. (настройки по умолчанию закомментированы символом #)
Port 2200
Для того, чтобы злоумышленник не смог подбирать пароли, спрячем от него SSH-сервер. Вы можете указать любой свободный порт, главное постарайтесь его не забыть, иначе сами не сможете получить доступ к серверу. Желательно указывать номер порта >1024, например 2200. Не забудьте изменить порт в своем SSH-клиенте.
ListenAddress 192.168.1.15
Смотрим какой адрес слушает наш сервер, если нам нужен только определенный адрес — указываем его, например 192.168.1.15.
Protocol 2
По умолчанию сервер разрешает клиенту работать с двумя версиями протокола SSH. Первая версия менее защищенная и этим тоже могут воспользоваться хакеры. Абсолютное большинство популярных SSH-клиентов поддерживают обе версии протокола, так что протокол первой версии можно смело отключать — проблем с доступом к серверу у вас не возникнет.
PermitRootLogin no
В этой строке мы запрещаем авторизацию пользователя root. Теперь злоумышленнику придется подбирать не только пароль, но и логин, что намного сложнее. Чтобы получить доступ с правами суперпользователя, необходимо сначала зайти на сервер под обычной учетной записью, а затем выполнить команду «su -» и ввести пароль пользователя root.
LoginGraceTime 60
Время выделенное пользователю для авторизации — через 60 секунд — если не произойдет авторизация, сервер закроет сессию.
MaxAuthTries 3
Максимальное количество попыток авторизации с одного логина за сессию.
MaxSessions 10
Максимальное количество одновременных сессий. Можно поставить число сессий и поменьше.
AllowUsers user1 user2 user3
Список (через пробел) пользователей системы разрешенных для доступа к серверу через ssh. Есть обратный параметр DenyUsers, который запрещает доступ определенных пользователей
Но злоумышленники все равно попытаются подключиться к серверу используя логин 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 (см. выше), а также добавить открытие порта в фаерволе для соединения с вашим сервером через SSH
sudo iptables -A INPUT -p TCP --dport номер_порта -i ethX -j ACCEPT
где номер_порта — это номер порта, который вы указали для связи с сервером через SSH
ethX — вместо X — подставьте нужное число своей сетевой карты.
P.S. В новых версиях SSH многих параметров по умолчанию нет, поэтому их придется дописывать самостоятельно
http://adminubuntu.net/2010/06/05/ustanovka-i-nastroyka-ssh-servera.html