Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Python 5651 DHCP Loglama Programı (Güncellendi.)

    Scheduled Pinned Locked Moved Turkish
    44 Posts 13 Posters 19.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      selimakpinar
      last edited by

      Yeni güncellemeleri aşağıdaki adresden takip edebilirsiniz.

      -Anlatım ve indirme linki aşağıdaki sayfadadır.

      –- http://selimakpinar.com/dhcplogger/

      PROGRAMIN GELİŞTİRİLMESİ DEVAM ETMEMEKTEDİR. GELECEK SORULARA CEVAP VEREMEYECEĞİM.

      1 Reply Last reply Reply Quote 0
      • X
        xxpl
        last edited by

        cok güzel ve gerekli bir konu keşke antılana resimli veya videolu anlatımda eklenseydi… süper olurdu...

        pfsense.jpg
        pfsense.jpg_thumb

        1 Reply Last reply Reply Quote 0
        • S
          selimakpinar
          last edited by

          Zamanım olduğu zaman anlatımı görselleştirmeye çalışacağım. mesajınız için teşekkür ederim.

          1 Reply Last reply Reply Quote 0
          • X
            xxpl
            last edited by

            ben teşekkür ederim selim bey bizleri bilgilendirdiğiniz için… çalışmalarınızın devamını dilerim... kib...

            1 Reply Last reply Reply Quote 0
            • O
              ondokuz
              last edited by

              yazmıs oldugunuz python dosyasi nereden inecek link göremedim. dhcplogger.py  dosyasindan bahsediyorum.

              1 Reply Last reply Reply Quote 0
              • S
                selimakpinar
                last edited by

                LINK : https://www.dropbox.com/s/dzpsmr870avv41z/dhcplogger.py

                1 Reply Last reply Reply Quote 0
                • S
                  skeser
                  last edited by

                  Selim Bey selamlar,
                  "Bu programı yazmamdaki amaç sürümden bağımsız bir loglama programı oluşturmak."
                  harika olur, sanirim birazda buna katki saglamak icin ugrastim.

                  Yazdiginiz python betigini denedim, bahsettiginiz gibi;
                  -samba ve pyton surumu problemi ile karsilastim,
                  –Cozum;
                  samba icin pFsense'in paketlendigi sistemi baz alarak asagidaki sekilde kurulumu yaptim,
                  boylece yukaridaki samba ve pyton problemi ortadan kalkti ama "requires 'libiconv-1.13.1_2', but 'libiconv-1.14_1'" uyarisi umarim ciddi bisey degildir.

                  
                  pkg_add -r ftp://ftp.freebsd.com/pub/FreeBSD/releases/i386/8.3-RELEASE/packages/Latest/samba36-smbclient.tbz
                  
                  

                  -betigi cron'a atinca ilk calistirmada olusturulan conf dosyasi bulunamadi;
                  -yukarida problemi betik dosyasi icinde düzeltince bu defa log dosyasini cronda ve
                  konsolda calistirinca farkli yerlere atti.
                  –Cozum;
                  asagidaki dizin yapisini olusturdum ve bunu root icine WinSCP ile tasidim.
                  root/
                  -----dhcplogger
                  ---------------conf/dhcplogger.conf
                  ---------------logs/
                  ---------------py/dhcplogger.py

                  betik ilk defa calistirildiginda conf/dhcplogger.conf altina dosyasini olusturuyor ardindan
                  crondan yada consoldan calistirildiginda "conf/dhcplogger.conf" yolundan ayarlari okuyup(burdada bi problem var asagida detaylandirdim.),
                  log dosyalarini logs/ icine atiyor.

                  Programin gunluk casistirilmasini tavsiye etmissiniz;
                  Bu durumda cok giris/cikis yapilan sistemlerde(hotspot) ip-mac eslesmesinin yakalamayacagi durumlar
                  olusabilir dusuncesimdeyim(yanlissam duzeltin.),bence kesin sonuc betigi 2 saatte bir calistirmakla alinir derim(dhcp server'ın default lease time degeri).
                  Bunun icin sanirim log dosyasi olusturulurken saat kisminda eklenmesi lazım[betik icinde,log dosya adina ekledim].

                  Gelelim cozemediklerime ;
                  Problem 1: saat.
                  System>General Setup altinda Time Zone : Asia/Istanbul secili oldugu halde,
                  log dosyasindaki zaman bilgileri bende hala 2 saat geride.
                  Bu betik icinde time'i aldirirken duzeltilebilirmi bilemiyorum ?

                  Problem 2: farklı lease formatlari..
                  aslinda test ortaminda problem yasamadim hotspot seklinde calisan baska bir makinam var,
                  orada test ettiğimde betigin 75. satirinda hatayla karsilastim.
                  lease dosyasina kabaca baktigimda 3 farklı lease tipiyle karsilastim bunlar asagida

                  
                  lease 192.168.2.124 {
                    starts 0 2014/01/26 21:26:35;
                    ends 0 2014/01/26 23:26:35;
                    tstp 0 2014/01/26 23:26:35;
                    cltt 0 2014/01/26 21:26:35;
                    binding state free;
                    hardware ethernet xx:xx:xx:xx:xx:xx;
                  }
                  lease 192.168.2.60 {
                    starts 4 2014/02/06 17:36:13;
                    ends 4 2014/02/06 19:36:13;
                    tstp 4 2014/02/06 19:36:13;
                    cltt 4 2014/02/06 17:36:13;
                    binding state free;
                    hardware ethernet xx:xx:xx:xx:xx:xx;
                    uid "\001\300e\231\243C\221";
                  }
                  
                  lease 192.168.2.68 {
                    starts 4 2014/02/06 19:41:57;
                    ends 4 2014/02/06 21:41:57;
                    cltt 4 2014/02/06 19:41:57;
                    binding state active;
                    next binding state free;
                    rewind binding state free;
                    hardware ethernet xx:xx:xx:xx:xx:xx;
                    client-hostname "android-f998359cc76cb98e";
                  }
                  
                  

                  betigi biraz kurcalayinca

                  
                  51:if degerler[4] == tarih and degerler[8] == tarih:
                  
                  

                  satirini asagidaki gibi degistirince calisti

                  
                  51:if degerler[4] == tarih and degerler[8] == tarih and degerler[10] == "tstp":
                  
                  ``` 
                  ama bu defa 3\. lease tipindeki aktif olan 192.168.2.68 nolu ip yi haliyle loglayamadi.
                  
                  Python okurlugum var ama yazarligim yok onun icin daha fazla kurcalamaktan vazgectim.
                  
                  Sonuc olarak;
                  –betigin ilk calistirilmasinda ortaya cikan problem,
                  --Problem 1 ve 2 duzeltilebilirse,
                  --Aslinda yaptigim dhcplogger dizin yapisi pek de hosuma girmiyor, hersey root altinda,
                  bu biraz linux mantgina ters,onunlada ilgili birseyler yapilabilirse,
                  bu isi tam anlamiyla karsilayan bisey ortaya cikacaktir dusuncesindeyim.
                  Aslinda bu loglama isini, bahsettiginiz gibi;
                  -samba-client tarafi olamdan, ki gelistiriciler buna pek sicak bakmayacaktir-
                  pFsense'e hazır modul olarak eklenbilir bir yapiya kavusturmak harika olur derim,nasil olur onuda bilmiyorum ama.
                  
                  Denemek isteyenler icin;
                  
                  1-Test Ortamı Konfigrasyonu;
                  **Sistem :
                  

                  2.1-RELEASE (i386) built on Wed Sep 11 18:16:22 EDT 2013 FreeBSD 8.3-RELEASE-p11

                  **Kurulu paketler;
                  

                  bandwidthd System 2.0.1_5 pkg v.0.3
                  Cron Services 0.1.8
                  freeradius2 System 2.1.12_1/2.2.0 pkg v1.6.7_2
                  Open-VM-Tools Services 8.7.0.3046 (build-425873)

                  **pkg_info ciktisi;
                  

                  bsdinstaller-2.0.2013.0911 BSD Installer mega-package
                  gettext-0.18.3      GNU gettext package
                  libiconv-1.14_1    A character set conversion library

                  **pkg_version ciktisi;
                  

                  bsdinstaller                        ?
                  gettext                            ?
                  libiconv                            ?

                  
                  2-Kurulum adimlari;
                  
                  –-------------------------------------------------
                  2.1-Log dosyalarinin kopyalanacagi PC'de;  
                  ---------------------------------------------------
                  2.1.1-dhcp rezervasyonu ile IP'nin sabitlenmesi,
                  2.1.2-log dosyalarinin konulacagi paylasmis dizin ayarlarinin yapilmasi,
                  2.1.3-kullanici ve sifre ayarlarinin yapilmasi.
                  
                  ---------------------------------------------------
                  2.2-Samba Client kurulumu
                  ---------------------------------------------------
                  2.2.1-Samba Client kurulumu icin komut ve ciktisi:
                  

                  /root(10):pkg_add -r ftp://ftp.freebsd.com/pub/FreeBSD/releases/i386/8.3-RELEASE/packages/Latest/samba36-smbclient.tbz
                  Fetching ftp://ftp.freebsd.com/pub/FreeBSD/releases/i386/8.3-RELEASE/packages/Latest/samba36-smbclient.tbz... Done.
                  Fetching ftp://ftp.freebsd.com/pub/FreeBSD/releases/i386/8.3-RELEASE/packages/All/python27-2.7.2_4.tbz... Done.

                  Note that some of the standard modules are provided as separate
                  ports since they require extra dependencies:
                  bsddb          databases/py-bsddb
                  gdbm            databases/py-gdbm
                  sqlite3        databases/py-sqlite3
                  tkinter        x11-toolkits/py-tkinter
                  Install them as needed.

                  Fetching ftp://ftp.freebsd.com/pub/FreeBSD/releases/i386/8.3-RELEASE/packages/All/pkg-config-0.25_1.tbz... Done.
                  Fetching ftp://ftp.freebsd.com/pub/FreeBSD/releases/i386/8.3-RELEASE/packages/All/talloc-2.0.7.tbz... Done.
                  Fetching ftp://ftp.freebsd.com/pub/FreeBSD/releases/i386/8.3-RELEASE/packages/All/libexecinfo-1.1_3.tbz... Done.
                  Fetching ftp://ftp.freebsd.com/pub/FreeBSD/releases/i386/8.3-RELEASE/packages/All/tdb-1.2.9,1.tbz... Done.
                  pkg_add: warning: package 'samba36-smbclient-3.6.3' requires 'libiconv-1.13.1_2', but 'libiconv-1.14_1' is installed

                  
                  2.2.2-Samba Client configrasyon dosyasinin isminin degistirilmesi
                  -"/usr/local/etc/smb-client.conf.sample" seklinden "/usr/local/etc/smb-client.conf" sekline rename yapiyoruz.
                  
                  –-------------------------------------------------
                  2.3-dhcplogger dizinin root altina kopyalanmasi
                  ---------------------------------------------------
                  dhcplogger zip dosyasini asagidan indirebilirsiniz;
                  [https://www.dropbox.com/s/bhkd98hgw6acpqp/dhcplogger.rar](https://www.dropbox.com/s/bhkd98hgw6acpqp/dhcplogger.rar)
                  2.3.1-zipli dosyayi acin,dhcplogger dizinini WinSCP ile root altina kopyalayin.
                  
                  –-------------------------------------------------
                  2.4-Programin calistirilmasi  
                  ---------------------------------------------------
                  2.4.1-ilk defa asagidaki komutla konsoldan calistirin,gerekli parametreleri girin, conf/dhcplogger.conf
                  dosyasi olusuyor.
                  

                  python dhcplogger/py/dhcplogger.py

                  Not: burda bir problem var, "e" ardindan enter dedikten sonra program olusan dhcplogger.conf dosyasina gore degilde default configrasyon ayarlariyla
                  calisiyor, komutu tekrar denediginizde logs ve conf dizinlerinin altina gerekli dosyalar olusturuluyor, samba client
                  ag uzerindeki makinanin paylasilmis dizinine log dosyasini atiyor.
                  
                  –-------------------------------------------------
                  2.5-CRON ayarlarinin yapilmasi
                  ---------------------------------------------------
                  Services>Cron altinda ++ya basin ve yeni cron icin asagidaki ayarlari kullanin.
                  2.5.1- 2 saatte bir calissin derseniz;
                  

                  min :  *
                  hour:  */2
                  mday:  *
                  month: *
                  wday : *
                  who  : root
                  commmand /usr/bin/nice -n20 /usr/local/bin/python /root/dhcplogger/py/dhcplogger.py

                  2.5.1- hergun gece 23'de calissin derseniz; (bunu denemedim ama calismali)
                  

                  min :  *
                  hour:  23
                  mday:  *
                  month: *
                  wday : *
                  who  : root
                  commmand /usr/bin/nice -n20 /usr/local/bin/python /root/dhcplogger/py/dhcplogger.py

                  
                  eksik yada yanlis yazdiklarim varsa, duzeltirseniz sevinirim,
                  kolayliklar.

                  Sevket Keser
                  –----------------------------------
                  Test ve Calisma ortami
                  -2.1-RELEASE (i386) FreeBSD 8.3-RELEASE-p11
                  -- 3-WAN - 1 LAN

                  http://www.sevketkeser.net

                  1 Reply Last reply Reply Quote 0
                  • S
                    selimakpinar
                    last edited by

                    Yazdığınız yazı oldukça bilgilendirici olmuş. Betik hala ilk versiyonunda; sınavlar, tatil derken zaman ayıramadım geliştirmeye ancak yakın zamanda tekrar geliştirmeye devem edeceğim. Öncelikle programı biraz düzenlemem lazım (Daha modüler bir şekilde yeniden yazacağım). Sonradan tekrar programda ki hatalara yoğunlaşacağım. Geri dönüşünüz için tekrardan teşekkür ederim.

                    1 Reply Last reply Reply Quote 0
                    • G
                      gungorm
                      last edited by

                      merhaba arkadaşlar kurumumda bütün bilgisayarlarımın iplerini elle yapılandırdım. dhcp kullanmıyorum. Bu ip loglama işini nasıl yapmalıyım. Bilgisayar ip-mac bilgileri ile kullanıcıların kullanım zamanları bilgilerini bir dökümanda tutmam yeterli olur mu? Bu dökümanı da tib'in programıyla imzalamalı mıyım
                      Teşekkürler

                      1 Reply Last reply Reply Quote 0
                      • D
                        devrimgezgin
                        last edited by

                        Merhabalar;

                        2.1 kullanıyorum. Yazıya uygun olarak Phyton + samba kurulumlarını yaptım. pkg_info çıktısı aşağıdaki gibi:

                        bsdinstaller-2.0.2013.0911 BSD Installer mega-package
                        gettext-0.18.3      GNU gettext package
                        libexecinfo-1.1_3  A library for inspecting program's backtrace
                        libiconv-1.14_1    A character set conversion library
                        mysql-client-5.5.21 Multithreaded SQL database (client)
                        mysql-server-5.5.21 Multithreaded SQL database (server)
                        nano-2.2.6          Nano's ANOther editor, an enhanced free Pico clone
                        p5-Digest-HMAC-1.03 Perl5 interface to HMAC Message-Digest Algorithms
                        p5-IO-Socket-IP-0.27 Drop-in replacement for IO::Socket::INET supporting IPv4 an
                        p5-IO-Socket-SSL-1.962 Perl5 interface to SSL sockets
                        p5-Net-SMTP-TLS-0.12_1 SMTP client supporting TLS and AUTH
                        p5-Net-SSLeay-1.57  Perl5 interface to SSL
                        p5-Socket-2.013    Networking constants and support functions
                        perl5-5.16.3_6      Practical Extraction and Report Language
                        php5-soap-5.3.10_1  The soap shared extension for php
                        pkg-config-0.25_1  A utility to retrieve information about installed libraries
                        python27-2.7.5_1    Interpreted object-oriented programming language
                        samba36-smbclient-3.6.17 Samba "ftp-like" client
                        talloc-2.0.8        Hierarchical pool based memory allocator
                        tdb-1.2.12,1        Trivial Database
                        tevent-0.9.18      Talloc based event loop library

                        python /sbin/dhcplogger.py - çalıştırdığımda ilk önce libutil.so.9' u bulamadım dedi. "ln" ile libutil.so.8 den linkledim.
                        Sonra da "/libexec/ld-elf.so.1: /usr/local/bin/python: Undefined symbol "_ThreadRuneLocale"" bu hatayı alıyorum.

                        Kolay gelsin.

                        1 Reply Last reply Reply Quote 0
                        • S
                          selimakpinar
                          last edited by

                          Samba ve python paketlerini ve onlara bağlı bütün paketleri kaldırın (talloc gibi, zaten kendisi belirtecektir). Ardından python paketini yüklemeden direk olarak samba kurulumunu yapın samba kurulurken gerekli paketleri kuruyor ve bu tarz bir hata ile karşılaşmıyorsunuz.

                          Bu arada yeniden programı geliştirmeye başladım, yenilikler;

                          -Leases dosyasını yeniden hatasız bir şekilde ayıracak bir algoritma yazıyorum (Daha önceki bir mesajda bahsi geçen hata için).
                          -Ve yine aynı mesajda programa saat opsiyonu ekleyeceğim böylece gün içinde istenilen saatlerde log alınabilecek. (2 saate bir vb.)

                          Gelecek hafta içinde yeni sürümü yayınlamaya çalışacağım. Şimdilik eski sürüme erişimi kapattım.

                          1 Reply Last reply Reply Quote 0
                          • K
                            kedma
                            last edited by

                            Şimdiden eline sağlık beklemekten başka seçenek yok.
                            alternatif bir yöntem var mı şuan 2.1 versiyonunda çalışan?

                            1 Reply Last reply Reply Quote 0
                            • O
                              ondokuz
                              last edited by

                              @selimakpinar:

                              Gelecek hafta içinde yeni sürümü yayınlamaya çalışacağım. Şimdilik eski sürüme erişimi kapattım.

                              Ellerinize saglık. bende beklemekteyim büyük bir ümit ile.

                              1 Reply Last reply Reply Quote 0
                              • S
                                selimakpinar
                                last edited by

                                Önceki yazıda yazdığım gibi leases algorimasını yeniden yazdım ve saat fonksiyonunu ekledim
                                -Sat fonksiyonu hakkında:
                                –-Programı ayarlarken bir değer seçiyorsunuz mesala 4 saat crondan da her 4 saatte çalışması için görev yazıyorsunuz. Ardından program her dört saatte bir kullanıcıların çıkış saatlerine bakarak son 4 saat içinde bağlantısı kesilen bütün kayıtları ilgili dosyaya yazıyor.
                                ---Dosya formatıda değişti önceden gün olarak (dhcplogger_12-06-2013) şeklindeydi artık saat fonksiyonu eklendiği için (dhcplogger_12-06-2013_16.52) şeklinde kayıt ediliyor.
                                Son olarak daha önceden bahsedilmişti siz programı konsoldan çalıştırdığınız zaman kayıtlar başka yerde crondan çalıştırdığınız zaman başka yere kayıt oluyorlardı. Bu sorunu hallettim ancak bu sefer samba komutunda hata alıyorum ancak biraz araştırdıktan sonra halledebilirim. 3 gündür okuldan 5 çıkıyorum o yüzden zaman ayıramadın ancak perşembe ve cuma müsaatim tahminim en geç hafta sonu yeni sürümü kullanıma sunacağım. İlginiz için tekrar teşekkür ederim.

                                1 Reply Last reply Reply Quote 0
                                • S
                                  selimakpinar
                                  last edited by

                                  İlk mesajı veya konu başlığını değiştiremediğim için yeni güncellemeleri aşağıdaki adresden takip edebilirsiniz.

                                  -Anlatım ve indirme linki aşağıdaki sayfadadır.

                                  –- https://github.com/akpinarselim/dhcplogger

                                  1 Reply Last reply Reply Quote 0
                                  • O
                                    ondokuz
                                    last edited by

                                    Ellerine saglık. çok teşekkürler. hemen deneyecegim.

                                    1 Reply Last reply Reply Quote 0
                                    • B
                                      b_onat
                                      last edited by

                                      merhaba

                                      programı adımları ızleyerek kurdum log dosyasına txt geldı fakat ıcerısıne ıp adreslerı gelmedı bununla ılgılı olarak
                                      dhcp leases ornegıne baktım herhangı bır format farkı goremedım
                                      bununla ılgılı olarak ne yapmam gerekır.

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        selimakpinar
                                        last edited by

                                        Oluşturulan dosyada hiç bir kayıt yok mu yoksa sadece ip adresleri mi yazılmamış ayrıca dhcpd.leases dosyasının konumunu yazabilir misiniz ?

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          b_onat
                                          last edited by

                                          ok ok sorun kalmadı sunucuyu yenıden baslattım sorun duzeldı tesekkurler

                                          1 Reply Last reply Reply Quote 0
                                          • B
                                            b_onat
                                            last edited by

                                            peki corn olayını nasıl yapabılırım bırseyler olusturdum ben ama calısmıyor sanırsam

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.