gurcanozturk.com

başka türlü bir şey benim istediğim

NAGIOS LDAP/Windows Active Directory kimlik doğrulaması

NAGIOS web arayüzünü kullanıcılara da açacaksanız, her kullanıcıya web parolası oluşturmak zorunda kalacaksınız. Eğer sisteminizi bir LDAP ya da Windows Active Directory hizmeti kullanıyorsanız bu servisleri kullanarak kimlik doğrulaması yapabilirsiniz. Aşağıdaki örnek Debian üzerinde Apache 2.2.3 ve Microsoft Windows 2008 Active Directory ile çalışıyor.

- Apache sunucunuzunun LDAP modüllerinin yüklenmiş olduğunu kontrol edin.

arcadia ~# httpd -M
Loaded Modules:

ldap_module (shared)
authnz_ldap_module (shared)

Daha sonra NAGIOS için kullandığınız VirtualHost yapılandırma dosyasındaki Directory ayarlarını aşağıdakine benzer şekilde değiştirin.


Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL “ldap://localdc.arcadia.org:3268/OU=ADMINISTRATORS,DC=arcadia,DC=org?sAMAccountName?sub?(objectClass=*)”
AuthLDAPBindDN “CN=NAGIOS USER,OU=ADMINISTRATORS,DC=arcadia,DC=org”
AuthLDAPBindPassword NAGIOS_USER_PASSWORD
AuthLDAPGroupAttribute memberOf
AuthLDAPGroupAttributeIsDN off
AuthName “Nagios Web Access”
AuthType Basic
Require ldap-user user1 user2 user3

Apache servisini yeniden başlatın, NAGIOS web ekranına logon olmayı deneyin ve apache hata loglarını inceleyin.

mySQL destekli Bind kurulumu

BIND, IT dünyasında en çok kullanılan DNS sunucu ama yapılandırması ve sadece CLI ile yönetilebiliyor olması bazen sinir bozucu olabiliyor :) Bu amaçla Bind’i mySQL destekli kullanıyoruz. İşte Ubuntu sunucuya nasıl kurulduğu ve yapılandırıldığı.

Öncelikle, Ubuntu ile gelen default bind9 mysql destekli gelmiyor bu yüzden biz kaynak koddan derleyerek kullanacağız.
Read the rest of this entry »

Zmanda ile mySQL veritabanı yedekleme

mySQL veritabanını yedeklemek için son günlerde zManda kullanmaya başladım. Oldukça hızlı ve başarılı şekilde full ve incremental yedekleme yapabiliyor olması hoşuma gitti. Böylece istediğiniz gün ve saate geri dönebiliyorsunuz. Kurması ve çalıştırması oldukça kolay. Dokümanda zManda mySQL backup Debian tabanlı sistemler için anlatılmıştır.

Read the rest of this entry »

Linux’ta 802.1x ile wireless baglanti

Uzun zamandir, sadece internet amacli olarak Slackware tabanli CD/USB uzerinden calisan bir dagitim olan SLAX (http://slax.org) dagitimini kullaniyorum. Evdeki wireless WPA-TKIP kullaniyorken isyerinde Windows AD uzerinden 802.1x ile yetkilendirilen WPA2 tabanli bir wireless sistem kullaniyoruz. Slax uzerinde de GUI tabanli wireless baglanti yardimci programlari var olmasina ragmen ben konsol uzerinden “wpa_supplicant” kullanmayi seviyorum :) Asagida WPA2 802.1x networkune baglanti icin ayarlari bulabilirsiniz.

Kullanici adi / Parola girilerek (PEAP) calisan WPA-TKIP 802.1x kablosuz ag icin ornek wpa_supplicant.conf yapilandirma dosyasi:

network = {
sid=”MYWIRELESS”
key_mgmt=WPA-EAP
pairwise=TKIP
group=TKIP
eap=PEAP
identity=”user@domain”
password=”domain_password”
ca_cert=”/etc/cert/ca.pem”
phase1=”peapver=0″
phase2=”MSCHAPV2″
}

Client ve Server sertifikasi ile (EAP-TLS) calisan WPA2 802.1x kablosuz ag icin ornek wpa_supplicant.conf yapilandirma dosyasi:

network = {
ssid=”MYWIRELESS”
key_mgmt=WPA-EAP
pairwise=CCMP
group=CCMP
eap=TLS
ca_cert=”/etc/Crete/ca.pem”
private_key=”/etc/cert/user.p12″
private_key_passwd=”PKCS#12 password”
}

Kullanilacak komut :

wpa_supplicant -B -Dwext -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf

-B : Arkaplanda daemon olarak calistirma
-i : Wireless interface
-c : Yapilandirma dosyasinin yeri

Not: Dokumani Turkce karakter kullanarak yazmaya usendim :)

Mac OS X Snow Leopard üzerinde MRTG kurulumu

Evde kullandığım ADSL hattının bandwidth durumunu Mac OS X sunucu ile izleyebilmek ve arşivlemek için linux sunucularda da kullandığım MRTG dışında daha iyi bir program tanımıyorum :) Buyrun kuruluma.

Kurulum için gerekli olan programlar ;

- Apple Developer Tools (Xcode) : Mac OS X Snow Leopard Install DVD içindeki “Optional Installs” dizini içinde .mpkg dosyası olarak bulabilirsiniz.
- MRTG
- GD Library
- PNG Library

cd ~/Desktop/
mkdir build-mrtg2
cd build-mrtg2

LibPNG kurulumu :

curl -O http://sourceforge.net/projects/libpng/files/libpng15/1.5.4/libpng-1.5.4.tar.bz2/download
tar -xjf libpng-1.5.4.tar.bz2
pushd libpng-1.5.4
./configure
make check
sudo make install
popd

LibGD kurulumu :

curl -O http://www.chipsnbytes.net/category/gd-2-0-35-tar-gz
tar -xzf gd-2.0.35.tar.gz
pushd gd-2.0.35
./configure –without-freetype –without-jpeg –without-fontconfig
make check
sudo make install
popd

MRTG kurulumu :

curl -O http://oss.oetiker.ch/mrtg/pub/mrtg-2.17.2.tar.gz
tar -xzf mrtg-2.17.2.tar.gz
pushd mrtg-2.17.2
./configure –prefix=/usr/local/mrtg-2
make
sudo make install
popd

Sıra geldi MRTG ayarlarına;

MRTG için bir home dizin oluşturun

mkdir /Library/WebServer/Documents/mrtg

MRTG yapılandırma dosyaları için bir dizin oluşturun.

mkdir -p /Library/WebServer/mrtg/cfg

cfgmaker ile ADSL router için bir MRTG yapılandırma dosyası oluşturun

/usr/local/mrtg-2/bin/cfgmaker \
–global ‘WorkDir: /Library/WebServer/Documents/mrtg’ \
–global ‘Options[_]: bits,growright’ \
–output /Library/WebServer/mrtg/cfg/ROUTER.cfg \
–snmp-options=:::::2 \
–ifref=descr \
snmp_community@ROUTER_IP

Not : Oluşan /Library/WebServer/mrtg/cfg/ROUTER.cfg dosyasını text editör ile açıp grafiklerini görmek istediğiniz ethernet interface adreslerinin satırlarının başındaki # işaretlerini kaldırmalısınız.

MRTG için şablon dosyalarını oluşturun ve kopyalayın.

mkdir /Library/WebServer/Documents/mrtg/stats
cp /usr/local/mrtg-2/share/mrtg2/icons/*.png /Library/WebServer/Documents/mrtg/stats/

MRTG grafiklerini update etmek için crontab (/private/etc/crontab) dosyasını düzenleyin ve aşağıdaki satırı ekleyin.
(crontab -e komutuyla yapabilirsiniz.)

0-59/5 * * * * root /usr/local/mrtg-2/bin/mrtg /Library/WebServer/mrtg/cfg/ROUTER.cfg

MRTG’nin ilk olarak dosyaları oluşturması için aşağıdaki komutu 3 kere çalıştırmalısınız.

/usr/local/mrtg-2/bin/mrtg /Library/WebServer/mrtg/cfg/ROUTER.cfg

Artık MRTG için HTML index oluşturabilirsiniz.

/usr/local/mrtg-2/bin/indexmaker \
–output=/Library/WebServer/Documents/mrtg/index.html \
/Library/WebServer/mrtg/cfg/ROUTER.cfg

Artık ADSL routerinizdan ne kadar bandwidth çıktığını grafik olarak görebilirsiniz. Tek yapmanız gereken
http://MacOSX_IP/mrtg/index.html sayfasına girmek.

Mac OS X ile Seri Terminal kullanımı

Siz de benim gibi Mac OS X üzerinde USB seri terminal çevirici kullanacaksanız, kullandığınız usb-seri cihazın üreticisinin insafına kalmışsınız demektir, cünkü bircok üretici sadece Windows driveri veriyor. Şirkette Digitus marka FTDI chip içeren USB-Serial çeviriciler kullanıyoruz. Internette biraz araştırıp üreticinin verdiği Mac OS X driverını kurunca, Mac OS X üzerinde kurulumun çok kolay olduğu anlaşılıyor. Hatta seri terminal emulasyonu icin ek programa da ihtiyaç olmaması harika :)

Cihazı kullanabilmeniz için, öncelikle FTDI Virtual Com Driver dosyasını download edin ve DMG dosyasını kurun. Driverı kurduktan sonra cihazınızı USB portunuza takın ve Terminal (Application/Utilities/Terminal.app) programını çalıştırın.

Terminal programında aşağıdaki komutu vererek USB-serial cihazınızın bağlantı adresini öğrenin.

ls /dev/tty.*

Ekrana çıkan listeden, USB cihazınızın adresini bulun ve seçin. Daha sonra seri bağlantı için aşağıdaki komutu çalıştırın.

screen /dev/tty.[device_address] [datarate]

Örnek ; screen /dev/tty.usbserial-A900aGrR 119200

Not : Screen terminalinden çıkmak için, CTRL-A – CTRL \ tuş kombinasyonunu kullanabilirsiniz.

Eğer benim gibi tembel bir sistem yöneticisi iseniz, mutlaka bu işlemi otomatize etmeye çalışacaksınız :) Nasıl ? Yanıt : AppleScript + osascript + bash

- Öncelikle, Apple Script Editor ‘u çalıştırın. (Leopard’da /Applications/AppleScript/Script Editor, Snow Leopard’da /Applications/Utilities/AppleScript Editor)

- Editöre aşağıdaki kod bloğunu yapıştırıp kendi USB-serial cihazınızın adresine göre değiştirip, “Compile” butonuna tıklayın, daha sonra test için “Run” butonuna tıklayın. Eğer script herhangi bir hata vermeden seri bağlantı kurduysa File menüsünden bir isim (ismi örnek olarak serial verirseniz, scriptiniz serial.scpt olacaktır) vererek scriptinizi kaydedin.

on run argv
tell application “Terminal”
do script with command “screen /dev/tty.usbserial-A900aGrR & item 1 of argv ”
set number of rows of window 1 to 100
set number of columns of window 1 to 80
set background color of window 1 to “black”
set normal text color of window 1 to “green”
set custom title of window 1 to “SerialConsole”
end tell
end run

- Daha sonra aşağıdaki gibi bir bash scripti oluşturun. (Ben ismini usbserial.sh verdim)

if [ "$1" == "" ];
then
echo “”
echo “Baudrate parametresini bos birakamazsiniz”
echo “”
echo “Kullanimi $0
echo “”
exit
else
osascript /path/to/serial.scpt $1
fi

Artik oluşan bash scriptinizi terminalden /path/usbserial.sh şeklinde çalıştırabilirsiniz.

HP Pavillion dv2 üzerinde Mac OS X (iATKOS v7) kurulumu

Hafta içinde şirketin kullanım için verdiği HP Pavillion dv2 (model dv2-1020et) üzerine iAtkos v7 (10.5.7) kurmayı denedim, hiç uğraşmadan ilk seferde kuruldu. Kurulum için seçenekleri yazının sonunda bulabilirsiniz.

Deneyimlerim ;

- Wifi, Bluetooth, Webcam, Trackpad (driver olarak ApplePS2 deneyeceğim) gibi özellikler kurulum sonrasında hiç değişiklik yapmadan çalışıyor. Özellikle ilk kurulum sırasında avatar kısmında webcam çalışınca çok şaşırdım kabul ediyorum :)

- Ses kartı sürücüsünde (VoodooHDA) problem var gibi, sesler cızırtılı çıkıyor.

- SD/MMC kart yuvasını henüz denemedim.

- Ekran çözünürlüğü kurulum sonrasında 1024×768 oldu, QE olmuyor ama CI çalıştı. HDMI output olur mu acep ? :)

- USB sürücüsünü tekrar kontrol etmeli, bazen Kernel Panic veriyor.

Kurulum için iATKOS v7 DVD ile boot ettikten sonra aşağıdaki seçenekleri seçin ve kurulum yapın, bu seçenekler dışında seçim yapmayın.

* iATKOS v7 Main System
* Bootloader -> Chameleon v1
* x86 Patches -> /Extra Directory , DSDT
* Decrypters -> AppleDecrypt
* Kernel -> 9.5.0 Kernel voodoo
* Disabler
* OHR
* Drivers ->
VGA -> ATI -> ATI HD

System ->
SATA -> ATI SATA/IDE

USB

Sound -> Voodoo HDA driver

PS/2 Mouse/Keyboard -> Voodoo PS/2 driver with trackpad plugin

Laptop Battery

ext2fs

NTFS-3G

Network ->
Wired -> Realtek -> Realtek R1000
Wireless -> Broadcomm BCM43xx

Linux üzerinde PPTP VPN kurulumu

Evinizdeki ya da işyerinizdeki networkünüze, bu networkler dışındayken erişmenin en kolay yolu VPN, en ucuz ve baş ağrıtmayan VPN sistemi ise bence linux üzerinde PPTPd ile VPN kurulumu. Bu yazıda VPN sunucu kurmak için Debian üzerinde Poptop pptpd kullanılması ve ayarlanması anlatılacaktır.

Debian NetInstaller kullanarak minimal bir sistem kurulumu yapın. pptpd, ppp, iptables paketlerini kurun. Modeminizden ya da firewall sisteminizden VPN sunucunuza TCP 1723 portunu yönlendirin.

apt-get install ppp pptpd iptables

pptpd kurulduktan sonra ayarlarını yapın. Paketle gelen yapılandırma dosyasını yedeklemek için başka bir isme taşıyın.

mv /etc/pptpd.conf /etc/pptpd.conf.org

Yeni bir yapılandırma dosyası (/etc/pptpd.conf) oluşturun ve içine aşağıdakileri doldurun.

option /etc/ppp/options.pptpd
logwtmp
localip 10.5.3.3 # Sunucunuzun iç network IP adresi
remoteip 10.5.3.241-246 # VPN istemcilere verilecek IP adres aralığı

/etc/ppp/options.pptpd dosyasına iç networke erişiminiz için iç DNS sunucularınızı aşağıdakine benzer şekilde ekleyin.

ms-dns 10.5.1.5
ms-dns 10.6.1.5

Sıra geldi VPN kullanıcıları için kullanıcı adı ve parola tanımlamaya. Bunun için CHAP yetkilendirme mekanizması kullanılacak.

/etc/ppp/chap-secrets dosyasına aşağıdaki gibi bir satır ekleyin.

# Username PPTP-point Password Allowed_IP_Address
gurcan pptpd gurcanin_super_kirilamayacak_guclu_parolasi *

Sunucunun VPN üzerinden gelen paketleri route edebilmesi için kernel IP forwarding özelliği açık olmalı. Açmak için /etc/sysctl.conf dosyasında aşağıdaki satır açık olmalıdır. (Değer 0 ise 1 yapmalısınız, satır yoksa ekleyin, başında # varsa kaldırın.)

net.ipv4.conf.default.forwarding=1

VPN istemciler bağlandıktan sonra /var/log/messages dosyasında aşağıdaki satırları görüyorsanız PPTP VPN sisteminiz çalışıyor demektir.

Jun 11 18:25:07 arcadia pppd[20837]: pppd 2.4.4 started by root, uid 0
Jun 11 18:25:08 arcadia pppd[20837]: Using interface ppp0
Jun 11 18:25:08 arcadia pppd[20837]: Connect: ppp0 <--> /dev/pts/3
Jun 11 18:25:08 arcadia pptpd[20836]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Jun 11 18:25:08 arcadia pppd[20837]: MPPE 128-bit stateless compression enabled
Jun 11 18:25:10 arcadia pppd[20837]: found interface eth0 for proxy arp
Jun 11 18:25:10 arcadia pppd[20837]: local IP address 10.5.3.3
Jun 11 18:25:10 arcadia pppd[20837]: remote IP address 10.5.3.241

Not2 : iptables kuralı yazarak, sunucuya doğru sadece TCP 1723 portunu açın, diğer portlarınızı kapatın.

VMware ESX/ESXi restart sonrası sunucuya bağlanamama problemi

VMware ESX/ESXi sunucunuzu yeniden başlatmanız gerekti, restart ettiniz ama sunucu açıldıktan sonra SSH ile bağlanabildiğiniz halde vSphere Client ile bağlanamıyorsunuz. /var/log/messages veya /var/log/vmware/hostd.log dosyasında aşağıdaki satırları görüyorsanız problemin çözümü oldukça basit.

warning ‘Proxysvc Req01193′– Connection to localhost:8309 failed with error N7Vmacore15SystemExceptionE(Connection refused).

Çözüm ; DNS sunucu ayarlamışsanız bu ayarı kaldırın. Bunun için ESX/ESXi sunucuya SSH ile bağlanın (ESXi sunucuya SSH ile bağlanabilmek için “Remote Tech Mode” aktif edilmiş olmalıdır) , DNS ayarlarını kaldırın.
(“vi /etc/resolv.conf” komutuyla belirtilen dosyayı düzenleyerek nameserver satırlarının başına # karakteri ekleyerek dosyayı kaydedin.)

DNS ayarlarını kaldırdıktan sonra sunucunuzu tekrar yeniden başlatın, artık vSphere Client ile bağlanabilirsiniz.

mySQL ‘de “ERROR 1201 (HY000): Could not initialize master info structure” hatası

Master-Slave olarak ayarladığınız mySQL replication işleminin durduğunu farkettiniz, tekrar başlatmak için “start slave” komutunu verdiniz ancak aldğınız hata “ERROR 1201 (HY000): Could not initialize master info structure”. Ne yapmalısınız?

Bu sorun benim başıma slave sunucu restart olduktan sonra geldi. mySQL otomatik olarak replication işlemini başlatamamış. Sorunun çözümü basit. mySQL’e root olarak bağlanın.

~ # mysql -h hostname -u root -ppassword
mysql> stop slave ; reset slave;
mysql> change master to master_host=’master-mysql.domain.local’, master_user=’replica’, master_password=’PASSWORD’, master_log_file=’mysql-bin.00010001′, master_log_pos=10637371;

mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master-mysql.domain.local
Master_User: replica
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.00010001
Read_Master_Log_Pos: 10637371
Relay_Log_File: mysqld-relay-bin.000001
Relay_Log_Pos: 21204900
Relay_Master_Log_File: mysql-bin.00010001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 10637371
Relay_Log_Space: 208190798
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 21
1 row in set (0.00 sec)
mysql>