Настройка SSH c помощью Webmin

Настройка 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 и в первое время ходить под ним. Как только инсталяция закончена делаем следующее:

# ee /etc/ssh/sshd_config
Находим строчку PermitRootLogin no и изменяем no на yes.
Жмём ESCAPE и на предложение о сохранении файла с изменениями - сохраняем.
#killall sshd
#/usr/sbin/sshd

Всё. Демон sshd был остановлен и запущен с новыми параметрами.

Дальше заливаем всё что нам нужно по 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. Привожу сам файл и изменения, которые были произведены:

# $OpenBSD: sshd_config,v 1.74 2006/07/19 13:07:10 dtucker Exp $
# $FreeBSD: src/crypto/openssh/sshd_config,v 1.42.2.4 2006/11/11 00:51:28 des Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
# Note that some of FreeBSD's defaults differ from OpenBSD's, and
# FreeBSD has a few additional options.
#VersionAddendum FreeBSD-20061110
#Port 22
#Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_dsa_key
# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 768
# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
#Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# Change to yes to enable built-in password authentication.
#PasswordAuthentication no
#PermitEmptyPasswords no
# Change to no to disable PAM authentication
#ChallengeResponseAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'no' to disable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
# no default banner path
#Banner /some/path
# override default of no subsystems
Subsystem sftp /usr/libexec/sftp-server
GatewayPorts no
AllowTcpForwarding yes
KeepAlive yes Protocol 1,2
ListenAddress 10.10.10.10
IgnoreRhosts yes
IgnoreUserKnownHosts no
PrintMotd no StrictModes yes
RSAAuthentication yes
PermitEmptyPasswords no
PasswordAuthentication yes
AllowUsers test
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server

Собственно выделенный текст и есть минимальный конфигурационный файл, который нужен для работы с сервером по протоколу SSH. Есть ещё много функций, которые могут вам понадобиться, например параметр, который не пытается поймать DNS, но это уже вам самим решать, нужен он или нет.

Успехов в освоении FreeBSD и других *NIX систем :)




Ссылки:

К содержанию

© Copyright 2004-2017 - CMS Made Simple
Сайт работает на CMS Made Simple version 1.4.1

© Все печеньки Break-people.ru принадлежат авторам проекта.

Яндекс цитирования Рейтинг@Mail.ru Яндекс.Метрика