pfSense 5651 Kanuna Uygun Log İmzalama

Giriş

Bu blog yazısında tüm kullanıcıların anlayacağı bir şekilde sonuç odaklı sizlere pfsense 2.4.2 sürümü üzerinde 5651 kanuna uygun nasıl log imzalayabilirsiniz bunu anlatıyor olacağım. Bu blog yazısını adım adım takip ederek 5651 kanuna göre nasıl log imzalarsınız bunu öğreniyor ve uygulamalı olarak yapıyor olacaksınız.

 

5651 Sayılı Kanun

Çok uzun bir konu olduğu için buraya fazla yazmak istemedim, buradaki link adresine tıklayarak bu konu hakkında detaylı bilgi alabilirsiniz.

İnternet toplu kullanım sağlayıcılarının yükümlülükleri

MADDE 4 – (1) İnternet toplu kullanım sağlayıcılarının yükümlülükleri şunlardır;

  1. Konusu suç oluşturan içeriklere erişimi önleyici tedbirleri almak.
  2. İç IP Dağıtım Loglarını elektronik ortamda kendi sistemlerine kaydetmek.

MADDE 15 – (1) Erişim sağlayıcı;

  1. Sağladığı hizmetlere ilişkin olarak, Başkanlığın Kanunla verilen görevlerini yerine getirebilmesi için; erişim sağlayıcı trafik bilgisini bir yıl saklamakla, bu bilgilerin doğruluğunu, bütünlüğünü oluşan verilerin dosya bütünlük değerlerini (hash) zaman damgası ile birlikte muhafaza etmek ve gizliliğini temin etmekle.

Yer sağlayıcının yükümlülükleri MADDE 16 – (1) Yer sağlayıcı;

  1. Yer sağlayıcı trafik bilgisini altı ay saklamakla, bu bilgilerin doğruluğunu, bütünlüğünü oluşan verilerin dosya bütünlük değerlerini (hash) zaman damgası ile birlikte saklamak ve gizliliğini temin etmekle.

 

 

OpenSSL Log İmzalayıcı

Script dosyalarını bizzat benim hazırlamadığım (https scriptleri hariç) fakat tüm yapılandırmaları, bunların bir araya getirilmesi ve anlatımı bana aittir. Hali hazırda ayarlamış olduğum openssl sertifikaları vb. ayarları ile birlikte 5651 kanuna göre imzalama yapmak istemezseniz, bu yazının en alt satırında yardım almış olduğum kişinin blog sayfasındaki adımları takip ederek 5651 sizde yapabilirsiniz.

Hazırlamış olduğum 5651 dosyasını benim google driver hesabım üzerinden güvenli bir şekilde indirebilirsiniz. Lütfen aşağıdaki adresten başka bir yerden indirmemeye dikkat ediniz!!!

Dosya : 5651.tar.gz

 

pfSense Yapılacak İşlemler

Direkt olarak 5651 konusuna geçmeden önce, pfsense üzerinde yapmamız gereken bazı yapılandırma ayarları var. Hazırlamış olduğum 5651 dosyası içindeki script dosyaları ile birlikte openssl ile Squid ve Dhcp adlı iki farklı servisin log dosyalarını imzalıyoruz. 5651 için bu iki servisin log dosyalarını imzalamamız yeterli oluyor. Tabi siz isterseniz aynı script dosyasını oluşturup farklı bir servisin log dosyasınıda imzalayabilirsiniz.

Dediğim gibi bu iki servisin log dosyasını imzalayıp sakladığımız için, bu iki servisi pfsense üzerinde kurmamız ve çalıştırıyor olmamız gerekiyor.

Önceden yazmış olduğum Squid ve SquidGuard paketlerinin kurulumu ile ilgili blog yazısına aşağıdaki link üzerinden ulaşabilirsiniz. Özellikle squid bölümündeki tüm ayarları adım adım doğru yaptığınızdan emin olunuz lütfen. ( Squid resmindeki “Enable Access Logging” seçeneğini aktif ediniz!!)

Link adresi için tıklayınız.

 

Yine önceden yazmış olduğum DHCP sunucu yapılandırması ile ilgili blog yazısına aşağıdaki link üzerinden ulaşabilirsiniz. DHCP sunucusu çalışıyor, kullanıcılar pfSense cihazının dhcp sunucusunu kullanarak TCP/IP bilgilerini alması gerekiyor ‘ki imzalama yapalım.

Link adresi için tıklayınız.

 

Bir sonraki adım ise pfSense üzerinde SSH servisini aktif etmek. Ana menüde System > Advanced sekmesine giriyoruz, orta bölümde bulunan SSH özelliğini “Enable Secure Shell” seçeneğini seçip ardından en alt satırdan Save butonuna tıklayarak ayarları kaydediyoruz.

 

Son olarak pfsense cihazınızın tarih ve saat ayarlarının doğru olması gerekiyor. Ana menüde System > General Setup sekmesine giriyoruz, orta bölümde bulunan Timezone bölümünde “Europe/İstanbul” seçeneğini seçip en alt satırdan Save butonuna tıklayarak ayarları kaydediyoruz.

 

pfSense üzerindeki yapılacak adımlar şimdilik bu kadar, gelin birlikte 5651 yapılandırmasını nasıl yaparız buna bakalım.

 

pfSense 5651 Yapılandırması

Bu başlık altında pfSense üzerinde 5651 yapılandırması için aşağıdaki adımları birlikte uyguluyor olacağız.

Herşeyden önce şunu bilmenizi istiyorum, benim imzaladığım log dosyalarının yolu ve https için yöntem aşağıdaki gibidir.

Dhcp Kiralar : /var/dhcpd/var/db/dhcpd.leases

Dhcp Log : /var/log/dhcpd.log

Squid (Http) : /var/squid/logs/access.log

Https : Tcpdump ile trafik dinlemek ve imzalamak.

 

Bilgisayarımıza indirmiş olduğumuz 5651.tar.gz dosyasını scp aracını kullanarak pfsense ‘in kök “/” dizinine gönderiyoruz. Dosyayı göndermek için filezilla vb. araçlar kullanılabilir.

ucribrahim# scp /Desktop/5651.tar.gz [email protected]_ip_adresi:/
 
Password for [email protected]:
5651.tar.gz                      100%   15KB   8.3MB/s   00:00

Daha sonra ssh ile pfsense cihazına bağlanıyoruz.

ucribrahim# ssh [email protected]_ip_adresi

Bağlantı kurduktan sonra, kök dizin içerisindeki 5651.tar.gz dosyasını aşağıdaki komutu kullanarak açıyoruz.

pfsense# tar xvfz /5651.tar.gz -C /
 
x CA/
x CA/private/
x CA/newcerts/
x CA/cacert.pem.old
x CA/cacert.pem
x CA/serial.old
x CA/serial
x CA/index.txt.old
x CA/index.txt
x CA/index.txt.attr
x CA/tsacert.pem
x CA/tsaserial
x CA/newcerts/011E.pem
x CA/private/cakey.pem.old
x CA/private/cakey.pem
x CA/private/tsakey.pem
x sertifikalar/
x sertifikalar/privkey.pem
x sertifikalar/cacert.pem
x sertifikalar/tsakey.pem
x sertifikalar/tsareq.csr
x sertifikalar/tsacert.pem
x usr/
x usr/local/
x usr/local/ssl/
x usr/local/ssl/imzalama/
x usr/local/ssl/imzalama/dhcp-kiralar-imzalama.sh
x usr/local/ssl/imzalama/dhcp-log-imzalama.sh
x usr/local/ssl/imzalama/https-servis-takip.sh
x usr/local/ssl/imzalama/https-trafik-dinleme.sh
x usr/local/ssl/imzalama/https-trafik-duzenleme.sh
x usr/local/ssl/imzalama/https-trafik-imzalama.sh
x usr/local/ssl/imzalama/openssl.cnf
x usr/local/ssl/imzalama/squid-access-imzalama.sh
x usr/local/ssl/imzalama/https-servis.sh

Yukarıdaki çıktıda gördüğünüz gibi 8 adet farklı işleri yapmak için script dosyası bulunmakta. Bu dosyaların içerisini görebilir ve isterseniz düzenleyebilirsiniz, tabi ne yaptığınızı biliyorsanız.

pfsense# cd /usr/local/ssl/imzalama
 
pfsense#/usr/local/ssl/imzalama: ls -lh
-rwxrwxrwx  1 root  wheel   3.1K Jan  4 12:29 dhcp-kiralar-imzalama.sh
-rwxrwxrwx  1 root  wheel   3.1K Jan  4 12:29 dhcp-log-imzalama.sh
-rwxrwxrwx  1 root  wheel   197B Feb  3 11:58 https-servis-takip.sh
-rwxrwxrwx  1 root  wheel   168B Feb  3 09:51 https-servis.sh
-rwxrwxrwx  1 root  wheel   148B Feb  3 09:59 https-trafik-dinleme.sh
-rwxrwxrwx  1 root  wheel   173B Feb  3 10:00 https-trafik-duzenleme.sh
-rwxrwxrwx  1 root  wheel   3.1K Feb  3 13:06 https-trafik-imzalama.sh
-rw-r--r--  1 root  wheel    11K Jan  4 12:29 openssl.cnf
-rwxrwxrwx  1 root  wheel   3.1K Jan  4 12:29 squid-access-imzalama.sh

İlk önce elle imzalama yapalım, bakalım bu script dosyaları çalışıyormu ve imzalama doğru yapıyormu test edelim.

pfsense# sh /usr/local/ssl/imzalama/dhcp-kiralar-imzalama.sh
 
Using configuration from /usr/local/ssl/imzalama/openssl.cnf
Response has been generated.
Dogrulama tamam.
a dhcpd.leases
a dhcpd.leases.der
a dhcpd.leases.tsq
 
pfsense# sh /usr/local/ssl/imzalama/dhcp-log-imzalama.sh
 
Using configuration from /usr/local/ssl/imzalama/openssl.cnf
Response has been generated.
Dogrulama tamam.
a dhcpd.log
a dhcpd.log.der
a dhcpd.log.tsq
 
pfsense# sh /usr/local/ssl/imzalama/squid-access-imzalama.sh
 
Using configuration from /usr/local/ssl/imzalama/openssl.cnf
Response has been generated.
Dogrulama tamam.
a access.log
a access.log.der
a access.log.tsq

Yukarıdaki çıktıda görüldüğü gibi başarılı bir şekilde openssl ile imzalama yapıyor ve doğruluyor. Şuan Dhcp ve Squid adlı iki farklı servisin loglarını imzaladık ve doğruladık. Şimdi ise HTTPS trafiğini dinlemek ve imzalamak için yapılandırmalar yapıyor olacağız.

Aşağıdaki dosyası favori editörünüz ile editleyiniz ve hangi ağ arabirimin https(443) trafiğini dinlemek ve imzalamak istiyorsanız o ilgili ağ arabiriminin bağlı olduğu ağ kartının numarasını yazıyorsunuz. 

NOT: HTTPS trafiğini dinleme ve imzalama yapmak istiyorsanız bu ayarı yapmanız gerekiyor!

Örneğin benim sahip olduğum arabirimler ve bağlı oldukları ethernet kartlarının numaraları. Ben em1 adlı yani LAN ağını dinleyeceğim için ilgili ağ kartının numarasını(em1) yazmam gerekiyor.

WAN (wan)       -> em0        -> v4/DHCP4: 192.168.101.162/24
LAN (lan)       -> em1        -> v4: 172.16.16.254/24

Değiştireceğiniz ilgili yer koyu siyah renk ile işaretlenmiştir, ayarları yaptıktan sonra dosyayı kaydedip çıkmayı unutmayınız.

pfsense# nano /usr/local/ssl/imzalama/https-trafik-dinleme.sh
 
#!/bin/sh
tcpdump -nn -tttt -e -i em1 port 443 -q >> /var/log/https.pcap &
sleep 1

İmzalanan başarılı ve başarısız kayıtları aşağıdaki dizin içerisinde bulabilirsiniz. Aşağıda görüldüğü üzere başarılı imzalama yapılmış dosyalar bulunuyor.

Üçüncü komutu kullanarak ilgili arşivlenmiş dosyanın içeriğini okuyabilirsiniz. Aynı zamanda dördüncü komutu kullanarak arşivlenmiş dosyayı açabilirsiniz.

pfsense# cd /var/imzali_kayitlar/
 
pfsense# ls
access.log.20180104-135102.tar.gz
dhcpd.leases.20180104-135007.tar.gz
dhcpd.log.20180104-135018.tar.gz
 
pfsense# tar tf access.log.20180104-135102.tar.gz
access.log
access.log.der
access.log.tsq
 
pfsense# tar xvfz access.log.20180104-135102.tar.gz
access.log
access.log.der
access.log.tsq

Şimdi aklınıza şöyle bir soru gelebilir, kardeş biz her gün gelip ellemi imzalama yapıcaz. Tabiki hayır, bu işin otomatik olarak yapılması için crontab kullanıyor olacağız. Ana menüde System > Package Manager > Available Packages sekmesine girdikten sonra cron paketini kurunuz.

Daha sonra Services > Cron menüsüne giriniz ve yeni bir cron görevi oluşturunuz. Benim eklemiş olduğum cron görevlerinin aynısını sizde ekleyin. 

Cron görevlerini ekledikten sonra aşağıdaki komutu kullanarak cron servisini yeniden başlatınız.

pfsense# service cron onerestart  

 

OpenSSL ile İmzalama Kontrolü

OpenSSL ile imzaladığımız dosyaların eğer içeriği değiştirilirse, openssl ‘in ilgili dosya için imzalama sırasında oluşturduğu TimeStamp ve Hash bilgisi değişecektir ve artık o log dosyası hiçbir işe yaramaz, yani temelde işe yarar fakat polis, savcı, hakim vb. kişiler için dosyanın içeriği değiştirildiği için birşey ifade etmez.

Birlikte imzalanan log dosyalarının doğruluğunu nasıl kontrol edebilir buna bakalım. Aşağıdaki adımları sırasıyla takip ederek doğruluğunu kontrol edebilirsiniz.

pfsense# cd /var/imzali_kayitlar/
 
pfsense#/var/imzali_kayitlar: tar xvfz dhcpd.leases.20180104-143607.tar.gz 
x dhcpd.leases
x dhcpd.leases.der
x dhcpd.leases.tsq
 
pfsense#/var/imzali_kayitlar: openssl ts -verify -data dhcpd.leases -in dhcpd.leases.der -token_in -CAfile /CA/cacert.pem -untrusted /CA/tsacert.pem
 
Verification: OK

Yukarıdaki çıktıda görüldüğü gibi doğrulama sağlandı. Şimdi dhcpd.laeses ve dhcpd.lases.der dosyalarından birisinin içerisine birşeyler yazalım ve değişiklikleri kaydedip çıkalım. Daha sonra yeniden aynı komutu kullanarak doğrulama işlemini yapalım, bakalım doğrulayacakmı.

pfsense#/var/imzali_kayitlar: echo "Özgür Yazılım Ulan" >> dhcpd.leases
 
pfsense#/var/imzali_kayitlar: openssl ts -verify -data dhcpd.leases -in dhcpd.leases.der -token_in -CAfile /CA/cacert.pem -untrusted /CA/tsacert.pem
 
Verification: FAILED

Yukarıdaki çıktıda gördüğünüz gibi doğrulama başarısız oldu, çünkü dosyaların içeriğini değiştirdik.

 

Blog Yazısı Özet

Bu blog yazısında 5651 kanununa uygun nasıl openssl ile log dosyalarını imzalarız bunu öğrendik ve uyguladık. Eğer bir polis, savcı vb. kişi sizden dhcp, squid servislerinin ve https erişim kayıtlarını isterse, openssl ile imzaladığımız .tar.gz uzantılı dosyaları onlara incelemeleri için verebilirsiniz.

Her günün sonunda saat 23:59 ‘da o günün logları otomatik olarak openssl ile imzalanacak ve imzali kayıtlar adlı dizin içerisinde tutulacaktır.

İmzalanan log dosyalarını (.tar.gz) 6 ay ve 2 yıl arasında saklamanızı öneririm.

İmzalanan log dosyalarını 3 veya 5 ay aralıklarla kontrol ediniz, hatali imzalama varmı, dosya boyutları büyükmü, disk kapasitesi doldumu vb. kontrolleri yaparsanız sizin için iyi olur.

Her günün sonunda log dosyaları imzalandığı için o günün logları bir sonraki günün tarihi ile imzalanıyor. Bu bir problem değil, sadece aklınızda bulunsun.

 

5651 Destek

Eğer 5651 veya pfsense ile ilgili destek ihtiyacınız olursa benim ile aşağıdaki mail adresim üzerinden iletişim kurabilirsiniz. Bir sorunuz olursa yorum yazabilir veya mail adresim üzerinden benimle iletişime geçebilirsiniz.

Mail : [email protected]

 

Çağrı Ersen’e çok teşekkürler.

https://www.syslogs.org/openssl-ile-5651-sayili-kanun-geregi-log-imzalamak/

https://www.syslogs.org/openssl-ve-tsa-ile-otomatik-log-imzalayici-shell-script/

 

” Online pfSense Firewall & Router Eğitimi | www.udemy.com/pfsense-training 

Tagged with: , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

three × five =

Archives

Tweets