Ubuntu Türkiye E-Dergisi SUDO 57. Sayı

sudo_57

* Şifreler Clipperz’a Emanet

* Scribus’ta Tasarım – VII

* Trine 2

* Paralel Hesaplama – Beowulf Cluster

* Kurulumda Disk Yapılandırması

* Linux Haberler

Arsiv dosyasini indirmek icin(.zip 9.6M):

İndir874 downloads

 

veya PDF olarak(.pdf 11M):

İndir1969 downloads

 

Beş dakikada HTTPS’e geçmek

Sitemde bir yere şifreyle erişim yapmak isteyince onu plain-text olarak göndermeme isteği, ve adres çubuğundaki o yeşilliğin dayanılmaz hafifliği beni sitemi https üzerinden sunmaya yöneltti. Bu işlem tahmin etmediğim kadar kolaydı, ücretsiz ve kısa sürede sıfırdan bir SSL sertifikası ürettim, güvenilir bir kuruma(cacert.org) tanıttım ve de Nginx üzerindeki sitemi https üzerinden sunmaya başladım. Aşağıda da adımlar izlediğim.

Not: Sertifikalar domain tabanlı oluşturuluyor(blog.cogunluklazararsiz.org), normalde subdomainlere bile paylaşılamıyor; subdomainleri de kapsayacak şekilde wildcard sertifika(*.cogunluklazararsiz.org) da alabiliyoruz. Ancak bu wildcard sertifika ne yazık ki subdomainsiz domaini karşılamıyor, yani blog.cogunluklazararsiz.org ve www.cogunluklazararsiz.org‘u kapsamasına rağmen, doğrudan cogunluklazararsiz.org‘u karşılamıyor. Bunu karşılatmak için sertifika isteğine ufak bir ekleme yapmak gerekiyor, bunu da gerekli kısımda belirteceğim

Özel anahtarın ve sertifika isteğinin oluşturulması

Öncelikle özel anahtarımızı oluşturmamız gerekiyor. Bir yazımı kriptoloji kursunda geçirip ECDSA kullanmadım diye kötü hissetsem de, kolaylıkla 4096 bitlik bir RSA anahtarı oluşturabiliyoruz aşağıdaki komutla:

openssl genrsa -out privkey.pem 4096

Komut üzerine sistemimiz yeterli entropiyi toplayıp irice bir anahtar oluşturup privkey.pem ismiyle kaydediyor.

Şimdi de sertifika otoritesine bu sertifikayı ne için kullanacağımızı anlatacak bir sertifika oluşturmamız gerekiyor. Yukarıda belirttiğim gibi, bu işlem doğrudan domain.com isimli alan adlarını kapsamıyor, bunun için bir alttaki “Server Alternative Name” başlığını izleyin.

openssl req -new -key privkey.pem -out cert.csr

Komutuyla işlemi başlatıyoruz. Buradaki önemli yer Common Name satırı, buraya sertifikamızın etkili olacağı domaini yazmamız gerekiyor, örneğimizde *.cogunluklazararsiz.org. Tek subdomain kullanacaksanız doğrudan onu yazabilirsiniz.

Alanları doldurduktan sonra elimize bir cert.csr dosyası geçecek.

Server Alternative Name eklemek

Doğrudan domain.com adresinin de sertifika tarafından kapsanması için, sertifika isteğimize serverAltName eklentisiyle adresi doğrudan eklememiz gerekiyor. Bunu da ne yazık ki komut satırı parametreleriyle yapamıyoruz, yeni bir conf dosyası oluşturmamız gerekiyor. Varsayılan openssl.cnf’yi kullanabiliriz.

cp /etc/ssl/openssl.cnf openssl-san.cnf

Ardından dosyanın altına şu satırları ekliyoruz, domaini kendimize göre düzenleyerek:

[req]
req_extensions = v3_req

[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = cogunluklazararsiz.org

Bu işlemlerin ardından yukarıdaki openssl req komutuna -config openssl-san.cnf parametresini ekleyerek oradan devam edebiliriz.

Sertifika isteğiyle sertifikanın alınması

Sertifikayı cacert.org adresinden alacağım, ücretsiz bir servis olmasının yanında, anında işlemlerinizi yapabiliyorsunuz; diğer alternatifler ya ücretli ya da bir onay safhasına sahip.

cacert.org adresinden kayıt olup, sadece bir email adresi ekleyip Server Certificates > New yolunu takip etmeniz yeterli. Buradaki irice metin kutusuna yukarıda oluşturduğumuz cert.csr dosyasının içeriğini yapıştırarak sertifikamızı alabiliriz. Bu sertifikayı etrafındaki etiketlerle birlikte cert.pem dosyasına kaydederek gerekli bütün belgeleri elde etmiş oluyoruz.

Nginx’in SSL kullanacak şekilde ayarlanması

Özel anahtarımızı ve sertifikamızı sunucumuza kaydettikten sonra, sertifikayı kullanmak istediğimiz hostlarda 443 portundan dinlemelerini sağlayıp aşağıdaki satırları ekliyoruz:

ssl                  on;
ssl_certificate      /srv/http/common/cert.pem;
ssl_certificate_key  /srv/http/common/privkey.pem;

Tabii ki yolları kendi sunucumuza göre düzenleyerek. Ardından nginx’i yeniden başlatmamızla beraber sitemiz https üzerinden sunulacak. Ben bu sırada http’yi doğrudan kapatıp https’e yönlendirme yapmaya başladım, doğrudan şunu kullanabilirsiniz:

server {
    listen 80;
    return 301 https://$host$request_uri;
}

TLDR

openssl genrsa -out privkey.pem 4096

# Wildcard + bare domain ise yukarıyı okuyun, değilse;
openssl req -new -key privkey.pem -out cert.csr

# cert.csr'yi cacert.com'a ver, sertifikayı al

vi /etc/nginx/conf.d/vhosts.conf
   ssl                  on;
   ssl_certificate      /srv/http/common/cert.pem;
   ssl_certificate_key  /srv/http/common/privkey.pem;

Bu kadar. Bir yerde bir güvenlik açığı vs. bıraktıysam özür dilerim, belirtirseniz sevinirim.

Kabukta Otomatik Git Kısayolları

Git en sık kullandığım programlardan biri haline geliyor. Üzerinde çalışırken her seferinde git önekini kullanmak zorunda kalmak, çoğu kişinin kendine göre kısayollar belirtmesine neden olmuş, internetteki her örnek .{bash,zsh}rc dosyasında

alias g='git'
alias gc='git commit'
...

benzeri satırlar görmek standart artık. Ben de böyle bir yoldan gitmek yerine, direk git önekini kaldırmanın yeterli olacağını düşündüm. Bunu da yine yukarıdan aşağı

alias commit='git commit'
alias push='git push'
...

gibi gitmek yerine, ufak bir döngü yazdım:

for i in $(hub --help | grep -Po '(?<=^   )\w+') 
do command -v "$i" >/dev/null || alias $i="hub $i"
done

Döngünün yaptığı hub --help çıktısından* komutları ayıklayarak sistemdeki komutlarla çakışmayanlara alias oluşturmak. Bash ve zsh üzerinde çalışıyor, işin güzel tarafı, en azından zsh’ta, otomatik tamamlamalarla da uyumlu.

Bunu paylaşmamın sebebi, sadece yukarıdaki üç satırdansa; bunun diğer programlara da kolayca uygulanabilmesi. Ben kullanmasam da, örneğin sadece oradaki regex ve program adı değiştirilerek, bu apt-get‘e uygulanabilir, doğrudan update, upgrade gibi komutlar katılmış olur.

Not: hub, git‘e hafif bir wrapper, GitHub üzerinde çalışamak için ufak özellikler kazandırıyor, hub pull-request, hub fork, hub clone utdemir/dotfiles gibi. Kendi sisteminizde bunu git‘e çevirebilirsiniz kullanmıyorsanız.

Instantclick ile anlık sayfa yüklenmesi

Instantclick isimli hoş bir JS kodu hazırlamışlar ki, web sitenize yerleştirdiğinizde; kullanıcının imleci linkin üzerine geldi anda arka planda yüklemeye başlıyor, o linke basana kadar sayfa yüklenmiş oluyor ve kullanıcı hiç sayfa yüklemesi beklemeden sitenizde dolaşabiliyor.

Biraz daha teknik bakarsak;

  • Instantclick, <a>’ların mousehover eventini yakalayarak linkin hedefine arkaplanda bir GET çağrısı yapıyor ve sonucunu kaydediyor.
  • Kullanıcı linke tıkladığında, sayfa içeriğini kaydettiği değerle değiştiriyor.
  • Yeni gelen pushState özelliği ile tarayıcı geçmişini ve sayfa adresini düzenleyerek tarayıcının aynı bir linke tıklanmış gibi davranmasını sağlıyor.

Siz de sitenize eklemek isterseniz, instantclick’i indirip

...
    <script src="instantclick.min.js" data-no-instant></script>
    <script data-no-instant>InstantClick.init();</script>
</body>

şeklinde sitenize eklemek. Instantclick’in birden fazla çalışma modu var, doğrudan hover ile, hover halinde belli bir süre bekleyince, veya mouse ile basıldığı(çekildiği değil, bu bile 20-30ms kısıyor) anda tetiklenebiliyor, bunları kullanmayı sayfasından öğrenebilirsiniz.

Bir iki dezavantajı da var tabi.

  • İlk iki modu kullanıcı bir linke basmasa bile işlem yaptığı için sunucuya fazladan yük bindirir.
  • Eğer sadece navigasyon görevi haricinde bir linkiniz varsa(Örn: logout), bunların kullanıcı isteği dışında tetiklenmesine neden olabilir(ki zaten bunların doğrudan link yerine bir POST isteği olması daha uygun).

Benim hem bol bol bant genişliğim var, hem de sayfalarım statik ve bu yüzden sunucuya da yük binmiyor/bir işlem yapılmıyor. Bu yüzden sitemde şu an deniyorum, siz de hızı kolaylıkla farkedebilirsiniz.

Linux Eğitim Serisi – 2 : Linux Nedir?

Merhabalar,

Serimizin ikinci yazısında sizlere biraz Linuxdan söz edeceğim.

Linux dendiğinde aslında aklımıza gelmesi gereken bir işletim sistemi değil daha ziyade bir işletim sistemi çekirdeğidir. İşletim sistemlerinde çekirdeğin özelliği üzerine yazılacak yazılımların donanım ile olan ilişkisini sağlamaktır.

Linux çekirdeği 1991 yılında bir üniversite öğrencisi olan Linus Torvalds tarafından geliştirilmeye başlanmıştır. İlk sürümü (0.01) bitirip Usenet topluluğuna bir mail atmıştır. Kısa sürede pek çok geliştirici bu projeye katkıda bulunmaya başlamıştır. Mart 1992′de X Pencere Sistemi Linux’a uyarlanmış ve Linux’un ilk masaüstü serüveni başlamıştır.

Çoğunlukla dağıtım dediğimiz yazılımlar aslında birer gerçek işletim sistemidir. Üzerinde kullanıcıdan veri almaya ve bunu kullanmaya yarayan yazılımlar bulunur. Linux tabanlı işletim sistemlerinden bugün en popüler olanı Android’dir. Dünyada pek çok mobil telefonda bu işletim sistemi kullanılır.

İlk Linux dağıtımlarından zihinlerde kalanlar Slackware ve Debian oldu. Ancak Knoppix ilk CD’den çalışan canlı dağıtım oldu. Buradan Linux dağıtımları tarihini görebilirsiniz.

Ancak Linux evlerimize girmeden önce web sunucularını işgal etti. Bugün girdiğimiz web sitelerinin büyük bir çoğunluğu Linux tabanlı işletim sistemlerinde çalışmaktadır. Bu yüzden Linux dağıtımları açısından stabil çalışıyor olması çok önemlidir. Kapanmadan ve yoğun iş yükleri altından çalışmak için tasarlanan çekirdek evlerdeki kullanıma da büyük katkı sağlamaktadır.

Ancak 1999 yılından itibaren Linux çekirdeği süper bilgisayarlar alanına da girmeye başlamış ve 10 senede Linux atası sayılabilecek Unixi adeta tahtından etmiştir. Bu grafiğe de bu Linkten ulabilirsiniz.

Şimdi sıra masaüstüne geldi Linux için, kolay ayarlar yapabilme konusunda ve donanım üreticilerinin sürücü üretmemesi yüzünden bazı sıkıntılar yaşanıyor ancak bunlar da geriye kalıyor. Ancak Ubuntu’nun kurucusu Mark Shuttleworth şöyle diyor “Birinci Bug düzeltildi: Artık Microsoft pazardaki en büyük paya sahip değil” Evet mobil işletim sistemlerinin gelişmesinin ardından artık Microsoft pazarda her geçen gün küçülen bir paya sahip.

Bir dahaki yazıda görüşmek üzere.

Serinin Önceki Yazıları:

Linux Eğitim Serisi – 1

ACME Systems Arietta G25′i Gururla Sunar

Uzun zamandır, sadece yazılım dünyasında değil donanım dünyasında da (hatta ilaç sektöründe bile) özgür donanım rüzgarları esiyor, tasarımı ve standartları açıkça belirlenmiş donanımlar her geçen gün yeni iş alanları yaratıyor.

Özgür donanımlarda açıkça özgür yazılımlarla uyumlarını gösteriyorlar. Çok popüler hale gelen Raspberry Pi ve Arduino’dan sonra şimdi de ACME System Arietta G25′i piyasaya sunuyor.

Sadece 9.90€ satışa çıkarılan bu kartın özellikleri ise:

  • CPU: Atmel’s AT91SAM9G25 (ARM9 @ 400Mhz)
  • RAM: 128 MByte DDR2
  • MicroSD Socket for up to 32GB bootable Linux microSD (not included)
  • USB 2.0 ports: 1 hi-speed host/device, 1 hi-speed host, 1 full-speed
  • UART: 1 (RXD,TXD,RTS,CTS)
  • I2C bus: 1
  • SPI bus: 1 with 2 chip select (5 to 50 MHz)
  • PWM: 4 lines
  • A/D converters: 4 channels@10 bit
  • Size: 25x51mm
  • Power supply: single 3.3 Volt DC
  • Line levels: TTL 3.3V (NOT 5V tolerant)
  • Operative temperature range: -20 +70 °C
  • Pinstrip: 20×2 pitch 2,54mm (100mils)
  • PCB layers: 8 * 

 Ve bu kart için en güzel özelliklerden bir tanesi de bilgisayar taktığınız zaman bir editör/derleyici ortamı karşınıza geliyor C,C++, Java, Python ve nodeJs dilleri için derlemeyi bilgisayarınıza herhangi bir şey kurmadan yapabiliyorsunuz.

Web ortam detayına şuradan ulaşabilirsiniz

Linux Eğitim Serisi – 1

Merhabalar,

Sizlere yeni bir seri ile merhaba demek beni çok mutlu etti, umuyorum ki bir süredir yazamadım umuyorum ki arayı kısa sürede kapatacağım.

Hepimiz evlerimize bilgisayar aldığımız gün içinde Microsoft Windows’un herhangi bir sürümü yüklü geldi. İlk internet bağlantımızı aldığımızda elimizin altında Windows vardı, yaşadığımız sorunları ilk kez Windows için arattık, ilk tricklerimizi Windows’ta öğrendik. Windows’u tek sanıyorduk pek çoğumuz ama değildi.

Bir teknoloji dergisi Turkix diye bir CD vermişti yanında hediye olarak. Turkix’i hatırlamayanlar için hatırlatmak isterim, geliştirilmesi Emre Sokullu tarafından yapılmış Linux dağıtımıdır. Ancak uzun yıllar üretimde kalamamış kapanmıştır. Daha sonra internet üzerinde araştırma yaptıkça farkettim ki Linux diye bir çekirdeğin etrafında geliştirilmişçok sayıda işletim sistemi var ve bunların pek çoğu çok başarılı. Ayrıca kullandığımız web sitelerinin çoğunluğu bu işletim sistemlerinin üzerinde çalışıyor. Sonra bir web sitesi çarptı gözüme, daha henüz Türkçe’ye çevrilmemişti, Neden Linux Daha İyi? Bu sorunun cevabını açıkça veren bir web sitesiydi.

Daha sonra ülkemizde Linux’un yükselişi Pardus ile oldu. Proje daha eski olmasına rağmen hepimizin gözleri önüne gelişi pardus 2008 ile olmuştu ki, bu sürümde aldığı incelemelerle dünyada beğeni kazanmaya başlamıştı. Projenin topluluğu Özgürlükİçin.org Linux ve yazılımlarla ilgili daha fazla makaleyi Türkçeye çeviriyordu. Maddi kaynak aktarımı ile yapılamayacak pek çok şey bu topluluk sayesinde yapılıyordu. Özgürlükİçin.org’un Gezegeninde çok sayıda yazarın kaliteli içerikleri yer alıyordu. Türkiye’nin özgür yazılımda gerçek bir topluluğa sahip olduğu ilk günlerdi. Ürünler de elde edildi.

Daha sonra proje (benim hala kızgın oduğum bir biçimde) devlet dairesine dönüştürüldü. Ama projenin en büyük kazancı insanların özgür yazılım dünyasına adım atmış olmalarıydı.

Burada aslında bir giriş dersi yapacakken bir şekilde kendi gördüğüm/okuduğum kadarıyla Türkiye’deki Linux’un gidişatını yazmış oldum. Bir dahaki yazıda sizlere Linux Nedir? sorusunu cevaplayıp bir girişyapmaya çalışacağım.

Furby – Rawdog Alternatifi Statik Feed Toplayıcı

Kendi sunucumda kullanabileceğim, basit bir feed okuyucu ararken rawdog‘a karar vermiştim. Rawdog haber akışı(river of news) mantığında bir haber okuyucu. Basitçe gönderdiğiniz kaynaklardan gelen bilgileri tarihe göre alt alta diziyor. Ama gerektiğinden fazla karışık geldi bana, ben sadece haberleri toplayıp alt alta yazacak bir şey istiyordum, rawdog bunları topluyor, önbellekliyor, her feed’i ayrı ayrı zamanlıyor, bunların hepsini de ayarlatabiliyordu. Bu yüzden kendi okuyucumu geliştirmeye karar verdim.

Ortaya furby çıktı. Ruby ile yazılmış, ERB ile template desteği olan, basitçe bir dosyadan feed adreslerini okuyup, zamana veya sayıya göre filtreledikten sonra bir template’te şekillendirip çıktıyı belli bir dosyaya basan bir betik. Kişisel olarak genelde sevdiğim bir iki günlüğü ve webcomic’i takip etmek için kullanıyorum.

Pek bir dökümantasyonu yok, GitHub sayfasından da olanı gönderebilirsiniz; öncelikle başta bundle install yaptıktan sonra basitçe feeds dosyasını düzenlemeniz yeterli. Ben sunucumda saatte bir güncellenecek şekilde bir cronjob ayarladım.

Çalışan bir örneğine bu linkten ulaşabilirsiniz.

Umarım birinin daha işine yarar.

Not: Bu girdi uzun zamandır taslak olarak duruyordu, yazmamın en büyük sebeplerinden biri bakan birinin “bir senedir yazı yazmıyormuş” izlenimine kapılmaması.

Ubuntu/Mint Hakkında Program – Güncel Haberler – Yenilikler İle İlgili Takip Ettiğim Siteler

Ubuntu/Mint için yapılan yeni gelişmeleri, yeni ve kullanışlı program tanıtımlarını yukarıda sıralamış olduğum internet sitelerinden takip ediyorum. Siteler detaylı bir şekilde incelendiğinde içinte tema, ikon, arka plan resimleri gibi bir çok veriyi de barındırmaktadır.

Filed under: Linux-Ubuntu Tagged: linux mint güncel haber, mint adress, mint blogs, mint daily news, mint güncel, mint haber, mint news, ubuntu adress, ubuntu blogs, Ubuntu daily news, ubuntu güncel, ubuntu güncell haber, ubuntu haber, ubuntu news, ubuntu/mint blog, ubuntu/mint internet adress

Grub Customizer 4.0.1 ile Ubuntu/Mint Grub Menü Düzenleme

Bilgisayarınızda birden fazla işletim sistemi kurulu ise hangi sistemin ön tanımlı olarak seçileceğini ayarlamak istiyorsanız Grub customizer bunun için en uygun grafik arayüz programıdır.

  • Grub menüsünü dilediğiniz gibi değiştirebilir, Grub’u güncelleyebilirsiniz

  • Grub düzenlemesi ile ilgili daha fazla ayrıntılı ayarlamalar yapmak mümkün

  • Ayrıca Burg yapılandırması da kolayca ayarlanabilir

Ubuntu/Mint Kurulumu İçin Terminalden (Ctrl+T)

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

sudo apt-get update

sudo apt-get install grub-customizer

Kaynak

Filed under: Linux-Ubuntu Tagged: burg, grub customizer, grub customizer kurulumu, grub2, grub2 düzenleme, Grub2 güncelleme, linux burg, mint grub customizer, Ubuntu customizer 4.0.1, ubuntu grub customizer, ubuntu/mint burg, ubuntu/mint grub2 düzenleme