Please Donate to Bitcoin Address : [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

HA Network ihtiyacı olanlara çözümler – LACP Bonding

Merhabayın.

Bu blog yazısında high-available network ihtiyacı olanlara kernel seviyesinde ağ arayüzlerini nasıl yüksek erişilebilir olarak yapılandırabileceklerinden bahsedeceğim.

Bu günlerde otu boku clusterlamakla uğraştığımdan, bugüne kadar clusterlamadığım tek bir mekanizma olduğu gerçeği kafama dank etti. O da ağ erişilebilirliğinin kendisi.

Cluster mı? HA mı? Ne diyosun diyenlere bir özet geçeyim.

Sistemcilerin büyük dertlerinden biri de verdikleri servislerin failover mekanizmalarının olması ve bu servisleri çeşitli felaket senaryolarına göre ayarlamaktır. Yani bugüne kadar adam akıllı sistem yöneticisi olarak çalışmış herkes bir servis grubunu yüksek bulunur ve otomatik failover mekanizmalarıyla beraber kümelemeye çalışmıştır. Bir senaryo örneği vereceğim basitçe. Bir web servisi koşturuyorsunuz, uygulamanız da veritabanı olarak arkada herhangi bir SQL ve/veya NoSQL veritabanı kullanıyor. Gün geldi oldu ya, web servisinin koştuğu makine bir anda kapandı. Ya da SQL sunucunuzun koştuğu makineye herhangi bir sebepten dolayı ağ üzerinden erişilemez duruma geldi. Ya da oldu ya talih bu, işinizi iyi yapmadınız ve sunucunuzda kök dosya sisteminin bağlı olduğu fiziksel disk doldu sizden habersiz, işletim sisteminiz de I/O gerçekleştirebilecek alan bulamadığından web servisiniz çalışamaz duruma geldi. Bu durumların hepsinde de servis kesintisine uğradınız. Müşteriler mutsuz, patron mutsuz, herkes mutsuz.

İşte bu gibi senaryoları en kısa servis kesintisiyle atlatmak sistem yöneticilerinin en önemli görevlerinden biri. E bunu nasıl yapıyoruz? Benim gözlemlediğim, günümüzde her uygulamanın ya kendi failover mekanizmaları yazılımın kendi içersinde geliştiriliyor ya da bu işi yapmak üzere tasarlanmış, koşturduğunuz uygulamadan bağımsız üçüncü parti clustering ve HA fonksiyonlarını sisteminize entegre edebileceğiniz bir dizi yazılımı düzgün bir şekilde ayarlayarak bu işi yapabiliyoruz. Yukarıdaki senaryo için her bir servis bileşeninizi ayrı-ayrı yüksek bulunur ve failover edebilecek şekilde ayarlamalısınız demek oluyor bu. Yani atıyorum nginx koşturuyorsanız, nginx servislerinizi yine atıyorum 3 ayrı makineye yayıp, öne bir HAProxy, corosync+pacemaker ile bu 3 nginx web servisi için HA ve failover sağlayabilirsiniz. Ya da arkadaki nosql veritabanınız atıyorum mongodb ise, mongodb’nin failover ve HA mekanizmaları için yazılımın kendi içersinde deployment metodları (replika setleri vs) ve bir dizi ayarlar serisi gerektiren bir iş yükünüz var demek oluyor bu. Her bir bileşenin, projenizin sistem ayağında pros/cons değerlendirmesi ve kullanacağınız mekanizmaları seçmek de sizin işiniz bu arada.  Better safe than sorry demişler. İşleri en baştan sağlam tutmak her zaman en iyisidir.

Continue reading HA Network ihtiyacı olanlara çözümler – LACP Bonding

1 Mart 2017

Posted In: Sistem, Teknik

Etiketler:, , , , , ,

One Comment

Sansür Ülkeleri İçin Bir Linux Sunucuya Tor Bridge Kurmak

Merhaba,

Normalde daha fazla Türkçe teknik blog yazısı yazmayacaktım kimse okumuyor diye. Ancak ülkenin şartlarını her birimiz biliyoruz. VPN firmalarının websitelerine kadar sansürlenen bir internetle başbaşa kalmış durumdayız. Şunu söylemek istiyorum ki, gayet sıradan ve tek özelliği sunucu yönetmekten anlamak olan basit bir vatandaş olarak edindiğim Tor Network bilgisini ve her birinizin herhangi bir VPS kiralayarak kurup kullanabileceği bir Tor Bridge, sunucu ve istemci tarafında nasıl yapılandırılır bunu blog yazısında anlatacağım.  İstiyorum ki bu sansürlerden kralı gelse etkilenmesin hiç kimse. Bakın beni tanıyan bilir ben “politik” olmayı sevmem. Ancak buradan şunu anlayın; bu blog yazısı ile bu “sansürcü” zihniyete yekten tepkimi koyuyorum. Varsa içinizde bu tip zihniyetler, allah aşkına sansürleyin beni. Yiyosa 😉

Geçiyorum teknik kısıma, kemerleri falan bağlayın. Hazır olun çünkü kızdım ve ağır yazdım. Saat şu an 02:20 AM. Ona göre.

Ön Hazırlık – Tor Bridge Nedir?

Beni uğraştırmayın, okuyun : https://www.torproject.org/docs/bridges#Understanding

Şu bilgiyi not olarak düşeyim, Tor’u engellediğini “sananlar”, çok kullanılan Tor Bridge’lerinin IP’lerini birer birer alıp sansürlüyorlar. Bizim de amacımız yeni kiralanmış herhangi bir VPS’e yepisyeni bir Tor Bridge kurmak. Kısaca sansür yiyene kadar bu Tor Bridge’leri üzerinden Tor Ağına dahil olabilmeyi başarmak. Sansür yemenizi nasıl geciktirebileceğinizi de anlatacağım.

Ben bütün aşağıdaki teknik işlemleri CentOS 7 GNU/Linux dağıtımı üzerinde gerçekleştirdim. Debian/Ubuntu vs. için daha iyi dokümanlar var araştırırsanız.

Başlamadan önce herhangi bir public erişilebilir IPv4 (veya IPv6 ancak ben IPv4 için anlattım) sunucu kiralamanız gerekiyor, başka bir şeye gerek yok.

Tor ve obfs4proxy Kurulumu

Normal bir sistem yöneticisi olduğunuzu farzedemiyorum çünkü halka hitap etmem gerekiyor konu gereği. Dolayısıyla sunucunuzda ilk önce firewalld servisinin çalıştığına emin olun ve belli başlı portlar hariç diğer portlar dışarıya kapalı olsun. Firewall ayarlarını konu içersinde anlatacağım.

Tor kurmak için aşağıdaki şekilde epel deposunu kurup, tor’u sunucuya kurun :

# yum install epel-release ; yum update
# yum install tor -y

Kurulum bittikten sonra, malesef obfs4proxy’nin bir RPM paketi olmadığından, sunucuya go-lang kurup, obfs4proxy binary’sini sunucu sisteme almamız gerekecek.
Aşağıdaki adımları birebir takip edin :

# yum install golang git -y
# go version
go version go1.6.3 linux/amd64
# export GOPATH=`mktemp -d`
# go get git.torproject.org/pluggable-transports/obfs4.git/obfs4proxy
# cp $GOPATH/bin/obfs4proxy /usr/local/bin/

Bütün kurulum işlemleri bu kadar.

Gelelim yapılandırmaya.

Tor ve obfs4proxy’nin Tor Bridge Olarak Yapılandırılması

Tek bir yapılandırma dosyası var /etc/tor/torrc, dosyayı açın ve aşağıdaki gibi Tor Bridge’i yapılandırın :

RunAsDaemon 1
ORPort 443
BridgeRelay 1
ControlPort 9051
HashedControlPassword 16:7838ED53E0A003F66098A977910E3786F6549E541540FDD85266385875
ServerTransportPlugin obfs4 exec /usr/local/bin/obfs4proxy
ServerTransportListenAddr obfs4 0.0.0.0:4443
ExtORPort auto
Exitpolicy reject *:*
#PublishServerDescriptor 0

#Set your bridge nickname and contact info
ContactInfo aydintd@gmail.com
Nickname aydintd
Log notice file /var/log/tor/notices.log

Bu ayarları tek tek açıklamayacağım, çoğu gayet açık zaten isminden ancak bazıları hakkında bilgi vermekte yarar var :

ORPort : 443 , Bridge’nizin 443. portta çalışacağınızı söylüyorsunuz. 443 tercih ediliyor çünkü sansürcü zihniyet 443. portu blocklamaktan çekiniyor. Çünkü 443 HTTPS default portu 🙂 9001 vs. gibi portlar da yaygın, ancak 9001 görüp ISP tarafından blocklanabilirsiniz. Bu yüzden çok sık kullanılan (ne bileyim https olur, ftp olur) portlardan birini Tor Bridge servisi olarak network interface’ine bağlamanız daha güvenilir bir yöntem.
ControlPort : Tor Control Portu, bu port normalde dışarıya açılmaz ve tor süreçlerini yönetebileceğiniz bir CLI araç vs amacıyla bind ediyorsunuz, konudan bağımsız ancak bir güvenlik önlemi olarak sunucuda aşağıdaki durumdan dolayı tanımlamak durumundayız. Optional ama size kalmış, ben obsesif davrandım.
HashedControlPassword : Bu hash, control portu için bir parola üretip parolasız girişleri engellemek için. Bu hash’i şu komut ile üretip, çıktısını ayar dosyasında ilgili yerde tanımlamanız yeterli : tor --hash-password s3cr3tp4ssw0rd s3cr3tp4ssw0rd parolası kullanarak 127.0.0.1:9051 ‘de çalışan Tor servisine bağlanabilirsiniz demek oluyor yani. Öntanımlı olarak parolasız girişli geliyor. Güvenlik önlemi yani.
PublishServerDescriptor : Bu ayar’ın 0 olması, Tor Bridge sunan public sitelere, sizin bridge’nizin eklenmemesini istediğiniz anlamına geliyor. Ben öntanımlı kapalı tuttum her yerde indexlensin ve herkes kullanabilsin diye, ancak ISP’lerin atlas.torproject.org vs. gibi yerlerden bu bridge tanımlarını alıp engellediğini unutmayın. Eğer indexlenmesine izin vermezseniz ISP’lerin VPS’inizin IP’sini blocklama ihtimalini daha da çok düşürürsünüz.

Sıkıldım, diğer ayarlar için okuyun işte : https://www.torproject.org/docs/tor-manual.html.en

Yukarıdaki linkten daha açık nasıl anlatabilirim bilmiyorum zaten. Neyse.

Bu şekilde ayarları yaptıktan sonra dosyayı kaydedip çıkın.

Son olarak sunucunun güvenlik duvarında dışarı açık olması gereken ORPort ve ServerTransportListenAddr’de tanımladığınız portlara izin verin, benim örneğimde bunlar :

# firewall-cmd --zone=public --permanent --add-port=4443/tcp
# firewall-cmd --zone=public --permanent --add-port=443/tcp
# firewall-cmd --reload

Tor servisini başlatın (ya da yeniden başlatın)

# systemctl restart tor

/var/log/tor/notice.log da aşağıdakine benzer bir çıktı görmeniz gerekiyor :

Jan 20 02:03:03.000 [notice] Tor 0.2.8.12 opening log file.
Jan 20 02:03:03.686 [warn] OpenSSL version from headers does not match the version we're running with. If you get weird crashes, that might be why. (Compiled with 1000105f: OpenSSL 1.0.1e 11 Feb 2013; running with 1000105f: OpenSSL 1.0.1e-fips 11 Feb 2013).
Jan 20 02:03:03.726 [notice] Tor v0.2.8.12 running on Linux with Libevent 2.0.21-stable, OpenSSL 1.0.1e-fips and Zlib 1.2.7.
Jan 20 02:03:03.727 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 20 02:03:03.727 [notice] Read configuration file "/usr/share/tor/defaults-torrc".
Jan 20 02:03:03.727 [notice] Read configuration file "/etc/tor/torrc".
Jan 20 02:03:03.731 [notice] Based on detected system memory, MaxMemInQueues is set to 744 MB. You can override this by setting MaxMemInQueues by hand.
Jan 20 02:03:03.732 [notice] Opening Socks listener on 127.0.0.1:9050
Jan 20 02:03:03.732 [notice] Opening Control listener on 127.0.0.1:9051
Jan 20 02:03:03.732 [notice] Opening OR listener on 0.0.0.0:443
Jan 20 02:03:03.732 [notice] Opening Extended OR listener on 127.0.0.1:0
Jan 20 02:03:03.732 [notice] Extended OR listener listening on port 37342.
Jan 20 02:03:03.000 [notice] Parsing GEOIP IPv4 file /usr/share/tor/geoip.
Jan 20 02:03:03.000 [notice] Parsing GEOIP IPv6 file /usr/share/tor/geoip6.
Jan 20 02:03:04.000 [notice] Configured to measure statistics. Look for the *-stats files that will first be written to the data directory in 24 hours from now.
Jan 20 02:03:04.000 [warn] Fixing permissions on directory /var/lib/tor
Jan 20 02:03:04.000 [notice] We were built to run on a 64-bit CPU, with OpenSSL 1.0.1 or later, but with a version of OpenSSL that apparently lacks accelerated support for the NIST P-224 and P-256 groups. Building openssl with such support (using the enable-ec_nistp_64_gcc_128 option when configuring it) would make ECDH much faster.
Jan 20 02:03:04.000 [notice] Your Tor server's identity key fingerprint is 'aydintd BD4BDF95BB083BE330B17935DA7C7D9FD4C0E5A2'
Jan 20 02:03:04.000 [notice] Your Tor bridge's hashed identity key fingerprint is 'aydintd DF45BB0E8E28844B098FCFA675FAAEA94353E872'
Jan 20 02:03:04.000 [notice] Bootstrapped 0%: Starting
Jan 20 02:03:08.000 [notice] Bootstrapped 80%: Connecting to the Tor network
Jan 20 02:03:08.000 [notice] Opening Control listener on /run/tor/control
Jan 20 02:03:08.000 [notice] Bootstrapped 85%: Finishing handshake with first hop
Jan 20 02:03:09.000 [notice] Bootstrapped 90%: Establishing a Tor circuit
Jan 20 02:03:09.000 [notice] Registered server transport 'obfs4' at '[::]:4443'
Jan 20 02:03:10.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.
Jan 20 02:03:10.000 [notice] Bootstrapped 100%: Done
Jan 20 02:03:10.000 [notice] Now checking whether ORPort 46.101.137.210:443 is reachable... (this may take up to 20 minutes -- look for log messages indicating success)
Jan 20 02:03:10.000 [notice] Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.
Jan 20 02:03:10.000 [notice] Performing bandwidth self-test...done.

Loglardan da görülebileceği gibi son 3 satır önemli. Sizin sunucunuz için de aynı satırları görebiliyor olmanız gerekli. Yoksa bir şeyler yanlış gidiyor demektir. Tekrar gözden geçirin yaptıklarınızı.

Son olarak da client’lar için sunucumuza kurduğumuz bridge tanımını nerden alacağız, bunun yanıtına gelecek olursak:

Önce Tor Bridge’in fingerprint değerini ya yukarıdaki loglardan ya da /var/lib/tor/fingerprintdosyasından alın :

aydintd BD4BDF95BB083BE330B17935DA7C7D9FD4C0E5A2

Daha sonra aşağıdaki dosya içeriğini alın ve yukarıdaki fingerprint bilgisi ve sunucu IP ve ORPort olarak ayarladığımız port numarasını aşağıdaki gibi bir formatta birleştirin :

# cat /var/lib/tor/pt_state/obfs4_bridgeline.txt

obfs4 IP ADDRESS:PORT FINGERPRINT cert=1lyG4Rkuk0deYXjBO9TGS/vE5SceYm4wYb4num+l/Ib3EUX3Tma/lY8jov2YUOf9toAJXw iat-mode=0

Benim durumumda son durum şöyle bir satır :

obfs4 46.101.137.210:443 BD4BDF95BB083BE330B17935DA7C7D9FD4C0E5A2 cert=1lyG4Rkuk0deYXjBO9TGS/vE5SceYm4wYb4num+l/Ib3EUX3Tma/lY8jov2YUOf9toAJXw iat-mode=0

İşte son olarak elde ettiğimiz bu ayarı, Tor Browser’ımıza obfs4 bridge’i olarak manuel yapılandırma yaparak eklediğimizde, Tor network’üne bu kurduğumuz VPS üzerinden çıkabileceğiz.

Tor Browser’da (İstemcide) Yapılması Gerekenler

Tor Browser’ı makinenize indirin önce : https://www.torproject.org/download/download (Platformunuza göre ilgili binary/paket vs seçin)

Daha sonra Tor Browser’ı başlatın ve Open Settings’e tıklayın.

Burada bizim gibi sansürlü ülkeler için bir seçenek var. Configure seçeneğine tıklayın. Daha sonraki ekranda ‘Yes’ seçeneği seçip, Next’e tıklayın.
Bu ekranda da yukarıda sunucudan çıkardığımız bridge relay ayarını tek satır olacak şekilde Enter Custom Bridges formundaki kısma ekleyin.
obfs4 46.101.137.210:443 BD4BDF95BB083BE330B17935DA7C7D9FD4C0E5A2 cert=1lyG4Rkuk0deYXjBO9TGS/vE5SceYm4wYb4num+l/Ib3EUX3Tma/lY8jov2YUOf9toAJXw iat-mode=0
Next dedikten sonra, local proxy’niz varsa ‘Yes’ (proxy yapılandırcaksınız tabi bi de) yoksa ‘No’ seçip devam edin ve Connect’e tıklayın.

Tor browser sorunsuz bir şekilde VPS’iniz üzerinden bridge relayinizi kullanarak Tor networküne dahil olmuş oldu.
Test for Network Settings’e açılış ekranında tıklayıp, Tor soğanından This Browser : Bridge obfs4 (Germany) vs bir tanım görmeniz gerekiyor. (VPS’i nereden almışsanız orası)

Daha detaylı istemci yapılandırması şurada da anlatılmış çok güzel : https://anonimmedya.com/tor-erisim-engeli-kopru

Hepsi bu.

Son olarak şunu demeden edemeyeceğim :

Yaşasın Özgür Yazılım! Yaşasın Özgür İnternet!

20 Ocak 2017

Posted In: Sistem, Teknik

Etiketler:, , , , ,

Leave a Comment

QEMU/KVM Sanallaştırma Sunucularında CPU Optimizasyonları

Merhaba,

Bu teknik yazıyı yazma amacım, özellikle production ortamlarında sanallaştırma sunucusu olarak KVM koşturan kişilerin optimizasyon ihtiyaçlarını bir nebze karşılamak. Belki öntanımlı gelen ayarlarla kullanıp, herhangi bir optimizasyona şu ana kadar ihtiyacı olmamış olanlar olabilir. Ancak Openstack vb. gibi “compute” çok yapılan tabiri caizse “hayvan gibi” (bkz: beast :P) uygulamalarda, eğer sanallaştırma platformunuz KVM ise aşağıda bahsedeceğim CPU iyileştirmelerini denemek isteyebilirsiniz.

Ön Bilgiler

KVM’de hiç bir CPU optimizasyonu yapmamışsanız, oluşturduğunuz sanal makineler öntanımlı olarak genelde o an için sanallaştırma sunucusunda hangi CPU boştaysa onun üzerinde koşmaya başlıyor. Ancak bu en ideal performansında sanal makinelerinizi çalıştırabileceğiniz manasına gelmiyor. Çünkü NUMA mimarisi diye bir mimari var. (lütfen devam etmeden wikipedia içeriğini okuyun)

NUMA mimarisinde bir sanal makineyi daha önceden belirlediğiniz bir NUMA node’una kilitlemek, KVM’in öntanımlı “NUMA node’una bakılmaksızın hangi cpu boştaysa onda çalıştır” policy’sine göre çok daha performanslı oluyor. Çünkü bir sanal makineyi bir NUMA düğümü içersindeki bir (ya da birden çok) CPU’ya kilitlediğinizde, ilgili sanal makinenin sistemden bellek ayırma işlemlerinin her zaman ilgili çalıştığı NUMA düğümünün içersinde kalacağını garanti etmiş oluyorsunuz. Aksi takdirde NUMA düğümleri arasında, hiç gereği olmamasına rağmen cross-node memory transport denilen NUMA düğümleri arası bellek taşınması işlemi de yapılması gerekiyor. E bu da yoğun compute ve memory allocation yapılacak olan sanal makinelerde bir performans kaybına yol açıyor haliyle.

E libvirt’in de NUMA için CPU pinning vb. desteği var, o halde nasıl kullanacağız? Şimdi ona bakalım.

Continue reading QEMU/KVM Sanallaştırma Sunucularında CPU Optimizasyonları

24 Ekim 2016

Posted In: Sistem, Teknik

Etiketler:, , , , ,

2 Comments

Aptly ile Debian Paket Deposu Yönetimi

Teknik yazıya başlamadan önce biraz gevezelik yapacağım kendi perspektifimden, teknik kısım için bir sonraki başlıktan başlayabilirsiniz okumaya.

Debian GNU/Linux herkesin bildiği gibi dünyada en çok kullanılan Linux tabanlı dağıtımlardan biri. Bir çok diğer dağıtımın da temel aldığı (ki bunlar Mint, Ubuntu vs. başka saymaya gerek yok çok fazlalar) köklü bir işletim sistemi. Arkasında çok ciddi, katı ve sağlam bir community’si de mevcut. Dünyada Özgür Yazılım Kültürünün en büyük dinamolarından biri.
Bir çok projenin de halen geliştiriciliğini yapan bir community’si ve Debian geliştirici topluluğu var. (Örneğin Docker projesinde bir çok eski Debian geliştiricisi çalışmakta)

Aslına bakarsak ben de öğrencilik dönemimde ilk tanıştığım kültür Debian kültürüydü, bunu da büyük bir rastlantısal şans olarak görüyorum ancak hiç bir zaman bundan şikayetçi olmadım. Bir çok konuyu, Debian ile tanışıklığımdan dolayı zorlanmadan anlayabildiğimi düşünüyorum bugüne kadar. Kültürüne yabancı olmadığım bir dağıtım.

Ancak şöyle bir baktığımda yönettiğim sunucuların hiç biri Debian tabanlı değil nerdeyse (iş harici), kendi şahsi makinemde de Arch Linux koşturuyorum yıllardır.

E peki neden Debian paketleme sistemleriyle falan uğraşıyorum? El-Cevap : Pardus

Biliyorsunuz ki ülkemizde açık kaynak kullanımının yaygınlaştırılması projesi kapsamında geliştirilen Pardus İşletim Sistemi Debian tabanlı bir dağıtım olduğundan beri, Pardus kullanan kullanıcıların bilgisayarlarına program paketlerini kurabilmesi için bir paket deposu yönetim sistemi hasıl olageldi. Ben de TÜBİTAK’ta olduğumdan beri bu konuyla ara ara ama sıkça uğraşmak durumunda kaldım. Bu yazıyı da bu konuda biriktirdiğim bilginin bana açıkcası fazla geldiğini düşünerek paylaşma isteğimden dolayı yazdım. Ne kadar Debian kültürünü tanısam da, saygı duysam da, dağıtım savaşlarına girmek istemesem de hiç, her sysadminin gönlünde yatan bir aslan olduğunu söylemek gerekli, e benimkini de bilen biliyor zaten ama bu hiç bir zaman Debian olmadı sunucu dağıtımları arasında 🙂

Continue reading Aptly ile Debian Paket Deposu Yönetimi

26 Temmuz 2016

Posted In: Sistem, Teknik

Etiketler:, , , , , ,

2 Comments

OpenLDAP’da Gruplamalar

Merhabalar.

Uzun zaman sonra tekrar bir blog yazısı yazma fırsatı buldum. Bu yazıda geyiği kısa kesip (kesemedi…) direkt konuya atlayacağım.

OpenLDAP bildiğiniz gibi özgür dünyaların lightweight directory access protocol yazılımı. Bir sürü özel-kamu vb. kurum
içersinde bu protokolü bir şekilde kullanmaktalar. Ne için peki?

Cevap en az problem kadar basit : kullanıcıların merkezi olarak yönetimi. Yönetmek? Bir kullanıcının nesini yöneteceksiniz ki
diye düşünürseniz özellikle kamuda IT ops özelinde en süslü fantezilerin bu servis etrafında yoğunlaştığını tecrübe ettim.

Özellikle TÜBİTAK’da işe başladığımdan beri neredeyse en çok uğraştığım problemler bu servis özelinde oldu anlam veremediğim
bir şekilde.

Şöyle istekler duydu, gördü bu bünye :

“biz on bin küsür tane kullanıcımızı bir şekilde gruplayıp, sonicbilmem-ne  (a.k.a özgür yazılım olmayan)
firewall’undan bu gruplara özel youtube yasağı koymak istiyoruz” ya da,
“Microsoft Active Directory’den (kamu ağzıyla “aktif dizin” (her ne demekse artık))  bir kaç bin kullanıcıyı linux client’lardan
doğrulatalım ama herkes de login olamasın bir gruplamaya göre bunu yönetelim” lere kadar uzanan bir sürü istek.

Tembel bünyem çok çalışmak zorunda kaldığından size OpenLDAP üzerinde nasıl gruplamalar yapabilirsiniz bunlardan bahsetmek istedim.

Hazırsanız başlıyorum, (hazırdan kasıt slapd servisi kurun işte herhangi bir işletim sistemi üzerine (centos kurun olm)), müzik gelsin.

Continue reading OpenLDAP’da Gruplamalar

12 Nisan 2016

Posted In: Sistem, Teknik

Etiketler:, , , , ,

Leave a Comment

Redmine’da WYSIWYG Editörü Kullanmak

Merhaba,
Bir süredir blog yazamıyordum. Bunun birden fazla sebebi var ancak bir kaç tanesinden bahsetmem gerekirse şöyle diyebilirim :

İlginç, yazmaya değer bir şeyler bulup, biriktirme eğilimim
İş, güç yoğunluğu ve ruh halim
ve son olarak Akademik Bilişim konferansına eğitmen olarak katılmam

bir süredir blog yazısı yazamamama neden oldu. Ancak sebeplerim makul bence.

Konumuza gelecek olursak, bu blog yazısında Redmine’da What You See Is What You Get (WYS|WYG) editörü nasıl kullanılır,
mevcut  Redmine kurulumunuzda textile formatlı wiki kullanılarak hazırlamış olduğunuz wikilerinizi, iş kayıtlarınızı
nasıl bu editöre uyumlu ve HTML ile görüntüleyebilip, düzeltebileceğinizi anlatacağım.

“Bununla neden uğraştın ki olum?” diyenlerinizi duyuyorum. Aslında ben kendimce wiki’yi, wiki yazmayı hatta syntax’ını bile seviyorum. Ancak
özellikle benim gibi daha önce wiki yazmaya alışmamış, syntaxla uğraşmak istemeyen, “bir tablo için bu kadar pipe’mı dizecem şimdi yav?” diye
mızıklanan personele sistem yönetimi desteğini ancak wiki yerine zengin editör kullandırtarak verebiliyorum 🙂 Tek sebebi budur. Yoksa wikiyi severiz, candır.

Redmine’da bu işi sizin için yapan güzel bir plugin var, adı da CKEditor , bu bir redmine plugini olduğundan öncelikle redmine pluginlerinin redmine’a nasıl
kurulması gerektiğinden bahsetmeliyiz. Blog yazısının goy-goy’unu burada bırakıp, teknik kısmına geçiyorum, ilginizi çekmediyse diye uyarayim.

Continue reading Redmine’da WYSIWYG Editörü Kullanmak

19 Şubat 2016

Posted In: Genel, Sistem, Teknik

Etiketler:, , , , , ,

Leave a Comment

Docker ile Ruby Uygulamaları Çalıştırmak

Docker bilindiği gibi, bir dosya sisteminde içerisinde sadece çalıştırılmak istenen uygulamanın ihtiyaç duyduğu kod, sistem araçları, sistem kütüphaneleri gibi yapıları barındıran bir sanallaştırma platformudur. Docker’ın bana göre en önemli özelliği çalıştırdığınız Docker kontaynerının her zaman aynı durumda, environment’dan bağımsız bir şekilde çalışacağını garanti etmesi.

Ben de bu blog yazısında Docker ile mini bir wiki uygulaması olan ruby ile yazılmış gollum’un nasıl çalıştırılacağı ve sisteminizde nasıl ve ne şekilde kullanabileceğinizi anlatacağım.

Ön Bilgiler ve Gereksinimler

Ben bu blog yazısında geliştirme ortamı olarak Debian Jessie 8.1 seçtim.
Docker versiyonu olarak : Docker version 1.6.2, build 7c8fca2 kullandım.

Bu blog yazısını takip edilebilmesi ve anlaşılabilmesi için Docker’ın çalışma mantığına hakim olmak, Dockerfile makrolarını bilmek vb. gerekecektir.
Kurulu ve düzgün çalışan docker’ı sisteminize kurmanız yeterli. Blogun devamında Docker’ı düzgün çalıştırdığınızı varsayarak ilerleyeceğim.

Continue reading Docker ile Ruby Uygulamaları Çalıştırmak

6 Kasım 2015

Posted In: Sistem, Teknik

Etiketler:, , , ,

2 Comments

Centos 7’de OpenLDAP Sunucu Kurulumu ve Ayarlanması

Bu yazıda OpenLDAP’ın Centos 7’de nasıl kurulacağı, standart bir LDAP ağacının nasıl oluşturulacağı, LDAP’ın SSL ile nasıl entegre çalışacağı ve LDAP’tan doğrulama yapan Linux client’ları hakkında bir şeyler anlatacağım. OpenLDAP sunucusuyla alakalı her şey Centos 7.1 üzerinde çalışacak şekilde bu dokümanı yazıyorum. Client ayarlamaları kısmına geldiğinizde ilgili spec bilgilerini o başlıklarda bulabileceksiniz.

OpenLDAP ?

Open – Lightweight Directory Access Protocol. Yani bir protokolün açık kaynak bir implementasyonu.

Yeniyo mu içiliyo mu diye ekstra bakmak isteyen buradan bakabilir.

Continue reading Centos 7’de OpenLDAP Sunucu Kurulumu ve Ayarlanması

13 Ağustos 2015

Posted In: Sistem, Teknik

Etiketler:, , ,

Leave a Comment

Logical Volume Manager – LVM Rehberi

LVM yani Logical Volume Manager var olan fiziksel diskleri, insanlık tarihinden bu yana gelen “böl, parçala, yönet” mantığıyla sanallaştırıp yönetmek amaçlı yazılmış çok yararlı bir program. Bir ya da birden fazla olan disklerinizi tek bir disk havuzuymuş gibi gösterip, partitions ile karmaşık disk alanı hesaplamalarını sizin yerinize soyutlayıp yapıyor.

Bir çok linux dağıtımı artık öntanımlı LVM disk formatı seçeneğiyle gelmekte. Özellikle son sürüm işletim sistemleri aksini belirtmediğiniz takdirde bu şekilde sisteminize kuruluyor.

Bu blog yazısında lvm ile volume grup oluşturma, birden fazla olan disklerinizi volume gruplar içerisinde toplayıp daha sonrasında toplam disk alanınız üzerinden nasıl disk bölümlemesi yapıldığını anlatacağım.

Continue reading Logical Volume Manager – LVM Rehberi

25 Ağustos 2013

Posted In: Teknik

Etiketler:, , ,

Leave a Comment