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
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
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"
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"
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"
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
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
Ö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}
Top comments (0)