habilitando conexões de entrada no firewall do Mac OS X Lion via linha de comando

3
$sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps
ALF: total number of apps = 2 

1 :  /Applications/some.app 
 ( Allow incoming connections ) 

2 :  /Applications/another.app 
 ( Block incoming connections ) 

O comando acima mostra que o another.app faz parte da lista de aplicativos confiáveis do meu firewall, mas está configurado para bloquear conexões de entrada. Como posso configurá-lo para permitir conexões de entrada a partir da linha de comando e tornar a alteração efetiva imediatamente?

    
por punkish 17.09.2011 / 18:26

2 respostas

3

Eu tive o mesmo problema e "resolvi" o problema descarregando / carregando o MacPorts httpd com o firewall do aplicativo Mac OS X 10.8 (socketfilterfw) em execução. Não tenho idéia porque isso funcionou. Uma pista é que assim que eu executei a carga, um aviso apareceu perguntando se permitir conexões. Isso apesar de já ter entrado no aplicativo http do MacPorts na GUI de opções do filewall.

  1. Preferências do sistema > Segurança & Privacidade > Firewall: ativar o firewall se estiver desativado
  2. sudo port unload apache2
  3. sudo port load apache2

Antes de corrigir:
Aug 27 22:42:59 mac1 socketfilterfw : Deny _ connecting from mac2 to port _ proto=6
Durante a correção:
Aug 27 22:44:05 mac1 socketfilterfw : httpd is listening from :::_ proto=6
Depois da correção:
Aug 27 22:45:32 mac1 socketfilterfw : Allow _ connecting from mac2 to port _ proto=6

Eu procurei por "httpd is listening" e nos últimos dias esta é a única ocorrência no log do appfilewall.

Espero que isso ajude alguém. Eu não sei porque funcionou para mim, mas eu usei duas vezes ... hoje e cerca de seis semanas atrás. O sistema reinicia toda semana.

    
por 28.08.2013 / 05:44
1

Você pode obter mais informações sobre o socketfilterfw, executando-o com -h:

# /usr/libexec/ApplicationFirewall/socketfilterfw -h
usage: /usr/libexec/ApplicationFirewall/socketfilterfw [-c] [-w] [-d] [-l] [-T] [-U] [-B] [-L] [-a listen or accept] [-s file to sign] [-v file to verify] [-p pid to write] [--getglobalstate] [--setglobalstate on | off] [--getblockall] [--setblockall on | off] [--listapps] [--getappblocked <path>] [--blockapp <path>] [--unblockapp <path>] [--add <path>] [--remove <path>] [--getallowsigned] [--setallowsigned] [--getstealthmode] [--setstealthmode on | off] [--getloggingmode] [--setloggingmode on | off] 
...
 --unblockapp <path>           unblock the application at <path>

Então, no seu caso, você pode fazer:

# /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/another.app

Se você ainda não conseguir, verifique o ipfw:

# ipfw -a l
65535 0 0 allow ip from any to any

Se você tiver outras regras, poderá:

# ipfw flush

Para removê-los.

Se nada disso funcionar, tente desativá-los e ver se você ainda não consegue se conectar:

# sysctl -w net.inet.ip.fw.enable=0
#  /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
Firewall already disabled

Se você ainda está tendo problemas, então provavelmente há um problema de configuração com o apache.

    
por 17.09.2011 / 22:07