вторник, 4 ноября 2008 г.

Ubuntu - Настройка wifi карты компьютера как точки доступа

Ubuntu - Настройка wifi карты компьютера как точки доступа - Ubuntu - все о линукс, убунту, мандрива, дебиан (Linux, Ubuntu, Mandriva, Debian)

Tags: ,

Задался я целью связать свой компьютер и ноутбук при помощи WiFi. В windows всё довольно просто настроить, достаточно воспользоваться менеджером. В ubuntu же ситуация несколько сложнее. Поэтому я решил написать это маленькое руководство.

Строить сеть я решил при помощи dhcp(для раздачи адресов),firehol(для Nat).
Для начала про обозначения. У компьютера ip 10.10.76.25, dns с сетке 192.168.1.251 и 192.168.4.241, шлюз 10.10.76.1. Сетевая карта которая смотрит в интернет имеет обозначение eth1.

Сеть для wifi будем делать типа 192.168.0.1/255.255.255.0. У меня wifi адаптер висит на ath0.

Начнём.

Настройка wifi

Ubuntu у меня по умолчанию обнаружило и установило мою карту(DWL520+, драйвера madwifi). Поэтому не буду останавливаться на этом пункте. Если у вас возникнут какие-либо проблемы, то в интернете очень много howto по этой теме.

Для организации сети нам понадобятся пакеты:
dhcp3-server
firehol
madwifi-tools
wireless-tools

После этого уберём все настройки wifi адаптера (если они были):

wlanconfig ath0 destroy

wlanconfig ath0 create wlandev wifi0 wlanmode adhoc

И настроим карту для работы в качестве точки доступа. Для этого создадим виртуальное устройство wifi0, назначим essid(наименование сети), назначим ключ доступа для сети:

iwconfig ath0 essid mywirelessnet
iwconfig ath0 key 1234-5678-90
iwconfig ath0 channel 11

Мы ввели 40 битный ключ(10 знаков), чтобы использовать 104 битный ключ, следует ввести 26 символов.

Для автоматизации этого процесса я сделал файл wifi.start (Содержит все приведённые выше команды по настйроке сети). Назначил его выполняемым и поместил в автозагрузку при старте системы.

Поднимаем DHCP и Firehol

Открываем своим любимым редактором /etc/dhcp3/dhcpd.conf . В моём случае этот файл выглядит так:

ddns-update-style ad-hoc;
default-lease-time 3600;
max-lease-time 9000;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
interface eth0;
range 192.168.0.2 192.168.0.255;
option domain-name-servers 192.168.1.251,192.168.4.241;
option routers 192.168.0.1;
option broadcast-address 192.168.0.0;
}

Также мы должны отредактировать /etc/default/dhcp3-server's чтобы объяснить серверу по какому интерфейсу раздавать настроки

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1″.
INTERFACES="ath0″

Запускаем:

sudo /etc/init.d/dhcp3-server restart

Теперь можно подключиться к нашей сети и попинговать компьютер(ip 192.168.0.1). Должно работать. Если нет, то посмотрите конфигурационные файлы ещё раз.

Сейчас мы настроим firehol.

Для начале добавим

net.ipv4.ip_forward = 1

в /etc/sysctl.conf и выполним команду:

sudo sysctl -p

Редактируем /etc/firehol/firehol.conf:

# Принимаем клиентский трафик на все интерфейсы
interface any world
client all accept
server all accept

#Nat от ath0 до eth0
router wlan2lan inface ath0 outface eth0
masquerade
server all accept
client all accept

Запускаем firehol:

sudo /etc/init.d/firehol restart

Наслаждаемся. Должно работать.

5 комментариев to "Ubuntu - Настройка wifi карты компьютера как точки доступа"

  1. # Вадимon 04/11/2008 at 20:06

    Я на винде уже очень долго сижу, вот надумал перейти на linux .
    Посмотрел, почитал, этож пиз….. какой то. Редко какая машина будет сама настраиваться автоматом, а манипуляции описанные выше простому юзеру ну никак не решить. Вот возщникает вопрос, неужели так трудно сделать что то подобное, что было уже реализовано в винде ?

    Я далеко не ламер , но текст выше меня просто пугает и у меня просто уже не стоит на linux

  2. # Гарикon 05/11/2008 at 15:38

    Спасибо что развеяли мои сомнения относительно DWL-520 & Linux. Буду ставить.

    Однако firehol мне кажется лишним пакетом. Достаточно использования iptables.
    iptables -t nat -A postrouting -s 192.168.0.0/24 -j MASQUERADE

    Ещё неплохо было бы поставить dnsmasq.

    Статья очень понятно изложена.

  3. # andion 07/21/2008 at 10:19

    wlanconfig ath0 create wlandev wifi0 wlanmode adhoc

    И настроим карту для работы в качестве точки доступа. Для этого создадим виртуальное устройство wifi0, назначим essid(наименование сети), назначим ключ доступа для сети:

    wlanconfig ath0 create wlandev wifi0 wlanmode ap загонит интерфейс в режим точки доступа, а не как adhoc - без точки доступа

    и wifi0 и так виртуальное устройство на котором и создается интерфейс athx..

  4. # Nason 08/10/2008 at 03:31

    Очень хорошая стаття! Но у меня всьо равно есть проблема! Создаю всьо как здесь!
    Точка вроди как есть! Но сконектится к ней не удайотся!

    Я никогда не настраивал WiFi ! У меня ноут Asus x50N з драйвером розобралса з помощу ndiswrapper! и комп на котором и стоит точка! на обоех Ubuntu 8.04!

    Конекчусь в режиме роуминга! или просто прописую из терминала
    iwconfig wlan0 essid Bam key 1234-5678-90 channal 11
    неуверен што всьо ето надо! но пробивал по разному!

    і ещьо вопрос!
    Здесь ви ошиблись в файле /etc/dhcp3/dhcpd.conf! но што мает бить вместо eth0 (у меня тоже eth1 и ath1) ставлю eth1!
    "interface eth0;"

  5. # Дмитрий Бекетовon 08/13/2008 at 15:34

    В /etc/dhcp3/dhcpd.conf в секции interface задаётся устройство, для которого DHCP-сервер будет раздавать IP-адреса, так что каждый у себя сам определяет - для какой сети(сетей) будет работать сервер.

3 комментария:

Анонимный комментирует...

http://jeka-nn.ru/2010/05/delaem-tochku-dostupa-wi-fi-v-linux/ здесь описана настройка wi-fi точки, при помощи hostapd

JoniDES комментирует...

1 # Вадимon 04/11/2008 at 20:06
На самом деле все очень просто.
Конечно если систему видишь первый раз в глаза то тогда не понятно, что написано, но поработав с ней какое-то время начинаешь понимать...
Вот раньше тоже много чего не понимал, но сейчас отлично ориентируюсь и полностью доволен.

Windows - это всего лишь привычка.

Юрий комментирует...

Не понятно что такое ath0, может eth0 ?