Налаштування домашнього сервера, який виконує ролі веб-сервера, поштового сервера та фтп-сервера

Налаштування домашнього сервера, який виконує ролі веб-сервера, поштового сервера та фтп-сервера. Етап 1.

  • розмір шрифту зменшити розмір шрифтузбільшити розмір шрифту
  • Друк
  • Коментарі (4)

Відразу зазначу, що описане тут рішення чудово підійде і для використання в малих та середніх організаціях. А може, навіть у великих.

Ну, а для тих, хто зацікавився, опишу те, що є:

- свій домен example.com із двома DNS-записами виду: - www.example.com. A - example.com. A - та записом MX виду: - example.com. MX 10 example.com. - Також, дуже бажано б зробити ще й PTR-запис для вашого домену у провайдера. Але мій провайдер, на жаль, відмовив мені в цьому, як фізичній особі. - Маємо невелику квартиру, в якій не дуже багато місця для додаткового системника і для додаткового джерела шуму.

Домен можна зареєструвати на www.nic.ru. Там же, і зробити всі необхідні записи на DNS-сервері. Від себе скажу, що там все робиться дуже швидко і дуже зручно, навіть якщо ви взагалі вперше подібною процедурою займаєтеся.

Ну, а щодо заліза, то воно мало відповідати параметрам: компактний; безшумний; ненажерливий; з деяким запасом продуктивності для моїх потреб. Я зупинився на такій добірці:

Рішення справді вийшло досить компактне та безшумне. А також дуже сердитий для своїх таких розмірів. Твердотіл тому, що мені хотілося отримати ударостійку систему. Бо це диво стоятиме у мене на столі, і, можливо, його доведеться рухати з місця на місце іноді. На жаль, грошей вистачило лише на 64-охгіговий. Але, в майбутньому, планую поставити другий твердотіл більшого обсягу.

Операційну систему для свого сервера вибрав FreeBSD. Чому саме її? Та тому, що мені так захотілося Хоча б тому, що це мій перший сервер на FreeBSD, і йому все одно колись судилося бути.

Етап 1. Встановлення та загальна підготовка сервера.

Спершу насамперед, відразу хочу показати, як у мене розташований сервер, щодо домашньої мережі:

сервера

Тобто. сервер, як і вся локальна мережа, буде закритий ззовні маршрутизатором. Ну а на самому маршрутизаторі я налаштував прокидання потрібних портів ззовні до свого сервера.

Завантажуємо новий дистрибутив FreeBSD. На мій момент, це була дев'яточка:

І приступаємо до встановлення. На етапі, коли установник запитує: Чи варто вибрати, щоб не вказати key mapping for your keyboard? Відповідаємо yes та вибираємо Russian koi8-r. Потім система попросить вказати ім'я нашого сервера. Я просто вказав example.com (ім'я свого зареєстрованого домену). Потім установник спитає, які компоненти ставити. Вибираємо lib32, ports та src. Далі, установник запитає, як розбиватимемо диск на партишени — тиснемо Manual і бачимо таку картинку:

налаштування

Тут я натискаю кнопку Auto, а потім кнопку Partition. Система нам покаже, як би вона розбила диск за замовчуванням:

який

І ось тут щось я щось зміню. Для початку видалю партишини ada0p2 і ada0p3. Потім створимо заново ada0p2, вибравши свій розмір. І обов'язково натисну кнопку Options під час її створення:

який

для того, щоб вибрати опцію TRIM, оскільки накопичувач у мене твердотільний стоїть:

сервера

Потім додаю своп-партишин ada0p3, роблячи його всього в один гігабайт:

виконує

Пояснюю, чому саме так: По-перше, щоб виграти бодай кілька додаткових гігабайт вільного місця.По-друге, на сервері у мене 4гб ОЗУ, яких має вистачити сповна для всіх сервісів, тому не бачу потреби у великому свопі.

Після розбиття диска на партішені, натискаємо finish, а потім commit. Система почне встановлюватись. Після установки система попросить ввести пароль для root і запропонує налаштувати підключення до мережі, на що я погоджуюсь і вводжу свої мережеві реквізити:

Після конфігурування мережі, установник запитає, чи налаштований наш годинник у БІОС за всесвітнім координованим часом (UTC). У своєму випадку я натиснув no, тому установник попросив мене вказати мій часовий пояс.

Далі питатиметься, які демони включити в автозавантаження. Я вибрав sshd та ntpd. А на подальше питання про те, чи хочу я, щоб система створювала крашдампи при збоях, я відповів негативно, бо місця на твердотелі мало.

Would you like to add users to installed system now? Відповідаю позитивно та створюю одного користувача з банальною назвою admin. Важливий момент! Коли система поставить ось таке питання, про те, чи хочемо ми користувача включити до будь-яких додаткових груп, то пишемо групу wheel:

який

Включати користувача в цю групу потрібно для того, щоб він потім зміг приймати вигляд root через команду su у віддаленій сесії ssh. Після створення користувача інсталятор покаже вікно з назвою Final configuration, в якому вибираємо exit. А на наступне питання, чи хочемо ми щось ще вручну налаштувати в консолі, відповідаємо негативно і перезавантажуємо машину. Під час перезавантаження забудемо зайти в БІОС і поставити завантаження з жорсткого диска.

На цьому система встановлена. Але цього нам ще дуже мало. Щоб можна було комфортно працювати, потрібно встановити кілька програм. Але щобце зробити, треба спочатку оновити та проіндексувати порти. Відразу слід зазначити, що надалі мається на увазі, що наша машина з FreeBSD має прямий і не обмежений вихід в інтернет. Тому, перш ніж рухатися далі, переконайтеся, що так воно і є.

Заходимо в систему під root і виконуємо такі команди:

Оновлення портів займе деякий час. Чекаємо. Ну а потім, особисто я, відразу ж ставлю програми, без яких мені не комфортно це midnight commander і nano. Ставимо міднайт коммандер:

Опції складання міднайт командира я залишаю за замовчуванням (вони майже всі включені). Але! Міднайт коммандер, залежно, потягне встановлення такого важливого компонента як perl. І ось в опціях його збирання нам треба виставити ось такі опції:

сервера

який

який

Потім перезавантажуємо систему командою reboot.

Тому що IPv6 у нашій системі все одно не використовується. Частково проблема вирішена тому, що ми поки що не відключили підтримку IPv6 в самому ядрі. Цим і не лише ми зараз займемося. Нам бажано оптимізувати налаштування ядра на предмет відключення в ньому не тільки IPv6, але і зайвих драйверів. Також, включимо в ядрі підтримку фаєрволу, бо який сервер без фаєрвола. Але спочатку підстрахуємося та збережемо наше поточне ядро ​​на той випадок, якщо тюнінг ядра не вдасться. Робимо команду:

Якщо раптом тюнінговане ядро ​​виявиться неробочим, тут описано, як завантажитися зі старим ядром. Тепер переходимо в каталог /usr/src/sys/amd64/conf і знаходимо файл GENERIC. Тут же, робимо його копію з якоюсь своєю назвою. Наприклад, я зробив під назвою mykernel. Потім потрібно відредагувати свій файл. Насамперед знаходимо ось цей рядок:

І змінюємо її на ваше ім'я ядра:

Потім відключаємоIPv6:

А для активації фаєрволу додаємо в кінець файлу рядки:

Що ж до інших опцій, щодо підтримуваного заліза, то тут у кожного будуть свої налаштування. Я намагаюся вимкнути все зайве. Хоча дещо, я думаю, можна відключити у всіх, наприклад, все, що пов'язано зі звуком, firewire, usb wireless, та й взагалі все бездротове відключити можна. Також і PCMCIA карти, флоппі, зайві raid-контролери.

Отже, після того, як конфіг редагувати закінчили, переходимо в каталог /usr/src і там робимо команди:

Коли ваше ядро ​​збереться і встановиться, поки не поспішайте перезавантажуватися. Давайте відразу все підготуємо для фаєрволу. По-перше, у файл /etc/rc.conf додамо рядки:

Потім створимо файл /etc/ipfw.rules з таким вмістом:

Примітка: em0 - ця так моя сетевуха назвалася в системі. Ось тепер перезавантажуємо сервер. Якщо ядро ​​вийшло працездатне, сервер нормально завантажиться, і фаєрвол запрацює.

Зберігаємо зміни. Потім, треба внести зміни ще два файли. Спочатку знаходимо файл /etc/profile і додаємо в нього рядки:

Потім знаходимо файл /etc/csh.login і до нього додаємо:

Після чого перезавантажуємо систему і радіємо рідній мові.

Примітка: для того, щоб українські символи відображалися коректно, вам потрібно у своєму ssh-клієнті, яким ви надалі підключатиметеся до сервера, вкажіть кодування KOI8-R. Я, як лінуховод, спочатку з'їв собаку на цьому етапі, забувши, що у федорі у мене кодування UTF-8. Але після того, як в Konsole переключив кодування на KOI8-R, все стало нормально.

Продовжимо. Надалі нам знадобиться одна найкорисніша програма під назвою Webmin, бо через неї багато речей дуже зручно робити. Тому встановимоwebmin:

Після встановлення, запустимо скрипт конфігурування /usr/local/lib/webmin/setup.sh, який поставить деякі питання:

Log file directory [/var/log/webmin]: тиснемо ентер Full path to perl (default /usr/bin/perl): тиснемо ентер Web server port (default 10000): якщо треба, то порт можна змінити на інший підходящий. Я міняти не став. Login name (default admin): тут теж на ваш розсуд. Я залишив адміна. Login password: вводимо пароль Use SSL (y/n): ось тут я відповів позитивно. Раптом колись доведеться заходити на сервер ззовні.

Після завершення скрипта конфігурування можна скористатися вебміном зайшовши так: https://192.168.0.100:10000. І не забудемо у файл rc.conf додати рядок:

Також, не забудемо і переключити вебмін на українську мову з локаллю KOI8-R. Це робиться в меню Webmin --> Webmin Configuration --> Language.

Наступне, що дуже бажано зробити для загальної підготовки сервера, - це встановити Apcupsd, щоб сервер коректно вимикався при відключенні електрики. Ви ж не забули підключити сервер до ДБЖ? Встановимо apcupsd:

Опції збирання я залишив за замовчуванням. Не забуваємо в rc.conf додати рядок:

Останній момент, який також дуже важливий - це включення запуску fsck при старті сервера. На жаль, я про це дізнався вже після того, як одного разу в мене накрилася файлова система. І коли я почав гуглити в надії знайти порятунок, то натрапив на це статтю:

в якій сказано, що охоронятися треба було заздалегідь! Тому у файл /etc/rc.conf додаємо такі рядки: