Dhcp'deki Static IP'lerin Loglanması (Çözüldü)
-
Evet arkadaşlar yanlış okumadınız bu iş artık tamamdır…. az önce bir başlık açmıştım ama olayı tamamen değiştirmiş olup
dhcp'nin dağıttığı ip'lerin logunu tutabilen arkadaşlar artık dhcp üzerinden statik atanmış ip'lerinde loglarını tutabilecektir
aşağıdaki kodu notepad'a kopyalayıp farklı kaydet diyerek
statikip.sh uzantılı olacak şekilde kayıt edelim# dhcp.awk # awk -f dhcp.awk < /var/dhcpd/etc/dhcpd.conf /fixed-address\ / { sub(";", "", $2); printf("%s\t\t", $2); } /hardware\ ethernet\ [^;]*;/ { sub(";", "", $3); printf("%s\t\t", $3); } /option\ host-name\ / { sub(";", "", $3); printf("%s\r\n", $3); }
bu dosyayı winscp yardımıyla sbin klasörünün içine atın
ve dhcp logunu tuttuğunuzu var sayarak
sbin/ içinde dhcplistcronsmb.sh dosyasını açın ve
ve aşağıdaki kodu yapıştırın tek yapmanız gereken koyu yerleri kendinize göre değiştirmeniz
zaten koyu yerler açtığınız dosyanın içinde yazıyor
tarih=
date "+%Y%m%d-%H%M%S"
mkdir /var/mountsamba
cd /var/mountsamba
awk -f /sbin/statikip.sh < /var/dhcpd/etc/dhcpd.conf > ./staticlog-$tarih.txt
/usr/local/bin/smbclient \\192.168.1.10\DHCP_LOG -U administrator%"11111" -W -N -c "prompt; put staticlog-$tarih.txt"
logger "Windows paylasımına dosya kopyalandı."
cd ..
rm -rf /var/mountsambaartık dhcplogtarih.txt ve staticlogtarih.txt şeklinde iki yeni dosya oluşturacak her defasında
staticlogtarih.txt dosyasının içeriği şu şekilde olacak
mac adres ip adres hostname olarak gözükecektir
bildiğiniz gibi dhcp ayarlarını
http://pfsenseip/diag_logs_settings.php sayfasından hallediyorduk tek sıkıntı olabilir burdaki ayarları değiştirdiğinizde bu dosyanın içini kontrol etmek
test etmedim ama bu sonradan eklediğimiz ayarları silebilir.takıldığınız yerlerde yardımcı olacağım inş deneyenler ve geri dönüş yapanlar olur herkese kolay gelsin
-
merhaba,
deneme fırsatım olmamakla birlikte, öncelikle emeğiniz ve paylaşımınız için çok teşekkürler.
keyifli çalışmalar -
umarım deneme şansınız olur
ve arkadaşlarda dener olumlu olumsuz dönüş yaparlarsa çok daha iyi yerlere gidecek bence
usb içinde gerekli ayarlamaları ve testleri yaptım mis gibi çalışmakta :)
isteyenlere o kodlarıda yollarım
-
umarım deneme şansınız olur
ve arkadaşlarda dener olumlu olumsuz dönüş yaparlarsa çok daha iyi yerlere gidecek bence
usb içinde gerekli ayarlamaları ve testleri yaptım mis gibi çalışmakta :)
isteyenlere o kodlarıda yollarım
Emegine ve paylaşımın için teşekkürler.
Loglanan dosyanın içerigini ekran görüntüsü ekleyebilirmisiniz ? -
Gayet güzel çalışıyor ellerine sağlık
Usbden log tutan arkadaşlarda aşağıdaki kodu
/sbin dhcplistcronusb.sh nin en alt satırına yazabilirlertarih=
date "+%Y%m%d-%H%M%S"
disks="da0s1"mkdir /var/mountusb
mkdir /var/tiblogfor db in $disks
do
if mount -t msdosfs /dev/$db /var/mountusb; then
logger "/dev/$db USB aygit baglama BASARILIDIR."awk -f /sbin/statikip.sh < /var/dhcpd/etc/dhcpd.conf > /var/tiblog/statiklog-$tarih.txt
mv /var/tiblog/* /var/mountusb
umount /var/mountusb
logger "Kopyalama gerceklestirildi."
else
logger "/dev/$db USB aygit baglanamadi."
fi
donermdir /var/mountusb
rmdir /var/tiblogÖzgür Kalkavan'a yardımlarından dolayı ayrıca teşekkürler.
-
başlangıç bitiş saatleri yok zaten olmasıda mantıksızstatik iplerde böyle bişeye ihtiyaç yok dimi :D
-
güncelleme,
bildiğiniz üzere dhcp loglarının nereye kaç saatte bir kayıt edilecek gibi ayarlarını pfsense arayüzünden yapıyoruz
yukarıdaki işlemleri yaptığınızda static ip leri loglayacaksınız ancak diyelim ki
ayarlarınız değişti. daha sık log almanız lazım ya da tam tersi daha uzun aralıklarla log almanız lazımbu ayarlarla değişiklik yaptığınızda maalesef ki manuel olarak yaptığımız değişiklikler kayboluyor.
bunlarında otomatiğe alınması için
winscp ile bağlanıp
/usr/local/www klasöründen diag_log_setting.php içinde değişiklik yapmamız gerekiyor
bu dosyayı açıp find komutuyla #!/bin/sh satırını bulalım
#!/bin/sh tarih=`date "+%Y%m%d-%H%M%S"` mkdir /var/mountsamba cd /var/mountsamba awk -f /sbin/dhcptibduzenle.sh < /var/dhcpd/var/db/dhcpd.leases > ./dhcplog-\$tarih.txt /usr/local/bin/smbclient \\\\\\\\{$_POST['smbtibyedekip']}\\\\{$_POST['smbtibyedekpaylas']} -U {$_POST['smbtibyedekkullanici']}%"{$_POST['smbtibyedeksifre']}" -W {$_POST['smbtibyedekdomain']} -N -c "prompt; put dhcplog-\$tarih.txt" logger "Windows paylasımına dosya kopyalandı." cd .. rm -rf /var/mountsamba
bu kodun devamına boşluk vererek aşağıdaki kodu yapıştırıyoruz
#!/bin/sh tarih=`date "+%Y%m%d-%H%M%S"` mkdir /var/mountsamba cd /var/mountsamba awk -f /sbin/statikip.sh < /var/dhcpd/etc/dhcpd.conf > ./statiklog-\$tarih.txt /usr/local/bin/smbclient \\\\\\\\{$_POST['smbtibyedekip']}\\\\{$_POST['smbtibyedekpaylas']} -U {$_POST['smbtibyedekkullanici']}%"{$_POST['smbtibyedeksifre']}" -W {$_POST['smbtibyedekdomain']} -N -c "prompt; put statiklog-\$tarih.txt" logger "Windows paylasımına dosya kopyalandı." cd .. rm -rf /var/mountsamba
artık yapacağımız her değişiklikten statiklog ayarlarımız dosya içine otomatik kaydolacaktır :D
herkese iyi çalışmalar -
**Kardeş ellerine sağlık. müsait olduğum en kısa sürede uygulama yapacağım.
Emeği geçen arkadaşlara teşekkürler…**
-
Merhaba,
Birkaç deneme yaptım ve sonuçlarını paylaşmak, katkıda bulunmak istedim.
DHCP ip dağıtımı aktif iken statik olarak tanımlı (mac/ip eşleşme kayıtlı) ise conf dosyasından gerekli değerleri başarılı bir şekilde alıyor. Fakat bazı durumlar var ki bunları göz ardı etmemek lazım diye düşünüyorum (en azından DHCP kullanımı için önemli). Eğer DHCP durdurup daha sonra da MAC/IP eşleşmesinde herhangi bir yeni kayıt ekleme/silme/düzenleme yapılırsa bu dhcpd.conf'a yansımadığı için loglara da düşmemiş oluyor. Bu durumu kullanıcıların dikkate alması lazım çünkü sistemin çalışma mantığı bu. Tekrar DHCP aktif ettiğiniz de son kayıt ekleme/silme/düzemleme işlemlerini dhcpd.conf'a yazıldığı için de aktif oluyor.
Yazarken aklıma gelen bir durumu oluşturabiliriz o da şudur, eğer çalışan process'ler içerisinde dhcpd var ise logların alınmasının sağlanması yukarıdaki durumun karışıklığını önleyebilir. Şunu kullanabiliriz (denendi):
#!/bin/sh SERVIS='sbin/dhcpd' TARIH=`date "+%Y%m%d-%H%M%S"` if ps ax | grep -v grep | grep $SERVIS > /dev/null then echo "$SERVIS calisiyor, loglama yapalim!" awk -f /sbin/statikip.sh < /var/dhcpd/etc/dhcpd.conf > ./staticlog-$TARIH.txt else echo "$SERVIS calismiyor, loglamaya gerek yok!" fi
bunu dhcplistcronsmb.sh içerisine eklerseniz DHCP aktif ise loglama yapar, değilse yapmaz..
-
Ayrıca ikinci bir dhcp log dosyası oluşmasını istemiyorsanız mevcut dhcplistcronsmb.sh dosyanızın içerisin de
awk -f /sbin/dhcptibduzenle.sh < /var/dhcpd/var/db/dhcpd.leases > ./dhcplog-$tarih.txt ile başlayan satırın hemen altına aşağıdaki kodu eklemeniz yeterli:awk -f /sbin/statikip.sh < /var/dhcpd/etc/dhcpd.conf >> ./dhcplog-$tarih.txt
Bu sayede tek log dosyası içerisinde iki farklı ip kaydını da tutabilirsiniz.
NOT: dhcplistcronsmb.sh dosyası diag_log_setting.php tarafından oluşturulmaktadır, ayarlarda değişiklik yapıldığında dosya yeniden oluşturulur. Dolayısı ile diag_log_setting.php'de dhcplistcronsmb.sh'nin oluşturulduğu satırları bularak orada ilgili satıra (yukarıda açıklandığı satıra) eklemeniz daha sağlıklı olacaktır.
Saygılarımla.
-
@AydinY:
DHCP ip dağıtımı aktif iken statik olarak tanımlı (mac/ip eşleşme kayıtlı) ise conf dosyasından gerekli değerleri başarılı bir şekilde alıyor. Fakat bazı durumlar var ki bunları göz ardı etmemek lazım diye düşünüyorum (en azından DHCP kullanımı için önemli). Eğer DHCP durdurup daha sonra da MAC/IP eşleşmesinde herhangi bir yeni kayıt ekleme/silme/düzenleme yapılırsa bu dhcpd.conf'a yansımadığı için loglara da düşmemiş oluyor. Bu durumu kullanıcıların dikkate alması lazım çünkü sistemin çalışma mantığı bu. Tekrar DHCP aktif ettiğiniz de son kayıt ekleme/silme/düzemleme işlemlerini dhcpd.conf'a yazıldığı için de aktif oluyor.
Katkıların için çok teşekkürler bence üzerinde durulması gereken konu ama pek deneyen olmamış sanırım…
forumlarda inceleme yaptığımda herkesin yazdığı şuydu keşke pfsense statik ip'leride tutabilseydi :)alıntı yaptığın kısımda ne demek istediğini tam anlayamadım.
dhcp kapalıykende conf dosyasından verileri almaya devam ediyor gibisinden bişi demek istedin sanırım.. biraz daha açıklarsan sevinirim..
statik ve dinamik loggların hepsini tek dosyaya almışsın gayet başarılı çalışma ama iç yapıya göre değişkenlik gösterebilir..
statik ip log dosyasını ben kendi çalışanlarımızın ip lerini mac bind tanımladığım için ayrı tuttum
dhcp listteki de misafir kullanıcıların dhcp logglarıdır..
ihtiyaca göre ayarlanabilir tabi ki katkıların için çok teşekkürler
-
bunun ftp kuralınıda sizden rica etsem :) mantığı kavradığım ama ne yazarsam yazayım hata dönüyor
-
özelden yazarsan yardımcı olurum
sh ve php dosyaları konamıyor maalesef