...
*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;
if ($http_user_agent ~* (CaptiveNetworkSupport)) { return 200; }
}
И удалите все остальные файлы и ссылки из /etc/nginx/sites-enabled/
Настройка WNAM
Необходимо создать сервер доступа типа Linux с адресом 127.0.0.1 (включив сбор NetFlow), и соответствующую площадку:
Настройка конфигурационного файла
Время жизни авторизованной сессии , время между обновлением счётчиков байт по сессиям и другие параметры и путь до скрипта работы с DHCH настраиваются в файле /etc/wnam.properties. Там же надо указать, что сбор статистики ведётся по NetFlow:
linuxcp_leasescheck_script=/usr/local/bin/wnam-leases.pl
linuxcp_session_timeout=300
is_netflow_acct=true
После изменений потребуется перезапуск WNAM (процесса tomcat7).
Настройка модуля NetFlow
Для получения корректных счётчиков байт вам необходимо установить модуль ядра ipt_netflow.
Дистрибутив с инструкцией по установке можно получить здесь: http://sourceforge.net/projects/ipt-netflow/
После установки пропишите авто-запуск модуля в файле /etc/modprobe.d/ipt_NETFLOW.conf :
options ipt_NETFLOW destination=127.0.0.1:20002 maxflows=0
Добавьте в конфигурацию межсетевого экрана в начало цепочки FORWARD запись:
-A FORWARD -j NETFLOW
Перезапустите межсетевой экран и запустите модуль. Он будет собирать статистику по всем потокам трафика, проходящим через ваш сервер, и отправлять её в WNAM.