Я подготовил сценарий PowerShell для входа в режим «клиша» брандмауэра контрольной точки и оттуда в режим «эксперта», а затем запускаю команды проверки работоспособности, которые сохраняются в файл. Пример сценария выглядит следующим образом.
Import-Module SshShell
#!/usr/bin/expect
$IP = Read-Host -Prompt 'Enter the device ip address='
$username = Read-Host -Prompt 'Username='
$password = Read-Host -Prompt 'Please enter $username password='
$elevatedPrompt = "#"
$filepath ="C:\"
$filename ="_HC_"
$outfile = $filepath+$IP+$filename+$ext
$s = New-SshSession -SshHost $IP -User $username -Password $password
$expertp = Read-Host -Prompt "Please enter Expert password"
Send-SshCommand $s "expert"
Send-SshCommand $s -Command $expertp -Expect $elevatedPrompt
Send-SshCommand $s "date" | Out-File $outfile -Append
Send-SshCommand $s "uptime" | Out-File $outfile -Append
Close-SshSession $s
Проблема в том, что я не мог попасть в подсказку «expert», когда я запускаю этот скрипт, получаю следующий результат. (предположим, что "abcdefg" является значением $ expertp)
fw1> expert
Enter expert password:
Wrong password.
fw1>
Send-SshCommand : Result not match expected pattern '#'.
Command result:
fw1> abcdefg
CLINFR0329 Invalid command:'abcdefg'.
fw1>
fw1>
At line:21 char:1
+ Send-SshCommand $s -Command $expert -Expect $elevatedPrompt
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidResult: (C60.SshShellPow....SendSshCommand:SendSshCommand) [Send-SshCommand], Exception
+ FullyQualifiedErrorId : -2,C60.SshShellPowerShellModule.Cmdlets.SendSshCommand
C:\windows\system32>
Поскольку тот же сценарий я использую для Bluecoat Proxy, и он просто работает нормально (вместо «эксперта» используйте команду «enable», чтобы войти в режим включения в Bluecoat). Результат при использовании для прокси будет следующим:
prox01>enable
Enable Password:
Enable Password:
prox01#
Подвох здесь в том, что скрипт пытается войти в режим «включения» прокси-сервера на него со второй попытки (как показано в журналах выше), однако в контрольной точке «эксперт» работает очень быстро, и его запрашивают только один раз, и если предоставленный пароль был неправильный, он не сработает для второго запроса, если не будет повторно введена команда «expert». Но в bluecoat, таком как Cisco, он будет трижды запрашивать друг друга при вводе неверных учетных данных.
У меня есть требование использовать наши индивидуальные учетные данные пользователя (для подотчетности) для регистрации брандмауэра контрольных точек (который будет работать только в режиме клиша!), Чтобы позже войти в экспертный режим и мне нужно выполнить команды проверки работоспособности контрольной точки.
Я знаю, что изменение пользовательской привилегии для входа в меня напрямую в экспертный режим командой: "chsh -s / bin / bash username", однако это не будет отвечать моим требованиям здесь из-за подотчетности. Я очень стараюсь, чтобы мой скрипт работал, что помогает мне использовать один и тот же скрипт для прокси и брандмауэра, работающего на Windows-машине.