[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