strongswan não pode enviar o resolvedor de DNS para o OSX Mountain Lion (túnel dividido)

3

Gostaria de configurar um respondedor IPSec (servidor VPN) para desktops e laptops OSX.

Tudo parece funcionar bem, exceto que não posso enviar um servidor DNS para ser usado em todo o sistema no iniciador (cliente VPN).

Estou usando o suporte IKEv1 da Charon em StrongSwan 5.0.4, com extensões Unity, e as máquinas OSX são configuradas graficamente usando "Cisco VPN" em Preferências de Rede.

Eu tentei alterar a ordem de serviço no cliente para colocar a VPN no topo, mas isso não ajudou.

Em scutils --dns , o resolvedor só aparece como resolver #1 na seção DNS configuration (for scoped queries) , não na primeira seção DNS configuration .

Aqui estão os arquivos de configuração relevantes:

/etc/ipsec.conf:

conn %default
  ikelifetime=24h
  keylife=1h
  rekeymargin=10m
  keyingtries=3
  keyexchange=ikev1
  left=%defaultroute
  auto=add

conn main
  leftfirewall=yes
  leftsubnet=0.0.0.0/0
  leftauth=psk
  right=%any
  rightauth=psk
  rightauth2=xauth-pam
  rightsourceip=172.17.0.0/22

/etc/strongswan.conf:

charon {
  threads = 16
  cisco_unity = yes
  plugins {
    attr {
      dns = 172.16.0.23
      split-include = 10.0.0.0/8, 172.16.0.23/32
      split-exclude = 10.65.36/22
    }
    xauth-pam {
      pam_service = ipsec
    }
  }
}
    
por Pierre Carrier 08.07.2013 / 10:29

1 resposta

6

Alguns comentários sobre sua configuração:

  • A sub-rede que você configurou para split-exclude é inválida. Deve ser provavelmente

    split-exclude = 10.65.36.0/22
    
  • Se você usar o plug-in unity , configure-o

    leftsubnet=10.0.0.0/8, 172.16.0.23/32
    

    em vez de split-include in strongswan.conf . Isso permite atribuir diferentes sub-redes por conexão.

  • Da mesma forma, os servidores DNS podem ser atribuídos por conexão por meio da opção rightdns .

Com relação à sua pergunta principal, o Mac OS X instala os servidores DNS sem escopo somente se todo o tráfego for enviado via VPN , ou seja, se leftsubnet=0.0.0.0/0 estiver configurado e o cliente não receber nenhum UNITY_SPLIT_INCLUDE atributos.

Para resolver adequadamente nomes de host em seu site remoto, sugiro que você envie o domínio de pesquisa adequado para o cliente por meio de um atributo UNITY_DEF_DOMAIN , por exemplo:

charon {
    plugins {
        attr {
            28674 = strongswan.org
        }
    }
}

Este atributo leva apenas um único nome de domínio. Se vários domínios forem necessários, o atributo UNITY_SPLITDNS_NAME poderá ser usado:

charon {
    plugins {
        attr {
            28675 = strongswan.org hsr.ch
        }
    }
}

É necessária uma lista separada por espaço de nomes de domínio que é enviada ao cliente como é (resulta em um resolvedor para cada domínio no cliente).

    
por 08.07.2013 / 15:25