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.

Другие вопросы по тегам