Linux - Алексей Стахнов 27 стр.


Сервер – самая чувствительная к взлому система в локальной сети. От потери функциональности или замедления его работы страдают все работники фирмы, а если сервер почтовый или Web – то проблемы появляются и у людей, желающих отправить вам почту или посмотреть ваш Web-сайт. Именно поэтому, как и с простого офисного компьютера, с сервера необходимо удалить все потенциально опасные службы типа finger, r– (rlogin, гсору и т. п.), telnet (клиент и сервер), NFS и т. п. На сервере, если это сервер, к примеру, только баз данных, должно стоять только программное обеспечение баз данных. И ничего другого. Никаких Web-серверов, игр, X Window и компиляторов.

Ниже приведен небольшой (далеко не полный) список пакетов, которые на серверах общего назначения не нужны:

• ВООТР (Boot Protocol) – используется для загрузки бездисковых рабочих станций. Если сервер не является сервером удаленной загрузки, нет необходимости оставлять этот пакет;

• DHCP (Dynamic Host Configuration Protocol) – протокол, который позволяет отдельным устройствам в IP-сетях получать от сервера конфигурационную информацию (IP-адрес, сетевую маску, широковещательный адрес и т. д.). Если сервер не является сервером DHCP – удалите и этот пакет;

• mt-st – включает программное обеспечение для управления устройствами чтения с магнитных лент: mt (для устройств magnetic tape devices) и st (для SCSI tape devices). Если на сервере не установлен стример – эти пакеты лишние;

• eject – позволяет пользователям извлекать диски (обычно это CD-ROM, Iomega Jazz и Zip) используя программные средства. Эта программа тоже не понадобится;

• apmd – демон расширенного управления питанием и сопутствующие ему утилиты. Такое программное обеспечение должно использоваться на ноутбуках, на сервере ему делать нечего;

• linuxconf – удобная утилита для настройки системы. По умолчанию установка ее не производится. Если она все же установлена, следует знать: помимо того, что эта программа занимает достаточно много места, она так же содержит и ошибки;

• isapnptools – включает утилиты для настройки карт ISA Plug and Play (PnP) и плат, которые совместимы со спецификацией ISA Plug and Play. Поскольку в современном компьютере вот уже на протяжении трех лет не устанавливаются ISA-устройства, наличие этого пакета нецелесообразно;

• setserial – системная утилита для просмотра и установки информации о последовательных портах. Используется на сервере модемного доступа и сервере управления кассовыми аппаратами с последовательным интерфейсом. Может быть необходима для маршрутизаторов, имеющих модемные соединения. Эту утилиту можно использовать при отладке соединения и управления источником бесперебойного питания (UPS). Для всех остальных типов серверов наличие ее нецелесообразно;

• kudzu – утилита для автоматического определения аппаратного обеспечения. Во время загрузки она может определить, какие устройства были добавлены или удалены из системы. Однозначного мнения, нужен или нет данный пакет на сервере, не существует;

• raidtools – включает утилиты, которые нужны для установки и управления программными RAID-массивами. Если программные RAID-массивы не используются – не устанавливайте;

• redhat-logos – файлы логотипов. Трата дискового пространства;

• redhat-release – на сервере не нужен;

• rmt – предоставляет удаленный доступ для резервного копирования. Как и все r-команды – потенциальная брешь в безопасности операционной системы;

• tyx – встроенный в ядро HTTP-сервер. Позволяет ускорить обработку HTTP-запросов. Ни для каких серверов, кроме Web-cepвepa, не нужен. К тому же, на Web-cepвepe традиционно устанавливается сервер Apache.

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

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

Дальнейшие действия большей частью административные.

1. Создайте список файлов с их правами и владельцами. Регулярно проверяйте, не изменились ли атрибуты, права и владельцы файлов. Изменение этих параметров – один из признаков взлома или некорректной работы пользователей.

2. Заведите на сервере пользователя, которому делегируйте некоторые права – выключение сервера, монтирование дисковых разделов, административные задачи.

3. Проверьте, чтобы пользователь root не мог зайти через сеть или способом, отличным от входа с консоли.

4. Организуйте перенаправление почты пользователя root на обычного пользователя, отвечающего за администрирование. По умолчанию многие сервисы отсылают электронной почтой сообщения о проблемах, возникающих во время их работы.

5. Не работайте пользователем root – этот пользователь случайно может уничтожить операционную систему.

6. Настройте службу logrotate: на серьезных серверах log-файлы в 100–200 Мбайт – в порядке вещей.

7. Разработайте стратегию резервного копирования сервера.

8. Проводите учебное восстановление сервера из резервных копий раз в квартал. Это позволит и хорошо отработать процедуру восстановления, и проверять целостность резервных копий.

9. Обязательно приобретите источник бесперебойного питания с управлением по последовательному порту и установите соответствующее программное обеспечение.

10. Разработайте и утвердите у руководства правила, в которых четко и кратко описано, что может делать пользователь, а что ему запрещено. Ознакомьте с ними всех сотрудников.

11. Периодически производите инспекцию компьютеров на наличие постороннего программного обеспечения и правильное функционирование штатного программного и аппаратного обеспечения.

Более подробные рекомендации можно прочитать в книгах "UNIX: руководство системного администратора" и "Системное администрирование Linux" (см. приложение 5).

Ссылки

• www.linuxdocs.org – Network Administrator\'s Guide.

• www.linuxdocs.org – по этому же адресу расположены и соответствующие HOWTO (см. гл. 13):

– security-howto;

– hacker-howto;

– NFS HOWTO;

– Firewall-HOWTO.

Часть IV Основные команды Linux

Глава 13 Помощь

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

Традиционно информацию о системе или программе можно получить несколькими путями.

Apropos

Команда apropos производит поиск заданного ключевого слова (команды) в базе whatis (см. ниже) и выводит на экран краткое его описание.

Man-справка

В операционной системе Linux справочная система глобальна и использование ее очень просто – в командной строке следует набрать:

man имя_программы

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

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

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

Whatis

Команда whatis представляет собой мини-справочную систему. В качестве аргумента указывается имя файла, на выходе – строка информации об этом файле.

HOWTO – как сделать

С помощью программы man можно узнать многое, единственное, что она не дает – это алгоритмов решения сложных проблем. Для подобных вопросов существуют так называемые HOWTO – "как сделать что-то". Это достаточно большой набор файлов, предназначенных для решения разнообразных проблем – настройки сети, почтовых программ, Web-серверов, установки различного аппаратного обеспечения и многого другого. Как правило, эти файлы написаны на английском языке, но существуют версии некоторых HOWTO на других языках, в частности, на русском. Список HOWTO приведен в приложении 2. Нельзя гарантировать, что данный список полный, но, по крайней мере, это практически все известные HOWTO. Найти их в Интернете не представляет трудности – достаточно ввести наименование искомого HOWTO в строку поиска любой поисковой системы, например www.rambler.ru.

Мини-HOWTO

В отличие от HOWTO, решающих достаточно глобальные задачи и имеющих объем порядка пятидесяти-ста страниц, мини-HOWTO решают узкоспециальные задачи и имеют небольшой объем. Список мини-HOWTO приведен в приложении 3. Найти их в Интернете также, как и HOWTO, не представляет трудности.

Руководства пользователя Red Hat

На сайте дистрибутива Red Hat существует достаточно большой выбор документации, посвященной инсталляции, работе, настройке операционной системы Linux. Вот только некоторые названия:

• The Official Red Hat Linux Getting Started Guide;

• The Official Red Hat Linux Customization Guide;

• The Official Red Hat Linux x86 Installation Guide;

• The Official Red Hat Linux Reference Guide.

В этих руководствах подробно рассказывается об инсталляции, работе, решениях возникающих проблем в дистрибутиве Red Hat Linux. К сожалению, вся документация на английском языке.

Ссылки

• www.linuxdocs.org – одно из полнейших собраний документации о Linux. Ресурс англоязычный, зато почти все, что касается Linux, здесь можно тем или иным образом найти.

• www.redhat.com – сайт фирмы Red Hat, производителя одноименного дистрибутива. Одним из достоинств данного дистрибутива является его хорошая поддержка, начиная с версии 4.x (создан в 1995 году) и заканчивая текущим. Дистрибутив Red Hat получил очень широкое распространение, его уже начали сравнивать с Windows. В настоящее время Red Hat стал стандартом de-facto для производителей коммерческого программного обеспечения и компьютерного оборудования. Дистрибутив существует в трех вариантах: базовый (доступен для скачивания через Интернет), Professional и Advanced Server. Кроме собственно дистрибутива на сайте присутствует и достаточно большое количество качественно написанной документации (на английском языке).

Глава 14 Справочник наиболее часто употребляемых команд

Эта глава посвящена консольным командам и утилитам. Конечно, после продолжительной работы в графической среде, нет особого желания возвращаться в текстовую консоль. Однако не всегда разумно пользоваться X Window там, где достаточно набрать всего три буквы. Да и не везде будет возможность (желание, необходимость) устанавливать и использовать X Window. Нет никакой необходимости занимать на сервере лишние десятки мегабайт и расходовать драгоценную оперативную память и время процессора (камень в огород Windows NT Server, Windows 2000) на обслуживание графической оболочки. Действительно, зачем серверу (конечно кроме сервера приложений X Window) иметь графическую оболочку, если на нем выполняется сервер баз данных, Web-сервер, почтовый сервер или сервер новостей? Этого не требуется и для администрирования. Практически любое приложение имеет понятный, самодокументированный (или имеющий понятное описание в документации) текстовый файл конфигурации. Отредактировать конфигурационные файлы можно либо с текстовой консоли, либо даже удаленно (подключиться к компьютеру, находясь хоть на другом континенте). Для многих приложений существуют также утилиты конфигурирования, имеющие текстовый (а иногда и графический) интерфейс. Многие приложения имеют инструменты удаленного администрирования, использующие Web-интерфейс. Так что наличие консольных команд и утилит для сервера вполне обосновано.

То же и для обычных клиентских машин. Казалось бы, поскольку большинство пользователей безвылазно сидят в X Window, им вообще не надо знать о консоли. Однако это совершенно не так. Как мы уже знаем из главы <5, загрузка операционной системы Linux происходит в текстовом (консольном) режиме и лишь на последнем этапе (и то, если это было определено при конфигурации системы) происходит переключение в X Window. Даже из-за этого уже стоит ознакомиться с консольными утилитами.

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

...

Замечание

Конечно, пользователю Windows это кажется неудобным. Для утилит Windows принят другой подход – "все в одном" (all in one). В результате– объемный комплекс, в котором достаточно трудно разобраться, который из-за его размеров крайне трудно отладить и который потребляет значительное количество оперативной памяти и процессорного времени.

Кроме того, все утилиты Linux (в отличие от Windows-утилит) способны взаимодействовать друг с другом. Это значит, что с помощью утилит можно организовать цепочку взаимосвязанных операций. А с помощью скриптов командной оболочки создать инструментарий для выполнения часто используемых последовательностей операций. Linux требует от пользователя достаточно обширных знаний и некоторого размышления (планирования) перед выполнением нетривиальных действий. С одной стороны, после Windows с ее достаточно бездумным нажиманием кнопок мыши, это несколько напрягает. Но с другой стороны, это позволяет точно, шаг за шагом, понять процесс получения нужного результата, да, заодно, и память потренировать.

Стандартный ввод/вывод, перенаправление

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

Для перенаправления стандартного ввода используется символ перенаправления <. Пример использования перенаправления ввода:

mysql <2.sql

Передает программе mysql данные, содержащиеся в файле 2.sql.

Для перенаправления стандартного вывода используются символы перенаправления > и". В чем их отличие? Символ > не проверяет наличие файла, в который сохраняется стандартный вывод программы. Если такой файл существует, то его содержимое полностью заменяется выводом программы. Символ" проверяет существование файла, и если он существует, то вывод программы дописывается в конец существующего файла.

Примеры:

df > 1.txt Is -A >> 1.txt

Операции перенаправления ввода/вывода можно использовать одновременно.

Конвейер (поток)

Конвейер (поток, pipe) используется для объединения нескольких команд в одной операции. Обозначается символом |. Применяется для передачи стандартного вывода одной программы на стандартный ввод другой программы. В одной командной строке можно использовать несколько операций конвейера.

Пример:

Is | grep

Команды

Операционная система Linux очень многое наследует от UNIX, в том числе и большую часть команд и утилит. Конечно, эти команды адаптированы и усовершенствованы, но, тем не менее, в целом они сохранили синтаксис соответствующих команд UNIX. Поэтому, по большому счету, не важно, в чем вы работаете: в UNIX или в Linux – система команд на 98 % совпадает. Далее мы рассмотрим наиболее часто используемые команды и утилиты. Обратите внимание – наиболее часто используемые. Это означает, что в данной главе упоминаются далеко не все команды и утилиты. Никакая самая объемистая книга не отменяет команду man, документацию и файлы HOWTO. За время написания любой книги выходят новые версии программ, и зачастую их возможности кардинально изменяются. Эта глава является обзорной, поэтому в описании команд не всегда (или не в полном объеме) приводятся ключи и параметры вызова.

Дата, время

cal

Команда cal выводит на консоль календарь. Если не указаны параметры – выводится календарь на текущий месяц. Если указывается месяц и год – выводится календарь на соответствующий месяц, а если указывается только год – выводится календарь на соответствующий год.

Пример:

cal

Октябрь 2001

Linux

date

Команда date выводит текущие дату и время в указанном формате. Так же эта команда позволяет изменять системные дату и время.

Параметры:

• + – формат отображения времени и даты в указанном формате;

• -s – установка времени и даты;

• -u – вывод времени и даты по Гринвичу.

При установке даты и времени можно указывать их как в числовом, так и в нечисловом формате. При использовании числового формата строка данных представляется в следующем виде:

MMddhhmmyy

где:

• MM – месяц;

• dd – день;

• hh – часы;

• mm – минуты;

• уу – две последние цифры года.

Пример:

date Сбт Окт 6 19:57:30 EEST 2001

Более подробную информацию можно получить по команде man date.

Файлы и каталоги

В этом разделе представлены команды и утилиты, которые напрямую взаимодействуют с файлами и каталогами.

Административные команды Здесь собраны команды, которые отвечают за "административную работу" с файлами и каталогами.

chgrp

Команда chgrp изменяет группу каждого заданного файла на группу, которая может быть представлена как именем группы, так и ее числовым идентификатором (GID).

Более подробную информацию можно получить по команде man chgrp.

chmod

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

Формат символьного режима:

[ugoa…][[+-=][rwxXstugo…]…][,…]

Здесь каждый аргумент – это список символьных команд изменения прав доступа, разделенных запятыми. Каждая такая команда начинается с какой-нибудь из букв ugoa (впрочем, букв может вообще не быть) или их комбинации, которая указывает, чьи права доступа к файлу будут изменены:

• u – владельца;

• g – группы;

• о – других пользователей, не входящих в данную группу;

• а – всех пользователей. Буква а эквивалентна ugo. В том случае, если не задана ни одна буква, то будет использоваться буква а;

• + – добавляет выбранные права доступа к уже имеющимся;

Назад Дальше