pf - regra de redirecionamento não funciona

1

Estou usando o pf no FreeBSD 9. O sshd está ativo e atendendo apenas no loopback (127.0.0.1).

Tentando usar a regra de redirecionamento para permitir que os hosts da rede se conectem por meio do ssh.

set block-policy drop
set skip on lo0
scrub in

no rdr on lo0 all
rdr on fxp0 inet proto tcp from any to (fxp0) port = ssh -> 127.0.0.1

block drop in log quick on ! lo inet from 127.0.0.0/8 to any
block drop log on fxp0 all
pass in quick on fxp0 inet proto tcp from any to 127.0.0.1 port ssh
pass out quick on fxp0 all keep state

Isso não funciona por algum motivo e não vejo mensagens relacionadas no pflog.

Tentei também com rdr pass com o mesmo resultado.

Eu vejo esse status de pfctl -ss :

all tcp 127.0.0.1:22 (192.168.0.40:22) <- 192.168.0.252:65105   CLOSED:SYN_SENT

Quando ligo o log de rdr, vejo isso:

rdr in on fxp0: 192.168.0.252.65105 > 127.0.0.1.22: Flags [S], seq 1927917349, win 65535, options [mss 1460,nop,wscale 3,sackOK,TS[|tcp]>

O que há de errado com minha configuração?

Como obter mais saída de log?

    
por taro 05.03.2014 / 19:22

1 resposta

1

Você verificou seus endereços de escuta sshd?

$ netstat -a | grep ssh
tcp4       0      0 *.ssh                  *.*                    LISTEN
tcp6       0      0 *.ssh                  *.*                    LISTEN

O primeiro * significa que o sshd está escutando em todos os endereços locais na máquina, incluindo 127.0.0.1.

SSHD_CONFIG(5)

 ListenAddress
         Specifies the local addresses sshd(8) should listen on.  The fol-
         lowing forms may be used:

               ListenAddress host|IPv4_addr|IPv6_addr
               ListenAddress host|IPv4_addr:port
               ListenAddress [host|IPv6_addr]:port

         If port is not specified, sshd will listen on the address and all
         prior Port options specified.  The default is to listen on all
         local addresses.  Multiple ListenAddress options are permitted.
         Additionally, any Port options must precede this option for non-
         port qualified addresses.

Se o sshd não estiver atendendo no endereço 127.0.0.1, ele será mostrado como CLOSED: SYN_SENT em pfctl -ss output.

netstat output depois de fazer o sshd escutar somente em 192.168.10.114.

$ netstat -a | grep ssh
tcp4       0      0 192.168.10.114.ssh     *.*                    LISTEN

Durante a tentativa de ssh para esta máquina, pfctl -ss output é como abaixo.

$ pfctl -ss
all tcp 127.0.0.1:22 (192.168.10.114:22) <- 192.168.10.107:50701       CLOSED:SYN_SENT

A conexão ssh é redirecionada para 127.0.0.1 pela regra rdr - o pacote SYN é enviado para 127.0.0.1:tcp/22 (SYN_SENT)

No entanto, 127.0.0.1:tcp/22 não está aberto, é mostrado como FECHADO.

    
por 22.07.2014 / 16:12

Tags