Мой первый VPS сервер! Как не заблокировать себя и создать второго суперпользователя.

Опубликовано admin - вс, 07/15/2012 - 11:45
Изображение
linux

Хорошо, может быть это и не мой первый сервер и не Ваш, но это не имеет значения, так как иногда может произойти такая вещь как блокировка самого себя на собственном сервере! Такое случилось однажды со мной, один мой сервер находился в США, а я в Европе, оставался один выход: написать в поддержку хостеру!

Это было в прошлом и сегодня, с тех пор я настроил большое количество серверов, я решил написать для того, чтобы с Вами не произошло того же.

И так, давайте начнем! Вы только что заказали VPS, после недель поиска, сравнения цен, опций, возможностей, бит и байтов и всякой всячины. Что действительно могло остановить Вас только на в начале. Множество вещей может быть не правильными, - неправильный хостинг провайдер, неправильное время года и т. д. Допустим вы заказали правильный VPS — ведь, если миллион вещей может быть неправильными, то какая-то часть этого будет правильной.

И Ура! Вам пришло письмо о том, что Ваш сервер настроен и готов к использованию, ждет Ваших комманд, в письме есть ip адрес - 123.234.345.456, пароль пользователя root.

Давайте запустим Putty или то, что Вы больше предпочитаете! Да, дома я использую windows. Войдем на сервер, и первым делом НИ В КОЕМ случае не изменяйте пароль пользователя root. Да, Вы правы, обычно, первым делом необходимо изменить пароль, так как пароль от хостер - провайдера является слабым или такой, который невозможно запомнить. Но изменение пароля может стать причинной запрета доступа к серверу для самого владельца.

Хорошо, вернёмся к Putty. Создадим новую сессию и изменим некоторые настройки putty. Первым делом включите поддержку записи всех действий в журнал, для того, чтобы запомнить всё, что вы делали. После совершения этих действий, вернёмся обратно и сохраним конфигурацию Putty.

Добавление нового пользователя

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

someuser может быть любым именем, но что бы Вы не написали - не забудьте его никто не должен знать. Не используйте собственное имя или что-нибудь подобное, что может предположить любой. Данный аккаунт будет полностью соответствовать root. Данная команда создаст нового пользователя someuser, создаст для него домашнюю директорию (-m), добавит доступ по shell (-s /bin/bash), и сделает его членом группы wheel (-G wheel).

Группа wheel - специальная группа, которая определяет кто может использовать команду su, а кто нет. Данная группа создается автоматически в CentOS/Redhat. В других дистрибутивах её нет, например в Ubuntu, но это не мешает Вам её создать.

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

Вы получите сообщение: «Changing password for user someuser», после чего введете несколько раз пароль, будьте внимательны не установите CAPS LOCK.

И это всё, вы только что добавили нового пользователя. Следующим шагом будет создание новой сессии в Putty, после чего подключатись к серверу, используя данные только что созданного пользователя.

Ограничение доступа к команде su

Следующим шагом будет ограничение доступа к команде su для тех пользователей, которые находятся в группе wheel. Делается это путём редактирования файла /etc/pam.d/su. По умолчанию в CentOS установлен редактор ViVi не прост в использовании, но если Вы не начали изучать другой редактор то используйте Vi и больше ничего не начинайте использовать кроме Vi. Хотя можно использовать и nano. Однако nano может быть и не установлен, для его инсталляции используется yum. Я никогда не встречал CentOS без предустановленного yum, поэтому наберите:

Yum отобразит несколько строк. Спросит желаете ли Вы установить nano. После наберите команду используя vi или nano:

Вы должны увидеть что-нибудь наподобие #%PAM-1.0. в начале файла. После двух — трёх строк:

# Uncomment the following line to require a user to be in the "wheel" group

найдите следующую строку:

для того чтобы раскомментировать её поставить курсор на занк # и нажмите x, чтобы строка выглядела так:

Для того чтобы изменения вступили в силу необходимо набрать команду:

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

Su великолепная команда, позволяющая становится любым пользователем, включая пользователя root.

Ограничение доступа к правам пользователя root

Сейчас когда новый пользователь может использовать команду su, необходимо добавить возможность использовать команду sudo. Если она не установлена наберите:

если вы получите сообщение: «command not found», то установите sudo:

Yum будет задавать Вам вопросы, поэтому Вы можете добавить опцию -y к команде yum для положительного ответа на все возможные вопросы, но лично я предпочитаю видеть всё, что я делаю, так как иногда необходимо установить дополнительные зависимые пакеты. Установив sudo наберите команду:

в ответ вы получите:

Испоьзуя Ваш любимый редактор Vi спуститесь на несколько строк ниже где находится надпись:

под этой строкой необходимо раскомментировать строку:

Если вы удалил символ # то сохраните изменения в редакторе:

Файл котрый вы действительно отредактировали находится в /etc/sudoers и никогда не используй что-нибудь ещё кроме visudo для редактирования этого файла. Вы можете проверить войдя в качестве пользователя которого мы только что создали либо выполнив ко манду su username. После чего нужно ввести команду:

любые пользователи, которые не находятся в файле /etc/sudoers получат сообщение о том что они делают что-то не то на этом сервере, а так же будет отправлено сообщение на email. Но если пользователь находится в группе wheel, для которой есть разрешение в файле sudoers, он получить доступ на уровне root. Иногда сервер может выдать вам сообщение «audit_log_user_command(): Connection refused», не бойтесь, sudo работает, но не запущен демон audit(d).

Сейчас можно использовать команду sudo, попытайтесь:

Сервер спросит пароль, это не пароль пользователя root, пароль пользователя someuser, которого мы с Вами создали. Если вы введете его, вы станете втором суперпользователем. Теперь вы можете изменить пароль первого суперпользователя — root:

И не забудьте, что я говорил о пользователе someuser, его аккаунт является эквивалентом аккаунту root. Поэтому храните его в секрете!

Альтернатива

Если вы не можете использовать ssh. Недавно это случилось из-за того что я неудачно обновил OpenSSH. В этом случае все команды можно выполнять через Telnet.

Для использования Telnet необходим пакет telnet-server.i386, для его установки выполните следующие команды:

Эти команды вернут ответ о доступность «tcp_wrappers.i386» в зависимости от вашей архитектуры. Для установки этого пакета необходимо запустить команду:

Для включение Telnet наберите:

и расскомментируйте строку:

затем сохраните изменения:

Что я делаю дальше, ограничиваю доступ. Для этого необходимо отредактировать два файла /etc/hosts.allow and /etc/hosts.deny. В первом вы указывайте ip адрес с котрого разрешено использовать telnet, это может быть ip адрес домашний или тот который на у вас работе.

разрешить доступ:

Для того чтобы запретить всем кроме тех, которые указаны вы файле /etc/hosts.allow наберите команду:

введите строку:

После этого для запуска Telnet наберите команду:

Для проверки правильности работы используется команда:

В заключение

На этом всё. Сейчас Вы знаете несколько путей доступа к серверу — SSH, Telnet, ваш провайдер с панелью управления. Если этого не достаточно, можете установить Webmin.

Дайте мне знать, полезна ли для вас эта статья, что хотелось бы узнать, что неправильно.

Теги

Оценка

No votes have been submitted yet.

На разработку сайта! Скидки до 20%!