编辑3:
我想得到确切描述的内容http://shorewall.net/FAQ.htm#faq1g但它对我不起作用。
编辑3结束;
操作系统:debian squeeze shorwall:4.4.11.6-3
3 台计算机 a、b 和 c;shorewall 在计算机 b 上,我想从 b 到 c 对端口 8140 进行 dnat,这样计算机 a 就可以连接到 b,并将被 dn 到 c,遵循 faq 1g(感谢 omache)http://www.shorewall.net/FAQ.htm#faq1g规则、接口、masq 根据 faq 设置
直接连接工作:
a->b a->b->b(temp rule: DNAT:debug net fw:ip.of.computer.b:80 tcp 8140 - -)
b->c
a->c
计算机 b 上的常规 shortwall 规则:
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
所以 dnating 应该可以工作。根据常见问题解答,我调试了 dnat。包数量增加了。
问题是http://www.shorewall.net/FAQ.htm#faq1a“丢弃出站 SYN、ACK 响应。”如何调试?那么 b->c 和 a->c 直接连接是否也会出现问题,或者它们在没有 syn、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
编辑1:
进行了更多的调试测试,再次感谢 omache。
tcpdump ‘ip 主机 A 或 B 或 C 且不 (端口 ssh 或 http 或 smtp 或 pop3)’ tcpdump ‘ip 主机 A 或 B 或 D 且不 (端口 ssh 或 smtp 或 pop3)’
A->B->C (dnat):显示传入流量,但没有流量传到 C B->B->C (本地 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
答案1
shorewall 邮件列表提供了帮助(感谢 tom)
短墙配置文件
IP_FORWARDING=On