Настройка сети при помощи утилит Calculate¶
Начиная с версии 2.2.17, в calculate-install добавилась возможность указывать настройки сети (ip-адрес, таблицу маршрутизации, dns, менеджер сети). Для этого используются параметры —ip , —route , —dns , —dhcp , —netconf .
При установке системы без указания этих параметров настройки берутся из текущих установок системы (текущий IP и маска, менеджер сети, таблица маршрутизации). Эти параметры будут отображены в информации перед установкой:
В зависимости от используемого менеджера сети ( openrc или networkmanager ), настройки будут производится в /etc/NetworkManager/system-connections или в /etc/conf.d/net (начиная с версии утилит 2.2.17 этот файл не переносится из текущей системы в новую, а пересоздается). При использовании openrc для настройки сети символические ссылки на net.ethX будут созданы автоматически.
Указание IP-адреса¶
Для установки ip-адреса с маской (маска указывается как CIDR) для определенного интерфейса используется параметра —ip (если интерфейс один, то его можно не указывать).
Настройка маршрутизации¶
Для указания шлюза и таблицы маршрутизации используется параметр —route . Маршруты по умолчанию берутся из текущей таблицы маршрутизации и в ней замещаются указанные записи по сетям. Для удаления маршрута для определенной сети необходимо указать сеть, не указывая шлюз. Формат указания маршрута следующий: : : : .
Для маршрутизатора, использующего ipsec-туннели, может еще пригодиться указывать, от какого ip-адреса отправлять пакеты в сеть, находящуюся на другом конце туннеля. Например, для шлюза, соединяющего по туннелю сеть 192.168.1.0/24 с сетью 192.168.2.0/24, необходимо прописать, чтобы пакеты в сеть 192.168.2.0/24 отправлялись с 192.168.1.5
Указание DNS¶
Для указания DNS используется параметр —dns . Если его не указывать, он берется из текущего состояния системы. Если DNS серверов несколько, то они перечисляются через запятую.
Указание получение настроек сети по DHCP¶
Для указания настройки сетевого интерфейса по DHCP используется параметр —dhcp . В нем указывается, какой интерфейс будет настраиваться по DHCP .
Указание менеджера сети¶
Выбор менеджера настройки сети осуществляется при помощи параметра —netconf :
Перенастройка сети в текущей системе¶
Перенастройка сети в текущей системе осуществляется с параметром —startup и установкой пустого значения переменной os_install_net_settings .
После выполнения команды можно перезагрузиться — сеть будет настраиваться указанным способом.
Настройка сети¶
Настройка графическим клиентом¶
Настройка сети для графического клиента cl-console-gui находится в категории Настройка. Для настройки локализации необходимо выбрать требуемые параметры, затем нажать кнопку Сохранить. Дополнительные параметры можно открыть нажав на соответствующую кнопку.
Настройка консольным клиентом¶
Для настройки сети с помощью консольного клиента cl-console используйте команду
Назначение ключей:
- —netconf NETMANAGER — выбор менеджера сети (networkmanager или openrc)
- —iface IFACE_SETTINGS — установка адреса для сетевого интерфейса
- —hostname HOSTNAME — установка короткого или полного имени хоста
- —ntp NTP — установка NTP сервера для системы
- —dns DNS — установка серверов доменных имен (запятая — разделитель)
- —domain-search DOMAINS — установка доменов для поиска (запятая — разделитель)
- —route NETROUTE — добавить правило маршрутизации
Настройка сервером утилит¶
Для настройки с помощью сервера утилит используйте команду
Все ключи и их назначение совпадают с ключами, описанными выше в разделе настройка консольным клиентом.
Настройка без использования утилит Calculate¶
Настройку сети в CLD, CLDG и CLDX выполняет Networkmanager. Программа имеет графический интерфейс, при помощи которого можно настроить как проводную, так и беспроводную сеть. При загрузке программа попытается настроить сетевой интерфейс и получить IP-адрес от DHCP-сервера. Доступ к программе можно получить, кликнув по иконке в правом верхнем углу экрана.
1. Настройка сети¶
Настройки сети находятся в файле /etc/conf.d/net .
Начальная настройка¶
Перед тем, как настраивать конфигурационный файл, нужно убедиться, что в директории /etc/init.d/ присутствует символическая ссылка на /etc/init.d/net.lo с именем конфигурируемого интерфейса (в примерах упоминается сетевой интерфейс eth0.
Если настройки сети получаем по DHCP, то конфигурационный файл будет иметь вид:
Если используем статический адрес, конфигурационный файл будет иметь вид:
Если настройки не прописаны в конфигурационном файле, то будет предпринята попытка получить настройки сети по DHCP.
Также при запуске системы можно обнаружить такого рода сообщение:
Не пугайтесь. Сеть продолжает подниматься, просто не тормозит загрузку системы. В некоторых случаях это удобно, а в некоторых нет. Те, кому подобная ситуация не нравится, могут дописать в /etc/conf.d/net такую строку:
Но помните, при следующем запуске придется дожидаться окончания загрузки сети.
Расширенные настройки сети¶
Иногда при наличии одной сетевой карты существует необходимость работать в нескольких сетях. Это можно реализовать, присвоив несколько адресов одному сетевому интерфейсу. Например:
Для получения основных настроек сети не обязательно использовать DHCP — они могут быть заданы и статически:
MTU для интерфейса прописываем таким способом (актуально для DSL-модемов, в основном используют значение 1000):
Настройки DNS для интерфейса:
Если данные настройки отсутствуют, то настройки DNS берутся из /etc/resolv.conf .
Настройка синхронизации с сервером времени (NTP):
Строим сеть на Calculate Directory Server¶
СЕРГЕЙ ЯРЕМЧУК, инженер автоматизации. Автор более 800 статей и 4 книг. В «Системном администраторе» публикуется с первого номера.
Интересы: сетевые технологии, защита информации, свободные ОС
Принято считать, что управлять большим количеством Linux-систем очень сложно, разработчики Calculate Linux доказали, что это не так
Here all my tuxian friends are scared when it comes to gentoo or anything related to it. they say,
«hands will be on fire, if you touch it» so much customizable. now everyone is talking
of Calculate Linux. its a real blessing, i must say.
Все мои друзья пугаются, когда речь идет о Gentoo. Они говорят: «Руки будут гореть, если прикоснуться к нему», –
столько настроек. Сейчас они говорят о Calculate Linux. Я должен сказать, это реальное благословление.
Из сообщения в IRC проекта Calculate Linux
Зачем еще одно «поделие»?¶
Учитывая, что подобный вопрос неизменно появляется в качестве комментариев после анонса любого нового дистрибутива, следует уделить несколько строк проекту Calculate Linux.
Linux-системы ассоциируются с несколькими понятиями – бесплатность, доступность, стабильность, безопасность, управляемость, доступ к коду и возможность его изменения. Но именно бесплатность ставят на первое место, когда рассматривается вопрос о внедрении. Делая ставку на то, что системы на базе этой ОС можно свободно скачать и использовать без отчислений и постепенно довести ИТ-инфраструктуру до необходимого уровня. Учитывая затяжное внедрение и необходимость в наличии подготовленных кадров, основной упор при переходе на Linux переносится с цены приобретения на стоимость сопровождения. Именно такой аргумент приводят сторонники Microsoft, указывая, что совокупное владение Linux, несмотря на нулевую стоимость, все-таки выше именно за счет обучения и оплаты системного администратора, службы поддержки и обслуживания. Вероятно, в условиях кризиса в этом даже больше выгоды, так как финансирование внедрения Linux не будет требовать больших первоначальных вложений, а развитие ИТ-инфраструктуры может идти и финансироваться постепенно, по мере необходимости. Но как раз без должного финансирования переход на свободные ОС может длиться лишь усилиями энтузиастов и длиться не один месяц.
Именно поэтому многие используют Linux дома или на отдельных системах, в частности, сервера на предприятии. На массовое повсеместное внедрение решаются не все, не говоря уже о полном переходе. Ведь необходимо не только развернуть систему на десятках/сотнях компьютеров, но и обеспечить автоматическое обновление, произвести первоначальные настройки, в том числе настроить единую систему аутентификации пользователя, переобучить персонал. Немаловажен тот факт, что многие специфические программы не имеют свободных аналогов или такие аналоги слабо документированы, некоторое оборудование не имеет драйверов под эту ОС.
Причем здесь Calculate Linux? Ответ дан в кратком описании на сайте «Calculate Linux – это открытый проект по внедрению Linux повсеместно. Проект представляет свободный и легкий доступ ко всем возможностям Gentoo». Прошу заметить, первым в списке задач стоит именно внедрение, дистрибутив лишь инструмент, обеспечивающий простоту внедрения. Собственно, и проект возник в результате перевода систем ЗАО «Калкулэйт Пак» на Linux, что примечательно – ЗАО не имеет никакого прямого отношения к ИТ. Идейным вдохновителем и руководителем является Александр Трацевский, основная группа разработчиков включает еще двух человек.
Постепенно накапливался опыт, выбирались оптимальные процедуры обновления систем и программ, входящих в состав дистрибутива, оконный менеджер и его формление, появились утилиты собственной разработки. Использование единой учетной записи позволяет не только удобно управлять доступом к ресурсам в пределах организации, но и пользователь теперь не привязан к рабочему месту. После регистрации получает с сервера свое рабочее окружение со всеми файлами и настройками. Все это работает «из коробки», настраивается очень просто и не требует от администратора глубоких знаний Linux-систем (хотя они в любом случае приветствуются). Конечно, все это делалось под нужды определенной структуры, так как это удобно самим разработчикам, вводилось постепенно, не за один день. Но как показывает тестирование, довести до ума сеть на Calculate Linux можно на порядок быстрее, чем на Gentoo, который и является основой Calculate. При этом совместимость с Gentoo сохранена на 100%, все дополнительные пакеты собираются из ebuild-файлов Calculate Overlay. Релизы системы выходят стабильно раз в месяц (как правило, в первых числах), система нумерации подобна Ubuntu (год.месяц). Актуальной на момент написания статьи является версия 9.7, но уже полным ходом идет работа над 9.8, в которой нам обещают еще одну новинку – Calculate Linux Scratch (CLS), который позволит быстро собрать свой вариант дистрибутива.
Вполне естественно, что настало время поделиться своим опытом с другими и, возможно, привлечь к проекту разработчиков. Постепенно был открыт сайт, форум и IRC-канал #calculate на irc.freenode.net. Учитывая более простую систему установки и обновления, ежемесячный цикл выхода релизов, не требующих самостоятельно пересобирать систему и тестировать приложения на совместимость, многие пользователи выбрали Calculate вместо Gentoo в качестве настольной системы.
В настоящее время проект предлагает три варианта системы. Серверная версия – Calculate Directory Server (CDS), основой которого является LDAP-сервер, используемый для авторизации пользователей, централизованного хранения профилей, прав доступа, настроек сеансов пользователей и настроек приложений в едином сетевом хранилище. Поддерживается репликация почтовых и Samba-серверов, централизованное обновление серверов и рабочих станций, резервирование и восстановление данных.
Его альтернативой можно считать Mandriva Directory Server [3] стоимостью 5550 руб или Red Hat Directory Server (RHDS) [4]. Основной компонент для RHDS – 389 (ранее Fedora Directory Server Project) [5] доступен свободно, правда, с установкой в дистрибутиве, отличном от Red Hat, придется немного повозиться. Но главное – по возможностям оба этих решения уступают бесплатному CDS.
И две настольные – Calculate Linux Desktop (CLD) с рабочей средой KDE 4.x и Calculate Linux Desktop XFCE (CLDX) с рабочим столом XFce. Последняя имеет меньшие системные требования и ориентирована на применение на маломощных машинах. CLDX – это первая проба, основной настольной системой считается именно CLD, который максимально адаптирован для совместной работы с CDS. При подключении к домену с сервера забираются профили пользователей, автоматически подключаются сетевые папки, каталог FTP, соответствующий ярлык появляется на рабочем столе. Кроме этого пользователь автоматически получает доступ к почтовому, Jabber и прокси-серверу (если он ему разрешен). И главное, все это просто настраивается.
Следует отметить документацию проекта, написанную без излишних технических подробностей «под себя», но с массой практических примеров для всех вариантов использования системы. Жаль только, что она иногда запаздывает, и из всего многообразия пошаговое руководство для новичка, позволяющее настроить полноценную сеть, сложить трудно, потребуется все-таки некоторый опыт в администрировании систем. Хотя заметно оживление, возможно, в будущем проблема документации будет решена. Собственно, и сама статья является попыткой свести все к одному логическому знаменателю. Система работает на Intel-совместимых процессорах, не ниже Pentium Pro (i686, x86_64), поддерживает установку на PATA-, SATA- и SCSI-контроллеры, имеет поддержку сетевого беспроводного оборудования Wi-Fi. Интересно, что совсем молодой Calculate Linux по рейтингу Distrowatch.com занимает первое среди дистрибутивов, сделанных в России (общее 72 место).
Теперь рассмотрим, как настроить связку CDS и CLD/CLDX.
Установка Calculate Linux¶
Перед загрузкой рекомендую на всякий случай ознакомиться с документом «Структура FTP-зеркала», это снимет ряд вопросов, что и где скачивать. Дистрибутив CDS и CLDX поставляется в виде LiveCD, а CLD – LiveDVD ISO-образов. Образы находятся в одноименных каталогах, внутри – отдельные подкаталоги со сборками для i686- и x64-систем. Здесь же доступны tar.7z-архивы, которые предназначены для обновления дистрибутива и по составу приложений не отличаются от ISO-вариантов. Последние версии Calculate поддерживают обновление и из установочных ISO-образов, поэтому дополнительно tar.7z-файл скачивать уже не обязательно.
Аппаратные требования системы для работы невысоки: процессор класса i686, 256 Мб ОЗУ (512 Мб для CLD) и 3 Гб (6 Гб CLD) на жестком диске. После перехода в версии 9.6 на использование алгоритма LZMA во время установки требуется не менее 1 Гб ОЗУ, иначе копирование файлов завершается с ошибкой. Решить проблему можно, подключив swap-раздел командой swapon. Разработчики знают о проблеме, и уже в CLD 9.7 установочный скрипт самостоятельно монтирует swap-раздел перед началом копирования файлов (в CDS 9.7 для этого необходимо обновить установщик).
Установка дистрибутива на жесткий диск, обновление, а также сборка загрузочного ISO-образа системы производится при помощи Perl-утилиты calculate собственной разработки, работающей в консоли. Несмотря на отсутствие каких-либо графических инструментов, процесс инсталляции очень прост. Следует загрузиться в Live-режиме (при наличии 2 Гб памяти можно выгрузить образ в ОЗУ), обновить скрипт calculate.
В версии 9.6 для этого следовало выполнять:
# calculate —update
В релизе 9.7 появилась новая версия calculate 1.1.0, которая не поддерживает параметра —update, поэтому обновлять следует через emerge:
# layman -S && emerge calculate
Далее два варианта установки. Первый – самый простой и почему-то до сих пор недокументированный на сайте проекта. При наличии жесткого диска размером больше 45 Гб (при установке на флешку достаточно 512 Мб) утилита calculate умеет автоматически разбивать пространство и создавать разделы (все разделы будут уничтожены). В этом случае в качестве параметра необходимо указать только диск:
# calculate —disk=/dev/sda
В результате будет установлена система, жесткий диск будет разбит на такие разделы:
Именно такая схема рекомендуется разработчиками, и, чтобы получить все преимущества Calculate, ее желательно придерживаться (почему – объясню чуть позже). Под корневой раздел можно отвести меньшее место (в документации указано 10-20 Гб, но нижний предел можно сделать еще меньше, установка занимает меньше 3 Гб).
Если в результате работы скрипта получаем сообщение:
то жесткий диск необходимо разметить вручную, при помощи fdisk/cfdisk. И указать затем на корневой в параметре запуска:
# calculate —disk=/dev/sda2
При большом количестве однотипных систем (типичные размеры жестких дисков 20, 30, 40, 80 Гб …), проще подправить скрипт calculate, указав свои настройки.
Например, за проверку объема диска отвечает такая строка:
if($size # layman -S && emerge calculate-server calculate-lib
На клиентской машине соответственно:
# layman -S && emerge calculate-client calculate-lib
Устанавливаем контроллер домена¶
После перезагрузки регистрируемся с правами root. При наличии DHCP-сервера сеть будет определена автоматически, иначе ее следует настроить при помощи команды «net-setup eth0», которая поможет настроить ее при помощи псевдографического меню. Команда netstat показывает, что после установки CDS открыты порты SSH, NTP и Bootpc. Кроме этого, в списке обнаруживается полный набор сервисов – Apache 2.2.11, BIND 9.4.3, Squid 3.0.15, Sarg 2.2.5-r5, HAVP 0.89, Postfix 2.5.5, Dovecot 1.1.7-r1, PPTPD 1.3.4, ejabberd 2.0.5-r1, PostgreSQL 8.3.7, ProFTPD 1.3.2-r2, OpenLDAP 2.4.16, Clamd 0.95.1, Clamsmtpd 1.9.
Рисунок 3. Получаем информацию о пользователе домена
Для настройки контролера домена нам понадобится LDAP и Samba, запускаем при помощи cl-setup. Команда проста:
# cl-setup ldap
Программа выполнит настройку LDAP, администратор получит предупреждение о том, что база данных будет перезаписана (архив сохраняется в /var/calculate/server-backup/ldap). Также сервис будет добавлен в автозагрузку. Теперь аналогично настроим сервисы UNIX и Samba.
# cl-setup unix
Этой командой мы подключаем возможность аутентификации учетных записей c системными ID, хранящихся в LDAP. И наконец:
# cl-setup samba
Будет запущен сервис Samba и созданы служебные пользователи client и admin, необходимые для ввода соответственно Linux- и Windows-компьютеров в домен. Последовательность запуска важна. Так как, например, введя перед запуском LDAP команду «cl-setup unix», получим предупреждение:
Список настроенных сервисов можно узнать, просмотрев файл /etc/calculate/calculate.env:
# cat /etc/calculate/calculate.env
Пароли доступа всех сервисов к LDAP хранятся в /etc/calculate/calculate.ldap (при запуске сервиса они генерируются случайным образом и уникальны для каждой системы).
# cat /etc/calculate/calculate.ldap
Установим пароль для учетных записей client и admin, которые используются для ввода в домен соответственно Linux- и Windows-машин:
# cl-passwd —smb client samba
# cl-passwd —smb admin samba
Подключение Linux-клиента к домену
Регистрируемся на клиентской Linux-системе как root, и вводим ее в домен, указав в качестве параметра cl-client имя сервера CDS или его IP-адрес. По ходу будет запрошен пароль учетной записи client:
# cl-client 192.168.17.147
Команду рекомендуется вводить в локальной или удаленной (через SSH) консоли, а не под Х. И вот почему. При успешном входе в домен будет выполнено ряд действий. Изменятся настройки файлов /etc/pam.d/system-auth, /etc/nsswitch.conf, в которых будут подключены пользователи Samba-сервера. В /var/calculate/remote будет смонтирован сетевой ресурс.
# mount | grep remote
Пока в указанном каталоге находится файл /var/calculate/remote/calculate.env настройками LDAP:
Можно его скорректировать, вписав в поле ur_organization название организации, а в ur_signature – подпись в почтовом сообщении. Чтобы исключить конфликты с локальными пользователями, поверх /home будет смонтирован локальный каталог /var/calculate/client-home. Именно поэтому на подключаемой системе лучше пока не работать.
# mount | grep home
Сами разработчики не рекомендуют заводить локальные учетные записи (кроме стандартных root и guest, которые после ввода в домен будут недоступны), чтобы их ID не совпадали с ID пользователя в LDAP.
Чтобы вывести компьютер из домена, достаточно дать команду, зарегистрировавшись через SSH как локальный root:
# cl-client -r
Введенный пароль для подключения к домену на клиентской системе кэшируется в файле calculate.env.
# cat /var/calculate/calculate.env
Как подключить Windows-систему, хорошо расписано в документе «Переход на использование Linux», но Calculate/Gentoo Linux является предпочтительным при работе с CDS. Чтобы предоставить доступ пользователей к определенным ресурсам компьютера, системные UNIX-группы из /etc/group необходимо продублировать в LDAP-сервере при помощи команды cl-groupadd. Например:
# cat /etc/group | grep scanner
# cl-groupadd -f -g 441 scanner samba
Кроме этого, учетная запись должна быть включена хотя бы в одну пользовательскую группу. Группы являются средством разграничения прав, поэтому в организации их может быть несколько. Например, создадим группу it.
# cl-groupadd it samba
Полностью команда для создания учетной записи выглядит так.
# cl-useradd -p -c «Сергей Яремчук» -g it -G audio,lp,plugdev,scanner,video -p grinder samba
Вводим два раза пароль и получаем:
После входа пользователя на клиентской системе будет скопирован профиль, а на рабочем столе выведены ярлыки для доступа к его домашнему каталогу, ресурсам Samba и FTP (если настроен). Если перейти на другой компьютер, даже находящийся в другой подсети домена, то все настройки перекочуют за пользователем.
Все группы, в которые должен быть включен пользователь, уже должны быть созданы, иначе получаем ошибку:
Удаляется учетная запись при помощи cl-userdel, но его домашние каталоги на сервере не удаляются (это нужно делать вручную). Поэтому при повторном использовании логина получаем сообщение:
Для получения информации об учетных записях Samba используется cl-info. Например, выведем данные обо всех пользователях:
# cl-info -u samba
Теперь по конкретной учетной записи:
# cl-info -U grinder samba
Чтобы запустить после настройки сервисы, не поддерживаемые утилитами Calculate 2 (вроде Apache 2), введите:
# rc-update add apache2 default
# /etc/init.d/apache2 start
Настройка почтового (Postfix/Dovecot) и Jabber-сервисов хорошо расписана на сайте проекта, команды для добавления сервиса и учетной записи аналогичны. В документации можно найти скрипт, при помощи которого пользователь подключается ко всем сервисам. Поэтому подробно останавливаться на этом не буду.
Рисунок 4. На рабочем столе пользователя, зарегистрированного в домене, будут выведены ярлыки для доступа к Samba- и FTP-ресурсам
Признаться, после стольких лет администрирования Linux возможности, предоставляемые дистрибутивом Calculate Directory Server, более чем впечатлили. Процесс построения домена и поддержания его в работоспособном состоянии весьма продуман и логичен и не займет много вашего времени.