Сервер своїми силами за пів дня

Піднімаємо сервер для локальних мереж, малих офісів і фірм на одному диханні.

Сервер своїми силами за пів дня

Сьогодні тема така: розгортаємо сервер на базі ос Linux (Open Suse) за пів дня, "з коробки". Таке буває, коли працюєш в маленькій фірмі, де ти і адміністратор, і програміст, і дизайнер, в загальному, все в одному. І якимось прекрасним рано вранці, коли ти сидиш і спокійно п'єш каву, директору обов'язково прийде в голову світла ідея: "Пора вести нормальний облік товару / засобів / клієнтів" або ще що-небудь в цьому дусі. Повірте моєму досвіду, вона йому обов'язково прийде. Оскільки більш компетентного фахівця ніж ви в фірмі немає, вам доводиться писати цю базу даних. Але на цьому труднощі не закінчаться, адже бази даних фірм повинні бути добре захищені, завжди доступні, працювати без перебоїв, так як тимчасово відключена база приносить збиток фірмі. Тому краще за все тримати їх на особистому сервері фірми. Але це не єдина ппрічіна. Приплюсуємо до цього:

Дані завжди доступні з високою швидкістю.

Крім співробітників фірми ніхто не має доступ до даних, так як сервер не має доступу в Інтернет.

Повний контроль над сервером і даними.

Швидке реагування на збій сервера / обладнання.

І багато іншого. Але ось розгорнути такий сервер не так-то просто, особливо якщо в фірмі все комп'ютери »не потужні" і під Windows сервер ставити просто нереально, так як він не буде реагувати з потрібною швидкістю. Всі також пам'ятають, що Windows дуже нестабільна система (у порівнянні з Linux), під Windows дуже багато троянських програм і вірусів (понад 140 тисяч, а для Linux близько 30), і встановлювати заново систему щомісяця через віруси або просто через того, що їй "перехотілося" працювати - це просто нереально. Тому вибір падає на Linux: ця операційна система не вимоглива до ресурсів, може працювати багато місяців поспіль без перезавантаження, основні вороги таких серверів - прибиральниці.

Сьогодні ми зберемо такий сервер, підберемо залізо, встановимо всі необхідні пакети і налаштуємо сервер і все потрібні програми. Ми встановимо зв'язку Apache + PHP + MySQL + Phpmyadmin + ProFTPd.

Apache + PHP + MySQL - для розміщення сайту на сервері
Phpmyadmin - для управління базами даних
MySQL - для розміщення баз даних
ProFTPd - для розміщення файлового сховища

Що ж нам дають ці пакети? Наш сервер буде працювати на двох інтерфейсах (дві мережеві карти), зовнішній інтерфейс (в мережі Інтернет) та внутрішній режим (локальна мережа). Вони відрізняються лише параметрами доступу (FireWall), на зовнішньому інтерфейсі у нас буде web-сервер (HTTP 80) і ftp-сервер (FTP 21). А на внутрішньому інтерфейсі дозволені всі служби (mysql, ftp, web, ssh.).

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


CPU (процесор) - Celeron, 1700 МГц 128 Кб кеша
RAM (оперативна пам'ять) - DDR I 512 Мб
LAN (мережа) - Ethernet 10/100 Мб
Блок живлення - 450 Вт

Так як сервер повинен працювати постійно (місяць, три, п'ять, рік), для охолодження системи знадобиться потужна винтеляции. Навіть найпотужніші сервера під Linux / FreeBSD, добре налагоджені і налаштовані, дуже чутливі до спеки, без охолодження будуть працювати дуже нестабільно. Тому я рекомендую поставити 3 кулера 120 мм.

Отже, залізо готове. Перейдемо безпосередньо до установки сервера. Тут є дві можливості. Перша, так звана "з коробки", тобто все сервера вже зібрані і готові до роботи, залишилося їх конфігурувати. Друга, зібрати самому з вихідних кодів (сорци) і також конфігурувати. Спочатку пройдемося за першим методом, а потім розберемо другий.

Вибір операційної системи

Тут варто складний вибір: Windows або Linux.

Безперечно, здасться, що простіше і швидше встановити і налаштувати сервер під Windows. Так це так. Але якщо подумати про слабку його захищеності та політичної нестабільності, про помилки BSOD (синій екран смерті), віруси, дірках. Залишимо цю тему, повернемося до неї пізніше.

Набагато важче зібрати сервер на Linux, але він буде набагато стабільніше, бистродее, з високим UpTime (час роботи від пуску системи до завершення), на добре налаштованих системах воно досягає декількох років.

Отже, установка. Проходить вона в графічному режимі російською мовою, коротко пробіжуся по окремим пунктам.

Розбиття диска. У моєму випадки диск 160 Гб розбиваємо, причому не будемо ділити на системні, темпи і домашні каталоги користувачів.

/ 154 Гб
Swap (2xRAM) = 1024 Мб

Linux сам пропонує розбиття, якщо диск порожній, він створить 2 розділу, root (/) і файл підкачки (swap). Якщо на диску є розділи Windows (NTFS), то він зменшить їх і приєднає до своєї файлової системи.

Додатки. Не буду пояснювати, що за що відповідає, просто скажу, що повинно бути встановлено вами, решта стоїть за умовчанням: perl, iptables, bind, nmap, mc, make, apache (всі пакти), php (всі пакти), mysql (все пакти). Займає це приблизно 2 Гб. Але ця цифра потім збільшиться.

Рівень виконання за замовчуванням. За замовчуванням коштує 5: Повний багатокористувацький з мережею і графічному режимом. Нам це не підходить, так як графічною оболонкою ніхто користуватися не буде, а цінні ресурси вона буде їсти, причому багато. Тому ставимо 3: Повний багатокористувацький з мережею.

Після цього запускається процес установки, на різних комп'ютерах швидкість різна, на моєму сервері близько години ставилася, на більш потужному - пів години. Все залежить від потужності процесора і обсягу оперативної пам'яті.

Ім'я хоста - зазвичай це localhost і домен.

Пароль адміністратора, пароль на користувача root повинен бути мінімум з 8 символів, літери верхнього і нижнього регістра, цифри, спеціальні символи.

Сервер готовий до роботи, відключимо монітор, клавіатуру, миша, залишимо три дроти, два від мережі і один - харчування, не забуваємо про безперебійне харчування.

Отже, усі основні параметри операційної системи готові, займемося настройками додатків. Для цього є спеціальний клієнт SSH під Windows - putty.

Сервер своїми силами за пів дня

Залягання і починаємо працювати.

Насамперед ставимо FTP-сервер. ProFTPd, качаємо з офіційного сайту останню версію. Створюємо в корені папку src, куди будемо складати пакети. Можна через файловий менеджер (команда mc), але ми будемо все робити без нього. Єдина проблема при його використанні - якщо завантаження файлів проводилася з Windows-машин, то з назв російських файлів вирізаються літери "иьеюя". Справа в тому, що ProFTPd пропускає весь свій трафік через Telnet, який сприймає символи з кодами 251-255 як керуючі послідовності і вирізає їх. Але не варто впадати у відчай - все лікується невеликим втручанням в файл src / netio.c. Просто видалимо з нього рядки:

switch (mode) case IAC:
[[Частина коду пропущена]]
mode = cp;
continue;
>
break;
>

Після цього можна сміливо компілювати:

# /src/proftpd-1.3.1rc3 # ./configure make make install

chmod a + x /etc/init.d/proftpd

Запуск /etc/init.d/proftpd start
Зупинка /etc/init.d/proftpd stop
Перезавантаження /etc/init.d/proftpd restart

Перед з'єднанням з сервером потрібно дозволити доступ до нього:


Користувачі і безпека> Брандмауер (FireWall)

Інтерфейси, вибираємо Внутрішній> Змінити> Зона інтерфейсу "Внутрішня зона".

Тепер йдемо в /usr/local/etc/proftpd.conf і повністю видаляємо секцію. Таким чином ми перекриємо кисень всім анонімним користувачам.

Система> Системні служби (RunLevel)

Переходимо в режим експерта, нам потрібно щоб автоматично запускалися apache, mysql, proftpd. Вибираємо потрібні програми і ставимо галку на 3 пункті (runlevel). Тепер при запуску / перезапуску сервера служби будуть запускатися самі.

Далі тестуємо apache. Вбийте в браузер ваш IP (в моєму випадку 192.168.1.1). Якщо все вірно, то ви побачите напис "It works!", Якщо цього не відбулося, перевірте, запущено чи apache. Якщо немає, то запускаємо:

# Service apache2 start

Сервер своїми силами за пів дня

# Tar -xf phpMyAdmin-2.10.0.2-all-languages.tar.gz
# Cd phpMyAdmin-2.10.0.2-all-languages
# mc

Копіюємо все файл з /src/phpMyAdmin-2.10.0.2-all-languages ​​в / srv / www / htdocs / phpmyadmin

# Service mysql start

Сервер своїми силами за пів дня

Схожі статті