Na maszynie z linuxem chciałbym ograniczyć zestaw adresów w strefie „publicznej” (koncepcja zapory ogniowej), które mogą do niej dotrzeć. Tak więc wynikiem końcowym byłoby, aby żadna inna maszyna nie mogła uzyskać dostępu do żadnego portu lub protokołu, oprócz tych wyraźnie dozwolonych, w rodzaju mieszanki
--add-rich-rule='rule family="ipv4" source not address="192.168.56.120" drop'
--add-rich-rule='rule family="ipv4" source not address="192.168.56.105" drop'
Problem powyżej polega na tym, że nie jest to prawdziwa lista, wszystko zablokuje, ponieważ jeśli jej jeden adres zostanie zablokowany, ponieważ nie jest taki sam jak drugi, generując przypadkowy efekt „upuść wszystko”, w jaki sposób „odblokowałbym” konkretny obiekt ciągły zestaw? Czy źródło akceptuje listę adresów? jak dotąd nie widzę niczego w moim spojrzeniu na dokumenty ani wynik wyszukiwania w Google.
EDYCJA: Właśnie to stworzyłem:
# firewall-cmd --zone=encrypt --list-all
encrypt (active)
interfaces: eth1
sources: 192.168.56.120
services: ssh
ports: 6000/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Ale nadal mogę dotrzeć do portu 6000 z .123
mojej intencji było to, że jeśli źródła nie ma na liście, nie powinno być w stanie dotrzeć do żadnej usługi ani portu
źródło
eth1
ze strefy.firewall-cmd --zone=encrypt --remove-interface=eth1
Zgodnie z
firewalld.richlanguage
:Podaj maskę sieci dla adresu, aby zezwolić na ciągłe bloki.
Poza tym możesz spróbować utworzyć
ipset
nieprzylegającą listę dozwolonych adresów IP.Na przykład w
/etc/firewalld/direct.xml
:Rzeczywiste
ipset
należy utworzyć osobno.źródło
Możesz łatwo zarządzać za pomocą Rich Rule.
Pierwszy krok
Drugi krok - Dodaj bogatą regułę
Wszystkie porty są dostępne przez 192.168.2.2 po dodaniu reguły rozszerzonej i zablokowaniu każdego portu z innego źródła.
Jeśli dodasz dowolny port lub usługę za pomocą poniższego polecenia, będzie on dostępny dla wszystkich źródeł.
Jeśli chcesz otworzyć konkretny port dla określonego IP niż polecenie poniżej
źródło