Книга описывает процесс развертывания и администрирования сети на основе Unix-сервера и Linux-станций. Автор предлагает готовые решения для быстрой установки и настройки локальной сети. Большое количество примеров и готовых настроек позволяет использовать эту книгу в качестве практического руководства для работы.
Издание предназначено для системных администраторов и опытных пользователей.

Миграция с ActiveDirectory на LDAP

21.1. Прежде чем приступить к настройке

В прошлой главе мы рассмотрели, как настроить первичный контроллер домена на базе FreeBSD п Samba. В этой главе мы усложним задачу и рассмотрим миграцию с ActiveDirectory на LDAP (Lightweight Directory Access Protocol - легковесный нротокап доступа к каталогам). Чтобы фанатам Linux не было обидно, в этой главе мы будем рассматривать настройку на базе Linux. Во FreeBSD форматы файлов будут темп же. но следите за именами файлов - они могут быть несколько иными (имеются в виду полные имена файлов - названия конфигурационных каталогов во FreeBSD и Linux отличаются).

Итак, предположим, что у нас есть Windows 2000 Server с настроенным ActiveDirectory, наш домен называется LTD. а NetBIOS-имя Windows-сервера - server (имя для Linux-сервера придумаем в процессе настройки). Для реализации нашего проекта нужно установить следующие пакеты: samba (желательно использовать версию 3, если получится), slapd. smbldap-tools. libnss-ldap. apache2. nscd. phpldapadmin. libpam-ldap.

В этой главе мы выполним не только настройку сервера на базе Linux, но и произведем миграцию пользователей и компьютеров с ActiveDirectory на LDAP.

В большинстве случаев у вас будет установлена русская версия Windows Server, поэтому перед началом миграции вам нужно переименовать следующие группы пользователей (в скобках приводится новое название группы):

  • Администраторы домена (Domain Admins).
  • Компьютеры домена (Domain Computers).
  • Гости домена (Domain Guests).
  • Пользователи домена (Domain Users).

В прошлой главе мы не переименовывали группы, поскольку предполагалось, что самого процесса миграции не будет. Мы настраивали сервер с нуля, поэтому сразу создали необходимые группы на английском языке и установили их соответствие системным UNIX-группам с помощью команд:

Если же оставить название групп на русском, то процесс миграции не будет выполнен корректно - пользователи не будут перенесены на Linux-сервер.

Теперь нужно подготовить Linux-сервер. Нужно убедиться, что на вашем сервере нет групп со следующими GID: 512, 513. 514, 515, 544, 548. 550, 552. Дело в том. что сценарии smbldap-populate создаст группы именно с этими GID. 11 если в системе уже будут группы с такими GID, то сценарию Sfrbldap-populate не получится создать необходимые группы, следовательно, не получится произвести процесс миграции. Кстати, именно из-за smbldap-populate мы и переименовывали группы пользователей на Windows-сервере - этот сценарий создает группы на английском языке.

Сам процесс миграции будет производиться утилитой Windows to Linux Migration Toolkit (w2lmt). Скачать эту утилиту можно по адресу: sourceforge.net/projects/w2lmt/

В состав w2lmt входят несколько сценариев. Основной сценарий называется w21mt-migrate-smbauth. Именно этот сценарий переносит пользователей с Windows-сервера на LDAP. Для миграции DNS используется сценарий w21mt-migrate-dns, но мы этот сценарии использовать не будем, поскольку будем считать, что DNS-сервер уже работает под управлением UNIX. Для миграции службы Exchange используется сценарий w21mt-migrate-directory. Во многих случаях Exchange не используется, a ActiveDirectory используется только для аутентификации пользователей, следовательно, вам понадобится запустить только один сценарий - w21mt-migrate-dns.

Все готово для миграции, теперь можно приступить к установке программного обеспечения на Linux-сервер. Настройка Linux-сервера будет производиться на примере дистрибутива Debian. В других дистрибутивах будут небольшие отличия, связанные с использованием других менеджеров пакетов. То есть команды установки пакетов в других дистрибутивах будут иными, а форматы файлов останутся такими же, как описано в этой главе.

Если вы недавно начали изучать Linux и осваиваться в этой огромной вселенной, то наверное, часто встречали термин Unix. Звучит очень похоже на Linux, но что же оно значит? Наверное, вам интересно чем отличается unix от linux. Ответ на этот вопрос зависит от того что вы понимаете под этими словами. Ведь каждое из них может интерпретироваться по-разному. В этой статье мы рассмотрим упрощенную историю Linux и Unix чтобы помочь вам понять что это и как они между собой связаны. Как всегда вы можете задавать вопросы или добавить дополнительную информацию в комментариях.

Свою историю Unix начал в конце 1960-х и в начале 1970-х в научно-исследовательских вычислительных лабораториях AT&T Bell Labs в Соединенных штатах. Вместе с MIT и General Electric исследовательская лаборатория Bell Labs начала разработку новой операционной системы. Некоторые исследователи были недовольны ходом разработки этой операционной системы. Они отошли от работы над основным проектом и начали разрабатывать собственную ОС. В 1970 году эта система получила название Unix, а два года спустя она была полностью переписана на языке программирования Си.

Это позволило распространять и портировать Unix на различные устройства и вычислительные платформы.

Так как Unix продолжал развиваться, AT&T начал продавать лицензии на использование ее в университетах, а также в коммерческих целях. Это означало что не все могли, как сейчас, свободно изменять и распространять код операционной системы Unix. Вскоре начало появляться много редакций и вариантов операционной системы Unix, предназначенной для решения различных задач. Самой известной из них была BSD.

Linux похож на Unix по функциональности и возможностям, но не кодовой базой. Эта операционная система была собрана из двух проектов. Первый - проект GNU, разработанный Ричардом Столлманом в 1983, второй - ядро Linux, написанное Линусом Торвальдсом в 1991.

Целью проекта GNU было создать систему похожую на Unix, но не зависящую от него. Иными словами, операционную систему, не содержащую код Unix, которая могла бы свободно распространяться и модифицироваться без ограничений, как свободное программное обеспечение. Так как свободное ядро Linux не могло работать само по себе, проект GNU объединился с ядром Linux, и так родилась операционная система Linux.

Конструировался Linux под влиянием системы Minix, потомка Unix, но весь код был написан с нуля. В отличие от Unix, который использовался на серверах и больших мэйнфреймах различных предприятий, Linux был рассчитан для использования на домашнем компьютере с более простым аппаратным обеспечением.

На сегодняшний день Linux работает на огромном количестве платформ, большем чем любая другая ОС, это сервера, встраиваемые системы, микрокомпьютеры, модемы и даже мобильные телефоны. Теперь будет более подробно рассмотрена разница linux и unix.

Что такое Unix

Термин Unix может относиться к таким понятиям:

  • Оригинальная операционная система, разработанная в AT&T Bell Labs, на основе которой развиваются другие ОС.
  • Товарный знак, написано заглавными буквами. UNIX принадлежит The Open Group, которая разработала набор стандартов для операционных систем - Single UNIX Specification. Только те системы, которые соответствуют стандартам могут законно называться UNIX. Сертификация не бесплатная и требует от разработчиков платить за использование этого товарного знака.
  • Все операционные системы зарегистрированы с именем Unix. Потому что они соответствуют вышеупомянутым стандартам. Это AIX, A/UX, HP-UX, Inspur K-UX, Reliant UNIX, Solaris, IRIX, Tru64, UnixWare, z/OS и OS X - да, даже те что работают на компьютерах Apple.

Что такое Linux

Термин Linux относится только к ядру. Операционная система не будет полной без настольной среды и приложений. Поскольку большинство приложений были разработаны и сейчас разрабатываются в рамках проекта GNU, полное название операционной системы - GNU / Linux.

Сейчас множество людей используют термин Linux для обозначения всех, основанных на ядре Linux, дистрибутивов. На данный момент самая новая версия ядра Linux - 4.4, версия 4.5 находится на стадии разработки. Смена нумерации релизов ядра с 3.х на 4.х состоялась не так уж давно.

Linux - это Unix подобная операционная система, которая ведет себя как Unix, но не содержит его код. Unix подобные ОС часто называют Un*x, *NIX и *N?X, или даже Юниксоидами. У Linux нет сертификации Unix, а GNU расшифровывается как GNU not Unix, так что в этом отношении Mac OS X больше Unix чем Linux. Но тем не менее ядро Linux и ОС GNU Linux очень похожи на Unix по функциональности, реализуют большинство принципов философии Unix. Это удобочитаемый код, хранение конфигурации системы в отдельных текстовых файлах, а также использование небольших инструментов командной строки, графическая оболочка и менеджер сеансов.

Важно заметить что далеко не все Unix подобные системы получили сертификацию UNIX. В определенном контексте все операционные системы, основанные на UNIX или на его идеях, называются UNIX подобными, независимо от того есть ли у них сертификат UNIX или нет. Кроме того, они могут быть коммерческими и бесплатными.

Надеюсь, теперь стало более понятно, чем отличается unix от linux. Но пойдем еще дальше и подведем итоги.

Основные отличия

  • Linux - свободная операционная система с открытым исходным кодом, а оригинальная Unix - нет, кроме некоторых ее производных.
  • Linux - это клон оригинального Unix, но он не содержит его код.
  • Главное отличие unix от linux, в том что Linux - это только ядро, в то время как Unix была и есть полноценной операционной системой.
  • Linux был разработан для персональных компьютеров. А Unix ориентирован в первую очередь на крупные рабочие станции и сервера.
  • Сегодня Linux поддерживает больше платформ чем Unix.
  • Linux поддерживает больше типов файловых систем чем Unix.

Как видите, путаница обычно возникает из-за того, что linux vs unix могут означать совершенно разные вещи. Какое бы значение ни имелось в виду, факт остается фактом - Unix был первым, а Linux появился позже. Linux родился из стремления к свободе программного обеспечения и мобильности, вдохновленный подходом Unix. Можно смело сказать что мы все в долгу перед движением свободного программного обеспечения, потому что мир был бы намного хуже без него.

Чтобы создать терминальный, файловый (FTP) или почтовый сервер на Linux, надо уметь работать в этой операционной системе. Иначе разобраться будет сложно. ОС не нужен мощный компьютер. Потому что она не расходует лишние ресурсы на графическое оформление. Дистрибутивы Линукса можно развернуть даже на старом ПК. Поэтому для создания различных серверов часто используют Linux или Ubuntu Server.

Об этом написано много различной литературы. Некоторые книги о Линуксе насчитывают тысячу страниц. Работать придётся через терминал и все команды вводить вручную. Но всё же вы сможете сделать небольшой Linux-сервер своими руками, который будет включать файловое хранилище, Web-сервисы и почтовый протокол.

Ubuntu Server создана на базе операционной системы Linux. Для её работы не нужен современный процессор, хорошая видеокарта или большой объём оперативной памяти. С Линукс можно развернуть сервер даже на старом ноутбуке. И в нём будут все нужные компоненты: почта, FTP, Web.

Скачать образ диска с Linux можно с сайта Ubuntu.ru. Выбирайте любую версию с Server (не Desktop!). Загрузка будет проходить через Torrent-клиент . Этот образ надо записать на болванку или флешку (с помощью LiveUSB). Также можно воспользоваться виртуальным приводом.

У Ubuntu упрощённый интерфейс. В нём нет никаких графических излишеств. Эта ОС прекрасно подходит, чтобы сделать Linux-сервер своими руками. С ней ресурсы компьютера будут использоваться для нужд домена. Ведь ей для работы нужно совсем немного.

Её установка проходит так:

  • Выберите язык и регион, в котором проживаете.
  • Придумайте имя администратора. Оно используется для управления сервером.
  • Также задайте имя пользователя в поле «Username for your account». Под этим аккаунтом вы будете общаться с техподдержкой Ubuntu.

Указываем имя пользователя в Ubuntu

  • Введите пароль. Подтвердите его.

Вводим пароль учетной записи

  • Укажите домен, если он есть. На нём будут находиться все сервисы: файловый (FTP), почтовый, хостинг для сайтов и так далее.
  • Подождите, пока установится система.
  • После этого она предложит дополнительные компоненты.

Вот список того, что необходимо для сервера Linux и его полноценной работы:

  • Open SSh. Используется для удалённого администрирования. Пригодится, если вы решите управлять сервисом с другого компьютера. Тогда на ПК с Линуксом можно будет отключить монитор и видеоадаптер.
  • LAMP. Комплекс утилит Linux, который включает Apache (Web-сервер). MySQL (базы данных) и PHP (язык программирования для CMS). Эти компоненты нужны для создания управляющего интерфейса.
  • Samba file server. Позволяет настроить обмен файлами между компьютерами. Если вам нужен FTP-сервер, выберите этот пункт.
  • Virtual Machine host. Устанавливайте, если собираетесь пользоваться возможностями виртуализации.
  • Print server. Сетевые принтеры.
  • DNS server. Система доменных имён. С ней можно распознать IP-адрес по имени компьютера и наоборот.
  • Mail server. Почтовый сервер.
  • PostgreSQL database. Объектно-реляционные базы данных.

Выберите то, что вам нужно, и подтвердите установку. При первом запуске надо будет ввести логин администратора и пароль. Откроется консоль. Она похожа на командную строку Windows или интерфейс операционной системы MS DOS.

Изначально вам надо будет проверить наличие обновлений. Введите команду «Sudo apt-get update» или «Sudo apt-get upgrade» без кавычек. После апдейта можно заняться настройкой всех компонентов серверов: FTP, почтового, Веб.

Для Ubuntu существует псевдографический интерфейс - Midnight Commander. Это аналог оболочки Norton Commander, которая разработана для системы MS DOS. С таким интерфейсом легче работать - всё нагляднее, чем в консоли.

Запуск терминала Linux

В современных Linux вместо консоли используется терминал. Чтобы в него зайти:

  1. Откройте «Приложения».
  2. Нажмите «Стандартные».
  3. Там будет «Терминал».

В него можно вводить команды так же, как в Ubuntu Server.

  • Чтобы установить компоненты LAMP (если их ещё нет), надо последовательно ввести команды «sudo apt-get update», «sudo apt-get install tasksel» и «sudo tasksel install lamp-server». После каждой нажимайте Enter.
  • Чтобы загрузить Open SSh, введите «sudo apt-get install openssh-server».
  • Чтобы поставить Samba file server, напишите «sudo apt-get install samba».

При установке MySQL из пакета LAMP нужно будет задать пароль администратора, для SQL.

Локальный Web-сервер

Для создания Web у сервера должен быть свой выделенный IP. Тогда после установки LAMP по этому IP-адресу будет доступна тестовая страница Apache. Это и есть будущий Веб. В дальнейшем на него можно будет поставить FTP, базы данных, почтовый протокол. Для настройки Web-сервера:

  • Установите phpMyAdmin. Для этого в терминале или в консоли введите друг за другом введите «sudo apt-get install phpmyadmin»

  • И потом «sudo service apache2 restart».
  • Компонент загрузится. Apache будет перезагружен. Дальнейшие действия зависят от версии операционной системы.

Если у вас Ubuntu 13.1 и выше, используйте команды:

  1. sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
  2. sudo a2enconf phpmyadmin
  3. sudo /etc/init.d/apache2 reload

Вбивайте их последовательно друг за другом, после каждой нажимайте Enter.

В Ubuntu 16.04, нужны другие указания:

  1. sudo apt-get install php-mbstring php-gettext
  2. sudo phpenmod mcrypt
  3. sudo phpenmod mbstring
  4. sudo systemctl restart apache2

После их ввода и автоматического перезапуска службы по адресу http:///phpmyadmin будет доступен веб-интерфейс.

  • Конфигурация и данные о ней находятся в папке сервера Apache «etc/apache2/». Apache2.conf - конфигурационный файл для дистрибутива
  • В директориях «mods-available»/«sites-available» и «mods-enabled»/«sites-enabled» находятся моды и сайты.
  • В Ports.conf расписаны прослушиваемые порты.
  • Если вы добавите после команды «sudo /etc/init.d/apache2» слово «Stop», Apache приостановит работу. Если «Start» - снова запустится. Если «Restart» - перезагрузится.
  • Чтобы самостоятельно выбирать путь для сохранения сайтов, последовательно введите в терминал «sudo a2enmod rewrite» и «sudo a2enmod userdir».

Каждый раз после внесения каких-либо изменений надо перезапускать службу командой «Restart».

Почтовый сервер

Чтобы создать почтовый сервер на Линукс, у вас уже должен быть зарегистрирован домен. Также нужно иметь статический IP.

  • Установите компонент Postfix. Для этого наберите в консоли «sudo apt-get postfix».
  • Когда он загрузится, напишите команду «sudo /etc/initd/postfix start». Сервис начнёт работать.
  • В Postfix уже прописаны параметры, которые нужны для полноценной работы с протоколом SMTP. Но всё же не помешает небольшая настройка.
  • Откройте файл /etc/postfix/main.cf.
  • Найдите в нём значение «mydomain =». После знака «=» напишите имя домена.
  • Потом отыщите «myhostname =». И введите имя машины.
  • Теперь почтовый сервер может отправлять письма другим компьютерам, которые находятся с ним в одной сети. Чтобы он мог посылать корреспонденцию и на другие домены в интернете, в файле «main.cf» найдите строчку «inet_interfaces =». Поставьте после неё слово «all».
  • В переменной «mynetworks =» пропишите диапазон адресов всех компьютеров вашей подсети (например, 127.0.0.0/8).

Если служба настроена верно, и выполнены все условия (постоянный IP-адрес, зарегистрированный домен), то Server сможет принимать и отправлять корреспонденцию. Если запись MX вашего домена ссылается на ваш хост.

Чтобы посмотреть логи ресурса, используйте команду «tail -f /var/log/mail/info». Чтобы получить от него сообщение, введите «mailq».

Файловый сервер

FTP-сервер Linux может понадобиться для обмена документами и загрузки файлов. Существует несколько версий таких ресурсов: vsFTPd, Samba, proFTPd.

Подробнее остановимся на vsFTPd. Его можно установить и запустить одной командой - «sudo apt-get install vsftpd». Дальнейшие настройки зависят от ваших предпочтений и от того, какой сервис вы хотите сделать. Для изменения параметров могут понадобиться права администратора.

  1. Сразу после загрузки программы система создаёт нового пользователя и добавляет в домашнюю директорию папку, которая предназначена для работы с серверным хранилищем. Также в каталоге «etc» появляется файл «ftpusers». Туда можно добавлять пользователей, которым запрещён доступ к файлам.
  2. После установки лучше сменить директорию, в которой должны находиться файлы, в папку «var». Для этого от имени администратора напишите команду «usermod -d /var/ftp ftp && rmdir /home/ftp».
  3. Создайте новую группу пользователей. Например, «userftp». Напечатайте в консоли «addgroup userftp».
  4. Добавьте в неё новый аккаунт (для простоты назовём пользователя и группу одинаково). Используйте команду «useradd -a /var/ftp -g userftp userftp». Она заодно создаёт пользователя. Чтобы включить в группу уже существующий никнейм, вместо «useradd» напишите «usermod».
  5. Надо придумать пароль новому пользователю. Введите в терминале «passwd userftp».
  6. Напечатайте «chmod 555 /var/ftp && chown root:userftp /var/ftp», чтобы предоставить аккаунту доступ к корневой папке файлового сервера.
  7. Теперь создайте публичную директорию. Последовательно введите «mkdir /var/ftp/pub» и «chown userftp:userftp /var/ftp/pub».

Изначально FTP запускается в автономном режиме. У неё есть скрипт, который играет роль демона. При такой функциональности доступно несколько команд. Они вводятся после строки «sudo service vsftpd».

  • Stop и Start. Отключение и включение.
  • Restart и Reload. Перезапуск. Нужен для применения новых настроек. Разница между командами в том, что во второй перезагрузка происходит без полного отключения.
  • Status. Информация о состоянии.

Дальнейшая настройка сервера заключается в переписывании файла конфигурации, который находится в etc/vsftpd.conf. У него простая и понятная структура. Разобраться в нём достаточно просто. Хотя для этого нужны определённые знания. Перед изменением этого файла имеет смысл сделать его резервную копию. Чтобы в случае выявления ошибок можно было всё восстановить. Введите команду «cp /etc/vsftpd.conf /etc/vsftpd_old.conf» и информация будет сохранена.

После этого можно приступать к редактированию.

  • В параметре «listen=» напишите «YES». Тогда сервер будет работать в независимом режиме.
  • «Local_enable» разрешает вход локальным пользователям.
  • «Write_enable» даёт им доступ в домашние каталоги.
  • «Anonymous_enable». Можно ограничить права анонимных пользователей, если поставить «NO». Также есть опция «no_anon_password» - анонимные входят без пароля. Её тоже можно запретить.

Если вы хотите делать публичный сервер, то после строки «listen» надо добавить несколько дополнительных параметров.

  • «Max_clients». Количество одновременных соединений.
  • «Idle_session_timeout» и «data_connection_timeout». Таймауты сессии.
  • «Ftpd_banner». Приветственное сообщение для посетителей. Можно написать, к примеру, «Hello!».

Терминальный сервер

Терминальный сервер на Linux предназначен для предприятий и офисов , все компьютеры в которых объединены в одну сеть. Очень удобно, когда с любого ПК (если у него есть доступ) организации можно зайти на терминал. Это открывает большие возможности для удалённого администрирования.

Для такой задачи подходит LTSP - Linux Terminal Server Project. Программа есть в стандартном пакете Ubuntu. Чтобы её установить:

  1. Введите команду «ltsp-server-standalone».
  2. Потом напишите «apt-get update && apt-get install ltsp-server-standalone».
  3. Подождите, пока всё загрузится и обновится.
  4. Теперь надо поставить клиентскую систему. Напечатайте «ltsp-build-client».
  5. Затем «ltsp-build-client -dist trusty -arch i386 -fat-client-desktop lubuntu-desktop».
  6. Используйте команду «debootstrap», и дистрибутив автоматически развернётся в директорию «opt/ltsp/i386».

Linux Server может работать даже на слабых ПК. Поэтому его очень часто используют для создания серверов и удалённого администрирования. На этой операционной системе делают почтовые сервисы, FTP-хранилища, терминалы.