Хорошо, может быть это и не мой первый сервер и не Ваш, но это не имеет значения, так как иногда может произойти такая вещь как блокировка самого себя на собственном сервере! Такое случилось однажды со мной, один мой сервер находился в США, а я в Европе, оставался один выход: написать в поддержку хостеру!
Это было в прошлом и сегодня, с тех пор я настроил большое количество серверов, я решил написать для того, чтобы с Вами не произошло того же.
И так, давайте начнем! Вы только что заказали 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 установлен редактор Vi. Vi не прост в использовании, но если Вы не начали изучать другой редактор то используйте 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.
Дайте мне знать, полезна ли для вас эта статья, что хотелось бы узнать, что неправильно.
1 просмотр
Взаимосвязанные материалы
Часто приходится копировать данные по сайту в git репозиторий или переносить копию на локальный сервер или рабочий?
читать...Phpmyadmin.
читать...Столкнулся с проблемой при работе с Bitrix, если в пути имеется точка (как правило это директория .default) то apache выдает ошибку:
читать...Сколько времени приходится тратить на копирование данных, перед тем как приступить к их модификации, перенос или восстановление? Много.
читать...Привет! Хорошая настройка Apache (mtm.itk) + PHP + Nginx + Mysql
Первым делом не забудьте установить php, mysql и fpm.
читать...