özgür dünya

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

Samba DC 4.9.5 Kurulumu

SAMBA DC, Windows Aktif Dizin'in oldukça önemli bir alternatifi olarak karşımıza çıkmaktadır. Bu konuda çok fazla detay bilgi olmasına rağmen bu yazıda temel seviyede bir SAMBA DC kurulumu yapacağız. Windows AD ile güven ilişkisi kurma yöntemi de son paragrafta gösterilecektir.

Öncelikle sistemi Ubuntu 18.04 Sunucu üzerinde yazdığımı belirtmem lazım. Statik bir IP belirledikten sonra aşağıdaki adımlara geçmenizde yarar var. Eğer Windows AD ile güven ilişkisi kuracaksanız ağ ayarlarına aynı DNS kaydını da eklemeniz gerekmektedir.

İlk olarak derleyerek güncel sürüm kullanımı uygulaması yapacağız. Öncelikle sistemimizi güncelleyip, bağımlılıkları yüklemeniz gerekmektedir.
apt install -y libreadline-dev git build-essential libattr1-dev libblkid-dev libpam0g-dev autoconf gdb
apt install -y python-dev python-dnspython libacl1-dev pkg-config libpopt-dev libldap2-dev libcups2-dev
apt install -y dnsutils acl attr libbsd-dev docbook-xsl libgnutls28-dev
apt install -y liblmdb-dev lmdb-utils libjansson-dev libgpgme11-dev libarchive-dev 
Daha sonra şuan için güncel 4.9.x sürümlerinden 4.9.5 indirilecektir.
cd /usr/src
get_samba4=https://download.samba.org/pub/samba/stable/samba-4.9.5.tar.gz
wget -c ${get_samba4}
tar xvfz $(basename ${get_samba4})
cd $(basename ${get_samba4}|sed "s/.tar.gz//")
Bu adımdan sonra kaynak kodu ikili sisteme çevrilecektir:
./configure --with-ads --with-shared-modules=idmap_ad --enable-debug --enable-selftest --with-systemd --prefix=/opt/samba4
make
make install
Ve servis dosyası hazırlanır:
echo '[Unit]
Description=Samba4 AD DC Daemon
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/opt/samba4/var/run/samba.pid
LimitNOFILE=16384
EnvironmentFile=-/etc/sysconfig/samba4
ExecStart=/opt/samba4/sbin/samba $SAMBAOPTIONS
ExecReload=/usr/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target' > /etc/systemd/system/samba4.service
Komutların çalıştırılabilmesi için çalıştırılabilir ayarlanması gerekiyor:
echo 'export PATH=$PATH:/opt/samba4/bin:/opt/samba4/sbin' >> /etc/profile
echo 'export PATH=$PATH:/opt/samba4/bin:/opt/samba4/sbin' >> ~/.bashrc
source /etc/profile
Bu adımdan sonra SAMBA DC temel gereksinimleri kurulu olup etki alanı eklenmesi gerekliliği bulunmaktadır. 
1. Sıfırdan bir etki alanı eklemek için:
samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=ACIKLAB.NET --domain=ACIKLAB --adminpass=AcikLab01
systemctl daemon-reload
systemctl enable samba4.service
systemctl start samba4.service
2. Eğer var olan bir Windows AD sunucu ile güven ilişkisi kurulacaksa krb5-user paketi eklendikten sonra:

/etc/krb5.conf içinde aşağıdaki satırların olması:
[libdefaults]
    dns_lookup_realm = false
    dns_lookup_kdc = true
    default_realm = WIN.LAB
Yetkili kullanıcı için bilet alınır ve var olan domaine giriş yapılarak güven ilişkisi kurulur:
kinit administrator
samba-tool domain join win.lab DC -U"WIN\administrator" --dns-backend=SAMBA_INTERNAL

Çıktının sonunda aşağıdaki satırı görüyorsanız başarı ile sonuçlandırmış olacaksınız:
Joined domain WIN.LAB (SID S-1-5-21-469703510-2364959079-1506205053) as a DC


Ubuntu 18.04′te Statik IP

Ubuntu 18.04 ile birlikte sunucunuzda IP adresinizi kalıcı yapmak için gereken araç değiştiği için bir nebze sorun yaşanmakta olduğunu görmekteyiz. Bunun için basit anlamda /etc/netplan/***.yml dosyası içerisini aşağıdaki gibi bir içerik ile doldurmanız gerekmektedir. Ve tabi ilgili içeriği hazırladıktan sonra netplan apply komutunu uygulamanız gerekmektedir.
network:
 version: 2
 renderer: networkd
 ethernets:
   enp3s0:
     addresses:
       - 10.100.1.2/24
     gateway4: 10.100.1.1
     nameservers:
         search: [acik.lab, pardus.lab]
         addresses: [10.100.1.1, 8.8.8.8]

Daha fazla bilgi için:

Pardus ve Güncel Çekirdek Hakkında

Biliyoruz ki güncel Pardus 17.x, Debian'ın güncel kararlı sürümü olan Debian 9'u temel almakta. Ve Debian da kararlı sürümünde genellikle kullanılan paketlerde kararlı olan fakat daha eski sürümleri kullanmakta. Bir süredir dile getirilen Pardus'un güncel çekirdek versiyonu kullanması talebi de tam olarak burada baş göstermekte. Çekirdek versiyonları genellikle yeni çıkan donanımlara uyumluluk, sürücü destekleri, yazılım uyumlulukları ve yeni donanımlarla birlikte performans kazançlarını doğurmakta. Debian Kararlı sürümü de bu nedenlerden dolayı backport isimli bir depoda kararlı sürüm için güncel çekirdekleri barındırmakta. Bu olaya geçmeden önce güncel dağıtımların kullandıkları çekirdek versiyonlarını yazmak istiyorum.

Fedora 26 : 4.11 *** Fedora 27 : 4.13 *** Fedora 28 : 4.16
Manjoro 17.1.12 : 4.17 *** Manjoro Kararlı : 4.19rc4
Linux Mint 18.3 : 4.10 *** Linux Mint 19 : 4.15
Ubuntu 17.10 : 4.13 *** Ubuntu 18.04 : 4.15
OpenSUSE 15 : 4.12 *** OpenSUSE tumbleweed : 4.18
CentOS 7 : 3.10
Kali Linux 2017.3 : 4.13.10 *** Kali Linux 2018.3 : 4.17
Debian 9 : 4.9 *** Debian 10 : 4.18 *** Debian Kararsız : 4.18
Pardus 17.3 : 4.9

Görüldüğü gibi özellikle sunucu işlerine yakın olan dağıtımlar daha eski ama kararlı çekirdek sürümlerini, son kullanıcıya yakın olan dağıtımlar ise güncel versiyonlarında güncel çekirdek sürümlerini kullanmaktalar.

kernel.org'da yer alan güncel bilgilere göre ise Linux çekirdek 4.9 ve 4.14 şuan için LTS desteğine sahip. 4.18 ise kararlı çekirdek olarak adlandırılmakta.

Bugünün tarihiyle Pardus 17.2'de "uname -a" komutu ile çekirdek versiyonuna baktığımızda "4.9.88" olduğunu görmekteyiz. Bu sürümün resmi olarak güncellemesi için Pardus'un deposunda ilgili paketlerin bulunması gerekiyor fakat şuan için bunu Debian depolarını kullanarak da yapabiliriz. Tabi ki bu süreçte çekirdek ve çekirdek kütüphaneleri kullanacak her uygulama için bir şekilde uyumluluk çalışması yapılması gerekir.

Eğer Debian'ın backport deposunu kullanmak istiyorsanız, öncelikle aşağıdaki komut ile depoyu sisteminize eklemeniz ve depo listelerini güncellemeniz gerekmektedir:
sudo echo "deb http://ftp.debian.org/debian stretch-backports main" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt-get update
Bu adımdan sonra aşağıdaki komut ile güncel olarak hangi linux çekirdek sürümlerinin olduğunu görebiliyoruz:
apt search linux-image
Şuan için bu komut uygulandığında 4.18 sürümünün olduğunu görebiliyoruz. 4.18 kernel.org'a göre kararlı çekirdek sürümü olduğunu tekrar belirtmek isterim. Bu aşamada kararlılığın bozulmaması için aşağıdaki komut ile bir güncelleme yapmamız gerekmektedir. Bu aşama stretch-backports'u daha sonra kullanmazsanız da kararsızlığa yol açabilir.
sudo apt-get -t stretch-backports upgrade
Ve bu adımdan sonra güncel linux çekirdeğini yükleyebiliriz:
sudo apt-get -t stretch-backports install linux-image-4.18.0-0.bpo.1-amd64
Bu işlem bittikten sonra bilgisayarınızı yeniden başlatıp GRUB ekranından 4.18 sürümlü çekirdeği seçerek ilerlemeniz gerekmekte. Ki zaten bu süreçte varsayılan olarak en güncel çekirdek seçili gelecektir.

Yeniden başlatıldıktan sonra artık "uname -a" komutu ile güncel çekirdeği gözlemleyebilirsiniz.

Sistemde mevcut çekirdekleri listelemek için:
dpkg --get-selections|grep linux-image
Herhangi birisini kaldırmak için aşağıdaki komutu yazabilirsiniz
sudo apt-get remove linux-image-4.9.0-6-amd64
Güncel çekirdek ile daha fazla donanım ve yazılım desteğinde çözüme kavuşabilirsiniz.

Kolay gelsin.