Załóżmy, że mam serwer z interfejsem prywatnym i interfejsem publicznym. Publiczne mogą mieć takie serwery jak HTTP (S), prywatne mogą mieć MySQL i SSH.
Oczywiście Nagios przydaje się do sprawdzenia, czy usługi działają na odpowiednich interfejsach. Ale czy warto budować kontrole, które jawnie sprawdzają, czy porty MySQL i SSH nie są otwarte w interfejsie publicznym? Chodzi o to, aby wyłapać przypadkowe błędne konfiguracje, które otworzyły usługi, które powinny być prywatne i odpowiednio ostrzec.
Część mnie ma pomysł, że nie skalowałoby się to zbyt dobrze - wyobraź sobie, że istnieje reguła DROP iptables, na przykład czek musiałby poczekać, aż upłynie limit czasu czekania, zanim będzie można go ukończyć i przejść dalej. Ale ten limit czasu musiałby być wystarczająco długi, aby móc odróżnić zablokowaną usługę od otwartej, która naprawdę utknęła w martwym punkcie.
Czy to praktyczny pomysł? Czy Nagios jest właściwym narzędziem? Nawet nie zastanawiałem się nad wykonalnością negowania wyniku z wtyczek sprawdzania TCP, ale jestem pewien, że jest to wykonalne ...
źródło
DROP
nie jest to właściwy cel do tego celu, użycie-j REJECT --reject-with tcp-reset
go rozwiązałoby ten konkretny problem. Dla mnie twoje pytanie brzmi jak kolejny powód do użyciaREJECT
zamiastDROP
.Odpowiedzi:
Tak oczywiście. Zadaniem systemu monitorowania jest zapewnienie, że infrastruktura IT spełnia obecnie wymagania biznesowe, bez względu na te wymagania.
Mam przeczucie, że nie ma łatwego limitu (cóż, 65535) liczby monitorowanych portów, aby upewnić się, że nagle się nie otworzą, i że najlepszym sposobem na osiągnięcie tej kontroli jest ścisła kontrola źródła i silne, agresywne monitorowanie systemu plików (np. tripwire) na serwerze.
Ale jeśli istnieją pewne porty, które są absolutnie krytyczne z punktu widzenia biznesu, nigdy nie zostaną ujawnione, to tak, z całą pewnością należy to sprawdzić. Możesz zajrzeć do
negate
wtyczki NAGIOS , która jest dostarczana z większością głównych dystrybucji i służy do robienia dokładnie tego, co sugerujesz.źródło
Możesz połączyć dowolny czek z
negate
wtyczką, aby odwrócić logikę czeku. Możesz na przykład przedefiniować CRIT, WARN, UNKNOWN i OK na inne stany, na przykład. Zobacz wyjście --help, aby uzyskać więcej informacji .Jeśli obawiasz się, że zasady DROP wydłużają czas sprawdzania, możesz po prostu skrócić limit czasu. W przypadku takiego czeku prawdopodobnie nie musisz sprawdzać co 5 minut. Podobne kontrole przeprowadzane są co godzinę.
źródło