Отправляет email-рассылки с помощью сервиса Sendsay

KirovLUG: пользователи Linux в Вятке

Чтиво: установка сервера часть 003

А нужен ли будет моему серверу монитор? Однозначно - нет. Но опять
встает проблема администрирования - "Как? Не видно ж ничего?"

Эту проблему на старом сервере я решал с помощью сервера telnet -
программа хорошая, но нифига не секурная - пароли через всю сеть в
открытом виде посылает. Буду болеть параноей, поэтому и использовать
буду ssh, а конкретно ее реализацию OpenSSH (нужно сразу сказать, что
совсем недавно в ней обнаружилась очередная бага, поэтому советую
обновиться).

Моя рабочая станция рабюотает под Win2k (потому, что я еще тут и 1С-ю),
поэтому для соединения с сервером-ssh я буду использовать програмный
пакет PuTTY, о его настройке для работы с SSH я расскажу отдельно.

Фалй конфигурации ssh-сервера /etc/ssh/sshd_config. Привожу пример
своего файла с коментариями (коментарии составлены благодаря статье
"Ы.Ы.Р" Всеволода Стахова, печатавшейся в журнале "Системный
администратор", статье "Bog BOS: SSH и OpenSSH: принципы работы,
установка и настройка" Сергея Богомолова на
http://www.bog.pp.ru/WORK/ssh.html, а также ман-странице sshd_config)

начало /etc/ssh/sshd_config # Номер порта
Port 22
# Версия протокола
Protocol 2
# Адреса, на которых слушает сервер, можно также указывать порт
# (server.test.ru:2022), но назначение ssh нестандартного порта
# нецелесообразно, т.к. заинтересует потенциальных взломщиков (.А чего
# это там они прячут?.)
#ListenAddress 0.0.0.0
# Разрешать ли удаленным хостам доступ к перенаправленным портам
#GatewayPorts
# Определяет разрешена ли пересылка TCP. По умолчанию разрешена.
# Запрещение не увеличивает безопасность - человек просто поставит
# другую программу
#AllowTcpForwarding
# Использовать сжатие (может переназначаться со стороны клиента)
#Compression yes

# Ключ сервера для протокола версии 1
HostKey /etc/ssh/ssh_host_key
# Ключи rsa и dsa для ssh версии 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
# Список алгоритмов симметричного шифрования для SSH2:
# aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour
#Ciphers
# Данные значения определяют длину ключа сервера и его время жизни для
# использования ssh версии 1 (данный ключ будет заново генерироваться
# через заданное время - секунды)
#KeyRegenerationInterval 3600
#ServerKeyBits 768
# Алгоритмы-проверки-целостности-данных (hmac-md5, hmac-sha1,
# hmac-ripemd160, hmac-ripemd1***@o*****.com, hmac-sha1-96, hmac-md5-96)
#MACs

# Имя pid-файла (обычно переназначается в init.d)
#PidFile
# Тип сообщений на syslog: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2,
# LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7
SyslogFacility AUTH
# Уровень детализации в syslog: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG
LogLevel INFO

# Cписок-имен-групп-через-пробел (вход разрешен только пользователям,
# чья первичная (начиная с 2.5.1p1 и вторичная) группа входит в этот
# список; разрешаются ? и *)
#AllowGroups
# Cписок-имен-через-пробел (аналогично AllowGroups)
#AllowUsers
# Cписок-имен-групп-через-пробел
#DenyGroups
# Cписок-имен-через-пробел
#DenyUsers
# Проверка соответствия ip-адреса клиента и его символического имени в
# backzone, затем снова сравнение имени с ip адресом. Таким образом
# (извращённым) проверяется подлинность ip, но метод этот достаточно
# тормозной и по умолчанию он отключен (после определения адреса по
# имени хоста проверять, что обратная зона для этого адреса указывает на
# тот же самый хост)
VerifyReverseMapping no
# Число (3, число неудачных проверок до разрыва сессии)
#ClientAliveCountMax
# Максимальное число возможных соединений, где не произошло
# аутентификации. Если клиентов, не прошедших аутентификацию больше, то
# новые соединения не будут обрабатываться (максимальное число
# соединений, ожидающих аутентификации; алгоритм раннего предупреждения
# перегрузки - 10:30:60, отвергать соединение с вероятностью 30%, если
# уже есть 10 еще неаутентифицированных соединений, вероятность
# постепенно возрастает до 100% при 60 соединениях)
MaxStartups 10
# Сервер отсоединяется по происшествии данного времени в секундах, если
# клиент не проходит аутентификацию
LoginGraceTime 60
# Можно также разрешить пустые пароли, но это полный отстой, т.к. это
# огромная дыра на сервере, через которую можно наделать много гадостей!
# Поэтому должно быть no (по умолчанию)
PermitEmptyPasswords no
# Разрешаем заходить по ssh руту. Долгое время эта тема обсуждалась на
# форуме, но я думаю всё же, что со внутренней сети рут может заходить и
# по ssh (для этого надо настроить должным образом iptables). Также
# можно запретить руту входить по паролю: without-password, разрешая
# вход только по публичному ключу
# (yes/no/without-password/forced-commands-only: without-password
# запрещает только аутентификацию по паролю; при использовании
# RSA-аутентификации с указанием команды исполнение этой команды
# разрешается в любом случае; forced-commands-only удобен для backup)
PermitRootLogin no
# Посылать клиенту сообщения о доступности (использовать механизм
# регулярных сообщений для проверки разрыва связи; по открытому каналу)
KeepAlive yes
# Секунды (0, интервал проверки не отвалился ли клиент; по шифрованному
# каналу)
#ClientAliveInterval

# Проверка sshd прав доступа и владельцев домашних каталогов. Полезно
# для тех пользователей, что дают права всему 0777. Хотя таких болванов
# лучше держать на расстоянии от сервера (лучше всего это делать
# бревном, подвешенным в серверной к потолку, чтобы придать нежеланному
# гостю должное ускорение, и не забудьте оббить конец бревна
# какой-нибудь железкой, иначе брёвна придётся менять лишком часто)
StrictModes yes
# Использовать разделение привелегий при создании дочернего процесса,
# который работае со входящим трафиком. Данный процесс создается после
# успешной аутентификации, чтобы работать с привилегиями
# зарегистрированного пользователя. По умолчанию - да.
#UsePrivilegeSeparation yes
# Определяет, что ~/.ssh/environment и опция environment= в
# ~/.ssh/authorized_keys будут обработаны sshd. По умолчанию - нет.
#PermitUserEnvironment no

# Чтобы запретить посылку хешей паролей через туннель ssh задайте
# значение данной опции no. По умолчанию аутентификация по паролю
# разрешена (разрешить аутентификацию по паролю; дается рекомендация -
# закрыть)
PasswordAuthentication yes
# Аутентификация через механизм PAM (заодно разрешает аутентификацию по
# паролю)
#PAMAuthenticationViaKbdInt no
# Определяет, что допукается требование аутентификации ответа.
# Поддерживаются все стили аутентификации из login.conf(5).
# По умолчанию - да'.
#ChallengeResponseAuthentication yes
# Аутентификация через RSA (версия 1)
RSAAuthentication no
# Аутентификация пользователя по ключу (версия 2)
PubkeyAuthentication yes
# Определяет публичный ключ пользователя для аутентификации по ключу.
# Можно применять шаблоны: %u . имя пользователя, %h . домашний каталог
# пользователя
AuthorizedKeysFile .ssh/authorized_keys
# Не используем аутентификацию rhosts (разрешить аутентификацию только
# по .rhosts или /etc/hosts.equiv)
RhostsAuthentication no
# Можно также игнорировать rhosts и shosts при hostbased
# autentification, используя только known_hosts файл (не использовать
# .rhosts и .shosts для аутентификации; /etc/hosts.equiv
# /etc/shosts.equiv будут использоваться все равно)
IgnoreRhosts yes
# Используем ли аутентификацию через known_hosts совместно с .rhosts или
# .shosts. Опция действительна только для протокола версии 1 разрешить
# аутентификацию по .rhosts и RSA аутентификации - требует заполнения
# ssh_known_hosts)
RhostsRSAAuthentication no
# То же самое, что и предыдущее только для версии 2
HostbasedAuthentication no
# Если нет доверия к known_hosts, то их можно не использовать при
# hostbased autentification (игнорировать ~/.ssh/known_hosts во время
# аутентификации rhosts+RSA)
IgnoreUserKnownHosts no

# Допускается аутентификация по Kerberos
#KerberosAuthentication no
# Если аутентификация через kerberos не прошла, то использовать /etc/passwd
#KerberosOrLocalPasswd yes
# Автоматически очищать кэш билетов-kerberos при выходе
#KerberosTicketCleanup yes
# Определяет может ли признак AFS быть переслан серверу.
#AFSTokenPassing no
# Определяет, возможна ли пересылка Kerberos TGT серверу.
#KerberosTgtPassing no

# Передача протокола иксов через туннель ssh
X11Forwarding yes
# Первый доступный номер дисплея при передаче X11
#X11DisplayOffset 10
# Используем в качестве x-сервера данный, т.е. клиент, запуская у себя X
# клиента будет фактически использовать наш сервер, но все данные от
# сервера к клиенту будут шифроваться, что есть хорошо!
#X11UseLocalhost yes
# Определяет полный путь до программы авторизации xauth(1)
#XAuthLocation

# Использовать login для интерактивных сессий; для выполнения удаленных
# команд не используется в любом случае
UseLogin yes
# Сообщаем пользователю время и место последнего логина, ситуация,
# аналогичная предыдущей
PrintLastLog yes
# При логине пользователя выводим /etc/motd: в некоторых системах это
# отменено в целях безопасности
PrintMotd yes
# Путь к файлу, который будет отображаться при входе клиента ДО
# аутентификации
Banner /etc/ssh/ssh_message

# Новые системы, работающие через ssh. В данном примере определяется
# .безопасный. ftp сервер . sftp, аналогичный доступ пользователя, но с
# возможностью передачи файлов (т.е. пользователь получает доступ ко
# всем своим файлам и нет возможности настройки разрешений и виртуальных
# пользователей, как, например в proftpd). По сути дела, подсистемы ssh
# могут обеспечивать прохождение других протоколов по сети, но под
# .крылышком. ssh. Например, для sftp-сервера есть одноимённый
# sftp-клиент. Его интерфейс полностью идентичен оригинальному ftp, но с
# одним отличием: происходит та же самая аутентификация пользователя на
# удалённом сервере (методами ssh), но вместо оболочки с пользователем
# взаимодействует подсистема, в данном случае sftp.
Subsystem sftp /usr/libexec/openssh/sftp-server
конец /etc/ssh/sshd_config После каждого изменения конфигурационного файла необходимо
перезапустить демон sshd
$ /sbin/service sshd restart

Кстати, автозапуск демона я настраиваю через /usr/sbin/setup, который
тоже можно прописать в sudoers:
koal ALL=/usr/bin/mc, /usr/sbin/setup

В setup я захожу в "System services" и напротив тех демонов, которые
должны запускаться я ставлю "*", иначе я их убираю - все это делается
клавишей "пробел"

C уважением, Kolotov Alexandr (aka mr. Эбола)
отвечать: myscri***@e*****.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.kirovlug-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.kirovlug&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Kolotov Alexandr (#2572)