Невеликий www-сервер своїми руками (FreeBSD)
|
Шановний претендент!
Тут є мінімум кроків, які необхідно зробити, щоб отримати робочий WWW-сервер.
|
Інтернет - Біла IP-адреса! З білою IP-адресою можна буде потрапити на свій WWW-сервер.
Приклад встановлення FreeBSD 12.3.
Вважаємо, що iнсталяцiйний диск або флешка є!
FreeBSD можна скачати звiдси: https://www.freebsd.org
Завантаження з диска або флешки:
Тиснемо Enter.
Welcome to FreeBSD.
Тиснемо Install.
Вибираємо клавiатуру Ukraine.
Hostname – будь-яке (я ввiв: qw).
Якi системнi компоненти встановити: kernel-dbg, lib32, ports, src.
Тиснемо ОК.
Вибираємо Unix файлову систему: Auto (UFS)
Тиснемо OK.
Вибираємо Entire Disk (вiддаємо весь диск пiд FreeBSD).
Вибираємо GPT диск i тиснемо ОК.
Тиснемо Finish.
Тиснемо Commit.
Пiшов процес встановлення...
Пiшов процес встановлення...
Пароль для root'а.
Знайдено мережеву картку.
Тиснемо OK.
IPv4 - Тиснемо YES.
DHCP - Тиснемо No.
Задати IP адресу мережевої карти, мережну маску, та Default Router (IP адреса роутера).
IP адреса мережевої карти не повинна перетинатися з IP адресами DHCP на роутері!
IPv6 – Вибираємо NO.
DNS - Прописуємо IP адресу роутера (цей IP повинен бути в FreeBSD /etc/resolv.conf).
Time Zone – Вибираємо Europe.
Вибираємо країну i тиснемо OK.
Eastern European Time, EET.
Схiдноєвропейський час.
Тиснемо YES.
Тиснемо Skip.
Тиснемо Skip.
Тиснемо OK.
Тиснемо OK.
Додати користувача.
Тиснемо NO.
Тиснемо OK.
Тиснемо YES.
Потiм команда: # reboot (перезавантаження).
Не забудьте витягнути завантажувальний диск або флешку!
З установкою Настійно рекомендую потренуватися!
Потренуватися можна в: https://www.virtualbox.org
|
Встановлення необхідних програм (Крок 2)
|
Ідемо до каталогу: cd /usr/ports/ports-mgmt
Ідемо до каталогу: cd /usr/ports/misc/mc
Ідемо до каталогу: cd /usr/ports/lynx
Ідемо до каталогу: cd /usr/ports/apache24
І в кожному каталозі вводимо команду: make install clean
(на всі запитання відповідаємо OK, послідовне встановлення, ports-mgmt поставити першим).
mc - Это Midnight Commander (файловий менеджер).
lynx - Это консольний браузер.
apache24 - Это WWW-сервер.
Скриншот Midnight Commander:
|
Додаємо фаєрвол (IPFW) у ядро!
Робимо:
# cd /usr/src/sys/amd64/conf
# cp GENERIC MYKERNEL
|
MYKERNEL – це текстовий файл!
Змінюємо в MYKERNEL ident GENERIC на ident MYKERNEL
Тепер додаємо в MYKERNEL фаєрвол:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
Тепер складання ядра та встановлення:
# cd /usr/src/
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL
|
Тепер перезавантаження:
Після перезавантаження мережа буде заблокована!
Створюємо два файли в каталозі /etc/
# touch firewall.conf_1
# touch firewall.conf_2
|
У firewall.conf_1 додаємо такі рядки:
#!/bin/sh
FwCMD="/sbin/ipfw"
${FwCMD} -f flush
Eth="em0" # Інтерфейс.
# Дозволити весь трафік за внутрішнім інтерфейсом.
${FwCMD} add allow ip from any to any via lo0
# Дозволяємо деякі типи ICMP трафіку
# - луна-запит, луна-відповідь і час життя пакету минув.
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# HTTP
${FwCMD} add allow ip from any 80 to any via ${Eth}
${FwCMD} add allow ip from any to any 80 via ${Eth}
${FwCMD} add deny log ip from any to any
У firewall.conf_2 додаємо такі рядки:
#!/bin/sh
FwCMD="/sbin/ipfw"
${FwCMD} -f flush
${FwCMD} add deny log ip from any to any
Файл: firewall.conf_1 - Дозволити ping'и, дозволити доступ до www-сервера.
Файл: firewall.conf_2 - Заблокувати все.
Виконати скрипт firewall.conf_1:
Результат скрипту:
Flushed all rules.
00100 allow ip from any to any via lo0
00200 allow icmp from any to any icmptypes 0,8,11
00300 allow ip from any 80 to any via em0
00400 allow ip from any to any 80 via em0
00500 deny log logamount 100 ip from any to any
|
Для firewall.conf_2 аналогічно лише результат інший.
Налаштування та запуск apache24 (Крок 4)
|
Ідемо до:
# cd /usr/local/etc/apache24
|
Відкриваємо текстовий файл:: httpd.conf
Знаходимо рядок: Options Indexes FollowSymLinks та змінюємо його на Options -Indexes (не виводити список файлів)
Знаходимо рядок: ServerName www.example.com:80 і нижче пишемо ServerName 192.168.1.200:80
Ідемо до:
Запуск apache24:
Якщо потрібно зупинити apache24 то:
Далі запускаємо lynx (консольний браузер):
Результат:
It works! Переклад: Працюю!
Index.html знаходиться в: /usr/local/www/apache24/data/
Ось коротко і все, залишилося на роутері налаштувати переадресацію.
Що було втрачено – права на файли! :)
Для невеликого WWW-сервера (наприклад) можна взяти таку материнську плату
(вбудований двоядерний процесор 2гГц безшумний, пам'ять DDR4):
Удачі тобі претендент!
|
|
|
|