У меня встроенное встроенное программное обеспечение Linux, работающее на домашнем маршрутизаторе. Когда я запускаю следующие команды один за другим с терминала как root, он работает без ошибок и служит моей цели. Я знаю, что это не безопасная политика. Это только для проверки чего-то.Как изменить записи iptable с помощью скрипта bash?
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -A INPUT -p tcp -i eth1 --dport 4444 -j ACCEPT
Однако, когда это выполняется в Баш скрипт как корень, как показано ниже,
#!/bin/bash
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -A INPUT -p tcp -i eth1 --dport 4444 -j ACCEPT
это дает следующее сообщение об ошибке:
iptables: Bad policy name. Run `dmesg' for more information.
iptables: Bad policy name. Run `dmesg' for more information.
iptables: Bad policy name. Run `dmesg' for more information.
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
Я подтвердил, что последняя строка скрипт bash выполняется без ошибок, и запись может быть видна в iptables. Однако все остальные строки выдают ошибку. Что я делаю не так? Удивительно, но тот же командный скрипт отлично работает на моей машине Ubuntu.
Как вы запускали сценарий оболочки с правами root? Можете ли вы сообщить нам, как вы его вызвали? – Inian
Маршрутизатор был отправлен с помощью службы telnet по умолчанию с учетными данными по умолчанию. –