Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
00100 0 0 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
32000 0 0 allow ip from me to any
32001 0 0 count ip from any to 192.168.0.167
32002 0 0 count ip from any to 192.168.0.174
65000 0 0 allow ip from any to any
65535 0 0 deny ip from any to any
Конечно, можно вместо «count» написать «allow», и добавить примерно такое правило:
60000 0 0 deny ip from any to 192.168.0.0/24
В таком случае воспользоваться доступом к внешней сети смогут только авторизованные пользователи. Но будьте готовы к тому, что при любом сбое (ошибки в скрипте, неверный алгоритм...) могут начаться проблемы.
Команда «ipfw show» – неплохое средство диагностики. Во второй колонке содержится количество попавших под правило пакетов, а в третьей – количество байт (сразу после запуска обе могут быть пусты). В скрипте count_ipfw также используется эта команда, для того чтобы выяснить, существует ли соответствующее правило.
Взаимодействие скриптов может быть представлено на такой схеме:
| samba, pppd, ... | user | --> +/- user address --> | gate | ipfw + ipa | |
Список слева можно расширить. Первое, что потребуется добавить, – скрипт, выдающий статический список имен пользователей и адресов, не входящих ни в домен Samba, ни в список пользователей удаленного доступа. Связка «ipfw + ipa» может быть заменена на любую другую, выполняющую аналогичные функции.
Таким образом, вся система учета основана на двух «каркасных» скриптах, в значительной мере абстрагированных от конкретных приложений. Общаться по выбранному протоколу эти скрипты могут как непосредственно, так и через tcp-клиент. В первом случае запускаемый count_gate запускает, в свою очередь, count_user, во втором он запускает count_client, который соединяется с сервером count_user.
Сервер не сложно организовать на основе inetd, потребуется добавить в /etc/services:
count 27777/tcp