Организация доступа к корпоративному HTTP-серверу под защитой С-Терра TLS Шлюза с балансировкой нагрузки с двусторонней аутентификацией.
Настоящий документ содержит описание способа совместного использования Продуктов компании ООО «С-Терра СиЭсПи» и Продуктов третьих производителей.
ООО «С-Терра СиЭсПи» осуществляет сопровождение настоящего сценария в части настроек Продуктов Компании. Упоминание наименований, продуктов, торговых марок третьих организаций исключительно неформально и не является поддержкой, рекомендацией либо рекламой. ООО «С-Терра СиЭсПи» не несет какой-либо ответственности в отношении работоспособности и использования этих Продуктов. Документ имеет статус вспомогательного материала, который может быть использован технологическими партнерами, компаниями-интеграторами, при разработке собственных решений.
Решения, разработанные на базе данного сценария, могут применяться в действующих сетях/системах только после тестовой и/или опытной эксплуатации.
Данный сценарий описывает пример организации защищенного доступа мобильных рабочих мест к корпоративному http-серверу. Трафик будет защищаться по протоколу TLS, и балансироваться между двумя С-Терра TLS Шлюз версии 4.3.
1. Для организации стенда потребуется:
Мобильное рабочее место - персональный компьютер, под управлением ОС Windows 7 или выше.
1.1. На этой станции должен быть установлен следующий перечень ПО:
1.1.1 Web-браузер, поддерживающий ГОСТ-алгоритмы шифрования. Например, Яндекс Браузер версии 20.12.3 и выше, или Chromium Gost версии 49 и выше. Детальные указания по настройке применимых браузеров можно получить в Руководстве Пользователя Программный комплекс С-Терра TLS шлюз ST версия 4.3.
1.1.2 Программный продукт КриптоПро CSP 5.0.12000.
2. Два ПАК С-Терра Шлюз версии 4.3 с установленным программным комплексом С-Терра TLS Шлюз версии 4.3.
3. HTTP сервер.
4. HAproxy - балансировщик трафика под управлением операционной системы Debian 11.
5. Для организации рабочего места Администратора персональный компьютер, под управлением ОС Windows 7 или выше.
5.1. Для передачи файлов на рабочем месте Администратора установлено свободно распространяемое ПО WinSCP.
5.2. Для подключения к управляемым устройствам по протоколу SSH установлен свободно распространяемый пакет утилит Putty.
5.3. Для выполнения настроек на С-Терра TLS Шлюз может использован Google Chrome или иной современный браузер.
5.4. Коммутационное оборудование.
6. Стенд может быть развернут в виртуальной среде. Перечень поддерживаемых виртуальных сред приведен в Руководстве Администратора С-Терра TLS Шлюз версии 4.3, в разделе «Требования к программно-аппаратным средствам и виртуальной среде».
Администратор, предварительно, должен ознакомиться: с Руководством Администратора С-Терра Шлюз версии 4.3, Руководством Администратора С-Терра TLS Шлюз версии 4.3, Руководством Пользователя С-Терра TLS Шлюз версии 4.3. Обладать знаниями в области сетевой информационной безопасности, иметь опыт работы с аналогичным оборудованием/программным обеспечением.
1. Два устройства С-Терра TLS шлюз.
1.1. Устройства С-Терра TLS Шлюз должны быть инициализированы в соответствии с разделом «Инициализация С-Терра TLS Шлюз» Руководства Администратора «Программный комплекс С-Терра TLS Шлюз. Версия 4.3».
2. Должен быть настроен центр выпуска сертификатов (удостоверяющий центр), далее УЦ. Устройство с именем cert-auth-srv на схеме.
2.1. Для выпуска цифровых сертификатов допускается использование встроенного в OC Windows Server 2008R2 (или новее) удостоверяющего центра совместно с сертифицированным СКЗИ «КриптоПро» CSP 5.0.
2.2. Для тестовых целей можно использовать тестовый УЦ от «КриптоПро» (веб-интерфейс: https://www.cryptopro.ru/certsrv/certrqxt.asp или https://testgost2012.cryptopro.ru/certsrv/certrqxt.asp).
Категорически запрещено использование тестового УЦ от «КриптоПро» в производственной (боевой) эксплуатации, так как в данном случае отсутствует возможность контролировать процесс выпуска сертификатов и, соответственно, процедуру аутентификации.
3. HTTP сервер для распространения списка отозванных сертификатов. Устройство с именем CRL_distribution_point на схеме. Если по объективным причинам использование СОС не представляется возможным или не требуется, то проверку CRL можно отключить.
Доставка нового списка отозванных сертификатов с удостоверяющего центра на сервер распространения списков отзыва должна происходить заблаговременно, до истечения срока действия предыдущего списка.
Между устройствами стенда должна быть обеспечена IP связность.
Рисунок 1
1. В центральном офисе размещены:
1.1. Центр выпуска сертификатов (сетевое имя - cert-auth-srv).
1.2. Два С-Терра TLS Шлюз (сетевые имена - s-terra-tls-gate1 и s-terra-tls-gate2).
1.3. Корпоративный http-сервер (сетевое имя - http-server).
1.4. Рабочее место Администратора (сетевое имя admin).
1.5. Балансировщик трафика (сетевое имя HAproxy).
2. Недоверенный сегмент сети эмулируется в стенде устройством router1.
3. Мобильное рабочее место организовано на базе персонального компьютера (сетевое имя mob-arm).
4. В результате выполнения приведенных настроек будет реализован доступ с мобильного рабочего места mob-arm к http-серверу. Это подключение будет защищено С-Терра TLS шлюзами. При построении соединения будет выполнена процедура двусторонней аутентификации.
Сертификат устройства mob-arm и сертификат устройства http-server должны быть подписаны сертификатом одного удостоверяющего центра.
5. Трафик, передаваемый между mob-arm и http-server, будет балансироваться между s-terra-tls-gate1 и s-terra-tls-gate2 на балансировщике HAproxy. В случае отключения одного из TLS-шлюзов трафик будет направлен на оставшийся С-Терра TLS шлюз.
Для успешного построения защищенного соединения необходимо обеспечить доступность актуального списка отозванных сертификатов с рабочей станции клиента. Этого можно добиться, своевременно помещая CRL на общедоступном ресурсе, как рассмотрено в настоящем сценарии (устройство CRL distribution point), или вручную загружая файл CRL в хранилище сертификатов рабочей станции клиента, в хранилище «Доверенные корневые центры сертификации» текущего пользователя.
1. Сетевому интерфейсу присвоить адрес из защищаемой сети 192.168.1.0 с маской 255.255.255.0. В настоящем сценарии - это 192.168.1.254.
1. Присвоить интерфейсу eth0 IP адрес - 172.16.1.1 c маской - 255.255.255.0.
2. Присвоить интерфейсу eth1 IP адрес - 172.16.100.1 и маской - 255.255.255.0.
3. Добавить маршрут в сеть 192.168.10.0/24 через адрес устройства HAproxy (172.16.1.2)
4. Разрешить прохождение IP трафика.
5. Настроить простой DNS-сервер, который обеспечит разрешение доменного имени защищаемого устройства http-server в адрес HAproxy для запросов из подсети 172.16.100.0/24. По схеме адрес устройства HAproxy - 172.16.1.2.
Настройка будет происходить локально при помощи консольного подключения.
Настройка может осуществляться и удаленно (по SSH), но исключительно по доверенному каналу связи. Доверенным каналом связи может считаться канал в пределах контролируемой зоны в случае отсутствия в нем нарушителя (в нашем примере это подсеть 192.168.1.0/24 для центрального офиса.
1. Войдите в CLI разграничения доступа. Для этого, после появления сообщения:
S-Terra administrative console
введите логин и пароль для CLI разграничения доступа:
Пользователь и пароль по умолчанию: administrator, s-terra. Обязательно смените пароль для пользователя administrator при помощи команды change user password.
login as: administrator
administrator's password:
administrator@sterragate]
2. Установите правильный тип терминала (для putty тип терминала xterm) и требуемую ширину (для удобства работы), например:
administrator@sterragate] terminal terminal-type xterm
administrator@sterragate] terminal width 150
3. Установите нужную временную зону и правильные дату и время на криптошлюзе, используя консоль linux bash. Для этого выполните следующие команды.
3.1. Войдите в linux bash.
administrator@sterragate] system
Entering system shell...
3.2. Установите нужную временную зону:
root@sterragate:~# dpkg-reconfigure tzdata
4. Установите правильное время и дату (формат - месяц/день/год часы:минуты):
root@sterragate:~# date -s "10/29/2021 11:55"
Fri 29 Oct 2021 11:55:00 AM MSK
5. Установите надежный пароль для пользователя root (под данным пользователем осуществляется доступ по SSH в linux bash):
root@sterragate:~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
6. Далее следует сменить enable пароль, задать сетевое имя шлюза, присвоить IP-адреса интерфейсам, создать маршрутные правила, создать запрос на сертификат защищаемого ресурса http-server.
7. Сетевые настройки и смену пароля enable можно выполнить в cs_console. Это приложение входит в состав С-Терра Шлюз. Для запуска, в командной строке требуется набрать команду cs_console:
root@sterragate:~# cs_console
sterragate>
7.1. Перейти в привилегированный режим:
sterragate >enable
Password:
Пароль enable, по умолчанию - «csp» без кавычек. Этот пароль следует сменить.
7.2. Перейти в глобальный конфигурационный режим:
sterragate #configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
sterragate (config)#
7.3. Сменить пароль enable:
sterragate(config)#enable password 5Yx6%spS
sterragate(config)#
7.4. Сменить сетевое имя:
sterragate(config)#hostname s-terra-tls-gate1
s-terra-tls-gate(config)#
7.5. Уточнить имена сетевых интерфейсов:
s-terra-tls-gate1(config)#do show interfaces
GigabitEthernet0/0 is down, line protocol is down
Hardware address is 000c.29f9.3493
MTU 1500 bytes
GigabitEthernet0/1 is down, line protocol is down
Hardware address is 000c.29f9.349d
MTU 1500 bytes
7.6. Перейти в конфигурационный режим интерфейса GigabitEthernet0/0:
s-terra-tls-gate1(config)#interface GigabitEthernet 0/0
s-terra-tls-gate1(config-if)#
7.7. Задать IP-адрес, поднять интерфейс, вернуться в глобальный конфигурационный режим:
s-terra-tls-gate1(config-if)#ip address 192.168.1.10 255.255.255.0
s-terra-tls-gate1(config-if)#no shutdown
s-terra-tls-gate1(config-if)#exit
7.8. Перейти в конфигурационный режим интерфейса GigabitEthernet0/1:
s-terra-tls-gate1(config)#interface GigabitEthernet 0/1
s-terra-tls-gate1(config-if)#
7.9. Задать IP-адрес, поднять интерфейс и вернуться в глобальный конфигурационный режим:
s-terra-tls-gate1(config-if)#ip address 192.168.10.10 255.255.255.0
s-terra-tls-gate1(config-if)#no shutdown
s-terra-tls-gate1(config-if)#exit
s-terra-tls-gate1(config)#
7.10. Задать, в качестве шлюза по умолчанию адрес интерфейса eth0 устройства HAproxy, выйти в глобальный конфигурационный режим и выполнить:
s-terra-tls-gate1(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.1
s-terra-tls-gate1(config)# exit
s-terra-tls-gate1#
7.11. Проверить настройки интерфейсов:
s-terra-tls-gate1#show interfaces
GigabitEthernet0/0 is up, line protocol is up
Hardware address is 000c.29f9.3493
Internet address is 192.168.1.10/24
MTU 1500 bytes
GigabitEthernet0/1 is up, line protocol is up
Hardware address is 000c.29f9.349d
Internet address is 192.168.10.10/24
MTU 1500 bytes
7.12. Проверить маршрутную информацию:
s-terra-tls-gate1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is 192.168.10.1 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 192.168.10.1
C 192.168.1.0/24 is directly connected, GigabitEthernet0/0
C 192.168.10.0/24 is directly connected, GigabitEthernet0/1
7.13. Выйти из cs_console:
s-terra-tls-gate1#exit
root@s-terra-tls-gate1:~#
7.14. Для успешной загрузки конфигурации С-Терра TLS Шлюз требуется обеспечить разрешение доменного имени защищаемого ресурса http-server в адрес этого устройства - 192.168.1.2. В рамках данного сценария, для упрощения, соответствие доменного имени и IP-адреса внесено в локальную базу доменных имен - в файл /etc/hosts. Допускается использование, для этой цели, отдельного DNS-сервера.
root@s-terra-tls-gate1:~# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.1.2 http-server.s-terra.ru
7.15. Создать запрос на сертификат для ресурса http-server
Для успешного построения защищенного соединения необходимо наличие в сертификате ресурса поля «Альтернативное Имя Субъекта», и его значение должно совпадать с доменным именем и значением CommonName поля «Субъект»
7.16. Утилита создания ключевой пары - tls_cert_mgr. Для запуска утилиты не требуется указывать полный путь к исполняемому файлу. В опциях к команде следует указать:
· -id - идентификатор сертификата; Этот идентификатор потребуется при импорте сертификата ресурса, для поиска запроса в базе С-Терра TLS Шлюз
· -subj - значение поля Субъект сертификата. Для успешного построения защищенного соединения CN должен содержать доменное имя защищаемого ресурса. Это имя будет задано ниже, в процессе создания защищаемого ресурса;
· -dns - альтернативное имя субъекта;
· -ps - набор параметров для шифрования. В настоящем сценарии будет использован набор TCB;
· -GOST_R341012_256 алгоритм ключа. В рамках сценария будет использован ГОСТ Р 34.10 2012 с ключом длиной 256 бит;
· -kcp - пароль на контейнер с секретными ключами.
Сразу после старта команды будет запущена биологическая инициализация датчика случайных чисел. Для успешной инициализации следует нажимать клавиши, которые будет запрашивать программа. После успешного создания запроса будет выведено соответствующее сообщение. Например:
root@s-terra-tls-gate1:~#tls_cert_mgr create -id http-server-cert -subj "CN=http-server.s-terra.ru" -dns http-server.s-terra.ru -ps TCB -GOST_R341012_256 -kcp "PaSsw0rd"
Generating a new CSR with ID "http-server-cert"...
Progress: [*** ]
Press key: Z
CSR with ID "http-server-cert" has been successfully created
1. Настройка подключения будет выполняться с рабочего места администратора - устройство «admin» на схеме, через web-интерфейс С-Терра TLS Шлюз.
2. Для получения доступа к web-интерфейсу запустить браузер и в адресной строке набрать URL устройства s-terra-tls-gate1: http://192.168.1.10.
3. Будет открыта страница логина (см. Рисунок 2).
Рисунок 2
4. Ввести в поля формы данные предустановленной административной учетной записи: Пользователь - superadmin, Пароль - s-terra и нажать кнопку «Войти».
5. Будет открыта «Информационная панель» (см. Рисунок 3).
Рисунок 3
На следующих шагах потребуется наличие сертификата доверенного удостоверяющего центра и списка отозванных сертификатов этого удостоверяющего центра (при его наличии). Их необходимо получить на УЦ и сохранить в файловой системе рабочего места администратора. Обратите внимание! Список отозванных сертификатов, при его наличии, должен быть подписан сертификатом данного удостоверяющего центра. Оба файла должны быть в формате PEM.
6. Для импорта сертификата удостоверяющего центра, в главном меню выбрать пункт «Доверенные сертификаты» (см. Рисунок 4).
Рисунок 4
6.1. Далее на открывшейся странице «Доверенные сертификаты» нажать кнопку «+Добавить» (см. Рисунок 5).
Рисунок 5
6.2. Будет открыто диалоговое окно «Добавление доверенного сертификата». В этом окне следует нажать кнопку «Выберите сертификат» (см. Рисунок 6).
Рисунок 6
6.3. В открывшемся диалоге выбрать файл сертификата удостоверяющего центра и нажать кнопку «Открыть» (см. Рисунок 7).
Рисунок 7
6.4. Те же действия требуется повторить с файлом списка отозванных сертификатов (при его наличии) и убедиться в том, что поля «Сертификат» и «Список отозванных сертификатов» корректно заполнены. Затем, переключатели «Активировать» «Включить автообновление CRL» и «Включить аутентификацию пользователя ресурса» перевести в правое положение. После выполнения этих действий нажать кнопку «Добавить» (см. Рисунок 8).
Рисунок 8
Важно! С-Терра TLS Шлюз поддерживает автоматическое обновление списков отозванных сертификатов. Если эта функциональность требуется, то активировать этот режим можно, переведя в правое положение переключатель «Включить автообновление CRL». Текущая версия С-Терра TLS Шлюз поддерживает работу со списками отозванных сертификатов только в формате PEM. Эту особенность следует учитывать при настройке режима публикации CRL.
6.5. Окно будет закрыто, таблица «Доверенные сертификаты» дополнена записью об импортированном сертификате удостоверяющего центра. Убедимся в том, что значки, в колонках «Статус» «Автообновление» и «Аутентификация», зеленые и имеют записи «Активен», «Активно» и «Включена», соответственно (см. Рисунок 9).
Рисунок 9
6.6. Далее следует создать защищаемый ресурс. В рамках настоящего сценария - это устройство http-server. Для защиты взаимодействий между mob-arm и http-server будет построено защищенное соединение. В процессе построения этого соединения устройства mob-arm и С-Терра TLS шлюзы должны будут обменяться сертификатами. Для того чтобы обеспечить такую возможность следует выпустить, и импортировать на С-Терра TLS Шлюз, сертификат ресурса.
6.7. Первым шагом надо зарегистрировать сертификат ресурса http-server. Для этого, в главном меню, в разделе «Сертификаты», нужно выбрать пункт «Сертификаты ресурсов» (см. Рисунок 10).
Рисунок 10
6.8. Произойдет переход на одноименную страницу. Нажать кнопку «+Добавить» (см. Рисунок 11).
Рисунок 11
6.9. Откроется диалоговое окно «Регистрация сертификата ресурса» (см. Рисунок 12).
Рисунок 12
6.10. В поле «Название сертификата» следует вписать идентификатор сертификата ресурса и нажать кнопку «Проверить».
Запрос на этот сертификат был создан ранее (см. пункт 7.16). Идентификатор сертификата указан, в опции -id, в команде создания запроса на сертификат.
В результате проверки созданный запрос будет найден и выведен в поле «Запрос на получение сертификата», в формате base64 (см. Рисунок 13).
Рисунок 13
6.11. Этот запрос следует скопировать в буфер обмена, передать на удостоверяющий центр, выпустить сертификат и доставить файл сертификата в файловую систему рабочего места администратора.
С-Терра TLS шлюз поддерживает работу только с сертификатами в формате PEM. При получении сертификата на УЦ следует учесть эту особенность.
6.12. Кроме этого, получить файл с текстом запроса на сертификат можно непосредственно из файловой системы С-Терра TLS Шлюз. Файл с запросом сохраняется в каталоге /opt/TLSGate/etc/ssl/certs/resource/<ID>/. Имя файла и конечной папки совпадает с id запроса, расширение файла - csr.pem. Для этой цели можно использовать, например, свободно распространяемую программу WinSCP (см. Рисунок 14).
Рисунок 14
6.13. Следующим шагом следует зарегистрировать полученный сертификат. Для этого, в окне «Регистрация сертификата ресурса», надо нажать кнопку «Browse». В открывшемся диалоге выбрать файл сертификата ресурса и нажать кнопку «Открыть» (см. Рисунок 15).
Рисунок 15
6.14. Для завершения регистрации, в окне «Регистрация сертификата ресурса», нажать кнопку «Установить». Окно «Установка сертификата» будет закрыто, таблица «Сертификаты ресурсов» дополнена записью о новом сертификате (см. Рисунок 16).
Рисунок 16
7. Убедиться, что функция проверки сертификатов ресурсов по списку отзыва сертификатов включена. Для этого в главном меню выбрать пункт «Настройки» (см. Рисунок 17)
Рисунок 17
8. Будет открыта страница с общими настройками. На этой странице, в разделе «Настройки», флаг «Включить проверку CRL пользовательских УЦ» должен быть установлен (см. Рисунок 18)
Рисунок 18
9. Далее следует перейти к процедуре создания защищаемого ресурса. Для этого, в главном меню, в разделе «Ресурсы», надо выбрать пункт «Список ресурсов» (см. Рисунок 19).
Рисунок 19
9.1. Будет открыта страница «Ресурсы» (см. Рисунок 20).
Рисунок 20
9.2. На открывшейся странице, в заголовке таблицы «Ресурсы» нажать кнопку «+Добавить» (см. Рисунок 21).
Рисунок 21
9.3. Откроется диалоговое окно «Добавление ресурса» (см. Рисунок 22).
Рисунок 22
9.4. В поле «Название» требуется вписать имя нового ресурса.
9.5. В рамах настоящего сценария предполагается построение защищенного соединения с использованием ГОСТ-алгоритмов, поэтому раздел «Криптонаборы» следует оставить без изменений.
9.6. В поле «Доменное имя ресурса на шлюзе» следует вписать доменное имя, под которым этот ресурс должен быть доступен для mob-arm. В данном случае — это http-server.s-terra.ru.
Важно. Значение этого поля должно полностью совпадать со значением CommonName в поле Субъект сертификата ресурса и со значением поля «Альтернативное Имя Субъекта»
9.7. В поле «URL защищаемого ресурса» можно указать доменное имя защищаемого ресурса или его IP-адрес. В данном случае будет использовано доменное имя устройства http-server: http://http-server.s-terra.ru.
Важно! В момент применения конфигурации устройство http-server должно быть доступно с обоих С-Терра TLS шлюзов под этим именем. В противном случае конфигурация загружена не будет.
9.8. В разделе «Прикрепленные сертификаты» нажать кнопку «+» (см. Рисунок 23).
Рисунок 23
9.9. Будет открыто диалоговое окно «Выбор сертификатов». Следует установить флаг напротив записи о сертификате http-server и нажать кнопку «Сохранить» (см. Рисунок 24).
Рисунок 24
9.10. Раздел «Прикрепленные сертификаты» будет дополнен записью о сертификате создаваемого ресурса (см. Рисунок 25).
Рисунок 25
9.11. Последним шагом в процедуре создания ресурса следует перевести в правое положение переключатель в поле «Название» и нажать кнопку «Добавить» (см. Рисунок 26).
Рисунок 26
9.12. Окно будет закрыто, таблица «Ресурсы» дополнена записью о новом ресурсе (см. Рисунок 27).
Рисунок 27
9.13. При этом, для созданного ресурса будет автоматически выбран тип аутентификации «Двусторонняя». Убедиться в этом можно кликнув название ресурса в таблице. В окне «Детали ресурса» поле «Аутентификация» будет иметь значение «Двусторонняя» (см. Рисунок 28).
Рисунок 28
10. Далее следует создать учетную запись пользователя, которому должен быть предоставлен доступ к созданному ресурсу. Для этого, в главном меню, выбрать пункт «Список пользователей» (см. Рисунок 29).
Рисунок 29
10.1. На открывшейся странице «Список пользователей», в заголовке таблицы нажать кнопку «+Добавить» (см. Рисунок 30)
Рисунок 30
10.2. В открывшемся диалоговом окне «Добавление пользователя» заполнить поля по образцу и нажать кнопку «Добавить» (см. Рисунок 31)
10.3. Идентификатор пользователя будет использован как значение поля CN Субъекта сертификата пользователя.
Пароль пользователя должен быть длинной не менее 8-ми символов, может состоять из печатных символов ASCII: латинских букв (a-z, A-Z), цифр (0-9), должен содержать, как минимум, по одной прописной и заглавной латинской букве и одну цифру, содержать хотя бы один специальный символ #?!@$%^&*-).
В идентификаторе пользователя допускается использование: букв латинского алфавита, цифр, символа «-» минус и символа «_» нижнее подчеркивание. Идентификатор чувствителен к регистру, то есть mob-arm-user и MOB-ARM-USER — это два разных идентификатора.
Рисунок 31
10.4. Таблица «Список пользователей» будет дополнена новой записью (см. Рисунок 32).
Рисунок 32
11. Создать группу пользователей. Для этого в главном меню выбрать пункт «Группы пользователей» (см. Рисунок 33)
Рисунок 33
11.1. На открывшейся странице, в заголовке таблицы «Группы пользователей» нажать кнопку «+Добавить» (см. Рисунок 34)
Рисунок 34
11.2. В открывшемся диалоговом окне «Добавление группы пользователей» заполнить поля «Имя группы», «Описание» и нажать кнопку «Добавить» (см. Рисунок 35)
В имени группы допускается использование: букв латинского алфавита, цифр, символа «-» минус и символа «_» нижнее подчеркивание. Имя группы чувствительно к регистру, то есть two-way-auth-http-server-access и TWO-WAY-AUTH-HTTP-SERVER-ACCESS - это два разных имени.
Рисунок 35
11.3. Таблица «Группы пользователей» будет дополнена новой записью (см. Рисунок 36).
Рисунок 36
11.4. Для добавления пользователя в созданную группу кликнуть в таблице «Группы пользователей» по имени созданной группы. Будет открыта страница «Общие детали группы». В разделе «Пользователи» нажать кнопку «+» (см. Рисунок 37)
Рисунок 37
11.5. В открывшемся диалоговом окне «Выбор пользователей» установить флаг напротив ранее созданной учетной записи mob-arm-user и нажать кнопку «Сохранить» (см. Рисунок 38)
Рисунок 38
11.6. Раздел «Пользователи» будет дополнен новой записью (см. Рисунок 39).
Рисунок 39
11.7. В разделе «Права доступа», в группе «Двусторонняя аутентификация» установить флаг «Разрешить доступ к ресурсу» (см. Рисунок 40)
Рисунок 40
11.8. Для сохранения изменений нажать кнопку «Сохранить» в заголовке таблицы (см. Рисунок 41)
Рисунок 41
12. Следующим этапом следует создать каталог ресурсов. Для этого в главном меню выбрать пункт «Каталоги ресурсов» (см. Рисунок 42).
Рисунок 42
12.1. Будет открыта одноименная страница. На ней, в оглавлении таблицы, нужно нажать кнопку «+Добавить». (см. Рисунок 43).
Рисунок 43
12.2. Откроется диалоговое окно «Добавление каталога ресурсов» (см. Рисунок 44).
Рисунок 44
12.3. В поле «Название каталога» следует вписать имя нового каталога, выбрать тип аутентификации «Двусторонняя», заполнить поле «Описание» и нажать кнопку «Добавить» (см. Рисунок 45).
Рисунок 45
В названии каталога допускается использование: букв латинского алфавита, цифр, символа «-» минус и символа «_» нижнее подчеркивание. Название каталога чувствительно к регистру, то есть http-server и HTTP-SERVER - это два разных названия.
12.4. Таблица будет дополнена новой записью (см. Рисунок 46).
Рисунок 46
12.5. Далее потребуется выполнить настройки созданного каталога. Для этого следует кликнуть по имени каталога http-server. Откроется страница настроек каталога (см. Рисунок 47).
Рисунок 47
12.6. Убедиться в том, что в поле «Аутентификация» раздела «Общие детали каталога» установлено значение «Двусторонняя» (см. Рисунок 48 )
Рисунок 48
12.7. Для создания связи созданного каталога и ресурса требуется добавить защищаемый ресурс. Для этого, в разделе «Ресурсы», нужно нажать кнопку «+» (см. Рисунок 49).
Рисунок 49
12.8. В открывшемся диалоговом окне установить флаг напротив имени нужного ресурса. В данном случае это http-server, и нажать кнопку «Сохранить». (см. Рисунок 50).
Рисунок 50
12.9. Раздел «Ресурсы» будет дополнен записью о целевом ресурсе (см. Рисунок 51).
Рисунок 51
12.10.Далее следует добавить группу пользователей, которые будут иметь доступ к этому ресурсу. Для этого, в разделе «Группы пользователей ресурса», следует нажать кнопку «+» (см. Рисунок 52).
Рисунок 52
12.11.В открывшемся диалоговом окне установить флаг напротив названия целевой группы. В данном случае — это two_way_auth_http_server_access. Нажать кнопку «Сохранить». (см. Рисунок 53).
Рисунок 53
12.12.Окно будет закрыто, список групп пользователей будет дополнен новой записью (см. Рисунок 54).
Рисунок 54
12.13.Для сохранения информации о созданном каталоге следует нажать кнопку «Сохранить» в заголовке страницы (см. Рисунок 55).
Рисунок 55
13. Далее следует применить созданную конфигурацию. Для этого надо перейти на страницу «Информационная панель», выбрав в главном меню одноименный пункт (см. Рисунок 56).
Рисунок 56
14. На открывшейся странице нажать кнопку «Применить конфигурацию» (см. Рисунок 57):
Рисунок 57
Важно! При применении новой конфигурации все имеющиеся, на данный момент, защищенные соединения будут закрыты.
15. Если при настройке не было допущено ошибок статус защищаемого ресурса автоматически сменится на «Активен». Проверить это можно в разделе «Список ресурсов» (см.Рисунок 58).
Рисунок 58
16. На этом настройка устройства s-terra-tls-gate1 завершена.
1. На интерфейсе eth0 должен быть назначен адрес 192.168.1.20 с маской 24 бита
2. На интерфейсе eth1 - 192.168.10.20, также, с маской 24 бита
3. Далее следует скопировать из файловой системы s-terra-tls-gate1 в файловую систему s-terra-tls-gate2 контейнер с ключами сертификата s-terra-tls-gate1 и хранилище паролей к контейнерам.
Важно! При копировании следует соблюдать все меры предосторожности, исключающие дискредитацию или утечку переносимых файлов.
3.1. Скопировать файлы контейнера:
root@s-terra-tls-gate2:~# scp root@192.168.1.10:/opt/TLSGate/var/s-terra/containers/http-server-cert* /opt/TLSGate/var/s-terra/containers/
root@192.168.1.10's password:
http-server-cert.p15 100% 1105 1.3MB/s 00:00
http-server-cert.p15.copy 100% 1105 1.6MB/s 00:00
root@s-terra-tls-gate2:~#
3.2. Скопировать файл хранилища паролей и файл с контрольной суммой:
root@s-terra-tls-gate2:~# scp root@192.168.1.10:/opt/TLSGate/etc/stengine/pin_storage.json* /opt/TLSGate/etc/stengine/
root@192.168.1.10's password:
pin_storage.json 100% 384 408.0KB/s 00:00
pin_storage.json.hash 100% 65 76.3KB/s 00:00
root@s-terra-tls-gate2:~#
4. Остальные настройки s-terra-tls-gate2 полностью повторяют настройки s-terra-tls-gate1.
1. На интерфейсах устройства назначить ip-адреса.
1.1. На интерфейсе eth0 назначить адрес 192.168.10.1 с маской 24 бита. На интерфейсе eth1 - 172.16.1.2, также, с маской 24 бита.
1.2. Установить пакет haproxy:
root@HAproxy:~# apt-get install haproxy
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
vim-haproxy haproxy-doc
The following NEW packages will be installed:
haproxy
0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded.
Need to get 0 B/1,899 kB of archives.
After this operation, 3,829 kB of additional disk space will be used.
Selecting previously unselected package haproxy.
(Reading database ... 33810 files and directories currently installed.)
Preparing to unpack .../haproxy_2.2.9-2+deb11u3_amd64.deb ...
Unpacking haproxy (2.2.9-2+deb11u3) ...
Setting up haproxy (2.2.9-2+deb11u3) ...
Created symlink /etc/systemd/system/multi-user.target.wants/haproxy.service → /lib/systemd/system/haproxy.service.
Processing triggers for rsyslog (8.2102.0-2) ...
Processing triggers for man-db (2.9.4-2) ...
root@HAproxy:~#
1.3. Обновить haproxy до последней версии:
root@HAproxy:~# curl https://haproxy.debian.net/bernat.debian.org.gpg \
| gpg --dearmor > /usr/share/keyrings/haproxy.debian.net.gpg
root@HAproxy:~# echo deb "[signed-by=/usr/share/keyrings/haproxy.debian.net.gpg]" \
http://haproxy.debian.net bullseye-backports-2.5 main \
> /etc/apt/sources.list.d/haproxy.list
Для обеспечения успешной установки необходимо обеспечить доступ к сети Интернет.
1.4. Затем выполнить команды:
root@HAproxy:~# apt-get update
root@HAproxy:~# apt-get install haproxy=2.5.\*
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Selected version '2.5.5-1~bpo11+1' (HAProxy 2.5:bullseye-backports-2.5 [amd64]) for 'haproxy'
Suggested packages:
vim-haproxy haproxy-doc
The following packages will be upgraded:
haproxy
1 upgraded, 0 newly installed, 0 to remove and 15 not upgraded.
Need to get 0 B/1,946 kB of archives.
After this operation, 311 kB of additional disk space will be used.
Reading changelogs... Done
(Reading database ... 33976 files and directories currently installed.)
Preparing to unpack .../haproxy_2.5.5-1~bpo11+1_amd64.deb ...
Unpacking haproxy (2.5.5-1~bpo11+1) over (2.2.9-2+deb11u3) ...
Setting up haproxy (2.5.5-1~bpo11+1) ...
Installing new version of config file /etc/logrotate.d/haproxy ...
Processing triggers for rsyslog (8.2102.0-2) ...
Processing triggers for man-db (2.9.4-2) ...
root@HAproxy:~#
1.5. Убедиться, что установлена новая версия пакета haproxy:
root@HAProxy:~# dpkg -l | grep haproxy
ii haproxy 2.5.1-1~bpo11+1 amd64 fast and reliable load balancing reverse proxy
root@HAProxy:~#
1.6. Добавить необходимые настройки в конфигурационный файл /etc/haproxy/haproxy.cfg.
1.7. Изменить значения в секции defaults:
1.7.1 оption tcplog - разрешить расширенное протоколирования tcp-подключений с состояниями и таймаутами сессий.
1.7.2 timeout connect 500 - установить максимальное время ожидания успешной попытки подключения к серверу в 500 миллисекунд
1.7.3 timeout client 500 - установить максимальное время бездействия клиента в 500 миллисекунд.
1.7.4 Timeout server 500 - установить максимальное время ожидания данных, остающихся в выходном буфере.
1.7.5 Настройки, касающиеся SSL:
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
не используются и их нужно удалить.
1.8. В конец файла добавить две секции: frontend и backend. В секции frontend должны быть определены адреса и порты, к которым могут подключаться клиенты. В секции backend - группа серверов, между которыми требуется обеспечить балансировку.
1.8.1 В секцию frontend добавить:
frontend http-server.s-terra.ru
bind *:443
mode tcp
default_backend sterra_tls_gates
где:
1.8.1.1 http-server.s-terra.ru - имя секции
1.8.1.2 bind *:443 - определяет адрес и номер порта прослушивания. В данном случае будет прослушиваться порт 443 для всех ip-адресов
1.8.1.3 mode tcp - определить протокол
1.8.1.4 default_backend sterra_tls_gates - определить имя секции backend
1.8.2 В секцию backend добавить:
backend sterra_tls_gates
mode tcp
balance roundrobin
server s-terra-tls-gate1 192.168.10.10:4443 check
server s-terra-tls-gate2 192.168.10.20:4443 check
1.8.2.1 mode tcp - определить протокол
1.8.2.2 balance roundrobin - указать алгоритм балансировки. В данном случае использован алгоритм roundrobin, Каждый сервер используется по очереди, в зависимости от веса. Это самый плавный и честный алгоритм, когда время обработки сервера остается равномерно распределенным. Этот алгоритм является динамическим, это означает, что веса серверов могут корректироваться на лету. Также следует упомянуть алгоритм leastconn. Этот алгоритм обеспечивает приоритетное построение соединения с сервером с наименьшим количеством подключений.
1.8.2.3 Более детальную информацию об алгоритмах HAproxy можно получить на странице документации проекта: http://cbonte.github.io/haproxy-dconv/2.5/configuration.html
1.8.2.4 server s-terra-tls-gate-1 192.168.10.10:4443 check - указать s-terra-tls-gate1 как backend-сервер.
1.8.2.5 server s-terra-tls-gate-2 192.168.10.20:4443 check - указать s-terra-tls-gate2 как backend-сервер.
1.8.2.6 check - включить проверку доступности сервера. Если параметр указан, то HAproxy, каждые две секунды, будет отправлять tcp-пакеты на адрес сервера. Если на три последовательных запроса ответ получен не будет - сервер будет считаться недоступным и будет исключен из механизма балансировки. Отправка проверочных пакетов будет продолжаться. После получения последовательно двух ответов от сервера - сервер будет считаться работоспособным. Детальную информацию об этом параметре можно получить на сайте с документацией HAproxy: https://cbonte.github.io/haproxy-dconv/2.5/configuration.html#5.2-check
1.8.2.7 После внесения изменений в конфигурационный файл необходимо рестартовать haproxy-сервис:
root@HAproxy:~# systemctl restart haproxy.service
root@HAproxy:~#
1.8.2.8 На этом настройка устройства HAproxy завершена.
1. Предварительно, следует задать:
1.1. IP-адрес - 172.16.100.2 с маской 255.255.255.0
1.2. Адрес шлюза по умолчанию - это адрес интерфейса eth1устройства router1 - 172.16.100.1
1.3. Адрес сервера доменных имен - это адрес интерфейса eth1 устройства router1 - 172.16.100.1
На следующих шагах потребуется наличие сертификата доверенного удостоверяющего центра. Сертификат необходимо получить на УЦ и сохранить в файловой системе мобильного рабочего места.
2. Затем, следует выпустить сертификат данного пользователя.
Важно. Выпускаемый сертификат, в поле CN, должен содержать имя учетной записи этого устройства. В данном случае — это «mob-arm-user». Поле «Использование ключа» должно содержать значение clientAuth (OID 1.3.6.1.5.5.7.3.2).
3. Для создания запроса на сертификат допускается использование утилиты cryptcp производства компании КриптоПро. Утилита доступна на сайте производителя после регистрации.
4. В команде создания запроса на сертификат следует указать:
· Использовать ключ для работы с подписями, опция -sg
· Задать значение поля Субъект - опция -dn в формате «ключ=значение,»
· При необходимости указать, что контейнер с секретными ключами должен быть помечен как экспортируемый, опция -exprt
· Однозначно задать индекс криптопровайдера опция -provtype, для КриптоПро CSP это - 80
· Задать имя контейнера, в данном случае - это mob-arm-user-cont, опция -cont
· Установить, что следует использовать контейнер пользователя, опция -ku
· Задать значение поля «Улучшенный ключ». Для опции -certusage указать значение clientAuth, в форме OID (1.3.6.5.5.7.3.2)
5. Для выполнения команды нужно запустить командный интерпретатор, перейти в каталог, в котором хранится утилита crypcp, и в командной строке выполнить команду:
cryptcp.x64.exe -createrqst -sg -dn "C=RU,ST=Moscow=S-Terra,CN=mob-arm-user" -exprt -provtype 80 -cont mob-arm-user-cont mob-arm-user.csr -ku -certusage 1.3.6.1.5.5.7.3.2
6. После запуска команды будет открыто окно для выбора носителя, в который должен быть сохранен контейнер с секретными ключами. Рекомендуется выбрать «Реестр». Нажать кнопку «ОК» (см. Рисунок 59).
Рисунок 59
7. Далее будет открыто окно инициализации БиоДСЧ. В этом окне следует перемещать курсор мыши или нажимать случайно выбранные клавиши до полного заполнения прогресс-бара. После успешной инициализации окно закроется автоматически (см. Рисунок 60).
Рисунок 60
8. В следующем окне требуется задать надежный пароль к контейнеру с секретными ключами и нажать кнопку ОК (см. Рисунок 61).
Рисунок 61
9. Окно будет закрыто. В командном интерпретаторе будет выведен ErrorCode. Он должен быть равен 0. Например:
c:\tools>cryptcp.x64.exe -createrqst -sg -dn "C=RU,ST=Moscow=S-Terra,CN=mob-arm-user" -exprt -provtype 80 -cont mob-arm-user-cont mob-arm-user.csr -ku -certusage 1.3.6.1.5.5.7.3.2
CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2021.
Утилита командной строки для подписи и шифрования файлов.
Запрос успешно создан и сохранен в файле.
[ErrorCode: 0x00000000]
c:\tools>
10. Файл запроса будет создан, в данном случае, в текущем каталоге:
c:\tools>type mob-arm-user.csr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIICWTCCAgYCAQAwRzEVMBMGA1UEAwwMbW9iLWFybS11c2VyMRAwDgYDVQQKDAdT
LVRlcnJhMQ8wDQYDVQQIDAZNb3Njb3cxCzAJBgNVBAYTAlJVMGYwHwYIKoUDBwEB
AQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIDQwAEQEw38l8PGff1+jNrtHeaRHZulfcl
MxktJ5l2BphOc82RVtRa8wN36yqt6u/+f3826TАМz+rAwFkRTvfrDsvo2UOgggFO
MBoGCisGAQQBgjcNAgMxDBYKNi4yLjkyMDAuMjBJB3krBgEEAYI3FRQxPDA6AgEF
DA9ERVNLVE9QLUw1UlRFM0YME0RFU0tUT1AtTDVSVEUzRlxyYXkMD2NyeXB0Y3Au
eDY0LmV4ZTBTBgkqhkiG9w0BCQ4xRjBEMA4GA1UdDwEB/wQEAwIGwDATBgNVHSUE
DDAKBggrBgEFBQcDAjAdBgNVHQ4EFgQU4eN5g9Ut4СUQ2VGDDycVTUY2MM8wgY8G
CisGAQQBgjcNAgIxgYAwfgIBAh52AEMAcgB5AHAAdABvAC0AUAByAG8AIABHAE8A
UwBUACAAUgAgADMANAAuADEAMAAtADIAMAAxADIAIABDAHIAeQBwAHQAbwBnAHIA
YQBwAGgAaQBjACAAUwBlAHIAdgBpAGMAZQAgAFAAcgBvAHYAaQBkAGUAcgMBADAK
BggqhQMHAQEDAgNBAHLvFolHoLO3jCwrClnED4X5vqbYGYPvqyLAlQk8sRRL8EEG
d7dpCq6xSkPfqONZlaJXAGRoWUFJCBYcVdeRCw8=
-----END NEW CERTIFICATE REQUEST-----
c:\tools>
11. Этот запрос следует передать на УЦ и выпустить сертификат для данного пользователя.
Допускается выпуск сертификата и контейнера с секретными ключами на машине администратора в формате pfx, с последующей передачей этого контейнера на рабочее место пользователя по доверенному каналу.
12. Полученный сертификат следует импортировать в хранилище сертификатов Chromium Gost. Для этого, в адресной строке Chromium Gost, нужно набрать адрес: chrome://settings/security. Нажать Enter. На открывшейся старице «Безопасность» выбрать пункт «Настроить сертификаты Управление настройками и сертификатами HTTPS/SSL» (см. Рисунок 62).
Рисунок 62
13. Будет открыто диалоговое окно «Сертификаты». Следует нажать кнопку «Импорт» (см. Рисунок 63).
Рисунок 63
14. Будет запущен мастер импорта сертификатов. В первом окне требуется нажать кнопку «Далее» (см. Рисунок 64).
Рисунок 64
15. Будет открыто следующее окно мастера импорта сертификатов (см. Рисунок 65).
Рисунок 65
16. В этом окне нужно нажать кнопку «Обзор». В открывшемся диалоге выбора файлов выбрать файл сертификата и нажать кнопку «Открыть» (см. Рисунок 66).
Рисунок 66
17. Диалог выбора файлов будет закрыт, поле «Имя файла» будет заполнено путем к файлу сертификата (см. Рисунок 67). Нажать кнопку «Далее».
Рисунок 67
18. В следующем окне мастера надо выбрать хранилище для размещения сертификата. Следует выбрать «Личное» и нажать кнопку «Далее» (см. Рисунок 68).
Рисунок 68
19. В завершении мастер импорта выведет в отдельном окне сводную информацию (см. Рисунок 69).
Рисунок 69
Следует нажать кнопку «Готово».
20. Будет открыто окно с запросом пароля к контейнеру с секретными ключами. Этот пароль был задан при генерации запроса на сертификат (см. Рисунок 61 ). Следует ввести этот пароль и нажать кнопку «OK» (см. Рисунок 70)
Рисунок 70
21. Окно мастера будет закрыто, и выведено сообщение об успешном импорте сертификата (см. Рисунок 71).
Рисунок 71
22. Завершить импорт нажав кнопку «ОК». Убедиться в том, что список сертификатов, размещенных в хранилище «Личные», дополнен новым сертификатом (см. Рисунок 72). Нажать кнопку «Закрыть». Сертификат пользователя успешно импортирован.
Рисунок 72
23. Импортировать сертификат удостоверяющего центра в хранилище доверенных сертификатов. Этот сертификат был ранее получен на УЦ и сохранен в файловой системе устройства mob-arm.
24. Для импорта сертификата нужно открыть каталог, в который был сохранен сертификат УЦ, и дважды кликнуть по имени файла. Сертификат будет открыт специализированным приложением операционной системы. В открывшемся окне следует нажать на кнопку «Установить сертификат». (см. Рисунок 73).
Рисунок 73
25. Откроется окно мастера импорта сертификатов. Убедиться в том, что переключатель «Расположение хранилища» находится в состоянии «Текущий пользователь» и нажать кнопку «Далее» (см. Рисунок 74)
Рисунок 74
26. В следующем окне нужно установить переключатель в положение «Поместить все сертификаты в следующее хранилище». Нажать кнопку «Обзор», которая станет доступной (см. Рисунок 75).
Рисунок 75
27. Будет открыто окно «Выбор хранилища сертификата». В дереве хранилищ надо выбрать хранилище «Доверенные корневые центры сертификации» и нажать кнопку «ОК» (см. Рисунок 76).
Рисунок 76
28. Окно выбора хранилища будет закрыто. Поле «Хранилище сертификатов» заполнено названием выбранного хранилища. Для продолжения нажать кнопку «Далее» (см. Рисунок 77).
Рисунок 77
29. Откроется окно под названием «Завершение мастера импорта сертификатов». Для завершения импорта нужно нажать кнопку «Готово» (см. Рисунок 78).
Рисунок 78
30. Мастер завершит свою работу сообщением об успешном импорте (см. Рисунок 79).
Рисунок 79
31. Следует закрыть окно сообщения нажав кнопку «ОК» и закрыть приложение для просмотра сертификатов.
32. На этом настройка устройства mob-arm завершена.
1. Устройство http-server, не требует специфических настроек.
1.1. На интерфейсе устройства должен быть настроен корректный IP-адрес, 192.168.1.2 с маской 24 бита.
2. В рамках данного сценария использован простой(plain) http-сервер. На главной странице опубликована документация С-Терра TLS шлюз.
Проверку работоспособности следует выполнять после завершения настройки всех устройств стенда. Для проверки необходимо получить доступ к странице http-server с устройства mob-arm.
1. Для этого нужно запустить Chromium Gost, в адресной строке указать доменное имя защищаемого ресурса и выделенный порт: http-server.s-terra.ru:443. Нажать ввод.
2. Будет открыто окно «Выбор сертификата». Необходимо выделить строку с описанием сертификата устройства mob-arm-user и нажать кнопку «ОК» (см. Рисунок 80).
Рисунок 80
3. Будет открыто окно «Аутентификация - КриптоПро CSP». В поле «Введите пароль» следует ввести пароль к контейнеру с секретными ключами сертификата. Существует возможность отключить появление этого окна при обращении к защищаемому ресурсу. Если это допускается, то можно установить флаги «Сохранить пароль в приложении» и «Сохранить пароль в системе». Для продолжения нажать кнопку «ОК» (см. Рисунок 81).
Рисунок 81
4. Будет открыта главная страница http-server (см. Рисунок 82).
Рисунок 82
5. Можно убедиться в том, что защищенное соединение построено успешно. Для этого кликом правой кнопки мыши по иконке «замок» в адресной строке Chromium Gost нужно вызвать контекстное меню (см. Рисунок 83).
Рисунок 83
6. Далее в меню следует выбрать пункт «Безопасное подключение» -> «Действительный сертификат» (см. Рисунок 84).
Рисунок 84
7. Полученный от С-Терра TLS Шлюз сертификат будет открыт специализированным приложением Windows (см. Рисунок 85).
Рисунок 85
8. В открывшемся окне перейти на вкладку «Состав». Можно убедиться в том, что значение поля «Субъект» соответствует доменному имени ресурса назначения (см.Рисунок 86).
Рисунок 86
9. Далее перейти на вкладку «Путь сертификации» (см. Рисунок 87). На этой вкладке можно увидеть структуру подчинённости сертификатов.
Рисунок 87
10. На устройстве admin открыть страницы «Информационная панель» s-terra-tls-gate1 и s-terra-tls-gate2. Убедиться, что счетчик «Активные подключения» равен 1 на обоих шлюзах. (см. Рисунок 88 и Рисунок 89)
Рисунок 88
Рисунок 89
11. Открыть ssh-соедиения с обоими С-Терра TLS Шлюзами, в разных окнах. В обоих окнах открыть лог-файла Nginx-сервера, выполнив команду:
tail -f /var/log/tlsgate/nginx/accept.log | grep 192.168.10.1
12. Несколько раз, с интервалом в 2-3 секунды, обновить страницу браузера на устройстве mob-arm.
13. Убедиться в том, что подключение к С-Терра TLS Шлюзам происходит поочередно:
root@s-terra-tls-gate1:~# tail -f /var/log/tlsgate/nginx/accept.log | grep 192.168.10.1
Mar 15 13:03:45 s-terra-tls-gate1 nginx_acc: {"client":{"addr":"192.168.10.1","auth_cert":{"status":"SUCCESS","subj":"CN=mob-arm-user,ST=Moscow=S-Terra,C=RU"},"agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 (Chromium GOST)"},"encryption":{"protocol": "TLSv1.2","cipher":"GOST2012-KUZNYECHIK-KUZNYECHIKOMAC"},"request":{"content":"GET / HTTP/1.1","status":"200","bytes_sent":"410376","referer":""},"resource":{"host":"http-server.s-terra.ru","port":"4443"},"time":{"local":"15/Mar/2022:13:03:45 +0300"}}
Mar 15 13:03:57 s-terra-tls-gate1 nginx_acc: {"client":{"addr":"192.168.10.1","auth_cert":{"status":"SUCCESS","subj":"CN=mob-arm-user,ST=Moscow=S-Terra,C=RU"},"agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 (Chromium GOST)"},"encryption":{"protocol": "TLSv1.2","cipher":"GOST2012-KUZNYECHIK-KUZNYECHIKOMAC"},"request":{"content":"GET / HTTP/1.1","status":"200","bytes_sent":"410408","referer":""},"resource":{"host":"http-server.s-terra.ru","port":"4443"},"time":{"local":"15/Mar/2022:13:03:57 +0300"}}
root@s-terra-tls-gate2:~# tail -f /var/log/tlsgate/nginx/accept.log | grep 192.168.10.1
Mar 15 13:03:51 s-terra-tls-gate2 nginx_acc: {"client":{"addr":"192.168.10.1","auth_cert":{"status":"SUCCESS","subj":"CN=mob-arm-user,ST=Moscow=S-Terra,C=RU"},"agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 (Chromium GOST)"},"encryption":{"protocol": "TLSv1.2","cipher":"GOST2012-KUZNYECHIK-KUZNYECHIKOMAC"},"request":{"content":"GET / HTTP/1.1","status":"200","bytes_sent":"410368","referer":""},"resource":{"host":"http-server.s-terra.ru","port":"4443"},"time":{"local":"15/Mar/2022:13:03:51 +0300"}}
Mar 15 13:04:04 s-terra-tls-gate2 nginx_acc: {"client":{"addr":"192.168.10.1","auth_cert":{"status":"SUCCESS","subj":"CN=mob-arm-user,ST=Moscow=S-Terra,C=RU"},"agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 (Chromium GOST)"},"encryption":{"protocol": "TLSv1.2","cipher":"GOST2012-KUZNYECHIK-KUZNYECHIKOMAC"},"request":{"content":"GET / HTTP/1.1","status":"200","bytes_sent":"410376","referer":""},"resource":{"host":"http-server.s-terra.ru","port":"4443"},"time":{"local":"15/Mar/2022:13:04:04 +0300"}}
14. Обратить внимание на время подключений:
· Первое подключение Mar 15 13:03:45 к s-terra-tls-gate1
· Второе подключение Mar 15 13:03:51 к s-terra-tls-gate2
· Третье подключение Mar 15 13:03:57 снова к s-terra-tls-gate1
· И четвертое подключение Mar 15 13:04:04 к s-terra-tls-gate2
15. Убедиться в том, что то же самое фиксируется и в логе доступа web-сервиса на устройстве http-server:
root@http-server:~# tail /var/log/apache2/access.log
192.168.1.10 - - [15/Mar/2022:13:03:45 -0400] "GET / HTTP/1.0" 200 410000 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 (Chromium GOST)"
192.168.1.20 - - [15/Mar/2022:13:03:51 -0400] "GET / HTTP/1.0" 200 410000 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 (Chromium GOST)"
192.168.1.10 - - [15/Mar/2022:13:03:57 -0400] "GET / HTTP/1.0" 200 410000 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 (Chromium GOST)"
192.168.1.20 - - [15/Mar/2022:13:04:04 -0400] "GET / HTTP/1.0" 200 410000 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 (Chromium GOST)"
16. Таким образом, видно, что устройство HAproxy выполняет балансировку, используя механизм «per flow».
17. Для проверки отказоустойчивости выключить устройство s-terra-tls-gate2. Убедиться, что страница сайта http-server.s-terra.ru по-прежнему доступна с устройства mob-arm. В логе HAProxy зафиксирован отказ устройства s-terra-tls-gate2 и все обращения к http-server.s-terra.ru направляются на доступный s-terra-tls-gate1:
root@HAproxy:~# tail -n 15 /var/log/haproxy.log
Mar 15 13:05:50 HAproxy haproxy[964]: [WARNING] (964) : Server sterra_tls_gates/s-terra-tls-gate2 is DOWN, reason: Layer4 timeout, check duration: 2002ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
Mar 15 13:05:50 HAproxy haproxy[964]: Server sterra_tls_gates/s-terra-tls-gate2 is DOWN, reason: Layer4 timeout, check duration: 2002ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
Mar 15 13:05:50 HAproxy haproxy[964]: Server sterra_tls_gates/s-terra-tls-gate2 is DOWN, reason: Layer4 timeout, check duration: 2002ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
Mar 15 13:05:52 HAproxy haproxy[964]: 172.16.100.2:51465 [15/Mar/2022:13:05:52.649] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/51 862 cD 2/2/1/1/0 0/0
Mar 15 13:05:52 HAproxy haproxy[964]: 172.16.100.2:51464 [15/Mar/2022:13:05:52.649] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/81 1756 cD 1/1/0/0/0 0/0
Mar 15 13:05:52 HAproxy haproxy[964]: 172.16.100.2:51466 [15/Mar/2022:13:05:52.750] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/54 168 cD 1/1/0/0/0 0/0
Mar 15 13:05:54 HAproxy haproxy[964]: 172.16.100.2:51467 [15/Mar/2022:13:05:53.898] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/128 1756 cD 2/2/1/1/0 0/0
Mar 15 13:05:54 HAproxy haproxy[964]: 172.16.100.2:51469 [15/Mar/2022:13:05:54.185] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/50 0 sD 2/2/1/1/0 0/0
Mar 15 13:05:54 HAproxy haproxy[964]: 172.16.100.2:51470 [15/Mar/2022:13:05:54.240] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/51 0 sD 2/2/1/1/0 0/0
Mar 15 13:05:54 HAproxy haproxy[964]: 172.16.100.2:51468 [15/Mar/2022:13:05:53.898] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/478 2672811 cD 2/2/1/1/0 0/0
Mar 15 13:05:54 HAproxy haproxy[964]: 172.16.100.2:51471 [15/Mar/2022:13:05:54.354] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/52 862 cD 1/1/0/0/0 0/0
Mar 15 13:05:55 HAproxy haproxy[964]: 172.16.100.2:51472 [15/Mar/2022:13:05:55.398] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/96 857 cD 1/1/0/0/0 0/0
Mar 15 13:05:55 HAproxy haproxy[964]: 172.16.100.2:51473 [15/Mar/2022:13:05:55.579] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/51 862 cD 1/1/0/0/0 0/0
Mar 15 13:05:55 HAproxy haproxy[964]: 172.16.100.2:51474 [15/Mar/2022:13:05:55.684] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/52 862 cD 1/1/0/0/0 0/0
Mar 15 13:05:56 HAproxy haproxy[964]: 172.16.100.2:51475 [15/Mar/2022:13:05:56.030] http-server.s-terra.ru sterra_tls_gates/s-terra-tls-gate1 1/0/51 862 cD 1/1/0/0/0 0/0
C:\WINDOWS\system32>ipconfig
Windows IP Configuration
Ethernet adapter Ethernet0:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::d12c:dd1d:4b32:7c56%9
IPv4 Address. . . . . . . . . . . : 192.168.1.254
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
C:\WINDOWS\system32>
C:\WINDOWS\system32>route print
===========================================================================
Interface List
9...00 50 56 9e 2c 8b ......Intel(R) 82574L Gigabit Network Connection
1...........................Software Loopback Interface 1
===========================================================================
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.254 281
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
192.168.1.0 255.255.255.0 On-link 192.168.1.254 281
192.168.1.254 255.255.255.255 On-link 192.168.1.254 281
192.168.1.255 255.255.255.255 On-link 192.168.1.254 281
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 192.168.1.254 281
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 192.168.1.254 281
===========================================================================
Persistent Routes:
Network Address Netmask Gateway Address Metric
0.0.0.0 0.0.0.0 192.168.1.1 Default
===========================================================================
root@router1:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:50:56:9e:aa:12 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.1/24 brd 172.16.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe9e:aa12/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:50:56:9e:b7:36 brd ff:ff:ff:ff:ff:ff
inet 172.16.100.1/24 brd 172.16.100.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe9e:b736/64 scope link
valid_lft forever preferred_lft forever
root@router1:~#
root@router1:~# ip route show
172.16.1.0/24 dev eth0 proto kernel scope link src 172.16.1.1
172.16.100.0/24 dev eth1 proto kernel scope link src 172.16.100.1
192.168.10.0/24 via 172.16.1.2 dev eth0
root@router1:~#
root@router1:~# sysctl net.ipv4.conf.all.forwarding
net.ipv4.conf.all.forwarding = 1
root@router1:~#
root@HAproxy:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:50:56:9e:1d:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.1/24 brd 192.168.10.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe9e:1d03/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:50:56:9e:13:13 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.2/24 brd 172.16.1.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe9e:1313/64 scope link
valid_lft forever preferred_lft forever
root@HAproxy:~#
root@HAproxy:~# ip route show
default via 172.16.1.1 dev eth1 onlink
172.16.1.0/24 dev eth1 proto kernel scope link src 172.16.1.2
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.1
root@HAproxy:~#
root@HAproxy:~# cat /etc/haproxy/haproxy.cfg
global
log /dev/log local0 debug
log /dev/log local1 debug
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 500
timeout client 500
timeout server 500
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend http-server.s-terra.ru
bind *:443
mode tcp
default_backend sterra_tls_gates
backend sterra_tls_gates
mode tcp
balance roundrobin
server s-terra-tls-gate1 192.168.10.10:4443 check
server s-terra-tls-gate2 192.168.10.20:4443 check
root@HAproxy:~#
root@s-terra-tls-gate1:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:50:56:9e:de:dc brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:50:56:9e:0e:25 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.10/24 brd 172.16.1.255 scope global eth1
valid_lft forever preferred_lft forever
root@s-terra-tls-gate1:~#
root@s-terra-tls-gate1:~# ip route show
default via 192.168.10.1 dev eth1
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.10
root@s-terra-tls-gate1:~#
root@s-terra-tls-gate1:~# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.1.2 http-server.s-terra.ru
root@s-terra-tls-gate1:~#
root@s-terra-tls-gate1:~# /opt/VPNagent/bin/csconf_mgr show
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity address
username cscons privilege 15 password 0 csp
aaa new-model
!
!
hostname s-terra-tls-gate1
enable password 5Yx6%spS
!
!
!
interface GigabitEthernet0/0
ip address 192.168.1.10 255.255.255.0
!
interface FastEthernet0/1
ip address 192.168.10.10 255.255.255.0
!
!
ip route 0.0.0.0 0.0.0.0 192.168.10.1
!
end
s-terra-tls-gate1#
root@s-terra-tls-gate2:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1ip
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:50:56:9e:0d:f6 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.20/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:50:56:9e:cd:1a brd ff:ff:ff:ff:ff:ff
inet 192.168.10.20/24 brd 192.168.10.255 scope global eth1
valid_lft forever preferred_lft forever
root@s-terra-tls-gate2:~#
root@s-terra-tls-gate2:~# ip route show
default via 192.168.10.1 dev eth1
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20
192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.20
root@s-terra-tls-gate2:~#
root@s-terra-tls-gate2:~# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.1.2 http-server.s-terra.ru
root@s-terra-tls-gate2:~#
root@s-terra-tls-gate2:~# /opt/VPNagent/bin/csconf_mgr show
!
version 12.4
no service password-encryption
!
crypto ipsec df-bit copy
crypto isakmp identity address
username cscons privilege 15 password 0 csp
aaa new-model
!
!
hostname s-terra-tls-gate2
enable password csp
!
!
!
!
!
!
interface FastEthernet0/0
ip address 192.168.1.20 255.255.255.0
!
interface FastEthernet0/1
ip address 192.168.10.20 255.255.255.0
!
!
ip route 0.0.0.0 0.0.0.0 192.168.10.1
!
end
root@s-terra-tls-gate2:~#
c:\Windows\System32>ipconfig
Windows IP Configuration
Ethernet adapter Ethernet0:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::11c4:d448:1f20:19b2%9
IPv4 Address. . . . . . . . . . . : 172.16.100.2
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 172.16.100.1
c:\Windows\System32>
c:\Windows\System32>route print
===========================================================================
Interface List
9...00 50 56 9e 93 78 ......Intel(R) 82574L Gigabit Network Connection
1...........................Software Loopback Interface 1
===========================================================================
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.16.100.1 172.16.100.2 25
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
172.16.100.0 255.255.255.0 On-link 172.16.100.2 281
172.16.100.2 255.255.255.255 On-link 172.16.100.2 281
172.16.100.255 255.255.255.255 On-link 172.16.100.2 281
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 172.16.100.2 281
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 172.16.100.2 281
===========================================================================
Persistent Routes:
Network Address Netmask Gateway Address Metric
0.0.0.0 0.0.0.0 172.16.100.1 0
===========================================================================
root@http-server:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:50:56:9e:bb:35 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe9e:bb35/64 scope link
valid_lft forever preferred_lft forever
root@http-server:~#
root@http-server:~# ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
root@http-server:~#
root@http-server:~# ss -lnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
root@http-server:~#