Читаем Linux полностью

Основные команды программы telnet приведены в табл. 28.2. Таблица 28.2. Команды программы telnet

Программа-сервер telnetd

Программа telnetd – это сервер, который обслуживает протокол Telnet. Программа telnetd обслуживает ТСР-порт 23, но ее можно сконфигурировать на использование другого порта.

При установке взаимодействия с удаленным клиентом telnetd обменивается командами настройки – включение режима эха, обмен двоичной информацией, тип терминала, скорость обмена, переменные окружения.

Применение Telnet и безопасность

Протокол Telnet долгие годы был единственной универсальной возможностью удаленно работать с различными консольными программами. По своей простоте, нетребовательности к ресурсам и полосе пропускания он до сих пор не имеет себе равных. Помимо этого, клиентская программа telnet позволяет устанавливать соединения и с другими сервисами – например с почтовым сервером SMTP или POP3, что дает возможность производить различные манипуляции (например, просмотреть без почтового клиента содержимое своего почтового ящика или отправить письмо). Однако при всех его достоинствах протокол Telnet имеет один огромный недостаток – весь трафик пересылается в открытом виде. Из-за этого любому злоумышленнику не составляет труда перехватить логин и пароль пользователя, а также другую информацию. В современном мире, где новые вирусы и троянские программы возникают ежедневно, а скандальные взломы различных серверов случаются еженедельно, использование протокола Telnet недопустимо. В качестве альтернативы протоколу Telnet используются программные пакеты SSH или OpenSSH. Но о них чуть позже.

Семейство r-команд

Приблизительно в то же время, что и протокол Telnet, были созданы программы, предназначенные для удаленного администрирования и работы, так называемые r-команды (remote-команды).

Команда rlogin

Команда rlogin (remote login) предназначена для захода удаленным терминалом между UNIX-хостами. Стандарт RFC 1282 содержит спецификацию протокола rlogin. Программа rlogin использует одно TCP-соединение между клиентом и сервером. Для нормального функционирования необходимо создать файл. rhosts, содержащий список хостов и пользователей, которым разрешено удаленно регистрироваться в системе. Каждая строка представляет собой пару «хост—пользователь», разделенную пробелом.

Команда rsh

Команда rsh (remote shell) используется для запуска командной оболочки на удаленном компьютере, после чего на нем возможно выполнять различные программы.

Команда rep

Команда rep (remote сору) используется для копирования файлов между компьютерами, причем эта операция может производиться между двумя удаленными компьютерами. Данная команда может копировать как один файл, так и группу файлов или каталогов.

Команда rsyne

Команда rsync, аналогично команде гер, позволяет копировать файлы между удаленными компьютерами. Однако, в отличие от гер, может значительно ускорить процесс копирования часто изменяемых пользователем файлов, поскольку благодаря используемым алгоритмам передает только измененные части файлов. Также позволяет копировать ссылки (links), специальные устройства (device), владельца и группу файла, права доступа.

Команда rdist

Эта команда позволяет осуществить массовую автоматическую рассылку файлов с локального хоста на большую группу хостов с проверкой наличия места, рассылкой извещений о проблемах, исполнением завершающих процедур и т. п. Сохраняет имя владельца, имя группы, права доступа и время модификации файла.

Применение r-команд и безопасность

Как и в ситуации с Telnet, r-комавды имеют ту же проблему с безопасностью – абсолютно незащищенную передачу информации, поэтому использование r-команд категорически не рекомендуется.

SSH и OpenSSH

Протокол SSH обеспечивает возможность удаленного выполнения команд и копирования файлов с аутентификацией клиента и сервера и шифрованием передаваемых данных, в том числе имени и пароля пользователя. Дополнительно обеспечивается шифрование данных X Windows и перенаправление любых TCP-соединений. Существует несколько программных реализаций, в частности, коммерческий SSH и бесплатный пакет с открытым исходным кодом OpenSSH.

Принцип работы SSH

SSH представляет собой протокол транспортного уровня, аутентификации и соединения и программные средства безопасного доступа к компьютерам по небезопасным каналам связи (telnet, X11, rsh, FTP). Аутентификация производится с использованием асимметричного шифрования с открытым ключом (SSH1 – RSA, SSH2 – RSA/DSA). Обмен данными – симметричное шифрование. Целостность переданных данных проверяется с помощью специальных контрольных сумм. Протокол транспортного уровня работает поверх TCP и использует 22-й порт. В качестве ключа берется случайная строка, которую генерирует клиент, шифрует с помощью открытого ключа сервера и передает серверу. Протокол аутентификации работает поверх протокола транспортного уровня и обеспечивает аутентификацию клиента для сервера. Шифрование трафика начинается после аутентификации сервера, но до аутентификации клиента, таким образом пароли в открытом виде не передаются. Возможно соединение произвольных портов TCP по защищенным каналам. Предусматривается возможность сжатия.

Существует две версии протокола – SSH1 и SSH2. По своей реализации – совершенно разные протоколы. Протокол SSH2 был разработан с учетом найденных в первом варианте уязвимостей.

OpenSSH

Некоммерческая реализация протокола SSH с открытым кодом. Программный пакет способен работать с протоколами SSH1 и SSH2. Имеется также поддержка r-команд.

Для дистрибутива Red Hat установка пакета OpenSSH включена в стандартную инсталляцию и никаких проблем не вызывает.

Конфигурирование OpenSSH

Конфигурирование OpenSSH очень сильно зависит от вашей концепции обеспечения безопасности и необходимости поддержки старого типа протокола. Поскольку использование протокола SSH1 из-за найденных уязвимостей не рекомендуется – при конфигурировании необходимо запретить его использование. Также рекомендуется запретить использование r-команд и всего, что с ними связано. При конфигурировании OpenSSH необходимо произвести настройку сервера и клиента. Конфигурационный файл сервера называется sshd_config, а клиента – ssh_config.

Файл sshd_config

Файл sshd_config задает параметры SSH-серверу и может содержать внушительный список различных параметров. Ниже приведены его основные конфигурационные параметры:

• AllowGroups список-имен-групп-через-пробел – вход разрешен только пользователям, чья группа входит в этот список;

• AllowTcpForwarding yes/no – разрешает или запрещает TCP Forwarding:

• AllowUsers список-имен-через-пробел – вход разрешен только перечисленным пользователям;

• AuthorizedKeysFile имя-файла-с-публичным ключом – задает имя файла, содержащее публичный ключ;

• Banner сообщение-перед-аутентификацией – текст сообщения, выводимого сервером перед аутентификацией клиента;

• ciphers – список алгоритмов симметричного шифрования для SSH2: aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour;

• clientAllveinterval секунд – определяет интервал в секундах, через который сервер будет производить проверку, произошло или нет отключение клиента;

• GiientAllveCountMax число – данный параметр определяет число неудачных проверок существования связи с пользователем до разрыва сессии;

• DenyGroups список-имен-групп-через-пробел – определяет список групп пользователей, которым запрещено устанавливать соединение с сервером;

• DenyUsers список-имен-через-пробел – определяет список пользователей, которым запрещено устанавливать соединение с сервером;

• GatewayPorts no/yes – данный параметр определяет, разрешать или нет удаленным хостам доступ к перенаправленным портам;

• HostbasedAuthentication no/yes – разрешить или запретить аутентификацию, используя имя хоста (только для SSH2);

• HostKey имя-файла-содержащего-приватный-ключ – с помощью данного параметра можно указать серверу, где расположен файл, содержащий секретный ключ шифрования;

• IgnoreRhosts yes/no – этот параметр позволяет определить, использовать или нет файлы. rhosts и. shosts для аутентификации. Для увеличения безопасности системы рекомендуется запретить использование этих файлов;

• IgnoreUserKnownHosts no/yes – параметр позволяет запретить использование файла ~/.ssh/known_hosts во время аутентификации rhosts+RSA;

• KeepAllve yes/по – параметр позволяет использовать механизм регулярных сообщений для проверки разрыва связи;

• KerberosAuthentication yes/no – параметр позволяет запретить использование kerberos при аутентификации;

• KerberosOrLocaiPasswd yes/no – в том случае, если аутентификация через kerberos не прошла, данный параметр позволяет использовать /etc/passwd для аутентификации;

• KeyRegenerationintervai 3600 – параметр задает интервал регенерации ключа сервера;

• ListenAddress о.о.о. о – параметр определяет, к каким адресам прислушиваться; при использовании необходимо также определить параметр Port;

• LoginGraceTime секунд – данный параметр определяет, через сколько секунд произойдет разрыв соединения, если при аутентификации пользователь за это время не введет пароль;

• LogLevel info – параметр определяет, какой уровень использовать при создании сообщений в журнал системы. Можно использовать следующие уровни – quiet, fatal, error, info, verbose, debug;

• MACs алгоритмы-проверки-целостности-данных – этот параметр определяет, какой алгоритм будет использоваться для проверки целостности данных – hmac-md5, hmac-shal, hmac-ripemdl60, hmac-shal-96, hmac-md5-96;

• MaxStartups 10 – данный параметр задает максимально возможное количество соединений, ожидающих аутентификации;

• PasswordAuthentication yes/no – параметр разрешает аутентификацию по паролю;

• PermitEmptyPasswords no/yes – параметр разрешает использование пустых паролей;

• PermitRootLogin yes/no/without-password/forced-commands-only – параметр разрешает пользователю root подключаться к серверу;

• PidFile имя-файла – параметр задает имя файла, в котором будет храниться PID процесса сервера;

• Port 22 – параметр определяет, какой порт слушает сервер;

• PrintMotd yes/no – параметр разрешает использование /etc/motd при входе пользователя в систему для выдачи сообщения;

• Protocol 2 – параметр определяет, с какой версией протокола работает сервер;

• PubkeyAuthentication yes/no – параметр разрешает использовать публичный ключ при аутентификации;

• ReverseMappingCheck no/yes – параметр разрешает после определения адреса по имени хоста производить проверку того, что обратная зона для этого адреса указывает на тот же самый хост;

• RhostsAuthentication no/yes – параметр разрешает аутентификацию только на основании файлов. rhosts или /etc/hosts.equiv;

• RhostsRSAAuthentication no/yes – параметр разрешает аутентификацию на основе .rhosts– и RSA-аутентификации;

• RSAAuthenticat ion yes/по – данный параметр используется только для протокола SSН1;

• ServerKeyBits 7 68 – данный параметр определяет длину ключа;

• StrictModes yes/по – параметр разрешает проверять права доступа к файлам с частными паролями при запуске;

• SysiogFaciiity auth – параметр задает тип сообщений, передаваемых на syslog: DAEMON, USER, AUTH, LOCALO, LOCAL1, L0CAL2, LOCAL3, L0CAL4, L0CAL5, LOCAL6, L0CAL7;

• UseLogin no/yes – параметр разрешает использовать login для интерактивных сессий;

• X11DispiayOffset 10 – параметр определяет первый доступный номер дисплея при передаче XII.

Файлы на сервере, используемые при входе SSH

При входе SSH на сервере используются следующие файлы:

• /etc/nologin – при наличии этого файла запрещается вход пользователей, кроме root. Содержимое файла выдается в качестве сообщения о причине;

• /etc/hosts.allow – при компиляции с libwrap используется для разрешения доступа;

• /etc/hosts.deny – при компиляции с libwrap используется для запрещения доступа;

• ~/.rhosts – файл содержит пары "хост—пользователь", разделенные пробелом. Для указанного пользователя с данного хоста разрешается заходить без ввода пароля при использовании RhostsAuthentication и RhostsRSAAuthentication. Также используется семейством r-команд;

• ~/.shosts – аналогично файлу. rhosts, но не используется семейством r-команд;

• /etc/hosts.equiv – список хостов, пользователи с которых могут заходить, не указывая паролей, под теми же самыми именами. За именем хоста можно указывать имя конкретного пользователя. Также используется семейством r-команд;

• /etc/shosts.equiv – аналогично файлу hosts.equiv, но не используется семейством r-команд;

• ~/.ssh/environment – содержит пары вида имя=значение, которые помещаются в окружение при входе.

Файлы ключей сервера

В качестве ключей сервера используются следующие файлы:

• /usr/local/etc/ssh_host_key – приватный ключ хоста;

• /usr/local/etc/ssh_host_rsa_key – приватный ключ хоста, алгоритм шифрования RSA;

• /usr/local/etc/ssh_host_dsa_key – приватный ключ хоста, алгоритм шифрования DSA;

• /usr/local/etc/ssh_host_key.pub – публичный ключ хоста;

• /usr/local/etc/ssh_host_rsa_key.pub – публичный ключ хоста, алгоритм шифрования RSA;

• /usr/local/etc/ssh_host_dsa_key.pub – публичный ключ хоста, алгоритм шифрования DSA.

Файл ssh_config

Файл предназначен для конфигурации SSH-клиента и разделен на секции директивами Host. Секция применяется при работе с хостом, удовлетворяющим шаблону секции:

• Host шаблоны – следующие опции применимы к хостам, подходящим под один из шаблонов; имя хоста берется из командной строки, в шаблонах используются символы * и ?;

• BatchMode no | yes – параметр разрешает не запрашивать пароль/ парольную фразу;

• CheckHostiP yes | no – позволяет дополнительно проверять адрес сервера в known_hosts;

• Cipher 3des | blowfish – этот и следующий параметры определяют алгоритм шифрования данных;

• Ciphers aesl28-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, aes!92-cbc, aes256-cbc;

• ClearAllForwardings no | yes – данный параметр позволяет сбросить все перенаправления портов;

• Compression no | yes – параметр разрешает производить сжатие передаваемых данных;

• CompressionLevel уровень-сжатия – параметр определяет уровень компрессии для протокола SSH1;

• ConnectionAttempts число-попыток-соединения – параметр задает ЧИСЛО попыток установления соединения;

• EscapeChar символ | ^символ|none – параметр позволяет определить символ для использования вместо тильды;

• FaiiBackToRsh no | yes – параметр разрешает использовать rsh в том случае, если сервер не имеет SSH-сервера;

• ForwardAgent no | yes – параметр определяет, передавать ли запрос к агенту аутентификации на удаленный хост;

• GatewayPorts no | yes – параметр разрешает удаленным хостам соединяться на перенаправленные локальные порты;

• GiobaiKnownHostsFile имя-файла – параметр разрешает использовать указанный файл вместо /usr/local/etc/ssh_known_hosts;

• HostKeyAigorithms ssh-rsa,ssh-dss – параметр определяет используемые алгоритмы шифрования (SSH2);

• IdentityFile имя-файла – параметр определяет файл, хранящий RSA– или DSA-приватный ключ;

• KeepAllve yes | no – параметр позволяет заметить разрыв связи или аварийное завершение на удаленном конце;

• KerberosAuthentication yes | по – параметр разрешает использовать kerberos-аугентификацию;

• LogLevel info – параметр определяет, какой уровень использовать при создании сообщений в журнал системы. Можно использовать следующие уровни – quiet, fatal, error, info, verbose, debug;

• MACs hmac-md5, hmac-shal, hmac-ripemdl60, hmac-shal-96, hmac-md5-96 – параметр определяет используемые алгоритмы для создания контрольной суммы;

• NumberOfPasswordPrompts 3 – параметр определяет количество попыток ввода пароля пользователя;

• PasswordAuthentication yes/no – параметр разрешает аутентификацию по паролю;

• Port 22 – параметр определяет, к какому порту будет подключаться клиент;

• PreferredAuthentications publickey, password, keyboard-interactive – параметр определяет приоритеты аутентификации (SSH2);

• Protocol список-версий-протокола – параметр задает список версий протокола в порядке предпочтительности;

• ProxyCommand – использование этого параметра позволяет использовать дополнительную команду для соединения с сервером;

• PubkeyAuthentication yes | no – параметр разрешает использовать при аутентификации публичный ключ (SSH2);

• RhostsAuthentication yes | no – параметр разрешает использовать при аутентификации файл. rhosts (SSH1);

• StrictHostKeyChecking ask | no | yes – параметр разрешает не добавлять незнакомые или изменившиеся хосты в know_hosts;

• UsePriviiegedPort yes | no – параметр разрешает использовать привилегированные порты для установления соединения;

• User имя-пользователя – параметр задает имя пользователя;

• UserKnownHostsFile файл-known_hosts – параметр определяет местоположение файла known_hosts;

• UseRsh no | yes – параметр разрешает использовать rsh в том случае, если SSH на хосте отсутствует.

Файлы ключей клиента

В качестве ключей клиента используются следующие файлы:

• ~/.ssh/identity – приватный RSAl-ключ пользователя;

• ~/.ssh/id_dsa – приватный DSA2-ключ пользователя;

• ~/.ssh/id_rsa – приватный RSA2~ключ пользователя;

• ~/.ssh/identity.pub – публичный RSAl-ключ пользователя;

• ~/.ssh/id_dsa.pub – публичный DSA2-ключ пользователя;

• ~/.ssh/id_rsa.pub – публичный RSA2-ключ пользователя.

Перейти на страницу:

Все книги серии Наиболее полное руководство

Linux
Linux

Книга посвящена операционной системе Linux. Приводятся подробные сведения о ее особенностях и возможностях, идеологии файловой системы, инсталляции и основных командах, вопросах компиляции ядра, настройках и сервисах. Большое внимание уделяется организации на базе Linux различных серверов и служб: электронной почты, WWW, FTP, INN, Proxy, NTP, а также проблемам администрирования сети, обеспечения безопасной работы и другим вопросам. Описаны способы настройки под Linux рабочих станций, в т. ч. и бездисковых, установки и эксплуатации на них графических сред типа X Window, а также конфигурирование модемных соединений, принтеров и сканеров, отладка взаимодействия с Linux-машинами такой «экзотической» периферии, как карманные компьютеры, мобильные телефоны, TV-тюнеры и т. п. Рассматриваемые в книге конфигурационные файлы и структура каталогов соответствуют дистрибутиву Red Hat Linux 7.x, тем не менее, при минимальной адаптации все упоминаемые в книге пакеты устанавливаются в любом дистрибутиве Linux.Для начинающих администраторов или пользователей Linux.

Алексей Александрович Стахнов

ОС и Сети, интернет

Похожие книги

Веб-аналитика: анализ информации о посетителях веб-сайтов
Веб-аналитика: анализ информации о посетителях веб-сайтов

Компании в веб-пространстве тратят колоссальные средства на веб-аналитику и оптимизацию своих веб-сайтов, которые, в свою очередь, приносят миллиарды долларов дохода. Если вы аналитик или работаете с веб-данными, то эта книга ознакомит вас с новейшими точками зрения на веб-аналитику и то, как с ее помощью сделать вашу компанию весьма успешной в веб. Вы изучите инструментальные средства и показатели, которые можно использовать, но что важнее всего, эта книга ознакомит вас с новыми многочисленными точками зрения на веб-аналитику. Книга содержит много советов, приемов, идей и рекомендаций, которые вы можете взять на вооружение. Изучение веб-аналитики по этой уникальной книге позволит познакомиться с проблемами и возможностями ее современной концепции. Написанная практиком, книга охватывает определения и теории, проливающие свет на сложившееся мнение об этой области, а также предоставляет поэтапное руководство по реализации успешной стратегии веб-аналитики.Эксперт в данной области Авинаш Кошик в присущем ему блестящем стиле разоблачает укоренившиеся мифы и ведет по пути к получению действенного понимания аналитики. Узнайте, как отойти от анализа посещаемости сайта, почему основное внимание следует уделять качественным данным, каковы методы обретения лучшего понимания, которое поможет выработать мировоззрение, ориентированное на мнение клиента, без необходимости жертвовать интересами компании.- Изучите все преимущества и недостатки методов сбора данных.- Выясните, как перестать подсчитывать количество просмотренных страниц, получить лучшее представление о своих клиентах.- Научитесь определять ценность показателей при помощи тройной проверки "Ну и что".- Оптимизируйте организационную структуру и выберите правильный инструмент аналитики.- Изучите и примените передовые аналитические концепции, включая анализ SEM/PPC, сегментацию, показатели переходов и др.- Используйте решения с быстрым началом для блогов и электронной торговли, а также веб-сайтов мелкого бизнеса.- Изучите ключевые компоненты платформы экспериментирования и проверки.- Используйте анализ конкурентной разведки для обретения понимания и принятия мер.Здесь также находятся:- Десять шагов по улучшению веб-аналитики.- Семь шагов по созданию управляемой данными культуры в организации.- Шесть способов замера успеха блога.- Три секрета создания эффективной веб-аналитики.- Десять признаков великого веб-аналитика.

Авинаш Кошик

ОС и Сети, интернет