Пользователь
0,0
рейтинг
2 августа 2013 в 21:15

Администрирование → Беспроводная точка доступа, используя Linux tutorial

Что ж, вот и первая статья из обещанной серии.
Первое, что я буду делать — настраивать Software AP, или беспроводную сеть на базе компьютера. На этом этапе, конечно, нужен доступ к консоли сервера с правами рута. Кроме того, нужно также подключение к интернету НЕ через внутреннюю вайфай-карточку — кабелем, через 3G-модем, короче, как пожелаете, но только не по вайфаю, который мы будем использовать для создания беспроводной сети. Я на первое время подключил и сервер, и ноут, с которого управлял сервером, в одну сеть по кабелю — так надёжнее всё-таки. Буду использовать пакет hostapd — он довольно известен как надёжное решение и мануалов под него достаточно, а для DHCP и DNS серверов буду использовать dnsmasq — решение как раз под домашние сети, его использует DD-WRT, не удивлюсь, если кто-то ещё.

Самый первый шаг, конечно же:

apt-get install hostapd

Версия:
hostapd -v 
>hostapd v1.0 

Мда, в исходниках уже есть 2.0. Такой он, Debian stable. Но на самом деле это нам не особо помешает — версия 1.0 у меня работает достаточно стабильно.
Настройка:

Отредактировать файл /etc/default/hostapd.conf. В нём раскомментировать строку вида
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Это путь к файлу конфигурации демона hostapd.
Затем идем дальше — редактировать /etc/hostapd/hostapd.conf. Предоставлю содержимое моего файла конфигурации. Предупреждаю, парсер конфигурационных опций у этого демона очень чувствителен и ругается даже на пустые строки с пробелом. На комментарии не ругается.

interface=wlan0
Сетевой интерфейс беспроводной карты
driver=nl80211
Драйвер сетевой карты — обычно для hostapd отлично работает nl80211, не вижу смысла менять, да и говорят, что он работает в большинстве случаев.
ssid=CRWiFi
Название точки доступа, т.н. SSID
hw_mode=g
Режим работы сетевой карты — 801.11b/g/n. На самом деле — там всегда должно оставаться g, даже если карта способна на n, для настройки режима n придётся кое-что поменять, смотрите дальше:
#ieee80211n=1 #Раскомментировать для включения режима n
#ht_capab=[HT40-][SHORT-GI-40] #Раскомментировать для включения режима n

channel=6
Беспроводной канал — от 1 до 13. Для лучшей производительности рекомендуются 1, 6 или 11 канал.
wpa=2
Версия WPA
wpa_passphrase=11111111
Пароль беспроводной точки
Дополнительные настройки WPA2:
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
Следующая опция устанавливает блокировку MAC-адресов. Пока не знаю, как это настроить, да и штука довольно бесполезная, но все говорят, что без блокировки эту опцию нужно выставить в ноль — что я и сделал:
macaddr_acl=0

Полный конфиг одним блоком для копипаста в файл:
interface=wlan0
driver=nl80211
ssid=CRWiFi
hw_mode=g
#ieee80211n=1 
#Раскомментировать для включения режима n
#ht_capab=[HT40-][SHORT-GI-40] 
#Раскомментировать для включения режима n
channel=6
wpa=2
wpa_passphrase=11111111
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0

Конфиг автоматически проверяется перед запуском, так что — смело пробуйте запустить hostapd. Команды управления:
# /etc/init.d/hostapd start 
# /etc/init.d/hostapd stop 
# /etc/init.d/hostapd restart 
Напомню — также в Debian можно использовать команды вида service hostapd start, что легче в написании.

Пару шагов для устойчивости:

  • Нельзя забывать, что для шифрования WPA/WPA2 пароль должен быть не короче 8 символов. Если поменять пароль на лету, используя SSH сессию через беспроводной канал, можно внезапно отрезать себя от сервера — hostapd не захочет запускаться и единственное средство связи с сервером будет потеряно. Работает — не трогай, ну а если трогаешь — трогай осторожно.
  • В случае многопользовательской системы советую поставить права чтения файлов вида 700, чтобы простые пользователи не могли узнать пароль для точки доступа — если вас это волнует, конечно.

Что ещё могу сказать? С мобильными устройствами проблем нет, с ноутбуком под Windows 7 — крайне редко (примерно раз-два в месяц) не получается подключиться к точке. Лечится командой service hostapd restart, велика вероятность, что в новых релизах эта проблема убрана — есть версия hostapd 2.0.0, но компилировать и ставить её я пока что не пытался.

Пока всё. К точке можно попробовать подключиться, но… Для успешного подключения к точке доступа нужен DHCP сервер, без него к точке полноценно не подключишься — те же операционные системы не дадут этого сделать, поскольку без получения адреса само подключение не имеет особого смысла. Вот его и настроим!



Когда я только начинал учиться настраивать сервера под свои нужды, первое, на что я тогда я наткнулся — это пакет isc-dhcp-server, его я и планировал предложить, и статья уже была готова, но… Я нашёл dnsmasq, и моя жизнь изменилась в лучшую сторону. Dnsmasq — это и кэширующий DNS, и DHCP сервер со своим набором различных фич. Как только я заглянул в его конфиг, мое зрение улучшилось, все мысли в мозгу внезапно стали упорядоченными и я достиг просветления. Реально, конфиг очень простой и понятный. Но пока подготавливаем площадку для работы dnsmasq. Что же делать?

1) Придумать, как будут выглядеть адреса в нашей локальной сети. Я выбрал адреса типа 192.168.51.x.

2) Настроить сетевой интерфейс, на котором будет работать dnsmasq. На самом деле — очень важный шаг, который пропускают многие в своих мануалах по настройке DHCP-серверов. Дело в том, что компьютеру, на котором работает DHCP-сервер, необходимо прописать статический адрес — кто выдаст адрес DHCP-серверу, если он сам не может запуститься без адреса, а адрес себе он выдать не может, потому что не запущен?
Итак, открываем для редактирования файл /etc/network/interfaces и добавляем туда абзац вида:
auto наш_интерфейс
iface наш_интерфейс inet static
address 192.168.х.1 
netmask 255.255.255.0 
gateway 192.168.х.1
Сохраняем и перезапускаем наш сетевой интерфейс, на котором настроен DHCP:
ifdown интерфейс
ifup интерфейс
Проверяем состояние, сверяем настройки с теми, что должны быть:
ifconfig интерфейс

3) Нужно удалить любые DNS и DHCP серверы, чтобы dnsmasq мог спокойно запуститься — иначе выдаёт ошибку. У меня были установлены bind9 и isc-dhcp-server, пришлось избавиться от них. Если работаем по SSH из сети, в которой раньше адреса раздавал покойный DHCP-сервер, не перезагружаемся — выдавать адреса уже некому.

4) Нужно создать условия для работы сервера — создать пользователя для того, чтобы под ним запускать dnsmasq, прописать в системных настройках DNS-сервера, к которым dnsmasq будет обращаться и ещё пару мелочей.
Прописываем DNS сервера Гугла. Правда, первой строчкой у нас будет localhost. Это сделано для того, чтобы остальные системные приложения на нашем же сервере, когда им надо получить адрес от DNS-сервера, обращались сначала к dnsmasq, а не к Гуглу. Ну а dnsmasq достаточно умён, чтобы игнорировать эту строчку:
nano /etc/resolv.conf

nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 8.8.8.4	

Нужно защитить это файл от перезаписи при каждом запуске системы. Перезаписывает его dhclient, если что. Честно говоря, блокировка от записи — лишь один из способов того, как не допустить перезапись =) Есть и другие, но этот самый простой:
chattr +i /etc/resolv.conf

Что же, если вы по каким-либо причинам считаете блокирование файла неверным путём или также хотите использовать DNS, которые столь настойчиво предлагает dhclient? Тогда, как советует merlin-vrn, нужно использовать программу resolvconf.
Настройка resolvconf
Если пакет resolvconf ещё не установлен, устанавливаем. Единственное, что нужно для того, чтобы прописать статический адрес DNS для системы — отредактировать /etc/resolvconf/resolv.conf.d/base, вписав туда всё, что мы бы вписали в /etc/resolv.conf:
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4

service resolvconf reload — готово!

Добавляем группу и пользователя:
groupadd -r dnsmasq
useradd -r -g dnsmasq dnsmasq

5) Ставим Dnsmasq, он запускается и готов к работе, но мы его отключаем — ещё не настроен, нечего ему тут делать:
apt-get install dnsmasq
service dnsmasq stop

6) Чистим оригинальный файл от стандартного конфига:
echo "">/etc/dnsmasq.conf

Ну а теперь мы готовы настраивать. Скажу сразу — у dnsmasq много разных опций, которые я при написании статьи подробно описывал в комментариях… Пока не понял, что топик раздулся до неприличных и нечитаемых размеров, как будто недостаточно того, что статья и так переполнена текстом и отформатирована, как кусок незнамо чего. Поэтому — я оставлю конфиг с самыми важными без длинных комментариев и всяких дополнительных опций, а конфиг с дополнительными опциями будет под спойлером.
# Заставим dnsmasq запускаться исключительно под пользователем dnsmasq
user=dnsmasq
group=dnsmasq
##
# Настраиваем DNS. Не нужен - смело выкидываем эту часть.
##
# Настройка DNS - чтобы отключить DNS, поставьте тут 0.
# Если же хотите расположить DNS на нестандартном порту - что ж, располагайте.
port=53

# Размер кэша. Число обозначает количество хранимых доменных имён.
cache-size=1000

# Не спрашивать у внешнего DNS про имена без точки вроде homeserver, user-pc и прочие - 
# ему и так плохо, бедному, а ещё мы тут со своими заведомо локальными адресами...
domain-needed
# Что-то вроде предыдущего, тоже не даёт обращаться к глобальным DNS-серверам со всякой нелепицей в запросе
bogus-priv

# Интерфейс для приёма DHCP и DNS запросов.
interface=wlan0
# А вот этого интерфейса избегать, как чумы:
except-interface=ppp0 
# На всякий случай, мало ли глюк и сервер реально будет раздавать на ppp0, размахивая своим dhcp-authoritative.

##
# Настраиваем DHCP. НЕ нужен - смело выкидываем эту часть.
##
# Одна из самых главных строчек:
# она своим лишь присутствием запускает DHCP-сервер,
# заодно передавая ему размер пула адресов 
# 12h значит то, что срок аренды адреса по умолчанию - 12 часов.
# Соответственно, 12m - 12 минут, всё просто.
dhcp-range=192.168.51.50,192.168.51.150,12h

# Статический адрес. Указаны только MAC и IP:
dhcp-host=11:22:33:44:55:66,192.168.51.60
# Статический адрес. Указаны MAC, hostname, IP и индивидуальное время аренды.
# Да-да, вы поняли тему =) Всё решается одной строчкой:
dhcp-host=11:22:33:44:55:66,fred,192.168.51.60,45m

# Заблокировать выдачу IP-адреса для этого MAC-адреса:
dhcp-host=11:22:33:44:55:66,ignore
# Я лучше заблокирую - не, ну он выглядит реально подозрительно!

# Объявляем, что наш сервер - властитель нашей локальной сети и ни один другой не может быть подобным ему.
# НЕ ДЕЛАЙТЕ ЭТОГО, если есть такие же самопровозглашённые претенденты на трон - 
# можно порушить королевство, где выдаются IP-адреса
# А вот для моего сервера это необходимо, чтобы уменьшить время получения IP для устройств.
dhcp-authoritative

Расширенные опции:
# А тут можно немного подкорректировать то, что отдаёт DNS.
# IPv4-only.
# Поправим 1.2.3.4 на 5.6.7.8!
alias=1.2.3.4,5.6.7.8
# А если 1.2.3.x на 5.6.7.x? Ну тут уже нужна маска сети!
alias=1.2.3.0,5.6.7.0,255.255.255.0
# Ну а если мы вообще хотим перенаправить блок 192.168.0.10->192.168.0.40 на 10.0.0.10->10.0.0.40?
alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
# Всё, можно устраивать у себя свой Spamhaus и блокировать целыми блоками адресов, перенаправляя на что-нибудь ещё.

# Небольшой срыв покровов. Dnsmasq открывает порты на всех интерфейсах - 
# даже если сказано только про некоторые. Затем он просто игнорирует ненужные.
# Это, как говорят, сделано для удобства. Если честно - мне кажется, что 
# в нашем случае никакого удобства не будет.
# Следующая опция принуждает dnsmasq не притворяться и слушать только на тех интерфейсах,
# которые реально предназначены для этого.
bind-interfaces

# Интересная настройка! У нас же DNS, хоть и использующий общую базу адресов - 
# а это значит, что он может отдавать такие запросы, какие мы его попросим.
# Угадайте, что делает эта опция?
address=/vk.com/127.0.0.1
# Даа! Вместо ВК будет показываться гордое "It works!"
# Ходют тут всякие, трафик наш тратят.
# Ну и что, что безлимитный? =D 
# Использоваться, конечно, может не только для блокировки на уровне DNS, 
# но и для того, чтобы просто задать сетевое имя машине в локальной сети.

# Стоп, а зачем делать это в самом конфиге?
# Одна из прикольных фишек dnsmasq как DNS-сервера:
# читать файл /etc/hosts и все записи из него отдавать на соответствующие DNS-запросы.
# Можно не только удовлетворять запросы активизации KMS Microsoft Office
# и прочего софта с онлайн-активацией,
# но и блокать рекламу ещё до того, как она дойдёт до нашего сервера.
# Ну а зачем пихать всё сразу в hosts? Можно добавить внешний файлик с записями! И не один!
addn-hosts=/etc/banner_add_hosts
# Естественно, он по синтаксису должен быть в точности как hosts.
# А если идея c hosts, на ваш взгляд, неуместна, некультурна и вообще моветон?
# Используйте следующую опцию и отключите эту фишку.
no-hosts

# Интересная фишка, подходящая для ноутбуков с двумя сетевыми картами - проводной и беспроводной. 
# Заключается она в том, что на два разных MAC-адреса выдаётся один IP-адрес. 
# Правда, при этом подразумевается то, что два типа связи не будут использоваться одновременно - 
# если подключатся оба, то адрес получит второй MAC в строке. 
# Всё очень просто - MA:CA:DD:RE:SS:00,MA:CA:DD:RE:SS:01,12.34.56.78
dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.60

# Дать бесконечный lease клиенту c hostname bert. 
dhcp-host=bert,192.168.0.70,infinite

# На закуску - эта опция отвечает за "белый список". 
# Всё просто - адреса будут выдаваться только тем, кому вы выдали статический в этом файле.
# Остальные со своими грязными DHCPDISCOVER пролетают.
dhcp-ignore=tag:!known

# Размер пула DHCP-адресов. Интересно, почему эта настройка не задаётся согласно address range. 
dhcp-lease-max=640 #640 адресов хватит каждому
# На самом деле - большинству вообще не понадобится больше 100, но это мелочи.

# Интересная опция. Запускает скрипт при каждой выдаче адреса DHCP и истечении срока выдачи
# Аргументы: script add MA:CA:DD:RE:SS:00 12.34.56.78 hostname(если есть) (при добавлении)
# или script del MA:CA:DD:RE:SS:00 12.34.56.78 hostname(если есть) (при удалении)
dhcp-script=/bin/echo
# Если подумать - есть пара интересных применений. Вроде голосового оповещения при подключении =D

# Адрес NTP-сервера для машин в сети. Ещё не поставил - но обязательно поставлю, делов-то.
dhcp-option=42,192.168.51.1


Ага, сервер настроен. Запускаем:
service dnsmasq start

и смотрим на наличие ошибок в выводе команды. Если нет — всё отлично! Пробуем что-нибудь подключить к нашей точке и смотрим, как выдаются IP-адреса, пингуем и проверяем DNS. Файл со списком выданных адресов: /var/lib/misc/dnsmasq.leases.
В следующей статье — подключение 3G-модема и конфигурация простого, но стабильного NAT/firewall на iptables. Удачной настройки!
Критика по содержанию, удобочитаемости и форматированию статьи более, чем уместна.
Арсений Пичугин @CRImier
карма
7,0
рейтинг 0,0

Самое читаемое Администрирование

Комментарии (67)

  • 0
    правильно ли понял, что ноутбук с линуксом если подключить его эзернетом к сети, то из него можно сделать AP? А ubuntu подходит?
    • +8
      Правильно. Из линя не только можно ap сделать, но и чпу, систему управления атомной станции, бортовой компьютер и т.п., но и… микроволновку.)))
      • –3
        Можно. Но зачем?

        AP — самое то.
        ЧПУ — избыточно, но пойдет.
        Система управления АЭС — ни в коем случае, здесь нужно что-то заточенное и реалтаймовое. QNX какой-нибудь, например.
        Бортовой компьютер — избыточно, но пойдет.
        Микроволновка — из пушки по воробьям. Разве что это будет телевизорошкафоящик с функцией микроволновки.
        • +1
          linux cnc-ubuntu по сути. ЧПУ.
          Linux уже давно умеет в режиме реального времени работать. Соответствующие опции в ядре.
          МКС на лине!!!
          Но можно-же.)))
          • +3
            Linux? В реальном времени? Да вы шутите.
            То, что есть в ядре (помню, когда-то еще был rt патчсет, сейчас он наверное уже влит в ядро) — лишь попытка получить более-менее приближенное к реальному времени ядро.
            • +2
              не влит
            • 0
              Была ещё попытка сделать Completely Fair Scheduler, которую в 2.6 почему-то не приняли. У меня с этим патчем сразу же пропали задержки при проигрывании видео и прочая неприятная ерунда.
              ЧПУ это круто, но там система вида «сдвинуть сверло туда-то», и если сверло задержится хоть секунду в каком-то неподвижном положении, пока кто-то свапится и т.п., ничего страшного не произойдёт. По идее на 3d печать уже может негативно влиять.
              • 0
                CFS же вроде дефолт, начиная с 2.6.23, нет? Там еще в 2.6.38 был знаменитый патч на 200 строк.
                • +1
                  Видимо имелся ввиду BFS разработки неизвестного анестезиолога, а CFS разработки Ingo Molnar, конечно, приняли и используется.
      • +1
        сначала нужно изучить офсайт призводителя сетевой карты, не все они умеют мастер режим.
    • –1
      Linux вообще друг человека =) И да, Ubuntu отлично подойдёт, нужно будет лишь использовать sudo — в моих примерах подразумевается наличие прав рута.
    • 0
      В свежих Gnome shell и тестовой плазме это можно сделать и без ковыряний с конфигами.
      • 0
        Эта опция не гном-шела или плазмы, это часть network-manager. Только вот есть нюанс. Точка доступа создаваемая таким образом не видна большинству мобильных и планшетов, в причины вникать не стал, завел hostap
        • 0
          Я и не говорил обратного, просто заюзать эту опцию из графического интерфейса можно только там
        • 0
          Видимо, это AD-HOC. Скажу сразу — я даже не рассматривал эту опцию, поскольку, как по мне, это подходит лишь для быстрого поднятия беспроводной связи между парой-тройкой ноутов на коленке, стабильность тоже так себе (использовал в своё время AD-HOC, встроенный в Windows XP и W7). Именно отсутствие поддержки на многих устройствах и не радует. Так что — лучше повозиться, но потом не жалеть о том, что не во всех случаях подходит, к hostapd подключается всё, что ловит сигнал.
          • 0
            Следует все-таки отметить, что для работы hostapd чип/драйвер беспроводного адаптера должен поддерживать работу в master mode. Не все поддерживают.
    • 0
      Осмелюсь напомнить:
      habrahabr.ru/post/122876/
  • +1
    К слову, wpa_supplicant с некоторых пор сам умеет поднимать точку доступа, т.е. без hostapd. Он, конечно, простой, и фич там немного, может кому интересно будет. И, кстати, NetworkManager тоже может создавать точку доступа, как раз через wpa_supplicant, и сразу настраивать NAT и dnsmasq, и все это с gui.
    • +1
      Насколько я помню — не все карточки поддерживаются в этом режиме wpa_supplicant. Или я неправ и он тоже работает через nl80211?
    • 0
      Начиная с какой версии? В OpenSuSE 12.3 не наблюдаю, что-то
      • 0
        С версии 1.0 wpa_supplicant´а. Как настраивать через параметры ­— не знаю, знаю, что NetworkManager использует для настройки dbus-интерфейс.
        • 0
          Вообще-то, hostapd — часть пакета wpa_supplicant.
  • +3
    Сохраняем и перезапускаем наш сетевой интерфейс, на котором настроен DHCP:
    ifconfig интерфейс down
    ifconfig интерфейс up
    
    Неверно. ifconfig «опускает» или «поднимает» лишь сам интерфейс, Вам же нужно его переконфигурировать. Потому использовать надо ifup и ifdown.
    • –2
      Хм, спасибо. До этого считал, что ifup и ifdown — всего лишь алиасы для быстрого запуска. Пойду почитаю ман.

      • +4
        Ну так маны нужно читать до того, как хауту писать.
        • 0
          Ну так все команды не перепроверишь и не учтёшь, к сожалению.
          • +1
            А надо! Или не надо писать такие «статьи».
            • 0
              А что, если статья допускает ошибку в двух похожих командах, даже из прочтения мануалов по которым не всегда можно уловить разницу между ними, то это уже «статья»?
              • 0
                Между двумя командами есть принципиальная разница. Их невозможно спутать, потому что они делают совершенно разные вещи. И ошибок у Вас не две, а гораздо больше.

                А судя по Вашему комментарию четыре абзаца ниже, это не просто «статья», а писанина воинствующе необразованного человека, который своим незнанием гордится. Уж извините, но Вы сами напросились.
          • +1
            элементарно проверишь, если их два десятка
    • +1
      ещё к этому можно добавить, что уже пора бы использовать нативное линуксвое апи «netlink» для работы с сетью в виде пакета iproute2, а не эти ваши ifconfigги.
      • 0
        Вау. А не будет ли оверкиллом использовать это там, где по сути достаточно двух команд?
        • 0
          В смысле, оверкиллом? Вы в курсе, что именно делает утилита ip?

          ip link eth0 set up, ip addr add 192.168.0.5/24 dev eth0, ip route add default via 192.168.0.1 — какой оверкилл? Кроме того, здесь вполе конкретно разделено поднятие второго уровня (ip link set eth0 up) и третьего (ip addr add, ip route add). Это прямолинейный путь решения, если потом использовать интерфейс в мосте или резать его на vlanы. Для меня всегда наоборот было загадкой, почему ifconfig не различает эти понятия.
          • 0
            Спасибо Вам огромное за подсказку. Если буду продолжать копать и дальше в этом направлении, в будущем мне это точно понадобится.
      • 0
        Ну, для некоторых вещей ifconfig удобнее всё-таки… В общем, это уже не так страшно.
        • +1
          Например, для каких?

          Не, я серьёзно, ifconfig морально устарел и от его использования уже лет десять как пора отказываться. Мало того, что он и половины возможностей линукса не даст использовать, так и пользовательский интерфейс у него ужасен. Вам нравится вбивать маски вида 255.255.255.248? Я предпочитаю писать /29.
          • 0
            Например, у него несколько удобнее сгруппированы параметры в выводе — читабельность повыше, чем у iproute, да и всё в одном месте. А удобнее в нём менять MTU на интерфейс, например, да и прочие параметры по одиночке — командная строка получается короче и немного очевиднее.
            • 0
              Ну вопрос удобства очень хочется оспорить… я вывод ip читаю гораздо легче и быстрее, чем ifconfig, route и т. д. — он более человеко-читабелен. А у ifconfig действительно всё в одном месте, в нашей стране вообще всё через это место. Но тут ладно, дело вкуса

              Но почему ip addr мне покажет все IP4-адреса, навешанные на интерфейс, ifconfig — только один из них? А, предлагаете создавать алиасы для других адресов? Если их и так интерфейсов десяток, тут алиасы осложнят и запутают дело.
              • 0
                Так происходит только с IPv4, и то только потому, что ifconfig не обновили, когда эта фишка появилась. Но сейчас, насколько мне известно, net-tools взялись пилить, так что всё, думается, что надо, запилят.
                • 0
                  Фишка появилась в 1999 году. 14 лет пилят!

                  Главный вопрос — зачем? Это далеко не единственный косяк в функционале. Я имею ввиду полное отсутствие поддержки RPDB, а также 802.1Q VLAN, MAC VLAN, работы с netns, xfrm и так далее.
          • 0
            Кстати, ifconfig поддерживает запись в стиле /29.
  • +1
    А ещё чушь написана про resolv.conf и dhclient. Если так нужно выключить обновление resolv.conf, так это делается в настройках dhclient. Или ставится пакет resolvconf, а потом нужные адреса добавляются туда с высшим приоритетом.

    И да, сносить дефолтный конфиг dnsmasq — не самая хорошая идея. Если бы Вы его не снесли, Вы бы узнали, что dnsmasq-у можно указать, какие DNS-серверы использовать. Более того, там можно их тонко настроить.

    А вообще, стиль написания напоминает приём у «квалифицированного врача»: болит голова — долой её с плеч. Ноги чешутся? Ампутировать!
    • –4
      Заблокировать файл — один из путей достигнуть цели, и никто не запрещает его использовать. Да, никто также не запрещает указать это в настройках dhclient — но разницы-то по настоящему нет. Или, по-вашему, есть?
      Да, спасибо, эту опцию в дефолтном конфиге я уже видел. Если её не указывать, довольно умный в плане опций dnsmasq, насколько я помню, берёт сервера из resolv.conf. А resolv.conf — файл, который предназначен для того, чтобы хранить названия DNS-серверов, используемых системой… Что он, внезапно, и делает, храня там 8.8.8.8, которые мы бы могли указать в конфиге dnsmasq… Но зачем, если есть resolv.conf? В который можно закинуть эти сервера и просто-напросто удостовериться, что не нужно будет обрубать лапы каждой программе, которая захочет изменить resolv.conf. Там просто нет смысла его менять, честно-честно.
      Да, а ещё в resolv.conf можно указать localhost, где у нас dnsmasq, а ему же приказать брать серверы из ещё одного файла. Так тоже можно, да. Путей в Linux очень и очень много, честно говоря, сама идеология Linux об этом прямым текстом говорит.
      Ну так вот, пожалуйста, приведите примеры, почему же блокировать файл волей администратора, который знает, что содержимое этого файла менять просто ну не надо — бред. И почему DNS-сервера, захардкоженные в /etc/dnsmasq.conf, лучше, чем те же сервера в /etc/resolv.conf, хотя, по идее — им нужно быть в последнем.
      • –1
        Ну, примеры будут? Мне же самому выгодно пополнить свои знания, причём, по-видимому, заведомо неверные, поэтому и спрашиваю.
      • 0
        Ампутация головы излечит головную боль, причём навсегда. Будем так всех лечить, да?

        Вы настолько неправы, что я даже не уверен, что мне хватит терпения Вам это разъяснить.
        • –2
          Извините, но уверенность в стиле «Вы настолько неправы, я даже объяснить не смогу» как-то не является аргументом. Серьёзно — Вы производите впечатление человека, который заучил один путь и следует ему, всячески порицая другой, при этом не приводя ни одного аргумента кроме дважды повторённого сравнения, которое, на мой взгляд, притянуто за уши. Раз уж нельзя что-то делать, объясните, прошу.
          — Почему блокировать файл от записи плохо?
          — Почему системный администратор не может заблокировать от записи файл, который не должен быть перезаписан? dhclient поперхнётся? Уверяю Вас, работает нормально в разных сетях, просто везде используется один и тот же DNS — Гугловский.
          — В чём минусы такого подхода?

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

          There is no «one true way» to do anything. Вы уж простите, но это действительно так.
          • 0
            Это не аргумент. Мне просто жалко собственного времени. Если Вы думаете, что мне больше нечего делать, кроме как с жуткой головной болью расписывать Вам элементарные вещи, то Вы сильно заблуждаетесь.

            Знаете, да, есть много разных способов добиться результата. Тем не менее, далеко не все из них хоть сколько-нибудь приемлемы. Более того, раз уж Вы так уверены в своей правоте, Вам не должно составить ни малейшего труда пояснить, почему Вы считаете именно Ваш способ допустимым или правильным.
            • –1
              Если вы не имеете желания доказывать — почему утверждаете в стиле «Статья того не стоит, вот это ошибочно, но я не докажу, почему»?
              Так. Краткое описание моего способа:

              dnsmasq берёт DNS-сервера из resolv.conf
              Сервера прописаны статичные, т.е. всегда используются одни и те же, признанные надёжными. Никто не запрещает, плюс — во всех сетях гарантирована работа DNS, а то он имеет свойство падать на дешёвых роутерах, к которым я иногда подключаюсь ;-)
              Проблема — при получении информации от DHCP-сервера dhclient также перезаписывает resolv.conf. Нам это не надо — у нас DNS прописан навечно один и тот же.

              Есть 3 варианта избежать перезаписи файла, не отключая dhclient:
              1) Отредактировать конфиг dhclient. В нём для отключения перезаписи файла нужно прописать те же статические адреса, что и в resolv.conf. Плюсы — проблема решена. Минусы — если потребуется изменить статический DNS на OpenDNS, к примеру, придётся вспоминать, что я раньше конфигурировал и как именно. resolv.conf немножечко так теряет своё значение — место хранения адресов DNS-серверов. Всё потому, что адреса DNS по факту хранятся в каком-то другом файле, а это уже затрудняет дальнейшую конфигурацию.
              2) Отключить у dhclient функцию перезаписи resolv.conf. Да, такая функция имеется. Плюсы — такие же, как у третьего способа, который я и использовал (блокировка файла). Минусов на два больше. Первый — это то, что файл всё равно может быть перезаписан кем-то ещё, хоть это и нежелательно.
              Почему не описал в статье? Вот и второй минус этого способа. Есть одно правило, которое необходимо соблюдать, когда пишешь статью. Она должна быть удобочитаемой, у статьи есть конечная цель. Эта цель — фраза «Всё настроено». Отходить от пути к этой цели нужно очень осторожно и маленькими шагами — иначе рискуешь четверть статьи посвятить тонкой настройке dhclient. Это, может, и хорошо, но в статье нарушается баланс подробность-удобочитаемость. И редактирование файлов с функциями dhclient — это та вещь, которую я, как автор статьи, посчитал неважной для читателя. Ведь читателю от этой статьи нужна инструкция по настройке точки доступа, а не dhclient, иначе у статьи был бы другой заголовок, не думаете?
              3) Блокировка файла. Плюсы — 1) цель достигнута 2) список серверов вообще никто не перезапишет 3) тем более dhclient 4) всего одна консольная команда. Минусы — dhclient поругается в консоль, если его вызвать ручками. Свои основные функции он по-прежнему выполняет, не выполняет только не нужную нам.
              Всё, пожалуй. Если не будет достойного комментария — я лучше перестану отвечать, у меня на очереди ещё не одна статья. Почему сейчас отвечаю? Всё просто. Именно по комментариям читатели определяют, какие рекомендации верны, а какие — нет. Это моя статья, и я написал её не просто так, а чтобы создать полноценный материал, способный помочь в настройке. И именно я, как автор, ответственный за написанное, буду доказывать, что статья моя — не результат переработки пищи экземпляром Canis Lupus, а то, что действительно может помочь в настройке. И именно я поблагодарил Вас за поправку к статье (ifup/ifconfig) — опять же, мне самому выгодно, чтобы статья была хорошей. И именно я буду объяснять что «так на самом деле можно» — это моя статья, и моё мнение, а я стараюсь всегда обосновывать своё мнение — а необоснованная критика ничего хорошего статье априори не несёт.
              • 0
                Всё проблемы у Вас от неправильной постановки задачи. Вам не нужно избегать перезаписи resolv.conf как такового. Вам нужно, чтобы использовался DNS-сервер от гугла (сомнительная сама по себе цель, ну да ладно). От неправильной постановки задачи идёт неправильное её решение.
                • –2
                  1) Задача поставлена правильно. Нужно, чтобы DNS сервера хранились в resolv.conf (их каноничное место) и чтобы использовался статический DNS-сервер (не имеет значения, какой). Цель достигнута.
                  2) Аргументов до сих пор нет — всего хорошего. У меня тоже, знаете ли, есть цели и свободное время. Сейчас моя позиция уже разъяснена и больше объяснять я не вижу смысла.
                  Удачного Вам дня! Надеюсь, что нам обоим этот спор как-либо пойдёт на пользу.
                  • 0
                    Как я уже и сказал, Вы — воинствующий невежда, отстаивающий свою неправоту с пеной у рта. Но не волнуйтесь, это проходит. Со временем. Обычно.
                  • 0
                    Вообще-то все вменяемые дистрибутивы позволяют задать какой-нибудь resolv.conf.head, который всегда будет в начале resolfv.conf, чем бы он не генерировался. А ещё есть такая штука как resolvconf.d и сервис, который управляет его содержимым и взаимодействием с файлом resolv.conf. Ну, как раз сделано специально для тех, кому не нравится перезапись resolv.conf.

                    Но вы действительно вместо того, как разобраться с этим, принялись блокировать перезапись файла и доказываете, что это правильно.

                    Такие блокировки потом приводят к проблемам. А некоторые дистрибутивы, опять же, умеют их автоматически снимать, так что ваш метод вообще не работоспособен.
                    • 0
                      Ну наконец-то. Спасибо за подсказку! Сейчас разберусь с этим и изменю статью.
  • 0
    habrahabr.ru/post/89420/ я уже писал такую статью. Правда она немного устарела.
  • +6
    Для лучшей производительности рекомендуются 1, 6 или 11 канал

    Для лучшей производительности рекомендуется тот канал, где меньше всего соседей ;-)
    • +1
      Это-то конечно =) Но логика тут простая — все и так либо на крайних каналах. либо на центральном — распределение такое, чтобы уменьшить негативное взаимодействие сигнала AP на разных каналах. И если поставить точку где-то между 1 и 6, то на сигнал нашей точки будут влиять как станции из канала 1, так и станции из канала 6, так же и с 6 и 11. Поправьте меня, если что.
  • 0
    Мне кажется, что если делать уж доступ через линукс — то уже сразу с пользователями и паролями (решений несколько). Остальное лучше через дешевые AP (там как правило и сигнал качественнее, и энергопотребление ниже, да и еще несколько бенефитов от апаратной реализации некоторых вещей).
    Может напишите подобное (сам когда то пару раз делал — приходилось пол часика погуглить).?
    • 0
      К слову, я сам сейчас думаю о том, чтобы освоить Sputnik или что-то подобное. А если буду осваивать — обязательно напишу статью. К тому же — есть идея, где это можно применить с пользой в ближайшее время. А ноут — лишь одна из альтернатив, те же дешёвые AP элементарно не выдержат многих вещей и тоже не имеют многих аппаратных плюшек нетбука. К тому же я буквально сейчас работаю над тем, чтобы встроить гнездо RP-SMA для антенны в корпус ноута, сегодня буду паять переходник IPX-RP SMA и сверлить корпус ноута, ну и карточку беспроводную думаю другую поставить =)
  • 0
    Спасибо за статью.
    Кстати, можно делать не так:
     $ echo "">/etc/dnsmasq.conf 
    а так
     $ > /etc/dnsmasq.conf 

    Результат один, но второй вариант короче :)
    • 0
      Спасибо, буду знать =)
  • 0
    А как можно сделать скрытую точку?
    • 0
      В файл /etc/hostapd.conf нужно добавить следующую строчку:
      ignore_broadcast_ssid=1
      • 0
        У меня тогда никто не подключается к ней. Вроде как все сканируют сеть, но никто по имени не пробует. Надо будет логи по-точнее посмотреть, но это только вечером.
      • 0
        В общем, не знаю что было, но сейчас почему-то работает.
  • 0
    А все-таки, огласите список железа, на котором это хозяйство поднято, особенно WiFi-карточку.
    • 0
      Железо есть в начальной статье по ссылке в начале текста. Наклейка на корпусе нетбука уточняет название беспроводной карточки: Atheros AR5BXB63.
      Простите за столь поздний ответ.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.