Дайте мені точку опори або безпечний Інтернет — це реальність

Основна проблема доступу до інформаційних ресурсів мережі Інтернет полягає в тому, що точка підключення до неї стає частиною цієї мережі і, як наслідок, стає загальнодоступною, взаємодіє з нею за загальноприйнятими мережевим протоколам і по цим протоколам взаємодіє з захищається мережею. Ніякими методами тестування неможливо довести відсутність помилок в програмному забезпеченні (постулат Дейкстри). Маючи необмежений час доступу до точки підключення до мережі Інтернет, зловмисник може, використовуючи стандартні мережеві протоколи, стандартне програмне забезпечення і знайдені в ньому помилки або помилки в його налаштуваннях здійснити несанкціонований доступ через точку підключення внутрішньо корпоративної мережі з усіма витікаючими наслідками.

Читати далі →

Squid з фільтрацією HTTPS без підміни сертифіката, інтеграція з Active Directory 2012R2 + WPAD

Цей мануал був написаний в зв'язку з виробничою необхідністю моніторити трафік (http і https) користувачів, а також розподілу доступу з білим і чорним списками. За основу були взяті статті: і ось ця , в яких використовувалась технологія peek-n-splice. В даних статтях конфігурація припускає використання хоста з squid як шлюз, після доопрацювання конфига, вийшов повноцінний проксі-сервер з можливістю розподілу прав доступу по групах з Active Directory. По завершенню конфігурування постало питання передачі налаштувань проксі-сервера для користувачів. В виду того, що в офісі часто ноутбуки беруть додому — вся справа зайшла в глухий кут. Спочатку розглядався варіант видачі налаштувань проксі-сервера DHCP, але він не найкращий, оскільки офіси в різних підмережах, і різне обладнання, виходом з даної ситуації став WPAD. Коротко про даної технології можна сказати так, клієнтські машини на OS Windows шукають хост з ім'ям wpad.example.ru (аж до доменів третього рівня), щоб отримати файл налаштувань для роботи в мережі. Виходячи з такого принципу, потрібно підняти веб-сервер, який би віддавав файл wpad.pac Можна на самому хості з проксі-сервером підняти веб-сервер (що і було зроблено), а в DNS-сервері створитиа wpad проксі-сервер. Проксі-сервер краще використовувати з можливістю збору і перегляду статистики, благо вибір предостаточный. В очах деяких консервативних міркувань, було вирішено вибрати SARG. Він легкий у налаштуванні, досить прийнятна статистика для офісу зі штатом до 100 співробітників.

Читати далі →

Доопрацювання парсера логів Squid для коректного перегляду відвіданих HTTPS ресурсів

Всім привіт! Я отримував і отримую багато листів від людей з питаннями за Squid, який працює на основі моєї статті. Найбільш часто виникає питання про перегляд логів Squid яким-небудь парсером. Проблема в тому, що версія Squid 3.5.8 з налагодженим прозорим проксированием HTTPS логирует відвідувані HTTPS ресурси не у вигляді доменних імен, а у вигляді IP адрес з портами (прим. 164.16.43.56:443). Відповідно, при перегляді статистики відвідувань замість людської інформації проскакують ці самі IP адреси. Збирати статистику з такими даними досить складно. Я зв'язувався з розробниками Squid з цього приводу, але чіткої відповіді так і не отримав. Єдине, що я з'ясував, нормальне логування працює в більш нових версіях Squid, але на них прозоре проксіювання особисто у мене так і не запрацювала належним чином. Тому виникло питання про те, як зробити резолв IP адрес в самому парсере логів.

Читати далі →

Squid + Dansguardian + c-icap + ClamAV на базі CentOS 7

Мета статті
В Інтернеті доступна певна кількість статей з налаштування антивірусного захисту в зв'язці squid + ClamAV, але немає повного матеріалу по налаштуванню повної зв'язки під CentOS 7. В рамках даної статті буде показано процес налаштування проксі сервера з наступними можливостями:
  • фільтрація сайтів і посилань за категоріями;
  • антивірусний захист.
Аудиторія
Системні адміністратори Linux

image
Читати далі →

«Прозорий» Squid з фільтрацією HTTPS ресурсів без підміни сертифікатів

Не секрет, що у великих конторах тема фільтрації Інтернету досить актуальна. З цим завданням справляється чимало програмних і апаратних рішень. Але в даний час всі ті сайти, які ми різали раніше, працюють по протоколу HTTPS, тобто порт 443. Як відомо, даний протокол простежити, прослухати і т. п., неможливо. А будь кеширующий фільтруючий проксі-сервер, редиректор і т. п. фільтрує HTTP, тобто порт 80. Як же різати Вконтакте, Однокласники, iphide.info і багато інші подібні сайти? Як блокувати доступ до особистої пошти в організації, якщо використання оной заборонено порядками в організації? Так, можна фільтрувати по IP адресам, але вони частенько змінюються, так і на багатьох ресурсах кілька IP адрес. Блокувати їх на рівні файрвола як-то зовсім не православне рішення, і не зовсім зручне.

І ось, зовсім недавно, мені один товариш розповів, що він піднімає у себе в конторі кеширующий проксі з фільтрацією HTTPS, мене це зацікавило. А він піднімав Squid 3.5.8. Як з'ясувалося, в ньому перероблена організація перехоплення шифрованих HTTPS-сеансів (ssl_bump), замість режимів перехоплення («modes») введено в ужиток дії («actions»), які в тому числі можна використовувати в ACL. Режим «server-first, при якому спочатку здійснюється з'єднання з цільовим сервером, а потім створюється захищене з'єднання між клієнтом і проксі, тепер доступний як дія «bump». Режим «none», при якому створюється TCP-тунель без дешифрування трафіку, тепер доступний як дія «splice».

Для забезпечення зворотної сумісності додано дія «peek-and-splice», при якому рішення про тип створюваного спочатку з'єднання (клієнт-проксі або проксі-сервер) приймається на основі SSL hello-повідомлень. Додано дії «peek» і «stare» для отримання клієнтського або серверного сертифіката із збереженням можливості подальшого застосування режимів «splice» і «bump» для сполук. Додано дія «terminate» для закриття з'єднань до клієнта або сервера. От як раз SSL BUMP, PEEK-and-SPLICE і Terminate нам і потрібні. Взагалі, схема роботи насправді досить проста. Squid підключається до HTTPS ресурсу, отримує його сертифікат, і може «подивитися» деякі дані про ресурс, зокрема ім'я сервера, яке нам якраз і потрібно для блокування! Всі мануали, які є в Інтернеті, то і справа описують Man in the middle (MITM) атаку з підміною сертифікатів, при якій в принципі не працюють деякі сайти і банк-клієнти, так і юзери явно бачать, що за ними стежать. Ми ж з товаришем спільними зусиллями домоглися сбособа фільтрації і відстеження HTTPS без підміни сертифікатів, без MITM і іншого, і все це в прозорому режимі без налаштування браузерів!

Згодом я зіткнувся з деякими труднощами, зокрема Squid починав сегфолтиться на великому навантаженні. Але проблема була вирішена. Справа в тому, що у Openssl є деякі помилки, які виправлені в бібліотеці Libressl. Тому спочатку необхідно інтегрувати в систему Libressl, потім вже після внесення патча в файл bio.cc в исходниках Squid приступати до компіляції останнього. Поїхали! Обмовлюся, що в мене використовується дистрибутив Debian Jessie x86, і Squid я в підсумку зібрав версії 3.5.9 (остання на даний момент версія), і стаття розрахована на більш-менш досвідченого користувача Linux, так як деякі моменти опускаються, а йдеться лише найголовніше, так як мені лінь все розжовувати. Отже, якщо вам цікаво, йдемо під кат.

Читати далі →

Мультипрокси на базі Debian і SQUID з прозорою доменної аутентифікацією

Піднімаємо проксі сервер Squid, слухає кілька портів. На кожен порт свій канал зв'язку або зовнішній IP. Мануалів і статейок в інтернетах повно, але загальної сконсолидированной на жаль немає, вирішив поділитися.

Почнемо.

Використовується Debian 7.8, Samba 4, Squid 3, Kerberos 5.

Читати далі →

Проксі сервер для вільного інтернету

Одного разу мені остаточно набридли сторінки кшталт «даний ресурс заблоковано на вимогу», які стали траплятися все частіше і частіше. А ще все більше стало згадок про «глибинний інтернет», i2p, tor, onion, анонімні p2p мережі і взагалі повіяло хакерської романтикою дитинства, коли інтернет був чимось загадковим і був доступний тільки з двох годин ночі зі швидкістю 31200…

Загалом, була поставлена мета: зробити проксі сервер, через який можна заходити на будь-які сайти (включаючи сайти в доменах .i2p і .onion) в обхід будь-яких блокувань. Мета забезпечення анонімності не ставилося.

Вужа з їжаком вдалося схрестити, і ось тепер я, як і 17 років тому, досліджую глибинні шари інтернету. До речі, якщо говорити про i2p, то швидкість за відчуттями не набагато більше, ніж у інтернету 17 років тому. Історія циклічна.

Стаття не закликає до якихось дій політичного або кримінального характеру і призначена для тих, хто не любить рамок і обмежень і сам вибирає, що і як читати.

Як це працює:

Основним проксі сервером є squid.
Через cache_peer (вищестоящий проксі) squid підключається до i2p і tor. tor є Socks проксі, а squid — http проксі, тому між squid і tor вбудовується прошарок privoxy.
Також, ми маємо оновлюваний ACL список усіх заблокованих ресурсів в російському інтернеті.
Squid обробляє запити від браузерів наступним чином:
Якщо запитується URL в домені .i2p, то запит передається по ланцюжку в i2p.
Якщо запитується URL в домені .onion, то запит передається по ланцюжку в tor.
Якщо запитується заборонений URL, то запит передається по ланцюжку в tor.
Всі інші запити надсилаються безпосередньо самим squid.

Інструкція як зробити інтернет без обмежень своїми руками:

Читати далі →

Вважаємо мережевий трафік з допомогою netflow і lightsquid

Одного разу в нашому невеликому офісі знадобилося налаштувати систему обліку трафіку під linux. Побіжно переглянувши готові рішення, я вирішив використовувати щось простіше. Погугливши, мені сподобався підхід використовувати самописний скрипт, який конвертував статистику netflow в squid-сумісний лог, який потім можна аналізувати чим завгодно. Готовий скрипт, що гуляє по гуглу, я використовувати не став, оскільки він використовує ipcad, якій відсутня в debian і ubuntu. Написав свій варіант, який використовує будь netflow сенсор і flow-tools в якості колектора. Скрипт поступово ускладнювався і, в підсумку, виріс в невелику систему обліку трафіку. Архів цього задоволення важить близько 50к, при цьому:
  • встановлюється з допомогою deb для дистрибутивів, заснованих на debian або з допомогою власного інсталятора для решти
  • вміє рахувати інтернет-трафіку на маршрутизаторі у всьому ip v4 протоколів і портів
  • вміє обмежувати доступ не прописаним користувачам
  • замість голої статистики ip-адрес netflow вміє деталізувати звіти з допомогою dig і squid
  • вміє вибірково блокувати трафік
  • має веб-інтерфейс для управління користувачами і групами користувачів
  • налаштовується трохи складніше lightsquid, який використовує в роботі
  • не використовує проміжний лог access.log, власний парсер конвертує статистику netflow прямо в звіт lightsquid



Читати далі →

Перенаправлення користувачів за правилами в Squid

По роботі зіткнувся з такою проблемою: є десяток проксі серверів (squid) в різних країнах і не один десяток користувачів. Кожен з них сам вирішує через який сервер працювати — є chrome extension в якому вони можуть зробити вибір.

Але всі сервери знаходяться на різному видаленні від користувача і користувач з Росії, користуючись сервером в Канаді стикається з хорошими гальмами. З іншого боку всі сервери підключені в дата центрах до магістралей і між ними затримки багато менше.

Було прийнято рішення направляти кожного користувача до найближчого до нього сервера, а від туди до обраного.

Читати далі →

«Секрети» існування Всезнайки

Вікіпедія — 10 провідних сайтів у світі. Вона має близько 500 млн <a href=«reportcard.wmflabs.org/#core-graphs-tab>унікальних відвідувачів в місяць. Це близько 200 запитів кожну секунду! Вікіпедія цілком і повністю некомерційна структура, пожертвування — її основний спосіб фінансування. Це означає, що MediaWiki, що лежить в основі Вікіпедії, не тільки тримає сайт в топі, але і робить це на дуже скромні кошти. І тому у главу кута ставиться робота над продуктивністю, кешуванням і оптимізацією.


Читати далі →