Как проверить, разрешен ли исходящий IP-адрес группы безопасности сети Azure?

У меня мало проблем с группой безопасности сети Azure. В настоящее время я использую службы приложений Azure для публикации своего веб-сайта и в Azure, службах приложений, сетевая сторона, контролируемая NSG, например безопасность входящего и исходящего трафика и другие вещи.

Я работаю с платежным шлюзом sagepay. Они попросили меня сделать следующие шаги для успешной интеграции sagepay.

Please ensure that all of the following IP addresses are allowed
within your Server or Firewall:

For outbound traffic to our gateway:

195.170.169.9 – live.sagepay.com
195.170.169.8 – test.sagepay.com

For inbound traffic you only need to whitelist IPs if you are
The IPs from which we call back are:

195.170.169.14
195.170.169.18
195.170.169.15

The Subnet mask used by Sage Pay is 255.255.255.000

Please ensure that your firewalls allow outbound Port 443 (HTTPS
only!) and inbound Ports 443 (and optionally 80 HTTP) access in
order to communicate with our servers (on Simulator/Test/Live).

В моей сетевой группе

Я только что добавил правило для входящих подключений к порту 80 443 и внесение IP-адресов в белый список - 195.170.169.0/24 и проделал то же самое с моим правилом исходящего трафика.

но как мне проверить, работают эти вещи или нет? потому что по-прежнему мой веб-сайт не может получить ответ со стороны sagepay (URL-адрес уведомления также правильный, согласно команде поддержки sagepay)


person TDM    schedule 06.08.2016    source источник
comment
Вы говорите, что размещены в службе приложений, но затем упоминаете правила NSG. Правила NSG не применяются к службе приложений, поскольку она не находится в виртуальной сети. Вы можете уточнить?   -  person evilSnobu    schedule 06.08.2016
comment
Да, мой веб-сайт размещен в службах приложений. Когда мы создаем службу приложений, мы также можем создать группу ресурсов. Поэтому мы можем создать NSG для этой группы ресурсов. Поэтому я думаю, что правила NSG применимы и к службам приложений той же группы ресурсов. Если Вы хотите получить более подробную информацию, я также могу опубликовать изображение. без этой NSG, как я предполагаю предоставлять правила для входящих и исходящих правил в службах приложений? не могли бы вы помочь мне решить эту проблему?   -  person TDM    schedule 06.08.2016
comment
Это неверно. Группа ресурсов - это просто логическая оболочка. Если вы создаете группу безопасности сети и помещаете ее в группу ресурсов, она ни к чему не применяется. Вы должны сделать это явно (например, ВМ ›Сетевая интерфейсная карта› применить NSG). Группы безопасности сети не применяются к службе приложений (которая является предложением PaaS и не находится в виртуальной сети).   -  person evilSnobu    schedule 06.08.2016
comment
Для службы приложений вы управляете входом с помощью <ipSecurity> в web.config: stokia .com / support / misc / web-config-ip-address-Restriction.aspx. Поскольку служба приложений предоставляет только общедоступные конечные точки, вы можете указать только общедоступное IP-пространство в <ipSecurity>. Если вам нужен больший контроль, посмотрите на среду службы приложений - azure.microsoft.com/en-us/documentation/articles/   -  person evilSnobu    schedule 06.08.2016
comment
@evilSnobu, что вы имеете в виду под входом? имеется ввиду входящий и исходящий ip-адрес?   -  person TDM    schedule 06.08.2016
comment
входящий == входящий. Вы не можете фильтровать исходящий трафик в службе приложений. Разрешить любой любой.   -  person evilSnobu    schedule 06.08.2016
comment
спасибо @evilSnobu. я пытался контролировать свой вход в web.config. но это не работает   -  person TDM    schedule 06.08.2016
comment
(На самом деле я новичок в Azure и веб-разработке. Но я пытаюсь быстро изучить эти вещи.)   -  person TDM    schedule 06.08.2016
comment
Убедитесь, что вы указали правильное значение для <ipSecurity allowUnlisted="true | false">. Это действительно работает, поэтому дважды проверьте свою конфигурацию.   -  person evilSnobu    schedule 06.08.2016
comment
да, я дважды проверял. (мой IP-адрес входящего трафика, вы можете проверить его в моем основном вопросе), я пробовал несколько способов. но на самом деле allowunlisted всегда должен быть true. в противном случае после публикации моего веб-сайта я также не могу подключиться. но в Ipaddress тоже допускается правда. это не имеет никакого значения. я сделал что-то не так? ‹Security› ‹ipSecurity allowUnlisted = true› ‹clear /› ‹add ipAddress = 195.170.169.0 subnetMask = 255.255.255.0 allowed = true /› ‹/ipSecurity› ‹/security›   -  person TDM    schedule 06.08.2016


Ответы (1)


ОБНОВЛЕНИЕ (июль 2020 г.):

Теперь есть более элегантный подход: используйте встроенную функцию в службе приложений - https://docs.microsoft.com/en-us/azure/app-service/app-service-ip-restrictions#добавление-и-редактирование-ограничения-доступа-правила-на-портале

Ограничения IP

Мой ответ ниже устарел.


Вот ответ на ваш следующий вопрос в комментариях.

<system.webServer>
    <security>
       <!-- this line denies everybody, except those listed below -->            
       <ipSecurity allowUnlisted="false">
           <!-- remove all upstream restrictions -->    
           <clear/>
           <!-- allow this network -->          
           <add ipAddress="195.170.169.0" subnetMask="255.255.255.0" allowed="true" />
       </ipSecurity>
    </security>
...
</system.webServer>

Ожидаемый результат (при использовании общедоступного IP-адреса за пределами разрешенной сети):

$ curl -i http://{sitename}.azurewebsites.net/

HTTP/1.1 403 Forbidden
Content-Length: 58
Content-Type: text/html
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET
Date: Sat, 06 Aug 2016 19:46:04 GMT

You do not have permission to view this directory or page.
person evilSnobu    schedule 06.08.2016
comment
Я так и сделал, но это не работает. почему я должен блокировать мои входящие IP-адреса sagepay (195.170.169.0)? мне нужно разрешить им доступ. Я не думаю, что этот процесс может выполняться с использованием IP-безопасности веб-конфигурации. - person TDM; 07.08.2016
comment
Мне следовало уделить больше внимания твоему первоначальному вопросу. Просто поменяйте местами утверждения. См. Мой отредактированный ответ. - person evilSnobu; 07.08.2016
comment
Это нормально @evilSnobu, на самом деле, если мне это нравится, то после публикации я также не могу получить доступ - у вас нет разрешения на просмотр этого каталога или страницы. потому что allowUnlisted = false - person TDM; 07.08.2016
comment
Вы уверены, что идете с 195.170.169.0/24? Я только что протестировал этот фрагмент, и он работает должным образом. - person evilSnobu; 07.08.2016
comment
На самом деле это не мой диапазон IP-адресов. Это диапазон IP-адресов sagepay. Как вы это проверили? есть ли какие-то специальные инструменты для этого? на самом деле sagepay (платежный шлюз) нуждается в нас для этого. Для исходящего трафика на наш шлюз: 195.170.169.9 - live.sagepay.com 195.170.169.8 - test.sagepay.com Для входящего трафика вам нужно занести IP-адреса в белый список, только если вы являетесь. IP-адреса, с которых мы перезваниваем: 195.170.169.14 195.170 .169.18 195.170.169.15, поэтому я использовал этот диапазон для использования sagepay 195.170.169.0/24, на самом деле мне нужно разрешить входящие и исходящие IP-адреса. - person TDM; 07.08.2016
comment
Нет необходимости вносить что-либо в белый список, поскольку по умолчанию в Службе приложений Azure не включено ограничение IP. Все должно работать как есть (без <ipSecurity> in). <ipSecurity> предназначен для ОГРАНИЧЕНИЯ доступа. - person evilSnobu; 07.08.2016
comment
На самом деле я должен сделать это в своей NSG по вашей ссылке azure.microsoft.com/en-us/documentation/articles/, но это немного сложно, надо еще много чего сделать. - person TDM; 07.08.2016
comment
Среда службы приложений сильно отличается от службы приложений. Вы можете создавать группы безопасности сети в ASE, потому что вы развертываете их внутри своей виртуальной сети. Однако ваша проблема, скорее всего, связана с уровнем кода, а не с ограничением порта / хоста / IP. Я бы углубился в то, как выглядит ваш запрос на sagepay и что возвращается. - person evilSnobu; 07.08.2016
comment
на самом деле уровень кода уже выполнен. в транзакции я могу подключиться к странице sagepay. поэтому часть оплаты выполняется на уровне sagepay. мне нужно отправлять только мои данные транзакции. но с моими данными транзакции мне нужно отправить URL-адрес ответа. потому что после sagePay завершите свою платежную сторону, они отправят мне ответ (платеж успешен или нет). но в моем случае я не могу уловить этот ответ. но я могу подключиться к sagepay и отправить свои данные транзакции. - person TDM; 07.08.2016
comment
Мне нужно сделать следующую часть, чтобы добиться от этого успеха. Для входящего трафика вам нужно внести в белый список IP-адреса, только если вы являетесь. IP-адреса, с которых мы перезваниваем: 195.170.169.14 195.170.169.18 195.170.169.15 два дня назад я получил письмо от sagepay, я добавлю сюда часть этого сообщения. обычно не так долго, я считаю, что это происходит из-за проблемы с подключением к вашему URL-адресу уведомления, и вы видите, что мы продолжаем попытки. Приведенный ниже отрывок показывает, что мы возвращаемся из банка, чтобы сообщить вам, что у нас есть деньги, но мы не подключаемся к вашему URL-адресу уведомления. - person TDM; 07.08.2016
comment
Итак, чтобы сделать это, мне также нужно добавить VNET ... На самом деле в Azure они должны делать часть за частью. Я иногда не знаю, что делать. потому что я просто создаю новую службу приложения. после этого я просто добавляю новую виртуальную сеть. существует также отдельный NSG. необходимо объединить эти вещи. - person TDM; 07.08.2016
comment
Моя часть кодирования завершена, я могу подтвердить это, потому что я занимаюсь интеграцией sagepay mvc. Это решение jeremyskinner.co.uk/2009/09/27/using-sagepay-with-asp-net-mvc Я также общался с Джереми. не имеет ничего общего с уровнем кодирования. он также проверил мою часть кодирования. это нормально. проблема заключается в части брандмауэра, а службы приложений не имеют брандмауэра - person TDM; 07.08.2016
comment
Какой у вас URL-адрес уведомления? - person evilSnobu; 07.08.2016
comment
ubttimestravel.azurewebsites.net/PaymentResponse/Notify Фактически этот URL создается отдельно. в моем webconfig мне нужно определить эти вещи ‹добавить ключ = значение NotificationHostName = ubttimestravel.azurewebsites.net /› ‹добавить ключ = значение NotificationController = PaymentResponse /› ‹добавить ключ = значение NotificationAction = Notify /› но это нормально. url сгенерирован успешно и отправлен в sagepay. они подтверждают это своими сообщениями журнала. но проблема в том, что они не могут получить к нему доступ. - person TDM; 07.08.2016
comment
Какую ошибку они получают, когда пытаются вызвать ваш URL-адрес уведомления? Поскольку этот ubttimestravel.azurewebsites.net/PaymentResponse возвращает внутреннюю ошибку сервера HTTP 500. Может, у меня нет нужных параметров, чтобы это вызвать? Кроме того, если я могу позвонить и получить 500, почему они не могут? - person evilSnobu; 07.08.2016
comment
да, у него есть параметры. извините, я не упомянул об этом. На самом деле в тот момент я не получил от них никакого ответа. Я также проверил это со скрипачом. Сообщение об ошибке - ошибка сервера 5006: невозможно перенаправить на веб-сайт поставщика. Поставщику не удалось предоставить URL-адрес перенаправления. это моя ошибка. может быть 2 причины этой ошибки. 1 - Неверный URL-адрес уведомления 2 - на самом деле это может быть блокировка брандмауэра, что ответ приходит на мой сервер. Я имею в виду, что с соответствующим параметром они отправляют его моему контроллеру / действию, а затем моя страница перемещается. на самом деле я застрял в этой части 4 дня. - person TDM; 07.08.2016
comment
Мой веб-сайт, размещенный в Службах приложений Azure, позволяет произнести имя моего сайта SiteA. у него есть группа ресурсов RG-SiteA. поэтому я могу добавить NSG к этому RG. скажем, что это SiteA-NSG, если я передам свой IP-адрес OB NSG и откажу в доступе - тогда в результате не будет доступа к моему веб-сайту. но я могу это сделать. я думаю, вы могли бы понять проблема. я предполагаю, что NSG не работает без VNET и ASE. это не имеет значения для той же группы ресурсов. он не работает без VNET и ASE. эта страница проясняет эту ситуацию. azure.microsoft .com / ru-ru / документация / статьи / - person TDM; 07.08.2016
comment
Проблема, с которой вы столкнулись, не связана с сетью безопасности сети или брандмауэром, поскольку ничего из этого не существует в службе приложений. Получите полное сообщение об ошибке + трассировку стека от Sagepay и начните устранение неполадок там. - person evilSnobu; 07.08.2016
comment
на самом деле я сделал это. они также попросили меня проверить мой брандмауэр или настройки сервера. но вы дали мне хороший совет, я могу получить к нему доступ, тогда почему они не могут. это хороший момент. с правильными параметрами, к которым мы можем получить доступ. поэтому они также могут для этого ... я добавлю stacktrace как 3 части. не могу добавить его в 1 комментарий, потому что он слишком длинный. - person TDM; 07.08.2016
comment
Вероятно, вам следует удалить эти последние 3 комментария, поскольку они, кажется, содержат много конфиденциальной информации. Обязательно вернитесь к Sagepay и попытайтесь исправить это вместе, здесь, на SO, вы мало что можете сделать по этому поводу. - person evilSnobu; 07.08.2016
comment
спасибо за помощь. да, я удалил это. но сейчас я использую их тестовый портал. так что все в порядке. я сделал все, чтобы исправить это. sagepay сказал, что это проблема с моим брандмауэром или сервером. да, конечно, мне нужно связаться с sagepay и решаем эту проблему вместе. еще раз спасибо. Я пытался переместить это обсуждение в чат. но у меня недостаточно репутации, чтобы сделать это. извините за это. Если я решу эту проблему, я опубликую ее здесь. Спасибо еще раз. - person TDM; 07.08.2016