You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Портал перехвата, на котором производится авторизация сессий пользователей беспроводной сети, можно реализовать и на Linux-маршрутизаторе. Для этого необходимо, чтобы:

  • этот сервер был маршрутизатором для пользователей беспроводной сети (шлюзом по умолчанию)
  • на этом же сервере работало ПО WNAM
  • этот же сервер выполнял роль DHCP-сервера для пользователей

Работа портала перехвата обеспечивается следующими дополнительными компонентами: isc-dhcp-server, iptables, ipset, nginx. Об их настройке ниже.

Применение RADIUS-сервера не требуется.

Установка и настройка isc-dhcp-server

Производится штатным образом из пакета. Дополнительных настроек не требуется. Не забудьте указать имя интерфейса, на котором принимать запросы, в файле /etc/default/isc-dhcp-server

После этого, необходимо взять скрипт http://www.netams.com/files/wnam/misc/wnam-leases.pl и положить его в /usr/local/bin

Добавить права на исполнение: chmod +x /usr/local/bin/wnam-leases.pl

Установить модуль Text::DHCPLeasescpan -i Text::DHCPLeases

Проверить работоспособность скрипта: /usr/local/bin/wnam-leases.pl (должен вернуть пустой ответ)

Настройка межсетевого экрана

Необходимо установить пакеты ipset, netfilter-persistent

Отредактировать файл правил /usr/share/netfilter-persistent/plugins.d/15-ip4tables таким образом, чтобы он содержал инициализацию ipset: 

 ipset -X
ipset --restore </etc/iptables/ipset.rules
iptables-restore < /etc/iptables/rules.v4 2> /dev/null

Необходимо создать файл /etc/iptables/ipset.rules следующего содержания:

create ACCESS hash:ip family inet hashsize 1024 maxelem 65536 counters timeout 1800

Необходимо создать файл /etc/iptables/rules.v4 следующего содержания (eth0-внешний интерфейс, eth1 - внутренний интерфейс):

*nat
:PREROUTING ACCEPT [7882:475437]
:INPUT ACCEPT [7333:440931]
:OUTPUT ACCEPT [1214:82126]
:POSTROUTING ACCEPT [275:16624]
-A POSTROUTING -o eth0 -j MASQUERADE
-A PREROUTING -p tcp -m tcp -d внешний_IP_адрес_сервера --dport 80 -j RETURN
-A PREROUTING -p tcp -m tcp -d внутренний_IP_адрес_сервера --dport 80 -j RETURN
-A PREROUTING -p tcp -m tcp --dport 80 -m set --match-set ACCESS src -j RETURN
-A PREROUTING -p tcp -m tcp -i eth1 --dport 80 -j REDIRECT --to-port 81
COMMIT
*filter
:INPUT ACCEPT [712781:180062776]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [812150:164158586]
:ACCESS - [0:0]
:FORWARD_EXT - [0:0]
:INPUT_EXT - [0:0]
-A INPUT -i eth0 -g INPUT_EXT
-A FORWARD -i eth0 -g FORWARD_EXT
-A FORWARD -i eth1 -g ACCESS
-A ACCESS -m set --match-set ACCESS src -j ACCEPT
-A ACCESS -p udp --dport 53 -j ACCEPT
-A ACCESS -j DROP
-A FORWARD_EXT -m state --state INVALID -j DROP
-A FORWARD_EXT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD_EXT -j DROP
-A INPUT_EXT -m state --state INVALID -j DROP
-A INPUT_EXT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT_EXT -p tcp -m state --state NEW -m multiport --dports 22,80 -j ACCEPT
-A INPUT_EXT -j DROP
COMMIT

Необходимо протестировать работу правил через iptables-apply /etc/iptables/rules.v4 

Внимание! Ошибки в настройках межсетевого экрана могут привести к потере управления сервером!

В конце необходимо дать возможность любому пользователю (в частности, пользователю tomcat7) запускать утилиту ipset: chmod a+s /sbin/ipset

Настройка прокси-сервера

Для того, чтобы трафик не авторизованных пользователей попадал на портал перехвата, необходимо установить обратный прокси-сервер nginx и настроить его в минимальной конфигурации. Для этого в файле /etc/nginx/sites-enabled/wnam укажите:

server {
listen 81;
server_name wnam;
expires -10s;
rewrite ^(.*)$ http://внутренний_IP_адрес_сервера/cp/linux redirect;
access_log /var/log/nginx/access-redir.log;
}

И удалите все остальные файлы и ссылки из /etc/nginx/sites-enabled/

Настройка WNAM

Необходимо создать сервер доступа типа Linux с адресом 127.0.0.1, и соответствующую площадку:

Время жизни авторизованной сессии, время между обновлением счётчиков байт по сессиям и другие параметры настраиваются в файле /etc/wnam.properties

 

  • No labels