По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Ранее мы уже рассказывали про регулировку громкости в Asterisk. Этот метод рабочий, но весьма статичен. Поэтому в голову пришла интересная мысль.
Представьте, вы совершаете звонок. И, неожиданно, ваш собеседник начинает "кричать" в трубку. Пусть кричит – наши нервы прошли и не такое, но дело в том, что громкость звонка задана жёстко в кастомном диалплане. Поэтому, ощущения от крика буду особенно острыми :)
А теперь, вообразите, что у вас есть возможность сделать собеседника "тише" кнопками телефонного аппарата. А потом, когда он успокоится, сделать снова громче. Интересно? Поехали.
Подготовка
Откроем FreePBX. Открыв модуль сервисных кодов (feature codes), мы обнаружим, что в нем можно только изменить существующие коды, но добавить новые нельзя.
Решение указанной в начале статьи задачи будет базироваться на встроенных функциях Asterisk. То есть мы не будем добавлять кастомный контекст.
Настройка
Открываем файл /etc/asterisk/globals_custom.conf. Этот файл позволяет переписать или добавить глобальные переменные, используемые Asterisk (как стандартные, так и ваши личные).
Если данного файла нет, то его нужно создать. Например, вот так:
touch /etc/asterisk/globals_custom.conf
chown asterisk:asterisk /etc/asterisk/globals_custom.conf
chmod 775 /etc/asterisk/globals_custom.conf
В файл добавляем следующую конструкцию:
DYNAMIC_FEATURES=VUp#VDown#MUp#MDown
Vol=0
Mic=0
Мы задали специальные функции, которые понадобятся нам далее. Сейчас будем закреплять комбинации цифр за кодами. Для этого открываем файл etc/asterisk/features_applicationmap_custom.conf и запишем в него следующее:
VUp => 52*,self,Macro,VolumeUp
VDown => 58*,self,Macro,VolumeDown
MUp => 54*,self,Macro,MicUp
MDown => 56*,self,Macro,MicDown
Мы закрепили за кодами выполнение макроса громкости, который мы напишем далее. Не пугайтесь - "странные" комбинации выбраны по причине того, что их просто запомнить, так как на клавиатуре телефона, это так называемый "крест", наподобие джойстика ;)
Go ahead. Приступаем к самим макросам. Для этого открываем файл /etc/asterisk/extensions_custom.conf и добавляе:
[from-internal-custom]
Set(__DYNAMIC_FEATURES=VUp#VDown#MUp#MDown)
Таким образом, мы подключаем добавленные коды в диалплан Asterisk, который генерирует FreePBX.
Не спешите закрывать файл extensions_custom.conf. В него же добавляем механизм увеличения громкости. То есть, макросы о которых мы писали ранее:
[macro-VolumeUp]
exten => s,1,Set(Vol=$[${Vol}+5])
same => n,Set(VOLUME(TX)=${Vol})
[macro-VolumeDown]
exten => s,1,Set(Vol=$[${Vol}-5])
same => n,Set(VOLUME(TX)=${Vol})
[macro-MUp]
exten => s,1,Set(Mic=$[${Mic}+5])
same => n,Set(VOLUME(RX)=${Mic})
[macro-MDown]
exten => s,1,Set(Mic=$[${Mic}-5])
same => n,Set(VOLUME(RX)=${Mic})
Можно выдохнуть. На этом правки закончены. Как вы могли заметить, почему-то "громкостей" несколько. Все достаточно просто. Это 2 макроса на увеличение и уменьшение громкости канала звука и, соответственно, канала микрофона.
Что нам все эти коды дают (по сравнению с жестко прописанными числами)? В любой момент разговора, если вы плохо (тихо) слышите собеседника, нужно набрать на телефоне 52* и громкость увеличится, так можно делать несколько раз пока уровень громкости собеседника не станет приемлемым. Это работает и наоборот: 58* и собеседник становится "тише".
Удобно, правда? :) Из плюсов - не надо прерывать звонок. Нет жёсткого ограничения громкости. Если разговор затягивается на длительное время, можно выставить комфортную слышимость.
Ну а второй макрос, спросите вы? Представьте: что делать, если собеседник жалуется, что вас тихо слышно? Нет проблем. Набираем 54* и собеседник начинает нас лучше слышать, то есть, мы увеличиваем громкость канала нашего микрофона!
Привет! Сегодня мы расскажем про то как настроить Site-To-Site IPSec VPN туннель между роутерами Cisco. Такие VPN туннели используются обеспечения безопасной передачи данных, голоса и видео между двумя площадками (например, офисами или филиалами). Туннель VPN создается через общедоступную сеть интернет и шифруется с использованием ряда продвинутых алгоритмов шифрования, чтобы обеспечить конфиденциальность данных, передаваемых между двумя площадками.
В этой статье будет показано, как настроить и настроить два маршрутизатора Cisco для создания постоянного безопасного туннеля VPN типа «сеть-сеть» через Интернет с использованием протокола IP Security (IPSec) . В рамках статьи мы предполагаем, что оба маршрутизатора Cisco имеют статический публичный IP-адрес.
ISAKMP (Internet Security Association and and Key Management Protocol) и IPSec необходимы для построения и шифрования VPN-туннеля. ISAKMP, также называемый IKE (Internet Key Exchange) , является протоколом согласования (negotiation protocol), который позволяет двум хостам договариваться о том, как создать сопоставление безопасности IPsec. Согласование ISAKMP состоит из двух этапов: фаза 1 и фаза 2.
Во время фазы 1 создается первый туннель, который защищает последующие сообщения согласования ISAKMP. Во время фазы 2 создается туннель, который защищает данные. Затем в игру вступает IPSec для шифрования данных с использованием алгоритмов шифрования и предоставляющий аутентификацию, шифрование и защиту от повторного воспроизведения.
Требования к IPSec VPN
Чтобы упростить понимание настройки разделим его на две части:
Настройка ISAKMP (Фаза 1 ISAKMP)
Настройка IPSec (Фаза 2 ISAKMP, ACL, Crypto MAP)
Делать будем на примере, который показан на схеме – два филиала, оба маршрутизатора филиалов подключаются к Интернету и имеют статический IP-адрес, назначенный их провайдером. Площадка №1 имеет внутреннею подсеть 10.10.10.0/24, а площадка №2 имеет подсеть 20.20.20.0/24. Цель состоит в том, чтобы безопасно соединить обе сети LAN и обеспечить полную связь между ними без каких-либо ограничений.
Настройка ISAKMP (IKE) - ISAKMP Phase 1
IKE нужен только для установления SA (Security Association) для IPsec. Прежде чем он сможет это сделать, IKE должен согласовать отношение SA (ISAKMP SA) с одноранговым узлом (peer).
Начнем с настройки маршрутизатора R1 первой площадки. Первым шагом является настройка политики ISAKMP Phase 1:
R1(config)# crypto isakmp policy 1
R1(config-isakmp)# encr 3des
R1(config-isakmp)# hash md5
R1(config-isakmp)# authentication pre-share
R1(config-isakmp)# group 2
R1(config-isakmp)# lifetime 86400
Приведенные выше команды означают следующее:
3DES - метод шифрования, который будет использоваться на этапе 1
MD5 - алгоритм хеширования
Pre-Share - использование предварительного общего ключа (PSK) в качестве метода проверки подлинности
Group 2 - группа Диффи-Хеллмана, которая будет использоваться
86400 - время жизни ключа сеанса. Выражается либо в килобайтах (сколько трафика должно пройти до смены ключа), либо в секундах. Значение установлено по умолчанию.
Мы должны отметить, что политика ISAKMP Phase 1 определяется глобально. Это означает, что если у нас есть пять разных удаленных площадок и настроено пять разных политик ISAKMP Phase 1 (по одной для каждого удаленного маршрутизатора), то, когда наш маршрутизатор пытается согласовать VPN-туннель с каждой площадкой, он отправит все пять политик и будет использовать первое совпадение, которое принято обоими сторонами.
Далее мы собираемся определить Pre-Shared ключ для аутентификации с нашим партнером (маршрутизатором R2) с помощью следующей команды:
R1(config)# crypto isakmp key merionet address 1.1.1.2
Pre-Shared ключ партнера установлен на merionet, а его публичный IP-адрес - 1.1.1.2. Каждый раз, когда R1 пытается установить VPN-туннель с R2 (1.1.1.2), будет использоваться этот ключ.
Настройка IPSec – 4 простых шага
Для настройки IPSec нам нужно сделать следующее:
Создать расширенный ACL
Создать IPSec Transform
Создать криптографическую карту (Crypto Map)
Применить криптографическую карту к общедоступному (public) интерфейсу
Давайте рассмотрим каждый из вышеперечисленных шагов.
Шаг 1: Создаем расширенный ACL
Нам нужно создать расширенный access-list (про настройку Extended ACL можно прочесть в этой статье) и в нем определить какой траффик мы хотим пропускать через VPN-туннель. В этом примере это будет трафик из одной сети в другую с 10.10.10.0/24 по 20.20.20.0/24. Иногда такие списки называют crypto access-list или interesting traffic access-list.
R1(config)# ip access-list extended VPN-TRAFFIC
R1(config-ext-nacl)# permit ip 10.10.10.0 0.0.0.255 20.20.20.0 0.0.0.255
Шаг 2: Создаем IPSec Transform
Следующим шагом является создание набора преобразования (Transform Set), используемого для защиты наших данных. Мы назвали его TS.
R1(config)# crypto ipsec transform-set TS esp-3des esp-md5-hmac
Приведенная выше команда определяет следующее:
ESP-3DES - метод шифрования
MD5 - алгоритм хеширования
Шаг 3: Создаем Crypto Map
Crypto Map является последнем этапом нашей настройки и объединяет ранее заданные конфигурации ISAKMP и IPSec:
R1(config)# crypto map CMAP 10 ipsec-isakmp
R1(config-crypto-map)# set peer 1.1.1.2
R1(config-crypto-map)# set transform-set TS
R1(config-crypto-map)# match address VPN-TRAFFIC
Мы назвали нашу криптографическую карту CMAP. Тег ipsec-isakmp сообщает маршрутизатору, что эта криптографическая карта является криптографической картой IPsec. Хотя в этой карте (1.1.1.2) объявлен только один пир, существует возможность иметь несколько пиров.
Шаг 4: Применяем криптографическую карту к общедоступному интерфейсу
Последний шаг - применить криптографическую карту к интерфейсу маршрутизатора, через который выходит траффик. Здесь исходящим интерфейсом является FastEthernet 0/1.
R1(config)# interface FastEthernet0/1
R1(config- if)# crypto map CMAP
Обратите внимание, что интерфейсу можно назначить только одну криптокарту.
Как только мы применим криптографическую карту к интерфейсу, мы получаем сообщение от маршрутизатора, подтверждающее, что isakmp включен: “ISAKMP is ON”.
На этом этапе мы завершили настройку IPSec VPN на маршрутизаторе Площадки 1.
Теперь перейдем к маршрутизатору Площадки 2 для завершения настройки VPN. Настройки для R2 идентичны, с отличиями лишь в IP-адресах пиров и ACL.
R2(config)# crypto isakmp policy 1
R2(config-isakmp)# encr 3des
R2(config-isakmp)# hash md5
R2(config-isakmp)# authentication pre-share
R2(config-isakmp)# group 2
R2(config-isakmp)# lifetime 86400
R2(config)# crypto isakmp key merionet address 1.1.1.1
R2(config)# ip access-list extended VPN-TRAFFIC
R2(config-ext-nacl)# permit ip 20.20.20.0 0.0.0.255 10.10.10.0 0.0.0.255
R2(config)# crypto ipsec transform-set TS esp-3des esp-md5-hmac
R2(config)# crypto map CMAP 10 ipsec-isakmp
R2(config-crypto-map)# set peer 1.1.1.1
R2(config-crypto-map)# set transform-set TS
R2(config-crypto-map)# match address VPN-TRAFFIC
R2(config)# interface FastEthernet0/1
R2(config- if)# crypto map CMAP
Трансляция сетевых адресов (NAT) и VPN-туннели IPSec
В реальной схеме трансляция сетевых адресов (NAT), скорее всего, будет настроена для предоставления доступа в интернет внутренним хостам. При настройке VPN-туннеля типа «Site-To-Site» обязательно нужно указать маршрутизатору не выполнять NAT (deny NAT) для пакетов, предназначенных для удаленной сети VPN.
Это легко сделать, вставив оператор deny в начало списков доступа NAT, как показано ниже:
Для первого маршрутизатора:
R1(config)# ip nat inside source list 100 interface fastethernet0/1 overload
R1(config)# access-list 100 deny ip 10.10.10.0 0.0.0.255 20.20.20.0 0.0.0.255
R1(config)# access-list 100 permit ip 10.10.10.0 0.0.0.255 any
Для второго маршрутизатора:
R2(config)# ip nat inside source list 100 interface fastethernet0/1 overload
R2(config)# access-list 100 deny ip 20.20.20.0 0.0.0.255 10.10.10.0 0.0.0.255
R2(config)# access-list 100 permit ip 20.20.20.0 0.0.0.255 any
Инициализация и проверка VPN-туннеля IPSec
К этому моменту мы завершили нашу настройку, и VPN-туннель готов к запуску. Чтобы инициировать VPN-туннель, нам нужно заставить один пакет пройти через VPN, и этого можно достичь, отправив эхо-запрос от одного маршрутизатора к другому:
R1# ping 20.20.20.1 source fastethernet0/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.20.20.1, timeout is 2 seconds:
Packet sent with a source address of 10.10.10.1
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 44/47/48 ms
Первое эхо-сообщение icmp (ping) получило тайм-аут, но остальные получили ответ, как и ожидалось. Время, необходимое для запуска VPN-туннеля, иногда превышает 2 секунды, что приводит к истечению времени ожидания первого пинга.
Чтобы проверить VPN-туннель, используйте команду show crypto session:
R1# show crypto session
Crypto session current status
Interface: FastEthernet0/1
Session status: UP-ACTIVE
Peer: 1.1.1.2 port 500
IKE SA: local 1.1.1.1/500 remote 1.1.1.2/500 Active
IPSEC FLOW: permit ip 10.10.10.0/255.255.255.0 20.20.20.0/255.255.255.0
Active SAs: 2, origin: crypto map
Готово! Мы только что успешно подняли Site-To-Site IPSEC VPN туннель между двумя маршрутизаторами Cisco!
Пайплайн CI/CD – это основа разработки программного обеспечения и один из основных компонентов конвейера DevOps. Процесс непрерывной интеграции/доставки (или развертывания) определяет ряд шагов, которые специалисты по программному обеспечению должны выполнить для создания новых программ.
Несмотря на то, что CI/CD повышает эффективность производства, этот процесс пренебрегает безопасностью. Базы данных, проприетарный код, учетные данные, ключи, учетные цифровые идентификационные данные и пароли, используемые в производственных и тестовых средах, также являются угрозой для безопасности.
Данная статья рассказывает о безопасности CI/CD, проблемах и рекомендациях по обеспечению безопасности производственного конвейера программного обеспечения.
Что такое безопасность CI/CD?
Безопасность CI/CD – это определенные шаги по защите конвейера автоматизированного производства программного обеспечения. И хотя общая безопасность производства программного обеспечения важна, линия доставки обновлений и устранений ошибок в программном обеспечении также должна быть надежной.
Пайплайн (или конвейер) CI/CD – это поток автоматической интеграции и доставки (или развертывания) приложений. Метод реализует обновления и исправления ошибок в соответствии с потребностями клиентов. Как итог, основное внимание уделяется полной автоматизации доставки программного обеспечения для непрерывного производства.
Однако в конвейере CI/CD упускается из виду его безопасность. Путем использования автоматизации тестирования и постоянного мониторинга администраторы безопасности должны проводить оценку уязвимостей на различных этапах разработки программного обеспечения.
Общие проблемы безопасности в конвейере CI/CD
Существует множество проблем безопасности, которые следует учитывать при защите конвейера CI/CD:
Серьезной проблемой является соблюдение требований к данным в непроизводственной среде. Чем больше людей работает над одним проектом, тем больше появляется возможных точек нарушения безопасности.
Необходимо выработать четко определенные правила контроля доступа и политики паролей для всех пользователей. В случае компрометации должен существовать заранее подготовленный план реагирования на различные инциденты.
Автоматизация и оркестровка занимают немалую часть программного обеспечения и для них требуются множество единичных фрагментов программного кода.
Быстро меняющаяся среда с постоянными обновлениями оставляет большой простор для различного рода инцидентов и непреднамеренных компрометаций. Лучшей политикой безопасности здесь будет встраивание безопасности непосредственно в конвейер.
Рекомендации по обеспечению безопасности конвейера CI/CD
Наилучшие методы обеспечения безопасности CI/CD зависят от инфраструктуры DevOps. Ниже приведены десять основных руководств по защите конвейера при работе в среде CI/CD.
1. Моделирование угроз безопасности
Проведите исследование в области потенциальных угроз безопасности. Определите точки, где необходимо обеспечить дополнительные уровни безопасности, попробуйте смоделировать эти угрозы и разработайте упражнения для повышения уровня информированности о потенциальных проблемах безопасности.
Большинство угроз безопасности находятся в точках стыковки. Все, что подключается к конвейеру, должно регулярно исправляться и обновляться. Блокируйте любые устройства, не соответствующие требованиям безопасности.
2. Проверка безопасности до фиксации
Проводите проверки безопасности до фиксации кода в системе контроля версий. Большинство IDE предоставляют подключаемые модули безопасности и предупреждают об уязвимостях кода по мере его ввода.
Проводите независимую оценку работ неопытных разработчиков перед отправкой кода в Git. Используйте небольшие фрагменты программного кода и список контрольных вопросов, чтобы убедиться в том, что код соответствует всем протоколам и стандартам безопасности. Помимо этого, избегайте копирования и публикации ключей API, токенов и других конфиденциальных данных.
3. Проверяйте зафиксированный код
После фиксации кода проверьте его еще раз, чтобы убедиться в том, что все в порядке. Используйте инструменты статистического анализа кода, чтобы получить отчет об ошибках. Инструменты анализа не требуют, чтобы приложение было запущено, а многие их них вместе с отчетом предоставляют полезные советы.
Отправьте отчеты о сканировании кода в службу безопасности, чтобы узнать, требуется ли какая-либо доработка. Используйте системы отслеживания ошибок и регистрируйте результаты, чтобы вы могли убедиться, что все ошибки исправлены. Кроме того, проанализируйте историю Git на предмет подозрительных действий.
4. Защитите свой Git
Git – это приоритетная цель для хакеров. Убедитесь в том, что разработчики осведомлены о том, как использовать Git, и постоянно информируются о действиях компании.
Используйте файл .gitignore, чтобы исключить случайную фиксацию стандартных и сгенерированных кэшированных файлов. Имейте локально сохраненную и защищенную резервную копию
5. Проверяйте наличие уязвимостей в библиотеках с открытым исходным кодом
Библиотеки с открытым исходным кодом – это важный компонент при создании приложений. Однако программное обеспечение сторонних разработчиков может быть подвержено изменениям кода, что может косвенно повлиять на безопасность вашего приложения.
Обязательно анализируйте и сканируйте пакеты с открытым исходным кодом на наличие известных проблем безопасности. Используйте инструменты анализа композиции программного обеспечения для анализа стороннего программного обеспечения, компонентов или файлов.
И в конце пометьте все выявленные проблемы, чтобы сохранить качество кода на максимальном уровне.
6. Автоматизируйте обеспечение безопасности с помощью IaC
Инфраструктура, представленная как код (IaC) обеспечивает согласованные условия разработки и тестирования. В отличие от ручной настройки среды инструменты IaC, такие как Ansible, Terraform или Puppet, помогают автоматически обеспечивать безопасность инфраструктуры.
Дополнительное преимущество заключается в том, что IaC безупречно работает в цепочке инструментов DevOps. Постоянное тестирование конфигураций многократного применения и обеспечение исполнения установленных процедур гарантируют отличные производственные результаты и высокое качество программного обеспечения.
7. Мониторинг приложения после развертывания
После развертывания приложения постоянно сканируйте его и контролируйте с целью предотвратить любые угрозы. Мониторинг помогает отслеживать и устранять подозрительную активность на основе предоставляемых данных.
Используйте такие инструменты, как Grafana или Kibana, для создания интерактивных визуальных информационных панелей, чтобы получать уведомления о любых подозрительных действиях.
8. Распределите задачи и создайте ролевую модель доступа
Наделение пользователей правами доступа может замедлить и даже помешать процессу тестирования. Тем не менее, установление и применение ролевой модели доступа для выполнения только основных задач имеет решающее значение с точки зрения безопасности.
Когда дело доходит до Git, определите роли доступа для каждого репозитория и установите двухфакторную аутентификацию для каждого зафиксированного участка кода. Попробуйте применить систему разделения задач, чтобы обеспечить безопасность конвейера, сохраняя при этом непрерывную доставку.
9. Храните персональные данные в безопасности
Защитите все персональные данные, которые обеспечивают доступ к программному обеспечению и службам, такие как токены API, пароли, ключи SSH, ключи шифрования и т.д. Ненадежная защита персональных данных может дать возможность хакерам «нанести удар», что может привести к утечке данных и краже интеллектуальной собственности.
Поэтому используйте платформу управления ключами защиты для безопасного и автоматизированного доступа к ключам. Программное обеспечение обеспечивает использование учетных цифровых идентификационных данных только при явном запросе. Для управления несколькими сложными паролями используйте соответствующее программное обеспечение для управления паролями.
10. Наводите порядок
В среде CI/CD все процессы и задачи протекают быстро и без надлежащей очистки. Обязательно закрывайте все временные ресурсы, такие как виртуальные машины, контейнеры или процессы. Помимо этого, обеспечьте надлежащую безопасность в целом и удалите лишние утилиты и инструменты.
Заключение
Безопасность конвейера CI/CD – это процесс, который меняется от системы к системе. В данной статье была представлена процедура обеспечения безопасности конвейера CI/CD.