Я пытаюсь проверить, есть ли в конфигурации IOS все VTY только с SSH.
Я использую Python с библиотекой ciscoconfparse2 и создал эту функцию (на этом этапе я не использую все параметры):
Просто для контекста, параметры имеют следующую информацию:
Код: Выделить всё
in_test = (a list with several lines: line vty 0 4, line vty 5 15 and line vty 16 31
in_rexp = line vty 0 4 or line vty 5 15 or line vty 16 31
in_defa = transport input ssh
Код: Выделить всё
def func_parent(in_parse, in_test, in_rexp, in_defa, in_neg) -\> bool:
'''
Checks if the VTYs have SSH only.
'''
object_name = [
obj for obj in in_parse.find_parent_objects(in_rexp, in_defa)]
print(object_name)
if not object_name:
print(
Fore.RED + f'{in_test} has not SSH only ----------> 9')
return False
else:
print(
Fore.GREEN + f'{in_test} has SSH only ----------> 10')
return True
Теперь для следующей конфигурации...
Код: Выделить всё
line vty 0 4
exec-timeout 0 0
logging synchronous
length 0
transport input ssh
line vty 5 15
exec-timeout 0 0
logging synchronous
length 0
transport input ssh
line vty 16 31
length 0
transport input ssh
!
Код: Выделить всё
\[\\]
line vty 0 4 has SSH only ----------\> 10 \>\>\> OK
\[\\]
line vty 5 15 has SSH only ----------\> 10 \>\>\> OK
\[\]
line vty 16 31 has not SSH only ----------\> 9 \>\>\> WRONG
И для этой конфигурации..
Код: Выделить всё
line vty 0 4
exec-timeout 0 0
logging synchronous
transport input ssh telnet
length 0
line vty 5 15
exec-timeout 0 0
transport input telnet
length 0
line vty 16 31
exec-timeout 10 0
transport input ssh telnet
length 0
!
Код: Выделить всё
\[\\]
line vty 0 4 has SSH only ----------\> 10 \>\>\> WRONG
\[\]
line vty 5 15 has not SSH only ----------\> 9 \>\>\> OK
\[\]
line vty 16 31 has not SSH only ----------\> 9 \>\>\> OK
Я пробовал с find_parent_objects, а также с find_child_objects с тем же результатом.
Возможно, это не лучший способ проверить SSH только в конфигурации, благодарю за вашу помощь!
TIA
Подробнее здесь: https://stackoverflow.com/questions/782 ... coconfpars
Мобильная версия