Все статьи раздела «Системное администрирование»

Заметки по администрированию Linux

Здесь я собираю различные советы и приемы преодоления "граблей" на тему системного администрирования компьютера (сервера) под управлением Linux. Конкретно Fedora, поскольку я чаще всего пользуюсь именно этим дистрибутивом. Каждый из этих советов слишком мал, чтобы писать для него отдельную статью, а вместе они образуют своего рода шпаргалку сисадмина, которая поможет сэкономить время в нужную минуту.

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

Авторизация

Для авторизации с помощью открытых ключей нужно создать пару ключей командой ssh-keygen. Закрытый ключ помещается в  ~/.ssh/id_rsa (или ~/.ssh/id_dsa) на локальной машине (откуда логинимся), а открытый  в файл ~/.ssh/authorized_keys на машине-сервере (куда будем логиниться). Домашний каталог здесь соответствует пользователю, который логинится, на клиенте, и пользователю, под которым логинятся, на сервере.

Каталог .ssh должен иметь права 700, а файлы id_rsa, id_dsa, authorized_keys права 600.

Чтобы получить открытый ключ по закрытому, нужно выполнить ssh-keygen -y -f ~/.ssh/id_rsa (или id_dsa). Ключ будет выведен на STDOUT в том виде, в каком его нужно вставить в authorized_keys на сервере.

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

 SELinux

Основная проблема — неправильный тип файла в контексте безопасности, из-за чего к нему не удается получить доступ. Ошибки доступа сохраняются в /var/log/messages вместе со всеми остальными сообщениями, либо в /var/log/audit/audit.log. Для поиска и просмотра расшифрованных сообщений можно использовать команду ausearch, в частности ausearch -m avc -ts today выводит список ошибок, связанных с невозможностью получить доступ, которые произошли в текущие сутки.

Для установки типа и других параметров контекста безопасности используется команда chcon. Вызов chcon -t тип устанавливает тип файла.

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

Некоторые часто встречающиеся случаи:

  1. Каталог журналов web-сайта (указанный в директивах ErrorLog, CustomLog и подобных) должен иметь тип httpd_log_t
  2. Каталог, в который httpd долен иметь возможность записывать данные и создавать файлы, должен иметь тип httpd_sys_rw_content_t

Если при отправке письма через функцию mail (PHP) возвращается ошибка, а в логе /var/log/maillog появляются сообщения
can not chdir(/var/spool/clientmqueue/): Permission denied
нужно проверить флаг httpd_can_sendmail командой getsebool httpd_can_sendmail и, если он выключен, включить командой setsebool -P httpd_can_sendmail 1 (от имени root). Параметр -P сохраняет значение флага на диск, чтобы оно осталось указанным и после перезагрузки.