Acabei de descobrir que a Apple deixava o suporte pptp nos MacOS mais recentes, então configurei o acesso ikev2 ipsec. Os clientes estão felizes, tudo é simples e bom, exceto uma coisa - os clientes ipsec não podem acessar nenhum serviço em execução no mesmo host ao qual se conecta. Claro que pode ser facilmente feito usando a configuração direta do iptables, mas eu uso firehol por anos e tenho uma grande configuração e não tenho tempo para reescrevê-lo de volta para as regras do iptables. E não tenho ideia de como especificar o acesso ipsec na interface.
Detalhes:
Suponha que eu tenha interface eth1 wan para o acesso à internet e interface eth0 interna para a configuração lan e my firehol:
interface eth1 inet
protection strong
policy reject
server ESP accept
server AH accept
interface eth0 lan
policy accept
client all accept
server all accept
router inet2lan inface eth1 outface eth0
client all accept
router lan2inet inface eth0 outface eth1
route all accept
masquerade
Até aí tudo bem, eu posso conectar ao servidor via ipsec e meus pacotes nados para o lan bem. Mas o problema é que não consigo me conectar a nenhum serviço executado diretamente no servidor. Pelo que entendi, isso acontece porque o ikev2 não é vpn real, mas apenas uma conexão segura com a interface eth1, portanto, todas as políticas da eth1 são aplicadas a qualquer conexão esp / ah. Eu verifiquei desabilitando todas as regras eth1:
interface eth1 inet
policy accept
client all accept
server all accept
E achei que realmente, neste caso, tudo está funcionando bem e todos os serviços locais estão acessíveis, assim como a lan.
Então, minha pergunta é: como separar configurações e fazer algo como:
interface eth1 inet server ESP AH
policy accept
client all accept
server all accept
interface eth1 inet server not ESP AH
protection strong
policy reject
server ESP accept
server AH accept
É apenas uma amostra, não está funcionando realmente, mas talvez haja uma maneira de configurar esse acesso? Não consigo encontrar em nenhum lugar, talvez eu busco algo errado? Pelo que entendi, eu só preciso forçar o firehol a realizar algo como:
iptables -I INPUT --match policy --pol ipsec --dir in --proto esp -s 172.16.0.0/16 -j ACCEPT
iptables -I OUTPUT --match policy --pol ipsec --dir out --proto esp -d 172.16.0.0/16 -j ACCEPT
assumindo que o host remoto esteja no 172.16 / 16. Mas não tenho ideia de como. Por favor ajude.
Obrigado