DEV Community

Ali Orhun Akkirman for Açıklab

Posted on

3 2

Freeradius üzerinde sertifika oluşturulması

Freeradius üzerinde çeşitli kullanım alanlarında sertifika ihtiyacı olabilmektedir. Bu süreç sırasında Sertifika Otoritesi ayarlarının yapılabilmesi için Freeradius'un kendi içerisinde bunun otomatik yapılabilmesini sağlayacak bir uygulama bulunmakta. Belge süresince CentOS 7 ve benzerleri üzerinde örnekler yapacağımı belirtmek isterim.

Sertifika klasörü

CentOS 7 üzerinde freeradius paketi ile kurulum yaptığınızda freeradius ile ilgili ayarların aşağıdaki klasörde oluştuğunu görebilirsiniz:

/etc/raddb
Enter fullscreen mode Exit fullscreen mode

Bu klasörün içerisinde bir çok farklı işleve yarayan dosya ve klasörler bulunmakta. Bunlardan bir tanesi de "certs" klasörü olarak görülebilir. İlgili klasörün içerisinde varsayılan olarak bir çok örnek dosya da bulunmaktadır. Birazdan yapacağımız işlemler için fazlalık olarak belirlediğimiz dosyaları sileceğiz.

cd /etc/raddb/certs
rm -f *.pem *.der *.csr *.crt *.key *.p12 serial* index.txt* dh random
Enter fullscreen mode Exit fullscreen mode

Bu şekilde daha önce örnek olarak oluşturulmuş ve belki de işimize yaramayacak dosyalar silinebilir.

Sertifikaların oluşturulması

Bu klasör içinde 3 önemli yapılandırma dosyası bulunmakta. Bunlar ca.cnf, server.cnf ve client.cnf dosyalarıdır.

Bu dosyalarda aşağıdaki gibi değişiklikler yapabilirsiniz:

ca.cnf dosyası

ca.cnf dosyası adından da anlaşılacağı gibi sertifika otoritesinin ayarlarını sağlamaktadır. Bu kısımda CA bilgileri ve talep oluşturabilmek için gerekli olan parola değerlerinin düzenlenmesi gerekmektedir.

[ req ]
prompt                  = no
distinguished_name      = certificate_authority
default_bits            = 2048
input_password          = birbir
output_password         = birbir
x509_extensions         = v3_ca

[certificate_authority]
countryName             = TR
stateOrProvinceName     = Ankara
localityName            = Cankaya
organizationName        = Aciklab
emailAddress            = ali@aciklab.lab
commonName              = "Aciklab CA"
Enter fullscreen mode Exit fullscreen mode

server.cnf dosyası

server.cnf dosyası da CA'dan oluşturulan sunucu sertifikası diye adlandırılan bir sertifika için gerekli değerleri içermekte.

[ req ]
prompt                  = no
distinguished_name      = server
default_bits            = 2048
input_password          = birbir
output_password         = birbir

[server]
countryName             = TR
stateOrProvinceName     = Ankara
localityName            = Cankaya
organizationName        = Aciklab
emailAddress            = ali@aciklab.lab
commonName              = "Aciklab Radius Server Cert"
Enter fullscreen mode Exit fullscreen mode

client.cnf dosyası

client.cnf dosyası ise bazı durumlarda kullanılmayacak olsa da istemci amaçlı kullanılabilecek ayrı bir sertifika yapılandırma dosyası olarak düşünülebilir ve aşağıdaki gibi düzenlenmesi gerekmektedir.

[ req ]
prompt                  = no
distinguished_name      = client
default_bits            = 2048
input_password          = birbir
output_password         = birbir

[server]
countryName             = TR
stateOrProvinceName     = Ankara
localityName            = Cankaya
organizationName        = Aciklab
emailAddress            = ali@aciklab.lab
commonName              = "Aciklab Client Cert"
Enter fullscreen mode Exit fullscreen mode

Sertifikaların oluşturulması

Yukarıda bahsettiğimiz 3 dosya istenildiği gibi düzenlendikten sonra aynı klasörde bulunan bootstrap dosyası çalıştırılır:

./bootstrap
Enter fullscreen mode Exit fullscreen mode

Bu sayede sistemde bazı anahtarlar ve sertifikalar oluşur. Bunlardan en önemlileri ".pem" dosyalarıdır. Ve bunlardan da ca.pem, server.pem ve client.pem dosyası en çok kullanılacak olanlardır. Bu dosyaların içerisinde hem sertifika hem de anahtar bulunmaktadır.

Ayrıca dh "Diffie-Hellman" adında bir dosya daha bulunmaktadır. Bu dosyaların izinleri çeşitli nedenlerden dolayı 755 olarak apılması gerekebilmektedir. Dolayısıyla aşağıdaki komutla birlikte izinleri düzenlenebilir.

chmod 755 /etc/raddb/certs/*.pem
chmod 755 /etc/raddb/certs/dh
Enter fullscreen mode Exit fullscreen mode

Örnek bir kullanım:

Örnek olarak eap-tls için aşağıdaki gibi paramaterelerle kullanım gerçekleşebilmektedir. Bu da ayrı bir başlık olduğu için detaylandırmıyorum:

    private_key_password = birbir
    private_key_file = ${certdir}/server.pem
    certificate_file = ${certdir}/server.pem
    ca_file = ${cadir}/ca.pem
    dh_file = ${certdir}/dh
    ca_path = ${cadir}
Enter fullscreen mode Exit fullscreen mode

Image of AssemblyAI tool

Transforming Interviews into Publishable Stories with AssemblyAI

Insightview is a modern web application that streamlines the interview workflow for journalists. By leveraging AssemblyAI's LeMUR and Universal-2 technology, it transforms raw interview recordings into structured, actionable content, dramatically reducing the time from recording to publication.

Key Features:
🎥 Audio/video file upload with real-time preview
🗣️ Advanced transcription with speaker identification
⭐ Automatic highlight extraction of key moments
✍️ AI-powered article draft generation
📤 Export interview's subtitles in VTT format

Read full post

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay