Mam pięć CentOS 6 systemów Linux w pracy, i napotkał dość dziwny problem, który tylko wydaje się stało z moim identyfikatora we wszystkich systemach linux mam ... To jest przykład problemu z wpisami I wyłączonych z last
polecenia .. .
mpenning pts/19 Fri Nov 16 10:32 - 10:35 (00:03)
mpenning pts/17 Fri Nov 16 10:21 - 10:42 (00:21)
bill pts/15 sol-bill.local Fri Nov 16 10:19 - 10:36 (00:16)
mpenning pts/1 192.0.2.91 Fri Nov 16 10:17 - 10:49 (12+00:31)
kkim14 pts/14 192.0.2.225 Thu Nov 15 18:02 - 15:17 (4+21:15)
gduarte pts/10 192.0.2.135 Thu Nov 15 12:33 - 08:10 (11+19:36)
gduarte pts/9 192.0.2.135 Thu Nov 15 12:31 - 08:10 (11+19:38)
kkim14 pts/0 :0.0 Thu Nov 15 12:27 - 15:17 (5+02:49)
gduarte pts/6 192.0.2.135 Thu Nov 15 11:44 - 08:10 (11+20:25)
kkim14 pts/13 192.0.2.225 Thu Nov 15 09:56 - 15:17 (5+05:20)
kkim14 pts/12 192.0.2.225 Thu Nov 15 08:28 - 15:17 (5+06:49)
kkim14 pts/11 192.0.2.225 Thu Nov 15 08:26 - 15:17 (5+06:50)
dspencer pts/8 192.0.2.130 Wed Nov 14 18:24 still logged in
mpenning pts/18 alpha-console-1. Mon Nov 12 14:41 - 14:46 (00:04)
Możesz zobaczyć dwa moje wpisy logowania powyżej, które nie mają przypisanego źródłowego adresu IP. Moje maszyny CentOS mają aż sześciu innych użytkowników, którzy współużytkują systemy. Około 10% moich loginów widzi ten problem, ale żadne inne nazwy użytkowników nie wykazują tego zachowania . Brak wpisów /var/log/secure
dla wpisów bez źródłowego adresu IP.
pytania
Biorąc pod uwagę rodzaj skryptów, które trzymam w tych systemach (które kontrolują znaczną część naszej infrastruktury sieciowej), jestem trochę przestraszony i chciałbym zrozumieć, co powoduje, że moje loginy czasami tracą adresy źródłowe.
- Dlaczego
last -i
wyświetla się0.0.0.0
dla pozycji wiersza pts (zobacz także tę odpowiedź ) - Czy jest coś (oprócz złośliwego działania), które uzasadniałoby zachowanie?
- Czy poza śledzeniem czasu historii bashu są inne rzeczy, które mogę zrobić, aby wyśledzić problem?
Informacyjny
Od tego zaczęło się dziać, mam włączone bash
historii znakowania czasem (czyli HISTTIMEFORMAT="%y-%m-%d %T "
w .bash_profile
), a także dodano kilka innych hacków historii bash ; nie daje to jednak wskazówek co do tego, co wydarzyło się podczas poprzednich wydarzeń.
Wszystkie systemy działają w CentOS 6.3 ...
[mpenning@typo ~]$ uname -a
Linux typo.local 2.6.32-279.9.1.el6.x86_64 #1 SMP Tue Sep 25 21:43:11 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
[mpenning@typo ~]$
EDYTOWAĆ
Jeśli używam last -i mpenning
, widzę takie wpisy ...
mpenning pts/19 0.0.0.0 Fri Nov 16 10:32 - 10:35 (00:03)
mpenning pts/17 0.0.0.0 Fri Nov 16 10:21 - 10:42 (00:21)
Uwaga dla tych, którzy próbują odpowiedzieć: Nie zalogowałem się za pomocą screen
polecenia ani graficznego interfejsu użytkownika . Wszystkie moje dane logowania pochodzą z SSH; aby otrzymać nagrodę główną, musisz przytoczyć wiarygodne referencje, aby wyjaśnić last -i
0.0.0.0
wpisy pochodzące wyłącznie z SSH.
EDYCJA 2 (na pytania ewwhite)
/etc/resolv.conf
(zwróć uwagę, że użyłem .local
adresów w last
powyższych wynikach, aby ukryć informacje o mojej firmie)
[mpenning@sasmars network]$ cat /etc/resolv.conf
nameserver 192.0.2.40
nameserver 192.0.2.60
domain mycompany.com
search mycompany.com
[mpenning@sasmars network]$
/etc/hosts
informacje (zwróć uwagę, że ten dostosowany plik hosts istnieje tylko na jednym komputerze, na którym występują te problemy)
[mpenning@sasmars network]$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.0.2.44 sasmars.mycompany.com sasmars
::1 localhost6.localdomain6 localhost6
## Temporary kludge until I add reverse hostname mappings...
## Firewalls
192.0.2.254 a2-inet-fw1
192.0.2.253 a2-inet-fw2
192.0.2.254 a2-wan-fw1
192.0.2.253 a2-wan-fw2
192.0.2.201 a2-fab-fw1
192.0.2.202 a2-fab-fw2
192.0.2.203 t1-eds-fw1
192.0.2.42 sasvpn
192.0.2.246 sasasa1
192.0.2.10 sasoutfw1
## Wireless
192.0.2.6 saswcs1
192.0.2.2 l2wlc3
192.0.2.4 l2wlc4
192.0.2.12 f2wlc5
192.0.2.16 f2wlc6
192.0.2.14 f2wlc1
192.0.2.8 f2wlc2
[mpenning@sasmars network]$
sftp
Wyjście z /var/log/secure
*
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: called (pam_tacplus v1.3.7)
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: user [mpenning] obtained
Dec 26 10:36:37 sasmars sshd[26016]: tacacs_get_password: called
Dec 26 10:36:37 sasmars sshd[26016]: tacacs_get_password: obtained password
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: password obtained
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: tty [ssh] obtained
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: rhost [192.0.2.91] obtained
Dec 26 10:36:37 sasmars sshd[26016]: pam_sm_authenticate: trying srv 0
Dec 26 10:36:38 sasmars sshd[26016]: Accepted password for mpenning from 192.0.2.91 port 55118 ssh2
Dec 26 10:36:38 sasmars sshd[26016]: pam_sm_setcred: called (pam_tacplus v1.3.7)
Dec 26 10:36:38 sasmars sshd[26016]: pam_unix(sshd:session): session opened for user mpenning by (uid=0)
Dec 26 10:36:38 sasmars sshd[26018]: pam_sm_setcred: called (pam_tacplus v1.3.7)
Dec 26 10:36:38 sasmars sshd[26018]: subsystem request for sftp
Dec 26 10:37:20 sasmars sshd[26016]: pam_unix(sshd:session): session closed for user mpenning
Dec 26 10:37:20 sasmars sshd[26016]: pam_sm_setcred: called (pam_tacplus v1.3.7)
OSTATECZNA ROZDZIELCZOŚĆ
Zobacz moją odpowiedź poniżej
last -i mpenning
pokazuje puste pola?Odpowiedzi:
script
różnice w zachowaniu między RedHat a DebianemPołączone biblioteki
CentOS 6.3 - skrypt (util-linux-ng 2.17.2)
Ubuntu 12.04 - skrypt (util-linux 2.20.1)
PTY
Bazując na źródłowym kodzie źródłowym ,
script
z obu wersji otwierają nowe pty. Poniżej znajduje się test.Ubuntu 12.04
Ubuntu 12.04
script
otworzył nowe pts (2). Po prostu się nie zaktualizował/var/log/wtmp
.CentOS 6
Pomijam test, ponieważ już wiemy, że
script
otwierają pty i rejestrują się w wtmp.libutemper
Główną różnicą wydaje się być dodatkowa biblioteka (
libutempter.so.0
) CentOSscript
połączona z.Przetestuj z Ubuntu 12.04
Kompilowanie
script
z libutempterTestowanie
Przed uruchomieniem
script
W ciągu
script
Po
script
zakończeniuGłówna przyczyna pustej nazwy hosta
I tak,
script.c
utwórzwtmp
wpis z pustą nazwą hosta. Spójrz na następujący blok kodu wutil-linux-2.20.1/term-utils/script.c
wierszu: 245–247Oprzeć na
libutempter-1.1.5/utempter.h
Tak więc
script.c
przekazuje pustą nazwę hosta doutempter_add_record
.RedHat Backport
Interesujące jest to, że upstream
util-linux-ng-2.17.2
faktycznie nie obsługujelibutempter
. Wygląda na to, że Redhat postanowił dodać to wsparcie z powrotem.Powyższe polecenie zwraca pusty wynik.
Wniosek
Różnica w zachowaniu między dwoma dystrybucjami nie jest błędem, ale wyborem. RedHat postanowił wesprzeć tę funkcję, a Debian ją pominął.
źródło
coreutils
wersję RPM, której używa CentOS 5? Muszę sprawdzić kod źródłowy.libutempter
nie jest połączone w EL4 (vialdd
), ale jest połączone w poleceniach EL5 i EL6script
. Ta zmiana funkcji została prawdopodobnie wprowadzona w systemach podobnych do Red Hat od czasu wprowadzenia RHEL 5.coreutils
na EL4 w 2007 roku w wersji 5.2.1. Na EL5 jest to wersja 5.97.script
jest w Linuksie.To wydaje mi się całkowicie zagadkowe. Albo powinien użyć nazwy DNS lub adresu IP. Sprawdziłem
last.c
również plik, ale nadal nie mogę znaleźć powodu, dla którego nic nie pokazuje. Prawdopodobnie mając trochę czasu, mogę dowiedzieć się o części 0.0.0.0.Dwie globalne zmienne użyte w kontekście to:
Teoretycznie powinien używać dns lub IP.
Zobaczę, czy mogę coś jeszcze wykopać. Ale to, co ewwhite zadał, to ważne pytania.
źródło
Uruchomiłem więc ostatnio debugger, który, mam nadzieję, da ci przynajmniej trochę odpowiedzi na twoje pytanie. Moje przeczucie jest jednak głębsze.
Dlaczego ostatnia -i pokazuje 0.0.0.0 dla pozycji wiersza pts
Najlepszym sposobem na wyjaśnienie tego jest to, co dzieje się, gdy tego nie robisz zdasz -i.
Powodem tego jest sekcja kodu
last.c
Zarówno
usedns
iuseip
(przy użyciu opcji domyślnych) nie są oflagowane. Powoduje to, że logika kopiuje się ze struktury,p->ut_host
która zgodnie z tymman utmp
zawiera zdalną nazwę logowania zapisaną przez cokolwiek, co zapisano wutmp
.W twoim przypadku wartość tutaj to zero. Dlatego kiedy biegniesz
last
nic się nie pojawia.W takim przypadku
last -i
wywoływana jest funkcja dns_lookup. Spowoduje to przekazanie wpisu (p-> ut_addr_v6) do rozwiązania przez DNS. W twoim przypadku również ta wartość zawiera zera.Większość z nich
dns_lookup
to szaty okienne i krzepkie. Zasadniczo liczy się funkcjagetnameinfo
. Jest to wywołanie biblioteki, które w tym przypadku postara się rozwiązać wartość binarną przechowywaną w plikuut_addr_v6
. Kiedy ten wpis zawiera zera (jak w twoim przypadku), tak naprawdę rozwiązujesz to0.0.0.0
tak, jak dzieje się z twoimlast -i
wyjściowymi.Czy jest coś (oprócz złośliwego działania), które uzasadniałoby zachowanie?
Cóż, to prawdopodobnie błąd lub niedopatrzenie. Jego mało prawdopodobne, aby być złośliwy, ponieważ wydaje się głupi opuścić jakikolwiek śladu jako atakującego, a nie pominięcie adresu źródłowego.
Odpowiedzi do tej pory koncentrowały się na niewłaściwym miejscu.
last
po prostu czytautmp
lubwtmp
. jednaklast
robi wszystko, co w jego mocy, aby mieć dane.Twoja podstawowa przyczyna leży gdzieś w sposobie, do którego
utmp
jest napisana !Podczas gdy kilka aplikacji bezpośrednio pisze do
utmp
, myślę, że źródłem problemówsshd
jest sposób zarządzania sesją.Czy poza śledzeniem czasu historii bashu są inne rzeczy, które mogę zrobić, aby wyśledzić problem?
utmp
zazwyczaj nie jest zapisywalny i nie jest przeznaczony do tego.utmp
jest napisany przez aplikacje zaprojektowane do zalogowania się i skonfigurowania sesji. W twoim przypadku tak jestsshd
.Dlaczego sshd nie obsługuje użytkownika poprawnie, jest bardzo dziwne, ponieważ powinno poprawnie kopiować nazwę hosta, z której przyszedłeś. W tym miejscu należy prawdopodobnie skupić się na debugowaniu. Rozpocznij od dodania do dzienników danych wyjściowych debugowania sshd i sprawdź, czy pojawi się coś nietypowego.
Jeśli chcesz obejść problem (lub być może nawet dowiedzieć się więcej o nim), możesz użyć go
pam_lastlog
do zarządzaniautmp
, dodając go do sesji wpisu na /etc/pam.d/sshd.W rzeczywistości nie zaszkodzi sprawdzić, czy już tam jest - ponieważ
pam_lastlog
zawieranohost
opcję, która zdecydowanie wyjaśni twoje zachowanie, którego doświadczasz.Wreszcie, nie można w ogóle użyć.
aulast
wykonuje to samo zadanie za pośrednictwem podsystemu kontroli.Może warto spróbować sprawdzić, czy udało się przynajmniej zapisać poprawny adres. Jeśli tak nie jest, problem musi dotyczyć sshd, ponieważ sshd przekazuje nazwy DNS do różnych podsystemów, takich jak utmp lub audit.
źródło
pam_lastlog
jak wspomniano powyżej?(1) W oparciu o
last
wyjście OPPo zalogowaniu przez ssh można ssh do localhost i uzyskać 0.0.0.0
last -i
na później.Oprzyj na pierwszych czterech liniach dziennika PO
pts/19
logowanie byłopts/17
w okresie logowania.pts/17
logowanie byłopts/1
w okresie logowania.W przypadku tego konkretnego zdarzenia logiczne jest odgadnięcie, że OP ssh z 192.0.2.91 (
pty/1
), a następnie w ramach tej sesji ssh ponownie zalogować się lokalnie (ssh localhost
) na serwer (pts/17
) i ponownie (pts/19
).Sprawdź, czy to nakładanie się dzieje się z innym wystąpieniem.
Następujące mogą pomóc w ustaleniu przyczyny
(2) Dodatkowy Secnario
Scenariusz 1 - sudo i terminal
xhost + localhost
su - UserB
lubsudo su - UserB
następnie otwórz nowy terminal (xterm, terminal gnome itp.)UserB
pojawi się jako 0.0.0.0 wlast -i
su - UserB
nie zarejestruje się jakoUserB
ostatni login, ale otworzy terminal.Scenariusz 2 - logowanie
sudo login
last
ilast -i
last
nie pokazuje nazwy hosta ani adresu IP dlalogin session
.last -i
będzie IP 0.0.0.0 dlalogin session
.Odpowiedź Mife już pokazuje blok kodu
last.c
. Powodemlast
wyświetlenia pustej nazwy hosta / adresu IP jest to, żeut_host
dla tych rekordów są faktycznie puste. Aby uzyskać pełną strukturę wtmp, wykonajman wtmp
na dowolnym systemie Linux.Dwa scenariusze tutaj pokazują, że nawet standardowe pakiety, w pewnych sytuacjach, tworzą je jako takie.
(3) Hack History Bash
Będzie działać tylko wtedy, gdy sesja będzie używana
bash
jako interaktywna powłoka..bashrc
i.bash_profile
są używane tylko przezbash
.Nie będą one pozyskiwane automatycznie, jeśli sesja użyje innej powłoki (sh, csh itp.) Lub uruchomi program bezpośrednio i nie będzie też historii bash.
(4) Rachunkowość procesów
Ponieważ OP nie wspomina nic o
secure
pliku, założę, że jest to ślepy zaułek i faktycznie zapewnia teraz wskazówkę.Jeśli poniższe założenie jest prawidłowe
auth.log (debian) / secure (CentOS) nie pomoże. Ponieważ rejestrowane są w nim tylko działania związane z uwierzytelnianiem.
wtmp / utmp, z ograniczeniem w strukturze danych, jest również ślepym zaułkiem. Brak informacji o tym, co je utworzyło.
Pozostaje nam jedna opcja - rozliczanie procesów . To duża broń, z której należy korzystać ostrożnie.
Psacct wersja pakietu powinna być 6.3.2-56 lub powyżej, zgodnie z tym poście .
Jeśli ma być użyty i
/var/log
ma ograniczoną przestrzeń, zmień plik dziennika acct na katalog (dostęp tylko dla roota) pod/home
, który zwykle ma znacznie więcej miejsca.To naprawdę wielka broń. Przy 10% częstości występowania PO, wynik powinien pojawić się w ciągu tygodnia. Jeśli w tym okresie pojawi się pusty wpis,
last
ale nic z dziennika acct, stanie się tajemniczą sytuacją i będzie wymagał drastycznych działań .Poniżej przedstawiono przykładowe dane wyjściowe
lastcomm
Możesz także użyć polecenia „zrzut-acct”, aby wyświetlić więcej informacji.
PS1: Próbowałem otworzyć kilka sesji terminalu i ssh. Nie jest jasne (ani trudne do ustalenia), co otwiera nowe punkty. Pokazuje jednak wszystko, co działało w ramach tej sesji / sesji.
PS2: post na blogu o używaniu acct przez Mike'a.
źródło
ssh localhost
i sprawdźlast -i
.login locally
, mam na myśli robieniessh localhost
w ramach tej sesji ssh. Zmodyfikowałem to zdanie, mam nadzieję, że teraz jest mniej mylące.Po zalogowaniu się do komputera może to być kilka wpisów w ostatnim poleceniu.
Pierwszy wpis z tty * pojawia się, gdy logujesz się przez terminal lub konsolę, naciskając CTRL + ALT + F1-6. Z terminalu, z którego korzysta, jest prawie wszystko jasne.
Drugi wpis zwykle pojawia się w obrazie, gdy zalogujesz się na maszynie i otworzysz okno terminala w GUI. Pojawi się również wpis, nawet jeśli otworzysz nową kartę w tym samym oknie terminala.
Trzeci typ wpisu pojawia się po otwarciu sesji ekranowej po zalogowaniu do SSH. Spowoduje to również utworzenie wpisu bez adresu IP.
Czwarty wpis jest całkiem normalny, co wszyscy rozumieją.
Jeśli zrobisz
last -i
następujące wpisy, zobaczysz coś takiego:Jestem prawie pewien, że twoja sprawa jest rozpatrywana w jednym z dwóch przypadków, jeden z oknem terminalu w GUI, a drugi z sesją screen.
Mam nadzieję, że to pomogło.
źródło
screen
żadnego z0.0.0.0
wpisów. Używam GUI tylko podczas instalacji komputerów (około sierpnia / września).0.0.0.0
Po tym czasie widzę wiele wpisów.Nie sądzę, żebyśmy zaszli za daleko bez debugowania last.c, ale nie powinno to być zbyt trudne, ponieważ łatwo się kompiluje ...
Jedną z możliwości jest jednak zrzucenie pliku / var / log / wtmp za pomocą komendy utmpdump i przejrzenie nieprzetworzonych rekordów, które mogą rzucić nieco światła na Ciebie. Jeśli nie, proszę zamieścić odpowiednie dane wyjściowe z
abyśmy mogli odtworzyć lokalne kopie twojego wtmp do debugowania
źródło
Sprawdziłem na 12 serwerach aplikacji CentOS i RHEL 6.3 dla wielu użytkowników. Żaden nie wykazywał tego zachowania. Nie było brakujących wpisów w
last
danych wyjściowych z 4-5 tygodni.Myślę, że ważne jest, aby zobaczyć
/etc/hosts
wpis pliku, aby upewnić się, że jest zgodny z tym formatem .Co robisz dla rozwiązania DNS? Czy możesz opublikować swój
/etc/resolv.conf
?Pozostałe odpowiedzi wskazujące, że
0.0.0.0
reprezentują połączenia lokalne są poprawne. Typowymi przykładami są zdarzenia restartu i logowania do konsoli:Ponieważ wydaje się, że zdarza się to tylko w przypadku nazwanych użytkowników, czy jest jakaś zmiana, że coś funky jest pozyskiwane lub uruchamiane w skryptach logowania? Czy zmieniłeś
~/.bashrc
lub~/.bash_profile
domyślnie? Czy w środowisku są jakieś specjalne skrypty logowania?--Edytować--
Nadal nie jestem w stanie odtworzyć tego w żaden sposób. Patrzę jednak na dwa krytyczne elementy.
last
Komenda jest stabilny i nie został zmieniony w długim czasie. Patrząc na dziennik zmian sysvinit-tools , nie ma żadnych istotnych błędów. To samo dotyczy skryptów startowych (wtmp).Jeśli możesz to wymusić, wypróbuj je z innym kontem użytkownika z tych samych komputerów źródłowych. Ale nie widzę żadnych oznak, że jest to problem z systemem operacyjnym.
źródło
/etc/hosts
) powinny mieć wpływ na wszystkich ... nie tylko jalast -if
oba te pliki i sprawdzić, czy z czasem zobaczysz te same wyniki?/var/log/secure
wpisy ... wpisy, które0.0.0.0
nie pokazują niczego w/var/log/secure
OSTATECZNA ROZDZIELCZOŚĆ
Już przyznałem bonus, więc jest on przeznaczony wyłącznie dla przyszłych pracowników Google z tym samym pytaniem.
Powodem jest to, że pojawia się to tylko w ~ 10% moich danych logowania, ponieważ kiedy wprowadzam poważne zmiany w naszych routerach lub przełącznikach, używam ich,
script foo.log
więc mam pełny dziennik zmian tej zmiany. Z powodów, których wciąż nie rozumiem, CentOS tworzypts
wpis, gdy użyjeszscript
polecenia ... Pokażę dane wyjściowelast -i
przed i po uruchomieniuscript
...To zachowanie wydaje się być unikalne dla CentOS 6 ... w laboratorium mamy kilka maszyn CentOS 4.7, które nie wpisują pustego wpisu w
wtmp
... Maszyny Debian / Gentoo też nie wykazują takiego zachowania. Nasi administratorzy linuxa drapią się po głowie, dlaczego CentOS celowo dodałby kolejnypts
wpis podczas wykonywaniascript
... Podejrzewam, że to błąd RHEL.EDYCJA : Złożyłem ten problem jako RHEL Bug id 892134
UWAGA
Niektórzy ludzie błędnie założyli, że wstawiłem
script
moje~/.bashrc
lub~/.bash_profile
. To jest błędny argument ... jeśli to prawda,wtmp
powinienem mieć0.0.0.0
wpis po każdym logowaniu ssh ...Oczywiście tak nie było ...
źródło
script
polecenia w początkowym pytaniu.script
Program sprawia, maszynopis wszystkiego drukowane na terminalu. To istotny szczegół..bashrc
lub.bash_profile
nie; Wykonuję,script foo.log
gdy dokonam poważnych zmian, aby mieć dziennik zmian ... tzn. Dlatego wpływa to tylko na ~ 10% moich loginów 2) Jeśli twoje oskarżenie jest prawidłowe (a nie jest), nigdy nie miałbym loginu ssh który nie miał innego0.0.0.0
wpisu zaraz po nim 3)script
robi to tylko w CentOS ... Korzystałem z niego przez ponad dekadę i nigdy nie widziałem tego zachowania w innej dystrybucji ... w tym momencie twierdzę, że prawdopodobnie jest to CentOS błądscript
tylko powłokę. Bazując na tym, co tutaj pokazujesz, wersja CentOS / Redhatscript
faktycznie rozwidla się na pierwszym miejscu. Chociaż jestem nieco rozczarowany (: P), że nie jest to coś bardziej ogólnego / w różnych dystrybucjach, przynajmniej tajemnica zniknęła z mojego umysłu. PS: Jestem zaskoczony, że masz Gentoo w produkcji @. @Połączenia Pseudo Terminal Slave (pts) to połączenia SSH lub telnet, co oznacza pośrednie połączenia z systemem. Wszystkie te połączenia mogą łączyć się z powłoką, która pozwala wydawać polecenia na komputer. Więc kiedy otworzysz terminal w twoim systemie z GUI, otworzy to pts ze źródłem ip 0.0.0.0. Z dostarczonych przez ciebie informacji wynika, że dzieje się tak z powodu skryptu uruchomionego na tym serwerze lub zaplanowanego, który używa usługi ssh lub telnet lub lokalnych punktów do wysyłania danych wyjściowych do terminala.
źródło
Z którego klienta ssh korzystasz? Niektórzy klienci ssh mogą multipleksować wiele terminali przez jedno połączenie i zauważam, że wszystkie twoje sesje bez adresu IP mieszczą się w dłuższych sesjach, które mają zarejestrowany adres IP.
Nie mogę powielić tego zachowania za pomocą ssh tutaj.
źródło
Być może twój adres IP przekształca się w pusty ciąg na jednym z twoich serwerów DNS, prawdopodobnie wtórny, jeśli zdarza się to tylko 10 procent czasu (lub po prostu plik hosta, jeśli są one dystrybuowane z centralnego repozytorium). To tłumaczy brakujący (lub biały znak) wpis i jest spójny z odczytaniem źródła przez Soham.
źródło
„0.0.0.0” oznacza, że jest to użytkownik lokalny (nie zdalny login), prawdopodobnie wywołany przez aplikację np. Cronjob.
źródło
# last -i |grep 0.0.0.0 \ reboot system boot 0.0.0.0 Wed Dec 5 20:09 - 17:18 (15+21:08) # last |grep reboot \ reboot system boot 2.6.32-10-pve Wed Dec 5 20:09 - 17:18 (15+21:08)
Dzieje się tak, ponieważ korzystasz z systemu lokalnego, a 0.0.0.0 oznacza adres IP wszystkich interfejsów. Jeśli uważasz, że może ktoś się włamał, spróbuj ustawić pełne rejestrowanie powłoki, w tym polecenia za pośrednictwem ssh - http://blog.pointsoftware.ch/index.php/howto-bash-audit-command-logger/
źródło
Rozwiązałem go, dodając skrypt do ~ / .bashrc. Skrypt znajduje ostatni adres IP źródłowego połączenia telnet, następnie możesz dodać adres IP do pliku dziennika lub zrobić wszystko, czego potrzebujesz.
Sharon
źródło
netstat -nae | grep 23
nie jest przydatnym sposobem znajdowania połączeń telnet. To polecenie daje 92 wyniki w moim systemie, z których żaden nie jest telnetem.