<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Üdvözlet!<br>
<br>
Nagy örömmel olvastem az IPTABLESes levelet, nagy várakozásal vagyok
ez ügyben. Sajnos nem volt időm foglalkozni mostanában nagyon ezzel,
mert itt megkezdődött az évvégi hajtás. Jól. :(<br>
<br>
De!<br>
<br>
Meglestem a dolgot.<br>
<br>
Ez alapján csináltam is egy olyat, hogy:<br>
<br>
Vagy egy zorp amiben egy dummy0 interfacen fut egy webszerver:<br>
<br>
iptables<br>
<br>
<small><small><small># Generated by iptables-save v1.4.14 on Fri
Nov 9 10:54:37 2012<br>
*filter<br>
:INPUT ACCEPT [12630:1064741]<br>
:FORWARD ACCEPT [0:0]<br>
:OUTPUT ACCEPT [30302:5576360]<br>
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT<br>
-A INPUT -m state --state ESTABLISHED -j ACCEPT<br>
-A INPUT -m mark --mark 0x80000000/0x80000000 -j ACCEPT<br>
-A OUTPUT -m mark --mark 0x80000000/0x80000000 -j ACCEPT<br>
COMMIT<br>
# Completed on Fri Nov 9 10:54:37 2012<br>
# Generated by iptables-save v1.4.14 on Fri Nov 9 10:54:37
2012<br>
*mangle<br>
:PREROUTING ACCEPT [0:0]<br>
:INPUT ACCEPT [55883:34402514]<br>
:FORWARD ACCEPT [0:0]<br>
:OUTPUT ACCEPT [30302:5576360]<br>
:POSTROUTING ACCEPT [0:0]<br>
-A PREROUTING -m socket --transparent -j MARK --set-xmark
0x80000000/0x80000000<br>
-A PREROUTING -j KZORP --tproxy-mark 0x80000000/0x80000000 <br>
-A FORWARD -j KZORP --tproxy-mark 0x80000000/0x80000000 <br>
-A POSTROUTING -j KZORP --tproxy-mark 0x80000000/0x80000000 <br>
COMMIT<br>
# Completed on Fri Nov 9 10:54:37 2012</small></small></small><br>
<br>
policy.py<br>
<br>
<small><small><small>from Zorp.Core import *<br>
from Zorp.Http import *<br>
from Zorp.Proxy import *<br>
<br>
InetZone('internet', ['0.0.0.0/0'],<br>
outbound_services=[<br>
"inetnetnet_HTTP_login0-localcahe"])<br>
<br>
InetZone('login0', ['1.1.1.1/32'])<br>
<br>
InetZone('login0-localcache', ['172.16.101.254/32'],<br>
inbound_services=[<br>
"inetnetnet_HTTP_login0-localcahe"],<br>
admin_parent='login0')<br>
<br>
<br>
NATPolicy(name="inetnet_2_login0-localcache",
nat=GeneralNAT(mapping=((InetDomain(addr="0.0.0.0/0"),
InetDomain(addr="1.1.1.1/32"),
InetDomain(addr="172.16.101.254/32")),)))<br>
<br>
def http() :<br>
Service(name="inetnetnet_HTTP_login0-localcahe",
router=TransparentRouter(forced_port=0, forge_addr=FALSE,
forge_port=Z_PORT_ANY, overrideable=FALSE),
chainer=ConnectChainer(), max_instances=0,
proxy_class=HttpProxy,
dnat_policy="inetnet_2_login0-localcache")<br>
Dispatcher(transparent=FALSE,
bindto=DBIface(protocol=ZD_PROTO_TCP, family=2, iface="eth0",
ip="1.1.1.1", port=80),
service="inetnetnet_HTTP_login0-localcahe", rule_port="80")</small></small></small><br>
<br>
<br>
Ez így müködik is és megjelenik a weboldal a kíváncsiskodó számára,
de az látszik a logban, hogy a kérelem a 172.16.101.254.ről érkezik.<br>
Akkor sem látszik az eredeti IP, ha a webszerveren a logolásnál
figyelek a varnish x-forwarded-for-ra.<br>
<br>
172.16.101.254 - - [09/Nov/2012:11:01:54 +0100] "GET
<a class="moz-txt-link-freetext" href="http://example.com/sites/all/themes/bordo/images/backtotop-arrow-dark.png">http://example.com/sites/all/themes/bordo/images/backtotop-arrow-dark.png</a>
HTTP/1.1" 304 0
<a class="moz-txt-link-rfc2396E" href="http://example.com/sites/all/themes/bordo/style.css?md27b0">"http://example.com/sites/all/themes/bordo/style.css?md27b0"</a>
"Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20100101
Firefox/16.0 Iceweasel/16.0.2"<br>
<br>
Akad esetleg egy mentő ötlet?<br>
<br>
<br>
<br>
Köszönöm!<br>
<br>
Tisztelettel:<br>
Cs<br>
<br>
</body>
</html>