Приветствую всех habr'овчан! Это моя первая статья, поэтому прошу отнестись с пониманием. Хочу рассказать как я случайно получил в руки материнскую плату от ноутбука, еще пару комплектующих и решил попробовать сэкономить на хостинге и сделать некий «сервер» для моего сайта, которого еще нет :)
![Вот такой device у меня получился Вот такой device у меня получился](https://habrastorage.org/getpro/habr/upload_files/9ea/20f/3ba/9ea20f3ba123d737f787c6f6b5976b40.jpg)
Для моих нужд вполне подойдет. Потребление электроэнергии смешное, охлаждение пассивное, даже батарея живая, ее хватает примерно на 4 - 5 часов работы. Сайт будет совершенно простым - это мой учебный проект.
Кратко о характеристиках:
Процессор: Intel Atom processor E3800
Память: 2 Gb soDIMMM DDR3
Устройство хранения: FoxLine 8Gb HalfSlim SATA SSD
Сетевые интерфейсы:
Realtec RTL810xE Fast Ethernet controlle 100 Mbit
Realtec RTL8723BE PCIe Wireless Network Adapter
Установка Debian 11
Для начала я скачал iso-образ Debian 11, затем скачал Rufus и создал загрузочную флешку. Описывать особенно нечего, программа интуитивно понятная: просто выбираем образ для записи, выбираем носитель, но который этот образ писать и нажимаем start.
Загрузочная флешка готова - приступим к установке. Я не стал использовать графическую установку, а выбрал пункт Install.
![](https://habrastorage.org/getpro/habr/upload_files/f6a/d26/56c/f6ad2656c3046497ec6e769e5ef38da1.png)
Первый экран - это выбор языка (я выбрал English), затем предлагается выбрать страну (мой выбор: other - Europe - Russian Federation), далее locale (United States), наконец, раскладка клавиатуры (American English). А вот после этого у меня выпало такое сообщение:
![прошу прощения за качество картинки прошу прощения за качество картинки](https://habrastorage.org/getpro/habr/upload_files/816/51a/64f/81651a64f32e106e9c10bf2a2b9994da.jpg)
Сообщение говорит примерно следующее: некоторое из устройств требует не бесплатное (несвободное) микропрограммное обеспечение. Оно может быть загружено с внешнего носителя, например с флешки. В моем случае у материнской платы только два usb-порта: один занят клавиатурой, другой - флешкой, с которой устанавливается система. Но есть еще и кард-ридер!
Я нашел карту SD и, записав на нее требуемый файл (сслыка на rtl8723befw_36.bin), нажал yes. Теперь будет работать wi-fi модуль. После этого выпадает окно с выбором сетевого адаптера, который будет нами использоваться. Я выбрал wi-fi.
Тут многие скажут - СТОП, wi-fi канал уже проводного и будут правы, но я делаю не профессиональный хостинг, это просто проект для саморазвития, к тому же разве не интересно, как это будет работать после того как установщик подхватил прошивку ;) Итак, выбираю wi-fi модуль и в следующем окне вижу доступные беспроводные сети. Выбираю свою nik’s_wireless, ввожу пароль и все подключилось.
Далее задал имя хоста (debian), имя домена (lan), пароль root, полное имя пользователя (Nikolai Kutuzov), имя учетной записи (nikkutuzov), пароль учетной записи, часовой пояс.
Потом работа с разделами (Guided - use entire disk), выбор диска, на который будем устанавливать систему. Схему я выбрал рекомендуемую (All files in one partition). Нажимаю Finish partitioning and write changes to disk - заканчиваю с разметкой и записываю изменения на диск. Настраиваю менеджер пакетов (Russian Federation - proxy (если не используется прокси, оставьте строку пустой) - deb.debian.org - NO). Я почти у финиша и мне предлагают выбрать какое программное обеспечение установить, я оставил звездочки только у web server и ssh server:
![](https://habrastorage.org/getpro/habr/upload_files/9e3/4ee/818/9e34ee818d6d339bf3fdd3098bdb1940.png)
На запрос об установке Grub даю положительный ответ, выбираю диск, на который его установить. На следующем экране вижу сообщение об окончании установки, нажимаю continue и после перезагрузки вижу:
![](https://habrastorage.org/getpro/habr/upload_files/77e/5ca/d0d/77e5cad0d41dfc24884436b9b3db2e0d.png)
Настройка Wi-Fi
Во время установки я подключился к своей wi-fi сети, но после перезагрузки подключения нет. Первым делом ЛОКАЛЬНО логинимся под root’ом и выполняем команду:
# /sbin/iwconfig
![](https://habrastorage.org/getpro/habr/upload_files/523/ffd/946/523ffd946556242ab9de5d66cf25d8d3.jpg)
wlp4s0 - это наш интерфейс (у Вас может называться по-другому), он не подключен ни к одной сети. Сейчас все исправим.
Ограничим права пользователей на файл для защиты ключа (pre-shared key) (PSK):
# chmod 0600 /etc/network/interfaces
Отредактируем файл:
# nano /etc/network/interfaces
«auto» подключит интерфейс wlp4s0 при запуске системы. Если этого не требуется, можно удалить или закомментировать эту строку.
для получения адреса по DHCP - используется слово dhcp:
![](https://habrastorage.org/getpro/habr/upload_files/027/244/43e/02724443e3bf2d4299bfd37b76427bc4.jpg)
Для статического адреса исползуется слово static:
![](https://habrastorage.org/getpro/habr/upload_files/f3e/4e6/2e2/f3e4e62e29383d48b7f7b9777bbaabe4.jpg)
Меня интересуют только строки address - это будет ip-адрес этого компьютера, netmask - маска подсети, gateway - основной шлюз и dns-nameservers - ip-адрес dns-сервера (я прописал сервер от google). Далее идут wpa-ssid - это имя Вашей беспроводной сети, а wpa-psk - ее пароль. Я использую статический адрес, который указан на скриншоте. Сохраняем изменения в файле (ctrl+o), закрываем файл (ctrl+x) и перезагружаемся:
# systemctl reboot
Настройка sudo
После перезагрузки будет доступен вход через ssh, чем я и воспользуюсь. Я покажу на примере MacOS, потому что сам пользуюсь именно этой системой. Я думаю, что на остальных системах подключение по ssh не станет проблемой.
В терминале набираю ssh nikkutuzov@192.168.1.111, где nikkutuzov - имя пользователя (не root’а), а 192.168.1.111 - ip-адрес, указанный мною выше. Ввожу пароль и вуаля - я в системе. Для начала я установил sudo, чтобы не работать под root’ом. Выполняется в три команды:
$ su
- чтобы переключиться на root’а и вводим пароль
# apt update
- обновить список пакетов
# apt install -y sudo
- устанавиваем sudo
После установки набрал команду:
# visudo
![](https://habrastorage.org/getpro/habr/upload_files/528/f9c/4bc/528f9c4bc70ee1cc5b2b2f2dbf71a00c.png)
Перехожу на строчку после root ALL=(ALL:ALL) ALL и пишу там nikkutuzov ALL=(ALL:ALL) ALL, где вместо nikkutuzov укажите имя своего пользователя.
![](https://habrastorage.org/getpro/habr/upload_files/907/ce7/c94/907ce7c94548f4170d900b2e1a9d246c.png)
Сохраняю изменения в файле (ctrl+o), выхожу из nano (ctrl+x) и переключаюсь с root на своего пользователя:
# su nikkutuzov
![](https://habrastorage.org/getpro/habr/upload_files/2b5/bb9/8ff/2b5bb98ff1fd68c627937674db7349b1.png)
Настройка FTP
Чтобы настроить FTP выполняю следующие команды. Кстати, теперь можно ощутить всю прелесть sudo. Воспользуюсь установленным ранее sudo:
$ sudo apt install vsftpd
- для установки vsftpd (сслыка на Wikipedia)
$ sudo systemctl status vsftpd
![](https://habrastorage.org/getpro/habr/upload_files/187/b03/71a/187b0371afea53460508b17dc88cd961.png)
active (running)
- говорит, что все работает и все хорошо.
Теперь создам уникального пользователя для ftp:
$ sudo adduser ftpuser
Добавляю созданного пользователя FTP в список разрешенных пользователей для входа:
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
Создам и назначу соответствующие права доступа к каталогу и права собственности:
$ sudo mkdir -p /home/ftpuser/ftp_dir
$ sudo chmod -R 750 /home/ftpuser/ftp_dir
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir
![](https://habrastorage.org/getpro/habr/upload_files/b91/dc3/559/b91dc35599fef8bf0813d230f8da7654.png)
Потребовалось еще несколько манипуляций для окончательной настройки. Для этого немного поправил файл конфигурации, предварительно установив vim:
$ sudo apt install -y vim
$ sudo vim /etc/vsftpd.conf
Я не буду перечислять каждую строку отдельно, а лучше покажу на скриншотах, что нужно раскомментировать, что изменить и что добавить. Если кто-то захочет повторить мой опыт или просто взять часть информации, я буду только рад, но эта статья не является руководством.
![](https://habrastorage.org/getpro/habr/upload_files/582/784/7d5/5827847d5a760359cb3f5e5f01190e4a.png)
![](https://habrastorage.org/getpro/habr/upload_files/892/961/56d/89296156de6794df91365067d9cbf965.png)
![](https://habrastorage.org/getpro/habr/upload_files/7c9/0d3/02f/7c90d302fcf45e00321c550f848509c0.png)
Перезапустил службу и проверил ее статус:
![](https://habrastorage.org/getpro/habr/upload_files/6e7/bbc/046/6e7bbc046a74d504d5d61500d6feae79.png)
Проверяю работоспособность:
![](https://habrastorage.org/getpro/habr/upload_files/0e9/9a7/ca7/0e99a7ca7ece3512cc80d4eba64aa5c2.png)
Настройка mariadb
Следующим этапом была настройка базы данных. Я использую mariadb. Её установка производится простой командой:
$ sudo apt install -y mariadb-server
![](https://habrastorage.org/getpro/habr/upload_files/928/258/70e/92825870e60443de0a47ef831390ed38.png)
После установки нужно выполнить скрипт первоначальной настройки:
$ sudo mysql_secure_installation
Вся предварительная настройка сводится к нескольким ответам:
Ввести пароль root для текущей базы данных (не путать с root’ом системы!). Он пустой, поэтому просто нажимаю enter;
При установке на системы Debian пользователь root MariaDB настроен для аутентификации с помощью плагина unix_socket , а не с помощью пароля. Во многих случаях это обеспечивает более высокую безопасность и удобство, однако это также может осложнить ситуацию, если вам нужно предоставить права администратора внешней программе (например, phpMyAdmin). Поэтому на предложение использовать этот плагин я ответил отрицательно, так как позже планирую поставить phpMyAdmin;
На предложение установить пароль root’а нажимаю n. Дело в том, что в Debian учетная запись root для mariadb тесно связана с автоматизированным обслуживанием системы, так что мы не должны менять этот пароль. Позже я настрою дополнительную учетную запись для доступа через пароль;
На вопрос об удалении анонимных пользователей отвечаю «y»;
На запрет подключения под root’ом удаленно отвечаю «y»;
Удалить тестовую базу данных - «y»;
Наконец, сохраняем изменения, ответив на последний вопрос «y».
![](https://habrastorage.org/getpro/habr/upload_files/adc/eb7/783/adceb778334942ad8fb0076c859a6e70.png)
Теперь, как я говорил в пункте 3, настраиваю дополнительную учетную запись для входа под паролем:
$ sudo mariadb
MariaDB [(none)]> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
Проверяю:
$ mariadb -u admin -p
![](https://habrastorage.org/getpro/habr/upload_files/778/34b/b13/77834bb13be03352e61adba43a3b1660.png)
Установка и настройка php и phpMyAdmin
В дальнейшем потребуется создание базы данных и пользователя для нее. Самый удобный способ по моему мнению это phpMyAdmin, его и установим. Для начала нужно установить несколько пакетов:
$ sudo apt install -y php libapache2-mod-php php-mysql
Потом поправить файл:
$ sudo vim /etc/apache2/mods-enabled/dir.conf
Он должен выглядеть вот так:
![](https://habrastorage.org/getpro/habr/upload_files/6eb/4a0/755/6eb4a075579e96960c84a18f564f381b.png)
Записываем изменения в файле и перезапускаем apache:
![](https://habrastorage.org/getpro/habr/upload_files/8ac/5aa/980/8ac5aa9804319ff83e6935d12ad967bd.png)
Устанавливаю phpMyAdmin:
$ sudo apt install -y phpmyadmin
Во время установки откроется несколько окон настройки, делаем все как на скриншотах (пароль я установил такой же как и при настройке дополнительного пользователя mariadb):
![](https://habrastorage.org/getpro/habr/upload_files/b44/1f1/36b/b441f136ba71f31ae42bb17b6b711e7e.png)
![](https://habrastorage.org/getpro/habr/upload_files/8b8/2b5/fef/8b82b5fef65c5c65c85d0e6d89754110.png)
![](https://habrastorage.org/getpro/habr/upload_files/41e/bd0/40b/41ebd040b501e08f71e488ee131db2e5.png)
![](https://habrastorage.org/getpro/habr/upload_files/0c1/0ea/c89/0c10eac89131ac8c4fa37bb36e339a14.png)
Проверяем сначала apache, он должен был работать с самого начала без какой-либо настройки, для этого в строке браузера набираем ip-адрес нашего «сервера», в моем случае 192.168.1.111:
Работает! Проверим phpMyAdmin - 192.168.1.111/phpmyadmin:
Попробуем залогиниться:
Вся настройка прошла без проблем. Никаких нюансов мне не встретилось. Надеюсь, что у остальных, кто захочет сделать тоже самое по моему описанию, все пройдет также гладко. Далее нам нужен статический ip-адрес - его предоставляет (за отдельную плату, естественно) провайдер, доменное имя (уже лет пять как куплено, но до сего дня так и не использовал) и так как у меня «сервер» за файрволом роутера на openWRT, нужно открыть нужные порты. Это я опишу в следующей статье.
Также будет описан способ настройки виртуальных хостов, получение сертификата для будущего сайта (бесплатно!) и установка wordpress. Информации получилось много, возможно, нужно было разбить на несколько частей, но получилось как получилось.
Список информационных источников:
https://wiki.debian.org/ru/WiFi/HowToUse
https://ru.wikipedia.org/wiki/Vsftpd
https://setiwik.ru/kak-ustanovit-i-nastroit-ftp-server-vsftpd-v-debian-11/