openSSL ve TSA ile Otomatik Log Imzalayıcı (Shell) Script
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYVExqKN' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Daha önce bir yazımda openssl kullanarak 5651 sayılı kanunun gerektirdiği şekilde log dosyalarını zaman damgası ile imzalama işlerinin nasıl yapılacağını anlatan bir konuya değinmiştim. Bildiğiniz gibi openssl'i TSA patch'i ile derleyerek logları formal olarak zaman damgası ile imzalamak mümkün. |
openssl ile log imzalama işlemi güzel de, bu iş için manuel olarak bir takım komutlar vermeniz gerekiyor. Ancak log imzalama işleri periyodik olarak yapılması gereken bir prosedür olduğundan dolayı her seferinde bu komutları manuel olarak vermek ciddi bir külfet oluyor. İşte bu nedenle, imzalama işlerini otomatik olarak yapmak üzere crondan çalıştırılabilecek, aşağıdaki linklerden download edebileceğiniz bir shell script yazdım.
Scripti kullanabilmek için, sisteminizde TSA patch'i geçilmiş bir openSSL sürümü olması gerekir. Bu işi nasıl yapabileceğiniz ile ilgili bir dökümana http://www.syslogs.org/2009/08/openssl-ile-5651-sayili-kanun-geregi-log-imzalamak/ adresinden erişebilirsiniz.
Ayrıca, scriptin aşağıdaki linklerden erişebileceğiniz FreeBSD ve CentOS uyumlu olmak üzere iki farklı versiyonu bulunuyor.
Betiğin yaptığı işlemler sırası ile şöyle:
- İmzalama işleri için kullanılmak üzere belirlediğiniz dizin (mevcut değilse) oluşturuluyor.
- Log dosyası Çalışma dizinine kopyalanıyor.
- openSSL ve TSA kullanılacak imzalama işlemiyapılıyor.
- İmza işlerinden sonra, imzalı log dosyası doğrulanıyor.
- İmza doğrulaması başarılı olursa, imzalanan dosyalar dosyaadi-tarih.tar.gz ismiyle
paketlenip saklama dizinine taşınıyor. Son olarak çalışma dizinindeki işi bitmiş dosyalar siliniyor. - İmza doğrulaması başarısız olursa, hatalı imzalanmış olan dosyalar hatali-imza.tarih
isimli dizine taşınıyor ve belirttiginiz e-posta adresine bir mail gönderiliyor.
- İmza doğrulaması başarılı olursa, imzalanan dosyalar dosyaadi-tarih.tar.gz ismiyle
Download
FreeBSD: http://www.syslogs.org/downloads/openssl-log-imzalayici-BSD.sh
CentOS: http://www.syslogs.org/downloads/openssl-log-imzalayici-CNT.sh
İçerik
Hızlıca göz atmak isterseniz, içeriği de şu şekildedir:
FreeBSD
#!/bin/sh # DEGISKENLER # Imzali dosyalara ait tar.gz dosyasinin ismine eklenecek zaman bilgisi. tarih=`date "+%Y%m%d-%H%M%S"` # Imza islemi icin calisma dizinine kopyalanacak log dosyasinin adi. dosya_adi=messages # Log dosyasinin bulundugu dizin. yol=/var/log # Imzalama islerinin yapilacagi dizinin adi. calisma_dizini=/var/imza_isleri # Imza sonrasi olusan dosyalarin backuplanacagi dizin. saklama_dizini=/var/imzali_loglar #Hatali imzalanmis dosyalarin tasinacagi dizin. hatali_imzalar=/var/imzali_loglar/hatali-imza-$dosya_adi-$tarih # Imzalama sirasinda kullanilan CA private key'e ait public key. CAPublicKEY=/CA/cacert.pem # Zaman damgasi otoritesine ait public key. TSAPublicKEY=/CA/tsacert.pem # Imzalama sirasinda kullanilan TSA private key'e ait public key. openssl=/usr/local/ssl/bin/openssl # Imza islemi icin kullanilacak openssl binarysi. openssl_conf=/usr/local/ssl/openssl.cnf # OpenSSL binary'sinin kullanacagi config dosyasi. # TSA'ya ait Private Key'in Pass Pharse'i password=parolaniz # Hata durumunda gonderilecek bildirim maili'nin gidecegi posta adresinizi girin. eposta_adresi=eposta-adresiniz #--------------------------------------CALISMA DIZININE KOPYALAMA ISLEMI--------------------------------------# if [ ! -d $calisma_dizini ] then mkdir $calisma_dizini fi sleep 1 cp $yol/$dosya_adi $calisma_dizini cd $calisma_dizini #--------------------------------------IMZALAMA ISLEMI--------------------------------------# $openssl ts -query -data $dosya_adi -no_nonce -out $dosya_adi.tsq sleep 1 $openssl ts -reply -queryfile $dosya_adi.tsq -out $dosya_adi.der -token_out -config $openssl_conf -passin pass:$password #--------------------------------------DOGRULAMA ISLEMI--------------------------------------# COMMAND=`$openssl ts -verify -data $dosya_adi -in $dosya_adi.der -token_in -CAfile $CAPublicKEY -untrusted $TSAPublicKEY` if [ "${COMMAND}" = "Verification: OK" ] then echo "Dogrulama tamam." else echo "Dogrulama Saglanamadi. Islemler geri aliniyor." if [ ! -d $saklama_dizini ] then mkdir $saklama_dizini fi if [ ! -d $hatali_imzalar ] then mkdir $hatali_imzalar fi mv $calisma_dizini/$dosya_adi* $hatali_imzalar echo "$dosya_adi isimli log dosyasi imzalamanamadi. Imza islemi geri alinmis durumda. Hatali dosyalari $hatali_imzalar dizininde bulabilirsiniz. Problemin nedenini gormek icin scripti manuel olarak calistirabilirsiniz." | mail -s "Log Imzalayici" "$eposta_adresi" exit fi sleep 1 if [ ! -d $saklama_dizini ] then mkdir $saklama_dizini fi sleep 1 tar cvfz $saklama_dizini/$dosya_adi.$tarih.tar.gz $dosya_adi* sleep 1 rm $calisma_dizini/$dosya_adi*
CentOS
#!/bin/sh # DEGISKENLER # Imzali dosyalara ait tar.gz dosyasinin ismine eklenecek zaman bilgisi. tarih=`date "+%Y%m%d-%H%M%S"` # Imza islemi icin calisma dizinine kopyalanacak log dosyasinin adi. dosya_adi=messages # Log dosyasinin bulundugu dizin. yol=/var/log # Imzalama islerinin yapilacagi dizinin adi. calisma_dizini=/var/imza_isleri # Imza sonrasi olusan dosyalarin backuplanacagi dizin. saklama_dizini=/var/imzali_loglar #Hatali imzalanmis dosyalarin tasinacagi dizin. hatali_imzalar=/var/imzali_loglar/hatali-imza-$dosya_adi-$tarih # Imzalama sirasinda kullanilan CA private key'e ait public key. CAPublicKEY=/CA/cacert.pem # Zaman damgasi otoritesine ait public key. TSAPublicKEY=/CA/tsacert.pem # Imzalama sirasinda kullanilan TSA private key'e ait public key. openssl=/usr/local/ssl/bin/openssl # Imza islemi icin kullanilacak openssl binarysi. openssl_conf=/usr/local/ssl/openssl.cnf # OpenSSL binary'sinin kullanacagi config dosyasi. # TSA'ya ait Private Key'in Pass Pharse'i password=parolaniz # Hata durumunda gonderilecek bildirim maili'nin gidecegi posta adresinizi girin. eposta_adresi=posta-adresiniz #--------------------------------------CALISMA DIZININE KOPYALAMA ISLEMI--------------------------------------# if [ ! -d $calisma_dizini ] then mkdir $calisma_dizini fi sleep 1 cp $yol/$dosya_adi $calisma_dizini cd $calisma_dizini #--------------------------------------IMZALAMA ISLEMI--------------------------------------# $openssl ts -query -data $dosya_adi -no_nonce -out $dosya_adi.tsq sleep 1 $openssl ts -reply -queryfile $dosya_adi.tsq -out $dosya_adi.der -token_out -config $openssl_conf -passin pass:$password #--------------------------------------DOGRULAMA ISLEMI--------------------------------------# COMMAND=`$openssl ts -verify -data $dosya_adi -in $dosya_adi.der -token_in -CAfile $CAPublicKEY -untrusted $TSAPublicKEY` if [ "$COMMAND" == "Verification: OK" ] then echo "Dogrulama tamam." else echo "Dogrulama Saglanamadi. Islemler geri aliniyor." if [ ! -d $saklama_dizini ] then mkdir $saklama_dizini fi if [ ! -d $hatali_imzalar ] then mkdir $hatali_imzalar fi mv $calisma_dizini/$dosya_adi* $hatali_imzalar echo "$dosya_adi isimli log dosyasi imzalanamadi. Imza islemi geri alinmis durumda. Hatali dosyalari $hatali_imzalar dizininde bulabilirsiniz. Problemin nedenini gormek icin scripti manuel olarak calistirabilirsiniz." | mail -s "Log Imzalayici" "$eposta_adresi" exit fi sleep 1 if [ ! -d $saklama_dizini ] then mkdir $saklama_dizini fi sleep 1 tar cvfz $saklama_dizini/$dosya_adi.$tarih.tar.gz $dosya_adi* sleep 1 rm $calisma_dizini/$dosya_adi*
Scripti daha fazla geliştirmek mümkün, ihtiyaçlarınıza göre düzenlemeleri yaptıktan sonra kullanabilirsiniz. Umarım işinize yarar.
Bu yazılar da ilginizi çekebilir:
- Update: openSSL 1.0 TSA Özelliği – 5651’a Uygun Log İmzalamak
- OpenSSL ile 5651 Sayılı Kanun Gereği Log Imzalamak
- Bir Dizin Yapısının Kopyalanması
- Bash History’sine Tarih ve Saat Bilgisi Eklemek
- Linux Sistemlerde RAM Disk Oluşturulması
Yorumlar
Trackbacks
- openSSL ve TSA ile Otomatik Log Imzalayıcı (Shell) Script | Açıkkod.org
- Tweets that mention openSSL ve TSA ile Otomatik Log Imzalayıcı Shell Script | Syslogs -- Topsy.com
- Netsec Güvenlik Bülteni - 7
- Netsec Güvenlik Bülteni VII « Elektronik Yayın Arşivi
- Update: openSSL 1.0.x sürümü için TSA Özelliği - 5651'a Uygun Log Imzalamak | Syslogs
Yorumda bulunun.
Harika olmuş :) Teşekkürler.
[Cevapla]
Merhaba,
birinci sorum; imzalama işleminde kullanılan TSA için özel/genel anahtarlar akıllı kartta kullanılmak isterse ne yapılması gerekir.
ikincisi; TSA için alınan sertifika başka bir CA altındaysa yani CA sertifikası zincir şeklindeyse burada nasıl yazılabilir.
KURUM ROOT CA
KURUM SUBCA
TSA
[Cevapla]
Merhaba,
Her iki soru icin de, enine boyuna test etmedim ama konu imzalama isleminin dogru anahtarlarla yapilmasi oldugundan dolayi hangi mecralarda kullanildigi ile ilgili bir sıkıntı yasamamalisiniz.
Ama bu net cevap degildir, cunku dedigim gibi ihtiyacim disinda kalan sekillerde denemeler yapmadim.
[Cevapla]
Merhaba, ek olarak bu signserver uygulaması bu imzalama scriptiyle karşılaştırılabilirmisiniz?
signserver.org
tşk.
[Cevapla]
Bu konuda da verebilecek net bir yanitim yok, cunku hic incelemedim signserver uygulamasini.
[Cevapla]
Selamlar.
Debian Etch ile bir önceki manuel log imzala işlerini hallettim.
Acaba yukarıdaki hangi script sürekli olarak log imzalama işimi görür. ?
Teşekkürler iyi çalışmalar.
[Cevapla]
Merhaba,
CentOS versiyonunu kullanabilirsiniz, hata alırsanız durumu burada paylasirsaniz cozumunu de bulabiliriz.
[Cevapla]
Selamlar.
Evet. Centos versiyonu ile sorunsuz çalıştı. Teşekkürler…
[Cevapla]
sistem: centos 5.4
openssl 1.1.0 stabil son surum yuklu
/usr/local/ssl/bin/openssl ts -reply -queryfile messages.tsq -out messages.tsr -config /usr/local/ssl/openssl.cnf
Using configuration from /usr/local/ssl/openssl.cnf
Response is not generated.
46947602110416:error:2F083075:time stamp routines:TS_RESP_CTX_set_signer_cert:invalid signer certificate purpose:ts_rsp_sign.c:206:
yardımlarınızı bekliyorum
[Cevapla]
Imzalama islemini yapan sertifikada bir sorun oldugunu soyluyor. Gozunuzden kacan bir nokta olmamasi icin asagidaki adreste bulunan kurulum islemlerini yeniden gozden gecirebilirsiniz.
Bunun yani sira, openssl’in yeni sürümünde ts özelliği geliyor, dolayısı ile patch gecmenize gerek kalmiyor. Onu da deneyebilirsiniz.
http://www.syslogs.org/2009/08/openssl-ile-5651-sayili-kanun-geregi-log-imzalamak/
[Cevapla]
evet aynı sorun ile bende karsılastım. bende cevap bekliyorum
[Cevapla]
Merhaba, yukarıda karşılaşılan sorunlar ile bende karşılaştım. Sistem openssl 1.0.0 kullanıyorum. Sertifika oluşturma sırasında makalede yazan şekilde yapmaya çalıştığımda openssl ca -config /usr/local/ssl/openssl.cnf -in tsareq.csr -out tsacert.pem satırını çalıştırdığımda aşagıdaki hatayı alıyorum.
default is an unsupported message digest type
15207:error:02001002:system library:fopen:No such file or directory:/usr/src/lib/libssl/src/crypto/bio/bss_file.c:126:fopen(‘/CA/index.txt.attr’,’rb’)
15207:error:2006D080:BIO routines:BIO_new_file:no such file:/usr/src/lib/libssl/src/crypto/bio/bss_file.c:129:
15207:error:0E078072:configuration file routines:DEF_LOAD:no such file:/usr/src/lib/libssl/src/crypto/conf/conf_def.c:197:
Ancak openssl.cnf dosyasında bulunan
# For the CA policy
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
Satırları optional olarak değiştirip tekrar denediğimde o zaman sertifika oluşturabiliyorum. O zamanda log imzalama kısmında yukarıdaki arkadaşların aldığı hata mesajını alıyorum. İşin içinden bir türlü çıkamadım, ne yapmak lazım nerede hata yapıyorum bir türlü bulamadım. yardımlarınız bekliyorum. Kolay gelsin.
[Cevapla]
Merhabalar,
Sorununuzun nedeni sertifika bilgileriniz ile alakali gibi gorunuyor. http://www.syslogs.org/openssl-ile-5651-sayili-kanun-geregi-log-imzalamak/ adresindeki yazida, sertifika bilgileri konusunda su sekilde bir ibare var:
Certificate authority sertifikasi ile Time Stamp Authority icin olusturulan private key’inizin bilgileri ayni degil ise bu sorunu yasayabilirsiniz. Bir kontrol etmenizi oneririm.
[Cevapla]
Dokümanlar için teşekkürler, gerçekten çok güzel olmuş herşey açık.
bugün 10’un üzerinde denemeler yaptım
aşamaları aynen takip ettim, openssl 1.0.0 ve sizin patch’li olan sürümü de denedim.
ancak response oluşturma noktasında ben de aynı hatayı alıyorum:
:error:2F083075:time stamp routines:TS_RESP_CTX_set_signer_cert:invalid signer certificate purpose:ts_rsp_sign.c:206:
tüm satırlarda /usr/local/ssl/bin/openssl’i kullandım.
Bi çözüm bulan var mı? Her şeyi aynı çok yaptım, çok defa teyit ettim.
[Cevapla]
Merhabalar,
Son zamanlarda ayni hatayi alan bir kac kisiden yorum geldi.
Kurulum adimlarini ve scripti bir kac kez deneyerek, dogruluguna %100 emin olarak yayinladim ama son zamanlarda bir sorun var gorunuyor.
Asamalari tekrar deneyip kontrol edecegim.
[Cevapla]
Arkadaşlar yanlış anlamasın, script’i henüz denemedim;
bu hata ile karşılaşanları burada gördüğüm için yazdım.
http://www.syslogs.org/2009/08/openssl-ile-5651-sayili-kanun-geregi-log-imzalamak/
linkinde yer alan aşamalarda response üretme noktasında takılmıştım, script’ten kaynaklanan bir hata olmayabilir…
iyi çalışmalar, teşekkürler
[Cevapla]
oldu sonunda, zannediyorum sorun şurada, openssl.cnf dosyasında şu satırların yorumlarını açmak lazım:
+extendedKeyUsage = critical,timeStamping
+keyUsage = nonRepudiation, digitalSignature
bir sorum daha olacak; token_out nedir, token_out olmadan sadece response oluşturarak imzalamış sayılıyor muyuz?
[Cevapla]
openssl 1.0 sürümünde mi düzel yoksa her iki sürüm için de geçerli mi bu durum?
token_out response’un bir alternatifidir response oluşturmak da imzalamak icin yeterli oluyor.
[Cevapla]
Ben de birkaç gündür log imzalama olayına göz gezdiriyorum ancak yukardaki sorunla ben de karşılaştım ve dediğiniz gibi extendedKeyUsage ve keyUsage ibarelerini açınca openssl.cnf dosyasında bir düzelme olmadı.
Acaba örnek bir openssl.cnf hazırlamanız mümkün müdür? (bu arada fedora 12 üzerinde çalışıyorum. openssl rpm’inin ts desteği mevcut)
bu arada dokümantasyon çok güzel olmuş, ellerinize sağlık
[Cevapla]
Selamlar,
Sistemime openssl-1.0 kurup yazida anlasttigim sekilde imzalama islemlerini yeniden yaptim. Sonuc olarak imzalama islemi sorunsuz gerceklesti. Bu yorumun en altinda imzalama islemlerine dair islem loglarını bulabilirsiniz.
openssl.cfg dosyasi ise default kuruldugu seklide, sadece yazida anlattigim sekilde sertifika dosyalarinin yeri ./demoCA yerine /CA olarak set edilmis durumda. (Sertifikalar o dizinde duruyorlar:
Yukaridaki bu iki degisiklikten baska bir sey yapmadim cfg dosyasinda.
Imza islemlerina ait komutlar ve ciktilari:
[Cevapla]
openssl 1.0.0 sürümünde düzeldi. patch’li sürümü denemedim.
ancak farklı bişey daha yapmışım; başka bir dokümantasyondan taklit ettiğim /CA/serial dosyası için:
echo ‘100001’ > serial
ayrıca openssl.cnf dosyasında “$dir/tsaserial” dosyasının da arandığını gördüm. bu dosya bulunmadığı için
“cp serial tsaserial”
yaptık ama kullanılıyor mu ne için kullanılıyor hangisi düzeltti derseniz pek emin değilim :)
[Cevapla]
bende aynı yerde takılıp kaldım şifre sormadan
# openssl ts -reply -queryfile messages.tsq -out messages.tsr -config /usr/local/openssl/openssl.cnf
Using configuration from /usr/local/openssl/openssl.cnf
Response is not generated.
674878472:error:2F083075:time stamp routines:TS_RESP_CTX_set_signer_cert:invalid signer certificate purpose:ts_rsp_sign.c:206:
boyle cıkıyor @Tugrul beyin dediklerini de denedim ama olmadı denemelere devam :)
[Cevapla]
Merhaba,
Dökümanlar çok güzel hazırlanmış, teşekkürler.
Ben de aynı hatayı alıyordum;
“time stamp routines:TS_RESP_CTX_set_signer_cert:invalid signer certificate purpose:ts_rsp_sign.c:206”
Sonra 3 şey yaptım ama hangisi sayesinde düzeldi bilmiyorum. Anlatayım, denersiniz.
1) Diğer dökümanda anlatıldığı gibi sertifikaları oluştururken #openssl …
olan kısımları
#/usr/local/ssl/bin/openssl şeklinde girdim ve her işlemde “-config /usr/local/ssl/openssl.cnf” kısmını da ekledim.(sistemimde 2 farklı openssl var, birisi 0.9k, diğeri 1.0.0_2, o sebeple bütün işlemleri 1.0.0_2 ile tekrardan yaptım)
2) Kök sertifika ile TS sertifikasının şifrelerini aynı verdim.
3) Extra özellikler parolasını boş bıraktım (bir yerde sorun çıkarıyor diye duyduğumu hatırlıyorum ama emin değilim)
Sonuç olarak artık çalışıyor. Bilmiyorum neden :)
[Cevapla]
Merhabalar Murat bey;
1., 2. ve 3. maddeleri de yaptım ancak bir türlü log imzalama başlıklarından “Request için TSA’ya bir Response Oluşturtmak” adımındaki, aşağıdaki hatayı geçemiyoruz.
Dökümanınızı birebir uyguluyoruz ancak bu adımda bir sorun var. Ya bu adımdaki yöntem yanlış yada sertifika oluşturma adımlarında bir sorun var.
/usr/local/ssl/bin/openssl ts -reply -queryfile system.log.tsq -out system.log.tsr -config /usr/local/ssl/openssl.cnf
Using configuration from /usr/local/ssl/openssl.cnf
Response is not generated.
674760520:error:2F083075:time stamp routines:TS_RESP_CTX_set_signer_cert:invalid signer certificate purpose:ts_rsp_sign.c:206:
[Cevapla]
Freebsd üzerinde mi çalışıyorsunuz? openssl versiyonunuz nedir acaba?
[Cevapla]
Merhabalar;
Evet FreeBSD ve versionlar aşağıdaki gibidir;
FreeBSD 8.1r6 ve OpenSSL 1.0.0-beta4-dev
ilginizden dolayı teşekkürler.
[Cevapla]
Verdiğiniz script ve konu anlatımı çok işime yaradı teşekkürler.
Sorum verdiğiniz script crontab içinde çalıştıramadım.Yanlış yaptığım yer neresidir.Örnek deneme amaçlı 1 dk bir çalıştırsın diyorum.(manuel olarak çalıştırdığım scirpt sıkıntı yok)
crontab -e
1 * * * * /root/Desktop/(Script İsmi)
Teşekkürler
[Cevapla]
Selamlar,
Script bir shell scripti oldugu icin dosyayi bir kabuk üzerinden calistirmalisiniz. Bu nedenle cron’da su sekilde bir duzenleme yapabilirsiniz..
1 * * * * /bin/sh /root/Desktop/(Script İsmi)
Bu sekilde dosyayi sh kabugu uzerinden calistirmis oluyorsunuz.
[Cevapla]
Cevabınız için teşekkür ederim
Crontab dosyamı dediğiniz gibi
1 * * * * /bin/sh /root/Desktop/(Script İsmi)
düzeltmeme rağmen ,otomatik olarak çalışmıyor. Fakat komut satırında script i çalıştırdığımda sıkıntı yok.Fedora 14 üzerinde deniyorum.Değişik makinlara fedora kurulumu yaptım sonuç aynı
Ne yapabilirim?Teşekkürler
[Cevapla]
Cagri Bey;
Bir düzeltme bilgi vereyim
1 * * * * /bin/sh /root/Desktop/(Script İsmi)
komutu dk bir kere çalışmadı.Garip bir şekilde saatte bir çalıştı.Onun yerine
53 12 * * * /bin/sh /root/Desktop/(Script İsmi)
yazdım.saat 12:53 otomatik çalıştı. Teşekkürler
Bu noktada bir sorum var ,diyelimki scriptle squid.access ait logları her gün aldırdığımızı varsayalım.Bu işleme 13/12/2010 da başlayım ve her gece 02:00 de bir gün öncesini log aldığımızı düşünelim.
Log alma tarihimiz 16/12/2010 geldiğinde ,günlük alınan log dosyasının içeriği 13-16 Aralık 2010 tarihinimi içerecek? yoksa her gece aldığımız loglar bir gece önceki logları alıp , işlem bittikten sonra silecekmi?
Eğer silme işlemi yoksa bu scripte tarih aralığı bildirerek nasıl çalıştırabiliriz.Örneğin
* 16/12/2010 da sadece 15/12/2010 loglarını al.Diğer tarih alma nasıl yaparız?
* 1 ay boyunca squid proxy den çıkış yaptırdık.Geçen aydaki sadece belli birkaç günün loglamak istiyorum.Nasıl yaparız
Teşekkürler
[Cevapla]
Selamlar,
1 dakikada bir calismasini istemeniz durumunda
seklinde calistirmaniz gerekir.
Log alma tarihi, log dosyasinin rotate edilmesi ile alakalidir. Cunku imzalayici script, imzala dediginiz zaman imzalanacak dosyanin bir kopyasini almakta ve imzalama islemini kopya uzerinde yapmaktadir.
Yani orjinal dosyada kac gunluk gecmis veri tutuluyorsa, imzalanan veri de o kadar gecmise yonelik oluyor.
Misal olarak, sisteminize squid.access log dosyasinin her gun saat 23:59’da rotate edilmesini ve imzalama isleminin ise 23.58’de yapilmasini soylerseniz, 13-16 araligi icin elinizde gun sayisi kadar imzalanmis log dosyasi olur ve bu dosyalarin her biri tam 23 saat 58 dakikalik veri icerir.
(örnek olarak 13-12-2010, 23:59’dan – 14-12-2010 23.58’e kadar olan veri imzalanir)
[Cevapla]
Çağrı Bey;
Peki ben access.log dosyamın içindeki log verisini bütün günler değil ,günlük olarak almak istersem scrpitin içine ne eklemem gerekir.
Örnek access log dosyam 01-31 aralık arası verileri tutuyor. Ama ben sadece içinden 02/12/2010 ait verileri zaman damgası yapmak istiyorum.
Kısacası scriptim her çalıştığında bana 24 saatlik(veyahut ben tarih aralığı girebilirmiyim?) log bilgilerini damgalasın.
İlginiz için çok teşekkür ederim
[Cevapla]
Script sadece, belirtilen log dosyasini imzalar, neyi imzaladigina bakmaz.
Dolayisi ile belirtilen dosyada sadece imzalanmasini istediginiz verinin bulunmasi gerekir. Bunun icin de örnegin, log dosyasini imzalamak üzere kopyalamadan once, orjinal log dosyasından imzalanmasi istenen veri cekilip baska bir dosyaya yazilabilir ve o dosya imzalanabilir.
Scripti bu sekilde düzenleyebilirsiniz.
[Cevapla]
Harika olmus balından yenmez şimdi bunun :)
[Cevapla]
Ubuntu server üzerinde kullanacak arkadaşlar
bu “if [ “$COMMAND” == “Verification: OK” ]” kısım ile ilgili bir hata alırlarsa eğer #!/bin/sh olan kısmı #!/bin/bash olarak değiştirdikten sonra sorunsuz bir şekilde kullanabilirler.
[Cevapla]
Katkı için teşekkür ederim.
Bir önceki commentinizde belirttiğiniz saat’in ileri olması konusunda yol alabildiniz mi ? Size yardimci olmak icin o konunun olasi nedenlerine bakacağım ancak henüz fırsat olmadı.
[Cevapla]
/usr/local/ssl/openssl.cnf dosyasi icinde asagidaki satirlari aktif ettikten veya asagidaki gibi düzenledikten sonra islemlere baslayin arkadaslar.
extendedKeyUsage = critical,timeStamping
keyUsage = nonRepudiation, digitalSignature
ilgili dosyada keyUsage satiri zaten açik olabilir veya acik oldugu halde bu sekilde olmayabilir. olmasi gereken sekilde düzenledikten sonra islemlere basladiginizda sorunsuz olarak bütün asamalari gectiginizi goreceksiniz.
sevgiler…
[Cevapla]
Merhaba,
centos 6.5 32 bit kullanıyorum bütün herşeyi yaptım sadece logları otomatik olarak saat başı imzalatmak kaldı ama bu verdiğiniz scripti nasıl kullanıcam otomatize nasıl edicem bana bu konuda yardımcı olurmusunuz centos da biraz yabancıyım scripti düzenleme yaptım ama nasıl çalıştırıcam neye giricem veya hangi komutu uygulayacamki devamlı logları saat başı imzalasın.
[Cevapla]
Selamlar,
Scriptin açıklama satırlarında nasıl düzenleneceği yazmakta (bundan daha açık yazılabileceğini sanmıyorum.) Düzenlemeri kendinize göre yaptıktan sonra scriptin belirttiğiniz periyodlarda çalıştırılması için cron’a (scheduled tasks’ın linux tarafındaki ismi) eklemeniz lazım. Cron ile ilgili detaylı bilgi için http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/ adresinden yararlanabilirsiniz.
[Cevapla]
çok teşekkür ederim fakat bişey daha sormak istiyorum.
benim loglar yaratılırken devamlı farklı isimde yaratılıyor
scripte ise sabit bir isim verilmiş
# Imza islemi icin calisma dizinine kopyalanacak log dosyasinin adi.
dosya_adi=messages
ben klasör içinde hangi isimde olursa olsun bu dosyaları imzalatmak istiyorum dersem nasıl bir yol izlemeliyim.
teşekkürler.
[Cevapla]
Selamlar,
Malesef o scripti sadece tek bir dosyayı imzalamak üzere düzenlemiştim (örnek olması açısından.)
Sizin bir dizin içerisindeki tüm log dosyalarını imzalama gibi bir gereksiniminiz varsa, shell scripti buna göre düzenlemeniz gerekecektir. Alternatif olarak, log dizininizin bir kopyasını alıp, tarihleyip gzip paketi haline getirerek tek dosyay düşürebilir ve oluşan bu tek gzip dosyasını imzalayabilirsiniz. Bunun için de gene script üzerinde düzenleme yapmanız gerekecek.
[Cevapla]
Bash hakkında bir soru sorucaktım. Yazınızla ilgi değil ama…
Amacım şu örneğin *nix üzerinde bir serviste fail olduğunda bash kabuğum
test etsin ve gereğini yapsin. Ornegin bir sekilde postfix durdugunda otomatik olarak bunu anlayip restart edebilsin. Soyle bir sey yapiyorum, lakin calismiyor.
#! / bin / bash
COMMAND = `telnet localhost 25`
if [“$ COMMAND” == “220 localhost.localdomain ESMTP Postfix”]
echo “postfix ok”
else
echo “servis yenizden basliyor.”
service postfix restart
exit
[Cevapla]
Merhaba;
Şu sıralar sistemde şu hatayı alıyorum ve imzalama gerçekleştirmiyor. Sorun sanırım sertifika tarihinin geçmesinden kaynaklı. Nasıl düzeltebilirim?
Using configuration from /usr/local/ssl/openssl.cnf
Response has been generated.
139823737276072:error:2F06D064:time stamp routines:TS_VERIFY_CERT:certificate verify error:ts_rsp_verify.c:246:Verify error:certificate has expired
[Cevapla]