Назад | Перейти на главную страницу

включение входящих подключений в брандмауэре Mac OS X Lion через командную строку

$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 ) 

Приведенная выше команда показывает, что another.app является частью моего списка доверенных приложений брандмауэра, но он настроен на блокировку входящих подключений. Как я могу настроить его таким образом, чтобы разрешить входящие соединения из командной строки и немедленно применить изменения?

У меня была такая же проблема, и я «решил» ее, выгрузив / загрузив MacPorts httpd с запущенным брандмауэром приложений Mac OS X 10.8 (socketfilterfw). Понятия не имею, почему это сработало. Одна из подсказок - как только я запустил загрузку, появилось приглашение с вопросом, разрешить ли соединения. И это несмотря на то, что приложение MacPorts httpd уже было введено в графический интерфейс параметров Filewall.

  1. Системные настройки> Безопасность и конфиденциальность> Брандмауэр: включите брандмауэр, если он выключен
  2. sudo port unload apache2
  3. sudo port load apache2

Перед исправлением:
Aug 27 22:42:59 mac1 socketfilterfw : Deny _ connecting from mac2 to port _ proto=6
Во время исправления:
Aug 27 22:44:05 mac1 socketfilterfw : httpd is listening from :::_ proto=6
После исправления:
Aug 27 22:45:32 mac1 socketfilterfw : Allow _ connecting from mac2 to port _ proto=6

Я искал «httpd слушает», и за последние несколько дней это единственное появление в журнале appfilewall.

Надеюсь, это кому-то поможет. Я не знаю, почему это сработало для меня, но я использовал его дважды ... сегодня и около шести недель назад. Система перезагружается каждую неделю.

Вы можете получить больше информации о socketfilterfw, запустив его с -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>

Итак, в вашем случае вы можете:

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

Если вы все еще не можете попасть в него, обязательно проверьте ipfw:

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

Если у вас есть другие правила, вы можете:

# ipfw flush

Чтобы удалить их.

Если ничего из этого не работает, попробуйте отключить их обоих и посмотреть, не удается ли вам подключиться:

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

Если у вас все еще есть проблемы, вероятно, проблема с конфигурацией apache.