Süper kullanıcı aktiviteleri nasıl takip edilir


21

Bir Linux ortamında süper kullanıcı etkinliklerini izlemek için en iyi yaklaşımların ne olduğunu bilmek istiyorum.

Özellikle, bu özellikleri arıyorum:

  • A) Tuş vuruşlarını güvenli bir syslog sunucusuna kaydetme
  • B) Kabuk oturumlarını tekrarlayabilme (scriptreplay gibi)
  • C) İdeal olarak, bu sunucuya fiziksel olarak erişmeden dolaşmak imkansız (ya da oldukça zor) bir şey olmalıdır.

Bunu bir sunucuda ayrıcalıklı işlemler gerçekleştirmek için farklı sistem yöneticilerinin (hatta üçüncü tarafların) izin vermesi gereken bir ortamda güvenlik / denetim perspektifinden düşünün.

Her yönetici kendi nominal hesabına sahip olacaktır ve her etkileşimli oturum, gerektiğinde tekrar etme olasılığı ile tam olarak kaydedilmelidir (örneğin, kritik dosyaları silmek veya değiştirmek için mc kullanıyorsa, bu işlem yeterli olmaz. o kişinin mc komutunu verdiğini biliyorum; mc başlatıldıktan sonra tam olarak ne yapıldığını görmenin bir yolu olmalı).

Ek notlar :

  1. Womble'ın belirttiği gibi, en iyi seçenek, kullanıcıların sunucularda değişiklik yapmak için kök ayrıcalıklarıyla oturum açmasını sağlamak değil, bunun yerine bir yapılandırma yönetim sistemiyle yapmak olabilir. Öyleyse , böyle bir sistemin olmadığı ve aynı sunucu üzerinde farklı kişilere kök düzeyinde erişim vermemiz gereken bir durum olduğunu varsayalım. .
  2. Bunu gizlice yapmakla hiç ilgilenmiyorum: kök ayrıcalıklarına sahip bir sunucuya giriş yapan her kişi, oturumun kaydedileceğini tam olarak bilecektir (örneğin, çağrı merkezi operatörleri, konuşmaları olduğunu bilir. kaydedilmekte)
  3. Hiç kimse genel bir süper kullanıcı hesabı kullanmayacaktı ("root")
  4. Ttyrpld'in farkındayım ve aradığım şeyi yapıyor gibi görünüyor. Ancak bu şekilde gitmeden önce, değiştirilmemiş bir çekirdek kullanarak bunun çözülüp çözülemeyeceğini bilmek isterim. Özellikle Debian için (veya genel olarak Linux'ta) kabuğun veya çekirdeğin eklenmesi gerekmeden süper kullanıcı hesaplarının tam denetlenmesine izin veren herhangi bir araç olup olmadığını bilmek istiyorum.

2
(sandalye ve patlamış mısır alır) bu iyi olmalı ...
Avery Payne

+1 ... aynı şeyi düşünüyordu. LOL
KPWINC

Ayrıca bu soruya dikkat edin: serverfault.com/questions/46614/…
sleske

Hala bir yapılandırma yönetim sistemi kullanman gerektiğini düşünüyorum. (kukla / cfengine / şef / sistem görüntüleyici / şef / vb ...)
KevinRae

Kevin, sana katılıyorum. Örnek olarak, womble'ın cevabına yorumum: serverfault.com/questions/50710/… . Maalesef bu, bu ortamda bir seçenek değildir ve bu yüzden bir yapılandırma yönetim sisteminin bulunmadığı bir senaryo almam istendi. Neyse, bu konudaki görüşleriniz için teşekkür ederim.
mfriedman

Yanıtlar:


8

Çoklu yöneticileri olan ortamlar için mümkünse sadece kök kullanmayın.

Her şey için sudo kullanın - sudo son derece yapılandırılabilir ve kolayca kaydedilebilir.

Herhangi bir / tüm girişleri veya su'ları kök ettirin ve birileri olarak araştırıp daha sonra sizin belirlediğiniz kurallara uyun.


3
Evet, sudo'lar harika bir kayıt tuttu - bütün bu "root olarak çalışan womble ran / bin / sh" girişleri gerçekten yardımcı oluyor. Yapılandırma yönetimi olmadan, insanlar yönetici görevleri yapmak için her zaman kökleşmeye başlayacak ve nefret dolu bir şey yapmak isteyen biri, geçerli bir görevi gerçekleştirmekle aynı kök oturumunda kendi işini yapabilir. Mükemmel kapak.
womble


2
Politika: "sudo / bin / sh" = kovuldu / araştırıldı. Oldukça açık, oldukça kolay bir çözüm.
Karl Katzke

5
Programlardan insanların meşru bir şekilde çalıştırmaları gereken (örneğin sudo vi) programlardan bir kabuk almanın pek çok yolu var, sadece 'sudo /bin/sh' engellemenin çok az bir anlamı var. Her olası yöntemi engellediğinizde, daha belirsiz yollar bulmak için yalnızca bir sorun çıkarırsınız. her durumda: a) bazen sudo / bin / sh gereklidir ve b) teknoloji değil yönetim problemidir.
Cas

Chris harika bir noktaya değindi: Yönetim sorunu, teknoloji sorunu değil.
Karl Katzke

2

Birincisi, ne tür kök kullanıcı erişimini izlemeyi düşünüyorsunuz? Aptal admin hataları veya kötü niyetli içeri? Eski - daha önce de önerildiği gibi iyi bir yapılandırma yönetimi çözümü isteyeceksiniz. İkincisi - ne yaptıklarını biliyorlarsa, araştırmaya değer bir şey olduğunu belirtmek için yeterince yakalamayı umabilirsiniz. Sadece bir tür yetkisiz faaliyetin başladığını bilmek ve bu konuda uyarılmak istiyorsunuz. Akıllılarsa, oluşturduğunuz günlüğe kaydetme işleminin çoğunu devre dışı bırakırlar (sunucu durumunu değiştirerek veya kendi araçlarını getirerek) ancak umarım olayın başlangıcını yakalarsınız.

Olduğu söyleniyor, kullanabileceğiniz birkaç araç öneririm. Öncelikle, daha önce önerilmiş olan iyi bir sudo politikasıyla başlayın. İkinci olarak, bu yöneticilere kök kabuk erişimi vermeniz gerekiyorsa sudoshell'i inceleyin. Üçüncüsü, muhtemelen en iyi bahis (en yoğun olsa da), linux çekirdek denetimine bakın.


+1 Sudoshell'i önerdiğiniz ve özellikle Linux çekirdeğinin denetim sistemini yerine getirmek için - bu, elde etmeye çalıştığım şey için mükemmel bir tamamlayıcı olabilir.
mfriedman

2

Yapabileceğin şey bu kütüphaneyi sudo için kullanmak , herkese kendi kullanımlarını vermek ve sudo -i'yi herkesin profiline koymak. Bu şekilde anında kök erişimine sahip olurlar ve kullandıkları her komut günlüğe kaydedilir.


+1 O kütüphaneyi bilmiyordum. Paylaşım için teşekkürler!
mfriedman

1

Kökleri var. Umut edebileceğiniz en iyi şey, en azından küçük gözlem ütopyadan ayrılmaya karar verdiklerinde görmektir, ancak bunun ötesinde, yaptıklarının ötesinde, birinin tahminde bulunur.

Düşünebildiğim "en iyi" seçenek, yaygın yapılandırma otomasyonu ve yönetiminin kullanımını zorunlu kılmak ve bir revizyon kontrol sistemi kullanarak bildirilerinizi yönetmek ve güncellemeleri bu şekilde dağıtmaktır. Ardından sunuculara gerçek kök girişlerini engelleyin. (Acil "oh noes ben bir şey kırdı" erişimi her kullanımdan sonra şifre veya SSH anahtarı dağıtılmış ve değişmemiş bir şifre ile sağlanabilir ve herkes, istemediklerinden emin olmak için batmış olan sysadmin'i izler. herhangi bir şeyi değiştir).

Evet, bu rahatsız edici ve sinir bozucu olacak, ama eğer herkesin eylemlerini bu dereceye kadar izlemek için yeterince paranoyak davranıyorsan, sanırım bu kazanılan diğer şekillerde yeterince rahatsız edici ve sinir bozucu bir ortamdasın. büyük bir problem gibi görünmüyor.


Seninle aynı fikirdeyim. En iyi seçenek, insanların sunucularda değişiklik yapmak için kök ayrıcalıklarıyla oturum açmasını sağlamak değil, bunun yerine bir yapılandırma yönetim sistemi aracılığıyla yapmak olabilir. Yorumlarınızı sorumu netleştirmek ve netleştirmek için faydalı buluyorum.
mfriedman

1

Diğerlerinin de dediği gibi, tam kök erişime sahip kullanıcıları devre dışı bırakamayacak şekilde günlüğe kaydetmenin pek bir yolu yoktur, ancak debian / ubuntu kullanıyorsanız bir göz atın , istediklerinize oldukça yakın olan snoopy'ye

snoopy, yalnızca her çağrıyı syslog (authpriv) günlüğüne kaydetmek için libc tarafından sağlanan execve () işlevine sarıcı olarak kullanılan paylaşılan bir kütüphanedir. sistem yöneticileri, hafif / ağır sistem izleme, diğer yöneticinin işlemlerini takip etme ve sistemde neler olup bittiğini iyi bir şekilde hissetme (örneğin apache çalışan cgi betikleri) gibi görevlerde snoopy'yi yararlı bulabilirler.


Cevabınız için teşekkürler. Tuşa basma günlüğünü veya yalnızca komut günlüğünü destekliyor mu?
mfriedman

0

Engellinin leoparın her şey için sudo kullanması hakkındaki yorumlarına katılıyorum. Bu kesinlikle işleri günlüğe kaydetmeyi biraz kolaylaştırıyor.

Ayrıca, bash geçmişi dosyasını düzenli aralıklarla yedeklemeyi de eklerdim. Görünüşe göre çoğu zaman göz ardı edildi ama bazen harika bir bilgi kaynağı olabilir ... sadece Goldman Sachs'a sorun. ;-)

http://www.guardian.co.uk/business/2009/jul/12/goldman-sachs-sergey-aleynikov


2
/var/lib/history/$user.$tty-or-IP.$yymmddhhss için tarihin zaman damgalı bir kopyasını yapan bir .bash_logout betiğim var, eğer daha fazla özen gösterirsem, işlem muhasebesi veya uygun bir işlem ayarlamıştım. denetleme araçları ... ama gerçekten güvenlik için değil, o yüzden kimin aptalca bir şey yaptığını bulabilirim ve onlara a) bir daha yapma, ve b) doğru bir şekilde nasıl yapılacağını söyleyebilirim. Gençlerin ipucu seviyesini artırmak, burada güvenden çok daha önemli bir konudur.
Cas

1
Bana küçük bir satış elemanının milyon dolarlık anlaşmayı patlattığı hikayeyi hatırlatıyor. Patronun onu kovmasını bekler ve patron "Cehennem hayır! Bu sadece sana eğitmek için bir milyon dolara mal oldu" diyor. Konuştuğumuz gibi artan gençlerin “ipucu seviyelerini” hissedebiliyorum. ;-)
KPWINC

0

Bu zor olurdu ...

root, tüm güvenlik önlemlerini (izleme işlemlerini durdurur), günlük dosyalarını parçalayarak / kırparak vb.

Kök ayrıcalığı verilen birden fazla yöneticinin ekip olarak çalıştığını varsayalım. Ve root herhangi bir izleme işlemini de öldürebilir. Ve ne yazık ki, bu giriş / şifre herkese açık hale geliyor. Ya da istenmeyen bir şirket olurlar.

UID 0 ile birden fazla kök hesap oluşturmak önerilmez, ancak burada uygulanabilir.

In / etc / ssh / sshd_config Satırı değiştir: PermitRootLogin no

tavsiye edilir. Böylece, Bir kullanıcı normal hesabını kullanarak giriş yapar (tarih damgası birlikte girilir (belki sahte IP Adresi)) Sonra root'a geçer. su komutunu kullanarak

Kök olarak doğrudan giriş yapmak bu şekilde önlenir.

Burada kök kökün ne yapabileceğini düşünmeliyiz.

sudo iyi olmalı. Yedekleme / etc dizini Konfigürasyon Dosyaları iyi olmalıdır. / var / directory Günlük dosyaları düzenli aralıklarla e-postayla gönderilmeli veya ayrı NFS'de depolanmalıdır.

SMS'leri gruplayan tüm kullanıcıların cep telefonlarını gruplayan Mobil Ağ Geçidi şirketlerinden API'leri entegre eden Komut Dosyaları Yazmaya ne dersiniz? Bunun sinir bozucu olacağını biliyorum ama yine de.

SSH'yi kırmak çoğunlukla söz konusu değildir.


0

Bir müşterinin sitesinde aşağıdaki kurulumu yaptık:

  • Aynı şekilde, AD’deki kerberos ile kimlik doğrulaması için açık (kişisel hesaplar)
  • Yalnızca Unix yöneticilerinin belirli AD gruplarına yetki verilmesi
  • sudoers grubu == AD grubu
  • OSSEC HIDSHer sunucuda acentesi ve sertleştirilmiş bir sunucuda bir yönetici
  • OSSEC Web Kullanıcı Arayüzü
  • OSSEC için Splunk 3

Sunuculardaki her sudo kullanımını günlüğe kaydedecek ve ayrıca dosyalardaki, paketlerin kurulumunda, şüpheli işlemlerde vb. Değişiklikleri izleyecektir.


0

Tüm ekipmanlarımıza erişmek için birkaç terminal sunucumuz var, bu da biri terminal sunucusundan veya fiziksel erişimi olan herhangi birisine giriş yapabileceği anlamına geliyor.

Terminal sunuculardaki Sshd, http://www.kdvelectronics.eu/ssh-logging/ssh-logging.html ile eklenir, iyi çalışır, ancak uzun süredir güncellenmemiştir. Openssh 4.7 üzerinde çalışması için onu biraz değiştirdim, ancak bunu 5.1 ile yapamadım. Yamalı sshd segfaults ve bunu düzeltmek için yeterli zamanım olmadığı sürece, neredeyse ttyrpld'e geçtim.


0

Şimdiye kadar, sahip olduğum şey bu:

  • Sudosh : A ve B'yi destekliyor gibi görünüyor (A'dan tamamen emin değil)
  • Sudoscript : desteklemektedir (Sudoscript, sudoshell adında bir bileşene sahiptir ve romandaların önerdiği buysa, bahşiş için teşekkürler)
  • Snoopy Logger veya sudo_exetrace : tam olarak aradığım şey değil, ama iyi bir tamamlayıcı olabilir (bu bağlantılar için teotherreceive ve blauwblaatje sayesinde)

Çekirdeği veya diğer sistem bileşenlerini yamalamayan başka benzer araçlar biliyor musunuz?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.