Делаем сервер своими руками. Домашний сервер уязвим, и его сразу взломают. Сервера баз данных

16 сентября 2015 в 18:36

Домашний сервер для работы и не только. Организация рабочего места ленивого инженера

  • Виртуализация

Вспоминая слова одного преподавателя вуза: «Кто такой инженер? Это же лентяй! Вот он лежит на диване, смотрит телевзор. И захотелось ему переключить канал - но вставать то лень! „Ай, ну его, каналы вставать переключать - пойду-ка разработаю пульт дистанционного управления...“. Всегда хотелось сделать что-то интересное и максимально это автоматизировать…

Итак, исходные данные:

0. Работа удаленным инженером-администратором. Поддержка парка серверов/сервисов по части software и hardware.
1. Место дислокации - загородный дом.
2. Гигабитный интернет с резервированием (Просто всегда был рад помочь местным сете-строителям с настройкой и сборкой серверов.)
3. Отностительно надежная инфраструктура - водо-, газо-, электроснабжение.
4. Желание тишины и спокойствия автоматизации для комфортной работы и быта.

Задачи:
1. Удобная организация рабочего места с возможностью оперативного мониторинга.
2. Необходимая функциональность в свете безопасности, быстродействия и широкого спектра задач.
3. Энергоэффективность.
4. Изоляция рабочей среды от потенциальных угроз.

Сначала все и вся было уделом одного обычного ПК средней конфигурации - здесь и работа, и развлечения и веб-сервер. Круглосуточная работа, особенно в жилой комнате ну никак не устраивала ни меня, ни домочадцев. Появилось желание сделать все „раз и надолго“. Были испробованы множество вариантов - несколько ПК для разных задач в разных местах, Remote Desktop к рабочему ноутбуку, во избежание всевозможных переустановок, проблем привязки к оборудованию или операционной системе. Но однажды попробовав поиграться с одной из систем виртуализации, понял - это то что решило бы сразу много проблем. Это случилось как раз во время, когда в ESXi было упразднено множество ограничений в бесплатной версии, да так что теперь гипервизор годился прямо в мини-продакшн, для дома это уже была пушка по воробьям Отлично, начнем-с.

Первые грабли не заставили себя ждать. При переносе штатным инструментом (VMware vCenter Converter Standalone Client) ОС Windows 7 из доживающего свое винчестера ноутбука конечно же был словлен блускрин. Решение - загрузочный диск с любым редактором реестра, активация необходимых драйверов путем правки нужных значений (вариант решения).

Как же было приятно потом „лечить“ и украшать медленную 5-летнюю систему! Был произведен перенос всего медиаконтента, „не очень нужных“ программ, система сжата с 500 до 50 гигабайт. Все было чудесно, но, конечно сразу же захотелось „побыстрее“. Здесь начались размышления по поводу, собственно, серверной части. Было решено построить систему с запасом, максимально использовав комплектующие, которые уже были. Основное требование - бесшумность и производительность.

Итак, корпус - был вот такой: INPC DL36 - прочный, просторный корпус, который отлично подходил под все требования - полноценный размер материнской платы, 3U высота для использования полноценных радиаторов и бесшумного блока питания.

Конфигурация оборудования:


В планах переход на полностью пассивное охлаждение CPU.

Вот как это выглядит на данном этапе:

Вид спереди, диски можно менять не выключая сервер:

Попутно был развеян миф о потребности регулярной перезагрузки Windows:

Итак, сервер собран, далее приступим к повышению надежности в доступных нам пределах. Мною было продумано множество вариантов бесперебойного электропитания дома в целом, и сервера, в частности. От выделенного ИБП с минимально необходимой мощностью для питания сервера и базовых сетевых устройств до полного резервирования всего дома трехфазным ИБП. В итоге проб и ошибок был выбран все же самый адекватный вариант - ИБП средней мощности с запасом для питания критических устройств в течение хотя-бы 12 часов. Таковыми являются газовый котел, собственно, сервер, коммутатор провайдера, роутер, внутренние коммутаторы, видеокамеры, автоматические ворота, дежурное 12В освещение, аварийные розетки в доме и подсобном помещении. Добавление следующего по важности устройства - чайника, насосной станции очень сильно повышает требования к ИБП, поэтому в случае надобности аварийное снабжение переводится на бензиновый генератор. В качестве источника бесперебойного питания применен APC Smart-UPS 1500, в крайнем случае - достаточный для пуска 0.75кВт насосной станции. Аккумуляторный блок собран из 2х120А*ч батарей.

Потребление резервируемых устройств в штатном режиме:

Организация сети. В который раз пришлось на своем опыте убедиться в законе - если по плану необходимо проложить два кабеля - надо закладывать четыре! Даже без систем умного дома. После разнообразных перестановок была применена следующая схема. Для моей реализации сети идеальным роутером оказался, конечно же, MikroTik. Абсолютно все необходимые функции за минимальную стоимость, с минимальным энергопотреблением. Простая настройка локальной сети, безопасности доступа извне, резервирования каналов связи, дополнительных сервисов - устройство класса „один раз разобрался, настроил и забыл“. Функция резервной маломощной точки доступа Wi-Fi, потому как качественная раздача не является основной задачей подобных устройств. В роли главной точки беспроводного доступа был заказан небезызвестный Ruckus - поставил и забыл, проблемы с Wi-Fi прекратились раз и навсегда.

Два аплинка от провайдеров проверяются на доступность по приоритету (distance) - в случае проблем с приоритетным провайдером автоматически происходит переключение на резерв. Решение простое, не самое надежное, но, как правило, достаточное при типичных проблемах сетей в частном секторе - обрывы кабелей/отсутствие электропитания.

1. Основная рабочая система на базе Windows 7, та самая, с трудом и заботой перенесенная со славно поработавшего ноутбука.
2. Отдельная система для ведения финансового учета и проведения переводов - так же, впрочем, перенесенная с нетбука.
3. ОС с софтом для видеонаблюдения. Хотя полностью независимые системы и имеют свои преимущества - но полугодовой опыт использования виртуальной машины для этих целей показал отличную надежность такого решения. Видеонаблюдение было построено на базе камер Hikvision и бесплатного софт-сервера от этого же производителя.
4. Сетевое хранилище для медиаконтента (FreeNAS) - в основном для удобного обмена файлами между устройствами внутри локальной сети и просмотра на фото/видео на телевизоре.
5. Unix сервер, Debian/Ubuntu, без GUI. Как же без простой, безотказной системы под рукой - собрать статистику и вывести показания датчиков на веб-сервер, перекодировать видео с помощью ffmpeg, протестировать скрипты, и т.д.
6. Бонусы - однажды в экстренной ситуации пришлось даже спасать крупный сайт, вытаскивая контент из проблемного рейда, на лету завернув его в виртуальную машину и переместив на временный сервер.

Для взаимодействия с виртуальной средой установлен ПК с 23"" монитором, на котором есть относительно мощная видеокарта для видео/игр, подключение к машинам происходит по RDP либо SSH. Если уж совсем лениво - то с ноутбука, лежа на диване.

После всех настроек, проб и ошибок, наконец-то можно сказать что все работает, как и было запланировано! Казалось бы, стольким мелочам было уделено внимание - но в сумме это дало очень много выигранного времени и средств, а именно на включения, выключения, замены, контроль всего потенциального парка домашних устройств.Теперь можно больше сконцентрироваться на основной деятельности, не переживая об отключениях электричества, падающих, забытых, украденных ноутбуках, посыпавшихся жестких дисках и прочих сюрпризах. Надеюсь что мой опыт будет интересен и, возможно, кого-то так же мотивирует применить свои профессиональные знания для обустройства рабочего места на дому!

Задача: собрать малогабаритный домашний сервер с четырьмя 3,5-дюймовыми HDD, по возможности тихий. Служить будет в качестве NAS, backup-сервера и торрентокачалки.

Решение :
Во-первых необходимо было выбрать материнскую плату. Стандарные варианты - это mATX и Mini-ITX, оба из которых я пробовал ранее.

Форм-фактор mATX был отвергнут сразу, малыми усилиями сделать компактно с ним не получится. Существующие корпуса для mATX плат не рассчитаны на 4 диска, в них обычно ставят плохие и шумные блоки питания. Сделать компактный и тихий блок питания для такой системы трудно и дорого, т. к. потребляемая мощность будет больше 150 Ватт.

Форм-фактор Mini-ITX дает большую свободу выбора, тут и тихоходные процессоры Atom, Celeron, бодрые «середнячки» Athlon и мощные Core 2 Duo/Quad. Цена разнится сильно, но для моих задач хватит и Atom. Такие платы потребляют мало мощности, занимают мало места и обычно не сильно уступают mATX платам по кол-ву функций. Есть здесь и свои минусы: высокие цены, чуть меньшее кол-во разъемов, небольшой выбор.

К сожалению, на российском рынке выбор Mini-ITX плат меньше, чем за рубежом, но этому не стоит удивляться, учитывая их невысокую популярность. Хороший ассортимент представлен на Яндекс-Маркете и в некоторых специализирущихся на малых форм-факторах компаниях. Здесть стоит отметить Антекс и Оникс (он же dont.ru). На зарубежных сайтах (linitx.com , mini-itx.com , idotpc.com) выбор куда шире.

Подходящей маломощной платы с 4-мя SATA-разъемами я не нашел, а покупать с двумя и отдельно sata-контроллер не хотелось, единственный PCI-слот может еще пригодиться для чего-нибудь более полезного, например Wi-Fi адаптера.

Я хотел еще сделать из компьютера домашний роутер, поэтому искал плату с двумя ethernet-разъемами.

Выбор был, хоть и не большой, но, погуглив, я нашел отличную плату с двухъядерным процессором Atom, PCI-слотом, двумя ethernet-раземами и, о чудо, четырьмя SATA-разъемами. Отличный вариант: маломощный, но не совсем слабый процессор, полный набор необходимых разъемов и всего одним вентилятор.

Теперь предстояло выбрать корпус. Для 4-х жестких дисков нашелся один-единственный корпус, Chenbro ES34069 , на вид такой же отличный, как и найденная плата, но достаточно дорогой. После чтения форумов выяснилось, что тишиной он не отличается.

Хорошо, поехали дальше, можно купить другой корпус и в нем сделать место под 4 диска. Как разместить диски на тот момент я представлял лишь примерно, но это меня не пугало. После тщательных поисков было найдено два небольших подходящих по вместительности корпуса: AOpen S180 и CFI GROUP CBI-A8989TG . Оба напоминали корпуса первых bareborn-систем. По расчетам подходили оба, но я решил взять корпус от Aopen, который был немного выше, чтобы было место про запас. Впоследствии это решение оказалось единственно верным, так как во второй корпус все бы так хорошо не упаковалось. Но обо всем по порядку.

Блок питания в купленном корпусе оказался на редкость шумным и я решил искать альтернативу. Блоки питания для Mini-ITX систем обычно состоят из двух компонент - адаптера питания от сети, как у ноутбуков и платы-конвертера. Плата конвертирует напряжение, выдаваемое блоком, обычно 12 Вольт в необходимые 3,3, 5, 12, -12 Вольт. По расчетам, система должна была потреблять до 100 Ватт в пике. Ассортимент таких безвентиляторных блоков питания оказался очень маленьким. В Москве найти плату и адаптер с выходной мощностью больше 80 Ватт оказалось невозможно. Адаптеры 220 - 12 Вольт мощностью от 100 Ватт в Москве являются штучным товаром, поездки по рынкам и поиски в сети почти ничего не дали. Лишь одна фирма предлагала привезти блок питания на 120 Ватт, но в непонятные сроки. Нашлась также и одна-единственная плата на 120 Ватт, тоже на заказ и в непонятные сроки. Пришлось искать в зарубежных интернетах. Немецкие и американские магазины предлагали такие комплекты, даже был хороший выбор, но по цене около 200$ с доставкой. Тогда я обратил внимание на автомобильные конвертеры, по сути такие же платы, только рассчитанные на плавающие автомобильные 12-24 Вольт, а не на стабильные 12. Для таких плат гораздо проще найти блок питания, ведь подойтет любой от ноутбука мощностью 100-120 Ватт. Блок питания у меня был, и я нашел сходный по цене вариант на eBay. Отлично, оставалось дождаться его по почте.

Жесткие диски были выбраны серии Barracuda LP, они подешевле и меньше греются, чем взрослые 7002.11 и подобные. Однако, при тестах выяснилось, что при нагрузках они все-таки сильно греются и им не мешало бы принудительное охлаждение. Между дисками надо было сделать зазоры для свободного прохождения воздуха.

В купленном корпусе была железная каретка для крепления одного 5-дюймового и двух 3,5-дюймовых устройств. Хорошо закрепить 4 диска на ней не представлялось возможным. Зато с такой задачей отлично справлялась металлическая каретка, предназначенная для установки четырех дисков в три 5-дюймовых отсека, которая была мне подарена другом. На ней было место для крепления вентилятора, при установке дисков между ними оставались щели, достаточные для продувания.

В Леруа Мерлене нашлись подходящие для закрепления каретки в корпусе железные уголки и винты. Плата адаптера была закреплена на специально припаянных металлических стойках. Блок питания, идущий в комплекте с корпусом был снят, на задней стенке корпуса, в месте где выл вентилятор блока питания и разъем 220 В. образовалось внушительное пустое место, которое надо было как-то закрыть. Ножницами по металлу я аккуратно вырезал заплатку из листа алюминия и прикрепил к корпусу. Теперь предстояло сделать хитрый шлейф питания MOLEX-4 SATA, так как у блока питания был только один разъем molex. 20-контактный шлейф питания, соединяющий мат. плату и конвертер питания я спаял из шлейфа от старого блока питания.

Материнская плата поддерживала PWM-контроль скорости вентилятора, и для продувки жестких дисков нужно было купить тихий вентилятор, пришлось поездить по магазинам и купить один PWM-вентилятор и один тихий со специальным резистором, еще более замедляющим его небыстрое вращение. Штатный вентилятор на радиаторе материнской платы я убрал, решив, что вентилятора на корпусе хватит. Получалось, один кулер дует на диски, второй этот воздух гонит из корпуса, попутно остужая процессор и чипсет. В процессе тестов процессор перегревался и я придумал соорудить подобие воздуховода из листа пластика. Чертеж несколько дней доводился, макетировался из бумаги и в итоге с помощью ножниц и клея был превращен в пластиковый кожух для радиатора на мат. плате.

Самой простой задачей оказалась покупка памяти. :) Для системного раздела я купил флешку на 8 Гб и спаял к ней адаптер для подключения к внутреннему разъему на мат. плате. ОС была поставлена на флешку, компьютер собран. В итоге я собрал тихий компьютер, где все получилось достаточно компактно, свободного места внутри было действительно мало.

Сейчас он работает под управлением Ubuntu 9.10, бекапы производятся с помощью snapback2+rsync.

Итоговая смета

Небольшой тест

Привожу результаты unixbench и, для сравнения, результаты тестов настольного компьютера (Athlon X2, 2 ядра, 2,5 Ггц, 2 Гб RAM) и сервера на базе Xeon 5500 (8 ядер, 2,5 Ггц, 48 Гб RAM).

Итоги

Самый дешевый NAS на 4 диска я нашел на Яндекс-Маркете за 14000 рублей (без дисков). Мой компьютер вышел на тысячу рублей дешевле и уж точно мощнее и функциональнее. Из минусов - потрачено много времени, найти детали в моем случае было не просто, и, добавим сюда риски покупки товаров из-за рубежа по почте.

Спасибо за внимание!

За последние годы в типичной домашней компьютерной сети появилось множество ресурсоемких сервисов, для работы которых требуется отдельный компьютер — мини-сервер. Для чего же нужны, какими бывают и на что способны домашние серверы.

Десятилетие назад пределом мечтаний любой среднестатистической семьи было обзавестись хотя бы одним компьютером с доступом в Интернет: родителям и детям приходилось работать за ним поочередно. Как говорится — в тесноте, да не в обиде. Сейчас же личный ноутбук, планшет или смартфон, а зачастую все три устройства сразу, есть почти у каждого взрослого человека и даже ребенка.
Из-за этого современные жилища по вечерам превращаются в подобие читального зала, где каждый член семьи уединяется в своей комнате за веб-серфингом, просмотром кинофильмов или компьютерными играми. Тем не менее, компьютеры в домах отнюдь не разрознены, а являются частью небольшой локальной сети. Сравнительно недавно список сетевых устройств пополнили умные телевизоры и медиаплееры с выходом в Интернет. Но многим пользователям этого мало и нередко под различные сетевые задачи выделяется целый компьютер, выступающий в роли сервера.

Зачем нужен домашний сервер

В качестве сервера обычно используется тот же десктоп, за которым люди ежедневно работают, или ноутбук, который вообще-то не предназначен для безостановочного, в течение многих месяцев функционирования. Такой подход, конечно, имеет право на жизнь, да и с финансовой точки зрения он выгоднее, но назвать его рациональным нельзя. Во-первых, запуск на таком компьютере ресурсоемкого приложения, например современной игры с трехмерной графикой, повлечет за собой снижение скорости обмена данными. Во-вторых, для создания домашнего сервера далеко не во всех случаях необходим мощный ПК, который, работая круглосуточно, будет потреблять массу электроэнергии, да еще и изрядно шуметь. В-третьих, компьютер, за которым ежедневно работаешь, можно случайно выключить или перевести в спящий режим, а ноутбук и вовсе захватить с собой в дорогу, тем самым нарушив всю домашнюю компьютерную инфраструктуру. Учитывая вышесказанное, не возникает даже малейшего сомнения в целесообразности использования отдельного устройства — домашнего сервера.

Слово «сервер» у многих людей ассоциируется со сверхмощным компьютером, который из-за внушительных размеров и высокого уровня шума устанавливается в отдельной комнате. Но это верно лишь в отношении вычислительных систем крупных предприятий и научных лабораторий, тогда как домашний сервер являет собой полную противоположность — компактное, энергоэффективное и почти бесшумное устройство. Небольшие размеры мини-сервера позволяют установить его в укромном месте: на полке, под столом или за телевизором, чтобы не портить интерьер комнаты. Минимальное энергопотребление позволит не опасаться разорительных счетов за электричество, а низкий уровень шума или его полное отсутствие не помешает сну.

Как использовать мини-сервер

Мини-серверу можно смело поручить выполнение самых разных задач, в результате чего появится возможность реже включать настольный компьютер и всегда брать с собой в дорогу ноутбук, а не оставлять его дома. Все задачи, с которыми способен справиться мини-сервер, можно условно разделить на несколько основных групп.

  • Сетевое хранилище . Одной из самых частых ролей, которые берет на себя домашний сервер, является сетевое хранилище (Network Attached Storage, NAS). Такой подход позволяет предоставить доступ к фильмам и музыке всем сетевым устройствам. Кроме того, с помощью NAS удобно обмениваться только что снятыми смартфоном фотографиями и видеороликами: их нужно лишь загрузить в сетевое хранилище и можно просматривать на компьютере или телевизоре. При желании доступ к файлам из хранилища можно предоставить по протоколу FTP, благодаря чему они станут доступны но вводу пароля еще и пользователям, находящимся за рамками домашней сети.
  • Медиасервер . Унифицированный стандарт DLNA позволяет электронным устройствам обмениваться друг с другом мультимедийным контентом. Мини-сервер, поддерживающий этот стандарт, может транслировать видеопоток на телевизор с поддержкой DLNA, планшетный компьютер или смартфон.
  • Узел пиринговой сети . Процесс загрузки файлов по протоколу BitTorrent на высокой скорости и последующая их раздача ощутимо нагружают жесткий диск и замедляют обмен данными в сети. Поэтому разумно перепоручить выполнение этой задачи домашнему серверу, обладающему собственным жестким диском или даже несколькими. Клиент BitTorrent, как правило, входит в стандартный набор приложений мини-серверов, если же предустановленного приложения в меню не оказалось, его можно установить вручную.
  • Веб-сервер . По правде говоря, аренда вебхостинга сейчас стоит сущие копейки, так что устанавливать дома мини-сервер лишь для запуска на нем веб-сайта вряд ли оправданно. Но если вы уже обзавелись домашним сервером для выполнения других задач, почему бы не использовать его еще и в качестве веб-сервера, к примеру для персонального блога?
  • Видеонаблюдение . Чтобы следить за домом и приусадебным участком во время пребывания на работе, нужна система видеонаблюдения. Установить обычные веб-камеры или беспроводные IP-камеры по периметру дома не составит труда, а храниться сделанные ими фотографии и видеозаписи будут на мини-сервере. Если на территорию проникнут посторонние липа, специальное программное обеспечение мгновенно отправит на мобильный телефон-сигнал SOS. А в случае чрезвычайного происшествия наблюдать за обстановкой в доме можно будет удаленно, с ноутбука или планшета.
  • Обработка видео . Если вам нужно перекодировать видеоролик или отрендерить смонтированный фильм, приготовьтесь подождать от нескольких часов до суток, причем ПК в это время не будет пригоден для иной деятельности. Так что лучше отдать эту работу на откуп серверу.
  • Игровой сервер . Чтобы играть с друзьями в многопользовательские шутеры, один из компьютеров должен исполнить роль сервера.

Если же имеется домашний сервер, то игру можно не выключать сутками напролет, благодаря чему ваши друзья в любое время смогут присоединиться к сетевым баталиям.

Системный блок для сервера

В зависимости от потребностей домашний сервер может представлять собой устройство разного размера и форм-фактора. Простейший мини-сервер состоит из беспроводного маршрутизатора и внешнего жесткого диска с интерфейсом USB. Такое решение сгодится на роль сетевого хранилища, а после установки на маршрутизатор альтернативной прошивки, к примеру OpenWrt или DD-WRT, — еще и на роли веб-сервера и клиента BitTorrent.
Если понадобится более емкий и быстрый сетевой накопитель, рекомендуем выбрать NAS-систему. Такое устройство оснащается двумя или четырьмя жесткими дисками, объединенными в RAID-массив, парой гигабитных адаптеров Ethernet и, как правило, предустановленным клиентом BitTorrent.
Если нужен компактный домашний сервер, который в то же время обладал бы возможностями полноценного компьютера, стоит присмотреться к неттопам — миниатюрным системным блокам, построенным на базе экономичных процессоров Intel или AMD. При желании мини-компьютер можно собрать собственноручно на основе материнской платы Mini-ITX или Barebone-системы — почти готового к использованию компьютера, в который нужно установить лишь модули оперативной памяти и жесткий диск, после чего можно заняться вопросом размещение серверов в датацентре . Такие решения, как правило, могут похвастаться более производительным, чем у неттонов, процессором, а значит, подойдут для обработки видео и запуска игрового сервера.

Конфигурации домашнего сервера

Итак, из чего должен состоять домашний сервер? Прежде всего, определимся с общими требованиями к его конфигурации.

  • Компактность . Мини-сервер необязательно должен быть под рукой: ничто не мешает убрать его в кладовку или даже на балкон. Тем не менее собирать его в полноразмерном tower нерационально, обычная городская квартира отнюдь не резиновая, и место в ней весьма и весьма ограниченно. Потому есть смысл использовать малогабаритный баребон или компактный корпус формата Mini-ITX.
  • Быстрый сетевой адаптер . Ни монитора, ни клавиатуры с мышью у уважающего себя сервера нет, всякий обмен данными с внешним миром он получает исключительно по сети. Потому без гигабитного сетевого адаптера (а то и двух) не обойтись. Как бы ни было велико искушение избавиться от сетевой инфраструктуры с помощью адаптера Wi-Fi или Powerline (HomePlug), подключать сервер придется витой парой категории 5е или 6, только она сможет обеспечить пропускную способность, необходимую для многих сетевых сервисов.
  • Емкая, быстрая и надежная дисковая подсистема . Одним из наиболее востребованных сетевых сервисов является хранение данных. В самом деле, зачем искать интересующий вас фильм или дистрибутив нужной программы среди нескольких сетевых компьютеров, если можно приспособить для хранения сервер? Разумеется, емкость дисковой системы должна быть достаточной, чтобы вместить все то, что члены семьи сочтут нужным сохранить: видеофильмы и видео, фотоархивы, полезные программы и т.д. Также важна скорость доступа к этим материалам: кто захочет ждать по 30-40 минут, пока с сервера загрузится нужный файл. С надежностью, в общем-то, и так все ясно — при потере 3-4 Тб информации восстановление может занять много Бремени, а кое-что и вовсе реанимировать не удастся. Всем этим условиям удовлетворяет RAID-массив из нескольких жестких дисков.
  • Низкий уровень шума и эффективное охлаждение . Если вы так и не собрались перенести сервер на балкон, вам может мешать шум его вентиляторов, особенно ночью. Поэтому следует позаботиться о том, чтобы сервер не сильно грелся и его система охлаждения имела тихие низкооборотные вентиляторы. Тут важно не переборщить с мощностью: тоновый восьмиядерный процессор домашнему мини-серверу чаще всего ни к чему, вполне можно обойтись экономичной моделью невысокого уровня.
  • Производительность . В какой-то степени это требование находится в противоречии с предыдущим, и вам придется искать компромисс между ними. Ключевое значение имеет круг задач, которые предполагается возложить на мини-сервер. Если, скажем, вы собираетесь использовать его для «тяжелых» вычислений, таких как кодирование и рендеринг видео, волей-неволей придется установить что-нибудь вроде Intel Core i5-2500k и мириться с шумной системой охлаждения. Если же сервер в основном будет использоваться как хранилище, можно смело экономить на процессоре и ограничиться чем-нибудь бюджетным.
  • Надежность . В последнюю очередь упомянем надежность самого сервера. Увы, домашним мини-серверам не доступны практически все серверные технологии повышения надежности, поэтому следует сделать акцент на компонентах от зарекомендовавших себя производителей и на качественной сборке системы. Также стабильности добавит источник бесперебойного питания: он обеспечит непрерывную работу мини-сервера при кратковременных сбоях питания и защитит оборудование при серьезных проблемах в электросети.

Комплектуем свой мини-сервер

В завершение дадим краткий обзор компонентов, из которых мы собрали мини-сервер, послуживший тестовым стендом для разного рода испытаний.
Миниатюрный и легкий неттоп можно закрепить на задней панели монитора или телевизора.

  • Системная плата ASUS P8H67-I . Из богатейшего набора системных плат Mini-ITX, имеющихся на рынке, мы выбрали плату, оборудованную сокетом LGA1155, с прицелом на достаточно мощный универсальный минисервер. Также нас интересовал встроенный RAID-контроллер, с помощью которого можно построить по-настоящему производительное и надежное сетевое хранилище.

  • Процессор Intel Core 13-2100 . С одной стороны, способен обеспечить высокое быстродействие, а с другой — хорошо вписался в наш ограниченный энергобюджет (65 Вт из 180 Вт).
  • Память Apacer 2×1 Гб DDR3-1333 . Большой объем памяти нашему серверу ни к чему: кодировать видео мы на нем не собирались, а потому сочли возможным сэкономить на ОЗУ.
  • Четыре однотерабайтных жестких диска Western Digital WD10EZRX . Эти HDD относятся к серии Caviar Green и обладают пониженной скоростью вращения шпинделя; как следствие — возрастают надежность и долговечность, а также снижаются энергопотребление и тепловыделение. Все эти параметры имеют первостепенное значение для домашнего мини-сервера. Жесткие диски мы объединили в массив RAID по схеме 1+0, то есть зеркало из двух пар с чередованием (stripe). С одной стороны, такая схема обеспечивает высокую производительность дисковой подсистемы, с другой — достаточно высокую надежность за счет дублирования. Пришлось, конечно, пожертвовать емкостью: общий объем хранения системы составил 2 Тб.
  • Корпус Chenbro ES34069 . Компания Chenbro хорошо известна своими не слишком изящными, зато надежными и грамотно сконструированными корпусами. ES34069 это компактный корпус для системной платы формата Mini-ITXc внешним блоком питания. Немаловажным для нас было наличие четырех внешних отсеков для жестких дисков, двух 70-миллиметровых вентиляторов и еще двух посадочных мест для вентиляторов размером 60 мм. Внешний блок питания ограничивал нас в мощности достаточно скромной величиной в 180 Вт.
  • Операционная система FreeNAS . Устроила нас больше других. Во-первых, она бесплатна, что снижает итоговую стоимость мини-сервера, а во-вторых — обладает многими возможностями, присущими дорогим серверным ОС. Кроме того, нас прельстила простота ее установки и настройки.

Таким образом, мы получили достаточно мощный, надежный, компактный и тихий сервер, способный обеспечить работу практически всех сетевых сервисов, которые могут понадобиться дома. При этом его в любой момент можно превратить в обычный ПК, подключив монитор, клавиатуру и мышь. Разве что поиграть не удастся: на системной плате есть свободный слот PCI Express х 16, но вот мощности блока питания на игровую видеокарту явно не хватит.

Будущее домашних серверов

В данный момент трудно дать точные прогнозы относительно дальнейшего развития домашних серверов. С одной стороны, мини-серверы не вписываются в концепцию посткомпьютерной эпохи, согласно которой пользовательские данные не только хранятся, но и обрабатываются на сервере компании — поставщика облачных услуг. С другой стороны, почти ежедневно поступают сообщения о хакерских атаках на популярные вебсервисы, из-за чего многие побаиваются хранить личные данные в облаке. Так что домашний сервер, доступ к которому имеют лишь локальные компьютеры, выглядит наиболее безопасным и надежным решением.

Чем больше я набираю опыта в администрировании веб-серверов, тем смешнее мне читать то, что пишут в сети о домашнем хостинге. Но самое интересное, что пишут эти мифы те, кто никогда даже не пробовал ставить сервер дома либо вообще ничего об этом не знает. Я отобрал несколько самых распространённых мифов и сейчас их разрушу. После этого дам пошаговое руководство к дальнейшим действиям по постройке своего домашнего веб-сервера.

Для чего нужен домашний web сервер?

Снижение цен на тарифы интернет провайдеров и постоянное увеличение скорости доступа в сеть дают отличную возможность установки web сервера у себя дома. Такой сервер ничем не уступает серверам, расположенным в датацентрах. На нём можно, например, разместить свой блог, сайт или даже магазин да и вообще разместить любой вебсервис. Я знаю случаи, когда на домашнем сервере размещали достаточно крупные коммерческие проекты, всё успешно работало и приносило хороший доход.

Ко всему этому добавлю, что, установив сервер дома, Вы получите огромный опыт в администрировании сервера. С таким опытом Вы впоследствии сможете легко настроить любой сервер, расположенный в датацентре, и Вам не придётся заказывать платную техподдержку.

Домашний сервер - это дорого.

Это самый распространённый миф. В качестве домашнего сервера можно использовать любой компьютер. Например, Вы купили новый, более мощный компьютер, а старый можно превратить в сервер. Но я советую по возможности собирать сервер из новых комплектующих. Можно даже под это дело купить уже собранный системный блок либо неттоп. Для начала этого будет более чем достаточно.

Будут огромные счета за электричество.

Тоже распространённое заблуждение. Тут всё зависит от того, на каких комплектующих Вы собираете свой сервер. Если в основу положено использование материнской платы на базе процессора Intel Atom или ему подобного, то энергопотребление (с двумя sata дисками) будет порядка 50 ватт. В пересчёте на деньги это 60 рублей в месяц. Добавим стоимость статического IP адреса + доступ в интернет (в моём случае это 580 рублей в месяц). Итого получается: 640 рублей в месяц или 7680 рублей в год. Для сравнения… Если Вы будете арендовать в датацентре выделенный сервер с теми же техническими параметрами, то Вам придётся ежемесячно отдавать за него от 1300 рублей.

От сервера много шума, и в комнате его не поставишь

Эта проблема давно не актуальна. Современные комплектующие позволяют собирать полностью бесшумные домашние сервера даже без вентиляторов. В таком случае максимум, что можно услышать, - это шелест жёстких дисков, да и то лишь, если вплотную приложить ухо к корпусу системного блока.

Вот запись звука работы моего сервера, сделанная высокочувствительным микрофоном на расстоянии одного метра от системного блока. При этом в моём сервере имеется два вентилятора охлаждения.

Настроить сервер под силу лишь программисту с большим опытом.

Это тоже миф, хотя он и имеет под собой основание. Дело в том, что в сети есть огромное количество материалов по вопросам администрирования серверов, но нет пошагового руководства для новичков. От этого создаётся впечатление, что всё невероятно сложно. Но это совсем не так. Приведу пример. Вы установили на свой компьютер винду. Затем стали устанавливать необходимый Вам софт и после этого настроили программы под свои нужды.

Вопрос: Вы при этом занимались программированием? Конечно, нет! Вот и с базовой настройкой веб-сервера всё то же самое. Нужно лишь установить необходимый софт и настроить его под свои нужды. А, имея под рукой пошаговую инструкцию, сделать это не составит труда.

Для сервера нужен канал как минимум 100 мегабит

Серьёзное заблуждение. Для сайтов на домашнем хостинге с посещаемостью в 3 - 6 тысяч хостов достаточно и 10 - 15 мегабитного канала.

Ну а если Ваши проекты перерастут эту посещаемость, можно купить канал пошире или переехать на сервер, расположенный в датацентре.

Домашний сервер уязвим, и его сразу взломают

Очень распространённое заблуждение. Я уже писал, что безопасность зависит не от местоположения сервера, а от уровня знаний его администратора. Зачастую домашние сервера имеют защиту серьёзнее, чем шаред хостинг или VDS. К примеру, на большинстве шаредхостингов нет даже элементарной защиты от DoS атак, и в случае атаки Ваш аккаунт просто заблокируют (есть личный опыт). Бывает, что в случае заражения одного сайта на хостинге есть вероятность инфицирования всего сервера. Еще на хостингах редко обновляют или вообще не делают обновлений софта до последних версий, а в старых версиях могут быть дыры... Короче говоря, если грамотно настроить домашний сервер, Вы получите надёжно защищённый веб-сервер, по сравнению с которым любой коммерческий хостинг будет выглядеть дырявым ведром.

С чего начать

Вот Вы взвесили все плюсы и минусы домашнего сервера и решили, что он Вам необходим. Возникает ещё несколько вопросов, первые из которых: с чего начинать и в какой последовательности всё делать? Подготовку, сборку и настройку можно разделить на семь простых шагов.

Узнать у своего интернет провайдера: предоставляет ли он услугу статического IP адреса. А также выяснить: не блокирует ли он порты, например порт 80. А чтобы не было проблем в будущем, лучше напрямую спросить: можно ли поставить на их канал веб-сервер. Моя практика показывает, что большинство адекватных провайдеров лояльно к этому относится и не запрещает использовать подключение в этих целях. Перейти на безлимитный тариф (желательно симметричный). Ширина канала чем больше, тем лучше.

Приобрести все комплектующие, из которых будет собран домашний сервер. После сборки настроить его BIOS на автоматическую загрузку операционной системы после внезапного отключения электроэнергии. Купить роутер и настроить его для работы с сервером, открыв нужные порты . Приобрести источник бесперебойного питания такой мощности, которая обеспечит минимум 15 - 30 и более минут работы Вашего сервера после внезапного отключения электричества в доме.

Скачать операционную систему Debian и сделать загрузочную флешку либо прожечь образ диска на болванку. После этого загрузиться с флешки либо с диска и установить операционную систему, при установке создав программный дисковый массив RAID 1.

Установить на сервер хостинг панель ISPConfig 3 . Затем настроить в этой панели все необходимые службы.

Продолжать самообразование и продвижение сайтов, расположенных на домашнем хостинге. Мифы разбиты. Пошаговое руководство на руках. Ну что ж, приступим к практике!

Халик Алешин

Поднимаем сервер для локальных сетей, малых офисов и фирм на одном дыхании...

Сегодня тема такая: разворачиваем сервер на базе ос Linux (Open Suse) за пол дня, "из коробки". Такое бывает, когда работаешь в маленькой фирме, где ты и администратор, и программист, и дизайнер, в общем, все в одном. И каким-то прекрасным ранним утром, когда ты сидишь и спокойно пьешь кофе, директору обязательно придет в голову светлая идея: "Пора вести нормальный учет товара/средств/клиентов" или еще что-нибудь в этом духе. Поверьте моему опыту, она ему обязательно придет. Поскольку более компетентного специалиста чем вы в фирме нет, вам приходится писать эту базу данных. Но на этом трудности не кончатся, ведь базы данных фирм должны быть хорошо защищены, всегда доступны, работать без перебоев, так как временно отключенная база приносит убыток фирме. Поэтому лучше всего держать их на личном сервере фирмы. Но это не единственная ппричина. Приплюсуем к этому:

    Данные всегда доступны с высокой скоростью.

    Кроме сотрудников фирмы никто не имеет доступ к данным, так как сервер не имеет доступа в Интернет.

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

    Быстрое реагирование на сбой сервера/оборудования.

И многое другое. Но вот развернуть такой сервер не так-то просто, особенно если в фирме все компьютеры "не мощные" и под Windows сервер ставить просто нереально, так как он не будет реагировать с нужной скоростью. Все также помнят, что Windows очень нестабильная система (по сравнению с Linux), под Windows очень много троянских программ и вирусов (более 140 тысяч, а для Linux около 30), и переустанавливать систему каждый месяц из-за вирусов или просто из-за того, что ей "расхотелось" работать - это просто нереально. Поэтому выбор падает на Linux: эта операционная система не требовательна к ресурсам, может работать много месяцев подряд без перезагрузки, основные враги таких серверов - уборщицы.

Но не только для личных нужд фирм собираются такие сервера, на них можно зарабатывать неплохие деньги, предоставляя различные услуги типа web-хостинг, файловый сервер, почта, прокси, рассылка писем, базы данных, кластеры и т.д. Да и рядовые пользователи ставят у себя не мощные сервера, например, ради какой-нибудь любимой сетевой игры.

Сегодня мы соберем такой сервер, подберем железо, установим все нужные пакеты и настроим сервер и все нужные приложения. Мы установим связку Apache + PHP + MySQL + Phpmyadmin + ProFTPd.

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

Apache - HTTP-сервер, свободный web-сервер. С апреля 1996 г. это самый популярный HTTP-сервер в Интернете; он работает на половине всех web-серверов. Основными достоинствами Apache считаются надежность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6 (http://www.httpd.apache.org/).

PHP - язык программирования, созданный для генерации HTML-страниц на web - сервере и работы с базами данных. В области программирования для Сети, PHP - один из популярнейших скриптовых, благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP (http://www.php.net/).

MySQL - решение для малых и средних приложений. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удаленные клиенты (http://www.mysql.com/).

Phpmyadmin - web-приложение с открытым кодом, написанное на языке PHP и представляющее собой web-интерфейс для администрирования баз данных MySQL. phpMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у web-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс (http://www.phpmyadmin.net/).

ProFTPd - FTP сервер с открытым исходным кодом, предназначенный обмена файлами в компьютерных сетях. FTP позволяет подключаться к серверу, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того, возможен режим передачи файлов между серверами (http://www.proftpd.org).

Что же нам дают эти пакеты? Наш сервер будет работать на двух интерфейсах (две сетевые карты), внешний интерфейс (в сети Интернет) и внутренний режим (локальная сеть). Они отличаются только параметрами доступа (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 мм.

Примерная стоимость:

CPU - 250 руб.
RAM - 400-500 руб.
Сеть (невстроенная) - 150 руб.
Материнская плата (встроено видео) - 400 руб.
Видеокарта (почти ненужный элемент, требуемый объем 8-16 Мб) - 200 руб.
Блок питания - 400 руб.
Винчестеры - из расчета 1600-1800 руб. за 250 Гб.
Кулеры - 360 руб.
Итого: примерно 4000-5000 руб.

Если новое такое оборудование (процессор, материнскую плату, видеокарту) в магазинах не найти, собираемся и едем на местный радиорынок. Машину можно собрать и мощнее, предела совершенству нет. Можно и на Xeon собрать, но зачем столько мощности для локальной сети или офиса?

Итак, железо готово. Перейдем непосредственно к установке сервера. Здесь есть две возможности. Первая, так называемая "из коробки", то есть все сервера уже собраны и готовы к работе, осталось их сконфигурировать. Вторая, собрать самому из исходных кодов (сорцов) и также сконфигурировать. Сначала пройдемся по первому методу, а потом разберем второй.

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

Тут стоит сложный выбор: Windows или Linux.

Бесспорно, покажется, что проще и быстрей установить и настроить сервер под Windows. Да, это так... Но если подумать о слабой его защищенности и нестабильности, об ошибках BSOD (синий экран смерти), вирусах, дырках... Оставим эту тему, вернемся к ней позже.

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

Мой выбор пал на SUSE Linux Enterprice Server 10 (http://www.opensuse.org), так как он проще в конфигурировании и все нужные пакеты в нем имеются, потребуется скачать только несколько дополнительных пакетов.

Собственно установка

Итак, установка... Проходит она в графическом режиме на русском языке, кратко пробегусь по отдельным пунктам.

Разбиение диска. В моем случаи диск 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 символов, буквы верхнего и нижнего регистра, цифры, специальные символы.

Сеть, так как у нас два сетевых интерфейса (у меня только внутренний) ставим каждому из них свой IP адрес. Маршрутизацию не трогаем. Помним, что маршрутизация как воздух, никто не замечает, пока не испортишь. Порт SSH открыт.

Сервер готов к работе, отключим монитор, клавиатуру, мышь, оставим три провода, два от сети и один - питание, не забываем о бесперебойном питании.

Итак, все основные настройки операционной системы готовы, займемся настройками приложений. Для этого есть специальный клиент SSH под Windows - putty.

Настройка клиента, host name - адрес или IP вашего сервера (внутренний интерфейс).

Залогинились и начинаем работать.

Первым делом ставим 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

Конфигурируем и устанавливаем. Файл запуска установился в /usr/local/sbin/proftpd. Запусти его и проверь в ftp-клиенте адрес ftp://localhost/ . Если каталог открылся, значит, установка прошла успешно. К сожалению, для ProFTPD разработчики не позаботились выложить готовый скрипт для init.d. Для запуска сервера создадим скрипт /etc/init.d/proftpd и сделаем его исполняемым, ссылка на сам файл - в конце статьи.

Делаем исполняемым:

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

Запуск /etc/init.d/proftpd start
Остановка /etc/init.d/proftpd stop

Перед соединением с сервером нужно разрешить доступ к нему:

Пользователи и безопасность > Брандмауэр (FireWall)

Интерфейсы, выбираем Внутренний > Изменить > Зона интерфейса "Внутренняя зона".

Теперь идем в /usr/local/etc/proftpd.conf и полностью удаляем секцию. Таким образом мы перекроем кислород всем анонимным пользователям.

Перезапускаем proftpd:

# service proftpd restart

Конфигурация заключается только в правильном распознавании русских символов и установке кодировки по умолчанию cp1251, редактируем файл /etc/my.cnf