- Приобретение сервера
- Подключение к серверу
- Linux (Ubuntu, Debian) и macOS
- Windows
- Создание нового пользователя
- Настройка подключения с помощью SSH-ключа
- Установка MySQL
- Установка PHP
- Создание нового пользователя с административными правами
- Выбор наборов ПО для инсталляции Ubuntu сервера
- Настройка брандмауэра
- Добавление пользователя
- Первоначальная настройка ubuntu server 14.04.1 LTS
- Аутентификация пользователя на основе SSH-ключей
- Настройка часового пояса
- Установка Apache 2
- Установка ubuntu server 14.04.1 LTS
- Редактируем конфиг SSH
Приобретение сервера
У многих новичков возникает первый вопрос, где лучше всего арендовать сервер. Я не буду очень долго останавливаться на этом моменте, вы можете выбрать надежного хостинг-провайдера в нашей оценке на главной странице сайта. Все действия буду выполнять на примере пуленепробиваемого хостинга Zomro. О том, как купить и запустить сервер, я уже писал в этой статье.
Подключение к серверу
После того, как сервер был куплен и все данные для подключения (IP-адрес, имя пользователя, пароль) были получены, вам необходимо подключиться к нему. Также последовательность действий будет зависеть от используемой операционной системы.
Linux (Ubuntu, Debian) и macOS
Подключиться к серверу из этих операционных систем не составит труда. Для этого откройте терминал и введите следующую команду:
ssh root@45.82.111.111
Конечно, вы должны заменить свои данные в этой команде (имя пользователя и IP-адрес). После ввода команды сервер попросит вас ввести пароль, после чего вы подключитесь к серверу.
Windows
В операционной системе Windows нет встроенного клиента SSH, и вам нужно будет подключиться с помощью программы puTTy. Я уже подробно описал это здесь.
Однако в Windows 10 есть другой и более удобный способ подключения через SSH. Для этого вам необходимо установить в системе SSH-клиент. Обычно он устанавливается по умолчанию. Проверить это можно следующим образом. Щелкните правой кнопкой мыши значок Windows в левом нижнем углу экрана, в открывшемся меню выберите пункт «Параметры». Затем перейдите в раздел «Приложения»:
В открывшемся окне нажмите ссылку «Дополнения» и проверьте, установлен ли клиент OpenSSH. Если он не установлен, нажмите «Добавить компонент», найдите в списке «Клиент OpenSSH» и установите его:
Далее ищем на компьютере, запускаем программу Windows PowerShell и вводим команду (под нашим пользователем и IP-адресом):
ssh root@45.82.111.111
Отлично, подключение к серверу завершено. Теперь перейдем к настройке.
Создание нового пользователя
Дело в том, что почти на всех серверах после установки есть стандартный пользователь с именем root, а это очень небезопасно. Поэтому создаем нового пользователя командой:
sudo adduser hostgeek
Введите и подтвердите пароль для нашего нового пользователя. Остальные поля можно оставить пустыми:
Теперь у этого пользователя должны быть права администратора с помощью команды:
sudo usermod -aG sudo hostgeek
Авторизуйтесь под этим пользователем:
на hostgeek
Вводим команду:
я потею whoami
Следовательно, мы должны получить ответ «корень». В этом случае все сделано правильно.
Выйдите из сервера и войдите с нашим новым пользователем:
ssh hostgeek@45.82.111.111
Настройка подключения с помощью SSH-ключа
Этот шаг не является обязательным, но он значительно повысит безопасность сервера. Поэтому пропускать его не рекомендую. Сначала мы сгенерируем SSH-ключ с помощью команды (не забудьте отключиться от сервера, мы запускаем команду не на сервере, а на локальной машине!):
ssh-keygen
Путь к ключевому месту оставьте стандартным. Далее подходим и вводим парольную фразу (секретную фразу):
Теперь этот ключ нужно скопировать на сервер. В Linux (Debian, Ubuntu) и macOS это делается одной командой:
идентификатор ssh-копии hostgeek@45.82.111.111
В Windows такой команды нет, поэтому ключ нужно копировать вручную. Перейдите в папку на вашем компьютере, где был сгенерирован ключ, и откройте файл id_rsa.pub с помощью любого текстового редактора. Скопируйте весь текст из этого файла. Копируйте аккуратно, не захватывая пробелов в начале и конце строки, иначе ничего не получится.
Далее подключаемся к серверу:
ssh hostgeek@45.82.111.111
В домашнем каталоге созданного пользователя (/ home / hostgeek) должна быть создана папка .ssh. Вероятно, вы уже находитесь в этом каталоге. Вы можете проверить это, введя команду:
pwd
Если он выводит другой каталог, перейдите к желаемому с помощью команды:
компакт-диск / главная / hostgeek
Теперь давайте создадим в этом каталоге папку .ssh с помощью команды:
mkdir .ssh
Вы можете проверить создание папки, посмотрев на текущую структуру каталогов с помощью команды:
ls -la
Установим права для этой папки:
chmod 700 .ssh/
Заходим в эту папку:
cd .ssh
Создадим в этой папке файл authorized_keys:
прикоснитесь к authorized_key
Установим права на этот файл:
chmod 600 authorized_keys
Вводим команду:
cat >> authorized_keys << EOF
Вставьте ключ, который вы скопировали из файла id_rsa.pub, и нажмите Enter. Вводим команду:
EOF
И снова нажмите Enter.
Отлично, мы скопировали и вставили наш ключ в authorized_keys. Вы можете проверить содержимое файла с помощью команды:
авторизованный_keys кот
Установка MySQL
1. Установите пакет командой:
apt установить mysql-server
В случае новой установки MySQL вам необходимо запустить сценарий безопасности. Измените некоторые настройки по умолчанию на более безопасные, например удаленный доступ для пользователей root и пользователей по умолчанию.
mysql_secure_installation
Эта команда просит вас внести изменения в настройки безопасности MySQL.
2. Установите системный плагин Validate Password, который позволяет проверить надежность паролей MySQL.
3. Затем установите пароль для пользователя root вашей установки MySQL. Выберите надежный пароль и введите его дважды.
Если вы введете тот же пароль, что и пароль корневого сервера, вы можете войти в оболочку MySQL, не вводя пароль. Он будет введен автоматически.
Теперь вы можете выбрать Y и нажать ENTER для всех последующих вопросов. Это приведет к удалению некоторых анонимных пользователей и тестированию баз данных, отключению удаленного входа в систему root и применению любых изменений, внесенных в установку MySQL.
Пример входа в оболочку при совпадении паролей:
mysql -uroot
Если они не совпадают:
mysql -uroot -p
Далее вам будет предложено ввести пароль.
Чтобы проверить, работает ли MySQL, выполните команду:
systemctl статус mysql.service
Если служба MySQL находится в неактивном состоянии, то ее необходимо запустить командой:
systemctl запустить mysql
Затем создайте базу данных и пользователя для нее.
Войдите в оболочку MySQL:
mysql -uroot
Команда для создания базы данных:
СОЗДАТЬ БАЗУ ДАННЫХ test_db;
Создание пользователя:
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ ‘test_user’ @ ‘localhost’, ОПРЕДЕЛЕННЫЙ ‘4MW2k24TM4f’;
вы можете добавить права пользователя для созданной базы данных. Например, вы можете предоставить пользователю доступ ко всем таблицам в базе данных, а также добавлять, изменять и удалять права пользователя с помощью следующей команды:
ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА test_db. * TO ‘test_user’ @ ‘localhost’;
База данных и пользователь созданы.
Выйдите из оболочки MySQL:
выход
Теперь вы можете войти в оболочку под созданным пользователем:
mysql -utest_user -p
Установка PHP
PHP устанавливается командой:
apt install php
После завершения установки проверьте версию.
Чтобы проверить установленные модули PHP, выполните команду:
php -m
Создание нового пользователя с административными правами
Добавляем в систему нового пользователя и даем ему права администратора.
sudo adduser джон
Система задаст несколько вопросов. Сначала он попросит вас ввести пароль для этой учетной записи.
Введите свой пароль и, если хотите, заполните поля дополнительной информацией. Это необязательно, и вы можете просто нажать Enter, если вы хотите оставить поле пустым по умолчанию.
Проверим, добавлен ли пользователь john:
sudo cat / etc / shadow | grep john
Добавьте нового пользователя в группу sudo:
sudo usermod -aG sudo john
Давайте переключим пользователей и проверим их права:
su — john sudo whoami
Чтобы повысить безопасность вашего сервера, мы настоятельно рекомендуем вам установить ключи SSH вместо использования аутентификации по паролю. Мы сделаем это чуть позже, а пока настроим межсетевой экран (firewall) для правильного функционирования SSH-соединений.
Выбор наборов ПО для инсталляции Ubuntu сервера
После установки системной базы вам будет предложена возможность выбрать соответствующие наборы программного обеспечения. На этом этапе вы можете сразу установить соответствующие роли, чтобы немедленно подготовить систему вывода для дальнейшей настройки. Вредна ли такая возможность, особенно в работе начинающих администраторов? На самом деле это действительно плохо.
Постараемся объяснить, почему такая ситуация плохая. В этом случае для администратора сама система останется своего рода «черным ящиком», не имеющим представления о назначении и роли отдельных пакетов для стабильной работы всей системы.
Поэтому лучше отказаться от предлагаемых системой вариантов и начать установку необходимых пакетов вручную. Благодаря этому администратор сможет лучше понять специфику системы, принципы взаимодействия отдельных ее компонентов.
Поэтому, когда появляется эта опция, мы ничего не выбираем — просто нажимаем Tab и нажимаем «Продолжить».
Мы рекомендуем вам пропустить этот шаг, не устанавливая его.
Пока идет дальнейшая установка системы, вы можете спокойно отдохнуть или пойти на кофе. Даже при работе с современными системами это требует времени.
В конце процесса установки вам будет предложено установить загрузчик. Лучше всего принять такое предложение для удобства нашей работы.
Затем вам будет предложено перезагрузить систему. После перезагрузки процесс установки полностью завершен — у нас есть полноценная операционная система, готовая к необходимой работе.
Настройка брандмауэра
Различные приложения могут зарегистрировать свой профиль в UFW после установки. Эти профили позволяют UFW управлять этими приложениями по имени. OpenSSH (служба, позволяющая подключаться к серверу) имеет собственный профиль, зарегистрированный в UFW.
список приложений sudo ufw
Мы разрешаем SSH-соединения, чтобы мы могли подключиться в следующий раз:
sudo ufw разрешить OpenSSH
Активируйте брандмауэр:
sudo ufw enable
И снова проверяем статус:
sudo ufw статус
Теперь вы можете настроить аутентификацию на основе ключей SSH.
Добавление пользователя
1. Чтобы добавить пользователя, используйте команду:
добавить пользователя
+ логин на латинице.
лучше всего выбирать имя пользователя на основе имени сайта или домена. Поскольку сайтов может быть несколько, необходимо ограничить доступ и не путать с именами пользователей.
тестовый сайт adduser
2. Далее система попросит вас ввести пароль для пользователя и подтвердить его. Остальные поля можно оставить пустыми.
3. Подтвердите, что информация введена правильно, нажав Y + Enter.
4. Пользователь добавлен. Домашний каталог создается в / home.
Каталог / home / testsite был создан для нашего пользователя.
В него мы поместим файлы тестового сайта.
Если вам нужно предоставить созданному пользователю повышенные права (sudo), выполните следующую команду:
usermod -aG sudo testsite
Параметр -aG указывает системе добавить пользователя в соответствующую группу.
Первоначальная настройка ubuntu server 14.04.1 LTS
Прежде всего, активируем учетную запись root. По умолчанию он отключен. Для активации введите в консоли
sudo пароль root
Сначала мы вводим пароль текущего пользователя, затем дважды новый пароль для root. Если все было сделано правильно, вы увидите следующее изображение
Теперь проверим. Введите в терминал:
на —
* Эта команда зарегистрирует пользователя root в системе
когда будет предложено ввести пароль, введите пароль, который вы ввели для root. Если все сделано правильно, приглашение консоли изменится с srvadmin @ srv-01: $ _ на root @ srv-01: ~ # _
Хороший! Чтобы двигаться дальше. Теперь приступим к настройке сетевых карт, вводим в терминал:
нано / и т д. / сеть / интерфейсы
откроет файл интерфейсов в текстовом редакторе nano. По умолчанию этот файл выглядит так
Добавим в этот файл следующие строки:
auto eth0 iface eth0 inet static address 10.10.60.45 netmask 255.255.255.0 gateway 10.10.60.1 auto eth1 iface eth1 inet static address 192.168.0.1 netmask 255.255.255.0
Затем мы автоматически подключаем оба интерфейса со статическим адресом, масками и шлюзом для первой карты. В терминале это должно выглядеть так:
После ввода данных нажмите Ctrl + O (Сохранить), затем Ctrl + X (Закрыть).
Чтобы перезапустить сеть, введите по очереди каждую из строк в терминале:
(ifdown eth0; ifup eth0) & (ifdown eth1; ifup eth1)&
Теперь давайте проверим, что выдает ifconfig. Мой вывод выглядит так, у вас должно быть то же самое
Хороший! пингуем ya.ru, набираем в терминале
пинг ya.ru
Если вы видите обмен посылки, значит все нормально! У вас есть интернет!
В моем случае не все пошло так, как я хотел. Пингуя яндекс, я получил такой ответ
пинг: неизвестный хост ya.ru
даже если IP-адрес 8.8.8.8 (Google DNS) ping. В результате проблема с DNS на нашем сервере, то есть он не может обрабатывать имена.
Я нашел решение проблемы, добавив DNS-адрес Google в файл /etc/resolvconf/resolv.conf.d/tail.
Откройте файл sudo nano /etc/resolvconf/resolv.conf.d/tail и вставьте туда строку
сервер имен 8.8.8.8
сохраняем и закрываем файл, пробуем пинговать сайт яндекса и все
Имея Интернет, давайте продолжим.
Аутентификация пользователя на основе SSH-ключей
Этот шаг не является обязательным, но он значительно повысит безопасность вашего сервера. Поэтому рекомендуем его не терять.
Сначала мы генерируем SSH-ключ с помощью команды (не забудьте отключиться от сервера, запустите команду на локальной машине!):
ssh-keygen
Путь к ключевой локации можно оставить стандартным. Вы можете придумать и ввести кодовую фразу (секретную фразу). Или вы можете просто оставить все по умолчанию, нажав Enter:
Теперь этот ключ нужно скопировать на сервер. В Windows вам нужно будет вручную скопировать ключ. Перейдем к делу.
Подключаемся к серверу:
пользователь ssh @ ip_address
В домашнем каталоге созданного пользователя (/ home / john) должна быть создана папка .ssh. Скорее всего, вы уже находитесь в этом каталоге. Вы можете проверить это с помощью команды:
pwd
Если вы находитесь в другом каталоге, перейдите в нужный нам с помощью команды:
cd / home / john
Здесь мы создадим каталог .ssh:
mkdir .ssh
Проверяет создание каталога и отображает текущую структуру каталогов:
ls -la
Установим права для этой папки:
chmod 700 .ssh/
Заходим в эту папку:
cd .ssh
Создадим в этом каталоге файл authorized_keys:
прикоснитесь к authorized_key
Установим права на этот файл:
chmod 600 authorized_keys
Вводим команду:
cat >> authorized_keys << EOF
Курсор переместится на новую строку, ожидая ввода от вас:
Перейдите в папку на локальном компьютере, где был сгенерирован ключ, и откройте файл id_rsa.pub с помощью любого текстового редактора. Скопируйте весь текст из этого файла. Копируйте аккуратно, не ловя пробелы в начале и конце строки!
Вставьте ключ, который мы скопировали из файла id_rsa.pub, и введите команду:
EOF
Жмем Enter.
Отлично, мы скопировали и вставили наш ключ в authorized_keys. Вы можете проверить содержимое файла с помощью команды:
авторизованный_keys кот
Теперь при подключении к серверу по SSH пароль для подключения запрашиваться не будет.
Настройка часового пояса
1. Проверьте текущие настройки часового пояса с помощью команды:
timedatectl
София указана в настройках
2. Измените настройку в вашем городе. В нашем случае это Киев.
Чтобы узнать правильное имя зоны, выполните команду для просмотра списка зон и фильтрации по имени:
timedatectl list-timezones | grep K
3. Установите свой часовой пояс:
timedatectl set-timezone Europe / Kiev
4. Проверьте изменения:
timedatectl
Изменены настройки в Киеве
Затем перейдите к настройке службы http. В нашем примере мы будем использовать Apache 2. Также для будущего веб-приложения вам потребуются PHP и MySQL.
Установка Apache 2
Чтобы установить Apache 2, выполните команду:
apt устанавливает apache2
После установки нужно добавить http-порт к разрешенному для брандмауэра. Для этого воспользуйтесь командой:
ufw разрешить http
После завершения процесса установки Ubuntu запустит Apache. Веб-сервер уже должен быть запущен. Это можно проверить с помощью команды:
systemctl состояние apache2
Далее вам нужно зайти в браузер по адресу вашего сервера. Это должно быть:
- http: // имя домена (если домен направлен на сервер со стороны DNS).
- http: // IP-адрес вашего сервера;
Тестовая страница выглядит так:
По умолчанию Apache уже добавляется в автозагрузку при перезапуске сервера. Вы можете отключить это поведение с помощью следующей команды:
systemctl отключает apache2
Чтобы добавить службу при запуске:
systemctl включает apache2
Установка ubuntu server 14.04.1 LTS
Для установки сервера Ubuntu я подготовил виртуальную машину со следующими параметрами:
- Видеопамять: 12 Мб
- Оперативная память: 256 Мб
- Сетевые адаптеры: 1 — загляните в мир. 2 — следите за сетью
- Процессор: 1 ядерный 64-битный
- Винчестер: sata 10 Гб
Выбор этих функций обусловлен низкими требованиями к ресурсам операционной системы.
После присоединения образа диска к виртуальной машине загрузите ее, и если все пойдет хорошо, вы должны увидеть окно выбора языка установки
Выбираем русский язык и нажимаем «Enter». В открывшемся списке выберите «Установить сервер Ubuntu”
В следующем окне выберите свое местоположение. Выбираю «Российская Федерация”
Далее установщик предложит настроить клавиатуру или выбрать ее из списка. Нажмите «Нет», чтобы выбрать из списка
Выберите страну, для которой предназначена клавиатура
Выбираем планировку. Я просто выбрал «русский”
В следующем окне вам будет предложено настроить раскладки коммутатора. Выбирайте на свое усмотрение, я выбрал Alt + Shift, потому что уже привык к этой конкретной комбинации
Теперь подождем минуту, пока загрузятся надстройки. После загрузки компонентов появится окно выбора основного сетевого интерфейса. Я выберу eth0 в качестве основного, именно эта сетевая карта будет смотреть на мир и через нее будет выходить в интернет сервера
В следующем окне вас попросят выбрать имя для компьютера. Я назвал свой сервер «SRV-01”
Далее вам нужно ввести свой логин. Не путайте это с логином, просто с именем. Я присоединился к ивану малышеву
Но в следующем окне укажите имя пользователя (логин), под которым вы будете авторизованы в системе. Я указал srvadmin
После ввода логина придумайте и укажите пароль (рекомендуется использовать пароль, содержащий строчные и прописные буквы, а также цифры и символы). После ввода пароля его необходимо повторить в следующем окне во избежание ошибок
Далее вам будет предложено зашифровать домашний каталог. Я не буду хранить в нем ничего криминального или секретного, поэтому не буду шифровать
Далее необходимо выбрать «часовой пояс». Поскольку виртуальная машина получает доступ в Интернет через eth0, установщик самостоятельно определил, где я нахожусь, и я нажму «Да», поскольку он выбрал правильно. Если у вас этого не произошло или часовой пояс был выбран неправильно, выберите вручную
Далее необходимо выбрать место для установки системы. Эта фаза многих вводит в ступор, но бояться нечего, все просто!
Поскольку я устанавливаю сервер Ubuntu в учебных целях, я выберу второй вариант «Автоматически использовать весь диск», но если вы устанавливаете систему на настоящий жесткий диск, я рекомендую вам установить / usr, / var, / каталоги домой на разных логических дисках
Выбираем один диск (так у меня один, выбор небольшой), у вас может быть несколько, на случай, если к компьютеру подключено несколько жестких дисков. В следующем окне необходимо принять предупреждение о регистрации информации о разделе, нажать «Да”
Далее подтверждаем использование всего диска
В следующем окне установщик покажет, как разбить диск на разделы, мы соглашаемся, выбрав «Завершить разбиение на разделы и записать изменения на диск”
В следующем окне мы еще раз подтверждаем свои действия (как Windows напоминает вам, правда?)
А теперь ждем завершения установки Ubuntu Server 14.04.1 LTS.
Если во время установки Интернет был подключен к сети виртуальной машины, система попытается установить обновления, но сначала она спросит вас, есть ли у вас прокси, если у вас нет прокси, но Интернет идет напрямую, нажмите «Продолжить”
Когда меня спросили об установке регулярных обновлений, я выбрал «Без автоматических обновлений». Не люблю, когда я что-то надеваю без своего ведома. Все необходимое можно обновить вручную
В окне «выбор ПО» ставлю галочку только на «Сервер OpenSSH», именно через него мы будем получать удаленный доступ к серверу. Все остальное настроим позже, вручную
По окончании установки сервера вы должны согласиться установить загрузчик в главную загрузочную запись
После установки загрузчика вы увидите сообщение об успешной установке системы
Нажмите «Продолжить» и дождитесь перезагрузки машины. После первой загрузки вы должны увидеть запрос на вход, введите логин, указанный при установке, затем введите пароль
Если вы ввели правильное имя пользователя и пароль, вы войдете в систему и увидите этот экран
На этом установка сервера Ubuntu 14.04.1 LTS завершена.
Редактируем конфиг SSH
Откроем файл конфигурации SSH для редактирования:
sudo nano / etc / ssh / sshd_config
Найдите строку PermitRootLogin и установите для нее значение no. Поэтому отключим авторизацию от имени пользователя root:
PermitRootLogin нет
Найдите строку PubkeyAuthentication и раскомментируйте ее, удалив хэш (#). Вот как мы включаем возможность авторизации с помощью SSH-ключа:
PubkeyAuthentication да
Находим строку PasswordAuthentication. Раскомментируем его и установим значение no, отключив тем самым авторизацию по паролю:
Пароль Аутентификация нет
В конце файла в новой строке введите следующую команду, разрешив таким образом разрешение только указанным пользователям:
Разрешить пользователям hostgeek
И сохраните файл. Перезапустите SSH:
sudo service ssh перезагрузка
Выйдите из сервера и войдите снова:
ssh hostgeek@45.82.111.111
Сервер попросит вас ввести кодовую фразу, после чего авторизация будет успешной. Если вы сейчас попытаетесь войти в систему как root или какой-либо другой пользователь, сервер вернет ошибку входа в систему.
На этом настройка авторизации по ключу SSH завершена.