Михаил Флёнов - Linux глазами хакера
- Название:Linux глазами хакера
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2005
- Город:Санкт-Петербург
- ISBN:5-94157-635-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Флёнов - Linux глазами хакера краткое содержание
Рассмотрены вопросы настройки ОС Linux на максимальную производительность и безопасность. Описаны потенциальные уязвимости и рекомендации по предотвращению возможных атак. Дается подробное описание настройки прав доступа и конфигурирования сетевого экрана. Показано, как действовать при атаке или взломе системы, чтобы максимально быстро восстановить ее работоспособность и предотвратить потерю данных.
Для пользователей, администраторов и специалистов по безопасности
Linux глазами хакера - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
5.3.8. Защищенная передача данных
В состав пакета SSH входят еще две полезные программы — это sftp-server (FTP-сервер с поддержкой шифрования передаваемых данных) и sftp (FTP-клиент для подключения к SFTP-серверу). Давайте посмотрим на последнюю строку файла конфигурации SSH-сервера /etc/ssh/sshd_config:
Subsystem sftp /usr/libexec/openssh/sftp-server
Директива
Subsystem
определяет дополнительные сервисы. В данной строке запускается sftp-server из пакета OpenSSH.
Работа с клиентом sftp не отличается от работы SSH-клиента. Выполните команду
sftp localhost
и перед вами появится приглашение авторизации, которую мы рассматривали в разд. 5.3.5 . Введя правильный пароль, вы оказываетесь в командной строке FTP-клиента и можете передавать или принимать файлы, используя команды FTP-протокола. Этот протокол мы будем подробно рассматривать в гл. 10 , а сейчас вам достаточно знать, что большинство команд схожи с директивами Linux для управления файлами.
Попытайтесь сейчас воспользоваться клиентом sftp для подключения к своей системе. Авторизовавшись, можно попробовать выполнить команды
ls
или cd
, чтобы убедиться в работоспособности программы. Для выхода из sftp наберите команду exit
. Основные команды FTP-протокола можно увидеть в приложении 1 .
Если вам необходимо передать на сервер или скачать с него секретную информацию (например, документы или файл паролей), то используйте для этого безопасное соединение по SFTP. Простые FTP-клиенты передают файлы в открытом виде (без шифрования), поэтому любой хакер сможет прослушать трафик и узнать информацию, которая поможет взломать ваш сервер.
Вы должны учитывать, что далеко не все серверы и клиенты FTP поддерживают шифрование SSH, поэтому убедитесь в поддержке этого протокола со стороны вашего программного обеспечения.
5.4. Демон inetd/xinetd
Для того чтобы сервер смог обрабатывать запросы клиентов, программа должна быть постоянно загружена и связана с определенным портом. В этом нет ничего сложного, но зачем постоянно держать программу в памяти, особенно если она слишком большая, а работает очень редко. Намного лучше, когда один сервис в системе будет следить за портами, и если пользователь обращается к определенному каналу, то эта программа запустит необходимый сервис. В ОС Linux такая возможность есть, и для этого используется демон inetd или более новая версия — xinetd.
Как определить, что запускать? Для этого используется файл /etc/services, в котором находится список сервисов и их портов в следующем формате:
имя порт/протокол псевдоним
□
имя
— название сервиса, который необходимо запускать;
□
порт
— номер канала, который должен прослушиваться;
□
протокол
— сервис inetd умеет работать с TCP- и UDP-протоколам, порты которых не пересекаются (и они совершенно разные), то необходимо в явном виде указывать протокол;
□
псевдоним
— вымышленное имя для сервиса.
Например, в файле /etc/servicesвы найдете следующие строки:
tcpmux 1/tcp # TCP port service multiplexer
tcpmux 1/udp # TCP port service multiplexer
rje 5/tcp # Remote Job Entry
rje 5/udp # Remote Job Entry
echo 7/tcp
...
...
ftp 21/tcp
ftp 21/udp fsp fspd
...
...
Я специально выбрал такие строки, чтобы вы увидели варианты описания различных сервисов.
Если вы используете старый дистрибутив ОС Linux, то в нем, скорей всего, еще работает inetd. Но мы уже говорили, что давнишний дистрибутив не может быть безопасным, и с ним что-либо делать бесполезно. Лучший защита — обновление, и тогда основным сервисом станет xinetd, который становится, если уже не стал, стандартом для всех.
Я рекомендую переход на xinetd, потому что в нем появилось много дополнительных возможностей, которые делают удобным администрирование и повышают безопасность. Например, в сервис xinetd встроены проверка всех удачных и неудачных соединений, возможность контроля доступа и даже предоставление его строго в определенное время.
5.4.1. Конфигурирование xinetd
Основной конфигурационный файл для xinetd — это /etc/xinetd.conf. В нем описываются настройки по умолчанию для запускаемых сервисов и директория, в которой будут находиться конфигурационные файлы, влияющие на работу конкретных сервисов. Рассмотрим по листингу 5.3 содержимое этого файла.
Листинг 5.3. Файл конфигурации /etc/xinetd.conf
#
# Simple configuration file for xinetd
# Пример конфигурационного файла для xinetd
#
# Some defaults, and include /etc/xinetd.d/
# Некоторые параметры по умолчанию
# и подключение директории /etc/xinetd.d/
defaults {
instances = 60
logotype = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
После ключевого слова
defaults
в фигурных скобках описываются настройки по умолчанию для всех сервисов. Любое из этих значений можно изменить для каждого отдельного сервиса.
Последняя строка подключает директорию /etc/xinet.d:
includedir /etc/xinetd.d
В этом каталоге для каждой службы есть собственный конфигурационный файл, где можно изменить параметры. Имена файлов соответствуют названиям сервисов, а содержимое — похоже на /etc/xinetd.conf. В листинге 5.4 приведено содержимое конфигурационного файла /etc/xinet.d/telnetдля сервиса Telnet.
Листинг 5.4. Конфигурационный файл для сервиса Telnet
# default: on
# По умолчанию включен
# description: The telnet server serves telnet sessions;
# it uses unencrypted username/password
# pairs for authentication.
# Описание: Telnet-сервис обслуживает telnet-сессии.
# Он использует не зашифрованные имя пользователя
# и пароль для аутентификации
service telnet {
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
Рассмотрим основные параметры, которые можно изменять:
□
disable
— если этот параметр установить в true
, то сервис будет запрещен для исполнения;
□
flags
— атрибуты выполнения сервиса;
□
socket_type
— тип используемого сокета. Для протокола TCP здесь должно быть значение stream
, а для протокола UDP — dgram
;
□
protocol
— используемый для передачи данных протокол (TCP или UDP);
□
server
— полный путь к запускаемой программе;
Интервал:
Закладка: