Active directory kurdum. Bir de fileserver kurdum. Permission konusunda fileserverda biraz zorlandim ama inheritance olayini kirinca olay cozuldu.Velhasil artik tek tek bilgisayarlari domaine almak isi kaldi.
Thursday, October 04, 2007
Thursday, September 27, 2007
Askerlik şokunu artık atlattım. Buranın bilgi işleminde tek tüfek takılıyorum. Tam bir teknisyen muhendis karısımı çalısıyorum. Kimi zaman elimde pense cad5 hazırlıyorum, kimi zaman balkona çıkıp fırlatılan kabloyu tutmaya çalışıyorum. En çok gelen hata da windowsun disk yapısının bozulup açılmaması. Velhasıl Buraya bir tane domain controller kurup küçük bir ağ oluşturmamı istediler. Bende hemen başladım. Üç gün içinde bitireceğim. İlk intiba olarak microsoft ürünü kullanmak garip geldi. Sonra alışıyor insan. Zaten küçük bir domaini yönetmek için atom fiziği bilmek gerekmiyor ya da it is not rocket science.
Thursday, August 09, 2007
Tuesday, July 31, 2007
Redhat EL 4 te sunucu üstüne çok baglantı gelince netstat komutunun çalışması sırasında bogus hatası ortaya çıkabilmekte ve bunu engellemek için aşağıdaki değişiklikleri yapmak gerekmekte. Bu hata alınıyorsa sistemden cpu kullanımının ve memory kullanımının normal seviyelerde olsa bile istenilen performans alınamıyor. Özellikle proxy gibi port kullanımının fazla oldugu sistemlerde bu yapılandırmaya ihtiyaç duyulmaktadır. Bu kernel parametrelelerini sistemde çalışan ilk script içine koymak gerekiyor.
echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range
echo 3 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
/etc/security
* soft fsize -1
* soft core 0
* soft cpu -1
* soft data -1
* soft rss 65536
* soft stack 65536
* - nofile 102476
* - msgqueue 102400000 #100MB Burasi Byte cinsinden
* - memlock 204800 # 200MB burasi KB cinsinden
Linux'um ne kadar bedava?
Linux bedava demek onu tercih etmek icin bir sebep midir? Veya Özgür yazılımın Bedava yazılım olarak mı nitelendirilmesi gerekiyor? Bu konunun içinde olan insanlarda gördüğüm düşünce yapısını ki aslında bu kişiler bence olayın gerçek çercevesini anlamamış insanlardır, bu yanlış düşünceyi etraflarına yaymaktadırlar. Linux'un seçilmesinde ana kriter parasız oluşu olması değildir. Windows sunucularına göre daha kararlı yapıda olması ve işletim seviyesinin temellinde olan parametrelerin Adminlerin yönetiminde olmasıdır. Herkes linux kurabilir veya kullanabilir ama bunu enterprise seviyesinde ve kullanıcısı binlerce kişi olan sistemlerde bedavalılıkla açıklamak bu projeye yapılmış bir haksızlıktır. Kaldı ki linux sistemler için ihtiyaç duyulan yönetici sayısı bedavalılık kavramı yüzünden azalmamaktadır. Konunun daha temel taraflarının da işin içine girmesi Adminlerin gerçek manada admin olmasını şart koşmaktadır. Bu özellikler üretim ortamlarında daha çok ön plana çıkmaktadır. Özgür yazılım kullanan linux sistemlerde bu insan gücünün de hesaba katılması sonucunda aslında linux'ün aslında hiçte bedava olmadığı gerçeği ayan beyan görülmektedir. Linux ile ilgilenenler hiç bir zaman bedava lafını ağzına almaması gerekiyor. Bedava lafında saklı kalan gizli ve sistemler için en büyük masraf olan insan gücü hiç bir zaman unutulmamalıdır. Atalarımız ne demiş bedava etin suyu kara olur. Linux bedava değil ki suyu kara olsun:)
Bizim mail sisteminde mailler maildir formatında tutuluyordu. Disk sıkıntısı cektiğimiz icin aktif olmayan hesaplardaki mailleri silmemiz gerekiyordu. Ama bu işlemi yaparken bu kullanıcılardan herhangi biri daha sonra ortaya çıkıp nerede benim maillerim derse diye TSM üstünde silinecek maillerin archive inin alınmasını da sağlamak gerekti. İlk önce TSM üstünde bu node'un kullandıgı class set ayarlamalarını bir sene yapıp maillerin archiveden silinmemesini sagladıktan sonra artık aix üstünde çalışan scripti hazırlamak kaldı. Tsm tarafı ayrı bir derya. Bu işlemi yaparken TSM in basarıya ulaştıgından da emin olmak ve bunun kontrolunu yapmak gerekiyordu. Aşağıda 6000000 civarında dosyanın taşınıp, tape e cıkmasını saglayan script var.
0>uyarilmamasigerekenler.dat
0>backupalinipsilinenler.dat
0>silinenler.dat
0>onemlilog
echo "27 temmuz 2007 de yapılan calismanin loglari" >>silinenler.dat
for i in $(cat anadata1)
do
du -m -s /mail/vmail/$i >bufferdu
cat bufferdu
tam=$(cat bufferdu awk {'print $1'} cut -d. -f1)
if [[ tam -lt 200 ]]
then
echo " $i " >>uyarilmamasigerekenler.dat
else
find /mail/vmail/$i -type f grep -E "email2email1email3email4mail1_rsctmail2_rsct" >silmeli.dat
find /mail/vmail/$i -type f grep -E "email2email1email3email4mail1_rsctmail2_rsct" cpio -pd /mail/kota
dsmc archive "/mail/kota/mail/vmail/$i/*" -subdir=yes -deletefiles
OUT=$?
if [ $OUT -eq 0 ];
then
cat silmeli.datwhile read silinecek;do
echo "${silinecek}" >>silinenler.dat
x="${silinecek}"
rm "$x"
done
else
echo "Fatal oldum laaannn" >>onemlilog
date >>onemlilog
exit 0
fi
fi
done
Monday, July 16, 2007
Postfix Dovecot kurulumu:
Eğer bir işyerim olsaydı ve yirmi kişiden daha fazla çalışanım olsaydı illaki bir eposta sisteminin şirket çalışanları için kurulmasını isterdim. Neden yirmi? Aklıma makul sayı olarak o geldi çünkü. Peki neden yahoo veya gmail değil? Sebep basit, körün değneği elinde olmalı. Emailler kimseye emanet edilemeyecek kadar önemli ve mahrem olabilir. Kurulumda tamamen open source ürünler kullanılacak, bu sayede Microsoft'a para verilmeyecek. Bu dokumanda anlatılacak kurulum daha çok beni ilgilendiren bir kurulum olacak ama eğer bir email sistemi kuracaksanız pek tabiki sizin de işinize yarayabilir. Sistemde MTA oalrak postfix, imap sunucu olarak dovecot kullanılacak. Kullanıcı bilgileri ise LDAP tan çekilecek. Bu yapı ile bir veya daha fazla domaine hizmet edilebilecek. Kullanıcılar belirlenen kota dahilinde mail alabilecek. Email sunucunun döndüğü hata mesajlarına Türkce açıklamalar eklenip kullanıcın illaki ingilizce bilmesi gerekmeyecek. postfix'in main.conf'u ile oynayarak dış networke smtp relay'i de açabileceksiniz. Webmail olarak Squirrelmail kullanılacak. Web sunucu olarak Apache kullanılacak. Tabiki php li olacak apache. İşletim sistemi olarak IBM AIX 5.3 kullanılacak. Aix her zaman kastırır open source ta, open source ürünlerin rpm ini IBM'in sitesinden bulmanız her zaman zor olmuştur. Ya çok eski oluyor yada hic olmuyor. Zaten rpm kullanarak bu işleri herkes yapar:)Bunu binary ürünler kullanarak aşacağız yada kendi rpm'inizi oluşturabilirsiniz ama bu konu dışı. Dokuman sonucu hazırlanmış kurulum test edildi onaylandı. Gonul rahatlığı ile kurabilirsiniz:P Her koyun kendi bacagından asılır:) Bu dokumanı beraber hazırladığım Serhat Akçabayırlı arkadaşıma teşekkür ederim. IBM AIX üstüne email sunucu kurulumunu aşağıdaki linkten indirebilirsiniz:
http://funkypunkydrunky.googlepages.com/mail_server_kurulum_14.05.07.pdf
Thursday, July 12, 2007
Avusturalya'da tutulmuş irice.
Türkiyede tutulmuş balık.
İnternet hayat kurtarır mı? Bugün değişik bir balık tuttuk. Kurbağa balığı “lagocephalus sceleratus” veya balon balığı olarak adlandırılan bir balık. Bizimkiler her nekadar yedik medik deseler de ben ilk defa gördüğüm bu balıktan kıllandım ve bu en az iki kiloluk balığı internetten araştırınca http://www.hurriyet.com.tr/saglik/6842126.asp?top=1 linkindeki haberi buldum. Sonra balıkçı forumlarından da araştırınca zehiri ısıyla beraber bozulmayan bir balık oldugunu ogrendim. Japonlar bu balığın fugu adı verilen türünü yiyorlarmış ve sertfikalı özel aşcılar yapıyormuş. Çok tehlikeli atıkları oldugundan bu balığın atıkları özel kaplarda saklanıyormuş. Açıktan çöpe gönderilmiyormuş. Benim anladığım iç organlarını özellikle karacigeri tarafını ödünü patlatmadan cıkartıp iç organlarını zedelemeden temizlenirse zehir ete sirayet etmiyor olabilir. Ama bunu denemek yürek ister. Bu balığı tutunca kurtulmaya bakın derim yada japonyaya gidip nasıl hazırlantıgını temizlendiğini öğrenin bana da mail atın. Unutmadan damn you global warming
Gönderen
funkypunkydrunky
zaman:
4:53 AM
0
yorum
Etiketler: balon balığı, kurbağa balığı, lagocephalus sceleratus
Wednesday, June 27, 2007
Microsoft ISA yı neden kullanırlar bilmiyorum. Belki kolay yönetiliyordur. Her neyse. Ama şöyle bir gerçek var microsoft ürünleri active directory gruplarının ne olduğunu şıppadan anlıyor olmalı. Peki bunu ntlm authentication kullanan Squid ile yapmak istersek nasıl yapabiliriz? Olayı daha da somutlaştırmak gerekiyorsa active directory deki "xxx" ve "yyy" grubu internete 10:30 ve 14:30 arası çıkabilsin, diğerleri istediği gibi çıkabilsin.
İlk olarak squid'in ACL'lerinin işin içine gireceğini hemen düşünebiliriz. Doğrudur girecek. Squid de iki tane ACL vardır. Bir tane normal acl olup kafanıza göre yazdığınız acl dir. Diğeri ise bir script veya bir programın outputunun sonucunda calışan external_acl lerdir.
Active directoryden kullanıcıların sorgularının yapılması gerekmektedir. External_Acl ye input olarak verilen LOGIN değerlerinin active directoryden sorgusu yapılıp eğer o kişi istenilen gruptaysa squide OK değilse ERR dönmesi gerekir.
Squid microsoft domainde olmalıdır, zaten ntlm bunu gerektirir. Bir de elimizde güçlü bir microsoft user olmalıdır. Bu usera jedi diyelim. jedi userimiz için kerberos ticket alalım. (Kerberos olayı super bir seydir)
[root@msows219 ~]# kinit jedi@example.com.tr
Bu ticket ile artık active directory sorgularımızı iki de bir şifre girmek zorunda kalmadan yapabileceğiz.
Domaindeki adı ab105560 olan kullanıcıyı sorgulayalım.
[root@msows219 ~]# net ads search sAMAccountName=ab105560
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Padawan Padawan 105560
sn: Padawan
description: AB105560
givenName: Padawan
distinguishedName: CN=Padawan Padawan 105560,OU=securtydeneme,OU=BilgiIslemPersoneli,OU=oz
el grup,OU=adalet,OU=01_AB_KULLANICI,DC=example,DC=com,DC=tr
displayName: Padawan Padawan 105560
memberOf: CN=xxx,DC=example,DC=com,DC=tr
memberOf: CN=kafanagore,DC=example,DC=com,DC=tr
name: Padawan Padawan 105560
sAMAccountName: AB105560
gibi bir sonuç döner. Fazlalıkları sildiğim bu ldap resultta görüldüğü üzere memberOf attribute ile kişinin hangi ldap dalında olduğu görülebilir. Scriptimiz bunu sorgulamalıdır. Bu member of attributetunun döndüğü değere göre OK veya ERRor dönmelidir.
Hemen bir script yazalım bunun için:
#!/bin/sh
while read login ; do
uid=$(echo $login cut -d% -f2sed -e 's/5c//g')
ayrac=$(net ads search "(&(sAMAccountName=$uid)((memberOf=CN=xxx,DC=example,DC=com,DC=tr)(memberOf=CN=yyy,DC=example,DC=com,DC=tr)))" mail awk {'print $2'})
if [[ $ayrac -eq "1" ]]
then
echo OK
else
echo ERR
fi
done
Bu scripti squid.conf icinden kullanılmasını sağlayalım
external_acl_type ldap_group %LOGIN /ana/grupbelirleme.sh
acl izinliler external ldap_group
Bu şekilde bu scriptin kullanılmasını sağlayacağız ve scripte input olarak ntlm den elde edilen LOGIN değeri giriliyor ve kisi xxx veya yyy grubuna üyeyse OK dönüyor else ERR.
Zaman kriteri için
acl zaman time 10:30-14:30
http_access allow zaman izinliler
diyerekten ACL'yi kullanıma acıyoruz. Bu sayede active directory de xxx ve yyy grubuna üye kişiler saat 10:30-14:30 arasında interneti kullanacaklardır. Artık elimizde active directoryden kullanıcıların sorgusunu yapıp belli grupları sorgulayan ve bu sorgunun sonucuna göre internete çıkışlara izin veren bir proxy'imiz var.
Yazının başında kerberos ticket tan bahsetmiştik. Bu ticket ile sorgularımızı yaptık. Eğer ticket ile değilde her sorguda sifre göndermek istersek net ads search satırlarına -Ujedi%password ün eklenmesi gerekir. Ama bu benim önerdiğim bir sey degildir. Bunun yerine keytab dosyası oluşturulup bu ticket zamanının doluşundan önce yenilenip kinit komutuyla şifre girmeden kullanıma açılabilir. Bunun için microsoftculardan jedi kullanıcısı için keytab dosyasını oluşturmaları istenir. Tabiki bunu oluşturmaları için hangi komutu vermeleri gerektiğini söylemeniz gerekmektedir.
ktpass -princ nssldap/jedi@EXAMPLE.COM.TR -mapuser jedi@EXAMPLE.COM.TR -pass * -out jedi.keytab
ve bu keytab dosyasını alıp linuxe yuklersiniz. Bu dosyanın ne kadar önemli olduğunu söylemeye gerek yoktur. sakın 777 lemeyin dosyayı.
[root@msows219 ~]# kinit -k nssldap/jedi -c /tmp/krb5cc_23
ile uid si 23 olan squid userına ticket verilir.
[root@msows219 ~]# chown squid.squid /tmp/krb5cc_23
ile ticket squid userinin kullanımına sunulur. Tabiki bu işlemi squidin cronuna koyacagınız bir scriptle de yapabilirdiniz. Ticket'in süresi dolmadan bu userin ticketi yenilenip kullanıma devam edililir. Bu yenileme işlemi sırasında ps -ef grep "net ads search" ile active directory de search eden process ler kill edilip yeni ticketi kullanmaları sağlanabilir.
Yukarıdaki işlemler sonucunda Squid proxy yazılımı ile microsoft kullanıcıları active directory ile iletişime geçilip sorgulandı ve belli bir zaman kriterine göre internet çıkışları için izin verildi.
Bakılması gereken linkler:
http://www.squid-cache.org/
http://web.mit.edu/Kerberos/
http://gentoo-wiki.com/HOWTO_Adding_a_Samba_Server_into_an_existing_AD_Domain#Linux_client_configuration
Ejabberd Kurulumu:
Günümüzde şirket içi haberleşmelerde mesajlaşma programlarının kullanılması yaygın bir hal almıştır. Tabiki bir yerden sonra çalışanların paso msn üstünden chat yapmaya başladığını görüp acaba ne zaman çalışmaya başlayacaklar diye düşünenler için sadece şirket içi mesajlaşmada kullanılabilecek bir mesajlaşma programı önem arzetmektedir. Microsoft tarafından Live Sunucu olarak satılan bu hizmet çok geniş özellikleri barındırmakla beraber her client için istenilen yıllık 30$ civarındaki cal lisans bedeli ile illallah dedirtmektedir. Zaten bir çok özelliğini de kullanmayacağınızı garanti edebilirim. Bunun yerine open source protokol olan jabber yapısı üstüne kurulu olan ejabberd yazılımını önerebilirim. Bizzat test edip onayladığım yazılım, bir çok şirket için tatmin edici sonuçlar verecektir. Cluster çalışacak şekilde yapılandırabildiğiniz bu yazılım performans olarak çok iyi sonuclar vermektedir. Password backend olarak bir çok yapıyı desteklemektedir. Mesela mail sunucusunda kullanıcı authenticationında LDAP yapısını kullanıyorsanız ejabberd ile bu yapıyı kullanmaya devam edip kullanıcılarınızın mesajlaşma programı için mail şifrelerini kullanmalarını sağlayabilirsiniz. 140 gün önce işletime aldığım load balancer arkasındaki cluster yapıdaki iki tane ejabberd sunucusu toplamda 6000 civarı anlık kullanıcıya hizmet vermektedirler.
Yukarıdaki yapının nasıl kurulduğuna ilişkin yaptığım çalışmanın dosyasını ise http://funkypunkydrunky.googlepages.com/ejabberd.pdf linkten bulabilirsiniz.
Wednesday, June 06, 2007
Tuesday, May 22, 2007
Mail sisteminde yaptığımız köklü değişiklikten sonra stresli geçen günler bitti. Hedefi tam 12 den vurduk. Mail sunucudaki aktif 50000 hesap artık tamamen dovecot kullanıyor. Önceden de dovecot kullansa dahi postfix yerine dovecot'un lda sını kullanması dovecotun gercek manada kullanıyor olmamızı sagladı. Bu sayede quota plugininin çalışmasını sagladık. Gelişime çok açık olan bu imap sunucusunun geleceği çok parlak. Binlerce mailin bulunduğu hesapları çok hızlı bir şekilde kullanıcıya sunuyor. Postfix ve dovecot tadından yenmez oluyor. Herkese öneririm.
Tuesday, March 13, 2007
Portal sayfasında baska bir sunucudan alınan bir sayfa vardı.SSL üstünden alması gerekiyordu. Apache 2'nin defaultunu kullanınca sayfa açılırken hata veriyordu. Bu hatanın sebebi ise klasik trusted degil uyarısı ve gidelecek sunucuyla sayfanın aynı sunucuda olmadıgı uyarısı. Sertifkaya bakınca da localhost.localdomain gozukuyordu. Self signed bir sertifika kullansamda duzelmeyecekti çünkü çalıştıgım kurumda bir sertifika otoritesi olan kök ca var ve clientlara bu kök ca gpo olarak explorerlara trusted olarak basılıyor.Domaindeki bilgisayarlar bu sayede kurum içindeki ssl baglantılarda domainde oldukları sürece explorer işte ben tanımıyorum bu sertifika kimdenmiş diye zırıltı etmiyor. Bunu sağlamak için apache'nin private keyinden elde edecegim .csr yani sertifika imza isteği ile microsoft kök ca'ya başvurup sertifikamı imzalatmam gerekiyordu. İlk önce bir private key ürettirdim.
openssl genrsa -out server.key 1024
Bu komut sonucunda bazı sorular soruyor sertifkada olması gereken bilgilerle alakalı olarak.
Bundanda csr üretmek için
openssl req -new -key server.key -out "server.csr"
komutunu verdim. Sonra bu microsoftun web arayuzunden sertifka requestinde bulunup yesyeni imzalı sertifkamı aldım. Base64 tte olarak encode edileni kullandım. Microsoftun verdiği .cer uzantılı dosyayı .crt uzantılı hale getirip ssl.crt directorysine kopyaladım. Aynı seyi server.key icin de yaptım tabiki ssl.key directorysine kopyaladım. Sonrada apache'yi restart artık kurumun kök ca'si tarafından imzalanmış sertifkamla mutlu mesut yaşadım.