LINUX.ORG.RU
решено ФорумAdmin

Удаление с iptables

 


0

1

Здравствуйте.

Подскажите, как удалить с iptables «на ходу». Добавление отлично работает:

iptables -t nat -A PREROUTING -p tcp ...

а вот удалить:

iptables -D PREROUTING -p tcp ...
никак не получается. (заместь троеточия одинаковая строка)


Ответ на: комментарий от anonymous
iptables -t nat -D PREROUTING ... 

не работает тоже. сам iptables -L (-S) вообще ничего не показывает, в iptables-save правила показываются

alexni
() автор топика
Ответ на: комментарий от alexni

iptables -L (-S) вообще ничего не показывает,

-t nat добавь.

iptables-save правила показываются

Значит не так удаляешь

Deleted
()
Ответ на: комментарий от Deleted
iptables -t nat -D PREROUTING 2 

удаляет (2 номер в списке «iptables -t nat -L --line-numbers»

iptables -t nat -D PREROUTING -p tcp --dport 7625 -j DNAT --to-destination 10.0.0.27:8300
не хочет. добавление аналогично только с -А

alexni
() автор топика
Ответ на: комментарий от alexni
mini-router ~ # iptables -t nat -A PREROUTING -p tcp --dport 7625 -j DNAT --to-destination 10.0.0.27:8300 ; echo $?
0
mini-router ~ # iptables -t nat -D PREROUTING -p tcp --dport 7625 -j DNAT --to-destination 10.0.0.27:8300 ; echo $?
0

УМВР. Название и версию дистрибутива, также версию iptables - в студию

Pinkbyte ★★★★★
()
Ответ на: комментарий от AS

должно. согласно man iptables -D chain rulenum или -D chain rule-specification

alexni
() автор топика
Ответ на: комментарий от AS

Удаление работает только по номеру.

Нет. Об этом даже в iptables --help написано - можно удалять по номеру, можно по matching rule - то есть по полностью совпадающему правилу. Только совпадать оно должно от и до, вплоть до target, иначе не взлетит. Если совпадений несколько - удаляется первое по порядку

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от alexni

Linux - это не дистрибутив. Хотя за версию ядра спасибо.

-pve

Это proxmox, я так полагаю?

Код ошибки какой? 'echo $?' сразу после неудачного выполнения что возвращает?

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от alexni

0

Не может такого быть. echo $? выводит код возврата последней команды, если ты после iptables выполнил что-то еще(ls например), что завершилось успешно - тогда да, у тебя будет 0.

Вот выхлоп СРАЗУ после ошибки(ошибка у меня тут в том, что я не добавлял предварительно ничего в PREROUTING) БЕЗ выполнения каких либо других команд:

mini-router ~ # iptables -t nat -D PREROUTING -p tcp --dport 7625 -j DNAT --to-destination 10.0.0.27:8300 ; echo $?
iptables: No chain/target/match by that name.
1

0 - это код успешного завершения, у тебя должен быть какой-то другой.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

ну вродь как сразу дописал "; echo $?" - в ответ 0, а эффекта тоже 0 )

пробовал на другой ноде. все отлично работает. Это видать глюк какой-то, но проблема в том, что нет возможности перегрузить ноду.

alexni
() автор топика
Ответ на: комментарий от AS

О сколько нам открытий чудных... Простите не удержался. :) Я вообще всю жизнь только так и использую, крайне редко что бы номер понадобился, это же просто не удобно. :)

anc ★★★★★
()
Ответ на: комментарий от alexni

в ответ 0, а эффекта тоже 0 )

И при этом ошибку пишет? И никакого другого вывода нет? Интересно.

Ну-ка покажи весь выхлоп от следующих комманд:

iptables -t nat -vn -L
iptables -t nat -A PREROUTING -p tcp --dport 7625 -j DNAT --to-destination 10.0.0.27:8300
iptables -t nat -vn -L
iptables -t nat -D PREROUTING -p tcp --dport 7625 -j DNAT --to-destination 10.0.0.27:8300
Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Мне кажется вы уже написали ответ выше

Если совпадений несколько - удаляется первое по порядку

С учетом экспериментов ТС

но проблема в том, что нет возможности перегрузить ноду.

Вполне возможно что правил несколько, поэтому удаляется одно из множества добавленных ранее. Для надежности

while iptables -t nat -D PREROUTING -p tcp --dport 7625 -j DNAT --to-destination 10.0.0.27:8300; do :; done

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

скопировать нет возможности. ручками:

iptables -t nat -vn -L
chain PREROUTING (policy ACCEPT 2764packets, 173K bytes)
pkts bytes target prot opt in out source      destination
7     400    DNAT  tcp  --  *  *   0.0.0.0\0  0.0.0.0\0  tcp dpt:7625 to 10.0.0.27:8300
после "-D" с правиллом тоже самое, после "-D 2" (с номером) убирается

alexni
() автор топика
Ответ на: комментарий от Pinkbyte

в POSTROUTING target MASQUERADE out vmbr0 source 10.0.0.0\24 dest 0.0.0.0/0

alexni
() автор топика
Ответ на: комментарий от anc

О сколько нам открытий чудных...

Ага. :-)

AS ★★★★★
()
Ответ на: комментарий от alexni

Если нет возможности скопипастить, то не исключаю варианта ошибки при написании комманд. Доберитесь до устройства с которого и копипаста сработает, и повторите.

anc ★★★★★
()
Ответ на: комментарий от anc

anc + Пользуюсь shell (js) с браузера, ssh отключен на хосте, а шелл по всей видимости сошел с ума (явно уже проявилось, когда при вводе комманд начались «скакания» курсора и самопроизвольная замена текста. Включил ssh, все как часы работает. Нода ждет перезагрузки )

Приношу извинения за глупое беспокойство.

alexni
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.