Na polu centos lubię zrzucać połączenia TCP - chciałbym sprawdzić, czy serwer próbuje wysłać żądania do określonego adresu IP. Zwykle tcpdump załatwi sprawę - ale tcpdump nie jest zainstalowany, a instalacja oprogramowania nie jest opcją (z powodu zasad firmy). Obawiam się, że netstat nie pokaże mi ani jednej prośby.
Zastanawiałem się więc, jakie inne opcje mam. Mam dostęp do roota na serwerze.
Odpowiedzi:
Na pewno masz
python
?Spowoduje to zamknięcie opcji „GOT TARGET”, podając adres IP, który powraca. Ponieważ TCP musi wysłać coś z powrotem podczas uzgadniania, powinno to wychwycić wszystko z określonego adresu docelowego. Nie obchodzi go jednak, czy protokołem jest TCP czy UDP (i nie sprawdzam).
Nie zapomnij zmienić TARGET i INTERFEJSU.
źródło
socket.error: (1, 'Operation not permitted')
Naprawdę spróbowałbym dostać tcpdump. Biorąc to pod uwagę, niektóre alternatywy, aby sprawdzić, czy istnieje pewne połączenie dla adresu IP, to:
strace:
lsof:
netstat:
źródło
Iptables ma funkcję debugowania, którą można również wykorzystać do analizy ruchu.
Rozwiązanie opisano w poniższym adresie URL.
Zasady debugowania w Iptables
Warto również przeczytać poniższy adres URL, aby skonfigurować rejestrowanie danych wyjściowych śledzenia w wybranym pliku.
http://backreference.org/2010/06/11/iptables-debugging/
Nie uważałbym tego rozwiązania za tcpdump, ale można to zrobić przy minimalnej instalacji Centos. Należy uważać, aby nie zapełnić dysku dziennikami, ponieważ tcpdump jest znacznie bardziej wydajny w użyciu dysku. Wyłącz rejestrowanie, gdy nie jest to wymagane.
Możesz użyć następujących elementów jako podstawowego szablonu w skrypcie.
źródło
Jeśli potrzebujesz konkretnego oprogramowania do wykonywania swojej pracy, a nie możesz, nie robisz dobrego uzasadnienia biznesowego lub nie sprzedajesz swoich pomysłów właściwym osobom ... lub nie masz kontroli nad tym systemem. .
Gdybym miał za zadanie coś zrobić i potrzebowałem tego rodzaju informacji debugowania / rozwiązywania problemów, których potrzebujesz w tym przypadku, użyłbym odpowiedniego narzędzia. To prawdopodobne
tcpdump
lubtshark
. Tak, to są programy, ale uważam je za bardziej niezbędne narzędzia . W rzeczywistości są to narzędzia, które można tymczasowo zainstalować lub załadować do systemu i usunąć bez incydentów (czy nośnik wymienny jest opcją? ... wskazówka )Ale chodzi o to, że banalne obejście polityki firmy prawdopodobnie wymaga więcej wysiłku niż uzyskanie zgody na ten przypadek użycia.
źródło
tcpdump
gdzie indziej i po prostu skopiować go do / tmp i uruchomić stamtąd?Kyle zaoferował kilka świetnych opcji. Jeszcze jednym byłoby użycie
iptables
:Jest to zasadniczo zasada rachunkowości. Nie zezwala wyraźnie na ruch ani go nie odrzuca, dlatego używana jest domyślna polityka dla łańcucha WYJŚCIA (domyślnie AKCEPTUJ). Jednak każdy pasujący pakiet zwiększy liczniki reguły.
Możesz opcjonalnie zapisać szczegóły dotyczące pakietu również za pomocą
-j LOG
opcji:Logi trafią do narzędzia do rejestrowania jądra, więc powinny pojawić się w / var / log / messages na pochodnych Red Hat i /var/log/kern.log na pochodnych Debiana. Byłby również widoczny na wyjściu
dmesg
, jak pokazano.tcpdump
Jednak w przeciwieństwie do tego, nie będzie rejestrować całej zawartości pakietu, tylko zawartość nagłówka pakietu.źródło
Ponieważ twój serwer łączy się z określonym adresem IP, zakładam, że będzie to port, o którym również wiesz?
W każdym razie
netstat
lubss
są zaprojektowane tak, aby robić to, co chcesz. Możesz zrobić to samo z dowolnym poleceniem:gdzie
A.B.C.D
oznacza adres IPv4 in
numer portu, z którym serwer łączy się po stronie zdalnej. Na przykład:Lub, jeśli chcesz tylko wiedzieć, że połączenie zostało nawiązane:
Jeśli nie znasz numeru portu, z którym próbujesz się połączyć, zadanie byłoby trudniejsze, ponieważ TCP otworzy port po obu stronach konwersacji dla danych i pakietów ACK. W takim przypadku możesz po prostu grepować, aby adres IP pokazał, że nawiązano jakiekolwiek połączenie, niezależnie od tego, czy jest to połączenie z, czy z.
Wreszcie możesz zapętlić to do treści twojego serca, aby użyć go jako narzędzia do monitorowania:
źródło