Хотів би більше розказати про сам проект :
В основі сервера лежить скріпт написаний на php
він виконує 3 основні задачі :
- піднімає мережні інтерфейси (є плагіни для різних типів підєднання до інтернету (modem (+callback), ethernet, в перспективі vpn, pppoe)
> завантажує правила iptables на основі конф. файла
(приклад приводжу нижче)
~~~~~~~~~ firewall_rules.php ~~~~~~~~~~~~~~~~~~
// DNS
iptables_allow_connection_to_internet_service($TCP | $UDP, "193.232.65.1, 193.232.65.2", "53", $FROM_SERVER);
iptables_allow_connection_to_server_service($TCP, $ANY, "53", $FROM_LAN);
// HTTP Proxy
iptables_allow_connection_to_internet_service($TCP, $ANY, "80,8080", $FROM_SERVER);
iptables_allow_connection_to_server_service($TCP, $ANY, "8080", $FROM_LAN);
// Mail POP3
iptables_allow_connection_to_internet_service($TCP, $ANY, "110,25", $FROM_SERVER | $FROM_LAN);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
простота і порядок, помилитися практично не можливо
сам скріпт будує відповідні ланцюжки для інтерфейсів,
ділить трафік по протоколах, пропускає безпечні icmp
(посвний сорс в архіві (файл listings-samples/iptables/iptables_load_filter.php)
> Далі скріпт моніторить статистику на консоль
> Після відєднання робиться запис в mysql базу (час підключення, трафік, !! причина відєднання (busy, auth faild, etc)
Планується підтримка обчислення тарифікації вартості інтренету, графічний редактор правил брандмауера
Є функії автопінгування певного ip та перез'єднання якщо пінгу нема протягом певного часу
######################################
Це на сервері
А клієн дивиться статистику через web інтерфес (https)
Є можливість глянути скільки часу ми в неті, трафік, журнал підключень, а також дистанційно підключитися/відключитися від інтернету, вимкнути сервер)