gurcanozturk.com

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

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 :)

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.

Ubuntu 11.04 (Natty Narwhal) ‘de GRUB2 boot sorunu ve GRUB1 ‘e geri dönüş

Önceki gün evdeki bilgisayarıma Ubuntu 11.04 (Natty Narwhal) kurup test edeyim dedim. Kurulum normal bir şekilde tamamlanmasına rağmen bir türlü GRUB2 boot edemedi. (GRUB2′ nin oldukça fazla özelliği var bu arada, ama yapılandırmasını henüz tam çözebilmiş değilim.) Bir çok rescue tool (SuperGrub, SuperGrub2, RescueCD, Hiren’s BootCD vs.) kullanmama rağmen bir türlü beceremedim. Sonunda Ubuntu dokümanlarında reinstall çözümü ararken eski GRUB’ a dönme yöntemini buldum. Benim gibi sorun yaşayanların işine yarayabilir. Yapılması gerekenler aşağıdaki gibi.

- Terminal uygulamasını çalıştırın.
Applications -> Accessories ->Terminal

- GRUB2 dizinlerininin yedeğini alın. (Size kalmış elbette, ama önerilir.)

sudo cp /etc/default/grub /etc/default/grub.old
sudo cp -R /etc/grub.d /etc/grub.d.old
sudo cp -R /boot/grub /boot/grub.old

- GRUB2 ‘yi kaldırın.

sudo apt-get purge grub2 grub-pc

* GRUB2 ‘yi kaldırdığınız için sisteminiz başka bir bootloader kurulana kadar açılmayabilir.

- GRUB1 ‘i kurun.

sudo apt-get install grub

- GRUB1 yapılandırma dosyalarını oluşturun. (menu.lst dosyasının oluşturulması ile ilgili soruya Yes yanıtını verin.)

sudo update-grub

- Ubuntu ‘nun kurulu olduğu disk adresini belirtin.

sudo grub-install /dev/sdX

- Sisteminizi yeniden başlatın.

sudo reboot

SNMP ile Linux sunucunun bandwidth verilerini izlemek

Linux sunucunuzun ne kadar bandwidth kullandığını merak ediyorsanız ve veri alabileceğiniz switch/router sizin kontrolünüzde değilse linux üzerine SNMPd kurarak bu verileri alabilirsiniz. Gerekenler;

1- Iptables ayarları,
2- Gerekli BASH scriptleri,
3- SNMPd kurulması,
4- SNMP testleri

1. IPTABLES ayarları

Bandwitdh verisi en kolay iptables üzerinden alınabileceği için IPtables kurulması ve birkaç kural yapılması gerekiyor. Bunlar; inbound ve outbound trafik için yeni IPtables chain oluşturulması ve isim verilmesi.

# iptables -N inbound_traffic
# iptables -N outbound_traffic
# iptables -I INPUT 1 -j inbound_traffic
# iptables -I OUTPUT 1 -j outbound_traffic

2. Gerekli BASH scriptleri
Daha sonra SNMPd servisi için sistemin IP adreslerini alacak scriptin hazırlanması. Script -g parametresiyle veri alacaktır. -i parametresi ise sadece index içindir.
(/usr/local/bin/traffic_ip.sh)

#!/bin/bash
case “$1″ in
-g)
ifconfig | grep “inet addr” | grep “Bcast:” | awk ‘{print $2}’ | awk -F: ‘{print $2}’
;;

-i)
ipcount=`ifconfig | grep “inet addr” | grep “Bcast:” | awk ‘{print $2}’ | awk -F: ‘{print $2}’ | wc -l`
for i in `seq 1 $ipcount`; do
echo $i;
done
exit $ipcount # OID .1.3.6.1.4.1.2021.49.42.100.1
;;

*)
exit 254
;;
esac

Daha önce oluşturulan iptables chainlerine trafiği oluşturmak için aşağıdaki script kullanılacaktır.
(/usr/local/bin/traffic_gen.sh )

#!/bin/bash

case “$1″ in
-f)
iptables -F inbound_traffic;
iptables -F outbound_traffic;
;;
esac

for ip in `/usr/local/bin/traffic_ip.sh -g`; do
iptables -vnL outbound_traffic | grep $ip || iptables -A outbound_traffic -i ! lo -s $ip;
iptables -vnL inbound_traffic | grep $ip || iptables -A inbound_traffic -o ! lo -d $ip;
done

Daha önce oluşturulan iptables tablolarından trafik verisi okumak için aşağıdaki script kullanılacaktır.

(/usr/local/bin/traffic_get.sh)

#!/bin/bash
[ $1 ] || exit 42;

iptables -vxnL $1_traffic | grep -v Chain | grep -v bytes | awk {‘print $2′}

3. SNMPd kurulması
SNMPd servisini kurup ayarlarını tamamlayın. Debian tabanlı sistemlerde apt-get install snmpd komutu ile kolayca kurulacaktır. Kurulumdan sonra /etc/snmp/snmpd.conf dosyasında aşağıdaki satırları ekleyin. (Aşağıdaki satırlar dosyada bulunması gereken minimum ayarlardır, orjinal dosyayı başka bir isme taşıyıp yeni dosyaya sadece bu satırları yazmanız da yeterli olacaktır.)

com2sec readonly default public
group MyROGroup v1 readonly
group MyROGroup v2c readonly
view all included .1 80
access MyROGroup “” any noauth exact all none none

exec .1.3.6.1.4.1.2021.49 iplist /usr/local/bin/traffic_ip.sh -g
exec .1.3.6.1.4.1.2021.49.42 ipindex /usr/local/bin/traffic_ip.sh -i
exec .1.3.6.1.4.1.2021.50 inbound_traffic /usr/bin/sudo /usr/local/bin/traffic_get.sh inbound
exec .1.3.6.1.4.1.2021.51 outbound_traffic /usr/bin/sudo /usr/local/bin/traffic_get.sh outbound

Yapılandırma dosyasını oluşturduktan sonra SNMPd servisini yeniden başlatmanız gerekir. Bu amaçla “/etc/init.d/snmpd restart” komutunu kullanın.

Debian sistemlerde SNMPd “snmp” kullanıcısı ile çalıştığı için bu kullanıcıya sudo ile çalıştırma yetkisi vermek gerekiyor. Bunun için aşağıdaki satırın /etc/sudoers dosyasına eklenmesi yeterli olacaktır.

snmp ALL = NOPASSWD: /usr/local/bin/traffic_get.sh

4. SNMP testleri
Ayarlar tamamlandığına göre sıra son testlerde;

Gelen trafik bilgisi için ;

snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.50

Giden trafik bilgisi için ;

snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.51

komutlarını verin. Herhangi bir problem yoksa byte olarak o ethernetten geçen trafikleri görebilirsiniz.

Not : SNMPd servisine dışarıdan erişmek için TCP/UDP 161, UDP 162 portlarını açmayı unutmayın.

Nagios NRPE ile sunucunun zaman kontrolünü yapmak

Linux ya da Windows, production ortamında çalışan tüm sunucuların saatlerinin tek bir saate bağlı olarak çalışması gerekiyor. Bu sebeple NTP (Network Time Protocol) sunucu ve istemleri kullanılmakta. Bilgisayarların işlemcilerinin clock hataları sebebiyle ileri ya da geri kalmalarını engellemek için NTP kullanılsa da, bazı durumlarda sunucu saatinin hatalı kalması normal bir durum. İşte bu zaman hatalarını algılamak ve sistem yöneticilerini konuyla ilgili olarak uyarmak için her zaman ki gibi çok sevdiğim yazılım olan NAGIOS kullandım :) Nasıl mı?
Read the rest of this entry »

Mac OS X ‘de Juniper NSM (Network and Security Manager) GUI kullanmak

Juniper ‘in ISG/SSG serisi firewall, SA serisi SSLVPN cihazlarını yönetmek için kullanılan NSM (Network and Security Manager) yazılımı oldukça iyi bir JAVA tabanlı yazılım. Birden fazla cihazı tek ekranda yönetmek, tüm cihazların özelliklerine ve loglarına tek ekrandan erişebilmek en önemli özelliklerinden biri. Yazılımın tek kötü yanı yönetim için NSM ile birlikte verilen GUI clientin Mac OS X üzerinde native olarak çalışmıyor olması. GUI client yazılımının Windows ve Linux için versiyonları varken Mac OS X için henüz yok. Desteklenir mi o da bilinmez.
Read the rest of this entry »

Ubuntu sunucu versiyonu güncellenmesi

Ubuntu sunucunuzu bir üst release versiyona yükseltmek için aşağıdaki komutları kullanmanız yeterli olacaktır.

* Eğer Ubuntu’nun bir LTS (Long Time Support) versiyonunu kullanıyorsanız, güncellemenin LTS olduğunu belirtmek için öncelikle aşağıdaki işlemi yapmalısınız.

perl -pi -e ‘s/\=normal/\=lts/g’ /etc/update-manager/release-upgrades

Daha sonra aşağıdaki komutları uygulayın.

apt-get update
apt-get install update-manager-core
do-release-upgrade

Internet bağlantınızın hızına göre güncelleme süresi değişebilir.

ESX/ESXi sunucuda guest Linux sunucuya iSCSI ile NetApp’tan RDM disk eklemek

Guest linux sanal sunucunuzun bağlı olduğu storage üzerinde yeterli disk alanı kalmadığını ve networkte bulunan baska bir storage üzerinden iSCSI ile RDM disk kullanmak istediğimizi varsayalim. İlginç bir durum olurdu, benim başıma geldi :)
Neler yapılmalı ?
Read the rest of this entry »

NAGIOS NRPE ile Wowza sunucusunu ve kullanıcı sayısını kontrol etmek

NAGIOS oldukça sevdiğim ve sürekli kullandığım bir network yönetim aracı. Benzerleri sadece SNMP/ICMP sorgulaması yaparken, NAGIOS NRPE (Nagios Remote Plugin Executor) eklentisi sayesinde uzaktaki sunucuda calışan herhangi bir script sonucunu NAGIOS’a girdi olarak kullanabiliyor.

Bu yazıda NAGIOS NRPE eklentisinin Ubuntu 10.04 üzerinde kurulumu anlatılacaktır.
Read the rest of this entry »

Log dosyalarını dolduran SNMPD satırlarını durdurmak

Kullandığımız sunucu ve sistemleri izlemek için NAGIOS kullanıyoruz. NAGIOS birçok aktif cihazın durumunu (RAM, CPU, vb.) izlemek için SNMP protokolunu kullanıyor. Linux üzerinde SNMPD servisi aktif edilerek, sunucunun birçok bilgisi SNMP yoluyla alınabiliyor.
Read the rest of this entry »