· Возможности файловой системы ext2, права доступа, программы изменения прав доступа и владельца файла chmod и chown, атрибуты файлов, программы работы с атрибутами chattr и lsattr, пакет lcap, пользовательские дисковые квоты, пакет для работы с дисковыми квотами quota, пример безопасной настройки системы с помощью прав доступа, расширенных атрибутов и дисковых квот;
· Библиотека PAM, ее возможности, методы ограничения ресурсов с помощью PAM, перечень модулей PAM и их описание, формат конфигурационных файлов PAM, пример безопасной настройки системы с использованием ограничения ресурсов;
· Безопасность на уровне ядра, межсетевой экран netfilter, обзор возможностей брандмауэра netfilter, программный пакет iptables, использование iptables для настройки брандмауэра Linux, пример безопасной настройки межсетевого экрана для работы в небезопасной сети;
· Удаленное управление, протоколы Telnet, rsh, SNMP, описание протокола SSH, программный продукт OpenSSH, описание конфигурационного файла демона sshd, пример настройки безопасного сервера SSH;
· Программный пакет Linux ACLs, листы доступа на основе расширенных атрибутов, программы getfacl и setfacl;
· Система обнаружения и защиты от вторжения LIDS, возможности ядер 2.4, формат конфигурационных файлов LIDS;
· Расширенное окружение обнаружения вторжений AIDE, назначение, принцип работы.
· Излучение монитора, нормативные значения электромагнитных полей для нормальной работы пользователей за компьютером, а также средства и методы уменьшения отрицательного воздействия электромагнитного излучения на организм человека.
Помимо теоретической части к каждому разделу в приложении приводится пример практического применения рассмотренного материала. Все примеры, приведенные в работе, были опробованы в реальных условиях и успешно реализованы на серверах Узбекского внешнеэкономического информационно-коммерческого центра «Узинкомцентр» при Агентстве внешних экономических связей Республики Узбекистан. На момент защиты работы мной были проинсталлированы и настроены семь серверов на базе ОС Linux, четверо из них являются серверами общего назначения, остальные трое – специализированные сервера с ограниченным набором функций. Пять серверов успешно функционируют по сей день. Двое упразднены за ненадобностью.
1. Linux. Алексей Стахнов, издательство «БХВ-Петербург», Санкт-Петербург, 2002.
2. Техническая электронная документация по операционной системе Linux.
ПРИМЕР 1.
Исходные данные: ОС Linux RedHat 7.3 без графической оболочки. Назначение – маршрутизатор.
Задача: удалить неиспользуемые регистрационные записи и добавить три записи. Необходимо добавить пользователей anna и pavel, а также одного пользователя с именем systemuser для системных нужд.
Реализация.
Изначально файл пользовательских регистрационных записей может иметь следующий вид:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/bin/bash
В зависимости от установленных программ, содержание этого файла может отличаться от приведенного.
Из соображений безопасности следует удалить следующие неиспользуемые в данной конфигурации сервера системные записи: adm, lp, shutdown, halt, news, operator, games, gopher, ftp. Системная запись lp используется только в том случае, если к компьютеру подключен принтер. Настраиваемый компьютер выполняет функции маршрутизатора, следовательно эта регистрационная запись является лишней. Записи shutdown и halt позволяют обычным программам выключать компьютер, что для сервера является только дополнительной брешью в безопасности. Записи news, gopher и ftp используется в том случае, если сервер выполняет функции службы новостей, сервера GOPHER или FTP-сервера. Учетная запись games используется программами графического интерфейса, а поскольку последний отсутствует на маршрутизаторе, эта учетная запись тоже является лишней.
Для удаления пользователей необходимо для каждой учетной записи выполнить команду
userdel <имя_пользователя>
В реализации это будет выглядеть так:
[root@gw /]# userdel adm
[root@gw /]# userdel lp
[root@gw /]# userdel shutdown
[root@gw /]# userdel halt
[root@gw /]# userdel news
[root@gw /]# userdel operator
[root@gw /]# userdel games
[root@gw /]# userdel gopher
[root@gw /]# userdel ftp
Первая часть поставленной задачи выполнена. Далее необходимо добавить указанных пользователей.
[root@gw /]# useradd –m –s /bin/bash –c ‘Normal User’ –d /home/pavel –g users pavel
[root@gw /]# useradd –m –s /bin/bash –c ‘Normal User’ –d /home/pavel –g users anna
[root@gw /]# useradd –r –s /sbin/nologin –c ‘System User’ –d /var/empty systemuser
Приведенные команды создают в системе указанных пользователей, однако, для входа в систему обычным пользователям дополнительно ко всему следует задать еще и пароль. Это выполняют приведенные ниже команды.
[root@gw /]# passwd anna
Changing password for user anna.
New password: <ввод_пароля>
Retype new password: <повтор_ввода_пароля>
passwd: all authentication tokens updated successfully.
[root@gw /]# passwd pavel
Changing password for user pavel.
New password: <ввод_пароля>
Retype new password: <повтор_ввода_пароля>
passwd: all authentication tokens updated successfully.
В результате произведенных действий система будет содержать все необходимые для нормального функционирования системные регистрационные записи, а также двух пользователей anna и pavel, которые смогут заходить и работать в системе.
ПРИМЕР 2.
Исходные данные: ОС Linux RedHat 7.3 без графической оболочки. Назначение – сервер приложений. Программное обеспечение – web-сервер Apache, FTP-сервер Proftpd. Web-сервер выполняется от имени системного пользователя nobody, FTP-сервер – от имени системного пользователя ftpuser. Оба пользователя входят в группу nogroup. На сервере работает web-портал, имеющий распределенную структуру. Весь портал делится на 2 части: администрируемую часть – динамические данные и неадминистрируемую часть – статические данные или оболочка. Администрирование динамической части может осуществляться как с помощью протокола FTP, так и с помощью специально разработанного web-интерфейса. Статические данные может изменять только привилегированный пользователь и только с помощью терминального доступа.
Задача: настройка защищенной конфигурации web-портала с использованием средств разграничения прав доступа.
Реализация.
Допустим, что все файлы объекта защиты, то есть web-портала, находятся в директории /www. В свою очередь, директория /www содержит каталоги ftp и html: первый – для хранения и доступа к файлам по FTP протоколу, второй – для доступа к файлам по протоколу HTTP. Для обеспечения эффективной защиты файлы, находящиеся в каталоге /www, должны иметь доступ только на чтение для пользователей nobody и ftpuser. Файлы, находящиеся в каталоге /www/ftp, должны быть доступны на чтение и на запись как пользователю ftpuser, так и пользователю nobody. В свою очередь, файлы каталога /www/html должны быть доступны только пользователю nobody и с правами только на чтение. Привилегированный пользователь всегда имеет право на чтение и на запись, независимо от прав доступа, установленных для файла.
Учитывая, что оба пользователя nobody и ftpuser принадлежат одной группе nogroup, права на каталог /www могут быть установлены следующим образом:
[root@app /]# chmod 050 /www
[root@app /]# chown root:nogroup /www
[root@app /]# ls –l
…
d---r-x--- 1 root nogroup 4096 Фев 7 19:48 www
…
Первая команда устанавливает права только на чтение и вход в каталог для пользователей группы-владельца каталога. Вторая команда меняет группу-владельца каталога на группу nogroup. Третья команда позволяет просмотреть сделанные изменения. Как видно из результата выполнения третьей команды, каталог www теперь имеет права доступа для группы только на чтение и вход, для пользователя-владельца и всех остальных какие-либо права отсутствуют вообще.
Теперь, когда доступ в каталог www имеют оба системных пользователя, необходимо разграничить права на внутренние каталоги www.
[root@app www]# chown –R ftpuser:nogroup /www/ftp
[root@app www]# chmod –R o-rwx /www/ftp
[root@app www]# chmod –R ug+rw /www/ftp
[root@app www]# chown –R nobody:root /www/html
[root@app www]# chmod –R go-rwx /www/html
[root@app www]# chmod –R u+r /www/html
[root@app www]# ls –l /www
drwxrwx--- 1 ftpuser nogroup 4096 Фев 7 19:55 ftp
dr-x------ 1 nobody root 4096 Фев 7 20:01 html
Первая команда меняет группу-владельца и пользователя-владельца для каталога ftp, вторая – отменяет все права на операции с файлами для всех остальных, третья – добавляет права на чтение и запись для пользователя-владельца и группы-владельца. Ключ –R позволяет рекурсивно изменить параметры у текущего каталога и всех подкаталогов и файлов, хранящихся в нем. Следующая команда “chown –R nobody:root /www/html” позволяет изменить пользователя-владельца для каталога html и всех его подкаталогов и файлов на пользователя nobody. Команда “chmod –R go-rwx /www/html” отменяет все права для группы-владельца и всех остальных. Далее команда “chmod –R u+r /www/html” устанавливает права только на чтение для пользователя-владельца. Последняя команда выводит результат выполненных операций на экран. Задача выполнена!
Следует сделать маленькое замечание: все вышеприведенное верно только в том случае, если маска создания файла по умолчанию при создании каталогов и файлов была определена как 022 (umask 022). В противном случае действия, которые необходимо предпринять для установки необходимых прав доступа, зависят от конкретных настроек системы.
ПРИМЕР 3.
Исходные данные: ОС Linux RedHat 7.3 без графической оболочки. Программное обеспечение – пакет lcap. В данном случае функциональное назначение сервера существенной роли не играет.