Bu tür bilgileri elde etmenin iki iyi yolunu görüyorum. Biri sshd'nin kendisinden günlüğe kaydetmeyi artırmak, diğeri ise diskteki git deposunu daha derinlemesine izlemek. Hiçbiri size tek tek istediğiniz bilgiyi vermediğinden, harici bir günlük analiz motoru kullanarak veya isteğe bağlı olarak insan gözlerini ve zaman damgalarını kullanarak günlük verilerini ilişkilendirmek isteyebilirsiniz.
sshd Değişiklikler
Varsayılan olarak, hiç şüphesiz gördüğünüz gibi, bir kullanıcının ne zaman oturum açtığını ve nereden ssh kimlik doğrulama günlüklerini kullanarak görebilirsiniz. Yapmak istediğiniz şey, sshd oturumunu kapatırken seviyenizi değiştirmek. Öyleyse düzenleyin /etc/ssh/sshd_config
ve benzeyen satırı bulun
#LogLevel INFO
ve bunu
LogLevel VERBOSE
sonra sshd hizmetini yeniden başlatın. Bu, sshd'nin kayıt seviyesini 1 adım arttırır, bu da çok daha fazla bilgi verir. Bu değişikliği yaptıktan sonra uzaktan erişimimin bu günlük snippet'ine göz atın.
Nov 2 08:37:09 node1 sshd[4859]: Connection from 10.10.10.5 port 50445
Nov 2 08:37:10 node1 sshd[4859]: Found matching RSA key: f2:9e:a1:ca:0c:33:02:37:9b:de:e7:63:d5:f4:25:06
Nov 2 08:37:10 node1 sshd[4860]: Postponed publickey for scott from 10.10.10.5 port 50445 ssh2
Nov 2 08:37:10 node1 sshd[4859]: Found matching RSA key: f2:9e:a1:ca:0c:33:02:37:9b:de:e7:63:d5:f4:25:06
Nov 2 08:37:10 node1 sshd[4859]: Accepted publickey for scott from 10.10.10.5 port 50445 ssh2
Nov 2 08:37:10 node1 sshd[4859]: pam_unix(sshd:session): session opened for user scott by (uid=0)
Nov 2 08:37:10 node1 sshd[4859]: User child is on pid 4862
Nov 2 08:40:27 node1 sshd[4862]: Connection closed by 10.10.10.5
Nov 2 08:40:27 node1 sshd[4862]: Transferred: sent 30632, received 7024 bytes
Nov 2 08:40:27 node1 sshd[4862]: Closing connection to 10.10.10.5 port 50445
Nov 2 08:40:27 node1 sshd[4859]: pam_unix(sshd:session): session closed for user scott
Burada dikkat edilmesi gereken önemli şeyler iki katlıdır
- Beni doğrulamak için kullanılan ortak anahtarın parmak izini görüyoruz
- Oturumu kapatmamın zaman damgasını görüyoruz
Varsayılan LogLevel (INFO) sshd kullanıldığında bu öğelerin hiçbiri günlüğe kaydedilmez. Bir anahtarın parmak izini almak ekstra bir adımdır. Uygun authorized_keys
dosyayı ssh-keygen ile işlemek zorundasınız .
[root@node1 ssh]# ssh-keygen -l -f /home/scott/.ssh/authorized_keys
4096 f2:9e:a1:ca:0c:33:02:37:9b:de:e7:63:d5:f4:25:06 /home/scott/.ssh/authorized_keys (RSA)
Şimdi aşağıdaki bilgileri biliyorsunuz:
- Oturum açan kullanıcı adı
- Kullanıcının oturum açtığı zaman
- Kimlik doğrulama için hangi ortak anahtar kullanıldı
- Kullanıcının oturumu kapattığı zaman
Artık kullanıcı eylemini belirli bir zamanda ilişkilendirmenin bir yoluna sahip olduğumuza göre, her iki kullanıcının da aynı anda giriş yapmadığını varsayarsak, depoda yapılan değişikliklere bakmaya başlayabiliriz.
Auditd ile Dizin İzleme
Sysadmin1138'in dediği gibi, bu denetleme alt sistemi için mükemmel bir kullanım durumu olabilir. RedHat tabanlı bir dağıtım kullanmıyorsanız muhtemelen bir analog var, ancak bulmanız gerekecek. Audit için yapılandırma oldukça yoğundur ve çok sayıda yapılandırma seçeneğine sahiptir. Bazı seçenekler hakkında fikir edinmek için lütfen Bilgi Güvenliği Uzmanları için kardeş sitemizde bu soruyu inceleyin .
En azından, söz konusu git deponuzu içeren diskteki dizinde "watch" olarak adlandırılanları ayarlamayı tavsiye ederim. Bu ne gibi dosya erişimi aramaları gerçekleştirmek için girişimleri üzerine rapora çekirdek modülü talimat olduğunu open()
veya creat()
dosyaları veya biz liste dizinlere işaret kolları Dosya.
İşte bunu yapacak örnek bir yapılandırma ve sadece bu. Bu nedenle, /etc/audit/audit.rules
değişiklikleri uygun bir şekilde entegre etmek için mevcut bilgilerinizi okuyup anlamaya dikkat edin .
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
-D
# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 1024
-w /path/to/git/repos-p wa
# Disable adding any additional rules - note that adding *new* rules will require a reboot
-e 2