IPFW nega conexões SSL

1

Estou tendo problemas ao carregar sites https (google, facebook, amazon) através dos meus scripts PHP usando funções como fsockopen , file_get_contents . A operação está sendo expirada. Então eu comecei a olhar através das configurações do meu sistema e notei que quando o serviço ipfw está sendo parado, ele funciona como um encanto.

Portanto, este é um problema definitivamente relacionado à minha configuração de IPFW. Eu habilitei a criação de log e isso aparece no arquivo de log ao tentar executar o script PHP:

ipfw: 1000 Deny ICMPv6:1.3 [2001:...:...:...::] [2001:...:2:...::] in via em0
ipfw: 1000 Deny ICMPv6:131.0 [...::...:...:...:...] [...::1:...:0] in via em0
ipfw: 1000 Deny ICMPv6:136.0 [2001:...:...:...:ff:ff:ff:ff] [...:...:2:...::] in via em0

Parece um problema com o IPv6, porém, eu faço allow all manter conexões de tipo de estado no meu arquivo ipfw.

Aqui está a configuração que estou usando atualmente:

#!/usr/local/bin/bash

IPF="/sbin/ipfw -q add"

/sbin/ipfw -q -f flush

$IPF 10 allow all from any to any via lo0
$IPF 11 deny all from any to 127.0.0.0/8
$IPF 12 deny all from 127.0.0.0/8 to any
$IPF 13 deny tcp from any to any frag

$IPF 250 check-state
$IPF 260 allow tcp from any to any established
$IPF 270 allow all from any to any out keep-state
$IPF 280 allow icmp from any to any

$IPF 290 allow log tcp from 127.0.0.1/32 to 127.0.0.1/32 3306 in

$IPF 350 allow udp from any to any 53 in
$IPF 351 allow tcp from any to any 53 out
$IPF 352 allow tcp from any to any 80 in
$IPF 353 allow tcp from any to any 80 out
$IPF 361 allow tcp from any to any 443 in
$IPF 362 allow tcp from any to any 443 out
$IPF 363 allow tcp from any to any 22 in
$IPF 364 allow tcp from any to any 22 out

$IPF 1000 deny log all from any to any

Além disso: Eu comecei a ter esse problema depois de atualizar para o FreeBSD 10.3 (9.2 anterior).

Qual é o problema?

    
por Cyclone 26.01.2017 / 02:29

1 resposta

2

Eu não uso o IPv6, mas percebo de /etc/rc.firewall e /etc/protocols que o ICMP tem um nome simbólico diferente para o IPv6, que é ipv6-icmp . Se você precisar passar pacotes IPv6 ICMP, convém adicionar uma nova regra:

allow ipv6-icmp ...

Eu não entendo suas regras existentes e você pode ter separado as regras in e out para fins de diagnóstico, mas:

allow tcp from any to any xxx in
allow tcp from any to any xxx out

É semelhante (se não equivalente) a:

allow tcp from any to any xxx

Além disso, todas as suas regras de out são antecipadas pela regra 270 de qualquer maneira.

Se o seu servidor precisar usar o serviço de nomes, você não terá uma regra para permitir respostas do servidor DNS remoto sobre o UDP:

allow udp from any 53 to any
    
por 26.01.2017 / 09:41