Установка переменных окружения в пользовательских файлах инициализации
Пользователь может изменять значения предопределенных переменных и определять дополнительные переменные.
Табл.3 демонстрирует, как устанавливаются переменные окружения в пользовательских файлах инициализации.
Табл.3 Установка переменных окружения
Интерпретатор Пользовательские файлы инициализации |
Bourne или Коrn VARIABLE=value; export VARIABLE Например: PS1="$HOSTNAME! $ "; export PS1 С setenv variable value Например: set prompt "\! 'uname -n' % " |
Использование шаблонов файлов инициализации
ОС Solaris предоставляет вам набор шаблонов файлов инициализации.
Шаблоны файлов инициализации расположены в каталоге /etc/skel и определены в Табл.4.
Табл.4 Пользовательские файлы инициализации по умолчанию
Интерпретатор | Шаблоны файлов инициализации | Пользовательские файлы инициализации |
Bourne Коrn С | /etc/skel/local.profile /etc/skel/local.profile /etc/skel/local.cshrc /etc/skel/local.login | $HOME/.profile $HOME/.profile $HOME/.cshrc $HOME/.login |
Суперпользователи могут настраивать эти шаблоны для создания стандартного набора файлов инициализации пользователя, чтобы предоставить общую рабочую среду для каждого пользователя.
Пользователи могут затем редактировать свои файлы инициализации для дальнейшей настройки своего окружения для каждого командного интерпретатора.
Когда суперпользователем создаются новые регистрационные записи, эти файлы инициализации автоматически копируются в домашний каталог каждого пользователя.
Управление проблемами удаленного доступа
Чем больший доступ к системе в сети вы предоставляете, тем более она привлекательна для удаленных пользователей. Тем не менее, неограниченный доступ и совместное использование файлов и ресурсов создают проблемы для безопасности.
|
Приемы защиты извне локального хоста в основном основываются на проверке правильности доступа, ограничении или блокировании действий удаленных пользователей.
Три сетевых файла обеспечивают некоторые схемы разрешения основных проблем безопасности, касающихся доступа удаленных пользователей к локальной системе:
• файл /etc/hosts, equiv;
• файл $НОМЕ/. rhosts;
• файл/etc/ftpusers.
Файлы /etc/hosts. equiv и $НОМЕ/. rhosts
Обычно, в случае, когда удаленный пользователь запрашивает вход на локальный хост, первым файлом, читаемым на локальном хосте, является файл /etc/passwd. Запись для этого конкретного пользователя в этом файле позволяет пользователю войти на локальный хост с удаленной системы. Если у этой учетной записи имеется пароль, то пользователю необходимо будет ввести его во время входа, чтобы получить доступ к системе.
Если в файле /etc/passwd локального хоста отсутствует запись для удаленного пользователя, то доступ ему будет запрещен.
Файлы /etc/hosts. equiv и $НОМЕ/. rhosts позволяют обойти эту стандартную основанную на паролях аутентификацию, если удаленному пользователю разрешен доступ к локальному хосту от имени локального пользователя.
Для этого определения указанные файлы предоставляют процедуру удаленной аутентификации.
Эта процедура сначала проверяет файл /etc/hosts. equiv, а затем файл $НОМЕ/. rhosts в домашнем каталоге того локального пользователя, от имени кого запрашивается доступ. Информация, содержащаяся в этих двух файлах (если они существуют), определяет разрешен или запрещен пользователю удаленный доступ в систему.
|
Файл /etc/hosts. equiv применяется ко всей системе в то время, как индивидуальные пользователи могут поддерживать собственные файлы $номе/. rhosts в своих домашних каталогах.
Аутентификация удаленного доступа
Рис.1 Пример аутентификации удаленного доступа
Записи в файлах /etc /hosts. Equiv и $HOME/. rhosts
Несмотря на то, что файлы /etc/hosts. equiv and $HOME/. rhosts имеют одинаковый формат, одни и те же записи в каждом из файлов дают разный эффект.
Ниже представлен общий формат файлов. Объяснения и примеры значений для каждого типа записи будут представлены на следующих страницах.
• Формат обоих файлов является построчным списком, который может содержать следующие типы записей:
hostname
hostname usemame
+
Примечание — Имена хостов в файлах /etc/hosts. equiv и $НОМЕ/. rhosts должны быть официальными именами, а не псевдонимами хостов.
• Если используется только hostname, то все пользователи с данного хоста будут допущены в систему при условии, что они известны локальному хосту
• Если используются и hostname, и username, то только этот удаленный пользователь с данного хоста может войти на локальный хост
• Единственный символ плюс (+), помещенный в файл, означает, что пользователи каждого удаленного хоста в сети могут войти на локальный хост. Этот тип записи позволяет удаленным пользователям входить в систему из любого хоста в сети без использования пароля.
Файл /etc/hosts.equiv
Для обычных пользователей файл /etc/hosts. equiv определяет удаленные хосты и удаленных пользователей, которым доверяют.
|
Примечание — Файл /etc/hosts. equiv не проверяется вообще, если пользователем, запрашивающим удаленный доступ к локальной системе, является root.
Если файл локального хоста /etc/hosts. equiv содержит имя удаленного хоста, то всем удаленным пользователеям этого удаленного хоста доверяют, и им не нужно вводить пароль для входа на локальный хост. Это происходит, если каждый удаленный пользователь известен локальному хосту и имеет запись в локальном файле /etc/passwd; иначе доступ будет запрещен.
Это особенно полезно для сайтов, где для обычных пользователей принято иметь учетные записи на многих системах, так как устраняет риск пересылки ASCII паролей по сети.
Файл /etc/hosts. equiv не существует по умолчанию. Он должен быть создан, если удаленному пользователю требуется доступ к локальному хосту.
Файл $НОМЕ/.rhosts
В то время, как файл /etc/hosts. equiv применяется ко всей системе, (исключая пользователя root), файл.rhosts применяется к конкретному пользователю.
Все пользователи, включая суперпользователя, могут создавать и поддерживать собственный файл. rhosts в своих домашних каталогах.
Например, если вы запускаете процесс rlogin с удаленного хоста, чтобы войти на локальный хост как суперпользователь, то будет проверен файл /. rhosts в домашнем каталоге суперпользователя на локальном хосте.
Если имя удаленного хоста находится в этом файле, то он рассматривается как доверенный хост для доступа удаленного пользователя; в этом случае root получит доступ на локальном хосте.
Файл $номе/. rhosts по умолчанию не существует; вы должны создать его в домашнем каталоге пользователя.
Ограничение FTP входов
ОС Solaris предоставляет ASCII файл, который называется /etc/ftpusers. Используйте файл ftpusers для перечисления имен пользователей, кому запрещен FTP вход в систему.
Каждая строка в этом файле содержит регистрационное имя ограниченного таким образом пользователя, например:
username
При запуске FTP сессии сервер ftp через демон in.ftpd читает файл ftpusers. Если входное имя пользователя не соответствует одной из перечисленных в файле записей, то он обрывает входную сессию и посылает сообщение об ошибке "Login failed".
По умолчанию в файле ftpusers перечислены следующие системные учетные записи:
Root daemon bin sys adm ip uucp nuucp listen nobody noaccess nobody4
Любое имя пользователя, которое вы добавляете в этот файл, должно соответствовать регистрационной записи, находящейся в файле
/etc/passwd.
Поскольку новая политика безопасности в ОС Solaris 8 по умолчанию запрещает удаленный вход суперпользователя, то запись root включена в файл /etc/ftpusers.
Если входные привилегии суперпользователя разрешены путем удаления записи root из файла /etc/ftpusers, убедитесь в том, что файл /etc/default/login отражает входные привилегии удаленного входа суперпользователя.
Файл /etc/shells
Файл /etc/shells содержит список командных интерпретаторов в системе. Приложения, такие как sendmail и ftp, могут использовать этот файл, чтобы определить, является ли интерпретатор действительным или нет.
По умолчанию данный файл не существует.
Примечание — Если этот файл не существует, то getusershell (3c) использует свой собственный список интерпретаторов.
При создании этого файла каждый интерпретатор, который вы хотите распознавать в системе, должен иметь однострочную запись с путем, начинающимся с / (root).
Например:
# vi /etc/shells
/sbin/sh
/bin/sh
/bin/ksh
В то время, как файл /etc/ftpusers запрещает FTP соединения, вы можете создать файл /etc/shells для разрешения FTP соединений только для тех пользователей, интерпретаторы которых определены в этом файле.
Если в этом файле не существует записи для интерпретатора, то пользователю, запускающему неопределенный командный интерпретатор, запрещаются FTP соединения с системой.