Чому не Ubuntu Server, запитаєте ви? А тому що, перше - Debian це синонім слова «стабільність», і друге - в репозиторіях Debian лежить більш 43000 пакетів ПО. З цих двох причин з'являється третя - гіперпопулярність Debian-а, величезна ком'юніті і невичерпне кількість інформації по ОС.
Для вірності знімний диск коштує попередньо відформатувати в FAT32, тому що деякі старі материнські плати не вміють завантажуватися з NTFS-флешок.
Отже, вставляємо «пропалені» флешку в майбутній сервер і включаємо його. Але попередньо зайдемо в BIOS. виставимо порядок завантаження, перемістивши знімні диски на перше місце. Зберігаємо зміни, перезавантажується. У меню тиснемо «Install».
Відразу вибираємо мову, країну і розкладку клавіатури. Коли буде завантажено необхідні компоненти, нам буде запропоновано ввести мережеве ім'я ПК і ім'я домену, яке ми залишимо порожнім.
Далі необхідно створити основну обліковий запис, від імені якої ми будемо працювати більшу частину часу. Вводимо повне ім'я користувача, ім'я облікового запису (логін), і двічі пароль. Чекаємо, поки підтягнеться мережу і завантажаться потрібні файли.
Тепер нам запропонують розмітити диск і настроїти менеджер логічних томів LVM. Оскільки у нас не серйозний сервер великої корпорації, виберемо автоматичну розмітку з налаштуванням LVM.
Далі вибираємо диск для розмітки (скрішоти робилися в віртуальній машині з одним жорстким диском).
У наступному вікні має бути вибір: скласти всі фали в один розділ, встановити систему в / boot, а призначені для користувача файли в / home, або той же, але ще з / var та / tmp. Виберемо друге, бо ж поки що var і tmp нам не потрібні, а в першому випадку, при можливій перевстановлення системи, ми втратимо всі свої файли. А якщо відвести під наші потреби окремий розділ home, то при перевстановлення або установці будь-якого іншого дистрибутива, досить буде просто подмонтировать / home, і всі файли знову будуть доступні. Погоджуємося на внесення змін, дивимося, що і як буде розмічено, погоджуємося, і ще раз погоджуємося.
Поки встановлюється базова система, приведу конфігурацію мого тестового сервера:
«Динозавр класичний» вийшов.
Після нам запропонують взяти участь в програмі збору статистики використання пакетів. Тут вибираємо за власним бажанням. Я відповів «ні».
А ось тепер нам заманливо пропонують вибрати, який додатковий софт необхідно встановити. Але, оскільки у нас сервер, то знімаємо зірочку з оточення робочого столу, ну і заодно з сервера друку (потім все необхідне доустановити вже в системі), залишивши тільки стандартні утиліти.
Коли притягнуться і налаштуються стандартні утиліти, погоджуємося на установку завантажувача. і вказуємо, куди його ставити. Ще півхвилини налаштувань і, як тільки побачимо повідомлення про вдале завершення установки, виймаємо флешку і тиснемо «Продовжити». Система встановлена.
Після перезавантаження перше, що ми побачимо - це менеджер завантаження GRUB.
Перший пункт меню «Debian GNU / Linux» завантажиться автоматично через 2 секунди, тому просто чекаємо. І бачимо вітання. Входимо, ввівши свій логін і, за запитом, пароль. Далі робити скріншоти безглуздо, тому я обмежуся введенням і висновком терміналу.
Що б мати можливість запускати програми від імені адміністратора, необхідно встановити утиліту під назвою sudo. Виконуємо в терміналі:
за запитом вводимо пароль. Тепер ми працюємо від імені суперкористувача і зараз найголовніше - думати, що ми робимо, адже один необережний видалення, і система може більше не завантажитися. Для установки sudo пишемо:
apt-get install sudo
Коли sudo встановиться, додамо нашого користувача в групу sudo:
adduser username sudo
Перед подальшої налаштуванням приймемо за даність, що в інтернет всі наші пристрої ходять через роутер. У моєму випадку це Huawei HG532e.
За ідеєю, сервер повинен тихо і непомітно виконувати свою роботу, стоячи, наприклад, в коморі або підвалі (якщо приватний будинок). Але сервером все так же потрібно управляти. Кращий і загальноприйнятий спосіб - це термінал через мережевий протокол SSH. Для цього нам знадобиться SSH-сервер. виконуємо:
sudo apt-get install ssh
sudo nano / etc / ssh / sshd_config
Оскільки на пост-радянському просторі з IPv6 все ще погано, обмежимо підключення тільки протоколом IPv4. Відразу після порту вставляємо новий рядок:
Повертаємося в початок. Оскільки ми вже набудували sudo, заборонимо вхід через SSH під root-ом. Правимо рядок:
Йдемо далі. Оскільки ми не будемо використовувати графічне середовище, відключимо форвардного сервера вікон X11 через ssh:
sgtatham / putty / download.html) з усіма необхідними утилітами відразу, розпаковуємо і запускаємо PuTTYgen. Тиснемо «Generate», і хаотично «мотилять» мишкою по вікну, поки процес генерації не закінчиться. Після, тиснемо «Save public key» і «Save private key», і зберігаємо куди-небудь.
Однак, щоб скопіювати свій публічний ключ на сервер, увійти один раз за логіном / паролем все ж доведеться. Для цього видаляємо # перед рядком:
Тиснемо Ctrl + O, Enter і Ctrl + X. Перезапускаємо сервіс ssh:
sudo systemctl restart ssh
Тепер треба завести файл з публічними ключами. Створюємо в каталозі профілю папку .ssh:
Переходимо в неї, потім на нашому ПК відкриваємо блокнотом файл з публічним ключем і копіюємо власне сам ключ (рядки між «comment ...» і «---- end ----»), створюємо файл authorized_keys і вписуємо в нього (послідовність команд збережена):
ssh-rsa AAAAA ... .. (key) ... .. == username @ server
Примітка: коли вставите у вікно PuTTY з відкритим файлом authorized_keys, ключ (просто тисніть ПКМ) потрібно видалити переходи на новий рядок (щоб весь ключ був в одну строчку).
Тиснемо Ctrl + O, Enter і Ctrl + X. Перезапускаємо сервіс ssh:
sudo systemctl restart ssh
sudo nano / etc / ssh / sshd_config
Тиснемо Ctrl + O, Enter і Ctrl + X. Перезапускаємо сервіс ssh:
sudo systemctl restart ssh
З ssh розібралися, їдемо далі.
Найперше, що нам потрібно - це можливість розшарювання файлів в нашій локальній мережі. Для цієї мети ідеально підходить протокол Samba. У репозиторіях восьмого Debian-а вже лежить нова Samba 4, тому просто встановлюємо (погоджуємося на установку всіх додаткових пакетів):
sudo apt-get install samba
Тепер налаштовуємо Samba. Відкриваємо файл конфігурації:
sudo nano /etc/samba/smb.conf
wins support = yes
І відразу під нею вкажемо пріоритет нашого сервера (99 буде достатньо, максимально 255):
Далі переміщаємося майже в самий кінець конфіга, в розділ «Share Definitions». Саме тут потрібно вказати всі папки і принтери, якими ми хочемо поділитися в локальній мережі. А тому, наприклад, після підсекції [printers], вписуємо приблизно такі рядки:
comment = public folder
create mask = 0777
chmod 0777 share
Варто сказати пару слів щодо підтримки Samba в Windows 7/8 / 8.1 і, можливо, 10. Їх теж можна зробити для серверів Samba, виконавши пару скриптів в PowerShell-е. Але нам потрібно активувати тільки клієнт для Samba. Запускаємо командний рядок від імені адміністратора і виконуємо по черзі:
sc.exe config lanmanworkstation depend = bowser / mrxsmb10 / mrxsmb20 / nsi
sc.exe config mrxsmb20 start = auto
sudo systemctl restart smbd
Наступною сферою застосування для домашнього сервера, яка приходить в голову - це сервер друку. Для цього встановимо CUPS:
sudo apt-get install cups
sudo nano /etc/cups/cupsd.conf
Є можливість просто включити прослушку 631-го порту з усіх мережевих інтерфейсів, але якщо їх декілька, то так можна вказати з якого саме. Далі в секціях
Тим самим дозволивши доступ до всіх трьох пунктах тільки з нашої локальної мережі.
sudo systemctl restart cups
sudo systemctl restart cups
Там же, в адмінці, можна надрукувати тестову сторінку. Тепер загальнодоступному місці на сервері повинен з'явитися тільки-що підключений принтер. Можна приєднувати його до Windows і працювати.
sudo apt-get install apache2
sudo apt-get install mysql-server mysql-client
За запитом придумуємо і вводимо двічі пароль для користувача root. Коли установка закінчиться, можемо перевірити статус сервера:
sudo systemctl mysql status
У висновку повинна бути зелена рядок «Active» повідомляючи нам про те, що демон MySQL працює. Прийшла черга інтерпретатора мови PHP:
sudo apt-get install php5
За замовчуванням, файли сайтів, якими управляє Apache. лежать в директорії / var / www / html. А тому створимо там тестовий php-файл і виведемо з його допомогою сервісну інформацію про нашій установці php:
sudo nano /var/www/html/test.php
Для адміністрування СУБД MySQL створений прекрасний веб-інтерфейс phpMyAdmin. А тому давайте його теж встановимо:
sudo apt-get install phpmyadmin
З метою забезпечення безпеки і хоч мінімального захисту від DOS-атак, рекомендується перекинути входить 80-й порт на 8080-й. В налаштуваннях роутера це робиться в пункті «Port Mapping», а в apache, в свою чергу - в файлі ports.conf:
sudo nano /etc/apache2/ports.conf
Переправляємо рядок на
І перезапускаємо apache:
sudo systemctl restart apache2
sudo groupadd smbgroup
sudo usermod -a -G smbgroup username
Тепер потрібно завести обліковий запис користувача Samba, якому ми надамо право оперування файлами всередині / var / www / html:
sudo smbpasswd -a username
Вводимо двічі пароль і встановлюємо власника і права на / var / www / html:
sudo chown username: smbgroup -R / var / www / html
Невелика ремарка: якщо ви плануєте надати доступ до каталогу декільком користувачам, права необхідно змінити на 0775 і кожного окремого користувача додати в групу smbgroup, а також «включити» через smbpasswd. Плюс, кожна директорія повинна мати права 0755 (або 0775), а файли - 0644. Щодо файлом, права можуть бути і 0755, але 0644 безпечніше.
Додамо ресурс в smb.conf:
Sudo nano /etc/samba/smb.conf
comment = my site
valid users = username
# Що б дозволити відразу цілу групу, замініть на valid users = @smbgroup
І перезапустити Samba:
sudo systemctl restart smbd
Тепер в пункті «Мережа» Windows, на нашому сервері доступна папка mysite. Залишилося тільки ввести логін і пароль.
Альтернативним, а деяким і зручнішим засобом адміністрування сервера, стане Webmin. Це веб панель з підтримкою великої кількості різноманітного софта, плюс, що розширюється за рахунок модулів. Для кожного налаштувань просто тьма, а на крайній випадок є пряме редагування конфігураційних файлів.
Коли скочується, розпаковуємо завантажений пакет:
sudo dpkg --install webmin_1.760_all.deb
Швидше за все, apt-get повідомить нам про конфлікті в залежностях. А тому надамо йому свободу дій:
sudo apt-get -f install
У певних ситуаціях може знадобитися завантажити (або навпаки, скачати) файл на наш сервер. Для таких цілей немає кращого рішення, ніж протокол FTP. У нашому випадку ми встановимо його реалізацію у вигляді сервера vsftpd (very secure FTP daemon):
sudo apt-get install vsftpd
Всі настройки vsftpd лежать в файлі /etc/vsftpd.conf:
sudo nano /etc/vsftpd.conf
Отже, в залежності від того, чи хочете ви, що б до вашого FTP-сервера можна було підключитися анонімно, ми або залишаємо рядок anonymous_enable, або переправляємо на
Таким чином, користувач і вище / home / username вийде, і писати в неї може. В принципі, параметрів конфігурації vsftpd дуже багато, і ніхто не забороняє встановити chroot-му, наприклад, / var / www / uploads.
На даному етапі ми вже можемо оперувати файлами по FTP (за допомогою FileZilla, наприклад). Але якщо знадобитися дати доступ сторонній людині, заведемо про всяк випадок користувача guest:
sudo adduser guest
Після відповідей на питання створимо групу ftpgroup і внесемо в неї guest-а:
sudo addgroup ftpgroup
sudo usermod -G ftpgroup guest
Бажаючі можуть встановити додаткові параметри на зразок привітального повідомлення, таймаута сесії, таймаута передачі даних, повідомлення про зміну директорії і т.д. відповідно:
ftpd_banner = "This is yet another FTP server"
sudo systemctl restart vsftpd
Можна підключатися. Файли, які завантажить guest, будуть лежати в / home / guest.
На цьому мінімальна настройка ftp закінчена, більш детальну можете знайти в мережі. Не забудьте прокинути 21 і 20-й порти на роутері.
За ідеєю, піднімаючи домашній сервер, ми приймаємо за належне те, що він буде працювати цілодобово (що, в разі, якщо в якості заліза виступає Raspberry Pi, взагалі безпроблемно). А тому, що б він не простоював вночі, ми змусимо його качати торенти. Самий функціональний торрент-клієнт для Linux - це rTorrent. До того ж, він консольний. І третє - для нього написано кілька відмінних веб-інтерфейсів. Встановимо його:
sudo apt-get install rtorrent
/.rtorrent.rc. Створимо і заповнимо цей файл:
# Обмеження швидкості закачування
# Розрив обмін бенкетами