LXF93:Спецрепортаж

Материал из Linuxformat.

Перейти к: навигация, поиск

Содержание

Арсенал сисадмина

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

Американский народный певец Эни Ди Франко [Ani DiFranco] сказал однажды, что каждый человек – актер. Ну, а каждый пользователь Linux – системный администратор. Если вы не просто шастаете в Интернете да читаете электронную почту, то вам, несомненно, приходилось использовать командную строку, устанавливать дополнительные пакеты и связывать свой компьютер с остальным миром через сеть.

Это – задачи системного администратора, и существует масса способов упростить его труд. Вот мы и свели вместе лучшие подсказки и советы, какие только смогли накопать, чтобы помочь вам в администрировании вашей Linux-системы, будь то одна машина или целая сеть компьютеров. А если системное администрирование – ваша работа, вы найдете здесь кучу такого, что поможет вам получить повышение.

Мы разделили статью на три части. Первая часть отведена малым сетям, состоящим менее чем из пяти машин. Большинство советов пригодится и для одной машины, и уж несомненно они будут полезны в случае небольшой домашней сети. Вторая часть немного более амбициозна, она касается уже сетей масштаба малого бизнеса. А на закуску мы припасли несколько рекомендаций для грандиозных Linux-сетей, которым не обойтись без небольшого IT-отдела. Чтобы вам было проще найти требуемый материал, мы также разбили все советы на три категории: работа с сетью, безопасность и производительность.

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

Сети менее чем из пяти машин

Безопасность: Управление пользователями

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

Каждый дистрибутив Linux использует группы немного по-своему, но теория у них одинаковая. Взглянув на файл /etc/group, можно увидеть список из десятков групп, и некоторые сопровождаются несколькими именами пользователей. Вы можете найти группу ‘cdrom’, рядом с которой будет список всех пользователей, являющихся членами этой группы и, следовательно, имеющих доступ к CD-приводу в вашей системе. Чтобы отнять право доступа, просто удалите имя пользователя из этой группы.

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

Производительность: Переход на журналируемую файловую систему

Если на вашей машине все еще присутствует старая файловая система ext2, вы можете получить значительное повышение производительности, если перейдете на ext3. Чтобы проверить, какие файловые системы используются в разных разделах вашей системы, откройте /etc/fstab - файловая система указана там в третьем столбце (под ‘type’). Использование ext3 создает сразу несколько преимуществ. Дело не только в лучшей производительности, но еще и в том, что ext3 – журналируемая файловая система: каждое обращение к жесткому диску заносится в «журнал». В случае сбоя журнал можно использовать для восстановления файловой системы в прежнее работоспособное состояние – будем надеяться, без потери данных.

Первый шаг при преобразовании ext2-раздела в ext3 состоит в создании журнала как такового. Для этого, действуя от имени системного администратора, введите в командной строке tune2fs -j /dev/hda1. Вместо hda1 подставьте имя устройства для вашего раздела, указанное в файле /etc/ fstab; операцию можно проделать как для смонтированного, так и для размонтированного разделов. Последний шаг – заменить в файле /etc/fsab тип файловой системы на ‘ext3’.

Работа с сетью: Туннелирование портов через SSH

Ключевой момент безопасности сервера - держать как можно меньше открытых интернет-портов. Но блокирование доступа к вашим серверам из Интернета посредством брандмауэра еще не значит, что будут они недоступны для вас. Используя SSH-соединение, вы можете туннелировать порты, которые использует ваш сервер в удаленной локальной сети, на порт машины, за которой сидите. Это - великолепное решение, если нужно, например, получить доступ к web-серверу, находящемуся за брандмауэром.

Буква ‘L’ - вот разгадка этого волшебства. Использование опции -L в командной строке SSH свяжет удаленный порт с локальным. Например, если вам нужно пробросить порт протокола удаленного доступа к рабочему столу (обычно это 5901), введите следующее: ssh -L 5901:localhost:5901 remote_ip После этого вы сможете обращаться к удаленному компьютеру, подключая VNC-клиент к порту 5901 локального компьютера. При этом данные будут переданы через SSH-соединение. Вам следует только иметь на брандмауэре открытый SSH-порт (обычно, 22); кроме того, при такой передаче данные не могут быть подделаны.

Использование Live CD для сохранения системы

Будучи пользователями Linux, мы находимся в благоприятном положении, ибо имеем выбор из нескольких различных Live CD, позволяющих вылечить захворавшую систему. Live CD - идеальное решение для этой задачи, так как зачастую достаточно одного диска со специальными утилитами и приложениями, необходимыми для реанимации вашего компьютера. Даже некоторые восстановительные утилиты Windows применяют Linux Live CD для загрузки поврежденной системы «от Microsoft»

Вот три лучших:

Darik’s Boot and Nuke

Маленький 2-МБ ISO-образ, который можно загрузить с CD или даже с дискеты. Dban тщательно удалит все данные на жестких дисках компьютера, и всем, кто позже получит к нему доступ, будет фактически невозможно узнать, что содержалось на этой машине. Идеальный вариант, если вы хотите подарить ваш компьютер, отдать его в другой отдел или попросту выбросить. http://dban.sourceforge.net

GParted

Один из наиболее популярных Live CD, поскольку выполняет те же задачи, что и пакеты, стоящие ощутимых денег. Позволяет создавать новые разделы на вашем жестком диске, менять размеры уже существующих и форматирменных файловых систем. Это также подходящий инструмент для восстановления, если вам не удается запустить вашу ОС, поскольку загрузочное меню настроено так, чтобы позволить вам загрузиться с любого доступного диска. http://gparted.sourceforge.net

SystemRescueCd

Как дистрибутив Linux «все-в-одном», со всевозможными утилитами для оживления вашей системы, SystemRescueCd сложно превзойти. Наряду с редакторами разделов и программами создания дисковых образов, настройщиками сети и тестерами оборудования, имеется также целый выводок утилит для починки файловых систем. Все это, плюс удобный рабочий стол Linux, означает, что диск предлагает наилучшую возможность излечить компьютер при помощи технологии Live CD. www.sysresccd.org

Сети менее чем из пяти машин (продолжение)

Производительность: Ускорение загрузки системы

Ожидание появления рабочего стола Linux бывает тягостным, особенно если вам нужно всего лишь проверить почту. Именно по этой причине многие из нас упорно отказываются выключать компьютер в обеденный перерыв или вечером. Для решения этой проблемы в Ubuntu Edgy Eft была введена система Upstart, заменившая init, но мы почти не заметили прироста в скорости запуска.

Проблема загрузки Linux состоит в том, что первый процесс, запускающий все остальные, делает это последовательно, и когда очередной процесс ждет какого-либо события, остальные процессы стоят. Вроде улицы с односторонним движением: приходится ждать, пока сетевым процессам перед вами присвоят IP-адрес. Решение - выполнять как можно больше процессов параллельно. К этому-то и стремится InitNG, гордо назвавшийся «процессом инициализации нового поколения»: при начальной загрузке он способен запускать параллельно несколько процессов. InitNG выполняется на очень низком уровне, так что рекомендуем использовать готовый пакет для вашего дистрибутива и устанавливать его только через пакетный менеджер. Не считая Ubuntu, пакеты InitNG имеются для всех распространенных дистрибутивов.

Производительность: Быстрый запуск приложений

Если скорость загрузки вашей системы - это повод взгрустнуть, то время запуска некоторых приложений определенно усугубляет проблему. И мы имеем в виду не только OpenOffice.org. Если сложить все те секунды, которые мы что ни день тратим на ожидание - хоть там браузера, хоть почтового клиента - времени вполне хватит заварить чашку чая и вытащить из коробки печенье. Вы удивитесь, но можно кое-что сделать для ускорения этого процесса (мы не про чай: хорошая заварка спешки не допускает). Утилита prelink ускоряет запуск приложений. Большую часть времени процедура загрузки приложения занимается поиском разделяемых библиотек, образующих массивную сеть зависимостей, и зачастую одни библиотеки базируются на других. Библиотеки компонуются с исполняемым файлом в процессе старта вашего приложения. Prelink определяет зависимости загодя, тем самым урезая повторный процесс их вычисления. Установите пакет Prelink для вашего дистрибутива и откройте в текстовом редакторе /etc/default/prelink – вам следует только убедиться, что там содержится строка ‘PrelinkING=yes’.

Prelink также установит небольшой скрипт, запускающийся ежедневно из /etc/ cron.daily/prelink. Вам потребуется вручную запустить его один раз, после установки, для инициализации базы данных Prelink; поработает он долгонько, но потом ежедневных проверок вы даже и замечать не будете. Prelink уменьшил время запуска нашего OOo Writer с 25.027 секунд до 8.943.

Безопасность: Требуйте приличных паролей

Ненадежные пароли пользователей чреваты серьезной опасностью для вашей системы. Если пользователей не слишком много, то при локальной работе проблем не будет. Однако большинство из нас использует SSH для удаленного соединения, а при этом учетные записи ваших пользователей постоянно находятся под угрозой со стороны злонамеренных машин. Тут мало простой просьбы придумывать пароли получше: необходимо принудить их быть надежными. К счастью, простой заменой парольного модуля (Pluggable Authentication Module, PAM), используемого по умолчанию, на более строгий можно заставить ваших пользователей выбирать пароли правильно. PAM используется в качестве механизма аутентификации для всех видов ежедневных задач, включая проверку пароля при входе в систему. Модуль, который вам нужен, называется Passwdqc, и его следует установить через менеджер пакетов вашего дистрибутива. После этого останется только изменить настройку PAM, чтобы использовать новый модуль вместо старого. Откройте файл common-password (он обычно находится в каталоге /etc/pam.d), раскомментируйте строку, начинающуюся с password’, и вставьте вот что: password required pam_passwdqc.so enforce=users

Готово. Новый модуль даже будет сам предлагать надежные пароли вашим пользователям.

Работа с сетью: Разделите файлы с пользователями Windows.

Если в вашей сети несколько машин, есть вероятность того, что некоторые из них работают под Windows. А тогда вам, наверное, захочется использовать файлы совместно.

Это - задача для Samba. Она включена во все основные дистрибутивы, но серверная часть, необходимая, чтобы пользователи Windows видели ваши файлы, устанавливается редко. Используя менеджер пакетов вашего дистрибутива, инсталлируйте пакеты с именами samba или samba-server. Многие дистрибутивы заодно установят панель управления для создания Samba-пользователей и настроят Samba для совместного доступа только к домашнему каталогу пользователя, так что ему понадобится учетная запись и на Windows- машине, и на сервере Linux. Удобно иметь одинаковые имя пользователя и пароль, хотя можно предусмотреть, чтобы Windows требовала их ввода при соединении. Чтобы Linux-машина появилась в сетевом окружении Windows, надо убедиться, что имя рабочей группы, определенное в файле конфигурации Samba (/etc/samba/smb.conf), совпадет с используемым в Windows.

Безопасность: SSH без паролей

Мы уже писали, что использование SSH без паролей очень удобно. Здесь, в Linux Format, SSH применяется практически везде, будь то простой удаленный доступ, управление локальными учетными записями, безопасная передача файлов по SFTP или туннелирование портов с удаленного узла на локальный. SSH жизненно важен для управления Linux-сетью, и удаление пароля из ежедневной рутинной работы не только упростит управление ею, но и устранит самую большую угрозу для безопасности вашего SSH-сервера: подбор пароля. «Беспарольный» SSH использует пару ключей: один - общедоступный, а другой - закрытый. Вопреки интуиции, именно клиент хранит закрытый ключ, а сервер использует открытый ключ для подтверждения личности клиента (единственного обладателя закрытого ключа).

Вы можете создать как закрытый, так и открытый ключи, введя ssh-keygen -t dsa. Вас попросят ввести парольную фразу. Если вы ничего не введете, соединение будет беспарольным, но если вам небезразлична безопасность, то использование парольной фразы в комбинации с парой открытый-закрытый ключ - это самая высокая степень защиты, которую только может дать SSH. В завершение следует скопировать файл id_dsa.pub из каталога ~/.ssh в ~/.ssh/ authorized keys на SSH-сервере. Оба каталога .ssh обязаны иметь права доступа 644 (chmod 644 ~/.ssh), иначе SSH откажется работать, выдав маловразумительное сообщение.

Советы

Вильям фон Хаген [William von Hagen] выбрал свой любимый совет из своей книги Linux Server Hacks, Том 2.

«Совет 94, «Восстановление данных с поврежденных дисков», возможно, мой самый любимый, потому что нет ничего трагичнее потери данных», - говорит фон Хаген. «Резервные копии обычно слегка отстают от времени (но все их делают, правда?). Здесь обсуждаются утилиты восстановления/исправления для разных типов файловых систем и дается несколько дельных подсказок по починке файловых систем ext2/3. Затронут также вопрос клонирования наиболее поврежденных дисков с использованием улучшенной версии dd ddrescue, http://ftp.gnu.org/gnu/ddrescue »

«Прежде всего совет касается дисков, содержащих файловые системы, а не физические или логические тома, но с ними бы справился тоже. Способность восстанавливать данные через этот механизм отражает такие основы Unix/Linux, как доступ непосредственно к устройству и принцип «все является файлом» - и нет ничего милее, чем вновь созерцать свои данные, обретенные после сбоя накопителя.»

Если в файловой системе возникла проблема, вы обычно начинаете видеть загадочные сообщения об ошибках при каждом использовании определенного диска или его раздела (взгляните в /var/log/messages, если думаете, что вы что-то упустили). Фон Хаген советует первым делом проверить целостность файловой системы, используя непопулярную команду fsck, однако вначале вам следует получить доступ к отмонтированной файловой системе. Самый простой способ достичь этого - загрузиться с Live CD. Ваша версия команды fsck зависит от формата вашей файловой системы, но большинство современных дистрибутивов используют fsck.ext3 для файловой системы ext3, более старые версии используют либо fsck.ext2 для ext2, либо fsck.reiserfs для ReiserFS. Например, команда fsck.ext3 /dev/ hda1 проверит первичный раздел первого IDE-диска, отформатированного под ext3.

Затем фон Хаген объясняет, как воссоздать суперблок диска. «Суперблок содержит основные сведения о файловой системе, включая первичные указатели на блоки с информацией о файловой системе (называемые индексными дескрипторами)», говорит он. «К счастью, когда вы создаете файловую систему ext2 или ext3, соответствующая утилита (mke2fs или символическая ссылка на нее под именем mkfs.ext2 или mkfs.ext3) автоматически делает резервные копии суперблока диска, просто на всякий случай.»

«Можно указать программе e2fsck проверять файловую систему, используя один из этих альтернативных суперблоков, при помощи опции -b, за которой следует указать номер блока этого альтернативного суперблока внутри проблемной файловой системы. Первый из альтернативных суперблоков обычно создается в блоке 8193, 16384, или 32768, в зависимости от размера вашего жесткого диска» Полагая, что диск большой, фон Хаген пытается использовать как альтернативный последний из этих блоков fsck.ext3 -b 32768 /dev/hda1

Сети от 5 до 20 машин

Безопасность: Установка Tripwire

Чтобы знать о каждой осуществленной атаке на вашу систему попробуйте Tripwire [мина-растяжка - англ.], систему обнаружения вторжений. Tripwire хранит уникальный хэш для каждого системного файла, установленного на вашем сервере, и раз в день сверяет важные системные файлы со своими хэша-ми в базе данных. Если что-нибудь изменилось, хэш не совпадет, и Tripwire предупредит вас об этом.

Установка Tripwire очень проста, но очень важно сделать это в нужный момент. Незачем включать в первое сканирование сомнительные двоичные файлы! В идеале Tripwire устанавливается на свежую инсталляцию, содержащую только официальные заплатки безопасности для вашей системы. Установив пакет Tripwire, запустите простой настроечный скрипт.

Tripwire требует ключ узла для аутентификации сервера и локальный ключ для блокирования файлов. Затем следует инициализировать базу данных хэшей командой tripwire --init и ввести локальную парольную фразу. После этого проверьте целостность вашей системы командой tripwire --check. При сигнализации о проблеме в случае, когда вы доподлинно знаете, что ничего не менялось, наверное, следует подправить файл политики, etc/tripwire/twpol.txt.

Работа с сетью: Слежение за трафиком

Широкополосный доступ – дорогая штука. Подобно бухгалтеру, озирающему недреманным оком финансы компании, системный администратор должен точно знать, как этот ресурс расходуется вашей сетью. Утилита для данной работы называется ntop. Будучи запущенной, она анализирует каждый исходящий и входящий пакет данных, представляя результат в виде набора таблиц и круговых диаграмм на собственном настраиваемом web-сервере. Если ntop оставить работать на вашем сервере, вы сможете выстроить точную картину использования данных вашей сетью: самые занятые дни и времена суток, наиболее популярные соединения, а заодно и выяснить, не злоупотребляет ли кто-нибудь доступом.

Менеджер пакетов вашего дистрибутива должен поддерживать установку ntop. Если процесс не запускается автоматически, скомандуйте /etc/inid.d/ntop start . Просмотр данных на сервере, где работает ntop, осуществляется web-браузером через порт 3000. Нередко сервер имеет несколько сетевых адаптеров; тогда добавьте дополнительные сетевые интерфейсы, приписав -i ath0 к команде ntop. Вместо ath0 подставьте имя вашего второго сетевого интерфейса, или список имен, если их больше двух. Используйте то же имя для интерфейса, которое появляется, когда вы запускаете ifconfig.

Производительность: Оптимизация Samba

Если в вашей системе совместно используются файлы через Samba, то вы, наверно, уже знаете, что это может стать узким местом для производительности. К счастью, существует множество способов ее тонкой настройки, они помогут вам передавать файлы пользователям быстрее.

Одна из главных проблем возникает, когда к вашему серверу подключается несколько машин с Windows. Это происходит из-за способа реализации сетевого протокола. При настройке Samba по умолчанию любая большая сеть будет испытывать проблемы, так как каждый клиент норовит оповестить о своей доступности всю сеть. Решение - убедиться, что вы используете только один Samba-сервер на каждую подсеть, и добавить в файл конфигурации Samba (обычно /etc/smb/samba.conf) этого сервера опцию wins support = yes.

Однако самый большой выигрыш в производительности может быть достигнут благодаря применению условных блокировок (opportunistic locking, oplocks).

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

Тем не менее, включение условных блокировок способно существенно украсить жизнь, и его можно активизировать поре-сурсно. Неплохо, например, включить его для домашних каталогов ваших пользователей, поскольку некоторые файлы домашнего каталога часто интересны только его хозяину. Просто добавьте следующие строки либо в глобальный, либо в локальный раздел файла конфигурации Samba (/etc/Samba/smb.conf): oplocks = true kernel oplocks = true level2 oplocks = true

Работа с сетью: Блокирование вредных хостов

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

Оборотная сторона такого запрета - если вдруг когда-нибудь вам понадобится доступ с одного из таких адресов, у вас ничего не выйдет; но пока вы не заблокируете целый континент IP-адресов, маловероятно, что такое случится. Ключом к блокированию адресов служит файл конфигурации /etc/hosts.deny. Всем перечисленным там IP-адресам будет запрещено соединяться с вашим сервером. Просто скопируйте и вставьте проблемные адреса из файла /var/log/ auth.log, где перечислены попытки входа в систему. Возможно также использовать доменные имена, равно как и сам домен, чтобы заблокировать все соединения из этого домена – метод полезен, если обнаружено множество попыток, исходящих от одного провайдера или учреждения.

Если вы предпочитаете разрешительный доступ с ограниченного круга машин, лучше заблокировать сразу все соединения в файле hosts.deny, добавив следующую строку:

ALL: ALL а затем перечислить все разрешенные IP-адреса в файле /etc/hosts.allow – антиподе файла hosts.deny. Все указанные там адреса будут перекрывать установки файла запретов.

Если число попыток SSH-соединений столь огромно, что скопировать все нехорошие IP-адреса вручную не представляется возможным, можно установить пакет denyhosts. Этот демон просматривает ваш файл auth.log и молча подсчитывает число попыток соединения со всех IP-адресов, а при достижении определенного порога добавляет их в hosts.deny. Это – великолепный способ остановить атаки по словарю на пароли ваших пользователей, так как удаленное соединение на четвертой или пятой попытке будет заблокировано демоном hostdeny.

Безопасность: Удобное резервирование с BackupPC

У каждого есть в запасе история о потере драгоценных данных из-за сбоя жесткого диска. Но, похоже, неважно, были ли эти данные утраченной симфонией Бетховена или итогом тяжкой работы целого года: большинство из нас снова сползает к привычке создавать резервные копии лишь при крайней необходимости. Чтобы обойти эту проблему, резервирование ваших данных должно быть как можно проще, и существуют десятки утилит, пытающихся это осуществить. Хороший пример -Advanced Maryland Automatic Network Disk Archiver (Amanda), она легко справляется с компьютерной сетью умеренных размеров, хотя немного капризна в использовании.

Возможная альтернатива - BackupPC (backuppc.sourceforge.net) в особенности, если вы сумеете найти пакеты для вашего дистрибутива Linux. Его легко и установить, и использовать, а управлять им можно через его собственный web-интерфейс. После установки прежде всего надо изменить опцию в файле config.pl, который обычно располагается в каталоге /etc/backuppc. По умолчанию для передачи резервных копий он использует Samba, ради совместимости с Windows, однако для машин Linux гораздо лучше подходит утилита rsync Найдите ‘$Conf{XferMethod}’ и измените ‘smb’ на ‘rsync’

Важнейший момент в настройке BackupPC - обеспечение возможности SSH-входа пользователем ‘backuppc’ на сервере в учетную запись root на клиенте без необходимости вводить пароль. Скопируйте пару рабочих беспарольных ключей из двух других учетных записей в каталог /var/lib/backuppc/.ssh как на сервере, так и на клиенте - директории должны быть доступны для BackupPC. Остается только добавить IP-адрес каждого из ваших клиентов в файл /etc/backuppc/hosts и установить пакет backuppc на каждой из этих машин.

Наконец, запустите web-браузер и зайдите на web-интерфейс администратора для BackupPC на localhost/backuppcВам потребуется ввести в качестве имени пользователя ‘backuppc’, а пароль вам сообщался в процессе установки пакетов. Через этот web-интерфейс вы теперь можете соединяться со всеми клиентами, где запущен BackupPC, удаленно резервировать их данные, составлять график создания удаленных резервных копий и восстанавливать данные

Сети более чем из 20 машин

Производительность: Настройка пользовательских квот

Одна из наиболее важных задач системного администратора -равномерное распределение системных ресурсов по потребностям. Если одну и ту же машину у вас использует более десятка человек, то без активного контроля один пользователь может забрать львиную долю дискового пространства и процессорного времени, даже сам того не подозревая. К счастью, с помощью PAM наложить ограничения на учетные записи пользователей, исходя из их потребностей, сравнительно несложно. Как и в случае навязывания надежного пароля, повелителем пользователей оказывается снабженный нужным модулем PAM.

Модуль, управляющий квотами пользователей, называется Pam_limits. В отличие от модуля для надежных паролей, Pam_limits скорее всего установлен по умолчанию, но его все равно надо активизировать через соответствующий файл конфигурации PAM. PAM использует отдельный файл настройки для каждого поддерживаемого сервиса, и типичная установка включает файлы конфигурации для Samba и SSH. Для локальных пользователей, которые заходят в систему через менеджер входа Gnome, следует использовать файл конфигурации GDM. Через него, например, легко ограничить удаленных пользователей, одновременно оставив систему достаточно открытой для локальных. Просто добавьте в него следующее:

session required /lib/security/pam_limits.so Ограничения как таковые задаются в файле /etc/security/limits.conf, используемом всеми сервисами аутентификации PAM. Формат этого файла следующий: <домен> <тип> <величина> <значение>

В качестве домена может выступать имя пользователя или группы, а ‘тип’ (имеется в виду тип ограничения) может принимать значения «жесткий» (hard) или «мягкий» (soft). Разница между ними в том, что жесткий предел абсолютен и не обсуждается, а мягкий пытается пожаловаться в системный журнал; но доступ они зачастую ограничивают одинаково. Например, задав величину ‘maxlogins’ со значением ‘4’, вы жестко ограничите число одновременных входов четырьмя, независимо от типа ‘soft или ‘hard’.

Ограничение числа одновременных входов - вполне разумная идея, особенно если у ваших пользователей только по одной учетной записи. Распознавание взломанной учетной записи становится куда проще, когда вы видите больше одного человека, пытающегося войти на сервер. Другие важные типы включают ‘priority’ для устранения помех, создаваемых процессами пользователя более приоритетным системным процессам; ‘fsize’, устанавливающий максимальный размер файла; и ‘cpu’, определяющий число минут, в течение которых пользователь может использовать CPU.

Работа с сетью: Обновления

Большая ли, малая ли сеть у вас в распоряжении - вре-•мя, потраченное на посещение каждой машины для установки обновлений, является временем простоя. Обновление всех машин Linux по всей сети под вашим контролем должно выполняться легко. Но, увы, не выполняется. Именно для этого и приходится содержать на предприятии Linux-хакеров, и если ваша организация достаточно велика для подобной роскоши, то это неплохая идея. Но и запуск ваших собственных обновлений по локальной сети также вполне возможен, при некотором планировании.

Лучшая из известных нам утилит для запуска обновлений - SystemImager (http://wiki.systemimager.org). Ограничение у нее одно, хотя и суровое; все машины, включенные в операцию обновления, должны иметь одинаковое аппаратное обеспечение, так как SystemImager поступает согласно своему названию: использует для каждой машины один и тот же инсталляционный образ, драйверы, приложения и прочее, и все машины, участвующие в обновлении, обязаны быть одинаковыми. Однако если вы обладаете преимуществом планирования заранее, то установить одинаковое оборудование в сети, где запущена одна и та же операционная система - разумная идея. Если ваша сеть достаточно быстрая, можно загружать каждую машину с одного образа, находящегося на сервере, используя лишь USB-носитель на клиенте и протокол BitTorrent для необременительной рассылки данных.

Имеются и другие способы обновления через сеть. Большинство дистрибутивов, включая Fedora, SUSE и Debian, позволяют автоматически скачивать и устанавливать любые версии обновлений. Например, Debian имеет утилиту под названием cron-apt, помогающую распланировать системные обновления посредством демона cron''. Однако позволить системе обновлять себя автоматически - большая ошибка. Одно поврежденное или неправильное ядро, и всей вашей сети труба. Сперва надо обязательно протестировать обновление на паре машин, а уж потом запускать его в сеть.

Если тесты показали, что обновления безопасны (и оправдывают хлопоты), можете копировать их на остальные машины. Как? Установите локальный сервер обновлений для дистрибутивов, используемых на машинах-клиентах. Для упрощения этого процесса удалите приложения и службы, которые им не понадобятся - во избежание лишних движений. Для Debian можно развернуть локальный репозиторий. Просто поместите заготовленные файлы на сервер и настройте каждого клиента для использования вашего сервера в качестве единственного хранилища. В дистрибутивах Fedora и SUSE процесс похож: создайте локальное зеркало для репозитория обновления, содержащее только файлы, предназначенные для развертывания. В SUSE его URL настраивается через Yast, который синхронизирует каждого клиента с сервером.

Работа с сетью: Удаленное администрирование через Webmin

Утилит и опций конфигурации для озабоченного системного администратора на свете больше, чем байт в ядре, и они делают задачу управления различными серверами сложнее, чем она есть. Поможет Webmin: это интегрированная утилита удаленной настройки, из которой можно настроить в вашем сервере практически все. Она почти полностью заменяет SSH и командную строку. Даже если вам все-таки придется набирать команды, в Webmin предусмотрен SSH-клиент Java, и вы можете соединяться напрямую через свой браузер - отдельный SSH-клиент не потребуется

Кое-какие требования, однако, имеются. Должен быть установлен Perl, вместе со своими модулями, и модуль аутентификации PAM для Perl. Понадобится также OpenSSH, для обеспечения безопасности соединения между вашим сервером и web-браузером. Затем скачайте последнюю версию Webmin с www.webmin.comи распакуйте архив куда-нибудь вроде /opt/webmin. Запустите скрипт setup.sh в новом каталоге и ответьте на пару вопросов, в том числе задайте пароль для учетной записи администратора. Откройте в браузере servername:10000 и вперед

Безопасность: Инструменты для обратной связи с сервером

Иметь свежайшее ПО и контролируемое окружение сервера - еще далеко не все. Вам следует точно знать, что и когда происходит на машине, на которую полагаются десятки людей. Для этого, конечно, можно обратиться к системным журналам, содержащим все важное (а также много чего неважного), что произошло с вашей системой. Но никто ведь не проводит рабочее время за чтением этих файлов. Куда проще заставить что-нибудь изучить их за вас, и существует множество утилит для решения подобных задач!

Множество приложений разработаны для наблюдения за одним файлом журнала, например, создаваемым брандмауэром (Fwlogwatch), прокси-сервером Squid (Squidalyzer) или web-сервером Apache (Analog). Но можно также использовать одну из специальных утилит, способных одновременно отслеживать несколько файлов - что и требуется для сервера более общей конфигурации.

Популярна программа Sentry Tools, с уклоном на слежение за портами и соединениями с машиной, но мы остановимся на утилите мониторинга Lire. Lire доступна как через менеджер пакетов вашего дистрибутива, так и на сайте разработчика (http://logreport.org). Lire способна в одиночку уследить за серверами MySQL и DNS, электронной почтой (включая Postfix и Sendmail), брандмауэром iptables, FTP и системным журналом, наряду со многими другими. Она также умеет выводить отчет в виде текста, PDF или HTML - что делает ее незаменимой для ежемесячных отчетов.

Установив Lire, вам следует ее настроить. Ввод Lire в командной строке откроет простенький пользовательский интерфейс по типу curses; нажмите Control-x для вызова меню, затем спуститесь курсором до опции Preferences. Отсюда вы можете настраивать генерацию отчетов; здесь же Lire найдет утилиты командной строки, необходимые ей для работы. Если вы устанавливали Lire через менеджер пакетов, все основные опции должны быть преднастроены для вашего дистрибутива.

Чтобы разузнать, какие генераторы отчетов установлены и могут использоваться, запустите lr_log2report --help dlf_converters. Выведется список включенных генераторов, всех и не перечислить. Хорошим местом для старта будет syslog, так как это файл журнала, используемый для записи общесистемных событий. Создайте каталог для хранения созданного отчета (назовем ее local); для генерации HTML-отчета на базе syslog, введите lr_log2report syslog /var/log/syslog --output-format html local

Можете также выбрать в качестве формата вывода txt или pdf, а если установлен пакет ploticus, то генератор включит диаграммы по данным отчета. Если вы довольны выводом, задайте для Lire расписание автоматического создания отчетов, с возможностью послать их вам по электронной почте через Postfix.

Идем дальше

При использовании Linux, вы всегда будете в курсе новых настроек и обновлений; в том-то и состоит системное администрирование Если наши советы раздразнили ваш аппетит администратора, почему бы не рассказать нам об этом? Наши форумы всегда полны сплетен от сисадминов, и вы убедитесь, что они - отличное подспорье, если хочется побольше узнать о последних разработках, равно как и место, куда можно обратиться за помощью и за советом http://unixforum.org

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию