Домашний сервер. WiFi роутер

 

Домашний сервер. WiFi роутер из песочницы

 

6 сентября 2011 в 23:31
http://habrahabr.ru/post/127879/

Домашний сервер это просто… компьютер, работающий 24 часа, 7 дней в неделю, 365 дней в году. Что он делает?
«Раздает» интернет по проводу и по воздуху.
Является складом с круглосуточном доступом для всех ваших коллекций фильмов, музыки, игр, программ, backup’ов важной информации, сюда же можно добавить, что это ваше файловое хранилище доступное внутри сети, а если постараться, то и из любого уголка мира можно попасть в него. Понравилось? Хотите «завести» подобное у себя дома?
Тут вспоминается фраза из анекдота — «Главное, мужики, не бояться!».

Есть несколько этапов создания собственного домашнего сервера:

  • Необходимо определиться с ОС [операционная система]
  • Купить/найти комплектующие для, собственно, сервера
  • Запастись большим количеством терпения, заготовить 33 вкладки с поисковиком Google для вопросов о том, почему то или иное не работает [но должно же всё работать :P]

Разберемся.

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

Пункт номер два. Стоит сразу оговориться, что вариант домашнего сервера на ОС Windows требует больше мощности от комплектующих, нежели на ОС Linux. В моем случае, мой личный домашний сервер основывается на Pentium 4, 1000MHz, 1Gb RAM.

Пункт номер три. Стоит сразу оговориться, что статья рассчитана на «не_совсем_новичок», а на пользователей имевших общение с ОС Linux и вообще с компьютером.

В данной статье мы будем рассматривать домашний сервер на примере ОС OpenSUSE.
Что мы будем делать:

  • DHCP Server — для того чтобы раздавать компьютерам в сети ип адреса, таким образом мы получим домашнюю сеть.
  • WiFi AP — чтобы была точка доступа WiFi, то есть можно будет убрать в шкаф домашний WiFi роутер.
  • FTP Server — для доступа к файловому хранилищу из интернета.
  • Samba — для доступа к файловому хранилищу внутри сети.
  • TorrentClient — полу-автоматизированный торрент-качалка на Вашем домашнем сервере.

Начнем с установки системы. Процесс тривиален и прост. Практически как Windows установить.
image
Рисунок 1. Установка OpenSUSE 11.4.
Щелкаем «Далее», выбираем нужные пункты, язык, раскладка клавиатуры и так далее. Отдельно задерживаться не будем, этот этап простой.
image
Рисунок 2. Процесс установки системы.
После установки системы Вы получите практически голую систему(хотя, на самом деле в ней куча хлама и мусора, не нужных программ, библиотек). Как только система загрузилась в первый раз — перезагрузитесь, если есть ошибки, она сразу вылезут. Принимаемся за работу.

Для начала смотрим сетевые настройки, набираем в консоле:

ifconfig

и смотрим вывод команды. Там будут указаны Ваши сетевые интерфейсы и информация о них:
image
Рисунок 3. Вывод команды ifconfig
eth0(internet) и eth1(lan) — интерфейсы обычных сетевых карт, в eth0 воткнут шнур с интернетом, а из eth1 шнур идет в свитч, wlan0 — интерфейс WiFi карты, lo — обратная петля, mon.wlan0 — об этом интерфейсе Вы узнаете позже, в другой статье или в этой же, но ниже. Сейчас сразу необходимо воткнуть шнур из которого течет интернет в ту сетевую карту(в данной статье это eth0), в какую он будет всегда воткнут и не путать их. Теперь, открываем консоль и пишем:

nano /etc/sysconfig/network/ifcfg-eth1

Откроется файл конфигурации интерфейса eth1(тот, что для локальной сети), и прописываем туда следующее:

BOOTPROTO='static'
IFPLUGD_PRIORITY='0'
IPADDR='192.168.1.1/24'
STARTMODE='ifplugd'
USERCONTROL='no'

Сохраняем (комбинация клавиш Ctrl+O) и открываем следующий файл /etc/sysconfig/network/ifcfg-wlan0 — конфиг беспроводного интерфейса, прописываем туда следующее:

BOOTPROTO='static'
IFPLUGD_PRIORITY='0'
IPADDR='192.168.2.1/24'

На этом завершена подготовка сетевых карт. О данных функциях Вы можете прочитать в файле ifcfg-template. Эти же настройки можно произвести и из интерфейса, достаточно открыть Пуск-YAST-Сетевые настройки и там изменить IP адреса и другие опции, для всех доступных интерфейсов.
Всё сделали, хорошо. Приступаем к дальнейшей настройке.

DHCP Server. Служба называется dhcpd, при стандартной установке системы, она уже включена в репозитарий системы, ее надо только включить:

etc/init.d/dhcpd start/

Основной конфигурационный файл DHCP сервера находится по адресу /etc/dhcpd.conf. Его и необходимо редактировать. Полную информацию по командам, Вы можете получить написав в консоле следующее:

man dhcpd

Для редактирование конфигурационных [далее, конфиг] файлов я использую текстовый редактор nano, также можно использовать vim.

Предлагаю взглянуть на рабочий конфиг файл DHCP сервера, для наглядности:

# Здесь указываем DNS сервера выдаваемые Вашим провайдером, смотрите в договоре с провайдером.
option domain-name-servers 77.37.251.33, 77.37.255.30;
# Отключаем динамические обновления DNS.
ddns-update-style none;
ddns-updates off;
log-facility local7;
# Наша подсеть, для проводных интерфейсов.
subnet 192.168.1.0 netmask 255.255.255.0 {
# Указываем интерейфейс, через который будет выдавать компьютерам IP адреса из подсети, укзанной выше. В данном случае, применяется схема Server -> switch -> #Computer №1,2,3..., если компьютер всего один, то Server -> Computer №1.
INTERFACES="eth1";
# Диапазон выдаваемых IP адресов из той подсети, что мы указали выше.
range 192.168.1.2 192.168.1.10;
# Тут мы вписываем IP адрес нашего сервера, этот адрес надо будет указать в Сетевых настройках но том интерфейсе, который мы указали выше, то есть eth1, далее об этом будет подробнее.
option routers 192.168.1.1;
# Время обновления адресов(12 часов). Время, через которое DHCP сервер выдаст адреса заново. Возможно, в рамках домашнего сервера это функция бесполезна.
default-lease-time 172800;
max-lease-time 345600;
}
# Наша подсеть, для беспроводных интерфейсов.
subnet 192.168.2.0 netmask 255.255.255.0 {
# Диапазон выдаваемых IP адресов.
range 192.168.2.2 192.168.2.5;
# Выбираем беспроводной интерфейс
INTERFACES="wlan0";
# Тут мы вписываем IP адрес нашего сервера для тех компьютеров, которые подключаются по WiFi, этот адрес надо будет указать в Сететвых настройках но том интерфейсе, который мы указали выше для беспроводной подсети, то есть wlan0, 
option routers 192.168.2.1;
# Время обновления адресов(12 часов).
default-lease-time 172800;
max-lease-time 345600;
}

Конфиг файл, предварительно был снабжен разъясняющими комментариями. Это пример простейшего, но вполне рабочего DHCP сервера. Также, необходимо отредактировать файл /etc/sysconfig/dhcpd, а именно одну строчку — DHCPD_INTERFACE=» «, здесь вписываем интерфейсы для беспроводной подсети и проводной подсети, то есть, те самые интерфейсы, которые мы указывали в конфиг файле DHCP сервера — /etc/dhcpd.conf в строчках INTERFACES=»». После этого всего надобно перезагрузить систему.

На этом редактирование конфиг файлов DHCP сервера завершено, если Вы вставите интернет кабель в сервер(eth0), а другой провод вставите в switch и из свитча в свой компьютер, то DHCP сервер Вам выдаст адрес из выбранного диапазона.

HostAP — начинаем настраивать раздачу WiFi.

Первым делом необходимо какой фирмы wifi-сетевая карточка, в данной статье всё будет описываться с условием, что сетевая карта фирмы Realtek, поскольку она самая распространенная. Необходимо скачать и установить утилиту hostapd, изначально при установке из репозитария она собрана без поддержки драйвера nl80211, поэтому необходимо собрать ее из исходников, с включенной поддержкой нужного драйвера (на сетевых карточках от фирмы atheros — hostapd должна работать скачанная из репозитария) об этом поговорим позже. Также необходимо скачать пакет утилит binutils, это можно сделать, выполнив в терминале следующую команду:

zypper in binutils

После установки утилит, необходимо настроить службу hostapd, весь процесс настройки состоит из редактирования конфигурационного файла /etc/hostapd.conf, место расположение этого файла может быть изменено в файле /etc/default/hostapd.

# Выбор беспроводного интерфейса с которого будет раздаваться WiFi
interface=wlan0
# Определение драйвера для вашей сетевой карты 
driver=nl80211
# Включение функции отвечающей за ведение логов с опциями
logger_syslog=-1
logger_syslog_level=4
logger_stdout=-1
logger_stdout_level=2
# Название Вашей сети
ssid=myssid
# Код страны
country_code=RU
# Выбор режима раздачи (еще бывают b и n)
hw_mode=g
# Канал, по которому идти сигнал
channel=3
# Пароль для доступа к WiFi
wpa_passphrase=pass1234
# Выбор системы шифрования
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Чуть выше находится пример рабочего конфига. Более подробно о процессе настройки и дополнительных опциях читайте в man’e.

man hostapd

Дальнейший шаг это запуск службы hostapd в режиме раздачи WiFi. Для этого пишем команду в терминале:

hostapd -B /etc/hostapd.conf

Вуаля, получаем вывод консоле о том, что запущена раздача WiFi с такого-то MAC адреса и с таким-то SSID:

Configuration file: /etc/hostapd.conf
Using interface wlan0 with hwaddr 00:17:31:ed:cb:52 and ssid 'myssid'

Выше Вы видите вывод команды запуска раздачи интернета по WiFi, то есть, успешный запуск службы hostapd в режиме «демона», то есть, фоновая работа службы не зависит от открытого окна терминала, в котором Вы выполнили запуск службы.

На данный момент, Вы будете иметь полноценный WiFi роутер, который может раздать интернет по проводу и по воздуху. Дальше мы будем организовывать файловое хранилище доступное внутри сети, снаружи(из интернета), полу-автоматизированную торрент-качалку, также поговорим о настройке ежедневных/недельных бекапов информации при помощи планировщика и еще многое, для улучшения функционала домашнего сервера, увеличение автоматизации многих процессов, но уже в других статьях и заметках. Спасибо за внимание!