Розміщення кількох сайтів з підтримкою SSL на одній мережевій карті за допомогою IP-алиасинг (документація)

У більш ранній статті під назвою "Захищений віддалений доступ до даних для Domino" ми говорили про використання переваг Web-сервера Apache для вирішення проблем корпоративного масштабу за розумною ціні. У цій статті ми продовжимо цю тему і пояснимо, як за допомогою Web-сервера Apache можна розмістити декілька Web-сайтів з підтримкою Secure Sockets Layer (SSL) на одному сервері, підключеному до мережі за допомогою однієї фізичної мережевої карти.


Навіщо може знадобитися розмістити кілька SSL-сайтів на одному сервері? Чи може взагалі виникнути така потреба у підприємства? Ми спробуємо розглянути ці питання на прикладі з життя. Досвідчені користувачі без сумніву знайдуть додаткове творче застосування цієї ідеї.


Аналіз проблеми: два додатки, один сервер


У більш ранньому проекті в нашій компанії відділ кадрів захотів надати зовнішній доступ по Internet до Web-додатком для нарахування виплат. Ця програма повинна була бути доступним, по більшій частині, з внутрішньої корпоративної мережі і іноді через зовнішній Internet. Щоб відповідати вимогам безпеки, ми вирішили розмістити додаток на сервері усередині корпоративної мережі і побудувати реверсивний proxy-сервер, використовує HTTP-сервер Apache. Реверсивний proxy-сервер буде переривати поточне і відкривати інше SSL-з'єднання з сервером Web-додатків, на якому знаходиться HR-додаток. Додавши модуль mod_security на Web-сервер Apache, можна перетворити реверсивний proxy-сервер в шлюз додатків і забезпечити достатню безпеку. Відділ кадрів обачно вибрав зручне і легко запам'ятовується повне доменне ім'я (fully qualified domain name – FQDN). Потім ми отримали сертифікати SSL і думали, що історія на цьому закінчилася.


Минув рік. З'явилося інше корпоративне Web-додаток з вимогами, аналогічними перший HR-додатком. До нього точно також була потрібна можливість доступу зовнішнім користувачам. Число цих користувачів було дуже невелике. Велика частина ресурсномісткою роботи повинна була виконуватися усередині корпоративної мережі. Ми відразу ж подумали про використання реверсивного proxy-сервера для надання зовнішнього доступу до цього нового Web-додатку.


Проте виникло кілька перешкод. По-перше, ми турбувалися з приводу фізичного простору в центрі обробки даних і серйозно розглядали можливість об'єднання серверів для розміщення будь-яких додатків. По-друге, ми повинні були обгрунтувати витрати на придбання додаткових реверсивних proxy-серверів. Поєднання двох цих проблем змусило нас задуматися, як можна використовувати існуючий реверсивний proxy-сервер для задоволення потреб нового Web-додатки. Єдиною проблемою було те, що цей додаток повинно було мати доменне ім'я (FQDN), відмінне від встановленого для існуючого додатка відділу кадрів.


Ми розглянули кілька ідей, щоб використовувати існуючі реверсивні proxy-сервери для другого Web-додатки. Першою думкою було поміняти ім'я домену для старого і нового додатків на щось спільне, зразок rp.company.com, і розділити додатки за контекстним шляхах. Однак, існуючі користувачі сильно заперечували проти можливої зміни імені. Їм би довелося повідомляти нове ім'я всієї компанії і міняти всі друковані матеріали, щоб там був присутній оновлений URL. Ціна перейменування була б величезною, навіть якщо проігнорувати можливий шквал звернень до служби технічної підтримки користувачів, зіткнулися з проблемою доступу до сайту. До того ж, обидві групи користувачів воліли залишити свої власні FQDN, аргументуючи це тим, що вони більш запам'ятовується, ніж запропонований загальний URL, і що свої додатки вони збиралися, крім усього іншого, використовувати для просування бренду.


Була висунута інша ідея: чому б не зареєструвати нове DNS-ім'я, яке вказувало б на вже існуючий сервер? Ця пропозиція була відразу ж відкинута. У додатках SSL кожен SSL-сертифікат повинен відповідати запитуваного користувачем URL, в іншому випадку буде видано попередження про невідповідність запитаного URL і доменного імені, зазначеного в SSL-сертифікат. У період розквіту спливаючих вікон з рекламою і всіляких шкідливих програм усіх працівників компанії натренували припиняти взаємодія з Web, якщо вискакували вікна з попередженнями. Відповідно до вимогами корпоративних стандартів архітектури було заборонено в вироблених Web-додатках використовувати технологію спливаючих вікон для відображення попереджувальних повідомлень.


Наступним реченням було розмістити другий SSL-сайт на іншому порту того ж самого сервера, де запущений перший. Але й воно зазнало поразки – користувачеві складно запам'ятовувати крім URL ще й номери портів. У випадку, якщо користувач вказує URL без номера порту призначення, він буде перенаправлено на додаток відділу кадрів. А це потягне за собою безліч проблем.


Рішення: IP-алиасинг


Рішення, на яке ми врешті-решт натрапили, було IP-алиасинг. Найхитрішим в пошуку цього рішення виявилося дати правильну назву. Коли ми вперше зустрілися з цією концепцією, ми чули такі поняття, як віртуальний інтерфейс і віртуальний IP. Було дуже складно знайти хоч що-то про цих концепціях, поки ми не зрозуміли, що насправді шукаємо інформацію про IP-алиасинг, а з цієї теми літератури багато. Іноді IP-алиасинг ще називають мережевим віртуальним алиасинг або логічними інтерфейсами.


Використання IP-алиасинг в Linux







 



Режим Promiscuous mode: Попередження
Деякі мережеві карти переходять в цей режим у разі настройки декількох IP-адрес. У режимі Promiscuous mode мережева карта буде захоплювати весь трафік, що проходить в локальній мережі. Це може зробити сервер сприйнятливим до атак, спрямованим на інші комп'ютери в мережі. Більшість мережевих аналізаторів пакетів і інші програми моніторингу мережі переводять мережні інтерфейси в цей режим для захоплення всіх пакетів з мережі.
 

Концепція, яка стоїть за поняттям IP-алиасинг, проста: можна налаштувати декілька IP-адрес на одному мережному інтерфейсі. Це дозволить запустити декілька Web-серверів на одному фізичному сервері і одному мережевому інтерфейсі. Налаштувати IP-аліас досить просто. Потрібно сконфігурувати мережевий інтерфейс системи для прослуховування додаткового IP-адреси. У Linux ™ можна додати IP-асліасінг за допомогою стандартних засобів конфігурації мережі, наприклад, ifconfig і route або через графічний інтерфейс адміністратора.


Зазвичай кожної мережевої карти при налаштуванні присвоюється деякий числове значення, що характеризує фізичний номер пристрою. Щоб додати додатковий IP-адресу до вже налаштованої мережевої карти, потрібно налаштувати інтерфейс з цим же фізичним номером, але додати певний логічний номер пристрою. Наприклад, якщо існуючий IP-адресу був налаштований для мережевої карти з фізичним номером eth0, то можна створити IP-аліас, додавши до нього логічний номер: 1, як це показано в Лістингу 1. Додати додаткові IP-адреси можна, просто збільшуючи логічний номер інтерфейсу. (Зверніть увагу, що всі вищеописані дії необхідно виконувати, зареєструвавшись у системі, як користувач root.)


Лістинг 1. Додавання додаткового IP-адреси до існуючого мережевого інтерфейсу





ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0

Ядро Linux у системі, яку ви налаштовуєте, повинна підтримувати IP-алиасинг, тільки тоді ви зможете користуватися цією технологією. Якщо підтримки немає, то можливо буде потрібно перезібрати ядро. Щоб дізнатися, підтримує ядро IP-алиасинг чи ні, подивіться, чи є в системі файли / proc / net / alias *.


Налаштувавши новий IP-адресу, встановіть маршрути для нового інтерфейсу, як показано в Лістингу 2.


Лістинг 2. Додавання маршрутів для нового IP-адреси





route add -host 192.168.0.2 dev eth0:1

Після створення нового IP-адреси вам також буде потрібно дати йому власне ім'я в файлі / etc / hosts file, як показано в Лістингу 3.


Лістинг 3. Додавання імені для нового IP-адреси





192.168.0.1 primaryserver
192.168.0.2 secondaryserver

IP-алиасинг в системах Solaris


Для налаштування IP-аліасу в системі Solaris ™ вам буде потрібно трохи інший набір команд. Налаштуйте мережевий інтерфейс, як показано в Лістингу 4. Необхідно зареєструватися в системі користувачем root.


Лістинг 4. Додавання віртуального IP на Solaris





ifconfig eth0:1 plumb
ifconfig eth0:1 192.168.0.2 netmask 255.255.255.0
ifconfig eth0:1 up

Для того щоб віртуальний IP зберігся після перезавантаження, можна додати IP-адреса або ім'я хоста з / etc / hosts у файл the / etc/hostname.eth0: 1.


І на Linux, і на Solaris ви можете створити кілька віртуальних інтерфейсів до IP-адресами з різних підмереж на одній фізичній карті ethernet. Але, швидше за все, ви захочете цього уникнути, інакше може вийти вузьке місце між двома підмережами, і тоді може постраждати ефективність роботи всіх мережевих пристроїв на цих двох підмережах.


Налаштування декількох SSL-сайтів по IP-адресою


Після налаштування другий IP-адреси можете нарешті додати додаткові SSL-сайти, записавши IP-адреса в конфігураційний файл Web-сервера Apache, як показано в Лістингу 5.


Здійснилося! Ви тільки що побудували декілька Web-сайтів з підтримкою SSL на одному сервері і однієї фізичної мережевої карти.


Лістинг 5. Конфігурація для двох Web-сайтів з підтримкою SSL





<IfModule mod_ssl.c>
Listen 443
<VirtualHost 192.168.0.1:443>
DocumentRoot “/Web site1/docs”
ServerName Web site1.company.com:443
SSLEngine on
SSLCertificateFile ssl/site1.crt
SSLCertificateKeyFile ssl/site1.key
</VirtualHost>

<VirtualHost 192.168.0.2:443>
DocumentRoot “/Web site2/docs”
ServerName Web site2.company.com:443
SSLEngine on
SSLCertificateFile ssl/site2.crt
SSLCertificateKeyFile ssl/site2.key
</VirtualHost>

</IfModule>


Інші можливі застосування декількох SSL-сайтів


Оскільки трафік на нашому Web-сервері Apache не дуже великий, можливо, ми могли б використовувати цей реверсивний proxy-сервер для інших внутрішніх серверів з такими ж низькими запитами по трафіку.


З появою більш потужних серверів і мережевих карт з більшою пропускною здатністю ви також зможете використовувати цей метод для розміщення декількох віртуальних SSL-сайтів. Ви можете виступити в ролі ISP, що підтримує SSL-сайти замовників, потреби яких в пропускній здатності й обсязі трафіку невеликі, але яким необхідна можливість здійснювати безпечні торговельні транзакції на основі SSL. За допомогою IP-алиасинг ви можете розмістити Web-сайт з підтримкою SSL за однією IP-адресу та запропонувати інші сервіси, такі як Web-сервіси, на іншому. В якості інших можливостей можна розглянути установку основної та резервної систем, що працюють у безперебійному режимі, для яких потрібно дублювання, як системи QA і / або DR. Тепер, коли ви розумієте основну концепцію IP-алиасинг, у вас є велике поле діяльності.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*