- Настройка домашнего сервера на базе Debian
- Настройка
- Настройка screen + rtorrent
- Настройка apache, ftp, nfs
- Настройка клиентских машин
- Настройка mpd + relaxxplayer + icecast
- Заключение
- Первоначальная настройка сервера с Debian 11
- Подключение к серверу пользователем root
- Создание нового пользователя
- Предоставление привилегий администратора
- Базовая настройка брандмауэра
- Авторизация с использованием SSH-ключей
Настройка домашнего сервера на базе Debian
Хочу рассказать вам о том, как я реализовал дома серверное решение 🙂
Прошу строго не судить, т.к. это первая моя публикация на хабрахабр, и русский — не родной мне язык.
Так что все исправления приветствуются.
Речь пойдет о:
Старом компьютере на базе VIA Ezra с 256 мегабайт оперативной памяти, работающем на базе Debian Etch, выполняющем функции музыкального плеера, торрент-клиента, web+ftp+nfs сервера.
Дополнительное оборудование: 2 ноутбука (Dell, Asus) на базе Ubuntu, Fedora и Wi-Fi рутер/DSL-модем D-link DSL-2640u.
Один мой друг на Новый Год подарил мне сие творение инженеров прошлого века:
Было решено, что тазик простаивать зря не должен. Debian потому, что дистрибутив стабильный и простой в настройке/использовании.
Процесс установки ОС описывать не буду — задача понятная, да и в интернете достаточно помощи по этому делу. Сразу перейду к настройке.
Настройка
Т.к. ноутбуки у меня подключены через wi-fi, а сервер я подключил через витую пару — все компьютеры находятся в локальной сети.
Первым делом я установил ssh и отключил монитор, разместив машину в укромном месте, чтоб не мешалось.
Необходимо на рутере пробросить порты для доступа к серверу извне.
Я сделал DHCP-резервацию по MAC-адресам, и мой сервер всегда будет иметь локальный адрес 192.168.1.2
Скриншот из админки рутера:
Вы видите, что я открыл порты для web, ftp, shoutcast и ssh.
Тут важно знать, что внешние адреса для некоторых (и моей в часности) моделей рутеров не будут работать из локальной сети.
Т.е. если я наберу на ноутбуке мой_внешний_айпи_адрес:21 — то я ничего не увижу.
Теперь сервер виден из сети.
Подключимся по ssh и проведем настройку.
По умолчанию Debian использует Gnome как оконный менеджер, но он кушает оперативную память, поэтому мы его отключим.
Делается это очень легко:
Вариант от gribozavr
apt-get install sysv-rc-conf
sysv-rc-conf
UPD: либо так, предложил Greignar
update-rc.d -f gdm remove
Сохраняем, перезагружаемся.
Вуаля! Gnome отключен.
Таким образом можно поотключать ненужные нам сервисы.
Так получилось, что мой домашний провайдер не предоставляет мне статического айпи-адреса, поэтому пришлось искать решение.
Я остановился на dyndns.com. Сервис, который бесплатно предоставляет домен третьего уровня + возможность серверным софтом обновлять айпи для данного домена, при изменении оного.
Регистрируемся, добавляем новый аккаунт, качаем inadyn, ставим в автозагрузку с помощью update-rc.d
update-rc.d inadyn defaults
Теперь мы имеем домен, который всегда будет привязан к нашему серверу!
Настройка screen + rtorrent
Решение пало на эту связку, т.к. rtorrent — не демонической природы, а нужно, чтоб он работал в фоне.
Если вы еще не знаете, что такое screen, зайдите на сайт GNU Project.
Установим нужные нам пакеты:
apt-get install screen rtorrent
Я создал скрипт автозагрузки:
#!/bin/sh
screen -d -m rtorrent
echo «Started. »
И добавил его, опять же, через update-rc.d
Поясню: при загрузке сервера в фоновом режиме запускается screen с запущенным внутри rtorrent.
directory = /data/downloads/
schedule = watch_directory,5,5,load_start=/data/torrents/*.torrent
Теперь наш торрент-клиент складывает закачки в папку /data/downloads/, и каждые 5 секунд проверяет папку /data/torrents/ на наличие новых torrent-файлов.
Настройка apache, ftp, nfs
Для работы с веб-клиентами mpd нужен веб-сервер. Я выбираю apache. Для работы с веб-клиентами плеера нам еще потребуется php.
Также, nfs для монтирования сетевых дисков, и ftp для просто доступа к файлам.
Тут все очень просто:
apt-get install apache2 libapache2-mod-php5 php5-cli php5-common php5-cgi proftpd nfs-kernel-server
Отлично, все пакеты установлены, демоны запускаются автоматически.
В конфиге proftpd нужно добавить одну строчку для того, чтобы пользователи локальной системы могли логиниться как ftp-пользователи:
При логине на ftp-сервер пользователь попадает в домашнюю директорию.
Для nfs-сервера я расшарил одну папку /data:
Это говорит о том, что пользователи локальной сети имеют право на чтение и запись папки /data на сервере.
Перезагружаем демоны:
/etc/init.d/proftpd restart
/etc/init.d/nfs-kernel-server restart
Все, NetFileSystem и FTP готовы к работе.
Настройка клиентских машин
Для удобной работы с nfs я сделал запись в fstab:
192.168.1.2:/data /server/data nfs rw,hard,intr 0 0
После достаточно написать
sudo mkdir /server/data
sudo mount /server/data
И мы увидим папку из файловой системы сервера!
Настройка mpd + relaxxplayer + icecast
Mpd — отличный плеер-демон, для которого есть множество gui. Как и Qt, GTK+, так и web-based.
Остановимся на веб-интерфейсе, т.к. мне это показалось наилучшим вариантом.
apt-get install mpd icecast2
Для установки клиента для плеера нужно скачать исходники с домашнего сайта и распаковать их в /var/www
Apache у нас уже запущен, поэтому набрав адрес 192.168.1.2 мы увидим собственно плеер.
Немного из настройки mpd:
Я указываю плееру, что мои музыкальные файлы лежат в директории /mnt сервера.
А теперь самое интересное!
Я решил пойти путем монтирования на сервере nfs-директории лептопа, в которой содержится музыка.
Установив на ноутбуке nfs-kernel-server и расшарив папку /home/romantik/music я подмонтировал ее на сервере в директорию /mnt/music
Теперь, обновив базу даных mpd
мы увидим в ней музыку с лептопа 🙂
При воспроизведении байты данных риал-тайм несутся по локальной сети.
Удобнее и не придумаешь, теперь я практически независим от проводов 🙂
В настройках mpd раскомментировав блок shoutcast мы получаем вещание в сеть стрим-потока прямо из плеера.
Доступно оно по адресу 192.168.1.2:8000
Заключение
Для меня это было серьезным шагом в мир полнофункциональной консоли. Скажу вам, испытываю только удобство от проделанных процедур 🙂
А что посоветуете реализовать на сервере вы?
Первоначальная настройка сервера с Debian 11
При установке чистой операционной системы Debian 11 необходимо сделать несколько несложных шагов по её настройке, которые являются частью базовой конфигурации виртуального сервера. Эти настройки позволят повысить уровень безопасности вашего VPS и дадут вам твёрдую основу для дальнейших с ним манипуляций.
Далее мы изучим, как авторизоваться на сервере пользователем root, создать новую учётную запись с полномочиями суперпользователя, а также произвести начальные настройки брандмауэра.
Подключение к серверу пользователем root
Для первого подключения к виртуальному серверу вам нужно знать его IP-адрес. Также вы должны знать пароль для учётной записи root. Эти данные вы можете увидеть в личном кабинете вашего VPS.
Непосредственно подключение к VPS осуществляется из командной строки следующей инструкцией:
- root – имя учётной записи, под именем которой производится подключение;
- 194.87.214.253 – IP-адрес сервера.
При первом подключении система может выдать вам предупреждение о подлинности хоста. Чтобы принять данное предупреждение, наберите yes .
Пользователь root – это административная учётная запись в среде Linux, имеющая очень широкие полномочия. Из-за того, что данный пользователь владеет такими повышенными привилегиями, крайне нежелательно использовать его на регулярной основе. Связано это с тем, учётная запись root может быть применена для внесения в вашу систему деструктивных изменений вплоть до потери работоспособности.
На следующем этапе первоначальной настройки сервера мы создадим альтернативного пользователя с полномочиями меньшего уровня. Такую учётную запись можно будет более безопасно использовать в повседневной работе.
Создание нового пользователя
После того, как вы зарегистрировались в системе с помощью пользователя root , необходимо создать новую учётную запись, которую вы будете использовать далее.
Для создания нового пользователя наберите следующую команду:
Здесь new-user – имя новой учётной записи, в качестве которого вы можете выбрать какое-либо своё. При создании нового пользователя система попросит сначала дважды ввести пароля для этой учётной записи. После этого нужно будет ответить на несколько вопросов, которые будет задавать система. Что-либо вводить при этом необязательно, можно просто нажимать Enter .
Предоставление привилегий администратора
Теперь, когда мы создали новую учётную запись, необходимо наделить её администраторскими полномочиями, чтобы выполнять задачи, требующие их наличия. Выполнение инструкции от имени суперпользователя производится при помощи команды sudo . Для того, чтобы наш новый пользователь мог запускать команду sudo , его необходимо добавить в соответствующую группу.
Теперь вы сможете выполнять команды от имени учётной записи root , зарегистрировавшись при этом в системе под вашим новым пользователем. Но сначала вы должны проинсталлировать sudo на свой VPS обновив списки пакетов:
# apt update # apt install sudo
На практике применение данной команды выглядит как добавление слова sudo перед исполняемой инструкцией:
$ sudo your_executable_command
Базовая настройка брандмауэра
В операционных системах семейства Debian используется межсетевой экран, разрешающий определённые подключения к серверу. Такой брандмауэр называется Uncomplicated Firewall (UFW). С его помощью вы сможете произвести настройки политики безопасности, а также, управлять её исключениями.
Установка брандмауэра производится следующей командой:
После завершения инсталляции у вас появится возможность управлять наборами правил межсетевого экрана для установленных приложений. Для большинства распространённых программ профили по умолчанию поставляются в комплекте с UFW. Дополнительные профили можно регистрировать в брандмауэре в процессе дальнейшей настройки.
Список всех доступных профилей приложений доступен по команде:
Чтобы разрешить подключения к вашему серверу по SSH, запустите на выполнение следующую команду:
Активация межсетевого экрана производится при помощи команды:
Чтобы увидеть текущее состояние брандмауэра, наберите:
Вывод данной команды говорит нам о том, что межсетевой экран блокирует все соединения с сервером кроме SSH.
Настроить брандмауэр можно таким образом, чтобы это соответствовало вашим требованиям. Например, вы можете разрешить доступ к VPS только с хостов со строго определёнными IP-адресами:
$ sudo ufw allow from XXX.XXX.XXX.XXX
Таким же образом можно ограничить доступ к серверу какой-либо определённой подсетью:
$ sudo ufw allow from XXX.XXX.XXX.0/24
Плюс ко всему у вас есть возможность разрешить подключения только к строго определённому порту. Например, использование следующей команды открывает доступ к серверу только для подключений по SSH, где используется порт 22.
$ sudo ufw allow from XXX.XXX.XXX.XXX to any port 22
Авторизация с использованием SSH-ключей
Чтобы повысить уровень безопасности вашего виртуального сервера, можно настроить на нём авторизацию при помощи SSH-ключей.
Для этого сначала необходимо создать SSH-ключ. На вашей рабочей станции, с которой вы подключаетесь к серверу, в командной строке наберите:
Данная команда как раз и генерирует SSH-ключ. При генерации ключа вы можете изменить или оставить по умолчанию имя файла ключа и его расположение. Также необходимо будет дважды набрать парольную фразу, если она нужна. В случае, если вы хотите подключаться к серверу без использования каких-либо паролей, вместо ввода парольной фразы просто нажимайте Enter .
В результате на вашей рабочей станции появятся два файла: публичный ключ сервера id_rsa.pub и ваш приватный ключ id_rsa .
После этого подключитесь к вашему VPS и перейдите в домашнюю директорию:
Созданному каталогу назначьте необходимые права:
Далее, перейдите в директорию .ssh и создайте в ней файл authorized_keys . Данному файлу назначьте права 600 :
$ cd .ssh $ touch authorized_keys $ chmod 600 authorized_keys
После чего откройте его для редактирования:
В этот файл необходимо скопировать содержимое файла id_rsa.pub с вашей локальной рабочей станции. При этом не следует копировать пробелы, расположенные после последнего символа. После чего закройте файл authorized_keys с сохранением внесённых изменений.
Результатом произведённых настроек должна стать возможность подключаться к вашему VPS без использования пароля учётной записи.
Чтобы совсем закрыть доступ к серверу для авторизации с использованием паролей, отредактируйте файл /etc/ssh/sshd_config:
$ cd /etc/ssh/ $ sudo nano sshd_config
В этом файле следует раскомментировать строку PasswordAuthentication и установить её значение в no . После чего перезапустите службу SSH: