Веб -проксі існують досить давно і ними користуються мільйони користувачів по всьому світу. Вони мають широкий спектр цілей, найпопулярнішою з яких є анонімність в Інтернеті, але є й інші способи скористатися перевагами веб -проксі. Ось деякі ідеї:
Проксі -сервер - це комп’ютер, який використовується як посередник між клієнтом та іншими серверами, з яких клієнт може запитувати ресурси. Простий приклад цього - коли клієнт робить онлайн -запити (наприклад, хоче відкрити веб -сторінку), він спочатку підключається до проксі -сервера.
Потім проксі -сервер перевіряє свій локальний кеш -диск, і якщо дані можна знайти там, він поверне дані клієнту, якщо вони не кешуються, він зробить запит від імені клієнта, використовуючи IP -адресу проксі (відмінну від клієнтів), а потім поверне дані клієнту. Проксі -сервер намагатиметься кешувати нові дані і використовуватиме їх для майбутніх запитів, зроблених на цей самий сервер.
Кальмар це веб -проксі, який використовував моє широке коло організацій. Він часто використовується як проксі -сервер для кешування, покращує час відгуку та зменшує використання пропускної здатності.
Для цілей цієї статті я буду встановлювати Кальмар на Linode CentOS 7 VPS і використовувати його як проксі -сервер HTTP.
Перш ніж розпочати, ви повинні це знати Кальмар, не має мінімальних вимог, але обсяг використання оперативної пам’яті може змінюватися залежно від клієнтів, які переглядають Інтернет через проксі -сервер.
Кальмар включено до базового сховища, тому установка проста і зрозуміла. Однак перш ніж встановити його, переконайтеся, що ваші пакети оновлені, запустивши.
# yum -y оновлення.
Перейдіть до інсталяції squid, запустіть та увімкніть його під час запуску системи за допомогою наступних команд.
# yum -y встановити squid. # systemctl запустити кальмар. # systemctl увімкнути squid.
На цьому етапі ваш веб -проксі Squid уже має працювати, і ви можете перевірити стан служби за допомогою.
# systemctl статус squid.
● squid.service - Проксі -сервер для кешування Squid Завантажено: завантажено (/usr/lib/systemd/system/squid.service; включено; попередньо встановлено постачальника: вимкнено) Активно: активний (працює) з чт 2018-09-20 10:07:23 UTC; 5 хвилин тому Основний PID: 2005 (кальмар) CGroup: /system.slice/squid.service ├─2005/usr/sbin/squid -f /etc/squid/squid.conf ├─2007 (squid -1) -f /etc/squid/squid.conf └─2008 (logfile-daemon) /var/log/squid/access.log 20 вересня 10:07:23 tecmint systemd [1]: Запуск кешування Squid проксі... 20 вересня 10:07:23 tecmint squid [2005]: Squid Parent: заведе 1 дитину. 20 вересня 10:07:23 tecmint squid [2005]: Squid Parent: (squid-1) процес 2007 розпочато. 20 вересня 10:07:23 tecmint systemd [1]: запущено проксі -сервер кешування Squid.
Ось деякі важливі розташування файлів, про які ви повинні знати:
Мінімум squid.conf
файл конфігурації (без коментарів) виглядає так:
acl localnet src 10.0.0.0/8 # RFC1918 можлива внутрішня мережа. acl localnet src 172.16.0.0/12 # RFC1918 можлива внутрішня мережа. acl localnet src 192.168.0.0/16 # RFC1918 можлива внутрішня мережа. acl localnet src fc00 ::/7 # Діапазон локальних приватних мереж RFC 4193. acl localnet src fe80 ::/10 # Машини з локальним зв'язком RFC 4291 (безпосередньо підключені). acl SSL_ports порт 443. acl Safe_ports порт 80 # http. acl Safe_ports порт 21 # ftp. acl Safe_ports порт 443 # https. acl Safe_ports порт 70 # gopher. acl Safe_ports порт 210 # wais. acl Safe_ports порт 1025-65535 # незареєстровані порти. acl Safe_ports порт 280 # http-mgmt. acl Safe_ports порт 488 # gss-http. acl Safe_ports порт 591 # файлмейкер. acl Safe_ports порт 777 # http: acl CONNECT метод CONNECT. http_access deny! Safe_ports. http_access заперечити CONNECT! SSL_ports. http_access дозволити менеджеру localhost. http_access заборонити менеджеру. http_access дозволяють localnet. http_access дозволяють localhost. http_access заперечує все. http_port 3128. coredump_dir/var/spool/squid. refresh_pattern ^ftp: 1440 20% 10080. refresh_pattern ^гофер: 1440 0% 1440. refresh_pattern -i (/cgi -bin/| \?) 0 0% 0. refresh_pattern. 0 20% 4320.
Тут ми покажемо вам, як налаштувати squid як HTTP -проксі, використовуючи лише IP -адресу клієнта для автентифікації.
Якщо ви хочете дозволити IP -адресі доступ до Інтернету через ваш новий проксі -сервер, вам потрібно буде додати нову ACL (список контролю доступу) у рядку конфігураційного файлу.
# vim /etc/squid/squid.conf.
Рядок, який потрібно додати:
acl localnet src XX.XX.XX.XX.
Де XX.XX.XX.XX - це фактична IP -адреса клієнта, яку ви хочете додати. Рядок слід додати на початку файлу, де визначено списки керування доступом. Рекомендується додати коментар поруч із списком ACL, у якому буде описано, хто використовує цю IP -адресу.
Важливо відзначити, що якщо Squid знаходиться за межами вашої локальної мережі, вам слід додати загальнодоступну IP -адресу клієнта.
Вам потрібно буде перезапустити Squid, щоб нові зміни набрали чинності.
# systemctl перезавантажте squid.
Як ви могли бачити у файлі конфігурації, для підключення дозволені лише певні порти. Ви можете додати більше, відредагувавши файл конфігурації.
acl Safe_ports порт XXX.
Де XXX - це фактичний порт, який потрібно завантажити. Знову ж таки, непогано залишити коментар поруч із описом того, для чого буде використовуватися порт.
Щоб зміни вступили в силу, вам потрібно буде ще раз перезапустити squid.
# systemctl перезавантажте squid.
Ви, швидше за все, захочете, щоб ваші користувачі пройшли автентифікацію перед використанням проксі. З цією метою можна ввімкнути базову автентифікацію HTTP. Це легко і швидко налаштувати.
По -перше, вам знадобиться httpd-інструменти встановлено.
# yum -y встановіть httpd -tools.
Тепер давайте створимо файл, який пізніше зберігатиме ім’я користувача для автентифікації. Кальмар працює з користувачем «Кальмар» тому файл повинен належати цьому користувачу.
# торкніться/etc/squid/passwd. # chown squid:/etc/squid/passwd.
Тепер ми створимо нового користувача під назвою "Проксициліент" і встановіть його пароль.
# htpasswd/etc/squid/passwd proxyclient Новий пароль: Повторно введіть новий пароль: додавання пароля для проксіклієнта користувача.
Тепер, щоб налаштувати автентифікацію, відкрийте файл конфігурації.
# vim /etc/squid/squid.conf.
Після ACL портів додайте такі рядки:
Базова програма auth_param/usr/lib64/squid/basic_ncsa_auth/etc/squid/passwd. auth_param базові діти 5. auth_param базове царство Squid Основна автентифікація. auth_param базові облікові даніsttl 2 години. acl auth_users proxy_auth ПОТРІБНА. http_access дозволяють auth_users.
Збережіть файл і перезапустіть squid, щоб нові зміни набрали чинності:
# systemctl перезавантажте squid.
Нарешті, ми створимо останній ACL це допоможе нам заблокувати небажані веб -сайти. Спочатку створіть файл, у якому будуть зберігатися сайти з чорного списку.
# торкніться /etc/squid/blacklisted_sites.acl.
Ви можете додати деякі домени, які хочете заблокувати. Наприклад:
.badsite1.com. .badsite2.com.
Продовжувана крапка вказує кальмару блокувати всі посилання на ці сайти, включаючи www.badsite1, subsite.badsite1.com, тощо.
Тепер відкрийте файл конфігурації Squid.
# vim /etc/squid/squid.conf.
Відразу після ACL портів додайте наступні два рядки:
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl" http_access заперечити bad_urls.
Тепер збережіть файл і перезапустіть squid:
# systemctl перезавантажте squid.
Після того, як усе було налаштовано правильно, тепер ви можете налаштувати локальний клієнтський браузер або мережеві параметри операційної системи для використання вашого проксі -сервера squid.
У цьому посібнику ви дізналися, як самостійно встановлювати, захищати та налаштовувати проксі -сервер Squid HTTP. Маючи отриману інформацію, тепер ви можете додати базову фільтрацію вхідного та вихідного трафіку через Squid.
Якщо ви хочете зробити ще більше, ви можете навіть налаштувати кальмар, щоб він блокував деякі веб -сайти в робочий час, щоб запобігти відволіканням. Якщо у вас є запитання чи зауваження, розмістіть їх у розділі коментарів нижче.