Я пытаюсь выполнить простую пакетную передачу на сервере Ubuntu 14.04 (IP=192.168.36.217) с помощью iptables. Я хочу взять входящие пакеты, предназначенные к серверу на конкретном порте и переписать их новому месту назначения с указанным портом (HTTPS) и исходный набор IP к этому порту сервера и исходному порту, настроенному с NAT, таким образом, он может быть инвертирован на возвращаемых пакетах.
Искажение таблиц, сырые данные и безопасность пусты. Все правила всех таблиц имеют значение по умолчанию, ПРИНИМАЮТ. У меня есть 1 правило DNAT в PREROUTING и 1 правило SNAT в POSTROUTING. Затем я добавил некоторые правила ЖУРНАЛА только для проверки то, что происходило. Вот то, на что похожи туземные таблицы и фильтр:
Таблица фильтра
Chain INPUT (policy ACCEPT 249 packets, 15888 bytes)
num pkts bytes target prot opt in out source destination
1 143 8348 LOG tcp -- * * 10.15.4.115 0.0.0.0/0 LOG flags 0 level 4 prefix "l++: INP of interest: "
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 169 packets, 12148 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 LOG tcp -- * * 0.0.0.0/0 45.45.45.45 LOG flags 0 level 4 prefix "l++: filter\OUTPUT : "
туземная Таблица
Chain PREROUTING (policy ACCEPT 2762 packets, 279K bytes)
num pkts bytes target prot opt in out source destination
1 33 1672 LOG tcp -- * * 10.15.4.115 0.0.0.0/0 tcp dpt:65001 LOG flags 0 level 4 prefix "l++: nat PRE "
2 15 760 DNAT tcp -- * * 10.15.4.115 0.0.0.0/0 tcp dpt:65001 to:45.45.45.45:45001
3 0 0 LOG tcp -- * * 10.15.4.115 0.0.0.0/0 LOG flags 0 level 4 prefix "l++: nat PRE BOT"
Chain INPUT (policy ACCEPT 263 packets, 46239 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 LOG all -- * * 10.15.4.115 0.0.0.0/0 LOG flags 0 level 4 prefix "l++: nat INP: "
Chain OUTPUT (policy ACCEPT 60 packets, 4285 bytes)
num pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 60 packets, 4285 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 LOG tcp -- * * 10.15.4.115 0.0.0.0/0 LOG flags 0 level 4 prefix "l++: nat POST end: "
2 0 0 SNAT tcp -- * em1 10.15.4.115 0.0.0.0/0 to:192.168.36.217
3 0 0 LOG tcp -- * em1 192.168.36.217 0.0.0.0/0 LOG flags 0 level 4 prefix "l++: nat POST after SNAT: "
4 0 0 LOG tcp -- * em1 10.15.4.115 0.0.0.0/0 LOG flags 0 level 4 prefix "l++: nat POST after SNAT what"
Когда я тестирую (от 10.15.4.115: telnet 192.168.36.217 65001), это - все, что я вижу в системном журнале сообщений:
May 19 15:20:40 LDAP-Proxy kernel: [1891508.926283] l++: nat PRE IN=em1 OUT=
MAC=<omitted> SRC=10.15.4.115 DST=192.168.36.217 LEN=52 TOS=0x00 PREC=0x00
TTL=127 ID=21164 DF PROTO=TCP SPT=59394 DPT=65001 WINDOW=64512 RES=0x00 SYN
URGP=0
Я полагаю, что у меня есть правило PREROUTING, загнанное в угол с правилами ЖУРНАЛА. Пакет входит, добирается до правила DNAT и быстро исчезает.
Я с удовольствием получу любые предложения, идеи, произвольные предположения на этом проступке.Спасибо!
В дополнение к надлежащему набору правила iptables, передавая потребности, которые будут включены в ядре. Проверьте текущую установку (который значения по умолчанию к отключенному):
cat /proc/sys/net/ipv4/ip_forward
И если это отключило (0) затем, это может быть включено (не персистентное) через:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
или (все еще не персистентный) через:
sudo sysctl -w net.ipv4.ip_forward=1
Для персистентной установки (после следующей перезагрузки), отредактируйте как sudo файл /etc/sysctl.conf
и изменение эта строка:
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
К этому:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1