Чтение онлайн

на главную

Жанры

Linux-сервер своими руками

Колисниченко Денис Николаевич

Шрифт:

По правде говоря, все не так просто как я описал — на практике все намного сложнее: за установление TCP-соединений отвечает демон tcpd (в более ранних версиях Linux его не было), программы-сервисы (httpd, ftpd) могут постоянно находиться в памяти (режим standalone), в этом случае они сами обрабатывают пакеты, и, соответственно, суперсервер их уже не вызывает.

8.1.1. Настройка сервера inetd

Для начала разберемся с настройкой inetd. Этот сервер использовался в дистрибутиве RedHat до версии 7, в более новых версиях он заменен на xinetd (описание этого суперсервера приведено

далее в п. 8.1.4…8.1.7). При конфигурирования inetd вам потребуется отредактировать два файла /etc/inetd.conf и /etc/services. Первый, собственно, и есть файл конфигурации суперсервера, а во втором перечислены все сетевые службы, которые доступны в вашей системе. Формат файла /etc/services следующий:

Имя_службы Порт/Протокол Псевдоним службы

Листинг 8.1. Фрагмент файла /etc/services

рор-2 109/tcp postoffice # POP version 2

pop-2 109/udp

pop-3 110/tcp # POP version 3

pop-3 110/udp

postoffice в данном случае является псевдонимом. Для некоторых служб могут потребоваться использование нескольких протоколов (как в листинге 8.1 для POP3 используется два протокола — TCP и UDP) и/или нескольких портов (см. листинг 8.2).

Листинг 8.2. Несколько портов для сервиса ftp (RedHat)

ftp-data 20/tcp

ftp 21/tcp

В других версиях ftp может потребоваться только одна запись — ftp 21/tcp. Из соображений безопасности лучше закомментировать символом # сервисы, которые вы не планируете использовать, например, если у вас роутер, то зачем вам sendmail (port 25)?

Теперь переходим к файлу /etc/inetd.conf. Каждая запись в этом файле имеет следующий формат:

Имя Тип_сокета Протокол Флаги Пользователь Путь Аргументы

где:

Имя — имя сетевой службы, которое должно быть указано в файле /etc/services.

Тип_сокета — в этом поле указывается тип сокета, то есть тип технологии доставки данных для указанной службы. Наиболее часто используются значения: stream (поток) — для протокола TCP, dgram (дейтаграмма) — для протокола UDP и raw –непосредственно для протокола IP.

Протокол — имя протокола.

Флаги — с помощью флагов указывается статус ожидания. В качестве значения этого поля указывается ключевое слово wait или nowait. Если указано wait, то суперсервер inetd будет ожидать завершения работы данной сетевой службы на данном сокете, прежде чем перейти в состояние ожидания других запросов других служб на подключение к этому сокету. То есть в данной ситуации суперсервер перестает «слушать» порт до тех пор, пока на нем не завершит работу уже запущенная сетевая служба. Значение nowait приводит к обратной ситуации: после запуска описываемой сетевой службы суперсервер продолжает прослушивать сокет в ожидании других подключений. Обычно для служб с типом сокета stream устанавливается статус ожидания nowait, а для служб с типом сокета dgram — статус ожидания wait.

Пользователь — в этом поле указывается имя пользователя, с правами которого запускается описываемая сетевая служба (соответствующий ей сервер).

Путь — в этом поле указывается полное имя сервера (включая путь к нему), который должен быть запущен для обслуживания данного соединения.

Аргументы — все

оставшиеся поля воспринимаются как аргументы для запускаемого сервера.

Ниже (см. листинг 8.3) приведен пример записи в файле /etc/inetd.conf.

Листинг 8.3. Фрагмент файла/etc/inetd.conf

ftp stream top nowait root/usr/sbin/tcpd in.ftpd

где:

ftp — имя сетевой службы;

stream — задает тип сокета stream (потоковый сокет);

tcp — протокол (указан протокол tcp, так как именно этот протокол использует служба FTP в качестве протокола транспортного уровня);

nowait — суперсервер продолжает «слушать» порт после выполнения одного сервера для определенного порта;

root — сервер FTP будет запущен с правами root;

/usr/sbin/tcpd — сервер, который будет вызван для обработки соединения;

in.ftpd — аргумент, то есть программа, которую должен выполнить tcpd после проверки некоторой информации (о ней немного позже).

Еще вы можете написать и так, для прямого вызова службы ftp (ProFTP):

ftp stream tcp nowait root/usr/sbin/in.proftpd

В данном случае сразу будет вызван демон ProFTP. Запись in.proftpd является ссылкой на proftpd. Если будете использовать такой вызов ProFTP, позаботьтесь о том, чтобы proftpd имел тип inetd, а не standalone.

8.1.2. Настройка tcpd

Демон inetd является довольно удобным в использовании средством для организации работы Интернет-сервера. И все было бы замечательно, если бы не одно «но». А это «но» заключается в том, что разработчики inetd очень мало уделили внимания защите, что является недопустимым в нашей суровой Интернет-действительности. Восполнить этот недочет призван демон tcpd (система TCP-Wrappers). Так что давайте теперь разберемся, что же представляет из себя демон tcpd, который является еще одним барьером в системе безопасности.

Демон tcpd аутентифицирует удаленных пользователей и проверяет корректность их запросов. С помощью этого демона можно ограничить запросы с удаленных компьютеров.

Файл hosts.allow содержит список хостов, которым разрешено подключаться к вашей системе, a hosts.deny — запрещено. Записи имеют формат служба:хост.домен. Если вы хотите разрешить или запретить доступ всем, используйте ALL. Запись ALL:ALL открывает или закрывает доступ к вашему компьютеру для всех остальных компьютеров и для всех видов сервисов (см. листинг 8.4).

Листинг 8.4. Файл /etc/hosts.allow

http:ALL

ftp:ALL

ALL:server.dhsilabs.com

В листинге 8.4 доступ к http и ftp разрешен всем, но доступ ко ВСЕМ сервисам разрешен только компьютеру server.dhsilabs.com.

8.1.3. Протокол IPv6

Думаю, что основной момент настройки понятен, и теперь переходим к протоколу IPv6. Схема 32-разрядной адресации протокола IPv4 привела к дефициту IP-адресов. В новой версии протокола IP (IPv6, ранее именовавшегося IPng — IP next generation) адрес состоит из 16-ти октетов и изображается в виде восьми пар октетов, разделенных двоеточиями. В версии 6 используется 128-разрядные адреса получателей и отправителей (это в 4 раза больше, чем в 4-ой версии). Адрес в формате IPv6 может выглядеть так:

Поделиться:
Популярные книги

Законы Рода. Том 4

Flow Ascold
4. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 4

Последняя Арена 4

Греков Сергей
4. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 4

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Попаданка в семье драконов

Свадьбина Любовь
Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.37
рейтинг книги
Попаданка в семье драконов

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Рота Его Величества

Дроздов Анатолий Федорович
Новые герои
Фантастика:
боевая фантастика
8.55
рейтинг книги
Рота Его Величества

Девятое правило дворянина

Герда Александр
9. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Девятое правило дворянина

На границе империй. Том 5

INDIGO
5. Фортуна дама переменчивая
Фантастика:
боевая фантастика
попаданцы
7.50
рейтинг книги
На границе империй. Том 5

Неудержимый. Книга X

Боярский Андрей
10. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга X

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Невеста

Вудворт Франциска
Любовные романы:
любовно-фантастические романы
эро литература
8.54
рейтинг книги
Невеста

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Последний рейд

Сай Ярослав
5. Медорфенов
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Последний рейд

Чужое наследие

Кораблев Родион
3. Другая сторона
Фантастика:
боевая фантастика
8.47
рейтинг книги
Чужое наследие