Рейтинговые книги
Читем онлайн Linux: Полное руководство - Денис Колисниченко

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 71 72 73 74 75 76 77 78 79 ... 158

Листинг 11.1. Фрагмент файла конфигурации /etc/xinetd

# Параметры по умолчанию для всех возможных сервисов

defaults

{

 # Число серверов, которые могут быть активны одновременно

 instances = 25

 # Параметры протоколирования

 log_type = FILE /var/log/servicelog

 log_on_success = HOST PID

 log_on_failure = HOST RECORD

 # Параметры доступа

 only_from = 111.11.111.0 111.111.112.0

 only_from = localhost 192.168.1.0/32

 # Отключенные сервисы

 disables = tftp

}

service login {

 flags = REUSE

 socket_type = stream

 protocol = tcp

 wait = no

 user = root

 server = /usr/etc/in.rlogind

 log_type = SYSLOG local4 info

}

# Сервис telnet - эмуляция терминала удаленных систем

# для интерфейса обратной петли

service telnet {

 flags = REUSE

 socket_type = stream

 wait = no

 user = root

 server = /usr/etc/in.telnetd

 bind = 127.0.0.1

 log_on_failure += USERID

}

# Сервис telnet — эмуляция терминала удаленных систем

service telnet {

 flags = REUSE

 disable = yes

 socket_type = stream

 wait = no

 user = root

 server = /usr/etc/in.telnetd

 bind = 192.231.139.175

 redirect = 128.138.202.20 23

 log_on_failure += USERID

}

service ftp {

 socket_type = stream

 wait = no

 user = root

 server = /usr/etc/in.ftpd

 server_args = -1

 instances = 4

 log_on_success += DURATION USERID

 log_on_failure += USERID

 access_times = 2:00-8:59 12:00-23:59

 nice = 10

}

service name {

 socket_type = dgram

 wait = yes

 user = root

 server = /usr/etc/in.tnamed

}

# Поддержка протокола TFTP (Trivial FTP). Этот протокол

# используется для обмена информацией между интеллектуальными

# маршрутизаторами и, скорее всего, вы не будете его

# использовать.

service tftp {

 socket_type = dgram

 wait = yes

 user = root

 server = /usr/etc/in.tftpd

 server_args = -s /tftpboot

}

# SMTP-сервис Qmail. Конфигурируется для запуска по

# требованию суперсервера xinetd

service smtp {

 socket_type = stream

 protocol = tcp

 wait = no

 user = qmaild

 id = smtp

 server = /var/qmail/bin/tcp-env

 server_args = /var/qmail/bin/qmail-smtpd

 log_on_success -= DURATION USERID PID HOST EXIT

 log_on_failure -= USERID HOST ATTEMPT RECORD

}

# Сервис finger, позволяющий узнать общедоступную информацию о

# пользователях системы, записанную в /etc/passwd.

service finger {

 socket_type = stream

 disable = yes

 wait = no

 user = nobody

 server = /usr/etc/in.fingerd

}

service echo {

 type = INTERNAL

 id = echo-stream

 socket_type = stream

 protocol = tcp

 user = root

 wait = no

}

service echo {

 type = INTERNAL

 id = echo-dgram

 socket_type = dgram

 protocol = udp

 user = root

 wait = yes

}

service rstatd {

 type = RPC

 disabled = no

 flags = INTERCEPT

 rpc_version = 2-4

 socket_type = dgram

 protocol = udp

 server = /usr/etc/rpc.rstatd

 wait = yes

 user = root

}

Как видно из примера, я сконфигурировал лишь самые необходимые сервисы. Доступ к сервисам в рассматриваемом примере могут получать только клиенты из сетей 111.111.111.0 111.111.112.0 и 192.168.1.0. Можно также указывать адрес и маску подсети, например, 192.168.1.0/32. Вместо sendmail я использовал qmail. Можно было бы запускать qmail в режиме standalone, но так как я не очень часто пользуюсь услугами 25-го порта, то мне удобнее запускать сервис smtp через xinetd. Из соображений безопасности я отключил некоторые сервисы: finger, telnet.

11.4. Удаленный доступ: ssh и telnet

11.4.1. Использование telnet

Сервис telnet обеспечивает базовую эмуляцию терминалов удаленных систем, поддерживающих протокол telnet над протоколом TCP/IP. Обеспечивается эмуляция терминалов Digital Equipment Corporation VT 100, Digital Equipment Corporation VT 52, TTY. Проще говоря, сервис telnet позволяет работать на удаленном компьютере так, как будто вы сидите непосредственно за ним. Протокол telnet описан в документе RFC 854, который вы найдете на сайте издательства www.nit.com.ru.

Для использования telnet на удаленном компьютере должен быть установлен telnet-сервер. На компьютере пользователя нужно установить программу-клиент. Любые команды, вводимые пользователем, обрабатываются telnet-сервером, а не локальным компьютером. Пользователь на своем компьютере лишь видит результат выполнения этих команд.

Практически в каждой операционной системе существует утилита telnet, которая является клиентом для протокола telnet (рис. 11.1).

Рис. 11.1. Telnet-клиент для Windows

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

Сервер telnet может в разных дистрибутивах называться по-разному. В Red Hat-дистрибутивах он находится в пакете telnet-server и в большинстве случаев устанавливается по умолчанию.

11.4.2. Настройка и использование SSH

Что такое SSH

SSH (Secure Shell — защищенная оболочка) — это протокол, обеспечивающий защищенную передачу данных. SSH использует криптографию открытого ключа для шифрования соединения между двумя машинами, а также для опознавания (аутентификации) пользователей. Протокол SSH можно использовать для безопасной регистрации на удаленном сервере или копирования данных между двумя машинами. Ом позволяет предотвращать атаки способом присоединения посередине (session hijacking) и обмана сервера имен (DNS spoofing).

Протокол SSH поддерживает следующие алгоритмы шифрования:

♦ BlowFish — 64-разрядная схема шифрования. Этот алгоритм часто используется для высокоскоростного шифрования данных больших объемов.

♦ Тройной DES (Data Encryption Standard) — довольно старый стандарт шифрования данных, который в наше время рекомендуется использовать только для несекретных данных.

♦ IDEA (International Data Encryption Algorithm) — международный алгоритм шифрования информации. Этот алгоритм работает со 128-разрядным ключом и поэтому он более защищен, чем BlowFish и DES.

♦ RSA (Rivest-Shamir-Adelman algorithm) — алгоритм Ривеста-Шамира-Адельмана. Представляет собой схему шифрования с открытым и секретным ключами.

Поддержка нескольких алгоритмов шифрования позволяет обеспечивать наибольшую безопасность, так как в случае обнаружения уязвимости в одном алгоритме SSH переориентируется на использование других алгоритмов.

На данный момент существует две версии протокола SSH:

♦ Протокол SSH версия 1. У каждого узла есть свой RSA-ключ (обычно 1024 бит), который используется для идентификации узла. Этот ключ еще называется открытым. Дополнительно, при запуске демона, генерируется еще один RSA-ключ — ключ сервера (обычно 768 бит). Этот ключ создается заново каждый час и никогда не сохраняется на диске. Каждый раз при установке соединения с клиентом демон отправляет ему в ответ свой открытый ключ и ключ сервера. Клиент сравнивает полученный открытый ключ со своей базой данных, чтобы проверить, не изменился ли он. Затем клиент случайным образом генерирует 256-разрядное число и кодирует его, используя одновременно два ключа — открытый ключ и ключ сервера. Обе стороны используют этот случайный номер как ключ сессии, который используется для кодирования всех передаваемых во время сессии данных. Затем клиент пытается аутентифицировать себя, используя .rhosts-аутентификацию, аутентификацию RSA или же аутентификацию с использованием пароля. Обычно .rhosts-аутентификация небезопасна, поэтому она отключена.

♦ Протокол SSH версия 2. Версия 2 работает аналогично первой: каждый узел имеет определенный RSA-ключ, который используется для идентификации узла. Однако при запуске демона ключ сервера не генерируется. Безопасность соединения обеспечивается благодаря соглашению Диффи-Хелмана (Diffie-Hellman key agreement). Кроме того, в SSH2 были исправлены недостатки SSH1. Сессия может кодироваться следующими методами: 128-разрядный AES, Blowfish, 3DES, CAST128, Arcfour, 192-разрядный AES или 256-разрядный AES.

1 ... 71 72 73 74 75 76 77 78 79 ... 158
На этой странице вы можете бесплатно читать книгу Linux: Полное руководство - Денис Колисниченко бесплатно.
Похожие на Linux: Полное руководство - Денис Колисниченко книги

Оставить комментарий