Jak mogę otworzyć port (nie aplikację) w zaporze systemu OS X 10.6?

18

Pozwólcie, że poprzedzę to mówiąc:

  • Nie chcę całkowicie upuszczać zapory
  • Tak, naprawdę potrzebuję konkretnych portów zamiast aplikacji.

Widzę więc, że istnieje możliwość zezwalania na określone aplikacje przez zaporę ogniową, ale nie ma równoważnego sposobu otwierania portów. Trudno uwierzyć, że jest to faktycznie niemożliwe. Jak mogę otworzyć określony port TCP w OS X 10.6, utrzymując zaporę pozostałą część portów?

kdt
źródło

Odpowiedzi:

11

Pracował dla mnie.

Chciałem otworzyć ruch na porcie 70, więc wprowadziłem następujące informacje:

sudo ipfw add 7000 allow tcp from any to any dst-port 70

Odpowiedź z wiersza polecenia brzmiała:

07000 allow tcp from any to any dst-port 70

Tak, zero zostało automatycznie dodane do reguły nr, dlatego warto zauważyć, że każdy identyfikator reguły <10 000 będzie poprzedzony jednym lub więcej zerami.

Applemeister
źródło
Najwyraźniej tego polecenia nie ma w 10.10 (Yosemite).
jcollum
6

Wbudowana zapora ogniowa używana przez OS X to ipfw. Aby dowiedzieć się więcej na ten temat z terminala, możesz wejść man ipfw.

Aby utworzyć nową regułę zapory, aby umożliwić ruch przychodzący do określonego portu, możesz wprowadzić regułę z terminala w następujący sposób.

sudo ipfw add 40000 allow tcp from any to any dst-port portnum

gdzie portnumjest numer portu, który chcesz otworzyć. W tym przypadku dodałem do reguły regułę 40000, więc jeśli kiedykolwiek będziesz chciał ją usunąć, wystarczy następujące polecenie.

sudo ipfw delete 40000

Jeśli wpiszesz polecenie sudo ipfw list, zobaczysz aktywne polecenia. Aby ponownie załadować zaporę, wydaj poleceniesudo ipfw flush

Jeśli chcesz rejestrować działania, które otrzymuje reguła, możesz dodać logpolecenie w następujący sposób:sudo ipfw add 40000 allow log ...

Wybrałem rulenum 40000 nieco arbitralnie, ponieważ istnieją reguły od 1 do 65535, choć niektóre liczby są uprzywilejowane. To po prostu ułatwia późniejsze usunięcie reguły, jeśli zajdzie taka potrzeba.

afragen
źródło
Wypróbowałem powyższe rozwiązanie i otrzymałem błąd: ipfw: nazwa hosta `` dst-port '' nieznana
Co dokładnie wprowadziłeś?
afragen
Jak napisałem powyżej, musisz podać rzeczywisty numer portu, portnumale dst-portjest on poprawny. Proszę odnieść się do strony man dla ipfw.
afragen