Menu

/home/burak

günlük şeysi…

Telegram – Türkçe

Telegram, en basit ifadeyle alternatif bir mesajlaşma uygulaması. Diğer uygulamalarla (whatsapp, line vb) kıyaslandığında açık kaynaklı olması ve diğer uygulamalarda olmayan özellikleri (özel mesajlaşma, otomatik mesaj silme süresi belirleme, gönderilen mesajı silme, uygulama kilidi) gibi artıları var ve sürekli yeni özellikler de eklenmeye buradan blog sayfasınız ziyaret ederek yeni özelliklere bakabilirsiniz- devam ediyor. Özet olarak güzel uygulamadır, kullanın, kullandırın.

Türkçe Meselesi

İşin içine dil meselesi girdiğinde -her ne kadar artık ingilizce bilmek bir ayrıcalık değil de ekmek su gibi bir gereklilik olsa da- insan ister istemez uygulamayı ana dilinde kullanmak istiyor. Hatta şu anda uygulamayı, sırf Türkçe olmamasından dolayı kullanmayan bir çok kişi olduğuna eminim.

Telegram’da yerelleştirme işlemi çevirisi tamamlanan dilin sonraki sürümlerde uygulamaya eklenmesi şeklinde oluyor ancak eğer isterseniz uygulamanın çeviri dosyalarını (android için .xml, ios için de .strings dosyaları) transifex üzerinden indirebiliyorsunuz.

Maalesef oradan indireceğiniz çeviri dosyaları hem tamamen çevrilmemiş hem de kaynak çevirinin son sürümünde değil, yani bütün dosyayı çevirmiş olsanız bile uygulamanın son sürümünde hala çevrilmemiş kısımlar olabiliyor. Bu keşmekeşin içinde android uygulaması için gereken kaynak çeviriye bakınca zaten 750+ satır olduğunu gördüm. “Bir film çevirisi değil, nedir ki yani” diyerekten çevirmeye koyuldum. Sonunda çeviriyi tamamladım.

Telegram’ı Türkçeleştirme

Not: Birazdan yapacağımız işlem bir hile, hack vs. (hani merak eden olursa) değil, uygulamanın SSS bölümünde bahsedilen bir yöntem.

Buradan güncel (19 Haziran 2016) çeviri dosyasını indirebilirsiniz. Uygulamayı kendim de kullandığımdan, yeni sürümlerde çıkacak özelliklerle ilgili çevirileri de güncelleyeceğim, güncel dosya için aynı linki kullanabilirsiniz.

telegram-turkceİndirdiğiniz dosyayı Telegram’a tanımlamanız gerekiyor. https://web.telegram.org adresinden Telegram’ı kullanıyosanız indirdiğiniz dosyayı bir arkadaşınıza gönderin. Telefonunuzdan bu sayfayı ziyaret ettiyseniz yukarıdaki linke dokunun ve seçenekler açılana kadar basılı tutun. “Bağlantıyı kaydet” dedikten sonra dosya telefonunuza (eğer özel bir ayarlama yapmadıysanız indirdiğiniz dosya sdcard/download klasörüne kaydedilir) indirilir. Aynı şekilde telefonunuzdaki Telegram mesajlaşma ekranındaki ataç simgesine tıklayın, “File” seçeneğinden indirdiğiniz dosyayı bulun ve arkadaşınıza gönderin.

Daha sonra telefonunuzdan arkadaşınızla mesajlaştığınız ekranda gönderdiğiniz dosyayı göreceksiniz. Dosyayı indirme butonuna basın, dosya indikten sonra mesajın sağ üst köşesindeki alt alta duran üç noktaya dokunarak mesajın menüsünü açmalısınız. Orada üstteki resimde de görebileceğiniz gibi “Apply localization file” seçeneğine dokunun. Dili Türkçe olarak seçin. Artık Telegram’ı Türkçe olarak kullanabilirsiniz :)

iOS Kullanıcıları

Yazıyı yayınladıktan sonra Aras yorumunda ios için Telegram’da bu işlemin olmadığını yazmış -ki zaten ben de android sürümünün çevirisini yaptığımı yazmıştım-. Ufak bir araştırma sonrasında ekşisözlük‘te cenbaz isimli kullanıcı bu işlemin kolay bir yöntemini özetlemiş.

Yetinmek konusunda probemleri olan ben tabiki bu özetle yetinmeyerek özeti biraz daha araştırdım. Özette bahsedilen durum şu şekilde; https://tlgrm.ru sitesindeki arkadaşlar Telerobot (bu yazıyı telefonunuzdan ya da Telegram’ın masaüstü uygulamalarının yüklü olduğu bir bilgisayardan okuyorsanız linke tıklayarak malum robotla mesajlaşmaya hemen başlayabilirsiniz.) isimli bir bot yapmışlar. Bu bota belli komutlar göndererek istediğiniz dil dosyasını telefonunuza isteyebiliyorsunuz.

ios kullanıcıları locale ios tr komutuyla, aynı şekilde android kullanıcıları locale android tr komutunu kullanarak dil dosyaları telefonuna indirebilir. Gelen çeviri dosyaları biraz eksik olsa da uygulamayı kullanırken çok bir zorluk çıkarmayacaktır diye düşünüyorum. Tabi android için olan çeviri dosyasını buradan indirdiğinizde böyle bir sorunla karşılaşmıyorsunuz :)

Bu slayt gösterisi için JavaScript gerekir.

Lovecraft Teması – Türkçe

Bugün itibariyle günlükte Lovecraft temasını kullanmaya başladım. Tabiiki günlükte kullanabilmek için önce test etmem, temada gerekli çevirileri de yapmam gerekiyordu malum. Bir hevesle kodlara dalıp çeviriyi yapacaktım ki temayı hazırlayan arkadaş hem çevirilebilir olarak temayı kodlamış, hem de Poedit programı için .pot şablonu hazırlamıştı. Bu kadar kolaylıktan sonra çeviri işlemini kısa sürede bitirdim. Gördüğünüz üzere site gayet düzgün bir şekilde telefon tablet fark etmeksizin çalışıyor :)

İngilizce vs Türkçe

popcorn-time-lovecraft-themeÇeviri işlemi ne kadar kolay olursa olsun bazen çeviri problemleri .pot dosyasından kaynaklanmıyor olabiliyor. Örnek olarak yazının meta bilgilerini çevirdiğimiz zaman ‘12.03.2015 TARİHİNDE’ yazması gerekirken İngilizce’de bu cümle ‘ON 12.03.2015’ şeklinde yazılıyor. Temayı kodlayan arkadaş da çeviri dosyasında değişken kullanmak yerine sadece ‘ON’ kelimesini çevirilebilir ayarlamış. Bunun çözümü olarak iki farklı yöntem kullanılabilir. Ya çevirilebilir kısmı değişken dahil ederek yeniden kodlayabilirsiniz ya da temada kodun geçtiği yerleri bulup kelimelerin yerlerini değiştirirsiniz.

lovecraft-ceviri-duzeltme

Hızlı olsun diye ben ikinci yöntemi kullandım. Birinci yöntemi de kullanabilirsiniz ama değişkenleri ayarlarken -değişken tanımlamaları ve onları ekrana yazdırma seçenekleri biraz karmaşık olduğundan- başınız ağrıyabilir.

Üstteki resimde çeviride cümle düzenlemesinin öncesi ve sonrasını görebilirsiniz. Temanızda kullanmak için gerekli olan düzenlenmiş -ve orijinal kodları da- görebilir, karşılaştırma yapabilir ve eğer isterseniz kendi temanızda gerekli değişiklikleri yapabilirsiniz :)

Küçük bir öneri:
Bu şekilde kodları inceleyip onlarda değişiklik yapmak hem çok eğlenceli, hem de belki daha önce sizin farklı bir şekilde yaptığınız aynı işleme farklı bir bakış açısı sunabilmesi açısından oldukça önemli. Bu yüzden ‘acaba nasıl yapılmış, nasıl yapmışlar bunu yaa?’ sorusu her zaman aklınızda olsun.

E? Hani Türkçe Tema?

Bütün bir yazıyı hazırladıktan sonra dil dosyalarını yüklememek neyle açıklanır bilmiyorum, neyse. İsterseniz buradan temanızdaki ‘languages’ klasörüne atmanız gereken dil dosyalarını, isterseniz de şuradan yukarıda yazdığım Türkçe cümle hataları düzeltilmiş haliyle temayı indirebilirsiniz.

Bilgi: Temanızı güncellediğinizde sitenizdeki değişikliklerin kaybolmasını istemiyorsanız çocuk temalarını (child theme) kullanmalısınız. Yukarıda üstü çizili linkten indireceğiniz tema yerine buradan çocuk teması olarak ayarlanmış temayı indirirseniz siteniz tema güncellemelerinden etkilenmez :)

HTTPS Yönlendirme

GitHub Education paketi ile ilgili bir nevi başlangıç sayılabilecek yazımı daha önce yazmıştım. Paketi alır almaz DigitalOcean kodunu oluşturup DigitalOcean ile aramızdaki borç alacak hesabını -bayağı birikmiş- sıfırladım. Pakette başka neler var diye bakarken Namecheap‘ten bir yıllık .me alan adı ile yine bir yıllık SSL sertifikası olduğunu gördüm. Zaten bir alan adına sahip olduğumdan bir yıllık SSL sertifikası daha çok ilgimi çekti. Hemen aktifleştirip sunucuma gerekli ayarlamaları yaptım ve şu anda da görebileceğiniz üzere sizinle sunucum arasındaki bütün trafik şifreli bir şekilde gerçekleşiyor.

SSL sertifikasını düzgün bir şekilde çalıştırdıktan sonra http protokolü üzerinden günlüğe bağlanan kullanıcıların https protokolüne yönlenmesini ayarlamak gerekiyordu yoksa sertifikanın bir espirisi -havası- kalmıyor haliyle. Apache kullanarak bunun yapmanın iki yolu var:

  1. .htaccess dosyasına rewrite kuralı yazmak -ki google’layınca çoğunlukla bahsedilen karmaşık yöntem-
  2. yine .htaccess dosyasına veya sanal sunucu dosyasına Apache’nin Redirect özelliğini kullanarak kural yazmak.

Daha basit -tek satır, temiz ve anlaşılabilir komut- ve daha önerilen bir yöntem olduğu için ben ikinci yöntemi kullanıyorum.

Sunucunuzda sadece sizin web siteniz barınıyorsa veya herhangi bir sanal sunucu ayarlaması yapmadıysanız bahsedeceğim değişiklikleri varsayılan yapılandırma dosyasında -/etc/apache2/sites-available/000-default.conf (eski ubuntu sürümlerinde default.conf isimli dosyadır.)- yapmalısınız. Eğer siteniz için bir sanal sunucu ayarlaması yaptıysanız da -örnek vermek gerekirse ben bu site için varsayılan yapılandırma dosyası yerine ayrıca bir yapılandırma dosyası (burakuzun.com.tr.conf) kullanıyorum- bu değişiklikleri kendi yapılandırma dosyanızda yapmalısınız.

Apache normal bağlantı ayarlamalarını ayrı yapılandırma dosyasında -80 portunu dinleyen 000-default.conf dosyası-, SSL bağlantı ayarlamalarını ayrı yapılandırma dosyalasında -443 portunu dinleyen default-ssl.conf dosyası- tutuyor.

 Aslında ikisini tek bir dosyada ayarlayıp daha pratik bir şekilde tek yerden her iki bağlantı protokolüyle ilgili ayarlamaları yapabilirsiniz ki biz birazdan öyle yapacağız.

Basit olarak yapmak istediğimiz, http protokolüne -80 portu oluyor- gelen istekleri, https protokolüne -443 portu oluyor- yönlendirmek. İlk olarak sitenizi 443 portundan çalışacak şekilde ayarlamalısınız. Gerekli ayarlamaları tamamlayıp test ettikten sonra yapılandırma dosyanızdaki <VirtualHost *:443> satırının üstüne eklemeniz gereken kodlar ve açıklamaları aşağıda görebilirsiniz.

Tek yapılandırma dosyasını kullanarak 80 portundan web sitemizi çalıştırıyoruz. Daha sonra Redirect permanent / https://burakuzun.com.tr/ komutu ile gelen bütün bağlantıları https://burakuzun.com.tr adresine yönlendirdik.

Redirect komutu ile ilgili detaylı bilgiyi ve permanent komutunun yerine yazabileceğiniz alternatif komutları görmek için http://httpd.apache.org/docs/trunk/mod/mod_alias.html#redirect adresini incelebilirsiniz.

GitHub Education – Namecheap SSL Kullanımı

GitHub Education paketinden haberdarsınızdır sanırım. Paket bizim gibi öğrenci arkadaşlara, ücretli bir çok servisi ve hizmeti belirli bir süre için ücretsiz olarak kullanma hakkı veriyor. -örnek vereyim; bu sitenin barındığı sunucuyu aldığım firma olan DigitalOcean (referans linkidir, size de bana da faydası dokunur)‘da kullanabileceğimiz 100$ kredi alabiliyorsunuz. sitedeki en düşük paket olan 5$’lık droplet (droplet nedir derseniz) ile siteniz 20 ay ücretsiz barınabilir.-

Bu paketi kullanabilmek için GitHub hesabınız ve hesabınızda üniversitenizden aldığınız e-posta adresiniz -dolmuşların aksine açıköğretim de geçerli- birincil e-posta adresi olarak ayarlanmış olmalı. Başvurunuzun onaylanması bir iki günü bulabilir.

Heabınızın onaylandıktan sonra https://education.github.com/pack/offers adresinden kullanabileceğiniz servislerin listesine ulaşabilirsiniz.

Namecheap SSL Aktivasyonu

Listede Namecheap‘i bulduktan sonra ‘Request your offer code to get access’ yazısındaki linke tıklayarak size özel kupon kodunu oluşturun ve verilen kupon koduyla Namecheap’ten alışverişinizi tamamlayın. Hesabınıza giriş yaptıktan sonra https://manage.www.namecheap.com/myaccount/ssl-list.asp adresinden satın aldığınız sertifikaları yönetebileceğiniz ekranı açın. SSL sertifikanızın yanındaki ‘Activate Now’ linkine tıklayın.

csr-kodu-girisYan taraftaki ekranda ‘Select web server’ kutucuğundan ‘Apache + MOD SSL’ seçeneğini -ya da siz hangi sunucu yazılımını kullanıyorsanız onu- seçin. Aşağıda ‘Enter csr’ kutucuğuna girmeniz gereken bilgiyi sunucunuzda oluşturmanız gerekli. Sunucunuza terminal ile burada terminal kullanımı ile ilgili bir kaç güzel ipucu var, mutlaka bakın- bağlandıktan sonra mkdir ssl komutu ile ssl isimli yeni bir klasör -oluşturacağınız sertifikalara daha sonra kolaylıkla ulaşabilmek için- oluşturun cd ssl konutu ile klasöre giriş yapın. openssl req -new -newkey rsa:2048 -nodes -keyout alanadiniz.com.tr.key -out alanadiniz.com.tr.csr komutunu yazın ve sizden siteniz ile ilgili bir kaç bilgi girmeniz -Türkçe karakter kullanmadan- istenecek.

Diğer soruları boş bırakıp geçebilirsiniz. Komut tamamlandığında daha önce oluşturduğunuz ssl klasöründe iki adet dosya -alanadiniz.com.tr.csr ve alanadiniz.com.tr.key- göreceksiniz. nano alanadiniz.com.tr.csr komutuyla alanadiniz.com.tr.csr dosyasını açın. Bütün içeriği seçip kopyalayın.

Nano kullanırken normal ctrl + c komutu işinize yaramaz, onun yerine kopyalamak için alt + 6 tuş kombinasyonunu kullanabilirsiniz.

ssl-onay-e-postaKopyaladığınız içeriği ‘Enter csr’ kutucuğuna yapıştırın. Sonraki ekranda sizden alan adınızın size ait olduğunu doğrulamanız istenecek. İsterseniz ‘Domain Related’ listesinde belirtilen e-posta adreslerine -VPS kullanırken kendinize alan adınıza ait e-posta adresleri alabileceğiniz konusu yazılacaklar listesinde-, isterseniz de ‘Whois Record Type’ kısmında belirtilen, alan adınızı alırken kayıt ettirdiğiniz e-posta adresini seçebilirsiniz. Seçtiğiniz e-posta adresinize onay kodunuzun olduğu bir posta gelecek. ‘Next’ dedikten sonra benim gibi hemen e-posta adresinizi kontrol etmeyin, sonraki ekranda gerekli bilgileri girip -sertifikanız için size gönderilecek dosyalar ‘Administrator Email Address’ kısmına yazdığınız e-posta adresinize geliyor. önceki ekranda seçtiğiniz e-posta adresiniz sadece onaylama için.- ‘Submit order’ butonuna tıkladığınızda onaylama postanız seçtiğiniz e-posta adresinize gönderilecek. Onaylama işlemini tamamlandıktan sonra ‘Administrator Email Address’ kısmında belirttiğiniz e-posta adresinize sunucunuza yüklemeniz gereken dosyalar gönderilecek.

Sunucu Yapılandırması

Sunucunuzda yapılması gereken ayarlamaları sırasıyla anlatmak gerekirse, önce web sitenizin yapılandırma dosyasında SSL ayarlamalarını yapacaksınız, daha sonra web sitenizin SSL portundan -443 numaralı port oluyor- çalışmasını sağlayacaksınız. Sitenizin yapılandırma dosyasını -/etc/apache2/sites-available/000-default.conf ya da eğer sanal sunucu ayarlaması yaptıysanız kendi yapılandırma dosyanız- açın. Yapılandırma dosyanızın en altındaki </VirtualHost> satırının üstüne eklemeniz gereken satırları, aşağıda açıklamaları ile birlikte görebilir ve benim kullanıcı adımı kendi sistem kullanıcı adınız ve dosya adınız ile değiştirerek direk olarak yapılandırma dosyanıza kopyalayabilirsiniz.

Yapılandırma dosyanızın en üst satırındaki <VirtualHost *:80> satırını <VirtualHost *:443> şeklinde değiştirerek yapılandırma dosyanızı kaydedip kapatın. Son olarak apache’nin ssl modülünü sudo a2enmod ssl komutuyla etkinleştirin. sudo service apache2 restart komutuyla apache’yi yeniden başlatın. Web sitenize https://www.alanadiniz.com.tr yazarak bağlandığınızda hiç bir uyarı ile karşılaşmadan şifreli bir şekilde bağlanmalısınız.

Güncelleme: Web sitenize http protokolünü kullanarak bağlanan -yani sizden başka herkes- kullanıcılarınızın https protokolüne yönlendirilmesi ile ilgili bir yazı da yazdım, buraya tıklayarak okuyabilirsiniz.

VPS Başlangıç İpuçları – Güvenlik

Günlüğün ilk yazılarından birisinde web sitem için barındırma çözümü olarak DigitalOcean (referans linkidir, size de bana da faydası dokunur)‘dan aldığım VPS’leri kullandığımdan bahsetmiştim. Aynı yazıda yeni sunucuda ilk yapılacaklar ile ilgili kısa kısa ipuçları da vardı. Hem o ipuçlarını bir yazıda -biraz daha detaylı bir şekilde- toplamak, hem de aradan geçen zamanda sunucuyu kullanırken karşılaştığım sorunlar ile ilgili çözümleri yazmak için böyle bir yazı hazırladım.

SSH.

Sunucunuz oluşturulduktan sonra e-posta adresinize root (linux işletim sistemlerinde bütün haklara sahip olan kullanıcı) kullanıcınız, şifreniz ve sunucunuzun ip adresinin yazılı olduğu bir e-posta gelecek. Sunucuya bağlanmak için SSH (Secure Shell) ağ protokolünü kullanıyorsunuz.

Ubuntu veya herhangi bir Linux dağıtımı ya da OS X kullanıyorsanız terminalden (Ubuntu ve diğer Linux dağıtımlarını kullanırken Ctrl + Alt + T kısayolu ile terminali açabilirsiniz, OS X için kısayolu bulamadım.) direk olarak ssh root@sunucuIpAdresiniz komutu ile sunucunuza bağlanabilirsiniz. Windows kullanıyorsanız da Putty işinizi görecektir. Size gelen e-postadaki şifreyi terminal ya da putty ekranında klasik kopyala (Ctrl + C) – yapıştır (Ctrl + V) şeklinde kullanamıyorsunuz. Bu yüzden gelen e-postadan şifrenizi seçip kopyalayın, terminal ya da putty ekranında, size şifre sorulduğunda shift + insert tuşu ile şifrenizi yapıştırabilirsiniz.

küçük bir öneri: sunucunuza bağlanırken sürekli ip adresinizi girmek zorunda değilsiniz. eğer şimdilik bir alan adı tanımlamayı düşünmüyorsanız hosts dosyanızda yapacağınız küçük bir değişiklikle ip adresi yerine bir isim ya da adres (vps ya da vps.io gibi) kullanabilirsiniz. -bu arada terminale bir kez sunucunuzun ip adresini yazdıktan sonra terminal geçmişinden de hızlı bir şekilde sunucunuza bağlantı sağlayabilirsiniz.- terminal ekranınıza sudo nano /etc/hosts komutunu yazın. root hakları ile dosyayı açmanız gerektiği için kişisel bilgisayarınızın şifresini yazın. açılan ekranda boş bir satıra sunucunuzun ip adresini ve bir boşluk bırakarak kullanmak istediğiniz isim ya da adresi –örnek– yazın. Ctrl + X tuşuna basın, e tuşuyla (ingilizce kullanıyorsanız y tuşu) dosyada yapılan değişkikleri kaydedilmesi için onay verin.

Sunucuya bağlandığınızda yapacağınız ilk iş şifrenizi değiştirmek. Terminal ekranına sudo passwd root komutunu yazın. (Şifrenizi yazarken ekranda birşey görmemeniz normal, şifrenizi yazıp enter’a basın, şifrenizi tekrar yazıp tekrar enter’a basın.)

SSH Güvenliği.

SSH ağ protokolünü güvenlik açısından root kullanıcısı ile kullanmamanız daha mantıklı. Sizin oluşturacağınız kullanıcı, root kullanıcısına göre daha zor tahmin edilebilir olduğundan olası bir saldırı durumunda kullanıcı adınızın tahmin edilebilmesinin önüne geçmiş olursunuz.

Yeni bir kullanıcı oluşturmak için adduser kullanıcıAdınız komutunu kullanın. Daha sonra bu kullanıcıya root hakları vermelisiniz. Bunun için terminal ekranına visudo komutunu yazın. Açılan ekranda ‘# User privilege specification’ satırını bulun. Bu satırın altında root haklarına sahip olan kullanıcılar listelenir. Az önce oluşturduğunuz kullanıcı adınızı bu satırın altına eklediğinizde sizin kullanıcınız da root haklarına sahip olur. Kendi kullanıcınızı kullanıcıAdınız ALL=(ALL:ALL) ALL kodu ile root kullanıcısının alt satırına ekleyin ve dosyayı Ctrl + X komutu ile kaydedip kapatın.

terminal-root-login-portRoot haklarına sahip kullanıcı adınızı oluşturduğunuza göre artık root kullanıcısının ssh komutu ile sunucunuza bağlanmasını engelleyebilirsiniz. nano /etc/ssh/sshd_config komutu ile ssh bağlantı ayarlarının saklandığı dosyayı açın. 4. satırdaki port numarası varsayılan SSH portu olan 22’dir. Bu da tahmin edilebilir olduğundan varsayılan port numarasını değiştirmek size ekstra güvenlik sağlar. Örnek olarak ben 1905 olarak ayarladım, siz 1025 ile 65536 arasından istediğiniz bir port numarasını kullanabilirsiniz.

ipucu: terminalden kullanıcıAdınız@sunucuIpAdresiniz komutuyla sunucunuza bağlanırken port bilgisi olarak varsayılan port numarası olan 22 kullanılır. yukarıdaki gibi port numarasında değişiklik yaptığınız zaman sunucunuza bağlanırken kullandığınız komutta port bilgisi de vermeniz gerekiyor. komutu ssh -p portNumaranız kullanıcıAdınız@sunucuIpAdresiniz şeklinde yazmalısınız.

Teminal ekranındaki ‘# Authentication’  başlığında sizin ekleyeceğiniz PermitRootLogin no kodu root kullanıcısının sunucunuza bağlantısını kapatır, AllowUsers burak1 kodu ise sadece orada adı yazan kullanıcıların -örnek burak1 kullanıcısı- bağlanabilmesine izin verir. Bütün işlemlerden sonra Ctrl + X komutu ile dosyayı kaydedip kapatın. Daha sonra terminale reload ssh komutu vererek yeni ayarlarınız ile ssh’i yeniden yükleyin.

Fail2Ban.

Fail2Ban, sunucunuzun hatalı giriş kayıtlarını tarayarak fazlaca hatalı giriş denemesi yapan ip adreslerini, sunucunuzun güvenlik duvarında otomatik olarak oluşturduğu kurallar ile engeleyen oldukça faydalı bir yazılım. Bu şekilde sunucunuza yapılacak olası ‘brute force’ denilen, rastgele ya da bir listede tutulan şifreler denenerek sunucunuza bağlanmaya çalışan saldırganların önüne geçmiş olursunuz.

yukarıdaki ayarları kullanarak yeni kullanıcı oluşturduğunuz zaman, daha önce root kullanıcınız ile yazdığınız komutları yeni kullanıcınız ile yazarken ufak bir değişiklik gerekiyor. yönetici hakları gerektiren komutlar için yazacağınız komutlara sudo komutunu eklemelisiniz. bu şekilde hem istemeden sisteme zarar verecek bir işlem yapmanın önüne geçmiş olursunuz, hem de sudo komutu ile yazılan bütün komutlar loglandığı için daha sonra ‘ne yazmıştım ben?’ sorunuza kolaylıkla cevap bulabilirsiniz.

sudo apt-get install fail2ban komutu ile fail2ban’ı sunucunuza indirip kurun. Fail2Ban sunucunuza kurulduktan sonra cd /etc/fail2ban/ komutu ile programın ayarların saklandığı klasöre girin. Programın bütün ayarları jail.conf dosyasında saklanır ancak sunucunuzda yapacağınız güncellemeler sırasında bu dosya da güncelleneceği ve yapılan değişikliklerin kaybolmaması için jail.conf dosyası yerine jail.local dosyası kullanılır. jail.local dosyasını sudo copy jail.conf jail.local oluşturun. Yazdığımız komut jail.conf dosyasının kopyasını jail.local olarak oluşturur ve bütün ayarlamalar bu dosya üzerinden yapılır. sudo nano jail.local komutu ile dosyanızı açın.

ignoreip = 127.0.0.1/8 satırı yoksayılacak ip adreslerini ayarlamanızı sağlar, bu şekilde -eğer sabit ip kullanıyorsanız- ip adresinizi bir boşluk bırakarak satırın sonune eklerseniz kendinizi banlama gibi bir durumdan kurtulursunuz.

bantime = 600 satırı engellenecek süreyi belirlemenize yardımcı olur, varsayılan süre 600 saniye olarak ayarlı, siz istediğiniz şekilde değiştirin.

findtime = 600 ve maxretry = 3 satırları ise kaç dakika içerisinde kaç deneme yapıldığında kullanıcının engelleneceğini ayarlamak için kullanılır. Varsayılan ayarlarda 10 dakika içerisinde 3 başarısız deneme yapıldığında kullanıcı engellenir.

action = $(action_)s satırı kullanıcı engellendiği zaman ne yapılacağını ayarlamak için kullanılır. Varsayılan ayarda sadece /var/log/fail2ban.log dosyasına engellenen ip adresleri yazılır. Kullanılabilecek aksiyonlar ise bu satırın üstünde ayarlanmıştır.

destemail = root@localhost, sendername = Fail2Ban ve mta = sendmail satırları kullanıcı engellendiği zaman e-posta gönderilecek şekilde ayarlanmışsa kime nasıl e-posta gönderileceğini ayarlamak için kullanılır. Bu ayarlarda sadece destemail = e-posta@adresiniz.com şeklinde kendi e-posta adresiniz ile değiştirmeniz yeterli.

e-posta gönderme işlemi sunucunuzda MTA (Mail Transfer Agent) kurulu ise çalışır. kurulum hakkında bilgilere buradan ve şuradan ulaşabilirsiniz.

Son olarak, fail2ban tarafından hangi servislerin çalışacağının ayarlandığı bölüm var. Bizim amacımız ssh tarafından gelenleri engellemek olduğu için [ssh] başlığının altındaki ayarları (diğer servislerin yapılandırmaları ve ayarlamaları için fail2ban dökümantasyonuna bakabilirsiniz) değiştireceğiz. Varsayılan ayarlardan sadece değiştirmeniz gereken, üstteki ayarlar sırasında değiştirdiğiniz ssh port numarası ve eğer enabled = true değilse enabled değeri. Kaç deneme sonrası kullanıcının engelleneceğini yukarıda ayarlamıştık ancak ssh servisine özel bir deneme sayısı ayarlamak istiyorsanız maxretry = 3 değerini değiştirin.

burada bahsedildiği üzere sistem loglamaları sırasında benzer hata mesajların “last message repeated n times” şeklinde log dosyalarına yazılmasından dolayı fail2ban hata satırlarını düzgün şekilde sayamayabiliyor. bunun önüne geçmek için sudo nano /etc/rsyslog.conf komutu ile rsyslog.conf dosyasını açın. $RepeatedMsgReduction On değerini $RepeatedMsgReduction Off şeklinde değiştirin. sudo service rsyslog restart komutu ile rsyslog hizmetini yeniden başlatın.

Son.

Şimdilik başlangıç için yapabilecekleriniz bunlar ancak daha fazla kaynak için DigitalOcean (referans linkidir, size de bana da faydası dokunur)‘da muazzam makaleler (tabii ingilizce ve özellikle güvenlik ile ilgili makaleler için security etiketini takip edebilirsiniz) var.

Ubuntu Terminal Geçmişi

Ubuntu’da terminal kullanarak girdiğimiz komutları daha sonra tekrar kullanmak istediğimizde geçmişten çağırabiliyor olmak oldukça güzel bir özellik. Uzun uzun komutları yazmak yerine son yazdığımız komutlara yön tuşları ile hemen erişebiliyoruz ama bir süre sonra o geçmiş kabardıkça işler arap saçına dönebiliyor.

Aramanın Gücü

Terminali kullanırken yazdığınız geçmişi görmek için history komutunu kullanabilirsiniz. Eğer kalabalık bir geçmişiniz varsa ise history | grep sorgunuz ile komut geçmişinizde arama yapabilirsiniz. Aynı şekilde Ctrl + R tuş kombinasyonu da benzer bir işlev görür. Arama sorgunuza göre sonuçlar listelendikten sonra uygulama istediğiniz komuta ait sıra numarasını önüne ünlem işareti koyarak (örnek 5 numaralı komut için !5 gibi) komutu çalıştırabilirsiniz.

Son olara komut geçmişiniz biraz fazla kalabalık olduysa geçmişinize bir sünger çekmek isteyebilirsiniz. Terminale history -c komutunu girerek yazdığınız bu komut da dahil bütün geçmiş geri gelmemek üzere gidiyor.

Popcorn Time Altyazı Problemi

Popcorn Time bildiğiniz üzere film şirketleri ile sürekli problemler yaşıyor. Kısa süre önce tamamen kapatılan siteleri, servisleri derken şu an yeniden geri döndü. Tabii bu kısa arada durumu fırsat bilen kötü adamlar bir sürü PopcornTime sürümü çıkardı. Film izleyeyim derken bilgisayarınızı bir anda virüslerle doldurabilirsiniz. Şu an programın güncel ve sağlıklı sürümünü https://popcorntime.sh/ adresinden indirebilir, aynı zamanda https://www.reddit.com/r/PopCornTime/ adresinden de güncel sürümlerin olduğu doğru adresleri bulabilirsiniz. Keyifli seyirler.

popcorn-timePopcorn Time internet üzerinden film izleme sitelerindeki reklamlarla, açılır pencerelerle cebelleşmeden bittorrent altyapısını kullanarak huzurlu bir şekilde film izleyebilmemizi sağlayan harikulade bir program. Olabildiğince sade ama bir o kadar da havalı arayüzü ile izlemek istediğiniz filmi seçtikten sonra internet bağlantı hızınıza ve seçtiğiniz kaliteye (720p, 1080p gibi) bağlı olarak bir kaç saniye içinde filminiz başlayacak.

E! Problem?

Problem, bazı filmlerde altyazı olmaması, var gibi görünenlerde altyazının çıkmaması ya da altyazıların filmin sürümüyle uyuşmamasından dolayı ortaya çıkan senkron kaymaları. Programın haricen altyazı eklemek gibi bir özelliği var ancak orada da karşımıza şöyle bir sorun çıkıyor; izlediğiniz filme uygun altyazıyı, daha doğrusu uygun altyazıyı bulmak için gerekli olan filmin sürümünü nerden bulacaksınız? Az çok torrent kullanıyorsanız indirdiğiniz her filmin adında yazan rip grubu ya da .nfo dosyasında yer alan hangi kaynaktan derlendiği gibi bilgilere bakarak altyazı indirildiğini zaten biliyorsunuz demektir. Popcorn Time’da bu sürümü program üzerinden kolaylıkla göremiyorsunuz.

Program üzerinden izlediğiniz her filmi aslında bilgisayarınıza indiriyorsunuz ve ‘C:\Users\KullanıcıAdınız\AppData\Local\Temp\Popcorn-Time’ klasöründe bu dosyalar saklanıyor. KullanıcıAdınız kısmını kendi bilgisayarınızdaki kullanıcı adınıza göre güncelleyip klasörü açtığınızda izlediğiniz filmlerin klasörlerini göreceksiniz. Klasöre girdiğinizde izlediğiniz filmin sürümünü görebilir ve doğru altyazıyı TurkceAltyazi.org ya da divxplanet.com‘dan indirebilirsiniz. Altyazınızı indirdikten sonra film izleme ekranında baloncuktan ‘Custom’ seçeneği ile indirdiğiniz altyazınızı ekleyebilirsiniz.

Türkçe Karakter Problemleri

Yüklediğiniz altyazı dosyanızla ilgili Türkçe karakter sorunu yaşıyorsanız program üzerinden -şimdilik- yapabileceğiniz bir ayar yok. Bu yüzden altyazı dosyanızı Not Defteri‘nde açın, ‘Farklı Kaydet’ dedikten sonra ‘Karakter Kodlaması’ kısmını UTF-8 olarak ayarlayın. Sonra programı kapatıp açın ve altyazı dosyanızı yeniden ekleyin.

Ubuntu’da Kilitlenen Uygulamalar

Ubuntu kullanırken eğer kullandığınız uygulama kilitlenirse eliniz bir an ctrl + alt + delete tuşuna gidebilir. Ancak karşınıza Windows kullanırken aşina olduğunu görev yöneticisi -ki o da artık ctrl + shift + esc kısayolu ile oluyor- yerine oturum kapatma ekranı çıktığında ufak bir hayal kırıklığı yaşayabilirsiniz. Kilitlenen uygulamanız için ise eğer hızlı bir bilgisayarınız da yoksa yeniden başlatmak eziyet gibi değil mi?

Ctrl + Alt + T

Başlıktaki klavye kısayolunu kullanarak terminali açın. Terminal ekranına xkill komutunu yazın. Fare imleciniz çarpı işaretine döndüğünde kilitlenen uygulamanızın üzerine tıklatın. Uygulama gitti, hepsi bu kadar :)

Komutu yazdıktan sonra çalışan uygulamanıza kıyamazsanız terminalde crtl + c kısayolunu kullanarak komutu iptal edebilirsiniz de tabii.

Ctrl + Alt + X

xkill-kisayolUbuntuda böyle bir kısayol yok aslında. Eğer çok sık xkill komutunu kullanacağınızı düşünüyorsanız komut için kısayol tuşu atayabilirsiniz. Sistem Ayarları – Klavye – Kısayollar menüsünden sol en alttaki Özel Kısayolları tıklayın. İsim kısmına istediğinizi yazabilirsiniz. Komut kısmına xkill yazarak Uygulayın. Daha sonra oluşturduğunuz kısayol seçiliyken kullanmak istediğiniz kısayol tuşlarına basın.

WordPress’in Yeni Editörü

Sürekli yeni şeyleri deneme merakım yüzünden günlükte WordPress’in yeni özelliklerinin ilk olarak kullanıcılara sunulduğu gecelik sürümünü kullanıyorum. Güvenlik ve kullanım açısından pek stabil olmasa da kullandığınız zaman en yeni özellikleri ilk siz görebiliyor aynı zamanda test ederek olası sorunlarını da görebiliyorsunuz. Şu anda kararlı sürümden farklı olarak ben MP6 eklentisini yüklemeden yeni yönetim paneli arayüzünü kullanabiliyorum örneğin.

Yazıda bahsedeceğim ise gün geçtikçe yaygınlaşmaya başlayan günlüğünüz üzerinden yazılarınızı düzenleyebileceğiniz yeni bir editör deneyimi.

Gerekli eklentiyi buradan indirerek siz de güncelleme ile yayınlanmasını beklemeden test edebilirsiniz.

wordpress-beta-front-end-editorEklentiyi etkinleştirdikten sonra yönetim panelinizden yazılara girip düzenlemeye tıklamayın, çünkü o şekilde yeni editöre giremiyorsunuz. Sitenize giriş yaptıktan sonra eğer temanız destekliyorsa üst taraftaki araç çubuğunda bulunan ‘yazıyı düzenle’ linkinden ya da yazılarınızda bulunan düzenleme linkinden yeni editörü etkinleştirebilirsiniz. Düzenleme etkinleştiğinde sitenizde bir değişiklik olmadan tıpkı sitenizde yazınızı okur gibi yazmaya başlayın.  Sağ üst tarafta araç biçimlendirme yapacağınız araç çubuğu (daha fazla seçenek için çubuğun sonundaki butona tıklayın), sayfanın en altında da kategori, etiket, fotoğraf ve link (henüz çalışmıyor) ekleyebileceğiniz araç çubuğu çıkacak. Henüz tamamen eski editörün bütün yeteneklerine sahip değil ancak gelecek güncellemelerde düzelecektir muhakkak.

Nihayet Tablolar!

WordPress'in yeni editörüne nihayet tablo ekleme seçeneği gelmiş, -1 eklenti :)

WordPress’in yeni editörüne nihayet tablo ekleme seçeneği gelmiş, -1 eklenti :)

WordPress standart editörünün belki de en büyük eksikliği olan tablolar nihayet bu yeni editörde eklentisiz bir şekilde kullanılabiliyor ama yönetim panelindeki editörde şimdilik tablolarla ilgili bir buton yok.

Yayınla!

wordpress-beta-editor-post-updateSanırım en hoşuma giden kısım bu oldu. Varolan bir yazınızı günceller ya da taslağınızı yayınlarsanız ekran bir anda kararıveriyor ve yazınızın yayınlandığını bildiren onay işareti beliriyor. Daha sonra ister yazınızı düzenlemeye devam edebilir, isterseniz de düzenleme modundan çıkıp yazınızı ve sitenizi görüntüleyebilirsiniz.

İlk VPS Deneyimi

Deneyimlerimi günlüğe yazmaya karar verdiğim zaman altyapı ya da içerik yönetim sistemi olarak WordPress‘in alternatifi yoktu bana göre ama barındırma konusunda kararsızdım. WordPress için ya wordpress.com‘dan dertsiz tasasız hazır günlük açacaktım, ya müşteri temsilcileriyle yazışmayı göze alıp paylaşımlı bir barındırma çözümünü kullanacaktım ya da her şeyiyle kendim ilgileneceğim -çünkü merak bunu gerektirir- VPS (Virtual Private Server) kullanacaktım.

Bir şeyleri sürekli kurcalamak ve hatta bozmak pek size göre değilse wordpress.com muazzam bir servis ve tabi ki ücretsiz olarak kullanabiliyorsunuz. Yok, eğer siz de benim gibi bazı şeyleri kurcalamaktan -hatta bozmaktan- çekinmiyorsanız ve bütçeniz de elveriyorsa ikinci seçeneğe hiç bulaşmadan üçüncü seçeneği kullanmalısınız.

Neden VPS?

Cevabı, tamamen özgürlük. Çünkü sunucunun -kendi ellerinizle bozacak kadar- bütün kontrolü sizde. Burada akla gelen ilk sorun sunucunun güvenliği ancak ne yaptığınızı biliyorsanız ve biraz linux deneyiminiz varsa güvenlik konusunda fazla endişeniz olmasın. Benim VPS tercihim DigitalOcean.com oldu. 5$ karşılığında SSD disk üstünde 20GB alan, 512MB ram ve 1TB trafik satın alabiliyorsunuz. Satın aldıktan yaklaşık 1 dakika sonra sunucunuz sizin için hazırlanmış oluyor. Bu aşamadan sonrası asıl eğlenceli olan kısım.

Droplet.

DigitalOcean‘da oluşturulan VPS sunucularına droplet (damlacık demek, şirket isminde bulunan okyanus kelimesinden geliyor) deniyor ancak bildiğimiz sunuculardan tek farkı adı :). Buradan (ingilizce ama gayet anlaşılabilir) ilk damlacığınızı oluşturma konusunda yardım alabilirsiniz. Damlacık oluştururken iki alternatifiniz var; ya saf işletim sistemi kurduracak, uygulamalarınızı kendiniz yapılandıracaksınız ya da eğer isterseniz kullanacağınız uygulamaların önceden hazırlandığı ve yapılandırıldığı imaj dosyalarını kullanacaksınız. Ben ilk olarak saf Ubuntu kurmuştum ama sürekli bozup yeniden LAMP (Linux, Apache, MySQL, PHP) kurmaktan illallah ettiğim için Ubuntu üzerinde LAMP kurulmuş imajı kullanıyorum. Aynı şekilde WordPress’in otomatik olarak kurulduğu bir imaj da bulunuyor.