Debian iptables

Чтобы повысить надежность, отправьте статус выхода в отдельный FD, чтобы его можно было обрабатывать независимо от stdout/stderr:

exit_status() {
    "$@"
    rv=$?
    echo >&3 "$rv"
    return "$rv"
}

# exit status and stdout to stdout:
> exit_status echo "hello" 3>&1
hello
0

# exit_status to stdout, stdout to /dev/null
> exit_status echo "hello" 3>&1 1>/dev/null
0
> exit_status ehco "hello" 3>&1 1>/dev/null
ehco: command not found
127

# exit_status to stdout, stdout and stderr to /dev/null
> exit_status ehco "hello" 3>&1 &>/dev/null
127

Обратите внимание, что вам нужно что-то сделать с FD3, иначе он скажет Bad file descriptor.

Это может быть дополнительно сконфигурировано для обеспечения этих выходных данных входными данными другой программы путем прослушивания другой программой более чем одного FD; вы могли бы использовать это как своего рода Kibana начала 90-х:)

0
16.07.2020, 22:18
1 ответ

Ваши правила NAT неверны. Попробуйте следующее (, предполагая, что вы только что установили сервер IPSec/VPN)

Для просмотра существующих правил цепочки NAT (перед удалением):

$ sudo iptables -t nat -L -n --line-numbers

Чтобы удалить существующие правила NAT:

$ sudo iptables -t nat -D POSTROUTING 3

Повторяйте приведенную выше команду, пока не останутся следующие два правила NAT:

1    MASQUERADE  all  --  192.168.42.0/24      0.0.0.0/0
2    MASQUERADE  all  --  192.168.43.0/24      0.0.0.0/0            policy match dir out pol none

Теперь пришло время добавить правило DNAT, которое будет перенаправлять TCP 8080с интернет-IP-адреса(1.2.3.4)на IP-адрес VPN-клиента (192.168.42.10)

.
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 192.168.42.10:8080

Это все, что вам нужно. Затем вы можете сохранить правила iptables, если все работает нормально.

0
18.03.2021, 23:19

Теги

Похожие вопросы