Python pxssh выполнить iptables не работает
Я использую pxssh
установить SSH-соединение с сервером. Для подключения можно установить и я могу запустить простые команды, такие как ls -l
,
Теперь мне нужно создать iptable-записи через это SSH-соединение. Я пробовал следующее
s = pxssh.pxssh()
print(ip)
if not s.login(ip, username, auth_password):
Log("SSH session failed on login")
Log(str(s))
else:
Log("SSH session login successful")
cmd = 'sudo iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT;'
s.sendline(cmd)
s.prompt()
print(s.before)
s.logout()
который работает без ошибок, но при подключении к серверу не было создано ни одной записи iptable!?
1 ответ
Попробуйте изменить ваш скрипт на Python следующим образом:
cmd = '/usr/bin/sudo /usr/sbin/iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT'
s.sendline(cmd)
Вам следует изменить путь sudo и iptables, если он отличается в вашей ОС
Также попробуйте распечатать s.sendline (cmd), чтобы увидеть, что на самом деле выполняется с помощью сценария ptyhon на сервере, просто чтобы убедиться, что выполняется правильная команда iptables.