PfSense 5651 to FTP Shell Script



  • Selamlar ;
    Bir arkadaşımız için hazırladığım 5651 scriptini sizlerle paylaşmayı düşündüm. Üzerinde çok fazla duramadım ama ilerleyen zamanlarda daha iyisini geliştirip tekrar sizinle paylaşırım. Şimdilik benden istenen sadece ilgili logların FTP Sunucusuna gönderilmesi ve eski logların temizlenmesiydi.
    Kurulum için hiçbir ekstra paket kurmanıza gerek yok.İlgili dosyaları kendinize göre düzenledikten sonra ilgili dizinlere kopyalayip çalıştırmanız yeterlidir. Bir sonra ki versiyonda Script’e Samba Client kullanarak Windows ortamdaki bilgisayara aktarılmasını, Proxy loglarını veya http isteklerini de güzelce parse edip güzel birşeyler ortaya çıkartmaya çalışırız.
    5651.sh dosyasi

    #!/bin/sh
    #   _____         __  __ ______ _________     _______ _      __  __           ______
    #  / ____|  /\   |  \/  |  ____|__   __\ \   / /_   _| |    |  \/  |   /\    |___  /
    # | (___   /  \  | \  / | |__     | |   \ \_/ /  | | | |    | \  / |  /  \      / / 
    #  \___ \ / /\ \ | |\/| |  __|    | |    \   /   | | | |    | |\/| | / /\ \    / /  
    #  ____) / ____ \| |  | | |____   | |     | |   _| |_| |____| |  | |/ ____ \  / /__ 
    # |_____/_/    \_\_|  |_|______|  |_|     |_|  |_____|______|_|  |_/_/    \_\/_____|
    # Date : 22.05.2015
    # Web  : www.netyum.com.tr      
    # Mail : sametyilmaznet@gmail.com      
    # Blog : www.sametyilmaz.com.tr                                                                
    
    logger "5651.sh dosyasi calistirildi!"
    
    #Degiskenler
    
    #FTP Connection Information
    
    HOST='ip veya host'
    USER="kullaniciadiniz"
    PASSWD="sifreniz"
    FILE="/5651/*.tar.gz"
    REMOTEPATH='5651'
    
    #Ftp Log File
    FTPLOG=/tmp/ftplogs.out
    
    #Date
    Tarih=`date "+%Y%m%d-%H%M%S"`
    
    #DHCP File
    DhcpLogD=/var/dhcpd/var/db/dhcpd.leases
    
    #HTTP File
    HttpLogD=/var/squid/logs/access.log
    
    #Awk Script
    ParseD=/sbin/5651.awk
    
    #Hazirlik Dizinimiz
    LogWorkD=/5651 
    
    if [ ! -d $LogWorkD ]
        then
            mkdir $LogWorkD
            echo "$LogWorkD olusturuldu!"
            sleep 1
        fi
    
    #DHCP Islemleri
    
    if [ -f $DhcpLogD ]
        then
            /usr/bin/awk -f $ParseD < $DhcpLogD > $LogWorkD/dhcp-$Tarih.txt
            tar -zcvf $LogWorkD/dhcp-$Tarih.tar.gz $LogWorkD/dhcp-$Tarih*
            echo "Dhcp islemleri tamamlandi!"
            logger "Dhcp islemleri tamamlandi!"
        else
    
        echo "DHCP Leases dosyasi bulunamadi!"
        logger "Dhcp Leases dosyasi bulunamadi."
    
        fi
    
        sleep 3
    
    #HTTP islemleri
    
    if [ -f $HttpLog ]
        then
    
            cp $HttpLogD $LogWorkD/http-$Tarih.txt
            tar -zcvf $LogWorkD/http-$Tarih.tar.gz $LogWorkD/http-$Tarih*
            echo "HTTP dosyasi olusturuldu!"
            logger "Http dosyasi olusturuldu!"
        else
            echo "HTTP dosyasi bulunamadi!"
            logger "HTTP dosyasi bulunamadi!"
        fi
    
        sleep 5
    
    ##FTP Baglantisi
                ftp -nv $HOST > $FTPLOG 2>&1 <<-EOF
            quote USER $USER
            quote PASS $PASSWD
            cd $REMOTEPATH
            prompt
            mput $FILE
                EOF
    
    if grep "Not Connected" $FTPLOG
    then
        echo "FTP baglantisi yapilamadi!"
        logger "FTP baglantisi yapılamadi!"
    elif grep "Transfer complete" $FTPLOG
    then    
        echo "FTP baglantisi olusturuldu!"
        logger "Dosya Transferi tamamlandi!"
    
    else
        echo "FTP baglantisinda bir hata olustu!Tekrar deneyin..."
        logger "FTP baglantisinda bir hata olustu!Tekrar deneyin..."
    
    fi
    
    echo $?
    
    sleep 3
    
    rm -rf /5651
    
    echo "Hazirlik dizini silindi!"
    logger "Hazirlik dizini silindi!"
    
    echo "FTP loglari siliniyor..."
    rm -rf $FTPLOG
    echo "FTP loglari silindi"
    
    logger "5651 Islemleri tamamlandi!"
    echo "
    ##############################################################################
    ######################ISLEMLER TAMAMLANDI!!!!#################################
    ######################www.sametyilmaz.com.tr##################################
    "
    

    5651.awk

    #ip adresi
    /lease / { ip = $2 }
    
    # Baslangic tarihi.
    /starts / { baslangic = $3; bsaat = $4;  gsub(";", "", time) }
    
    # Bitis tarihi
    /ends / { bitis = $3; bitiss = $4;  gsub(";", "", time) }
    
    # Hostname adi
    /client-hostname / { host = $2; gsub("[;\"]", "", host) }
    
    # Mac adresi
    /hardware ethernet / { mac = $3; gsub(";", "", mac) }
    
    # Ekrana yazdir.
    
    /\}/ { print "Hostname : " host  " Ip :" ip  " Mac :"  mac  " Baslangic : " baslangic " " bsaat " Bitis :  " bitis  " " bitiss  }
    

    Kurulum için /sbin dizini altında 5651.sh ve 5651.awk isimli dosya olusturun ve bilgileri kendinize göre düzenledikten sonra aşağıdaki komutla yetkilendirmeyi tamamlayın.

    chmod +x /sbin/5651.sh /sbin/5651.awk
    

    İşlemler tamamlandıktan sonra dosyası aşağıda ki şekilde çalıştırıp test yapabilirsiniz.

    sh /sbin/5651.sh
    

    Eğer aşağıdaki şekilde bir cron girdisi oluşturursanız günün belirli saatlerinde logların ftp sunucunuza otomatik gönderilmesini sağlamış olursunuz.

    İsterseniz yukarıdaki dosyaları aşağıda ki link’ten download edebilirsiniz.
    http://sametyilmaz.com.tr/pfsense/pfSense5651toFTP.rar



  • teşekkürler kardeşim. senin bu emeklerinin karşılığını teşekkürle ödemek mümkün değil biliyorum ancak buradan bu kadar.

    Emeğine sağlık.



  • @MuratRaci:

    teşekkürler kardeşim. senin bu emeklerinin karşılığını teşekkürle ödemek mümkün değil biliyorum ancak buradan bu kadar.

    Emeğine sağlık.

    Güzel yorumun için teşekkür ederim abi. Elimizden geldiğince birşeyler yapmaya çalışıyoruz inşallah birilerinin işine yarıyordur.



  • kurulumu yaptım. ama ftpye bağlantı sırasında sorun yaşıyorum. filezilla ile ftp server kurdum. logları atıyor ama log dosyaları bozuk bir şekilde iletiliyor. "rm -rf /5651" kodunu silip oluşturulan 5651 klasörünün içerisine girip baktığımda ise loglar tamamen sağlıklı olarak duruyor. acaba nerede yanlış yaptım yardımcı olabilir misiniz?



  • @ozzani:

    kurulumu yaptım. ama ftpye bağlantı sırasında sorun yaşıyorum. filezilla ile ftp server kurdum. logları atıyor ama log dosyaları bozuk bir şekilde iletiliyor. "rm -rf /5651" kodunu silip oluşturulan 5651 klasörünün içerisine girip baktığımda ise loglar tamamen sağlıklı olarak duruyor. acaba nerede yanlış yaptım yardımcı olabilir misiniz?

    Selam,

    FTP Sunucunuzla ilgili bir problem olabilir mi ? Kullanan bir kaç arkadaşım da herhangi bir sorun gözükmemektedir. FTP loglarını sildirdiğimiz satırı'da yorum satırı haline getirip FTP logunu paylaşırmısınız. ?



  • @Samet:

    @ozzani:

    kurulumu yaptım. ama ftpye bağlantı sırasında sorun yaşıyorum. filezilla ile ftp server kurdum. logları atıyor ama log dosyaları bozuk bir şekilde iletiliyor. "rm -rf /5651" kodunu silip oluşturulan 5651 klasörünün içerisine girip baktığımda ise loglar tamamen sağlıklı olarak duruyor. acaba nerede yanlış yaptım yardımcı olabilir misiniz?

    Selam,

    FTP Sunucunuzla ilgili bir problem olabilir mi ? Kullanan bir kaç arkadaşım da herhangi bir sorun gözükmemektedir. FTP loglarını sildirdiğimiz satırı'da yorum satırı haline getirip FTP logunu paylaşırmısınız. ?

    tekrar deneyip paylaşacağım. siz pfsense'in hangi sürümünü ve hangi ftp serveri kullanıyorsunuz?

    –------loglar----------
    ftp loglarım aşağıdaki gibidir:

    Connected to 10.0.0.6.
    331 Password required for sasa
    230 Logged on
    250 CWD successful. "/5651" is current directory.
    Interactive mode off.
    local: /5651/dhcp-20150607-135038.tar.gz remote: /5651/dhcp-20150607-135038.tar.gz
    229 Entering Extended Passive Mode (|||58590|)
    150 Opening data channel for file upload to server of "/5651/dhcp-20150607-135038.tar.gz"
    226 Successfully transferred "/5651/dhcp-20150607-135038.tar.gz"
    121 bytes sent in 00:00 (1.03 KiB/s)
    local: /5651/http-20150607-135038.tar.gz remote: /5651/http-20150607-135038.tar.gz
    229 Entering Extended Passive Mode (|||60258|)
    150 Opening data channel for file upload to server of "/5651/http-20150607-135038.tar.gz"
    226 Successfully transferred "/5651/http-20150607-135038.tar.gz"
    2949 bytes sent in 00:00 (107.83 KiB/s)
    221 Goodbye
    
    

    ve ayrıca shell de böyle bi hata alıyorum

    HTTP dosyasi olusturuldu!
    FTP baglantisinda bir hata olustu!Tekrar deneyin...
    0
    Hazirlik dizini silindi!
    


  • Çalışma için öncelikle teşekkür ederim.Bende ftp tarafında aynı hatayı aldım kullandıgım pfsense surumu 2.1.3 ftp olarakta filezilla kullandım ve buna ek olarak web sitesine ait ftp bılgılerını kullandım sonuc yıne degısmedı.



  • @ozkan:

    Çalışma için öncelikle teşekkür ederim.Bende ftp tarafında aynı hatayı aldım kullandıgım pfsense surumu 2.1.3 ftp olarakta filezilla kullandım ve buna ek olarak web sitesine ait ftp bılgılerını kullandım sonuc yıne degısmedı.

    Selam izne çıktım döndüğümde ilgileneceğim.



  • @Samet:

    @ozkan:

    Çalışma için öncelikle teşekkür ederim.Bende ftp tarafında aynı hatayı aldım kullandıgım pfsense surumu 2.1.3 ftp olarakta filezilla kullandım ve buna ek olarak web sitesine ait ftp bılgılerını kullandım sonuc yıne degısmedı.

    Selam izne çıktım döndüğümde ilgileneceğim.

    Hoş geldiniz yardımlarınız için şimdiden teşekkür ederim.



  • FTP Problemini aşabilen var mı? Dosya karşıya geçerken bozuluyor.