[zorp-hu] ssh nem megy
Kovács Bálint
kovacs.balint at balabit.hu
2013. Jún. 11., K, 20:13:27 CEST
Szia,
már a linux listán is próbáltam válaszolni, de mivel nem vagyok tag,
ezért az admin majd egyszer kiengedi On 05/31/2013 08:25 PM, tusi wrote:
> Alabb megtalalhatoak a konfig file-ok, illetve a syslog, es a tcpdump
> eredmenye. Amit nagyon nem ertek (mert nem vagyok szakember), hogyan
> lehet, hogy a tcpdump-ban sorr megjelennek a csomagok, amit a dmz-beli
> gep kuld a client-nek, ugyanezen csomagok a csomagszuro logjaban nem
> jelennek meg.
>
> Minden otletet, helyes iranyba terelest orommel veszek.
>
> Gabor
A konfigok első ránézésre jónak tűnnek, gyorsan összedobtam egy ilyet
egy kéznél lévő 3.9.5-ös GPL zorp tesztgépre, igaz ez debian wheezy, de
rendben megy.
A policy.py-ban gyakorlatilag ugyanaz van, mint Nálad:
def zorp_ssh():
Service(name="inter_SSH_intra", proxy_class=PlugProxy,
router=DirectedRouter(dest_addr=(SockAddrInet('<szerver címe>', 22),),
forge_addr=TRUE))
Dispatcher(transparent=FALSE,
bindto=DBIface(protocol=ZD_PROTO_TCP, port=2224, iface="eth0",
family=2), rule_port="2224", service="inter_SSH_intra")
A csomagszűrőben szimplán az INPUT-on engedélyeztem a TCP 2224-et.
A routing-hoz és a socket match-es MARK-oláshoz pedig a Te scriptedet
használtam, így:
#!/bin/bash
iptables="/sbin/iptables"
ip="/sbin/ip"
echo 1 > /proc/sys/net/ipv4/ip_forward
${ip} route add local 0.0.0.0/0 dev lo table 100
${ip} rule add fwmark 1 lookup 100
${ip} route flush cache
${iptables} -t mangle -N DIVERT
${iptables} -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
${iptables} -t mangle -A DIVERT -j MARK --set-mark 1
${iptables} -t mangle -A DIVERT -j ACCEPT
Ezután nekem rendesen működött a kapcsolat:
Jun 11 18:57:58 test zorp/zorp_ssh[14409]: core.session(3):
(svc/inter_SSH_intra:5): Starting proxy instance; client_fd='14',
client_address='AF_INET(<kliens IP>:33312)',
client_zone='Zone(internet)', client_local='AF_INET(<tűzfal IP>:2224)',
client_protocol='TCP'
Jun 11 18:57:58 test zorp/zorp_ssh[14409]: core.session(3):
(svc/inter_SSH_intra:5/plug): Server connection established;
server_fd='16', server_address='AF_INET(<szerver IP>:22)',
server_zone='Zone(site-local)', server_local='AF_INET(<kliens
IP>:43735)', server_protocol='TCP'
Jun 11 18:58:02 test zorp/zorp_ssh[14409]: core.session(4):
(svc/inter_SSH_intra:5): Ending proxy instance;
Jun 11 18:58:02 test zorp/zorp_ssh[14409]: core.accounting(4):
(svc/inter_SSH_intra:5/plug/server): accounting info; type='ZStreamFD',
duration='4', sent='2855', received='3129'
Jun 11 18:58:02 test zorp/zorp_ssh[14409]: core.accounting(4):
(svc/inter_SSH_intra:5/plug/client): accounting info; type='ZStreamFD',
duration='4', sent='3129', received='2855'
Olyan érzésem van, mintha a válaszcsomagok routingja körül lenne a
probléma. Szerintem érdemes lenne tenni egy log targetet a DIVERT láncba
a mark utánra, hogy látsszon, valóban rákerült-e a válaszcsomagra a
MARK, illetve érdemes lenne bekapcsolni a martian és az invalid csomagok
loggolását is (/proc/sys/net/netfilter/nf_conntrack_log_invalid,
/proc/sys/net/ipv4/netfilter/ip_conntrack_log_invalid,
/proc/sys/net/ipv4/conf/all/log_martians), hogy nem ezek fogják-e meg.
Milyen kernel verziót használsz?
Üdv,
Balint
További információk a(z) zorp-hu levelezőlistáról