Привет всем! Понадобилось тут на днях настроить сеть вот таким образом
Почему именно такая конфигурация спросите вы? Почему нельзя сразу подключиться к Wi-Fi AP (Wi-Fi Access Point) без использования "proxy laptop"? Отвечаю:
# add-apt-repository ppa:aspeed/ppa
# apt-get update
# apt-get install hostapd
Теперь настраиваем точку доступа. Это минимальный конфиг с которым можно поднять AP:
# nano /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=proxyap
hw_mode=g
channel=11
# Включить только WPA2 (1 - WPA, 2 - WPA2, 3 - WPA + WPA2)
wpa=2
wpa_passphrase=myappass
Теперь пробуем запустить:
# hostapd -d /etc/hostapd/hostapd.conf
Если в выводе есть строка:
wlan0: Setup of interface done.
Значит AP поднялась. Пробуем сканировать эфир с другой машины и видим нашу точку доступа "proxyap". Быстро просканировать можно командой:
# iwlist wlan0 scan | grep 'proxyap'
Теперь необходимо запустить DHCP-сервер для автоматического назначения IP-адресов клиентам нашей AP. Ставим его:
# apt-get install dhcp3-server
Теперь отредактируем и раскомментим секцию "subnet" в dhcpd.conf:
# nano /etc/dhcp3/dhcpd.conf
subnet 10.10.0.0 netmask 255.255.255.0 {
option routers 10.10.0.1;
option domain-name-servers 8.8.8.8;
range 10.10.0.25 10.10.0.50;
interface wlan0;
}
Мы создаем подсеть 10.10.0.x и разрешаем раздать клиентам до 25 IP-шников.
Теперь редактируем /etc/default/dhcp3-server:
# nano /etc/default/dhcp3-server
INTERFACES="wlan0"
Теперь сконфигурируем нашу сеть:
# ifconfig wlan0 down
# ifconfig wlan0 10.10.0.1 netmask 255.255.255.0 up
# ifconfig wlan0 up
Можно запускать DHCP и hostap:
# service dhcp3-server start
# service hostapd start
Проверим все ли запустилось:
# ps aux | egrep '(hostap|dhcpd)' | grep -v grep
Пробуем подключиться к точке доступа, вводим пасс, ждем пока назначится IP. После подключения убедимся что IP назначился и мы видим прокси-ноут. Эти действия делаем на "laptop1":
# ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 70:f3:95:e4:53:87
inet addr:10.10.0.25 Bcast:10.10.0.255 Mask:255.255.255.0
inet6 addr: fe80::72f3:95ff:fee4:5387/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:137215 errors:0 dropped:0 overruns:0 frame:0
TX packets:139973 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:129062378 (129.0 MB) TX bytes:41828862 (41.8 MB)
# ping 10.10.0.1
PING 10.10.0.1 (10.10.0.1) 56(84) bytes of data.
64 bytes from 10.10.0.1: icmp_req=1 ttl=64 time=1.09 ms
64 bytes from 10.10.0.1: icmp_req=2 ttl=64 time=1.05 ms
64 bytes from 10.10.0.1: icmp_req=3 ttl=64 time=1.04 ms
64 bytes from 10.10.0.1: icmp_req=4 ttl=64 time=1.08 ms
Теперь завершающий шаг. Установка и настройка прокси-сервера:
# apt-get install squid
# nano /etc/squid/squid.conf
Раскомментируем эти строки:
http_port 3128 transparent # в конце обязательно добавляем 'transparent'
cache_dir ufs /var/spool/squid 100 16 256
acl localnet 10.10.0.0/24
http_access localnet
dns_nameservers 8.8.8.8 8.8.4.4
Остальное оставляем как есть. На данном этапе необходимо настроить сетевые правила и направить трафик приходящий в wlan0 на wlan1. Для этого добавим правила:
# iptables -t nat -A PREROUTING -i wlan0 -d ! 10.10.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 10.10.0.1:3128
# iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o wlan1 -j MASQUERADE
И не забываем включить IP Forwarding для включения проброса трафика на другую сетевуху:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Вот и все. Для удобства пользования прокси-ноутом я убрал из автозагрузки все установленные нами демоны:
# update-rc.d dhcp3-server disable
# update-rc.d hostapd disable
И создал скрипт для поднятия dhcp+hostap+squid и настройки iptables:
#!/bin/sh
service squid stop
service hostapd stop
service dhcp3-server stop
ifconfig wlan0 down
ifconfig wlan0 10.10.0.1 netmask 255.255.255.0 up
ifconfig wlan0 up
echo 1 > /proc/sys/net/ipv4/ip_forward
service dhcp3-server start
service hostapd start
service squid start
iptables -t nat -F
iptables -t nat -A PREROUTING -i wlan0 -d ! 10.10.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 10.10.0.1:3128
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o wlan1 -j MASQUERADE
The end.
Почему именно такая конфигурация спросите вы? Почему нельзя сразу подключиться к Wi-Fi AP (Wi-Fi Access Point) без использования "proxy laptop"? Отвечаю:
- Появился свободный ноут, плюс я стал обладателем мощного Wi-Fi адаптера TP-LINK TL-WN7200ND, захотелось напрячь их обоих :)
- Получить возможность гибкого управления трафиком.
- Увеличить область действия Wi-Fi сигнала и получить возможность подключаться к тем точкам доступа, которые недосягаемы для машины "laptop1".
- Ну и конечно же, просто спортивный интерес. Знание - сила! ;)
- ОСь. Я выбрал Ubuntu 10.04 LTS;
- hostapd. Демон создающий программную точку доступа с поддержкой WPA/WPA2;
- DHCP-сервер;
- squid. Собственно сам прокси.
# add-apt-repository ppa:aspeed/ppa
# apt-get update
# apt-get install hostapd
Теперь настраиваем точку доступа. Это минимальный конфиг с которым можно поднять AP:
# nano /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=proxyap
hw_mode=g
channel=11
# Включить только WPA2 (1 - WPA, 2 - WPA2, 3 - WPA + WPA2)
wpa=2
wpa_passphrase=myappass
Теперь пробуем запустить:
# hostapd -d /etc/hostapd/hostapd.conf
Если в выводе есть строка:
wlan0: Setup of interface done.
Значит AP поднялась. Пробуем сканировать эфир с другой машины и видим нашу точку доступа "proxyap". Быстро просканировать можно командой:
# iwlist wlan0 scan | grep 'proxyap'
Теперь необходимо запустить DHCP-сервер для автоматического назначения IP-адресов клиентам нашей AP. Ставим его:
# apt-get install dhcp3-server
Теперь отредактируем и раскомментим секцию "subnet" в dhcpd.conf:
# nano /etc/dhcp3/dhcpd.conf
subnet 10.10.0.0 netmask 255.255.255.0 {
option routers 10.10.0.1;
option domain-name-servers 8.8.8.8;
range 10.10.0.25 10.10.0.50;
interface wlan0;
}
Мы создаем подсеть 10.10.0.x и разрешаем раздать клиентам до 25 IP-шников.
Теперь редактируем /etc/default/dhcp3-server:
# nano /etc/default/dhcp3-server
INTERFACES="wlan0"
Теперь сконфигурируем нашу сеть:
# ifconfig wlan0 down
# ifconfig wlan0 10.10.0.1 netmask 255.255.255.0 up
# ifconfig wlan0 up
Можно запускать DHCP и hostap:
# service dhcp3-server start
# service hostapd start
Проверим все ли запустилось:
# ps aux | egrep '(hostap|dhcpd)' | grep -v grep
Пробуем подключиться к точке доступа, вводим пасс, ждем пока назначится IP. После подключения убедимся что IP назначился и мы видим прокси-ноут. Эти действия делаем на "laptop1":
# ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 70:f3:95:e4:53:87
inet addr:10.10.0.25 Bcast:10.10.0.255 Mask:255.255.255.0
inet6 addr: fe80::72f3:95ff:fee4:5387/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:137215 errors:0 dropped:0 overruns:0 frame:0
TX packets:139973 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:129062378 (129.0 MB) TX bytes:41828862 (41.8 MB)
# ping 10.10.0.1
PING 10.10.0.1 (10.10.0.1) 56(84) bytes of data.
64 bytes from 10.10.0.1: icmp_req=1 ttl=64 time=1.09 ms
64 bytes from 10.10.0.1: icmp_req=2 ttl=64 time=1.05 ms
64 bytes from 10.10.0.1: icmp_req=3 ttl=64 time=1.04 ms
64 bytes from 10.10.0.1: icmp_req=4 ttl=64 time=1.08 ms
Теперь завершающий шаг. Установка и настройка прокси-сервера:
# apt-get install squid
# nano /etc/squid/squid.conf
Раскомментируем эти строки:
http_port 3128 transparent # в конце обязательно добавляем 'transparent'
cache_dir ufs /var/spool/squid 100 16 256
acl localnet 10.10.0.0/24
http_access localnet
dns_nameservers 8.8.8.8 8.8.4.4
Остальное оставляем как есть. На данном этапе необходимо настроить сетевые правила и направить трафик приходящий в wlan0 на wlan1. Для этого добавим правила:
# iptables -t nat -A PREROUTING -i wlan0 -d ! 10.10.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 10.10.0.1:3128
# iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o wlan1 -j MASQUERADE
И не забываем включить IP Forwarding для включения проброса трафика на другую сетевуху:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Вот и все. Для удобства пользования прокси-ноутом я убрал из автозагрузки все установленные нами демоны:
# update-rc.d dhcp3-server disable
# update-rc.d hostapd disable
И создал скрипт для поднятия dhcp+hostap+squid и настройки iptables:
#!/bin/sh
service squid stop
service hostapd stop
service dhcp3-server stop
ifconfig wlan0 down
ifconfig wlan0 10.10.0.1 netmask 255.255.255.0 up
ifconfig wlan0 up
echo 1 > /proc/sys/net/ipv4/ip_forward
service dhcp3-server start
service hostapd start
service squid start
iptables -t nat -F
iptables -t nat -A PREROUTING -i wlan0 -d ! 10.10.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 10.10.0.1:3128
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o wlan1 -j MASQUERADE
The end.
Комментариев нет:
Отправить комментарий