Poza tym do używania iptables do rejestrowania połączeń przychodzących.
Czy istnieje sposób na rejestrowanie ustanowionych połączeń przychodzących do usługi, do której nie masz źródła (załóżmy, że usługa nie rejestruje takich rzeczy samodzielnie)? Chcę zebrać pewne informacje na podstawie tego, kto się łączy, aby móc powiedzieć, o jakich porach dnia usługa jest najczęściej używana, gdzie na świecie jest główna baza użytkowników itp.
Wiem, że mogę użyć netstat
i po prostu podłączyć go do skryptu cron, ale może to nie być dokładne, ponieważ skrypt może działać tylko tak często, jak minutę.
Oto, co myślę teraz:
- Napisz program, który stale odpytuje
netstat
, szukając nawiązanych połączeń, które nie pojawiły się w poprzedniej ankiecie. Ten pomysł wydaje się jednak stratą czasu na procesor, ponieważ może nie być nowego połączenia. - Napisz program opakowujący, który akceptuje połączenia przychodzące na dowolnym porcie, na którym działa usługa, ale wtedy nie wiedziałbym, jak przekazać to połączenie do prawdziwej usługi.
Edycja: Właśnie przyszło mi do głowy, że to pytanie może być lepsze w przypadku przepełnienia stosu, chociaż nie jestem pewien. Przepraszam, jeśli to niewłaściwe miejsce.
Odpowiedzi:
W ten sposób możesz rejestrować nowe połączenia za pomocą iptables
Spowoduje to dodanie takiej wiadomości dla nowego połączenia ssh
lub tak w przypadku nowego połączenia http
i tak dalej dla każdego nowego połączenia z systemem. Zostanie on zalogowany do każdego miejsca, w którym jest skonfigurowany syslog do wysyłania komunikatów kern.warning.
źródło
możesz skorzystać z audytu i na koniec dnia obliczyć statystyki na podstawie tych logów. Lub możesz także przejść do rozwiązania snmp, ale prawdopodobnie masz już swój własny mib
źródło
Co powiesz na tcpdump lub wireshark?
źródło
tcpdump -i <interface> -s 65535 -w <some-file>
Dodatkowo będziesz musiał zakończyć przechwytywanie za pomocą ^ C, jeśli uważasz, że przechwyciłeś wystarczającą liczbę pakietów.