পিটিএস লগইনে আইপি তথ্য `সর্বশেষ` আউটপুটে হারিয়ে যাওয়ার কারণ?


18

আমার কাজে পাঁচটি সেন্টস 6 টি লিনাক্স সিস্টেম রয়েছে এবং আমি একটি বিস্ময়কর সমস্যার মুখোমুখি হয়েছি যা কেবল আমার ইউজারিডের সাথে আমার সমস্ত লিনাক্স সিস্টেম জুড়েই ঘটেছে বলে মনে হচ্ছে ... এটি lastকমান্ড থেকে বাদ দেওয়া এন্ট্রিগুলি থেকে সমস্যার একটি উদাহরণ ... ।

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)

উপরের আমার দুটি পিটিএস লগইন এন্ট্রি দেখতে পাবেন যেগুলির সাথে কোনও উত্স আইপি ঠিকানা নেই। আমার সেন্টস মেশিনে আরও ছয়জন ব্যবহারকারী রয়েছে যারা সিস্টেমগুলি ভাগ করে। আমার লগইনের প্রায় 10% এই সমস্যাটি দেখে, তবে অন্য কোনও ব্যবহারকারীর নাম এই আচরণটি দেখায় না/var/log/secureউত্স আইপি ঠিকানা ব্যতীত এন্ট্রিগুলির জন্য কোনও প্রবেশ নেই ।

প্রশ্নাবলি

আমি এই সিস্টেমে যে ধরণের স্ক্রিপ্টগুলি রাখি (যা আমাদের নেটওয়ার্ক অবকাঠামোর বেশিরভাগ নিয়ন্ত্রণ করে) দেওয়া সত্ত্বেও আমি এই বিষয়টি নিয়ে সামান্যই ডেকে আছি এবং আমার লগিনগুলি কী কারণে মাঝেমধ্যে উত্সের ঠিকানাগুলি মিস করতে পারে তা বুঝতে চাই।

  • পিটিএস লাইন এন্ট্রিগুলির জন্য কেন last -iদেখায় ( এই উত্তরটি দেখুন )0.0.0.0
  • এমন কিছু আছে (দূষিত কার্যকলাপ ব্যতীত) যা যুক্তিসঙ্গতভাবে আচরণটি ব্যাখ্যা করবে?
  • বাশ ইতিহাসের টাইমস্ট্যাম্পিং ব্যতীত, সমস্যাটি ট্র্যাক করার জন্য আমি কী করতে পারি এমন আরও কিছু জিনিস রয়েছে?

তথ্যমূলক

যেহেতু এটি ঘটতে শুরু করেছে, আমি bashইতিহাসের সময়-স্ট্যাম্পিং সক্ষম করলাম (অর্থাত্ HISTTIMEFORMAT="%y-%m-%d %T "ইন .bash_profile) এবং আরও কয়েকটি বাশ ইতিহাসের হ্যাক যুক্ত করেছি ; যাইহোক, এটি পূর্ববর্তী ঘটনার সময় কী ঘটেছিল তার কোনও ইঙ্গিত দেয় না।

সমস্ত সিস্টেম 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 ~]$

সম্পাদনা

আমি যদি ব্যবহার করি তবে আমি এ জাতীয় last -i mpenningএন্ট্রিগুলি দেখতে পাচ্ছি ...

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)

যারা উত্তর দেওয়ার চেষ্টা করছেন তাদের জন্য নোট: আমি screenকমান্ড বা জিইউআই দিয়ে লগ ইন করিনি । আমার সমস্ত লগইন এসএসএইচ থেকে; খয়রাত পুরস্কার পেতে, আপনাকে cite আবশ্যক প্রামাণিক ব্যাখ্যা করার রেফারেন্স last -i 0.0.0.0এন্ট্রি শুধুমাত্র SSH- র মাধ্যমে sourced।

2 সম্পাদনা করুন (ইয়েওয়াইটের প্রশ্নের জন্য)

/etc/resolv.conf(মনে রাখবেন যে আমি আমার সংস্থার তথ্য লুকানোর জন্য উপরের আউটপুটে .localঅ্যাডারগুলি ব্যবহার করেছি last)

[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 তথ্য (নোট করুন যে এই কাস্টমাইজড হোস্ট ফাইলগুলি কেবল এমন কোনও মেশিনে বিদ্যমান যা এই সমস্যাগুলি রয়েছে)

[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/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)

শেষ সিদ্ধান্ত UT

দেখুন নিচের আমার উত্তর


তারা সবাই কি এসএসএসের মাধ্যমে সংযুক্ত হচ্ছে? আমার কাছে বেশ কয়েকটি বড় মাল্টিউজার সেন্টোস 6.x সিস্টেম রয়েছে। আমি সেখানে একই জিনিস দেখতে পাবো কিনা তা আমি দেখতে পাব।
ইয়েওয়াইট

@ নতুন, আপনাকে ধন্যবাদ ... সমস্ত লগইনগুলি এসএস হওয়া উচিত (এবং মাঝে মাঝে জিইউআই কনসোলের মাধ্যমে হওয়া উচিত, তবে বাক্সটি ঘুরিয়ে দেওয়ার সময় আমি কেবল জিইউআই থেকে লগইন করি)। অন্য কোনও দূরবর্তী লগইন প্রোটোকল সক্ষম নেই।
মাইক পেনিংটন 21

আউটপুট last -i mpenningফাঁকা দেখায়?
JeffG

ওহ, ডান .. আমি একটি EL6.3 সার্ভারে এই প্রতিলিপি প্রয়োজন ...
ewwhite

আপনি / var / লগ / সুরক্ষিত এবং / var / লগ / বার্তা থেকে লগইন আউটপুট সরবরাহ করতে পারেন? আমি বিশ্বাস করি যে আইপি মানটি প্যামের মাধ্যমে পাস করা একটি প্যারামিটার। প্যাম আইপি সঠিকভাবে প্রদর্শন করে না?
ম্যাথু আইফে

উত্তর:


4

script রেডহ্যাট এবং ডেবিয়ানের মধ্যে আচরণের পার্থক্য

সংযুক্ত গ্রন্থাগারগুলি

CentOS 6.3 - স্ক্রিপ্ট (ইউজার-লিনাক্স-এনজি 2.17.2)

#ldd /usr/bin/script

linux-vdso.so.1 =>  (0x00007fff077ff000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f309f5d1000)
libutempter.so.0 => /usr/lib64/libutempter.so.0 (0x00007f309f3cf000)
libc.so.6 => /lib64/libc.so.6 (0x00007f309f03b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f309f7e1000)

উবুন্টু 12.04 - স্ক্রিপ্ট (ইউজার-লিনাক্স 2.20.1)

#ldd /usr/bin/script

linux-vdso.so.1 =>  (0x00007fff375ff000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fc0d7ab0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc0d76f1000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc0d7cdc000)

টাইম

উপর বেজ মূল প্রজেক্টের সোর্স কোড , scriptউভয় সংস্করণ থেকে খোলা নতুন Pty না। নিম্নলিখিত পরীক্ষা হয়।

উবুন্টু 12.04

john@U64D211:~/tmp$ ls /dev/pts
0  1  5  8  ptmx
john@U64D211:~/tmp$ script
Script started, file is typescript
john@U64D211:~/tmp$ ls /dev/pts
0  1  2  5  8  ptmx
john@U64D211:~/tmp$ last -i
john     pts/0        0.0.0.0          Sat Jan  5 09:09   still logged in   
reboot   system boot  0.0.0.0          Sat Jan  5 09:08 - 09:52  (00:44)    
john     pts/0        0.0.0.0          Thu Jan  3 00:50 - 01:42  (00:52)    
reboot   system boot  0.0.0.0          Thu Jan  3 00:48 - 01:43  (00:54)    

wtmp begins Tue Jan  1 20:48:28 2013
john@U64D211:~/tmp$ exit
exit
Script done, file is typescript
john@U64D211:~/tmp$ ls /dev/pts
0  1  5  8  ptmx
john@U64D211:~/tmp$ 

উবুন্টু 12.04 scriptএকটি নতুন pts খুলল (2)। এটি কেবল আপডেট হয়নি /var/log/wtmp

সেন্টস 6

আমি পরীক্ষা এড়িয়ে যাচ্ছি কারণ আমরা ইতিমধ্যে জানি যে scriptখোলার পিটিআই করুন এবং ডাব্লুটিটিএমপি দিয়ে নিবন্ধন করুন।

libutemper

  • প্রকল্প: http://freecode.com/projects/libutempter
  • বিবরণ: libutempter টার্মিনাল এমুলেটরগুলির যেমন স্ক্রিন এবং এক্সটার্মের জন্য ব্যবহারকারীদের সেশনগুলি utmp এবং wtmp ফাইলগুলিতে রেকর্ড করতে একটি লাইব্রেরি ইন্টারফেস সরবরাহ করে।

সুতরাং মূল পার্থক্যটি অতিরিক্ত লাইব্রেরি ( libutempter.so.0) CentOS এর scriptসাথে যুক্ত বলে মনে হচ্ছে ।

উবুন্টু 12.04 দিয়ে পরীক্ষা করুন

কম্পাইল scriptlibutempter সঙ্গে

john@U64D211:~/tmp/util-linux-2.20.1$ sudo apt-get install libutempter-dev
john@U64D211:~/tmp/util-linux-2.20.1$ ./configure --with-utempter
john@U64D211:~/tmp/util-linux-2.20.1$ make
john@U64D211:~/tmp/util-linux-2.20.1$ cd term-utils/
john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ ldd ./script
linux-vdso.so.1 =>  (0x00007fff54dff000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f289e635000)
libutempter.so.0 => /usr/lib/libutempter.so.0 (0x00007f289e432000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f289e072000)
/lib64/ld-linux-x86-64.so.2 (0x00007f289e861000)

পরীক্ষামূলক

দৌড়ানোর আগে script

john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ ls /dev/pts
0  1  5  8  ptmx
john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ last -i
john     pts/0        0.0.0.0          Sat Jan  5 09:09   still logged in   
reboot   system boot  0.0.0.0          Sat Jan  5 09:08 - 10:37  (01:28)    
john     pts/0        0.0.0.0          Thu Jan  3 00:50 - 01:42  (00:52)    
reboot   system boot  0.0.0.0          Thu Jan  3 00:48 - 01:43  (00:54)    

wtmp begins Tue Jan  1 20:48:28 2013

মধ্যে script

john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ ./script
Script started, file is typescript
john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ ls /dev/pts
0  1  2  5  8  ptmx
john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ last -i
john     pts/2        0.0.0.0          Sat Jan  5 10:37   still logged in   
john     pts/0        0.0.0.0          Sat Jan  5 09:09   still logged in   
reboot   system boot  0.0.0.0          Sat Jan  5 09:08 - 10:37  (01:29)    
john     pts/0        0.0.0.0          Thu Jan  3 00:50 - 01:42  (00:52)    
reboot   system boot  0.0.0.0          Thu Jan  3 00:48 - 01:43  (00:54)    

wtmp begins Tue Jan  1 20:48:28 2013
john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ exit
exit
Script done, file is typescript

scriptশেষ হওয়ার পরে

john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ ls /dev/pts
0  1  5  8  ptmx
john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ last -i
john     pts/2        0.0.0.0          Sat Jan  5 10:37 - 10:37  (00:00)    
john     pts/0        0.0.0.0          Sat Jan  5 09:09   still logged in   
reboot   system boot  0.0.0.0          Sat Jan  5 09:08 - 10:37  (01:29)    
john     pts/0        0.0.0.0          Thu Jan  3 00:50 - 01:42  (00:52)    
reboot   system boot  0.0.0.0          Thu Jan  3 00:48 - 01:43  (00:54)    

wtmp begins Tue Jan  1 20:48:28 2013
john@U64D211:~/tmp/util-linux-2.20.1/term-utils$ last
john     pts/2                         Sat Jan  5 10:37 - 10:37  (00:00)    
john     pts/0        :0               Sat Jan  5 09:09   still logged in   
reboot   system boot  3.2.0-35-generic Sat Jan  5 09:08 - 10:38  (01:30)    
john     pts/0        :0               Thu Jan  3 00:50 - 01:42  (00:52)    
reboot   system boot  3.2.0-35-generic Thu Jan  3 00:48 - 01:43  (00:54)    

wtmp begins Tue Jan  1 20:48:28 2013

এমটিপি হোস্টনামের মূল কারণ

এবং হ্যাঁ, খালি হোস্টনেম দিয়ে এন্ট্রি script.cতৈরি করবেন wtmputil-linux-2.20.1/term-utils/script.cলাইনে নিম্নলিখিত কোড ব্লকটি দেখুন : 245-247

#ifdef HAVE_LIBUTEMPTER
    utempter_add_record(master, NULL);
#endif

নির্ভর করে libutempter-1.1.5/utempter.h

extern int utempter_add_record (int master_fd, const char *hostname);

সুতরাং script.cআসলে খালি হোস্টনামটি এর মধ্যে দিয়ে যাচ্ছে utempter_add_record

রেডহ্যাট ব্যাকপোর্ট

মজার বিষয় হ'ল, উজানগুলি util-linux-ng-2.17.2আসলে সমর্থন করে না libutempter। মনে হয় রেডহ্যাট সেই সমর্থনটি আবার যুক্ত করার সিদ্ধান্ত নিয়েছে।

john@U64D211:~/tmp/util-linux-ng-2.17.2$ ./configure --help|grep utemp

উপরের কমান্ডটি খালি ফলাফল দেয়।

উপসংহার

সুতরাং দুটি ডিস্ট্রোসের মধ্যে আচরণের পার্থক্যটি কোনও বাগ নয়, একটি পছন্দ। রেডহ্যাট সেই বৈশিষ্ট্যটি সমর্থন করার সিদ্ধান্ত নিয়েছে, যখন ডেবিয়ান এড়িয়ে যায়।


সেন্টস 5 সম্পর্কে কী?
ew white

@Wwite আপনি কি আমাকে coreutilsRPM সংস্করণটি সেন্টোস 5 ব্যবহার করতে পারবেন? আমাকে সোর্স কোডটি চেক করতে হবে।
জন সিউ

দরকার নেই. libutempterEL4 (মাধ্যমে যুক্ত নয় ldd), কিন্তু এটা করা হয় EL5 এবং EL6 সংযুক্ত scriptকমান্ড। এই বৈশিষ্ট্যটি পরিবর্তনটি সম্ভবত রেড হ্যাট-এর মতো সিস্টেমে 2007 থেকে আরএইচএল 5-এর coreutilsই এল 4-র প্রবর্তন হওয়ার পরে থেকেই সংস্করণ 5.2.1-এর সংস্করণ হিসাবে রয়েছে। EL5 এ এর ​​সংস্করণ 5.97।
ew white

আমি দেখি. বিটিডাব্লু, scriptইউজার-লিনাক্সে রয়েছে।
জন সিউ 17

1
@ জনসুই: হ্যাঁ, এটিই পার্থক্যের কারণ, আমার কাছে মনে হয় তারা রিপোর্ট করা বাগটি স্থির করে এবং (অজান্তেই) একটি নতুন তৈরি করেছে।
ব্যবহারকারী 9517 GoFundMonica

12

এটি আমার কাছে একেবারে বিস্মিত দেখাচ্ছে। হয় এটির কিছু ডিএনএস নাম বা আইপি ঠিকানা ব্যবহার করা উচিত। আমি last.cফাইলটিও পরীক্ষা করেছিলাম তবে কেন এটি কিছুই দেখাচ্ছে না তা এখনও খুঁজে পাচ্ছি না। সম্ভবত কিছু সময় দেওয়া হয়েছে, আমি অংশটি 0.0.0.0 সম্পর্কে বের করতে পারি।

int dns_lookup(char *result, int size, int useip, int32_t *a)
307 {
308     struct sockaddr_in  sin;
309     struct sockaddr_in6 sin6;
310     struct sockaddr     *sa;
311     int         salen, flags;
312     int         mapped = 0;
313 
314     flags = useip ? NI_NUMERICHOST : 0;
315 
316     /*
317      *  IPv4 or IPv6 ?
318      *  1. If last 3 4bytes are 0, must be IPv4
319      *  2. If IPv6 in IPv4, handle as IPv4
320      *  3. Anything else is IPv6
321      *
322      *  Ugly.
323      */
324     if (a[0] == 0 && a[1] == 0 && a[2] == htonl (0xffff))
325         mapped = 1;
326 
327     if (mapped || (a[1] == 0 && a[2] == 0 && a[3] == 0)) {
328         /* IPv4 */
329         sin.sin_family = AF_INET;
330         sin.sin_port = 0;
331         sin.sin_addr.s_addr = mapped ? a[3] : a[0];
332         sa = (struct sockaddr *)&sin;
333         salen = sizeof(sin);
334     } else {
335         /* IPv6 */
336         memset(&sin6, 0, sizeof(sin6));
337         sin6.sin6_family = AF_INET6;
338         sin6.sin6_port = 0;
339         memcpy(sin6.sin6_addr.s6_addr, a, 16);
340         sa = (struct sockaddr *)&sin6;
341         salen = sizeof(sin6);
342     }
343 
344     return getnameinfo(sa, salen, result, size, NULL, 0, flags);
345 }

প্রসঙ্গে ব্যবহৃত দুটি গ্লোবাল ভেরিয়েবল এগুলি।

int usedns = 0;     /* Use DNS to lookup the hostname. */
72 int useip = 0;       /* Print IP address in number format */

সুতরাং, তত্ত্বগতভাবে, এটি হয় ডিএনএস বা আইপি ব্যবহার করা উচিত।

আমি আরও কিছু খনন করতে পারি কিনা তা আমি দেখতে পাব। তবে ew white জিজ্ঞাসা বৈধ প্রশ্ন।


1
প্রশ্নের মধ্যে থাকা কমান্ডের জন্য আসল উত্স কোডটি খননের জন্য +1।
ক্রিস স্মিথ

দুর্দান্ত তথ্য, এটি আমি প্রকারের কর্তৃত্ববাদী উত্স খুঁজছি। কোডটি খুঁজে পেতে কঠোর পরিশ্রম করার জন্য আপনাকে ধন্যবাদ।
মাইক পেনিংটন

8

সুতরাং আমি শেষ পর্যন্ত একটি ডিবাগারে দৌড়েছি যা আশা করি আপনাকে আপনার প্রশ্নের কমপক্ষে কিছু উত্তর দেবে। আমার অনুভূতি হ'ল মূল কারণ যদিও গভীর।

পিটিএস লাইন এন্ট্রিগুলির জন্য সর্বশেষ -i 0.0.0.0 প্রদর্শন করে

এটি বোঝানোর সর্বোত্তম উপায় হ'ল আপনি যখন পাস করেন না তখনই ঘটে i

এর কারণটি এই কোড বিভাগে রয়েছে last.c

if (usedns || useip)
  r = dns_lookup(domain, sizeof(domain), useip, p->ut_addr_v6);
if (r < 0) {
   len = UT_HOSTSIZE;
   if (len >= sizeof(domain)) len = sizeof(domain) - 1;
   domain[0] = 0;
   strncat(domain, p->ut_host, len);
}

উভয় usednsএবং useip(ডিফল্ট বিকল্পগুলি ব্যবহার করে) পতাকাঙ্কিত হয় না। এটি যুক্তিকে কাঠামোটি অনুলিপি করে দেয় p->ut_hostযার মতে যেটি man utmpলিখেছিল তা দ্বারা লিখিত হিসাবে রিমোট লগইন নাম রয়েছে utmp

char ut_host[UT_HOSTSIZE]; /* Hostname for remote login, or
                              kernel version for run-level
                              messages */

আপনার ক্ষেত্রে, মান এখানে শূন্য। এই কারণেই যখন আপনি চালনা করেন তখন lastকিছুই আপনার কাছে উপস্থিত হয় না।

ক্ষেত্রে last -iতারপর dns_lookup প্রার্থনা করা হয়। এটি ডিএনএসের মাধ্যমে সমাধানের জন্য এন্ট্রি (p-> ut_addr_v6) পাস করবে। আপনার যদি এই মান এছাড়াও শূণ্যসমূহ ধারণ করে।

বেশিরভাগটি dns_lookupউইন্ডো ড্রেসিং এবং হিস্টোরিটিক। মূলত যা গুরুত্বপূর্ণ তা হ'ল ফাংশন getnameinfo। এটি একটি লাইব্রেরি কল যা এই ক্ষেত্রে সঞ্চিত বাইনারি মানটি সমাধান করার জন্য যথাসাধ্য চেষ্টা করবে ut_addr_v6। যখন এই এন্ট্রিতে শূন্য থাকে (যেমন আপনার ক্ষেত্রে) আপনি আসলে এটির সমাধান 0.0.0.0করছেন আপনার last -iআউটপুট নিয়ে যা ঘটে ।

এমন কিছু আছে (দূষিত কার্যকলাপ ব্যতীত) যা যুক্তিসঙ্গতভাবে আচরণটি ব্যাখ্যা করবে?

ভাল, এটি সম্ভবত একটি বাগ বা তদারকি। কোনও উত্সের ঠিকানা বাদ না দিয়ে আক্রমণকারী হিসাবে কোনও চিহ্ন রেখে যাওয়া বোকামি বলে মনে হয় বলে এটি দূষিত হওয়ার সম্ভাবনা কম ।

এখনও পর্যন্ত উত্তরগুলির কেন্দ্রবিন্দু ভুল স্থানটির দিকে তাকিয়ে আছে। lastশুধু পড়া utmpবা wtmp। যাইহোক lastএটি থাকা ডেটা দিয়ে সেরা চেষ্টা করছে।

আপনার মূল কারণটি যেখানে utmpলেখা হচ্ছে তেমন কোথাও রয়েছে !

কয়েকটি অ্যাপ্লিকেশন সরাসরি লিখার সময় utmpআমি অনুমান করি যে আপনার সমস্যার উত্সটি উপায়ে sshdরয়েছে সেশন পরিচালনা পরিচালনা করছে।

বাশ ইতিহাসের টাইমস্ট্যাম্পিং ব্যতীত, সমস্যাটি ট্র্যাক করার জন্য আমি কী করতে পারি এমন আরও কিছু জিনিস রয়েছে?

utmpসাধারণত রচনাযোগ্য নয় এবং তা বোঝানো হয় না। utmpআপনাকে লগ ইন করতে এবং আপনার সেশনটি সেটআপ করার জন্য ডিজাইন করা অ্যাপ্লিকেশন দ্বারা রচিত। আপনার ক্ষেত্রে যে হয় sshd

Sshd আপনার ব্যবহারকারীকে সঠিকভাবে পরিচালনা করছে না কেন তা খুব আশ্চর্যজনক কারণ এটি আপনি যে হোস্টনেম থেকে এসেছেন সেটি সঠিকভাবে অনুলিপি করা উচিত। এখানেই ডিবাগিংয়ের প্রচেষ্টাগুলিকে সম্ভবত ফোকাস করা উচিত। আপনার লগগুলিতে sshd এর ডিবাগ আউটপুট যুক্ত করে শুরু করুন এবং দেখুন যে কোনও অসাধারণ কিছু সামনে আসে কিনা।

আপনি যদি সমস্যাটি নিয়ে কাজ করতে চান (বা, সম্ভবত সমস্যাটি সম্পর্কে আরও কিছু আবিষ্কার করতে পারেন) আপনি এটি /etc/pam.d/sshd এ সেশন এন্ট্রিতে যুক্ত করে pam_lastlogপরিচালনা করতে পারেন ।utmp

আসলে এটি ইতিমধ্যে আছে কিনা তা খতিয়ে দেখতে ক্ষতিগ্রস্থ হবে না - কারণ pam_lastlogএমন একটি nohostবিকল্প রয়েছে যা আপনার অভিজ্ঞতার আচরণটি অবশ্যই স্পষ্টভাবে ব্যাখ্যা করবে।

অবশেষে, আপনি শেষটি মোটেও ব্যবহার করতে পারেন নি। aulastঅডিট সাবসিস্টেমের মাধ্যমে একই কাজ করে।

এটি কমপক্ষে সঠিক ঠিকানা লিখতে পরিচালিত হয়েছে কিনা তা দেখার চেষ্টা করা উচিত। যদি তা না হয় তবে আপনার সমস্যাটি অবশ্যই এসএসডিএডের সাথে থাকতে হবে কারণ এসএসডিডি বিভিন্ন সাবসিস্টেমির মতো ডিএমএস নামগুলি উতপ বা নিরীক্ষার মতো পাস করছে।


pam_lastlogউপরে বর্ণিতভাবে কীভাবে ব্যবহার করবেন সে সম্পর্কে আপনি কিছু নির্দিষ্ট নির্দেশাবলী যুক্ত করতে পারেন ?
মাইক পেনিংটন

8

(1) ওপি lastআউটপুট উপর বেস

Ssh- এর মাধ্যমে লগ ইন করার পরে, লোকালহোস্টে ssh করতে পারে এবং last -iপরে 0.0.0.0 এ প্রবেশ করতে পারে ।

ওপির লগের প্রথম চার লাইনে বেস

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)

pts/19লগ pts/17ইন পিরিয়ডের মধ্যে ছিল ।

pts/17লগ pts/1 ইন পিরিয়ডের মধ্যে ছিল ।

এই নির্দিষ্ট ঘটনার জন্য, অনুমান করা যুক্তিসঙ্গত যে ওপ ssh 192.0.2.91 ( pty/1) থেকে, তারপরে সেই ssh সেশনের মধ্যে, স্থানীয়ভাবে ( ssh localhost) সার্ভারে আবার ( pts/17) এবং আবার ( pts/19) প্রবেশ করুন।

এই ঘটনাটি অন্যান্য ঘটনার সাথে ঘটে কিনা তা দয়া করে পরীক্ষা করে দেখুন।

নিম্নলিখিত কারণ চিহ্নিত করতে সাহায্য করতে পারে

  • আপনি কি ssh-key ব্যবহার করেন? যদি তাই হয়, সার্ভারে, আপনি স্থানীয়ভাবে লগ ইন করার জন্য ssh-key সেটআপ করেছিলেন?
  • একই সময় ফ্রেমের চেক বা পোস্ট / বার / লগ / সুরক্ষিত। এটি কিছু ইঙ্গিত দিতে পারে।
  • আপনার ব্যবহৃত স্ক্রিপ্টগুলি পরীক্ষা করুন
  • আপনার ব্যবহৃত শেল অ্যালিয়াস পরীক্ষা করুন
  • আপনার কমান্ডের ইতিহাস পরীক্ষা করুন

(২) অতিরিক্ত সেকনারিও

দৃশ্য 1 - সুডো এবং টার্মিনাল

  1. ইউজারএ লগ ইন এক্স উইন্ডো
  2. একটি টার্মিনাল উইন্ডো খুলুন, করুন xhost + localhost
  3. su - UserBবা sudo su - UserBতারপরে একটি নতুন টার্মিনাল খুলুন (এক্সটার্ম, জিনোম-টার্মিনাল ইত্যাদি)
  4. UserB 0.0.0.0 হিসাবে প্রদর্শিত হবে last -i

su - UserBUserBসর্বশেষে একটি লগইন হিসাবে নিবন্ধন করবে না , কিন্তু একটি টার্মিনাল খোলার।

দৃশ্য 2 - লগইন করুন

  1. সার্ভারে ssh
  2. আদর্শ sudo login
  3. নিজেকে হিসাবে লগইন করুন
  4. চেক lastএবংlast -i

lastএর জন্য কোনও হোস্টনাম বা আইপি প্রদর্শন করবেন না login sessionlast -iআইপি 0.0.0.0 হবে login session

john@U64D211:~$ last -5
john     pts/0                         Sun Dec 23 20:50   still logged in   
john     pts/0                         Sun Dec 23 20:50 - 20:50  (00:00)    
john     pts/0        :0               Sun Dec 23 20:50 - 20:50  (00:00)    
reboot   system boot  3.2.0-35-generic Sun Dec 23 20:49 - 20:50  (00:01)    
john     pts/2        js.example.com   Sun Dec 23 17:14 - crash  (03:34)    

wtmp begins Sat Dec  1 06:30:46 2012
john@U64D211:~$ last -5i
john     pts/0        0.0.0.0          Sun Dec 23 20:50   still logged in   
john     pts/0        0.0.0.0          Sun Dec 23 20:50 - 20:50  (00:00)    
john     pts/0        0.0.0.0          Sun Dec 23 20:50 - 20:50  (00:00)    
reboot   system boot  0.0.0.0          Sun Dec 23 20:49 - 20:50  (00:01)    
john     pts/2        192.168.1.90     Sun Dec 23 17:14 - crash  (03:34)    

wtmp begins Sat Dec  1 06:30:46 2012

মাইফের উত্তর ইতিমধ্যে এর কোড ব্লক দেখায় last.c। কারণ lastকারণ প্রদর্শন খালি হোস্টনাম / IP এর হয় ut_hostজন্য ঐ রেকর্ড আছে আসলে খালি। সম্পূর্ণ ডাব্লুটিএমপি কাঠামোর জন্য, যে man wtmpকোনও লিনাক্স সিস্টেমে করুন।

এখানে 2 টি পরিস্থিতি দেখায় যে এমনকি কিছু স্ট্যান্ডার্ড প্যাকেজগুলিও নির্দিষ্ট পরিস্থিতির অধীনে এগুলি তৈরি করে।

(3) ব্যাশ ইতিহাস হ্যাক

এটি কেবল তখনই কাজ করবে যখন সেশনটি bashইন্টারেক্টিভ শেল হিসাবে ব্যবহার করে ।

.bashrcএবং .bash_profileশুধুমাত্র দ্বারা ব্যবহৃত হয় bash

যদি সেশনটি অন্য কোনও শেল (sh, csh, ইত্যাদি) ব্যবহার করে বা সরাসরি প্রোগ্রাম চালায় তবে সেগুলি স্বয়ংক্রিয়ভাবে উত্সাহিত হবে না এবং কোনও বাশ ইতিহাস থাকবে না।

(4) অ্যাকাউন্টিং প্রক্রিয়া

যেহেতু ওপি secureফাইল সম্পর্কে কিছুই উল্লেখ করেছে তাই আমি ধরে নেব যে এটি একটি মৃত শেষ এবং এটি আসলে এখনই ইঙ্গিত সরবরাহ করে।

নিম্নলিখিত অনুমানটি সঠিক হলে

`last` 0.0.0.0 entries are actually created with in OP own session

auth.log (ডেবিয়ান) / সুরক্ষিত (CentOS) সাহায্য করবে না। এটিতে কেবল প্রমাণীকরণ সম্পর্কিত ক্রিয়া রেকর্ড করা হয়।

wtmp / utmp, তাদের ডেটা কাঠামোর সীমাবদ্ধতা সহ, এটিও একটি মৃত শেষ end এগুলি কী তৈরি করেছে সে সম্পর্কে কোনও তথ্য নেই।

অ্যাকাউন্টিং প্রক্রিয়াজাতকরণের একটি বিকল্প আমাদের ছেড়ে দেয় । এটি একটি বড় বন্দুক এবং সতর্কতার সাথে ব্যবহার করতে হবে।

  1. হয়তো কোম্পানির নীতির বিরুদ্ধে
  2. ভাগ করা সিস্টেমে থাকা অন্য ব্যবহারকারীরা এটি সক্ষম করে অসন্তুষ্ট / অস্বস্তি বোধ করতে পারেন
  3. লগ ফাইলটি ডিস্কের প্রচুর স্থান ব্যবহার করতে পারে। ফাইলের আকার বৃদ্ধির হারের দিকে নজর রাখুন।

এই পোস্ট অনুসারে psacct প্যাকেজ সংস্করণটি 6.3.2-56 বা তার বেশি হওয়া উচিত ।

যদি এটি ব্যবহার করতে হয় এবং /var/logএর সীমিত জায়গা থাকে তবে অ্যাক্ট লগ ফাইলটি একটি ডিরেক্টরিতে (কেবলমাত্র রুট অ্যাক্সেস) এর অধীনে পরিবর্তন করুন /home, যার সাধারণত আরও অনেক বেশি স্থান থাকে।

এটি আসলেই বড় বন্দুক। ওপি 10% সংঘটন হারের সাথে, এক সপ্তাহের মধ্যে ফলাফল হওয়া উচিত। যদি সেই সময়ের মধ্যে, খালি এন্ট্রিটি lastঅ্যাক্ট লগ থেকে কিছুই না দেখানো হয় তবে এটি একটি রহস্যজনক পরিস্থিতিতে পরিণত হয় এবং এর জন্য কিছু কঠোর পদক্ষেপ নেওয়া প্রয়োজন

নীচে একটি নমুনা আউটপুট হয় lastcomm

lesspipe               john     pts/8      0.02 secs Mon Dec 24 17:10
lesspipe          F    john     pts/8      0.00 secs Mon Dec 24 17:10
dirname                john     pts/8      0.00 secs Mon Dec 24 17:10
basename               john     pts/8      0.00 secs Mon Dec 24 17:10
kworker/1:2       F    root     __         0.00 secs Mon Dec 24 16:54
tty                    john     pts/6      0.01 secs Mon Dec 24 17:09
tty                    john     pts/4      0.01 secs Mon Dec 24 17:09
cron              F    root     __         0.05 secs Mon Dec 24 17:09
sh               S     root     __         0.01 secs Mon Dec 24 17:09
find                   root     __         0.01 secs Mon Dec 24 17:09
maxlifetime            root     __         0.00 secs Mon Dec 24 17:09
php5                   root     __         0.23 secs Mon Dec 24 17:09
which                  root     __         0.00 secs Mon Dec 24 17:09
lastcomm               root     pts/0      0.01 secs Mon Dec 24 17:08
tty                    john     pts/1      0.01 secs Mon Dec 24 17:08
dconf worker         X john     __         5.46 secs Mon Dec 24 16:58
lastcomm               root     pts/7      0.04 secs Mon Dec 24 17:05
mesg             S     root     pts/7      0.00 secs Mon Dec 24 17:05
bash              F    root     pts/7      0.00 secs Mon Dec 24 17:05
dircolors              root     pts/7      0.00 secs Mon Dec 24 17:05

আপনি আরও তথ্য দেখানোর জন্য 'ডাম্প-অ্যাক্ট' ব্যবহার করতে পারেন।

PS1: আমি কয়েকটি টার্মিনাল এবং ssh সেশন খোলার চেষ্টা করেছি। এটি কোনও স্পষ্ট নয় (বা পিন পয়েন্ট করা সহজ নয়) কোন নতুন পিটিএস খুলবে। যাইহোক, এটি পিটিএস / সেশনের মধ্যে চলে এমন সমস্ত কিছু দেখায়।

পিএস 2: মাইক দ্বারা অ্যাক্ট ব্যবহার সম্পর্কে একটি ব্লগ পোস্ট।


আপনি কীভাবে লোকালহোস্টের লগইন 0.0.0.0 উপার্জন করতে পেরেছেন তা আমি জানি না, এটি সর্বদা আমার জন্য লোকালহোস্ট হিসাবে প্রদর্শিত হয়। আমি কেবল এসএসএস দিয়ে লগইন করি, স্থানীয়ভাবে আপনি লগইন দ্বারা কী বোঝাতে চান তা আমি জানি না
মাইক পেনিংটন

দয়া করে ssh localhostপরীক্ষা করুন last -i
জন সিউ

সম্পর্কিত login locally, আমি বলতে চাই ssh localhostযে ssh অধিবেশন মধ্যে করা। আমি সেই বাক্যটি সংশোধন করেছি, আশা করি এটি এখন কম বিভ্রান্তিকর।
জন সিউ

অতিরিক্ত দৃশ্য যুক্ত করা হয়েছে।
জন সিউ

5

আপনি যখন কোনও মেশিনে লগইন করেন, শেষ কমান্ডে এগুলি কয়েকটি কম থাকতে পারে।

geekride   tty2                        Fri Dec 21 15:45 - 15:45  (00:00)    
geekride   pts/1                       Fri Dec 21 13:45   still logged in   
geekride   pts/1        :pts/0:S.0     Thu Dec  6 12:49 - 00:40  (11:50)    
geekride   pts/1        10.31.33.47    Thu Dec  6 12:49 - 00:40  (11:50)    

Tty * সহ প্রথম এন্ট্রিটি তখন আসে যখন আপনি টার্মিনাল বা কনসোলটিতে CTRL + ALT + F1-6 টিপে লগইন করেন। এটি ব্যবহার করা টার্মিনাল থেকে এটি বেশ স্পষ্ট।

দ্বিতীয় এন্ট্রিটি সাধারণত ছবিতে আসে যখন আপনি কোনও মেশিনে লগইন করেন এবং জিইউআইতে একটি টার্মিনাল উইন্ডো খোলেন। আপনি একই টার্মিনাল উইন্ডোতে একটি নতুন ট্যাব খুললে এমনকি একটি এন্ট্রিও থাকবে।

তৃতীয় প্রকারের এন্ট্রি আসে যখন আপনি এসএসএইচ-এর মাধ্যমে লগইন করার পরে একটি স্ক্রিন সেশন খুলেন। এটি সেখানে এবং কোনও আইপি ঠিকানা ছাড়াই একটি এন্ট্রি তৈরি করবে।

চতুর্থ এন্ট্রি বেশ স্বাভাবিক যা প্রত্যেকে বুঝতে পারে।

আপনি যদি last -iনীচের এন্ট্রিগুলি দিয়ে থাকেন তবে আপনি এই জাতীয় কিছু দেখতে পাবেন:

geekride   tty2         0.0.0.0        Fri Dec 21 15:45 - 15:45  (00:00)    
geekride   pts/9        0.0.0.0        Fri Dec 21 13:45   still logged in   
geekride   pts/1        0.0.0.0        Thu Dec  6 12:49 - 00:40  (11:50)    

আমি যথেষ্ট নিশ্চিত যে আপনার কেস 2 টির মধ্যে যে কোনও একটির অধীনে আসে, একটি জিইউআইয়ের টার্মিনাল উইন্ডো এবং অন্যটি স্ক্রিন সেশন সহ with

আশা করি এটি সাহায্য করেছে।


2
আমি জিইউআই বা screenকোনও 0.0.0.0এন্ট্রি ব্যবহার করিনি । আমি কেবলমাত্র জিইউআই ব্যবহার করি যখন আমি মেশিনগুলি ইনস্টল করি (আগস্ট / সেপ্টেম্বরের দিকে)। আমি 0.0.0.0সেই সময়ের পরে অনেক পিটিএস এন্ট্রি দেখতে পাচ্ছি ।
মাইক পেনিংটন

1
এটি সত্যিই দরকারী ছিল এবং আমার বেশ কয়েকটি সত্যই পুরানো সন্দেহগুলি সাফ হয়েছিল
রাহুল

3

আমি মনে করি না যে আমরা শেষের ডিবাগিং ছাড়াই এটির সাথে চলে যাব, তবে এটি খুব সহজেই সঙ্কলিত হবে না কারণ এটি সহজেই সংকলন করে ...

তবে একটি সম্ভাবনা হ'ল utmpdump কমান্ডটি ব্যবহার করে / var / log / wtmp ফাইলটি ডাম্প করা এবং কাঁচা রেকর্ডগুলি একবার দেখুন যা এটি আপনার জন্য কিছুটা আলোকপাত করতে পারে। যদি না হয় তবে কিছু প্রাসঙ্গিক আউটপুট পোস্ট করুন

utmpdump /var/log/wtmp 

যাতে আমরা আপনার ডাব্লুটিএমপি-র স্থানীয় কপিগুলি ডিবাগ করার জন্য পুনরায় তৈরি করতে পারি

utmpdump -r <dumpfile >wtmp

এটি দেখে মনে হতে পারে এটি কোনও উত্তর নয় তবে এটি সত্যই, আমরা কেবল এটি জানার লোকদের কাছে চলে এসেছি এবং সত্যই ডিবাগিংয়ের প্রয়োজন।
ব্যবহারকারী 9517 GoFundMonica

এটি পরিবেশ-নির্দিষ্ট। আমি এই সার্ভারগুলিতে যথেষ্ট রান করেছি এবং সাধারণ ক্রিয়াকলাপের কোনও সংমিশ্রণে আচরণটি পুনরুত্পাদন করতে পারি না।
ew white

@ নিউ হোয়াইট: আমি খুব কয়েকটি করেছি এবং আমি এটিও খুঁজে পাচ্ছি না।
ব্যবহারকারী 9517 GoFundMonica

@ নিউ হোয়াইট কয়েক সেন্টস মেশিন নিজে চেষ্টা করেছিলাম এবং এমন কয়েকজন সহকর্মীকেও জিজ্ঞাসা করেছি যারা এই বাক্সগুলির প্রায় 300 টি রক্ষণাবেক্ষণ করে। তারা এর আগে কখনও এই দেখেছিল মনে করতে পারে না।
টনি

3

আমি 12 টি মাল্টি-ইউজার সেন্টোস এবং আরএইচএল 6.3-ভিত্তিক অ্যাপ্লিকেশন সার্ভার জুড়ে পরীক্ষা করেছি। কেউই এই আচরণটি দেখায়নি। last4-5 সপ্তাহ পিছনে আউটপুটটিতে কোনও অনুপস্থিত এন্ট্রি নেই ।

আমি মনে করি এটি /etc/hostsনিশ্চিত করার জন্য আপনার ফাইল এন্ট্রিটি দেখতে গুরুত্বপূর্ণ হবে এই ফর্ম্যাটটির সাথে সঙ্গতিপূর্ণ হয়েছে হবে

এছাড়াও, আপনি ডিএনএস রেজোলিউশনের জন্য কী করছেন? আপনি আপনার পোস্ট করতে পারেন/etc/resolv.conf ?

0.0.0.0স্থানীয় সংযোগগুলি উপস্থাপন করে এমন অন্যান্য প্রতিক্রিয়াগুলি সঠিক। সাধারণ উদাহরণগুলি হ'ল রিবুট এবং কনসোল লগইন ইভেন্টগুলি:

 reboot   system boot  0.0.0.0          Sat Dec  8 06:12 - 05:57 (12+23:45)  
 reboot   system boot  0.0.0.0          Sat Dec  8 05:25 - 06:09  (00:44)    
 reboot   system boot  0.0.0.0          Fri Nov 30 14:28 - 05:22 (7+14:54)   
 root     tty1         0.0.0.0          Fri Nov 30 13:52 - 13:55  (00:03)    
 reboot   system boot  0.0.0.0          Fri Nov 30 13:51 - 14:25  (00:34)    

যেহেতু এটি কেবল নামযুক্ত ব্যবহারকারীদের সাথেই ঘটেছে বলে মনে হয়, তাই লগইন স্ক্রিপ্টগুলিতে মজাদার কিছু পাওয়া যায় বা চালানো হয়? আপনি পরিবর্তন করেছেন ~/.bashrcবা ~/.bash_profileডিফল্ট থেকে? পরিবেশে অন্য কোনও বিশেষ লগইন স্ক্রিপ্ট আছে?

--Edit--

আমি এখনও এটি কোনওভাবেই পুনরুত্পাদন করতে অক্ষম। আমি দুটি সমালোচনামূলক উপাদান তাকান, যদিও। lastকমান্ড স্থিতিশীল এবং একটি দীর্ঘ সময় পরিবর্তন করা হয় নি। সিজনভিট-সরঞ্জামগুলির জন্য চেঞ্জলগের দিকে তাকিয়ে কোনও প্রাসঙ্গিক বাগ নেই। একই জন্য initscripts (wtmp)।

যদি আপনি এটি করতে বাধ্য করতে পারেন তবে একই উত্স মেশিনের থেকে পৃথক ব্যবহারকারী অ্যাকাউন্ট দিয়ে চেষ্টা করুন try তবে আমি এটি কোনও ওএস ইস্যু বলে কোনও ইঙ্গিত দেখছি না।


স্থানীয় পরিবেশ সম্পর্কে আপনার প্রশ্ন সম্পর্কে ... দয়া করে আমার প্রশ্নের সর্বশেষ সম্পাদনাগুলি দেখুন ... মনে রাখবেন যে আমার ব্যতীত অন্য কোনও ব্যবহারকারীর এই সমস্যা নেই ... সুতরাং গ্লোবাল কনফিগারেশনগুলি (যেমন /etc/hosts) প্রত্যেককে প্রভাবিত করবে ... না just me
মাইক পেনিংটন

এটি কী সময়সীমার মধ্যে এসেছিল তা জানার জন্য সহায়ক হবে। আপনার লগ স্নিপেট এক মাস পুরানো। এটি কি পুনরুত্পাদনযোগ্য? এটি কি সমস্ত সার্ভারে ঘটছে? সম্ভবত যদি ডাব্লুটিএমপি ফাইলটি ঘোরানো হয়েছে, আপনার একটি ডাব্লুটিএমপি এবং ডাব্লুটিএমপি 1 থাকতে পারে। আপনি কি last -ifসেই দুটি ফাইলের বিরুদ্ধে দৌড়াতে পারেন এবং সময়ের সাথে একই ফলাফল দেখতে পান কিনা?
ew white

এছাড়াও, আপনি কমান্ড চালাচ্ছেন; (p) sftp (p) স্ক্র্যাপ? আপনার নো-আইপি অধিবেশনগুলি দীর্ঘ সেশনের সময়সীমার মধ্যে হওয়ায় আমি জিজ্ঞাসা করি। আপনার উদাহরণস্বরূপ, আপনি 192.0.2.91 থেকে একাধিক সংযোগ খুলছেন?
ew white

ভাল প্রশ্ন ... আমাকে আজ আগত অতিথিদের জন্য প্রস্তুত থাকতে হবে তবে আমি এই সপ্তাহান্তে এই বিবরণগুলির সাথে সাড়া দেওয়ার চেষ্টা করব
মাইক পেনিংটন

আমি মাঝে মাঝে ফ্রি উইনএসসিপি ক্লায়েন্টের মাধ্যমে স্ক্যাপ এবং এসএফপি ব্যবহার করি; যাইহোক, এই এন্ট্রিগুলি বৈধ এন্ট্রি তৈরি করে /var/log/secure... এমন এন্ট্রিগুলি যা 0.0.0.0কিছুই দেখায় না/var/log/secure
মাইক পেনিংটন

3

শেষ সিদ্ধান্ত UT

আমি ইতিমধ্যে বোনাস পুরস্কৃত করেছি, সুতরাং এটি একই প্রশ্নের ভবিষ্যত গুগলারের পক্ষে।

এটি আমার লগইনগুলির কেবলমাত্র। 10% এ প্রদর্শিত হওয়ার কারণ হ'ল যখন আমি আমাদের রাউটার বা সুইচগুলিতে বড় পরিবর্তন করি তখন আমি ব্যবহার করি script foo.logতাই আমার পরিবর্তনের একটি সম্পূর্ণ টার্মিনাল লগ থাকে। যে কারণে আমি এখনও বুঝতে পারি না, ptsআপনি scriptকমান্ডটি ব্যবহার করার সময় সেন্টোস একটি এন্ট্রি তৈরি করে ... আমি last -iচালানোর আগে এবং পরে আউটপুট প্রদর্শন করব script...

[mpenning@sasmars net]$ last -i | head
kkim14   pts/13       192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/12       192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/10       192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/9        192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/5        192.0.2.225   Wed Jan  2 09:43   still logged in
mpenning pts/17       192.0.2.29    Mon Dec 31 16:45 - 16:49  (00:03)
gduarte  pts/16       192.0.2.135   Thu Dec 27 10:54   still logged in
gduarte  pts/14       192.0.2.135   Thu Dec 27 10:44   still logged in
dspencer pts/14       192.0.2.4     Thu Dec 27 09:56 - 09:57  (00:01)
mpenning pts/14       192.0.2.91    Thu Dec 27 08:31 - 08:32  (00:00)
[mpenning@sasmars net]$ script ~/something_random.log
Script started, file is /home/mpenning/something_random.log
[mpenning@sasmars net]$ date
Thu Jan  3 16:14:19 CST 2013 # <--------------------------------------------------
[mpenning@sasmars net]$ exit
exit
Script done, file is /home/mpenning/something_random.log
[mpenning@sasmars net]$ last -i | head
mpenning pts/15       0.0.0.0          Thu Jan  3 16:14 - 16:14  (00:00) # <------
kkim14   pts/13       192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/12       192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/10       192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/9        192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/5        192.0.2.225   Wed Jan  2 09:43   still logged in
mpenning pts/17       192.0.2.29    Mon Dec 31 16:45 - 16:49  (00:03)
gduarte  pts/16       192.0.2.135   Thu Dec 27 10:54   still logged in
gduarte  pts/14       192.0.2.135   Thu Dec 27 10:44   still logged in
dspencer pts/14       192.0.2.4     Thu Dec 27 09:56 - 09:57  (00:01)
[mpenning@sasmars net]$ cat /etc/redhat-release
CentOS release 6.3 (Final)
[mpenning@sasmars net]$

এই আচরণটি CentOS 6 এর কাছে অনন্য বলে মনে হচ্ছে ... আমাদের কাছে ল্যাবটিতে কিছু CentOS 4.7 মেশিন রয়েছে যা ফাঁকা প্রবেশ প্রবেশ করে না wtmp... দেবিয়ান / জেন্টো মেশিনগুলিও এই আচরণটি প্রদর্শন করে না। আমাদের লিনাক্স-প্রশাসকরা তাদের মাথা স্ক্র্যাচ করছে যে কেন ptsআপনি মৃত্যুদন্ড কার্যকর করার সময় কেন সেন্টোস ইচ্ছাকৃতভাবে অন্য একটি এন্ট্রি যুক্ত করবেscript ... আমি সন্দেহ করি এটি একটি RHEL বাগ EL

সম্পাদনা : আমি এই সমস্যাটি আরএইচইল বাগ আইডি 892134 হিসাবে দায়ের করেছি

বিঃদ্রঃ

কিছু লোক ভুল করে ধরে নিয়েছে আমি বা scriptআমার মধ্যে । এটি একটি ত্রুটিযুক্ত যুক্তি ... যদি এটি সত্য হয় তবে আমার প্রত্যেক ssh লগইনের পরে আমার প্রবেশ করা উচিত ...~/.bashrc~/.bash_profilewtmp0.0.0.0

[mpenning@sasmars net]$ last -i | head
kkim14   pts/13       192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/12       192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/10       192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/9        192.0.2.225   Wed Jan  2 09:43   still logged in
kkim14   pts/5        192.0.2.225   Wed Jan  2 09:43   still logged in
mpenning pts/18       0.0.0.0       Mon Dec 31 16:45 - 16:49  (00:03)  # <-----
mpenning pts/17       192.0.2.29    Mon Dec 31 16:45 - 16:49  (00:03)  # <-----
gduarte  pts/16       192.0.2.135   Thu Dec 27 10:54   still logged in
gduarte  pts/14       192.0.2.135   Thu Dec 27 10:44   still logged in
dspencer pts/14       192.0.2.4     Thu Dec 27 09:56 - 09:57  (00:01)
mpenning pts/15       0.0.0.0       Thu Dec 27 08:31 - 08:32  (00:00)  # <-----
mpenning pts/14       192.0.2.91    Thu Dec 27 08:31 - 08:32  (00:00)  # <-----

অবশ্যই, এটি ছিল না ...


3
আপনি scriptআপনার প্রাথমিক প্রশ্নে কমান্ডটি ব্যবহার করছেন তা উল্লেখ করেননি ।
ew white

2
আমি জিজ্ঞাসা করেছি আপনি ডিফল্ট থেকে ~ / .bashrc বা ~ / .bash_profile পরিবর্তন করেছেন? পরিবেশে অন্য কোনও বিশেষ লগইন স্ক্রিপ্ট আছে? scriptকর্মসূচির একটি টাইপ করা বিষয় করে তোলে সবকিছু আপনার টার্মিনাল মুদ্রিত। এটি একটি প্রাসঙ্গিক বিশদ।
ইয়েওয়াইট 4'13

2
@ নতুন আপনার পক্ষে আক্রমণ থামানো এবং সমালোচনামূলকভাবে চিন্তাভাবনা শুরু করার সময় ... 1) আপনি ধরে নিচ্ছেন যে স্ক্রিপ্টটি আমার ছিল .bashrcবা .bash_profileএটি ছিল না; আমি script foo.logযখন বড় পরিবর্তনগুলি করি তখন সম্পাদন করি যাতে আমি পরিবর্তন-লগ করতে পারি ... সুতরাং এ কারণেই এটি আমার লগিনগুলির কেবলমাত্র ~ 10% প্রভাবিত করে 2) যদি আপনার অভিযোগটি সঠিক হয় (এবং এটি না হয়) তবে আমার কখনই এসএসএস লগইন হবে না 0.0.0.0এটির ঠিক পরে এর পরে আর কোনও প্রবেশ ছিল না 3) scriptকেবল এটি সেন্টোজে রয়েছে ... আমি এটি এক দশক ধরে ব্যবহার করেছি এবং এই আচরণটি আর কোনও ডিস্ট্রোতে দেখিনি ... এই মুহুর্তে আমি যুক্তি দিচ্ছি এটি সম্ভবত একটি সেন্টোস is বাগ
মাইক পেনিংটন

1
আপডেটের জন্য আপনাকে অনেক ধন্যবাদ। আমি উবুন্টু 12.04 এ পরীক্ষা করেছি, scriptকেবল একটি শেল কাঁটাবে। আপনি এখানে যা দেখছেন তার ভিত্তিতে, সেন্টোস / রেডহাট সংস্করণটি scriptপ্রথমে একটি পিটিআই কাঁটাচামচ করে। যদিও কিছুটা হতাশ (: পি) এটি যে আরও সাধারণ / ডিস্ট্রো জুড়ে কিছু নয়, তবে অন্তত রহস্যটি আমার মন থেকে চলে গেছে। দ্রষ্টব্য: অবাক আমি আপনি উৎপাদনে জেন্টু আছে @ @।
জন Siu

1
@ মাইকপেনিংটন: এটি ফেডোরা বিটিডব্লিউ-তে উপস্থিত রয়েছে, মাইকেল হ্যাম্পটন আমার জন্য পরীক্ষা করেছেন।
ব্যবহারকারী 9517 GoFundMonica

2

সিউডো টার্মিনাল স্লেভ (পিটিএস) সংযোগগুলি এসএসএইচ বা টেলনেট সংযোগ যার অর্থ সিস্টেমে অপ্রত্যক্ষ সংযোগ। এই সমস্ত সংযোগগুলি একটি শেলের সাথে সংযুক্ত হতে পারে যা আপনাকে কম্পিউটারে কমান্ড দেওয়ার অনুমতি দেবে। সুতরাং আপনি যখন গুই থেকে আপনার সিস্টেমে একটি টার্মিনাল খুলবেন, এটি উত্স আইপি 0.0.0.0 সহ একটি পিটিএস খুলবে। আপনার সরবরাহিত তথ্য থেকে মনে হয় এই সার্ভারে স্ক্রিপ্ট চলার কারণে বা নির্ধারিত, যা টার্মিনালে আউটপুট ফেলতে ssh বা টেলনেট পরিষেবা বা স্থানীয় pts ব্যবহার করছে।


আমি কখনই জিইউআই
মাইক পেনিংটন

2

আপনি কোন ssh ক্লায়েন্ট ব্যবহার করবেন? কিছু এসএসএস ক্লায়েন্টরা এক সংযোগে একাধিক টার্মিনালগুলি একাধিক টার্মিনাল করতে পারে এবং আমি লক্ষ্য করি আইপি ছাড়াই আপনার সমস্ত সেশনগুলি লগ আইপি থাকা লম্বা সেশনের মধ্যে পড়ে।

আমি এখানে ssh এর সাথে এই আচরণটির সদৃশ করতে পারি না।


আমি সাধারণত সুপারপুট্টি ব্যবহার করি , বর্তমানে সংস্করণ ১.৪.০.১ তে ... তবে আমি এই সমস্যাটি সরল-ওলে পুট্টির সাথেও দেখেছি
মাইক পেনিংটন

1

সম্ভবত আপনার আইপি ঠিকানাটি আপনার ডিএনএস সার্ভারগুলির মধ্যে একটি ফাঁকা স্ট্রিংয়ের সাথে সমাধান হয়েছে, সম্ভবত এটি মাধ্যমিক যদি এটি ঘটে তবে এটি কেবলমাত্র 10 শতাংশ হয় (অথবা কেবলমাত্র কোনও কেন্দ্রীয় হোস্ট থেকে কোনও হোস্ট ফাইল এগুলি বিতরণ করা হলে)। এটি অনুপস্থিত (বা সাদা স্থান) এন্ট্রি এবং সোহমের উত্সটি পড়ার সাথে সামঞ্জস্যপূর্ণ হবে।


0

"০.০.০.০" এর অর্থ এটি একটি স্থানীয় ব্যবহারকারী (দূরবর্তী লগইন নয়), সম্ভবত অ্যাপ্লিকেশন দ্বারা অনুরোধ করা হয়েছে ক্রোনজব।


এই উত্তরটি ভুল দেখাচ্ছে ... আমার লগগুলিতে সমস্ত 0.0.0.0 এন্ট্রিগুলি পিটিএস লাইনে রয়েছে
মাইক পেনিংটন

এটি একটি সঠিক উত্তর, উদাহরণস্বরূপ আমার সিস্টেম থেকে:# 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)
অলটারপব

@ অল্টারপব, আবার, আমি কেবল ssh দিয়ে লগইন করি; ০.০.০.০ কোনও বৈধ ssh pty এন্ট্রি নয় যদি না কেউ আমাকে অন্যথায় অফিসিয়াল ডকুমেন্টেশন না দেখায় ।
মাইক পেনিংটন

0

এটি ঘটে কারণ আপনি স্থানীয় সিস্টেম এবং 0.0.0.0 এর অর্থ সমস্ত ইন্টারফেসের আইপি ঠিকানা। আপনি যদি ভাবেন যে কেউ হয়ত হ্যাক করেছে আপনি ssh- এর মাধ্যমে কমান্ড সহ শেলটি পূর্ণ লগিং সেটআপ করার চেষ্টা করবেন - http://blog.pPointoftware.ch/index.php/howto-bash-audit-command-logger/


"আপনি স্থানীয় সিস্টেম ব্যবহার করেন" এর অর্থ কী ... দয়া করে আমার প্রশ্নটি ঘনিষ্ঠভাবে পড়ুন ... আমি কেবল এসএসএস দিয়ে লগইন করছি । আপনি কি পরামর্শ দিচ্ছেন যে ০.০.০.০ একটি pts এ ssh লগইনের জন্য একটি বৈধ এন্ট্রি?
মাইক পেনিংটন

-1

আমি ~ / .bashrc এ স্ক্রিপ্ট যুক্ত করে এটি সমাধান করেছি স্ক্রিপ্টটি সর্বশেষ টেলনেট সংযোগ উত্সের আইপি ঠিকানাটি খুঁজে পেয়েছে, তারপরে আপনি একটি লগ ফাইলে আইপি যুক্ত করতে পারেন বা আপনার যা যা প্রয়োজন তা করতে পারেন ..

client_ip=$(echo $(netstat -nae | grep $(netstat -nae | grep 23 | awk  '{print $8}' | sort -n | tail -n1) | awk '{print $5}') | awk -F':' '{print $1}' )

echo "client_ip=$client_ip"

শ্যারন


1
এই উত্তরটি আমার কাছে খুব একটা বোঝায় না। আলোচনা টেলনেট নিয়ে নয়। netstat -nae | grep 23টেলনেট সংযোগগুলি খুঁজে পাওয়ার কোনও কার্যকর উপায় নয়। এই কমান্ডটি আমার সিস্টেমে 92 টি ফলাফল দেয় যার মধ্যে কোনওটিই টেলনেট নয়।
হউক লেগেছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.