Заметки по администрированию 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 (читать инструкцию).
Некоторые часто встречающиеся случаи:
can not chdir(/var/spool/clientmqueue/): Permission denied
нужно проверить флаг httpd_can_sendmail командой getsebool httpd_can_sendmail и, если он выключен, включить командой setsebool -P httpd_can_sendmail 1 (от имени root). Параметр -P сохраняет значение флага на диск, чтобы оно осталось указанным и после перезагрузки.
Здесь я собираю различные советы и приемы преодоления "граблей" на тему системного администрирования компьютера (сервера) под управлением 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 (читать инструкцию).
Некоторые часто встречающиеся случаи:
- Каталог журналов web-сайта (указанный в директивах ErrorLog, CustomLog и подобных) должен иметь тип httpd_log_t
- Каталог, в который httpd долен иметь возможность записывать данные и создавать файлы, должен иметь тип httpd_sys_rw_content_t
can not chdir(/var/spool/clientmqueue/): Permission denied
нужно проверить флаг httpd_can_sendmail командой getsebool httpd_can_sendmail и, если он выключен, включить командой setsebool -P httpd_can_sendmail 1 (от имени root). Параметр -P сохраняет значение флага на диск, чтобы оно осталось указанным и после перезагрузки.