# S-Terra - Security Gateway
###### tags: `S-Terra` `VPN` `CLI`
## ==Данные для входа==
1) **Пользовательский режим**
login: administrator
password: s-terra
2) **Cisco Like режим**
login: cscons
password: csp
```
```
## ====Первоначальная настройка====
:::warning
Для корректной работы в **виртуальной среде** требуется сначала создать **карту сетевых интерфейсов**. Для этого сразу после аутентификации в S-Terra administrative console выполните следующие команды:
```bash=
administrator@sterragate] run netifcfg enum >iface_map.txt
administrator@sterragate] run netifcfg map iface_map.txt
```

**Без настройки карты интерфейсов не будет стартовать IPsec daemon**
:::
1) Процедура инициализации (активации)
```bash=
initialize
```
2) Активируем политику драйвера по умолчанию, при которой прохождение трафика не блокируется
:::warning
:information_source: Изначально шлюз настроен на блокирование сетевого трафика, кроме DHCP.
:::
```bash=
administrator@sterragate] run csconf_mgr activate
```
```
```
## ==Подключение по SSH==
:::warning
:information_source: Чтобы подключиться по SSH к S-terra есть несколько способов:
* **Из не доверенной сети** используя **S-Terra клиент** (нужна отдельная лицензия), которым прокладывается IPsec VPN тоннель до шлюза
* **Из локальной сети** под root. ==Для этого из под режима ОС нужно задать пароль для root пользователя т.к. по умолчанию root без пароля и подключаться по ssh под ним.== либо создать отдельную УЗ для SSH подключений для большей безопасности
:::
```
```
### Создание пароля
Заходим в режим ОС
```bash=
sterragate> run bash
root@sterragate# passwd
```
Далее вводим пароль для root и можно пробовать подключаться по SSH.
Тонкую настройку SSH можно провести по аналогии с любой linux системой в
```bash
/etc/ssh/sshd_config
```
```
```
## ==Активация S-terra==
:::info
:information_source: На каждой ноде, должна быть установлена отдельная лицензия. С одной лицензией тоннели устанавливаться не будут.
:::
```bash=
lic_mgr set -p GATE -c CUSTOMER_CODE -n LICENSE_NUMBER -l LICENSE_CODE
```
```
```
## ==Режимы консоли==
### Режим 1: Консоль разграничения доступа
Основная консоль куда попадаем после аутентификации
**Как войти:** авторизация в s-terra
```bash=
administrator@sterragate]
```
:::info
:information_source: Уровень привелегий 15.
Имеет право на:
1) запуск и остановку сервиса безопасности
2) запуск процедуры инициализации
3) создание учетных записей пользователей с однофакторной или двухфакторной аутентификацией для консоли разграничения доступа
4) работу с файлами
5) запуск утилит для регистрации лицензии
6) запуск утилит для работы с сертификатами
7) просмотр любой информации, доступ к ОС.
:::
### Режим 2: Консоль операционной системы
**Как войти:**
1) ```administrator@sterragate] system```
2) ```administrator@sterragate] run bash```

```bash=
root@sterragate:~# - строка приглашения
```
:::info
:information_source: Linux, пользователь root без пароля.
:::
:::warning
:information_source: **ВАЖНО**
Любые команды режима ОС можно исполнять из другого режима вбив её после команды run.
Пример:

:::
### Режим 3: Cisco-Like консоль
:::info
:information_source: В режиме cisco-like консоли всё соответствует режимам Cisco:
**sterragate>** <-- пользовательский режим Cisco
**sterragate#** <-- привелигированный режим Cisco
**sterragate(config)#** <-- режим глобальной конфигурации Cisco
**--------------------------------------------------------------**
**root@sterragate#** <-- режим операционной системы
:::
**Как войти:**
1) Из режима ОС
```bash=
root@sterragate:~# cs_console <-- переключение в рержим Cisco-Like консоли
sterragate> enable <-- переключение в привелигированный режим Cisco
Password: csp
sterragate# config t <-- переключение в режим глобальной конфигурации
sterragate(config)#
```
2) Из режима разграничения доступа
```bash=
administrator@sterragate] configure <-- переключение в режим Сisco-like консоль
sterragate login: cscons
Password: csp
S-Terra Gate 4.2.18201 (amd64)
sterragate# config t <-- переключение в режим глобальной конфигурации
sterragate(config)#
```
```
```
## ==Отказоустойчивость==
### VRRP


```
```
## ==Диагностика==
### Порядок диагностики


лог
/var/log/cspvpngate.log
включив дебаг в консоли можно получить подробный вывод проблем
:::info
:information_source: Если шлюз много раз безуспешно пробовал ломиться на второй шлюз
то он попадает в блэклист
Чтобы очистить блэклист Нужно перезапустить демона VPN
:::
```bash=
service vpngate restart
```
```
```
## Этапы построения тоннеля


```
```
## ====CLI====
| Команды консоли администратора | Описание |
| ------------------------------ | ------------------------- |
| configure | вход в Cisco Like Console |
| Команды Cisco-Like консоли | Описание |
| -------------------------- | ------------------------------- |
| configure terminal | - режим глобальной конфигурации |
| enable | привелигированный режим |
| run | выполняет Linux команду |
| Команды Linux консоли | Описание |
|:------------------------------- |:----------------------------------------- |
| ping [targetip] -I [internalIP] | **работающая** команда для пинга с интерфейса |
| sa_mgr | менеджер SA, просмотр состояния установленных соединений|
| lic_mgr | менеджер лицензий |
| cert_mgr | Утилита просмотра сертификатов |
| tail -n 20 /var/log/ | |
~~|klog_show|количество полученных\отправленных пакетов|~~
| service vpngate restart| Перезапуск VPN сервиса|
### VPN с чекпоинт

```
```
### Пример конфигурации
Создание политики настройки IKE фаза 1
```bash=
crypto isakmp policy 1
```
Выбираем тип аунтентификации по предварительно разделённым ключам
```bash=
authentication pre-share
```
Указываем предварительно разделённый ключ и адрес компаньона по VPN тоннелю
```bash=
crypto isakmp key <yourpreshared-key> address <addressVPNserver>
```
Выбираем шифрование
```bash=
encryption aes 256
```
Тип хэширования
```bash=
hash sha
```
Группу Диффи-Хеллмана(протокол передачи общего секретного ключа) и выходим из меню настройки группы исакамп 1 (первой фазы IKE)
```bash=
group 2
exit
```
```
```
### Вторая фаза
```bash=
crypto ipsec transform-set TSET esp-aes 256 esp-sha-hmac
exit
ip access-list extended LIST
permit ip <ip local network s-terra> 0.0.0.255 <ip LAN network VPN server> 0.0.0.255
exit
crypto map CMAP 1 ipsec-isakmp
match LIST
set transform-set TSET
set peer <wan address VPN server>
exit
int <fast ethernet 0/1 wan interface S-Terra>
crypto map CMAP
exit
exit
wr me
run bash
sa_mgr show
```
```
```
## ==**Вопросы для самопроверки**==
* **Архитектура** - что такое, зачем нужно, куда размещается
* **Построение тоннеля** - IPsec IKE, какие криптостандарты - описать логику работы
* **Основные команды**
* Консоль администратора
* Linux консоль
* Cisco-like консоль
:::info
:information_source: В режиме cisco-like консоли всё соответствует режимам Cisco:
**sterragate>** <-- пользовательский режим Cisco
**sterragate#** <-- привелигированный режим Cisco
**sterragate(config)#** <-- режим глобальной конфигурации Cisco
**--------------------------------------------------------------**
**root@sterragate#** <-- режим операционной системы
:::
* **Кластеризация - VRRP, RRI - описать логику работы VRRP продемонстрировать на стенде**
* 1) Настраиваем состояние Мастер на одном и Бэкап на втором шлюзе + виртуальный IP и маршрут
* 2) Мастер отправляет VRRP пакеты на мультикаст 224.0.0.18
* 3) Если Бэкап не получает VRRP от становится Мастер и отправляет GARP со своим MAC адресом
* 4) Когда бывший Мастер поднимается отправляет VRRP пакет и восстанавливает статус
* **Особенности работы с клиентами**
* **SNMP**
* Есть 2 SNMP агент:
* (VPNGATE) отвечает за отправку инфо о IKE/IPsec
* (SNMPD) за выдачу общей информации о системе
Агент SNMPD принимает SNMP запросы на порту 161 и пересылает объектные идентификаторы агенту VPNGATE. (OIDs, список можно посмотреть в /etc/snmp/snmpd.conf)
в режиме ОС:
* snmp-server community - пароль для чтения
* snmp-server location - физическое расположени SNMP агента
* snmp-server contact - лицо в которое стучать если SNMP не работает (ответственный)
* SNMPPollSettings
* **Дебаг проблем с тоннелем**
* 
* **Особенности работы с NAT**
* Обработка трафика как в Cisco IOS.
* Исходящие: сначала iptables, затем VPN
* Входящие сначала VPN, затем iptables.
* Если есть NAT (source NAT), то при настройке необходимо учитывать следующее:
* пакеты IKE\NAT-Traversal (инкапс в UDP) должны быть исключены из правил трансляции source NAT из-за того что порты 500/4500 не должны меняться.
* Т.к. source NAT выполняется до шифрования защищаемый трафик должен быть исключен из правил source NAT иначе он не попадет под фильтры IPsec
(если только специально не требуется осуществлять зашифрование транслированных пакетов),
Т.е. нужно создать правила, исключающие IKE/NAT-T трафик, а также трафик, который должен шифроваться, а потом добавить правило для source NAT.
* **Как менять сертификаты**
* cert_mgr
* **Как обновить**
* через утилиту UP-Flash записанную на USB