Нет ли способа заблокировать / IP-фильтр трафика с портала?И можно ли установить его из нашей облачной службы?
Каждый раз, когда запускается ваш экземпляр, он будет проверять конечные точки, которые были настроены для роли, и открывать необходимые порты в брандмауэре.В нашем коде мы просто отключим эти правила и создадим новые правила, ограниченные несколькими IP-адресами / диапазонами IP-адресов .
Ядром этого решения является *Класс 1009 *, который анализирует параметры из ServiceConfiguration.cscfg
(который можно изменить во время развертывания приложения) и изменяет брандмауэр в каждом экземпляре.
Сначала необходимо установить пакет NuGet:
PM> Install-Package WindowsAzure.IPAddressRestriction
Если вы хотите связать IPAddressRestrictionManager
со своим ServiceConfiguration
, вам необходимо добавить следующие параметры к вашей роли:
Синтаксис настроек не слишком сложен для понимания:
IPAddressRestriction.Enabled = true
или false
IPAddressRestriction.Settings
= = или = - (разделитель между портами равен ";")
Наконец, вам нужно подключить все в вашем WebRole / WorkerRoler.cs
public class WebRole : RoleEntryPoint
{
private IPAddressRestrictionManager restrictionManager;
public override bool OnStart()
{
RoleEnvironment.Changing += OnRoleEnvironmentChanging;
ConfigureIPAddressRestrictions();
return base.OnStart();
}
private void ConfigureIPAddressRestrictions()
{
if (restrictionManager == null)
restrictionManager = new IPAddressRestrictionManager();
restrictionManager.RemoveRestrictions();
if (restrictionManager.IsEnabledInConfiguration())
restrictionManager.ApplyFromConfiguration();
}
/// <summary>
/// Force restart of the instance.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void OnRoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e)
{
if (e.Changes.Any(o => o is RoleEnvironmentChange))
e.Cancel = true;
}
}
Для получения более подробной информации вы можете обратиться к этой статье .