edit3:
я хотел бы получить именно то, что описано в http://shorewall.net/FAQ.htm#faq1g но у меня это не работает.
edit3 end;
os: debian squeeze Shortwall: 4.4.11.6-3
3 компьютера a, b и c; shorewall находится на компьютере b, я хотел бы указать порт 8140 с b-> c, чтобы компьютер a мог подключиться к b и был привязан к c, следуя часто задаваемым вопросам 1g (спасибо, выходите на omache) http://www.shorewall.net/FAQ.htm#faq1g. правила, интерфейсы, маска, установленная согласно faq
прямые подключения работают:
a->b a->b->b(temp rule: DNAT:debug net fw:ip.of.computer.b:80 tcp 8140 - -)
b->c
a->c
обычные правила короткого экрана на компьютере b:
DNAT:debug net net:ip.of.computer.c:8140 tcp 8140 - ip.of.computer.b
DNAT:debug $FW net:ip.of.computer.c:8140 tcp 8140 - ip.of.computer.b
так что датирование должно работать. в соответствии с часто задаваемыми вопросами я отлаживал dnat. количество пакетов увеличивается.
проблема в http://www.shorewall.net/FAQ.htm#faq1a "отбрасывание исходящего SYN, ответа ACK". как это отладить? Тогда не должны быть проблемы с прямыми соединениями b-> c и a-> c, иначе они работают без синхронизации, ack
a->b->c does not work
b->b->c does work
запись в журнале из соединения a-> b-> c
Oct 11 03:34:03 servername kernel: [3457359.671611] Shorewall:net_dnat:DNAT:IN=eth0 OUT= MAC=-SNIP- SRC=ip.of.computer.a DST=ip.of.computer.b LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=49585 DF PROTO=TCP SPT=60499 DPT=8140 WINDOW=5840 RES=0x00 SYN URGP=0
edit1:
сделал больше отладочных тестов, спасибо еще раз к omache.
tcpdump 'ip host A, B или C, а не (порт ssh, http, smtp или pop3)' tcpdump 'ip host A, B или D, а не (порт ssh, smtp или pop3)'
A-> B-> C (dnat): показывает входящий трафик, но ничего не выходит на C B-> B-> C (local dnat): работает, и трафик отображается на C
это не проблема syn, ack, я провел тест с четвертым хостом D и обменялся C с D, D - это сервер, который может отвечать ACK и SYN
Я дважды проверил информацию о часто задаваемых вопросах, это содержимое моих затронутых файлов:
правило
DNAT:debug net net:$HOST_IP_D:80 tcp 8140 - $HOST_IP_B
интерфейсы
net eth0 detect tcpflags,logmartians,nosmurfs,routeback
маска
eth0:$HOST_IP_D 0.0.0.0/0 $HOST_IP_B tcp 80
список рассылки shorewall помог (спасибо Тому)
Shortwall.conf
IP_FORWARDING=On