Системное администрирование UNIX. С чего начать

Вопрос, на который частенько ищут ответ новички решившие попробовать для себя системное администрирование UNIX. Опускаясь до частностей и базируясь на своем опыте предcтавляю Вашему вниманию несколько пунктов как я начинал изучать системное администрирование FreeBSD. Для меня, windows-администратора, каковым  я был на старте своей карьеры в 2000 году переход с графического интерфейса в командную строку дался не просто. Я называю это «разрыв шаблона»

Для начала: я — самоучка и у меня нет сертификатов. Начал с того, что задался целью получить root на FreeBSD-сервере фирмы где я работал, который администрировал представитель провайдера. Так случилось, что в этот период я познакомился со знающим человеком, который в дальнейшем меня консультировал. Купил книжку «Системное администрирование Unix» и началось

Общая информация

  • Купите книгу, которая Вам понравится. Это обязательно. Текст из книги воспринимается лучше, чем с экрана
  • Хорошо, если бы у Вас был знакомый человек, которого Вы можете спросить в случае чего. Он направит и подскажет. А это и экономия времени и не отобьет желание продвигаться дальше. Начинайте изучать тот дистрибутив, который знает Ваш знакомый. Linux и FreeBSD имеют много общего и перейти с одной системы на другую потом не будет проблемой
  • Пробовать лучше на реальном железе. Если все пойдет хорошо, то можно сразу внедрять в сеть предприятия. На живых примерах учиться лучше, поэтому — внедряйте
  • Пункты, которые не первоочередны я отметил оливковым цветом
  • Все ниженаписанное касается сервера FreeBSD
  • Все действия должны проводиться в командной строке. Если Вы хотите научиться правильно, то не устанавливайте веб-клиенты администрирования, такие как webmin

Система

  • Скачать с сайта дистрибутив предпоследней версии, установить его, и обновить до текущей версии используя два разных метода:
    • freebsd-update
    • перекомпиляцией ядра и мира (смотреть 11 шагов из /usr/src/Makefile)
  • Освоить несколько базовых команд: ls, cd, cp, rm, mount, df, dh, top, more, cat, ps, kill, killall, chmod, chown, chgrp
  • Освоить редактор vi. Да-да-да, именно vi. Для начала базовые функции: режим редактирования/командный режим, копировать/удалить строку, удалить символ справа/слева, слово справа/слева, выход с записью, выход с перезаписью и т.д. Кто не поленится и освоит, тому notepad станет в тягость. Кстати под windows есть сборка vi
  • Сконфигурировать, собрать и установить кастомное ядро (потребуется vi)
  • Отработать действия после пропадания электричества. Зайти в однопользовательский режим (single-user mode). Разобраться с fsck
  • Добавить/удалить тестового пользователя. Команды adduser, rmuser
  • Редактирование учетной записи пользователя. Команда chsh
  • Файлы из папки /etc: master.passwd, passwd
  • Логирование. Файл syslogd.conf. Команды tail, more, cat. Фильтр по критерию. Команда grep
  • Запуск программ. Скрипты в rc.d
  • Запуск программ по расписанию. Таблицы crontab. Разрешения
  • Поиск в файловой системе. Команды find, which, locate

Доступ к системе

  • Петля, внутренний, внешний сетевые интерфейсы. Команды ifconfig, route
  • Удаленный доступ к системе при помощи telnet, ssh
  • Сервис inetd
  • Файервол ipfw
  • NAT. Как его реализовать при помощи ipfw и ipnat

Установка программ

Перед установкой нужное ПО скачивается с интернета из репозиториев, о которых Вы скорее всего даже не будете иметь понятия. Но, чтобы это стало возможным нужно указать в /etc/resolv.conf днс-сервер хотя бы одного провайдера

  • Пакетный менеджер pkg
  • Дерево портов
  • Поиск нужного в портах. Команды make search key, make search name
  • Установка программ. Комадны make, make install, make clean
  • Програма portupgrade
  • Почему установка через порты лучше? Попробуйте ответить на этот вопрос сами

DNS

  • Файл resolv.conf
  • Кеширующий dns-сервер unbound
  • Сервер доменных имен nsd. Bind не предлагаю, с версии 10 он переписан на питоне и считается неприлично тяжелым

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

Прокси-сервер Squid

  • Прозрачный и кеширующий прокси-сервер. В чем разница
  • Ограничение доступа пользователям
    • по ip-адресам
    • к ненужным сайтам
    • по времени
  • Статистика похождений пользователей. Программы Calamaris, Sarg, Sams (для просмотра статистики в веб-браузере, нужно будет поднять веб-сервер Apache или Nginx+php-fpm. На данном этапе это может подождать)
  • Консольный веб-браузер lynx или elinks
  • Настройка прокси для пользователей домена при помощи GPO
  • Аутентификация пользователей из AD (потребуется Samba или Kerberos)
  • Установка и настройка антивируса

После внедрения с сеть прокси-сервера Ваши пользователи уже не должны напрямую ходить в интернет, а только через прокси. У Вас настроена отчетность, Вы понимаете кто и куда ходит (если один пользователь — один компьютер, либо если это терминальные пользователи, то для персонификации придется настраивать аутентификацию пользователей из AD) и в любой момент можете предоставить начатьству статистику

Веб-сервер

  • Apache или Nginx? Для офисного веб-сервера это не принципиально. Но я бы сказал, что будет полезно ознакомиться с обоими
  • php. Понадобится в 90% случаев. Например, если Вы решили администрировать базы данных через веб-клиент
  • Просмотр отчетности прокси-сервера
  • Интранет сайт компании

Установив и настроив веб-сервер Вы сделали себе задел на будущее

Базы данных

  • SQL базы данных Mysql и Postgresql. Ознакомиться с обоими
  • Программы администрирования баз данных. phpMyAdmin, phpPgAdmin, HeidiSQL
  • Доступы к базе данных
  • Операторы SELECT, INSERT, UPDATE, DETELE, UPSERT
  • Резервное копирование баз данных

На этом этапе это минимально необходимый набор знаний, которые помогут в дальнейшем. Для офисного использования не принципиально, какую базу данных Вы выберете, но по опыту скажу, что mysql все же лучше, ибо много программ заточено именно под него. Хотя можете установить сразу две и пробовать настраивать другое ПО сразу для работы в двух базах

noSQL базы данных на этом этапе скорее всего не потребуются, если только Вы не достадочно опытный администратор или веб-мастер и в ближайшей перспективе планируете строить highload веб-сервер

Почта

  • Сервисы smtp, imap, pop3
  • Postfix или Exim? Выбирайте по вкусу и пробуйте
  • Courier-imap или Dovecot?
  • Учетные записи пользователей системные или виртуальные? Виртуальные удобнее, да и база данных у Вас уже настроена и работает. Если вдруг потребуется прогонять входящую почту через фильтр procmail, то придется вводить системные учетные записи, потому что с виртуальными procmail не работает
  • Настройка шифрования. Сервисы smtps, imaps, pop3s
  • Настройка smtp-авторизации
  • Установка и настройка антивируса и антиспама
  • Установка веб-интерфейса для работы с почтой
  • Фильтр входящей почты procmail. Необязательно, но ознакомиться стоит

Сетевые сервисы

  • Samba. Потребуется для squid если нужна аутентификация пользователя в AD. Может выступать в роли дополнительного домен-контроллера. Или Вы решили вынимать все вложения из входящих почтовых сообщений, складывать их в определенные папки и сделать их доступними для windows-компьютеров по сети
  • FTP. В дальнейшем может потребоваться. Если так, то советую посмотреть в сторону proftpd. Если нужно «уже», то смотрим в файл inetd.conf и ftpusers
  • NFS. Ознакомительно, врядли потребуется если у Вас всего лишь один юникс-сервер в сети
  • VPN. Для доступа внешних пользователей к внутренним ресурсам сети. Например: к терминальному windows-серверу, почте и т.д.

Мониторинг

  • Munin, Zabbix

Вот вкратце и все, что нужно в обычном офисе. Все это я прошел сам на протяжении нескольких лет

Дальнейшие планы такие как скриптописательство, тонкая настройка mysql и выбор движка, кастомизация ядра системы и настройка параметров sysctl, виртуальные каналы между офисами и другое — это потом, по потребности

Мои источники

  1. Книга «FreeBSD. Искусство достижения равновесия» Майкл Эбен, Брайан Тайэен
  2. Книга «Mysql» Поль Дюбуа
  3. freebsdguide.ru
  4. Ну и гугл никто не отменял

Удачи!

Александр Черных

системный администратор

Статьи по теме

4+