25 Temmuz 2012 Çarşamba

Nedi NMS (Network Management Software)


NeDi
NeDi PHP, MySQL, Perl, RRD kullanan ve web arayüzünden çalışan açık kaynak kodlu bir NMS (Network Management Software). Ağ yöneticileri arasında bilinen ve sık kullanılan bir araç değil aslında ama bir ağ yöneticisinin ihtiyaç duyduğu neredeyse bütün araçları bünyesinde toplamış tek kelimeyle mükemmel bir araç.
NeDi Linux ve BSD sistemler üzerinde kurulabiliyor, bunun dışında kur/çalıştır bir BSD sürümü de mevcut. Kurulumu ve yapılandırması linux/BSD kullanıcıları için zor olmamakla birlikte neyin ne işe yaradığını anlamanız zaman alıyor. Geliştirici web sayfasında bir çok bilgiyi paylaşmış ayrıca sorularınızın cevaplarını bulabileceğiniz bir forum da mevcut. http://www.nedi.ch adresinden geliştiricinin web sayfasına ulaşabilirsiniz.
NeDi aynı Cacti gibi aktif cihazlara belirli aralıklarda bağlanıp SNMP bilgilerini çeken ve komut satırından ulaşabileceğiniz neredeyse bütün bilgileri basit bir ara yüzden listeleyen bir araç. Ayrıca SSH/Telnet kullanıcı adı /parola bilgilerini de girerek diğer verilere erişmenizi sağlıyor. Cacti ve Nagios entegrasyonu da mevcut. İlk kurulumda bazı cihazlarınızı tanımayabiliyor ancak .def dosyalarını düzenleyerek tanımasını sağlayabiliyorsunuz.
Neler Yapabilirsiniz.
  1. SNMP bilgilerini girdikten sonra ağı tarayıp cihazları otomatik olarak ekleyebilirsiniz.
  2. Ağ cihazlarını, cihazlar üzerindeki portları, VLAN’ları, vs.yi cihaz üreticilerine, ip adreslerine, MAC adreslerine, seri numaralarına, bulundukları yerlere, üzerilerindeki firmware’lere, VLAN’lara vb. bir çok farklı parametreye göre listeleyebilirsiniz.
  3. Ağ cihazlarının bağlı olduğu diğer ağ cihazlarını (CDP/LLDP kullanarak) listeleyebilirsiniz.
  4. Ağ bağlantısı kullanan tüm cihazları (Node) ip/MAC/interface/vb. bir çok parametreye göre aratabilir, hangi anahtarın hangi portuna bağlı olduğunu listeleyebilirsiniz.
  5. Aktif cihazlarınız üzerindeki yapılandırma dosyalarını yedekleyebilir ve değişiklikleri izleyebilirsiniz.
  6. Topolojiyi çizdirebilirsiniz.
  7. Ağ cihazlarınızın envanterini tutabilirsiniz.
  8. Olay kayıtları oluşturup bunları diğer kullanıcılara aktarabilirsiniz.
  9. Ağ cihazları üzerinde oluşan olaylardan alarmlar oluşturabilirsiniz.
  10. Ağ cihazlarının sağlık durumlarını izleyebilirsiniz.
  11. Ağ cihazlarınızda ki uyarı ve hata loglarını izleyebilirsiniz.
Alıntıdır. Çok güzel anlatmış eklemek istedim.

Kurulumu

Tüm Linux işletim sistemlerinde temelde aynı. Biz Ubuntu üzerinden kurulum yapalım.
Not: Kurulum ile uğraşmak istemeyenler http://www.nedi.ch/download/  adresinde esxi vm veya iso olarak freebsd üzerine hazır kurulmuşu  var. Tak-Çalıştır….

İlk başta işletim sistemi olarak centos tercih ettim. Fakat sitesinde ubuntu için anlatılmış ve İnternetteki diğer centos üzerine kurulum bilgileri çok az ; Centos üzerinde çalıştırmada zorluklar yaşadım.  En rahat Ubuntu Server 12.04.2 LTS üzerinde kurulabildiğimden sizlerede bu yönde kurulum bilgisini aktaracağım. OS kurulumunda minimal şekilde (en boş sadece ssh ilave ettim.)

1.   Gereksinimler.

apt-get update
apt-get upgrade
apt-get install apache2 libapache2-mod-php5 mysql-server libnet-snmp-perl php5-mysql libnet-telnet-cisco-perl php5-snmp php5-gd libalgorithm-diff-perl rrdtool librrds-perl




2.   Download Nedi

mkdir nedi
cd nedi
wget http://www.nedi.ch/pub/nedi-1.0.8.tgz

3.  Sıkıştırılmış arşivden çıkaralım

tar -zxvf nedi-1.0.8.tgz
cd ..

4.   /opt klasörüne taşıyalım ve yetkilendime yapalım.

mv nedi /var/
chgrp www-data /var/nedi/html/log/
chmod 775 /var/nedi/html/log/
chgrp www-data /var/nedi/html/map/
chmod 775 /var/nedi/html/map/

5.   Webserver için link atalım.

ln -s /var/nedi/html/ /var/www/

6.   Ayar dosyası için lik atalım.

sudo ln -s /var/nedi/nedi.conf /etc/nedi.conf

7.   Mysql root şifresi verelim.

(Bende bu kısma gerek kalmadı. ilk kurulumda oluşturmamı istedi)

mysqladmin -u root -p password "YourPasswordGoesHere"

8.   Nedi database oluşturalım.

cd /var/nedi/
./nedi.pl -i

9.   Sorulan soruları cevaplayalım


·         MySQL admin user: root
·         MySQL admin pass: < 7. Adımda oluşturduğumuz şifreyi girelim>

10.                    /var/nedi/nedi.conf dosyasını  inceleyelim.

  • Burda mysql şifremizi görebilirsiniz.Bu şifre 8. adımda otomatik oluşturuyor.
  • SNMP read-only passwords (istersek) girebiliriz. Şart değil. Discovery sırasında kullanıyor.Ama biz tüm cihazların listesini vereceğimiz için gerek yok.
  • telnet usernames and passwords . Yukarıda aynı şartlar geçerli

11.                    /var/nedi/seedlist

192.168.2.1 public
Gibi cihazlarımızın IP Addreslerini ve snmp bilgilerini giriyoruz.

12.                    Webserver (apache2) restart

/etc/init.d/apache2 restart

13.                    Seedlist eğirdiğimiz cihazları taratalım.

cd /var/nedi/
./nedi.pl

 Consol üzerinden taramayı başlatabileceğiz komuttur.
Web Sitesi üzerinden de taramayı başlatabiliriz.

14.                    Web sitemize giriş yapalım.

kullanıcı adı:admin şifre:admin

Bu kısma ileride resimler eklenecektir.(Yada yeni bir yazı olarak Nedi kullanım detayı eklenecektir.)

15.                    Schedule Nedi

Seedliste verdiğimiz cihazları istediğimiz aralıklara taramasını sağlayacağız.
Bunun için önce dosya oluşturalım.
Vi /var/nedi/startnedi.sh
Aşağıdaki metni yapıştıralım
 
#start nedi from crontab. Creates logfiles
opts="-pob"
CMD="./nedi.pl $opts"
LOGPATH="/var/log/nedi"
LOGFILE="$LOGPATH/nedi.log"
LASTRUN="$LOGPATH/lastrun.log"
cd /var/nedi
now=`date +%Y%m%d:%H%M`
echo "#$now start # $CMD" > $LASTRUN
echo "#$now start" >> $LOGFILE
$($CMD >> $LASTRUN)
tail -8 $LASTRUN >> $LOGFILE
now=`date +%Y%m%d:%H%M`
echo "#$now stop" >> $LOGFILE
echo "#$now stop" >> $LASTRUN'


chmod +x /var/nedi/startnedi.sh
sudo mkdir /var/log/nedi
me=`whoami`;sudo chown $me:$me /var/log/nedi

crontab -e
15 0,4,8,12,16,20 * * * /var/nedi/startnedi.sh  # Discover and gather device configurations



22 Temmuz 2012 Pazar

Radius Server kurmak


Merhabalar

Bugün sizlerle Grafik arayüzlü Radius server kurulumu yapacağız.

Yaptığım herşeyi yazma özen göstereceğim.
1.      İşletim sistemi kurulumu.
2.      Radius server olarak freeradius kurulumu.
3.      Freeradius testleri
4.      Daloradius kurulumu(Sql bilgileri kolay bi şekilde girmek için grafik arayüzlü daloradius kuracağız)
5.      Freeradius a sql database i kullanır hale getireceğiz.
6.      Freeradius un sql okuma testeri
7.      Daloradius da logları bakmak


1.        İşletim sistemi kurulumu.

İşletim sistemi tercihi olarak ben ubuntu server kullandım. Centos ile de testlerimi yaptım. Genel hatlarıyla değişen bişey yok.

OS. İndirip sanal makinaya kurdum.
kurulum sırasında  aşağıdakileri aktif ettim.
ssh serveri
Basic server
Lamp serveri

Root kullanıcı karşıma çıkmadı benden yeni kullanıcı istedi
New username: enesmozturk
New User password:123456

Makalemde kullandığım tüm şifreler 123456 olacak
Eğer kurulum sırasında ssh,Lamp,basic unuttuysak
Sudo su
Tasksel
Bu komut bize kurulum ayarlarına götürüyor.
Burdan basic server,ssh server,Lamp server kurulum sırasında seçmediysek seçelim.
ilk olarak LAMP nedir diyorsanız LAMP Linux, Apache, Mysql, Php (Perl,Python) 'nin başharflerinden oluşan bir kısaltmadır.

Kurulum tamamlanınca güncellemek için aşağıdaki 2 komutu verdim.
apt-get update
apt-get upgrade

sonra kapatım snapshotını aldım yedek olsun diye…

2. Radius server olarak freeradius kurulumu.



Açıldıktan sonra
sudo su
şifrenizi girin
Bu komutu vererek root  yetkisini aldım.
Şimdi database olarak mysql kuralım…

apt-get install mysql-server

sizden mysql root şifresi isteyecek
Not: (Lamp kurduysanız hiç bir şey yapmayacak)

apt-get install php5-gd php-pear php-db
apt-get install freeradius freeradius-mysql
apt-get install phpmyadmin
Son verdiğimiz komut ile phpmyadmin hangi webservis ile ilişkendireyim diye soruyor bizde apache2 diyoruz.





3. Freeradius testleri

 
dpkg -l | grep radius
Bu komut ile sistemimizdeki Radius un versiyonu görebiliriz.


Evet Freeradius kuruldu. Test yapalım biraz.
/etc/init.d/freeradius status
/etc/init.d/freeradius stop
netstat -pnl | grep 1812
boş olması lazım.
/etc/init.d/freeradius start
netstat -pnl | grep 1812

udp        0      0 127.0.0.1:18120         0.0.0.0:*                           918/freeradius 
udp        0      0 0.0.0.0:1812            0.0.0.0:*                           918/freeradius 

Yazılarını görüyorsak Radius servisimiz hazır demektir.
radtest komutu ile test yapalım
radtest kullanıcı_adı sifre Radius_server Nas_port güvenlik_sifresi
Kurulumla birlikte test için localhostun güvenlik şifresi testing123 dür.
radtest user password localhost 0 testing123
Sending Access-Request of id 197 to 127.0.0.1 port 1812
        User-Name = "user"
        User-Password = "password"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 0
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=197, length=20

Yazısı karsımıza çıkacaktır. Basit yoldan kullanıcı tanımlıyalım.
vi /etc/freeradius/users
user Cleartext-Password := "password"

en tepeye yazalım bunu.kaydedelim.
/etc/init.d/freeradius restart
radtest user password localhost 0 testing123
ending Access-Request of id 90 to 127.0.0.1 port 1812
        User-Name = "user"
        User-Password = "password"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=90, length=20
Yazacaktır. Bu şifreyi sonra silmeyi unutmayın yoksa güvenlik açığıı olacaktır.
vi /etc/freeradius/clients.conf

client 192.168.0.0/16 {
       secret          = 123456
       shortname       = deneme
}
En tepeye bunu yazasak  192.168.0.0/16 networkundeki tüm NAS (Network-attached storage) 123456 şifresi ile bağlanabilirler.
Bir cihaz bağlayıp gerçek testini yapabilrsiniz.

İlerde sql ile kullanıcı tanımı  yapacağız.

4. Daloradius kurulumu


ihtiyacımız olan tüm servisler kurulmuş oldu. Şimdi daloradius u indirelim .En güncel olanı bulup indiriyoruz. Şuanda en güncel 0,9-9 var.
wget http://garr.dl.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz
dosya indirildi.Sıkıştırılmış dosyayı açalım
tar -zxvf daloradius-0.9-9.tar.gz
mv daloradius-0.9-9 daloradius
dosya ismini düzelttik. Webservis hizmeti vermesi için gerekli yere taşıyalım.
cp daloradius/ /var/www -R
Komut sonundaki -R kopya yapıştırda bozulabiliyor.
chown www-data:www-data /var/www/daloradius -R
Webservis hizmeti için okuma yazma yetkilerini ayarlıyalım.
chmod 644 /var/www/daloradius/library/daloradius.conf.php
chown www-data:www-data /var/log/freeradius -R
chown www-data:www-data /var/log/syslog -R
chown www-data:www-data /var/log/dmesg -R
touch /tmp/daloradius.log

cd /var/www/daloradius/contrib/db/
database ayarlamaya başlıyalım
mysql -u root -p
mysql root şifremiz

mysql> CREATE DATABASE radius;
Query OK, 1 row affected (0.00 sec)

mysql> exit
Bye

mysql -u root -p radius < fr2-mysql-daloradius-and-freeradius.sql
mysql root şifremiz

cd /var/www/daloradius/library/
vi  daloradius.conf.php
Bu komut ile yazı editörü açılır. Aşağıdaki tablo gibi yapmamız lazım. Ben sadece mysql root şifresini girdim.123456.
Vi kullanmayı bilmeyenler için küçük bir hatırlatma ilk açılışta okuma modundadır. Ok (yön ) tuşları ile istediğimiz yere gideriz. İ harfine bastığımızda yazma moduna geçeriz istediğimiz yazıp esc ile tekrar okuma moduna geçeriz.
Kaydetmek için :wr
Çıkmak içim :q!
 
FreeRADIUS 2.X
  • If you are working with FreeRADIUS 2.X (Ubuntu 10.04) then:
 $configValues['FREERADIUS_VERSION'] = '2';
 $configValues['CONFIG_DB_PASS'] = 'password';
 $configValues['CONFIG_DB_TBL_RADUSERGROUP'] = 'radusergroup';


Kurulum bitti;
Browser a IP adresimizi yazalım.
http://your ip address/
It works!  Yazısını göreceğiz yani webserver çalışıyor.
Şimdi Browser a http://your ip address/daloradius yazalım.
 
username: administrator
password: radius

Notice: Güvenlik için ilerde default şifremizi değiştirmeyi unutmayalım.



5. Freeradius a sql database i kullanır hale getireceğiz


Şimdi Freeradius umuzu database  okumasını sağlamayız.

cd /etc/freeradius/
vi  sql.conf

# Connection info:
        server = "localhost"
        #port = 3306
        login = "root"
        password = "123456"
freeradius database oku şifresini vermiş oluyoruz.

vi /etc/freeradius/radiusd.conf

girdiğimizde sonlara
#     $INCLUDE sql.conf
Başındaki # kaldırıyoruz.
$INCLUDE sql.conf


vi /etc/freeradius/sites-available/default

    authorize {
    …
    sql
    …
    }

    accounting {
    …
    sql
    …
    }

    session {
    …
    sql
    …
    }

    post-auth {
    …
    sql
    …
    }

Yukarıda saydığım #sql  Başındaki # kaldırıyoruz. Zaten yukarıda saydığımdan başa #sql yok 4 tane olacak…

Freeradiusa database okuması için gerekli ayarları yaptık şimdi yeniden başlatalım ve database kullanıcı girelim girelim.
 /etc/init.d/freeradius restart
* Stopping FreeRADIUS daemon freeradius
   ...done.
 * Starting FreeRADIUS daemon freeradius
   ...done.

6.        Freeradius un sql okuma testeri

Browser a IP adresimizi yazalım.
http://your ip address/phpmyadmin
Karşımıza resimdeki gibi ekran açılır.
 

Mysql root ve şifresini yazalım.
 
Phpmyadmin hakkında küçük bilgi vereyim. Sistemimizdeki mysql kontrol etmemize olanak sağlayağan küçük ama bi okadar da kullanışlı php temelli databasecilerin kullandığı bir tool.
 
Veritabanları içinde radiusu seçip radcheck tablosuna veri oluşturalım
 
 
 




INSERT INTO `radius`.`radcheck` (`id`, `username`, `attribute`, `op`, `value`) VALUES (NULL, 'deneme', 'Cleartext-Password', ':=', 'deneme');

Yaptığımızda kolay bir şekilde database kullanıcı tanımladık.
/etc/init.d/freeradius restart

radtest deneme deneme localhost 0 testing123
Sending Access-Request of id 166 to 127.0.0.1 port 1812
        User-Name = "deneme"
        User-Password = "deneme"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=166, length=20

Gördüğünüz gibi kullanıcımızı tanımış J))

İsterseniz şimdi bunu Daloradius dan kullancı tanımlıyalım.
 
 

Görüldüğü gibi daloradius da tanımladığımız kullanıcı phpmyadmin degözüküyor.

Not:radtest komutu sadece cleartext-Password şekilde kullanıcıları tanıyabilir
 

7.  WPA / WPA2  wireless ağlarından Windows 7 üzerinden  bağlantı sağlama.

Gerçeği söylemek gerekirse en çok zorlandığım bu bölüm oldu. Çünkü bu bölümü tam olarak anlatan olmamış herkes parça parça anlatmış.

Sertifikaların Hazırlanması

Openssl servisi kurulu olması gerekiyor. Benim sistemimde kurulu geldi :))

Freeradius un kurulumla beraber gelen sertifikalarına bakalım ve onları silelim.
cd /etc/freeradius/certs
ls
ca.pem  dh  server.key  server.pem
rm –R *
find / -name "ca.cnf"
/usr/share/doc/freeradius/examples/certs/ca.cnf

cd /usr/share/doc/freeradius/examples/certs/
ls
bootstrap  ca.cnf  client.cnf  Makefile  README  server.cnf  xpextensions

Sildiğimiz sertifikalar yerine yenisi oluşturacağız. Eğer daha önceden oluşturulmuş sertifikalar varsa onlarıda kullanabiliriz.
Burda ca.cnf , client.cnf ve server.cnf dosyalarının içini bize uygun şekilde düzenleyebiliriz. İstersek düzenlemeden devam edebiliriz.
Örnek verecek olursak…
Ca.cnf dosyasının bizi ilgilendiren kısmı

[ req ]
prompt                  = no
distinguished_name      = certificate_authority
default_bits            = 2048
input_password          = whatever
output_password         = whatever
x509_extensions         = v3_ca

[certificate_authority]
countryName             = FR
stateOrProvinceName     = Radius
localityName            = Somewhere
organizationName        = Example Inc.
emailAddress            = admin@example.com
commonName              = "Example Certificate Authority"


Ben kendimce değiştirdim.
[ req ]
prompt                                               = no
distinguished_name      = certificate_authority
default_bits                       = 2048
input_password                              = sifrem
output_password                            = sifrem
x509_extensions                             = v3_ca

[certificate_authority]
countryName                   = TR
stateOrProvinceName  = Radius
localityName                    = Ankara
organizationName          = Enes AS.
emailAddress                   = enesmozturk@gmail.com
commonName                  = "Example Certificate Authority"




Sertifika bilgilerini verdikden sonra sertifikamızı oluşturalım.

./bootstrap
Using configuration from ./client.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 2 (0x2)
        Validity
            Not Before: Jul 24 14:23:18 2012 GMT
            Not After : Jul 24 14:23:18 2013 GMT
        Subject:
            countryName               = TR
            stateOrProvinceName       = Radius
            organizationName          = Enes AS.
            commonName                = user@example.com
            emailAddress              = enesmozturk@gmail.com
        X509v3 extensions:
            X509v3 Extended Key Usage:
                TLS Web Client Authentication
Certificate is to be certified until Jul 24 14:23:18 2013 GMT (365 days)

Write out database with 1 new entries
Data Base Updated

cp -R * /etc/freeradius/certs/

cd /etc/freeradius/certs/
ls
01.pem     ca.der      client.crt  index.txt           Makefile  serial.old  server.key
02.pem     ca.key      client.csr  index.txt.attr      random    server.cnf  server.p12
bootstrap  ca.pem      client.key  index.txt.attr.old  README    server.crt  server.pem
ca.cnf     client.cnf  dh          index.txt.old       serial    server.csr  xpextensions

Not:burdaki ca.der almamız lazım.Bu dosyayı Wireless bağlantısı yapacak Windows makineler kuracağız.

Kullanılacak Protokol un belirlenmesi


Windows makinelerin ağa bağlanması için peap protokolunu tercih ettim.

Cd /etc/freeradius
Vi eap.conf


default_eap_type = md5   --à  default_eap_type = peap

tls {
                                               #
                                               #  These is used to simplify later configurations.
                                               #
                                               certdir = ${confdir}/certs
                                               cadir = ${confdir}/certs

                                               private_key_password = whatever
                                               private_key_file = ${certdir}/server.key

“whatever” yazan yeri “sifrem” ile değiştiriyoruz.

Cd ..

vi sites-available/inner-tunnel

# sql
 Yazan 3 yerdeki # işaretini kaldırıyoruz.





/etc/init.d/freeradius start


Database kullanıcı ve client tanımlaması

Daloradius üzerinden kullanıcı tanımlıyoruz. Test amaçlı Users  dosyasına tanımladığım ilaveleri sildim.

Kullanıcıları cleartext-Password olarak tanımlıyoruz

Aşağıdaki tabloda Protocol and Password Compatibility bilgisi verilmiş. Aklımızda bulunsun.

 

Daloradius üzerinden Nas tanımlıyoruz. Test amaçlı Client.conf  dosyasına tanımladığım ilaveleri sildim.

 Ca.der ile wifi bağlantısı yapacak Windows makineye kuruyoruz.
Ve sonuç başarılı.

Ben hemen andorid telefonum ile de  denediğimde sertifikasız bağlandım.