Удобное переключение wifi в режим точки доступа в GNU/Linux


Раздать wi-fi с 3g модема (и с проводного интернета), когда ничего другого нет под рукой — дело благородное, потому мы пройдем по быстрому пути получения профита. Инструкция предназначена для debian-based дистрибутивов.

Нам понадобится hostapd — собственно для раздачи wi-fi, dnsmasq — для раздачи ip-адресов и notify-send (не обязательно) — для оповещений. iptables на данный момент доступен из коробки. Ставим hostapd и останавливаем его:

В файле /etc/default/hostapd раскомментируем и исправляем строку:

Создаем и редактируем файл /etc/hostapd/hostapd.conf

Тут все просто — имя точки доступа, пароль, канал, на котором будет работать и драйвер.
Ставим dnsmasq и останавливаем его:

dnsmasq хорош тем, что в нем все есть и он прост для настройки. Открываем файл конфигурации /etc/dnsmasq.conf:

Тут все крайне просто, но если нужно, можно добавить альтернативный dns сервер, а также можно хосты принудительно направлять на 127.0.0.1, тем самым блокируя их. Подробности в справке man dnsmasq. Еще один момент, обязательно адреса dhcp-range должны быть в одной сети с wlan0. если Вы по каким-либо соображениям в скрипте запуска не будете принудительно менять ip адрес для wlan0, то укажите тут пул такой же, как в wlan0. Например дома есть роутер с адресом 192.168.1.1 и сеть 192.168.1.0/24, то dhcp-range нужно указать в пределах этого пространства, а также, чтобы он не пересекался с пулом адресов, выдаваемых dhcp-сервером роутера. Мы пойдем путем по-проще и сами укажем другую подсеть.

Теперь отключим автозагрузку демонов:

Ко всему этому осталось только включать/отключать роутинг и добавлять/удалять правило из iptables

Это будем производить автоматически, с помощью скрипта. Все готово, а вот и сам скрипт wifi-ap:

Он принимает 2 параметра, on и off. Вы легко можете подкорректировать его под себя и, если нужно, заменить интерфейс ppp0 на eth0 (или другой, на Ваше усмотрение).

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *