özgür dünya

Özel ağlar için ayrılmış IP aralıkları

Özellikle kapalı ağlarda kullanılmak üzere, karışıklığa neden olmaması açısından internet'te kullanılmayan IP aralıkları bulunmaktadır. Bu ağ aralıkları aşağıdaki gibi özetlenebilir:
10.0.0.0        -   10.255.255.255  (10/8 prefix)
172.16.0.0      -   172.31.255.255  (172.16/12 prefix)
192.168.0.0     -   192.168.255.255 (192.168/16 prefix)
Özet olarak bu aralıklarda IP adreslerini kullanarak kapalı ağınızda sırası ile 16.777.216, 1.048.576 ve 65.536 adet IP adresini kullanabilirsiniz.

Kaynak: https://tools.ietf.org/html/rfc1918

0'dan bir GNU/Linux Sistem Yöneticisi neleri bilmeli?

Fatih Kadir Akın'ın oldukça güzel hazırlamış olduğu "0'dan bir web developer neleri bilmeli" başlıklı yazıya GNU/Linux Sistem Yöneticisi bakış açısıyla başka bir girdi yapmak istedim. Umarım faydalanan birileri çıkacaktır. Fikir Kaynağı

0'dan bir GNU/Linux Sistem Yöneticisi neleri bilmeli?
* İngilizce okuma?
* GNU/Linux nedir?
* Özgür yazılım ve açık kaynak yazılım nedir?
* Sahipli yazılım nedir?
* İşletim sistemi, Çekirdek ve dağıtım nedir?
* Sistem üzerindeki dizin yapısı nedir?
* Kabuk nedir?
* Masaüstü ortamı nedir?
* Uçbirim komutları nedir?
* Paket yöneticisi nedir?
* Sunucu nedir?
* İstemci nedir?
* Betik programlama dilleri nedir?
* Bash nedir?
* Python nedir?
* Ruby nedir?
* PHP nedir?
* IP nedir?
* Port nedir?
* TCP/IP nedir?
* Ağ yönetimi nedir?
* Sistem üzerinde açık olan portlar nedir?
* Sisteme giriş yapan trafik nedir?
* Sistemden çıkan trafik nedir?
* Güvenlik duvarı nedir?
* firewalld, ufw, nftables ve selinux nedir?
* İki cihaz arası socket bağlantısı kurmak nedir?
* SSH nedir?
* openssh nedir?
* DNS nedir?
* bind nedir?
* DHCP nedir?
* Soket bağlantısı kurmak nedir?
* Linux sistemlerde dosya düzenleme nedir?
* vi ve nano nedir?
* Yapılandırma dosyaları nedir?
* Sistem üzerindeki servisler nedir?
* Servislerin yönetilmesi nedir?
* systemctl nedir?
* Süreç ve süreçlerin yönetilmesi nedir?
* Kütük(log) kaydı nedir?
* Kütük kaydı düzenleme ve inceleme nedir?
* rsyslog nedir?
* elasticsearch, logstash ve kibana nedir?
* POSIX Kullanıcı yönetimi nedir?
* Merkezi kullanıcı yönetimi nedir?
* Dizin servisleri nedir?
* LDAP nedir?
* OpenLDAP nedir?
* SAMBA DC nedir?
* FreeIPA nedir?
* Kimlik yönetimi nedir?
* SSO nedir?
* Kerberos nedir?
* İzin sistemi nedir?
* chmod ve chown nedir?
* ACL nedir?
* getfacl ve setfacl nedir?
* Dosya paylaşım nedir?
* ftp nedir?
* samba ve nfs nedir?
* iSCSI ve GlusterFS nedir?
* Zamanlanmış görevler nedir?
* crontab nedir?
* Yedekleme nedir?
* rsync nedir?
* Yedekleme sunucusu nedir?
* bacula nedir?
* Vekil sunucusu nedir?
* Web teknolojileri nedir? (ayrı bir dala geçmekte)
* Basit bir web sunucu nedir?
* apache ve nginx nedir?
* Veritabanı nedir?
* sqlite nedir?
* mariadb ve postgresql nedir?
* mongodb nedir?
* Sertifika ve ssl nedir?
* Sertifika makamı nedir?
* openxpki ve dogtag nedir?
* VPN nedir?
* openvpn ve openconnect nedir?
* RADIUS nedir?
* freeradius nedir?
* Yük dengeleme ve kümeleme nedir?
* haproxy nedir?
* Sanallaştırma teknolojileri nedir?
* KVM nedir?
* Virtualbox, Proxmox ve Ovirt nedir?
* vagrant ve docker nedir?
* SNMP nedir?
* Zabbix nedir?
* Uzak yapılandırma yönetimi nedir?
* cockpit nedir?
* ansible, chef, saltstack ve puppet nedir?

Firefox ile Kerberos biletine erişmek

İnternet tarayıcısı üzerinde çalışan kimi uygulamalar SSO (tek oturum açma) işleminin uygulanabilmesi için mevcut işletim sisteminde açılmış olan oturumun biletinin kullanılmasına uygun şekilde "Kerberos" ile giriş yapmaktadır. Bu işlemin aktif olabilmesi için Firefox'ta aşağıdaki ayarların yapılması gerekmektedir. Eğer sistem "Windows Authentication veya NTLM" ile giriş yapıyorsa bu işlem geçerli olmayacaktır.

1. Firefox araç çubuğunda about:config sayfasına gidilir.
2. negotiate araması yapılır.
3. network.negotiate-auth.trusted-uris üzerine çift tıklayarak domain ismi girilir (örneğin ACIK.LAB)
4. Tamam'a tıklanır ve Firefox yeniden başlatılır.

Tüm bu işlemlerin geçerli olabilmesi için komut satırında klist komutu ile kerberos bileti alınıp alınmadığı kontrol edilmelidir.

Örnek bir kerberos bileti:
Ticket cache: FILE:/tmp/krb5cc_10537_h6SJDM
Default principal: aakkirman@ACIK.LAB
Valid starting       Expires              Service principal
17-05-2018 15:54:49  18-05-2018 01:54:49  krbtgt/ACIK.LAB
   renew until 18-05-2018 01:54:49

SNMP ile basit izleme

Amacımız bir bilgisayardaki temel bilgilere hızlıca erişmek ise SNMP'yi kullanabiliriz. Genellikle ağ cihazlarının durumlarının kontrolü için kullanılan bu protokol çeşitli "izleme" yöntemlerinde de altyapı olarak kullanılmakta. 

Öncelikle debian tabanlı sistemlerde aşağıdaki paketleri yükleyerek temel seviyede gerekliliğimizi sağlayabiliriz:
apt install -y snmpd snmp
Daha sonra "/etc/snmp/snmpd.conf" dosyamızın bir yedeğini aldıktan sonra ilgili dosyayı aşağıdaki gibi düzenleyebiliriz:
#  IPv4 ve IPv6'da 161 portu üzerinden UDP ile haberleşmekte
agentAddress udp:161,udp6:[::1]:161
#  İstenilen OID'ler
view   all  included   .1.3.6.1.2.1.1
view   all  included   .1.3.6.1.2.1.25.1
#rocommunity public  localhost
#  varsayılan yetki
 rocommunity parolatest  default    -V all
 rocommunity6 parolatest  default   -V all
sysLocation    aciklab
sysContact     alorak <ali@orhun.net>
 #   send SNMPv1  traps
 trapsink     localhost public
#   send SNMPv2c traps
 trap2sink    localhost public
Yapılandırma ayarları düzenledikten sonra servisi yeniden başlatabilirsiniz:
systemctl restart snmpd.service
Aynı bilgisayarda test etmek için:
snmpwalk -c parolatest -v2c -O e 127.0.0.1
Uzaktaki farklı bir bilgisayardan veri alabilmek için: ( snmp paketi yüklü olmalıdır)
snmpget -v 1 -c parolatest 192.168.1.176 .1.3.6.1.2.1.25.1.1.0


CA Kök Sertifikası Ekleme

Bazı durumlarda CA (Certificate Authority - Sertifika Makamı)'nın sertifikaları dağıtabilmesi çok da olası olmadığı durumlar olabilir. Özellikle MS sistemlerde AD CS (Active Directory Certificate Service) ve GPO Güvenlik Politikaları kullanarak "enrollment" (kaydolma) işlemi yapılmaktadır. Linux dünyasında ise benzer çözümler RedHat kurumsal çözümü olarak "DogTag" sertifika sunucusu kullanılabilir. Özellikle FreeIPA içerisinde de bu çözüm bulunmaktadır. certmonger uygulaması ile istemci tarafında sertifikaların alınabilmesi için uygulama yapılabilmektedir. Dogtag uygulamasına alternatif olarak ise; openXPKI ve EJBCA örnek verilebilir.

Bugün ise bu konuların detayına girmeden önce elle bu işlemi nasıl yapabileceğimizin küçük bir örneğini yapacağız. Öncelikle örneğimizi Debian tabanlı sistemlerde uygulayacağımızı belirtmek isterim.

Elimizde "root.cert.pem" adında bir sertifika olduğunu varsayıyoruz. Bu sertifika bir sertifika makamı veya kendinden imzalı yöntemlerle oluşturulmuş olabilir. Aşağıdaki yöntem ile sistem içerisinde wget veya curl komutlarıyla kullanılabilecek kök sertifika eklenmiş olmaktadır:
sudo mkdir /usr/local/share/ca-certificates/extra
sudo cp root.cert.pem /usr/local/share/ca-certificates/extra/root.cert.crt
sudo update-ca-certificates
Fakat Mozilla Firefox, Google Chrome veya Chromium tarayıcılarının kendi sertifika depoları bulunmaktadır. Bu nedenden dolayı onlar için ayrı işlem yapılması gerekiyor. Bu işlem için bir araca da ihtiyacımız var "certutil":
sudo apt install libnss3-tools
Bunun için aşağıdaki betik sistemimizdeki cert8.db (legacy - DBM) ve cert9.db (SQL) dosyalarını bularak bu dosyalara ilgili sertifikayı eklemeyi sağlamakta. Eğer ilgili dosyaların nerede olduğunu biliyorsanız bu işi tek adımda da yapabilirsiniz.
#!/bin/bash
certfile="root.cert.pem"
certname="Kok CA"
for certDB in $(find ~/ -name "cert8.db")
do
    certdir=$(dirname ${certDB});
    certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d dbm:${certdir}
done
for certDB in $(find ~/ -name "cert9.db")
do
    certdir=$(dirname ${certDB});
    certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d sql:${certdir}
done