Настройка SSH с помощью Webmin
Не секрет, что часть серверов выставляемые в Интернет имеет очень низкую защиту. Прежде всего это обуславливается тем, что новички, изучающие установки и настройки таких вещей как Apache в связке с PHP и MySQL напрочь забывают о первом и самом важном шаге - БЕЗОПАСНОСТИ! Cам грешен, тоже так делал до определённого времени. Делал до того времени, пока петух жаренный не клюнул в одно место :) Начинающий админ скажет мне: "Да кому я нужен?"...отвечу так...если ты никому не нужен, зачем ты тогда выставляешь сервер в сети Интернет? Ну и опять же, так говорили ОПЫТНЫЕ (!) админы. Может быть потом эти же "опытные админы" и воспользовались ситуацией, когда надо было. Если уж ты выставил сервер будь готов к тому, что (статистика говорит следующее):
1. Твой сервер будут сканить по 25 порту, пытаясь узнать, можно ли тебя использовать пересыльщиком СПАМа ("спамеров убивать и сокращать их количество любыми подручными средствами", как говорится в одном мультфильме у падонкоф....собственно мультфильм был о другом, но чем спамеры отличаются от тех, о ком мульт - мне неведомо :) По мне так, они равносильны, что СПАМеры, что те о ком мульт...). Но это так, отступление от темы.
2. Ваш сервер будет подвержен подбору пароля к вашему SSH терминалу. Получив пароль, хакер получит возможность управлять сервером и может использовать вашу машину для своих тёмных делишек...или просто делать вам трафик.
3. Попытки DDoS. Но тут бороться практически бесполезно. Однако, прочитав одну книжку, я вычитал очень интересную вещь про "чёрную дыру" :) Думаю, со временем я сюда перепишу статейку, как избавляться от сетевого флуда используя штатные средства FreeBSD.
4. Остальные - это всякая фигня (кто-то по телнету корячится пытается зайти, кто-то думает, что есть фтп. Ходят всевозможные спамные роботы и индексаторы, и т д. ). По крайней мере я считаю это фигнёй :) Если посмотреть на Интернет так же, как взять пробу воды с аквариума со здоровыми рыбками, то жизнь кишит, а мы даже не замечаем, что там самая настоящая жизнь. Даже есть роботы-воры, который воруют у поисковых систем данные :)
Итак, самым первым и самым важным шагом считается установка удалённого управления сервером (если конечно ваш кабинет не в серверной за стойкой). А именно, работа с сервером с помощью терминала, по протоколу SSH.
Мы немного отступим от правила всё делать через Webmin, так как для того, чтобы получить доступ к WEBMIN, сначала, надо его установить...а как его установить не имея удалённого управления? Закачивать каждый раз ports.tar.gz c сайта www.freebsd.org и необходимые source для каталога distfiles не очень удобно, да и накладно по затратам на трафик. Лучше будет, если с помощью специальной утилиты, например SSHSecureShellClient, мы закачаем файлы на сервер и будем заниматься установкой ПО удалённо, не прибегая к помощи Интернет.
Итак, при инсталяции, установщик спросит, нужен ли вам SSH - мы отвечаем - да! Можно не создавать пользователя, когда система спросит об этом ответив no, создать пароль для root и в первое время ходить под ним. Как только инсталяция закончена делаем следующее:
Дальше заливаем всё что нам нужно по SSH (c помощью той же SSHSecureShellClient) на сервер и устанавливаем программы, которые нам нужны. MC для удобства и Webmin. Можно обойтись и без них, конечно, но я пишу для того, чтобы настройка выглядела более понятней для новичков :) Итак, мы поставили Webmin из портов и идём в Службы.
По определённым причинам ваш сервер должен иметь два сетевых интерфейса. Первый интерфейс смотрит в Интернет. Если сервер не является шлюзом, то боятся особо нечего (если конечно снаружи нельзя получить доступ к серверу и управлять им). Второй интерфейс смотрит в вашу локальную сеть, для управления, то есть обычно администратор создаёт небольшую внутреннюю локальную сеть, так называемую DMZ, из которой он управляет своими серверами.
В общем, имеем два сетевых интерфейса.
В Службах Webmin ищем Сервер SSH. Заходим внутрь конфигуратора и видим 7 иконок:
Для настройки нам потребуется сделать следующее.
1. Создать нового пользователя, под которым вы будете ходить на сервер.
Система => Пользователи и группы =>Создать нового пользователя
2. Дать этому пользователю право учавствовать в группе wheel.
Система => Пользователи и группы => Пользователь (которого мы создали). Заходим в его настройки. В разделе Дополнительные группы левой клавишей мыши выделяем группу wheel и нажимаем кнопку СОХРАНИТЬ.
Всё, теперь наш пользователь имеет возможность использовать права root. При работе в терминале получить права root можно используя команду su.
Возвращаемся к настройкам SSH. Заходим в УПРАВЛЕНИЕ ДОСТУПОМ. Убираем галочку в пункте Разрешить только пользователям с "все" и с помощью файлового навигатора ищем пользователя, которому это право будет дано, то есть того, кого мы создали.
Нажимаем СОХРАНИТЬ.
Заходим в Аутентификация. В пункте Разрешить регистрацию для root? выбираем НЕТ.
В качестве отступления могу сказать, что можно поставить ещё галочку Показывать /etc/motd при регистрации? в НЕТ. Мне вот лично информация эта как-то не очень нужна :) Но это так, на любителя. Если галочка будет стоять в положении ДА, то при удачном подключении по SSH, каждый раз будет предоставляться информация о проекте FreeBSD. Хотя можно подредактировать файл в /etc/motd и стереть там всё, либо написать чего душе угодно, например что это за сервер, чтобы в будущем не путаться :)
Далее идём в пункт Сеть.
Здесь мы смотрим самый первый пункт: Слушать на адресах и собственно ставим галочку на Введенные ниже...и пишем адрес, который присвоен внутреннему сетевому интерфейсу сервера, если конечно вам не нужен доступ с внешки. Вообще, этот пункт желательно указывать всегда, на каких адресах слушать обращения к серверу.
Вот собственно и всё. Сохраняем все настройки и перезапускаем сервер. Вообще настроек много и если вам удобней делать изменения в конфиге, то есть специальный текстовый редактор, это Edit Config Files . Если конфигурация сервера такая, как я описал выше, то с внешней сети, то есть из Интернет к вашему серверу по SSH подключиться нельзя, а по внутренней сети можно. К тому же, вдобавок, нельзя будет подключиться под пользователем root, что увеличивает надёжность сервера.
Всё что мы изменяли с помощью Webmin, можно посмотреть в Edit Config Files. На самом деле мы изменяли конфгурационный файл /etc/ssh/sshd_config. Привожу сам файл и изменения, которые были произведены:
Собственно выделенный текст и есть минимальный конфигурационный файл, который нужен для работы с сервером по протоколу SSH. Есть ещё много функций, которые могут вам понадобиться, например параметр, который не пытается поймать DNS, но это уже вам самим решать, нужен он или нет.
Успехов в освоении FreeBSD и других *NIX систем :)
Ссылки:
К содержанию