Конфігування SQUID, проксі-сервер
Завдання для промислового використання знаходиться у Завданні №4
У версіях SQUID може бути синтаксис відмінності, йдеться про SQUID версії "squid-2.4.STABLE7"
Розраховується, що налаштування проксі-сервера починається з певними вихідними налаштуваннями.
Перше завдання: (Linux RH 8.0)
Клієнти (клієнт - це користувач, який підключається до Вашого Проксі-сервера з внутрішньої локальної мережі, або користувач або користувач) підключаються до інтернету, через Ваш проксі, з правилом (правила - певні обмеження) "входь будь-який" але:
Отже, у Вас встановлений сервер, що кешує - squid. Щоб його запустити необхідно набрати команду в командному рядку. Я користуюся "root-консоль", для графічної оболонки "KDE" знаходиться: пуск-інше-система-gt; Консолі (root).
Але зараз поки що цього робити не потрібно
Для початку в каталозі /etc/squid/ створимо каталог conf - у ньому у нас зберігатимуться файли "правил", а саме:
porn список порносайтів, які заборонено відвідувати користувача з файлу normal
noporn списки сайтів, які можуть бути ідефіковані як порносайти, але не належать до них, тобто. винятки зі списку porn
Тепер, перейдемо до конфігурування файлу squid.conf, що знаходиться на шляху /etc/squid/squid.conf
Зверніть увагу на рядок у цьому файлі:
cache_peer 10.49.0.10 parent 8080 3130 no-query default
Це означає куди чіплятиметься Ваш проксі-сервер, тобто. зовнішня мережа. Тут потрібно вказати Ваш вище проксі-сервер, що стоїть, наприклад:
cache_peer proxy.permonline.ru parent 8080 3130 no-query default
Тепер можна запускати службу squid, див. Все має працювати, а якщо немає див. "PS."
Друге завдання: (Linux RH 8.0)
У цьому завдання розглянемоавтентифікацію на ім'я користувача та паролю, тобто. браузер користувача буде запитувати ім'я та пароль користувача.
Все те саме, тільки відбулися зміни у файлах:
normal Тепер тут зберігаються імена користувачів, які мають правила обмежень.
good Тепер тут зберігаються імена користувачів, які не мають жодних обмежень.
Тепер про паролі до користувачів зазначених у файлах нормал і бог. автентифікацією займатиметься програма ncsa_auth, що знаходиться на шляху: /usr/lib/squid/ncsa_auth. Відповідно, щоб ввести паролі потрібно попрацювати в командному рядку.
Як додавати користувачів:
Додавання/зміна користувачів здійснюється за допомогою програми htpasswd
- створення нового файлу passwd (робиться лише вперше)
htpasswd -c /etc/squid/conf/passwd name_user
(Далі він запросить ввести пароль і підтвердження пароля, не відображається) де passwd - це файл, де будуть зберігатися паролі з іменами користувачів name_user - це ім'я користувача (типу roman, oleg etc)
- далі додавання користувачів вже робиться так:
htpasswd /etc/squid/conf/passwd name_user
(без опції -c) - зміна користувачів як у попередньому пункті - легко перезаписується існуючий користувач
Тепер можна запускати службу squid, див. Все має працювати, а якщо немає див. "PS."
Третє завдання: (Linux Mandrake 9.1 та 9.2)
ЕТАП ПЕРШИЙ. Все робилося під Linux Mandrake 9.1 і 9.2. В інших системах можливі відмінності, зокрема шляхи місцезнаходження файлів.
Тепер ще ускладнимо. автентифікація відбуватиметься на ім'я користувача (ім'я-пароль), але додані обмеження за завантаженим обсягом, а також з повним контролем над користувачем. Тобто. зі зборомстатистики про кожного користувача. Саме кожному користувачеві присвоюється своя таблиця правил. І кожен користувач зможе в режимі он-лайн подивитися, скільки він накачав і скільки йому залишилося до граничного трафіку і багато іншого.
Для цього ми будемо використовувати MySQL-server та HTTP-server, Кілька скрін-шотів встановлених пакетів програм
Screenshots - Кілька скріншотів керування через Веб
При спробі настроїти MySQL під RH 8.0 закінчилися невдачею
Спробував на RH 9 - це взагалі щось жахливе. (моя особиста думка)
Довелося випробувати Linux Mandrake 9.1
Враження чудові - мені сподобалося, на даний час я використовую Mandrakelinux 10.1
Але виникла проблема зі SQUID-ом рідної версії
Довелося встановити "squid-2.4.STABLE7 (1.03 МБ)" - Відмінна версія, без проблем.
Якщо Ви користуєтеся рідною версією squid-а (з пакета Вашого дистрибутива), то необхідно змінити в конфігураційних файлах шляхи місця знаходження додатків та самого squid-а
(Далі йтиметься про роботу в Linux Mandreke 9.1)
Скопіюйте заархівований файл зі Squid-ом: "squid-2.4.STABLE7-src.tar.gz (1.03 МБ)" у каталог: /usr - розархівуйте, за замовчуванням у каталог: /usr/squid-2.4.STABLE7
Зайдіть в нього, "відкрийте командний рядок", введіть команду, "./configure" потім, коли він все зробить, "make" потім, коли він все зробить, "make install" SQUID встановлений!
За замовчуванням він установився в /usr/local/squid/
Тепер створіть у системі користувача squid у робочій групі squid. Всім дочірнім каталогам і файлам squid-а (/usr/local/squid/) надайте права: власник: squid, група: squid.
При спробі його запустити можуть виникнути проблеми із записом cashe, тобто. створеннякаталогів на шляху /usr/local/squid/cache/ - проблема полягає в правах доступу до файлів та каталогів - потрібно допомогти йому. А саме:
Далі копіюємо файл "auth" у каталог /usr/local/squid/bin/
Програма auth написана на С++ і налаштована на доступ до MySQL під root без пароля по IP 101.101.101.101.
auth працює як узгоджуючий елемент між SQUID та MySQL.
Якщо Вам потрібно змінити ці опції цієї програми, то ось Вам вихідник. А швидше за все так і буде. Тому що необхідно цим прикрити одну з дірок mysql. Тобто. принаймні встановити пароль для root
g++ ./utv.cpp -o auth -lm -lmysqlclient
Після цієї команди з'явиться скомпільована програма auth
Для зручності встановіть файл менеджер "mc" - є в наборі з мандрейком 9.1
Для його виклику введіть "mc"
Скопіюйте конфігураційний файл: "squid.conf" у каталог: /usr/local/squid/etc/. Однак врахуйте, що цей файл налаштований, що Ваш проксі приєднаний до іншого проксі (IP 10.49.0.10 в порт 8080), а до вас користувачі сконектуються на 101.101.101.101 порт 3128.
Тепер необхідно встановити фільтри на маршрутизації - інакше ваші користувачі зможуть обійти ваш проксі. Для цього ми будемо використовувати iptables. А саме:
1. Скопіюйте конфігураційний файл: "demo" у каталог: /usr/local/iptables-restore/.
2. Внесіть зміни до кінця файлу: "rc.local" у каталозі: /etc/rc.d/
echo "1" > /proc/sys/net/ipv4/ip_forward
Цим Ви відкриєте маршрутизацію Ваших користувачів на зовнішній проксі. Тобто. з сітки 101.101.101.0 на 10.52.1.0, причому порт 8080 на вході буде перекритий (що б користувач не зміг обійти проксі з'єднавшись із зовнішнім проксі по його відкритому порту. Але якщо у зовнішнього проксі порт 3128, топараметри фільтра потрібно змінити навпаки. Тобто. по входу 8080 після виходу на зовнішній проксі з портом 3128).
4. Тепер запустіть проксі:
/usr/local/squid/bin/squid -D (для перезапуску проксі /usr/local/squid/bin/squid -k reconfigure, для зупинки /usr/local/squid/bin/squid -k shutdown)
5. Встановіть пароль root для доступу до каталогу http://ІМ'Я КОМП'ЮТЕРА/admin/:
htpasswd -c /usr/local/squid/etc/conf/.htpasswd user_name
де user_name – це ім'я користувача з правами root
Тепер у користувача машини при спробі вийти в інет, Ваш проксі буде запитувати пароль. Але працювати іне поки не буде, поки ми не запустимо MySQL - це другий етап.
Другий етап, MySQL:
Тепер потрібно встановити планувальник. Тобто. оновлення бази щогодини та обнулення 1 числа кожного місяця (можливі варіанти). Для цього необхідно:
1. Створити каталог "plan" на шляху /usr/local/squid/
3. Налаштувати планувальник завдань. І тому скористаємося командою crontab, тобто. у командному рядку набираємо:
Ви побачите перелік завдань. Щоб перейти в режим редагування, натисніть "a" і введіть два рядки:
0 0-23 * * * /usr/local/squid/plan/baza.pl
0 1 1 * * /usr/local/squid/plan/updates.pl
Будьте уважні, кожна літера важлива, навіть прогалини.
1. - спершу натиснути на "esс"
2. - потім на символ ":" (двокрапка)
4. - потім на enter
Все планувальник запрограмований.
5. Тепер найскладніше, запускаємо службу MySQL, і нишпоримо її в мережу.
Перевірте наявність встановлених пакетів у вас у системі
У командному рядку набиваємо:
З'явиться запрошення "mysql >"
update user set host='%' where host='localhost.localdomain' and user='root';
У деяких версіях замість localhost.localdomain необхідно вказати localhost
Тобто. Ви поміняли вписаний localhost на будь-який хост (доступ з будь-якого хоста-комп'ютера), під користувачем root без пароля
[root@ingineer root]# mysqladmin reload
Тепер можна налаштовувати mysql через мережу з віндової машини за допомогою програми: MySQL-Front_2.5_Setup.exe(1 MB)
6. Будемо створювати бази :)
Скопіюйте файл "www.zip" розпакуйте його та скопіюйте (зберігаючи шляхи всередині архіву) папки та файли в каталог /var/
Скопіюйте файл "MySQL.zip" Розпакуйте його та збережіть на гвинтовій машині, де у Вас встановлена MySQL-Front_2.5
Запускаємо служби, що цікавлять нас - MySQL, SQUID, HTTPD (мають бути запущені)
Переходимо на віндову машину із встановленою програмою MySQL-Front_2.5 та розпакованим архівом MySQL.zip. Запускаємо програму MySQL-Front
У лівому вікні знайдіть папку MySQL, натисніть на неї, потім у правому вікні натисніть на "Query", з'явиться віконце з кнопкою (3-я зліва) "відкрити файл" (LOAD SQL) відкрийте файл mysql.sql (раніше розархівований Вами із файлу MySQL.zip), натисніть на "F9"
Проверніть цю дію, повинно вийде Так і Так. Якщо не так, то видаліть зайве шляхом виділення рядка (клацнути по відповідному, не потрібному, рядку "мишею") і натиснувши ctrl+del
Створюємо базу "log", за допомогою команди "Create Database" (правою мишкою по кореневому імені бази, у лівому вікні вгорі), за тим вибираємо цю базу і так само переходимо на "Query" і так само відкриваємо файл, тільки тепер файл "stat.sql", натисніть на "F9"
Створюємо базу "proxy", за допомогою команди "Create Database", за тим вибираємо цю базу і так само переходимо на "Query" і так само відкриваємо файл, тільки тепер файл "auth.sql", натисніть на "F9"
Не забудьте після кожної операції натискати на "F9", а так само в панелі інструментів "Reload User-Privileges" і "refresh"
Все, бази створені.
Але в такому вигляді є дві дірки доступу до баз MySQL під користувачами root та loger, без пароля – що дуже небезпечно.
Як встановити паролі цим користувачем ми розглянемо задачі №4.
І останнє, в інтернет провіднику наберіть:
Де "ingineer" – це ім'я Вашого комп'ютера (проксі-сервера).
Комп'ютер запросить пароль, ви повинні ввести користувача root та пароль до нього (який ви вводили в 5 пункті запуску SQUID)
Все, все працює. Успіхів. Пишіть, якщо, що.
По суті завдання №3 та №4 повністю сумісні. І практично однакові, а відрізняються лише конфігураційними файлами, веб-інтерфейсом і повнішим - вдалим описом конфігурування. Наприклад описано як закрити діри основної бази mysql, на відміну цього опису (вхід у mysql без пароля з будь-якого комп'ютера під користувачами loger і root, що небезпечно).
1. Встановити програми "mgetty" (тільки не видалення, а встановлення)
2. Встановити програми "PPP" (Тільки не видалення, а встановлення)
3. У файлі login.conf на шляху /etc/mgetty+sendfax/ Зняти коментар з закоментованого рядка:
#/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug
тобто. на початку цього рядка прибрати коментар - # і у Вас вийшов рядок:
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug
4. Для прикручування модему на автопідйом необхідно прописати у файлі /etc/inittab і містити рядок:
s1:12345:respawn:/sbin/mgetty /dev/ttyS1 -D -s 38400 -n 3
Остання цифра свідчить про кількість пропущених дзвінків перед автопідняттям, тобто. 3. Приклад "файлуinittab"
Коментар: /dev/ttyS1 Говорить про те, що модем у Вас сидить на COM2, якщо на COM1 - /dev/ttyS0
38400 - Це швидкість підключення модему, наприклад, можна поставити 56000
На прохання трудящих повідомляю:
Щоб прикрутити кілька модемів на модемний пул необхідно:
у файлі /etc/inittab у рядку:
s1:12345:respawn:/sbin/mgetty /dev/ttyS1 -D -s 38400 -n 3
Змінювати сокет, тобто. s0, s1, s2 і т.д.
Як і номер СОМ-порту ttyS0, ttyS1, ttyS2 тощо.
Наприклад Вам необхідно прикрутити 3 модеми, відповідно буде три рядки, а не один:
s0:12345:respawn:/sbin/mgetty /dev/ttyS0 -D -s 56000 -n 3
s1:12345:respawn:/sbin/mgetty /dev/ttyS1 -D -s 56000 -n 3
s2:12345:respawn:/sbin/mgetty /dev/ttyS2 -D -s 56000 -n 3
Простіше висловлюючись усі три (і більше) модеми працюватимуть одночасно, тобто. три віддалені користувачі зможуть підключитися до Вашого сервера
Для перезапуску служби наберіть команду:
5. Тепер налаштування підключення користувачів. Файли налаштувань знаходяться на шляху /etc/ppp/
Файл "options" містить IP сервера та клієнта
Файл "pap-secrets" містить Ім'я користувача та пароль
Все, модем прикручений і працює.
Один раз була проблема, під час аутентифікації (перевірка імені та пароля), "скидало"