Автоматизація доступу до каналів комп'ютерних мереж
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
ого роду записів можна підрахувати трафік як по станції, так і по підмережі.
Проте приведена вище технологія дозволяє контролювати трафік по IP-адресу Інтернет-користувача. В більшості випадків цей спосіб цілком підходить, проте при цьому необхідно, щоб за конретним компютером завжди працювала конкретна людина.
Ця умова виконується не завжди і тоді облік трафіку порушується. Ось типові умови, при яких потрібна інша схема авторизації в Інтернеті:
Різні користувачі працюють на одному і тому ж робочому місці (наприклад, позмінно).
Користувачі взагалі не привязані до конкретних компютерів.
Користувачі працюють в термінальних сесіях термінального сервера. Тоді взагалі весь Інтернет-трафік йде з IP-адреса сервера.
Тому часто встає проблема обліку трафіку не на основі IP, а на основі іншої інформації.
4.2.1 Авторизація на основі логіна і пароля
Логічним вирішенням проблеми авторизація на основі логіна і пароля є авторизація в SQUID по логіну і раолю. Така можливість в SQUID, естесвенно передбачена. У SQUID для цього розроблена можливість авторизувати через зовнішню програму, яка просто "говорить" "та чи ні" на визначеного користувача і пароль. Т.ч. Можна проводити авторизацію по обліковому запису уміє проводити авторизацію через облікові записи UNIX, через текстові файли і тому подібне
Наприклад, для того, щоб користувач авторизувався через файл /usr/local/squid/passwd формату Веб-сервера-авторизації (формат Apache), потрібно скомпілювати squid разом з цим модулем (--enable-auth="ncsa; докладніше за див. документацію до SQUID). І в конфиг SQUID додати ACL вирішуюче правило:
Дозволити доступ користувачам dima petya vasya, паролі яких будуть перевірені через файл /usr/local/squid/passwd
acl MYUSERS proxy_auth dima petya vasya
http_access allow MYUSERS
http_access deny all
authenticate_program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd *
(*для версии 2.4).
При цьому, це вирішує поставлені в "Введенні" проблеми, проте додає деякі незручності користувачам і адміністраторові:
При первинному вході в Інтернет користувачеві потрібно набратьв броузере логін\пароль для доступу до SQUID. І кожному користувачеві необхідно памятати свої параметри.
Адміністраторові необхідно вести базу логінів і паролів у файлі.
4.2.2 Авторизація через облікові записи Windows
При роботі в Windows-мережах кожен користувач при вході в мережу проходить авторизацію в NT(2000) -домене. Було б здорове використовувати ці дані для авторизації SQUID. Тоді вирішуються проблеми ведення в SQUID окремої бази даних користувачів і, як виявилось, можна вирішити проблему запиту логіна\пароля в броузере при вході в Інтернет.
Головна проблема при вирішенні авторизації через Windows-домен - знайти і набудувати програму для авторизації заданого користувача в Windows-домене. Команда SQUID рекомендує користуватися програмою winbindd, яка є частиною проекту SAMBA (реалізація Windows сервера і клієнта під UNIX), SQUID, починаючи з версії 2.5 підтримує різні схеми авторизації по логіну\паролю, включаючи basic і NTLM (NT Lan Manager). Basic-схема призначена для авторизації через введення логіна\пароля в броузере, а NTLM-схема призначена для автоматичного прийому броузером логіна, пароля і домена, під якими користувач реєструвався в Windows-домене. Т.ч. за допомогою NTLM-авторизации можна автоматично реєструватися в SQUID без ручного підтвердження логіна і пароля.
4.3.3 Практичне вирішення побудови системи авторизації через Windows домен
Практичне вирішення проблеми було знайдене досвідченим шляхом і може бути не найвитонченішим і правильнішим. Але краса його в тому, що воно дороблене та кінця і працює.
Початкові дані:
1. Компютер, підключений до Інтернет зі встановленою ОС: FREEBSD 4.4 (версія і сама ОС не мають принципового значення).
2. Мережа, що містить близько 200 Windows-станций, включаючи термінальні сервери і клієнти.
3. Близько 250 аккаунтов в домені під управлінням Windows 2000 Advanced сервер (домен WORK і 4 довірителях домена).
Завдання:
Забезпечити авторизацію користувачів на SQUID через облікові записи Windows найбільш зручним способом.
План дій:
1.Установка і конфігурація SAMBA.
Отже перше, що треба зробити - встановити SAMBA для того, щоб уміти авторизуватися в Windows-домене. Я встановив версію 2.2.6pre2. Причому, важливо скомпілювати SAMBA з підтримкою winbind, тобто з параметрами:
-with-winbind
-with-winbind-auth-challenge
Примітка:
У FREEBSD SAMBA була зібрана з портів (ports) і виявилось, що з поточною версією не збирається бібліотека CUPS. Тому SAMBA була зібрана без неї (--without_cups).
Після установки, SAMBA потрібно набудувати на домен Windows мережі і на використання winbind:
[global]
workgroup = WORK - Імя нашого Windows-домена
netbios name = vGATE - Імя сервера (необовязково)
server string = vGate
hosts allow = 10.128. 127. - Для безпеки.
winbind separator = +
winbind use default domain = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/winnt/%D/%U
template shell = /bin/bash
max log size = 50
security = domain
password server = Primary Exch - сервери паролів (PDC, BDC)
encrypt passwords = yes
Слід звернути увагу на 2 речі:
1. Спочатку в параметрі password server був вказаний тільки PDC (Primary) і winbind не зміг знайти контроллер домена. Все запрацювало коли був доданий BDC (Exch).
2. Обидва імена - це NETBIOS імена і для того, щоб вони равильно інтерпретувалися в IP я прописав їх в /usr/local/etc/lmhosts
10.128.1.40 Primary
10.128.1.34 Exch
Після цього необхідне заригестрировать SAMBA в домені Windows. Для цього нужэно набрати команду:
/usr/local/sbin/smbpass -j WORK (наш домен) -r Primary(наш PDC) -UAdministrator