Автор Гілка: Доступ в інтернет по domain whitelist  (Прочитано 6541 раз)

Відсутній HetmanNet

  • Графоман
  • ****
  • дописів: 412
  • Карма: +0/-0
  • Fedora, CentOS, RHEL, KDE
Є локальна мережа А з доступом в інтернет. Є локальна мережа В підключена до локальної мережі А. Між локальними мережами А і В стоїть шлюз.
Треба щоб з локальної мережі В був доступ до машин в локальній мережі А та до визначеного переліку ресурсів в Інтернеті (переважно сервера оновлень ПЗ).

Питання: як краще організувати фільтрацію за білим списком домених імен?
При тому, що є випадки коли треба дозволити всі субдомени для певних доменів, на зразок: *.update.softsolution.com.
Бажано, щоб то не потребувало опісля якихось додаткових налаштувань на машинах в мережі В, окрім шлюза між мережами.

P.S. Не виключаю заміни шлюза під Linux на якусь залізяку. В мережі В очікується до 20-24 машин (це із запасом на найближчі 3-4 роки).
« Змінено: 2021-04-28 21:40:37 від HetmanNet »
Віддамся на один вечір в хороші дівочі руки.. не дорого, в у.о. .. Якщо сподобається, то залишуся безкоштовно назавжди..

Відсутній RomadinR

  • Кореспондент
  • ***
  • дописів: 123
  • Карма: +0/-0
Re: Доступ в інтернет по domain whitelist
« Відповідей #1 : 2021-04-30 00:34:46 »
Якщо потрібен лише HTTP(S) трафік, і врахувати побажання "При тому, що є випадки коли треба дозволити всі субдомени для певних доменів, на зразок: *.update.softsolution.com. ", то єдиний відомий мені спосіб - HTTP/HTTPS proxy. Наприклад, squid дозволяє зчитати білий список з окремого файла, щоб кожен раз файл конфігурації не правити. Transparent proxy для HTTP налаштувати зовсім просто. Якщо немає можливості налаштувати доступ для HTTPS на клієнтах з явним вказанням проксі і, відповідно, потрібен Transparent HTTPS proxy, то доведеться заморочитися генерацією кореневого сертифіката для проксі-сервера і додаванням його на всіх клієнтах у сховище довірених. Правда, тут ще треба враховувати орієнтовну швидкість каналу - для 100Мб/с і більше потрібна буде потужна конфігурація сервера.
Якщо вказане побажання не критичне, то можна написати скріпт генерації правил iptables на основі білого списка. Тоді і обмеження HTTP(S) може бути зняте.
Ще один варіант, але не дуже надійний (навіть дуже ненадійний) - це не фільтрувати на рівні трафіка, а пофільтрувати на рівні DNS (наприклад, дуже специфічною конфігурацією bind, щоб він повертав справжні IP для "білих" доменів і, скажімо, 127.0.0.1 для всіх інших, або IP сервера, на якому висить сторінка "Доступ до цього ресурсу заблоковано"). Але це буде працювати лише для доступу по URL, при доступі по IP, ясно, нічого фільтруватися не буде. І тоді ще потрібно пофільтрувати "неправильні" DNS-сервери, наприклад, заблокувати 53 порт на всі адреси, крім "правильного" DNS. І якщо якийсь умілець десь знайде дірочку для доступу до "лєвого" DNS (наприклад, хтось пожертвує для цих цілей хоча б GPRS на мобільнику), то фільтрація вся йде лісом :(