Skip to content

Instantly share code, notes, and snippets.

@ecylmz
Created April 20, 2015 12:42
Show Gist options
  • Save ecylmz/ad4ea466d5f1c9b5f5fd to your computer and use it in GitHub Desktop.
Save ecylmz/ad4ea466d5f1c9b5f5fd to your computer and use it in GitHub Desktop.
#!/bin/sh
# Kaynak: https://www.syslogs.org/openssl-ve-tsa-ile-otomatik-log-imzalayici-shell-script/
# DEGISKENLER
# Imzali dosyalara ait tar.gz dosyasinin ismine eklenecek zaman bilgisi.
tarih=`date "+%Y%m%d-%H%M%S"`
dosya_tarihi=`date "+%Y%m%d"`
# Imza islemi icin calisma dizinine kopyalanacak log dosyasinin adi.
dosya_adi=mikrotik.log-$dosya_tarihi.gz
# loglarin bulundugu dizin.
yol=/var/log/mikrotik
# Imzalama islerinin yapilacagi dizinin adi.
calisma_dizini=/var/imza_isleri
# Imza sonrasi olusan dosyalarin backuplanacagi dizin.
saklama_dizini=/var/imza_isleri/mikrotik
#Hatali imzalanmis dosyalarin tasinacagi dizin.
hatali_imzalar=$saklama_dizini/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
# Imza islemi icin kullanilacak openssl binarysi.
openssl_conf=/etc/ssl/openssl.cnf
# TSA'ya ait Private Key'in Pass Pharse'i
password='P4ssw0rd'
# Hata durumunda gonderilecek bildirim maili'nin gidecegi posta adresinizi girin.
eposta_adresi=email@example.com
#--------------------------------------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*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment