Bir sunucunun gerçekte ne yaptığını nasıl söyleyebilirsiniz? [kapalı]


42

Önünde 1 apache bulunan 3 tane Linux kutusu ve söyleyebildiğim kadarıyla çok fazla şey yapmadığım 2 tane daha verildi. Hepsi Redhat'ta koşuyor.

Soru basit: Sunucunun gerçekte ne yaptığını nasıl anlarım? İçerikten sıfır dokümantasyon elde edilebilir.


7
Süreç listesi, ağ dinleyicileri (belki de karşılaştırmak init betiklerine dayanarak çalışmalıydı) ...
HBruijn

5
Lanet olsun! elbette birisi ne için olduklarını biliyor mu? bu yüzden onları desteklemeni istiyorlar ama ne yaptıklarını bilmiyorlar mı?
Digital Lightcraft,

11
Kapat onları. Birisi size hemen hemen işe yaramadığını bildirecek .
jscott

58
ONU KAPATMA. Çığlık testi yapmak istiyorsanız, Ethernet kablosunu çıkarın. İki yıllık çalışma süresine sahip bir kutunuz daha önce yeniden başlatılamadıysa, bir noktada bulunacaksınız. Bu, bu hayal kırıklığını karışıma ekleme zamanı değil.
Aaron Copley

7
Herkesin söylediği, aynı zamanda: nmap'ı onlara karşı çalıştır.
Katherine Villyard

Yanıtlar:


42

Ethernet kablosunu çıkarın ve kimin sinirlendiğini görün.

Cidden, bunun gibi gizemli makineler bir ekip için çok fazla zihinsel ek yük yaratıyor ve çoğu zaman kesinlikle hiçbir iş değeri sağlamıyor. Patronunla konuş, eğer kimse ne yaptığını bilmiyorsa, belki de ne yaptığı umrunda değil.


43
ONU KAPATMA. Çığlık testi yapmak istiyorsanız, Ethernet kablosunu çıkarın. İki yıllık çalışma süresine sahip bir kutunuz daha önce yeniden başlatılamadıysa, bir noktada bulunacaksınız. Bu, bu hayal kırıklığını karışıma ekleme zamanı değil. (Buraya kopyalanıyor çünkü okunması gerekiyor.)
Aaron Copley

3
% 100 haklısınız, yazıyı düzeltmek için düzenledim. Biraz beceriksiz davranıyordum ama felaketi teşvik etmeden hala daha güçlü olabilirim.
Josh Rumbut

8
Ağın fişini çekmeden önce, çalışan işlemlerin bir listesini kaydetmek ve her sunucuda açık yuvalar açmak iyi bir fikirdir - tam da bir şey hakkında düşünmeden uzun süre ESTABLISHED kalmış olan sunucular arasındaki bir TCP bağlantısına güvenilmesi durumunda ilk durumda açmak için gereken adımları otomatikleştirmek. (Örneğin eğer birileri geçici olarak ssh portu için bir ssh portuna ihtiyaç
duymuş

4
Bunu yapma Ne saçma bir tavsiye. Aptal düşüncesiz BT insanları bunu yaparken bana çok zaman ve iş mal oldu. ÖNCE SOR. Kime soracağınızı bilmiyorsanız, HERKESE SORUN .
Monica

4
Birinin çığlık atması için yeterli zaman ayırdığınızdan emin olun - bunu bir kez bir sunucu odası rafında oturan tozlu veya masaüstü bir makine ile yaptım - kimse ne yaptığını bilmiyordu, birisinin fişini çektiğimizde fark etmesi tam bir ay sürdü. . Maaş bordrosu sisteminin bir parçasıydı, o sunucu olmadan, Muhasebe aylık bordro üretemiyordu. En az 3 yıl boyunca hiç kimse dikkat etmeden katılımsız çalışıyordu - bu yüzden "çığlık testi" bir başarıydı, eğer yapmasaydık, sunucu sonunda kendi başına ölecekti. P2v'yi vmware kümemize yerleştirdik.
Johnny,

30

Bu, Serverfault formatı için oldukça geniş bir sorudur, ancak burada iyi bir başlangıç:

  • Çalışan işlemleri ve sistem başlangıcında çalışması planlananları kontrol edin.
    • Her birinin çalışan yapılandırmasını gözden geçirin.
    • Tanımlanmış veri dizinlerine bakın. (Belki birileri MySQL'i kurdu ve açtı, ancak veritabanları yok.)
  • Zamanlanmış görevleri kontrol edin.
  • Görmek için günlükleri kontrol edin;
    • kim yakın zamanda giriş yaptı (ve onlara sor)
    • ve neyin çalıştığı hakkında bir fikir edinmek için.

Versiyondan bahsetmedin, o yüzden ayrıntıları ihmal ettim.


8
Sistem önyüklendiğinde hangi hizmetlerin başlatılacağından daha önemli bir şey var. Şu anda hangi hizmetler çalışıyor? Bir servisi başlatmak ve açılışta yapılandırmayı unutmayı yapmak zor bir hata değildir. İlgili bir notta, aşağıdaki gibi diğer sistem durumuna bakmak iyi bir fikirdir: bağlama noktaları, yönlendirme tablosu, iptables kuralları. Bunların hepsi, sistem çalışırken önyükleme sırasında kullanılan yapılandırma dosyalarını güncellemeyi hatırlamadan kolaylıkla değiştirilebilecek şeylerdir.
kasperd

Ek olarak, hangi bağlantı noktalarının açık olduğunu görmek için bir bağlantı noktası tarayıcısı kullanırdım, sonra normal araçları kullanarak bağlanmayı deneyin. (Basit) bir örnek için eğer port 443 açıksa, bağlanmak için bir web tarayıcısı kullanmayı deneyebilirsiniz. Bu tür görünüşte terk edilmiş sunucuları sık sık araştırmak zorunda kaldım ve / etc ve diğer yerlerdeki yapılandırma dosyalarına hızlıca göz atmak için en sevdiğim araçlardan biri de tercih ederseniz "lynx" veya "links" kullanmak. Bunlar, uygun imleç tuşu navigasyonu ile de bir dosya tarayıcısı olarak yeterince iyi iş yapan karakter tabanlı web tarayıcılarıdır.
aseq,

1
@ kasperd Sürekli hizmetlere, sürekli hizmet vermeye çalışıyor. Ancak, güvenlik duvarı kuralları, bağlama noktaları vb. Hakkında düşündüm. Bunlar bana mevcut kurşun noktalarından birine zaten bağlanacak yardımcı bileşenler olarak görünüyordu. YMMV.
Aaron Copley

Lütfen ekleyin - Etkin ağ bağlantılarını kontrol edin ve servislerin adlarını ve port numaralarını not edin. Bunu yapmanın en iyi yöntemi işletim sistemine göre değişir. EG net stat. Ayrıca, bilgisayarda gün boyunca ne yaptığını görebilmeniz için bir tür iz sürün. Ayrıca, sunucularda çalışan şeyler kötü amaçlı olabileceğinden, senaryolara dikkat etmek isteyebilirsiniz.
IceMage

19

Sisteminizde neler olup bittiğini belirlemek için yapabileceğiniz birkaç şey var.

Orada ne olduğu hakkında bir fikir edinmek için sunucunuzun hangi portları dinlediğini kontrol edebilirsiniz. Kullanmak için iyi bir komut olacaktır:

 [root@server ~]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             Stat    e       PID/Program name
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LIST    EN      1880/smbd
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LIST    EN      1911/nrpe
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LIST    EN      1759/sshd

Yukarıdaki örnek çıktıdan görebileceğiniz gibi, size protokol sürümü (tcp veya udp), dinlenen adres, açık olan bağlantı noktası ve dinleyen program sunar.

Yukarıdaki kısaltılmış örnekte (bir sunucu makinesi) 139, 5666 ve 22 numaralı tcp bağlantı noktalarının dinlediğini görebilirsiniz. Bunlar sırasıyla samba, nrpe (Nagios agent) ve ssh ile çözülür ve bu portu dinleyen programı kontrol ettiğinizde onaylanır.

Ek olarak, bunu yapmak için önyüklemede başlayacak şekilde yapılandırılmış daemons listesini kontrol edebilirsiniz. chkconfig --list | grep "3:on"

Örnek:

[root@server ~]# chkconfig --list | grep "3:on"
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off
webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off
x2gocleansessions       0:off   1:off   2:on    3:on    4:on    5:on    6:off
.
.
.

veya:

service --status-all


5
Ben bulmak netstat -pluntkolay hatırlanır.
saat

2
Ayrıca, tcpdumpgerçekte her hizmeti kimin kullandığını belirlemek de faydalı olabilir.
34’te

18

Diğer bir yöntem ise /etcdizini kontrol etmeyi ve değişiklik tarihlerine bakmayı içerir . Yeni bir kurulumdan sonra bu dizindeki tüm dosyaların yaklaşık aynı tarih / saate sahip olması gerekir. Bir kurulum genellikle insanların genellikle kullanmadığı birçok şeyi yüklediğinden, yalnızca daha sonraki bir değişiklik tarihine sahip dosyalar sunucunun gerçek amacını yansıtır . Bu ext4 ise, dizinlerin doğum tarihini de çıkarabilmeniz gerekir, böylece görev oldukça kolay olabilir.

Yine bir başka yöntem .bash_historyde yöneticilerin neler yaptığını görmek için dosyaları kontrol etmeyi içerir . Bu dosya bilgi hazinesi sağlayabilir.


7

Güvenlik duvarı kurallarını kontrol edin. Biraz şansla, varsayılan reddetme için yapılandırılmış. Bu, izin verilen her hizmet için açık bir kural olduğu anlamına gelir.

Bu daha iyidir, netstatçünkü örneğin gecelik yedeklemeler için açık olan portları da gösterebilir.


6

Henüz görmediğim bir cevap: En son değiştirilen dosyaları kontrol edin. Kayıtlar, veritabanı dosyaları, diğer çıktı dosyaları vb. İpucu verebilecek hala yazılabilir:

find . -mtime -3 

Bu, mevcut dizinde değiştirilen dosyaları bulur ve son 3 günde değiştirilir. Sorgulayabileceğiniz bir çıktı elde edene kadar 3 sayısını eğitimli bir tahminle yükseltin.

Kutulara sadece bazı web servis çağrılarını işleyebileceğinden, bazı verileri hiç bir şey yazmadan geri gönderebildiğinden, kusursuz değil. Ancak yukarıda belirtilen büyük karışıma eklenmiş, sadece bazı ipuçları verebilir.

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.