Reviews / articles about OS/2 |
Operating systems: ArcaOS, eComStation, IBM OS/2 Warp |
|
|
DATE: 2003-04-23 10:21:16 AUTHOR: Vladimir Solovyov
Эксперимент проводился в маленькой конторе (5 человек, 4 компьютера), которая занимается продажей компьютеров. Была поставлена задача обеспечить всех доступом к http. Почта пока актуальна только одному человеку, поэтому устанавливать свой почтовый сервер не стали. Была взята первая попавшаяся под руку машина (ICel 1200, Gigabyte 6oxt, 128МБ ОЗУ) и на нее установлена OS/2 ACP2 (не забудьте заменить ibms506.add на danis506). Сетевая карта Compex RE100ATX/WOL. Для успешной установки понадобилось подправить re100.nif: [RE100TX] Type = NDIS Title = "RE100ATX PCI Fast Ethernet Adapter" Version = 3.01 DriverName = RE100$ XPORTS = NETBEUI LANDD [File] Name = RE100.OS2 Path = IBMCOM\MACS [MEDIUM] display = "Medium Type" type = string strlength = 10 set=AUTO,10HALF,10FULL,100HALF,100FULL optional = yes default=AUTO Help = "This keyword support Medium to force Speed/Duplex Mode of this adapter card. The strings of this parameter is 'AUTO', '10Half','10Full','100Half','100Full'" Кроме того, был куплен внешний ISDN модем Aethra NT-IP, подключаемый через COM-порт. Т.к. использовалась только одна линия (64кбит), то проблемы со скоростью порта не было. В качестве звонилки был взят injoy 3.0 beta (ключ дают там же). На сервере был настроен DHCP сервер, локальный DNS. Для раздачи http был поставлен Squid 2.5 от Евгения Коцюбы. Вот его примерные настройки -- squid.conf В качестве редиректора (обрезалка рекламы) сначала был выбран SQDR, но не понравился по причине странной падучести. Потому был заменен на Jesred, который на #os2russian мне дал banshee. Для анализа статистики Squid был взят SARG. Потом возник вопрос - а как делить трафик ? Каждому положено X мегабайт в месяц и не более. Существует некий билинг под OS/2 авторства Zuko, но мне его найти не удалось, в результате был создан механизм, который сейчас отмеряет кто и сколько набегал через сквид и определяет, можно или нельзя конкретному пользователю попользоваться сквидом. Работает все это так - Squid первый раз спрашивает имя и пароль, а потом сам, через определенные промежутки времени, авторизует пользователя с помощью программы авторизации (пароль при этом больше у человека не справшивается). # Проверять истечение доступа каждые 5 минут authenticate_cache_garbage_interval 300 seconds # Срок работы доступа - 5 мин authenticate_ttl 300 seconds Каталог со сквидом выглядит так: etc [Folder] jesred [Folder] libexec [Folder] logs [Folder] SQDR [Folder] swap [Folder] var [Folder] au cmd 6,525 jesred exe 21,085 sqdrserver exe 92,672 sqredir exe 59,904 squid2 exe 552,960 В squid.conf вставляется строка: auth_param basic program c:\os2\cmd.exe /c au.cmd Где au.cmd и есть скрипт который определяет кому можно, а кому нельзя в инет. В скрипте надо указать пути к файлам:
Формат у них простой: имя значение А теперь - как посчитать траффик пользователя ? Этим занимается SARG. Он генерит html страничку и кучку текстовых файликов. Из них нам нужен только один - top В нем содержится информация о трафике: msg 000000014203131 000000000003971 000000006465770 000000002859458 000000011343673 sven 000000011060914 000000000001321 000000013464240 000000001091751 000000009969163 Нам нужны первые два столбца. SARG пускается warpcron'ом (шедулер такой) каждые 10 минут и в каталоге, который указан SARG'у, оказываются нужные нам данные. Полный путь к этому каталогу надо указать в скрипте: SARGReport='C:\logs\sarg.temp' Теперь дело в шляпе - у пользователя спрашивают пароль, проверяют объем выкачанного, и соответственно определяют пускать пользователя в инет или нет. У скрипта включен лог для проверки правильности работы, его можно выключить: log=0 Выглядит лог так: 22 Apr 2003-17:10:03 We receive the name: sven ... and password: 12345 C:\LOGS\SARG.TEMP\2003Apr01-2003Apr22\top User: msg traffic: 000000014203131 User: sven traffic: 000000011084936 Enter SearchLimit File with limits: ETC\LIMITS READY: Found string with limit for user: sven = 20M Found limit: 20M for user: sven Resulting limit 20971520 Access to Squid OK ******************* We found name: sven ... with password: 12345 Для проверки правильности работы скрипт можно пускать и из командной строки, вводить имя пользователя и пароль, разделенные пробелом, давить enter и читать лог.
Комментарии:
|
|
|||||||||||||||||||||||||||||||||
(C) OS2.GURU 2001-2021