Безопасный трафик Skype через Forefront
Как я могу позволить Skype правильно работать с ограниченными исходящими портами, проверкой HTTPS и включенным прокси IE? Вся документация, с которой я столкнулся, предлагает отключить хотя бы одну из этих функций.
В идеале это должно быть так же просто, как настроить прокси-сервер в Skype на сервере переднего плана на порту 8080, но использование самозаверяющих сертификатов делает это невозможным из-за административных накладных расходов, связанных с постоянным добавлением исключений из проверки назначения и источника HTTPS.
Чего я действительно надеюсь добиться, так это разрешить весь трафик только для Skype и Skype.
1 ответ
В итоге я выбрал метод, позволяющий разрешить весь трафик из исполняемого файла Skype, но не из чего-либо еще. Поскольку Forefront не может надежно определить исполняемый файл, который выполняется в соответствии с этим, я решил создать правило, которое разрешает весь исходящий трафик для определенной группы пользователей / пользователей и заставляет Skype выполняться под этим пользователем / группой. Следующий скрипт AutoIT предоставляет необходимые функции для надежной работы.
#include <Crypt.au3>
; #RequireAdmin ; only for setting the password
Func SetEncrypted($vPassword,$Field)
_Crypt_Startup()
$path="HKLM\Software\MyORG\Skype"
$Key=_Crypt_DeriveKey($vPassword, $CALG_AES_256 )
$FieldValue=InputBox($Field,"")
$output=_Crypt_EncryptData($FieldValue,$Key,$CALG_USERKEY)
RegWrite($path,$Field,"REG_SZ",$output)
_Crypt_DestroyKey($Key)
_Crypt_Shutdown()
EndFunc
Func GetEncrypted($vPassword,$Field)
_Crypt_Startup()
$path="HKLM\Software\MyORG\Skype"
$Key=_Crypt_DeriveKey($vPassword, $CALG_AES_256 )
$input=RegRead($path,$Field)
$decrypted=_Crypt_DecryptData($input,$Key,$CALG_USERKEY)
$decrypted=BinaryToString($decrypted)
_Crypt_DestroyKey($Key)
_Crypt_Shutdown()
Return $decrypted
EndFunc
$EncryptionPassword="super password which will be buried in the exe itself, set this yourself "
;SetEncrypted($EncryptionPassword,"Domain")
;SetEncrypted($EncryptionPassword,"User")
;SetEncrypted($EncryptionPassword,"Password")
$User=GetEncrypted($EncryptionPassword,"User")
$Pass=GetEncrypted($EncryptionPassword,"Password")
$Domain=GetEncrypted($EncryptionPassword,"Domain")
; Find the executable name.
$Skype = RegRead("HKLM\SOFTWARE\Skype\Phone", "SkypePath")
If( $Skype = "" ) Then
; 64 bit support
$Skype= RegRead("HKLM\SOFTWARE\Wow6432Node\Skype\Phone", "SkypePath")
EndIf
MsgBox(0,"",$Skype)
; Run Skype under alternate credentials.
RunAs($User,$Domain,$Pass, 4, $Skype, @SystemDir )
Хранение идентификатора и пароля в реестре упрощает обновление пароля для учетных записей, связанных с альтернативными учетными данными - элемент реестра GPP помогает.
РЕДАКТИРОВАТЬ - Исходящее правило, которое использует аутентификацию для всего исходящего трафика, должно находиться в самом низу списка приоритетов, прямо над правилом по умолчанию. Если этого не сделать, любой неаутентифицированный трафик изнутри (например, электронная почта для внешних сторон) будет уничтожен.