Jak usunąć dostęp do portu za pomocą zapory na Centos7?

14

Gdyby port otwarty do użytku publicznego za pomocą Firewall-cmd, chciałem ograniczyć ten port do konkretnego adresu IP, który znalazłem odpowiedź na na tej STRONIE .

Użyłem następujących do otwarcia:

$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload

Teraz wykorzystując informacje z informacji, które znalazłem, chciałem ograniczyć dostęp do tego portu do określonego adresu IP. Czy muszę najpierw usunąć ten port z publicznego dostępu?

Czy mogę po prostu dodać nową regułę w następujący sposób, a to rozwiąże problem?

$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
  rule family="ipv4"
  source address=”123.1.1.1"
  port protocol="tcp" port="10050" accept'

Próbowałem następujące:

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload

Ale kiedy uruchomię następujące:

$ firewall-cmd --list-ports 

10050/tcp jest nadal wyświetlany.

Proszę zrozumieć, że nie jestem zbytnio zaznajomiony z konfiguracjami pobocznymi Sever.

Soultion: Nie zapomnij o --runtime-to-permanent

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload 
Mcv
źródło
Ach, zapomniałem --permanent
mcv
1
Powinieneś opublikować to jako odpowiedź (i zaakceptować). Akceptowanie własnych odpowiedzi jest całkowicie do przyjęcia, w ten sposób pytanie jest oznaczone jako rozwiązane.
Gerald Schneider,
1
Lepiej nie używać --permanent, jeśli popełnisz błąd przy regule zapory. Jeśli wykorzystałeś --permanenti zamknąłeś się, trudno będzie ci wrócić, ponieważ nie masz możliwości powrotu do zdrowia. Zamiast tego nie używaj --permanent, a jeśli jesteś zadowolony z reguł, użyj, firewall-cmd --runtime-to-permanentaby zatwierdzić reguły. Jeśli zostaniesz zablokowany, przeładowanie zapory sieciowej lub ponowne uruchomienie wróci.
Michael Hampton
Czy można to firewall-cmd --runtime-to-permanentzastosować po tym, firewall-cmd --reloadczy całkowicie to zastępuje? Zdecydowanie spróbuję tego.
mcv,

Odpowiedzi:

29

Rozwiązanie: Nie zapomnij opcji --runtime-to-permanent

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent 
$ firewall-cmd --reload 
Mcv
źródło
1
Nadal musiałem podążać systemctl restart firewalld.
JaKu,
To mi nie zadziałało. systemctljest wersją 219i firewall-cmdjest wersją 0.5.3na CentOS 7.5 64bit.
Pred
5
# firewall-cmd --zone=public --remove-port=12345/tcp --permanent
# firewall-cmd --reload

Zastąp 12345 portem, który chcesz usunąć.

Zing Lee
źródło
1
Czytałem gdzieś, że w dokumencie Fedory sugeruje, aby umieścić --permanentjako pierwszą opcję. Ale tak, --permanentjest kluczem.
WesternGun
Zwykle zachowuję to jako ostatnią opcję, aby upewnić się, że jeśli reguła jest niepoprawna z jakiegokolwiek powodu, mogę po prostu zrestartować komputer bez powodowania trwałości reguły. Jeśli robi to, co chcę, mogę dodać strzałkę w górę i dodać --permanentdo końca.
Justin E
0

Wykonaj następujące kroki, wszystko będzie dobrze:

  1. $ firewall-cmd --zone = public --remove-port = 10050 / tcp
  2. $ firewall-cmd --runtime-to-permanent
  3. $ firewall-cmd --reload
  4. $ systemctl uruchom ponownie firewalld
  5. $ firewall-cmd --zone = public --list-porty
Dan Howel
źródło
Nie sądzę, że musisz ponownie uruchamiać firewalld, firewalldtak naprawdę został zaprojektowany, aby uniknąć ponownego uruchamiania wszystkich usług za każdym razem, gdy zmieniasz konfigurację.
vdegenne,