Linux Sunuculara Şifresiz Olarak SSH ile Bağlanma – SSH Copy ID

Normalde client makinenizden linux sunuculara ssh bağlantısı için komut satırana ssh kullanıcıadı@remoteip tıkladıktan sonra şifre istenir ve şifreyi girdikten sonra sunucuya başarılı bir şekilde login olabilirsiniz.

SSH Copy ID ile sunuculara bağlanırken şifre sormadan login olabileceğiz. Bu işlemin gerekli olduğu durumlar, oluşturduğunuz script’lerde parola sorunu yaşamadan yada dosya çekip, atarken şifre problemi yaşamamak için lazım olabilecek bir yöntemdir.

Bunun için ilk önce Client makinemizde aşağıdaki gibi ssh-keygen komutunu çalıştıracağız. Bu komutu çalıştırdıktan sonra Enter File kısmında direk Enter tuşuna basabilir yada benim gibi bir public key’in dosya ismini(LinuxSunucum.pub) verebilirsiniz. Burada sadece şu fark var, siz isimlendirirseniz dosya oluşturulan kullanıcının Home dizininin altında oluşacak. Hiç birşey girmeden Enter derseniz orda oluşacak dosya ismi id_rsa.pub olacaktır ve bu dosyalar .ssh/ dizini altında oluşacaktır. Daha sonra Enter passphrase ve Enter same passphrese kısmını iki Enter ile geçin. Yani toplamda üç kere Enter tuşuna basacaksınız.

NOT: ssh-keygen direk çalıştırdığınızda oluşturulan şifreleme yöntemi RSA’dir. DSA oluşturmak için komutu “ssh-keygen -t  dsa” olarak kullanmalısınız. Arasındaki fark ise RSA(v1), DSA(v2)’dir.

Oluşan dosyayı ls kontol edelim ve kullanıcının home dizininde olduğunu keşfedelim.

Birde isim vermeden oluşturdum, onunda .ssh/ dizini altında oluştuğunu görelim.

Tabi ben hiyerarşiyi bozmamak adına LinuxSunucum dosyalarını mv komutu ile .ssh/ dinizi altına atıyorum ve son görünüm aşağıdaki gibidir.

> mv LinuxSunucum* .ssh/

Şimdi oluşturduğumuz public key’i aşağıdaki komut aracılığı ile sunucuya kopyalıyoruz, kopyalama sırasında bir kereye mahsus şifreyi girip başarılı bir şekilde key’i kopyaladığımızı görüyoruz.

> ssh-copy-id -i ~/.ssh/LinuxSunucum.pub root@192.168.2.146

Şimdi SSH ile sunucuya bağlanıp şifresiz olarak bağlandığımızı görelim.

> ssh root@192.168.2.146

Sunucu tarafına attığımız key dosyayı görmek ve sağlamasını yapmak için aşağıdaki adımları gerçekleştirebiliriz.

> ls -lash .ssh/

authorized_keys dosyasını okursak eğer root@bt public key bilgileri görmemiz gerekir ki aşağıdaki gibi görebiliyoruz.

> cat .ssh/authorized_keys

MacBook bir cihaz üzerinden Linux sunuculara erişim sağlayacaksanız, brew paket yöneticisi ile ssh-copy-id paketini kurup yukardaki işlemler ile yapabilirsiniz.

> brew install ssh-copy-id

Pfsense LDAP(FreeIPA) Yapılandırması

System/User Manager/Authentication Servers menüsünden aşağıdaki gibi Add butonuna basıyoruz.

Ardından Descriptive name, Type, Hostname or IP Address, Port value, Base DN, bilgileri aşağıdaki screenshottaki gibi yapılandırın.

Daha sonra sayfanın alt kısmında kalan uid, cn, dc, bind user ve şifre kısmını yine aşağıdaki gibi yapılandırıp Save tıklayın.

Artık Pfsense ile başta vpn olmak üzere Authentication için kullanabileceğiniz bir Authentication Server’ınız oldu.

Linux Sunucuya SSH Bağlantı Sonrası Uyarı Postası Gönderme

Sunucunuza yetkisiz bağlantı yada ssh bağlantılarını takip edebilme gibi bir çok neden için, özellikle root kullanıcıyla bağlantıları takip edebilmek ve gözlemleyebilmek için bağlantı sonrası uyarı isteyebilirsiniz ki genelde bu yöntem e-postayla uyarı olur. Bunun için aşağıdaki aşamaları gerçekleştirdiğinizde, ilgili user için login sonrası uyarı maili alacaksınız. Bu işlemi mailx uygulamasını kullanarak ve ardından .bashrc dosyasında bir kaç satır ekleme ile halledeceğiz.

İlk önce aşağıdaki komutla mailx uygulamasını kuralım.

Debian (aynı aileye mensup tüm sistemlerde geçerlidir) OS’lar için;

> sudo apt install mailx -y

CentOS(RedHat ve aynı aileye mensup tüm sistemlerde geçerlidir ) OS’lar için;

> yum install mailx -y

Ardından kurulum bittikten sonra herhangi bir editör yardımıyla istediğiniz kullanıcının .bashrc dosyasına aşağıdaki kodu ekleyin. Tabi ServerName (Sunucu HostName ile), your@yourdomain.com (Uyarı gönderilecek mail adresi ile) değiştirin. Aşağıda görsel olarak örneklendirilmiştir.

> echo ‘ALERT – Root Shell Access (ServerName) on:’ `date` `who` | mail -s “Alert: Root Access from `who | cut -d'(‘ -f2 | cut -d’)’ -f1`” your@yourdomain.com

.bashrc dosyasını aşağıdaki komut ile görebilirsiniz.

> ls -la

> vi .bashrc

En alt satıra ekledim.

Test edelim ve root ile ssh bağlantısı gerçekleştirelim. Ardından uyarı mailinin geldiğini göreceksiniz.

NoT : Ev kullanıcıları için mail gönderimi gerçekleşmiyecektir çünkü mailing yani spam önünü alabilmek için 25 portu dışarı kapalıdır. Ayrıca PTR kaydı fln gerekiyor derken son kısımda muhtemelen işlem gerçekleşmeyecektir. Yoksa buraya kadar yapılan tüm işlemler doğru.

Bu işlemi başka bir smtp sunucusu üzerinden de yapabilirsiniz. From kısmını da belirtebilirsiniz. Yukarıda .bashrc kısmını aşağıdaki gibi yapılandırarak bu işlemi gerçekleştirebilirsiniz.
> echo ‘ALERT – Root Shell Access (ServerName) on:’ `date` `who` | mail -s “Alert: Root Access from `who | cut -d'(‘ -f2 | cut -d’)’ -f1`” -S smtp=smtp://smtpsunucuip -S from=”gönderici mail adresi” $”gönderilecek mail adresi

https://www.systutorials.com/5167/sending-email-using-mailx-in-linux-through-internal-smtp/

Linux Apache ve Nginx WordPress Web Server Üzerine WildCard SSL Kurulumu

Linux üzerine apache olur, nginx olur ki globalde en çok kullanılan web servisleri bunlardır. Bu servislere ssl işi ilk etapta herkesi korkutmaktadır. Aslında bu iş çok kolay diye herkes aynı şeyi söyleyebilir, doğru kolay fakat işin mantığını anladıktan sonra kolaydır yoksa bilmeyen için zor, bilen için tabi ki kolaydır. Ben bu makalede ssl kurulumundan bahsedeceğim, hemde kendimde ssl kurarken yaşadığım deneyimlerden bahsedip konuyu ele almaya çalışacağım. Web server nedir, apache nedir, nginx nedir, http ve https nedir gibi konulara değinmeden, bildiğinizi farz ederek devam edeceğiz ki bu konulara girersek mesele haliyle çok uzayacaktır fakat http ve https mevzusunu tekrar bir gözden geçirmenizde fayda var. Her ihtimale karşı kısa kısa aşağıda konuya girmeden değinelim.

Tabi yine ssl kurulumuna girmeden önce sertifika nedir, ssl nedir, ssl çeşitleri ve uzantıları, openssl nedir, csr nedir gibi bir kaç terimden bahsedelim. Standart her yerde olan tanımlarına değinelim zaten konuya ilerledikçe ve yaptıkça daha da hakim olacağız.

Web Server nedir : Hosting(barındırma) işlemini İnternet protokolü üzerinden sunan bir sunucudur yada servistir desek daha doğru. Diğer bir ifade ile, bir web sitesinde yayınlanmak istenen sayfaların, resimlerin, videoların veya dokümanların globalde kullanıcılar tarafından erişebilmesini sağlayan sunucudur.

Apache nedir : Açık kaynak kodlu ve özgür bir web sunucu programıdır.

Nginx nedir : Rus yazılım mühendisi Igor Sysoev tarafından geliştirilen hafif, stabil, hızlı bir mail istemcisi olarak kodlanan daha sonraları geliştirilerek tüm sunucular için uygun hale getirilen bir web sunucusudur.

Http nedir : Hyper Text Transfer Protocol” yani “Hiper Metin Transfer Protokolü“dür. 1990 yılından beri dünya çapında ağ üzerinde (www-world web wide) kullanılan bir iletişim protokolüdür. HTTP protokolü ağ üzerinden web sayfalarının görüntülenmesini sağlayan protokoldür.

Https nedir : “Secure Hyper Text Transfer Protocol” yani Türkçesiyle güvenli hiper metin aktarım iletişim kuralı anlamına gelmektedir. HTTP‘nin SSL sertifikası eklenerek daha kullanışlı ve güvenilir hale getirilmiş şeklidir.

Domain nedir : İnternet ortamında ip adresleri kolay hatırlanamayacağından onlara karşılık gelecek olan, sizin internette var olmanıza olanak tanıyan kimliğiniz diyebiliriz. Yani en basit deyimiyle internet sitelerinizin isimleri. Fatlan.com gibi, google.com gibi, youtube.com gibi gibi.

Subdomain nedir : Yukarıdaki domain tanıma bağlı olarak ilgili domain için kullanabileceği alt domainlerdir. Yani fatlan.com için www.fatlan.com, arge.fatlan.com, video.fatlan.com, mail.fatlan.com gibi gibi. Bu kısımda DNS ile ilgili yazdığım iki makaleyi gözden geçirmenizde fayda var.

URL nedir : “Uniform Resource Locator” teriminin baş harflerinden oluşan kısaltmadır. Aslında adres” dediğimiz şeydir.

URL Redirect(Yönlendirme) nedir : Bir URL’ye gelen istekleri başka bir URL’ye iletme yani geçici veya kalıcı olarak yönlendirme işlemidir. URL yönlendirme birçok sebep için kullanılabilir.

URL Rewrite nedir : “URL Yeniden Yazma” yani website URL’lerinin uzun ve karmaşık yapısını daha anlaşılır hale getirme işlemine verilen isimdir.

Sertifika nedir : Herhangi bir nesneye niteliğini ya da kendisine verilmiş olan bir hakkı belirten resmi belgedir.

SSL yada SSL Sertifika nedir : Server ile alıcı iletişimi esnasında verilerin şifrelenerek yapılması işlemidir. En bilinen kullanımı ise, web sitesindeki veri alışverişi esnasında, server ile internet tarayıcısı arasındaki iletişimi şifrelenme sidir.

SSL sertifika çeşitlerine gelince temelde iki daha sonra kendi aralarında üçe ayrılır.

1. Doğrulama türüne göre ssl sertifikası : yani ssl satın alırken istenen belgeler doğrultusunda değişen sertifika türüdür.

         1.a : DV (Domain Validation) SSL : Domain doğrulama tipi sertifikadır. Belge gerektirmemesi ve sertifikanın anında üretilmesi sebebiyle tercih edilir.

         1.b : OV (Organization Validation) SSL : Organizasyon doğrulama tipi sertifikadır. Onay süreci kuruma ait belgelerle birlikte tamamlanır.

         1.c : EV (Extended Validation) SSL : Genişletilmiş doğrulama tipi sertifikadır. En gelişmiş sertifika ve pahalı bir sertifika türüdür. DV ve OV SSL sertifikalarının tüm özelliklerini barındırır, EV SSL sertifikaları web tarayıcılarında yeşil bar içerisinde kuruma ait unvanın da kullanıcılara gösterilmesini sağlarlar. Örnekler aşağıda belirtilmiştir.

2. Kullanım Alanına (Domain Tipine) Göre SSL Seritifikaları : yani domain yada bir yada birden fazla subdomain kullanıma göre değişen sertifika türüdür.

         2.a : Tek Domain / Standart SSL Sertifikaları : Subdomainler olmadan tek bir domain için kullanabilir sertifika türüdür. Yani fatlan.com için olabilir yada www.fatlan.com gibi.

         2.b : Multi Domain SSL Sertifikaları : İlgili domain için belirlediğiniz birden fazla olarak subdomainle birlikte kullanabileceğiniz sertifika türüdür. Örneğin fatlan.com, www.fatlan.com, arge.fatlan.com, video.fatlan.com gibi.

         2.c : Wildcard SSL Sertifikaları : Sertifikanın kullanıldığı domainin tüm subdomainlerinin imzalanmasını sağlayan sertifika tipidir. Yani ilgili domain için “multi domain gibi önceden belirlemenize gerek kalmadan+n tane subdomaini için kullanabileceğiniz sertifika türüdür.

Ayrıca ilgili linki de inceleyebilirsiniz https://www.sslnedir.com/ssl-cesitleri-ssl-sertifikasi-turleri-nelerdir/

Sertifika uzantı dosyalarını başta belirtelim ki kafada bir karışılık olmasın. Daha çok karşınıza çıkacak *.crt, *.cer, *.der, *.pem, *.pfx, *.key gibi gibi, daha farklı formatlar tabi ki mevcut ama konu ilgili olarak genelde bu uzantılı sertifikalar ile meşgul olacaksınız. Ama cer/crt ve pem den biraz bahsedelim. İlgili domain için birincil sertifika uzantısı cer/crt olacaktır. Pem dosyası ise sertifika dosyalarının birleştirilmiş kapsayıcısıdır. Bundle edilmiş halidir diyebiliriz. PEM sertifikası Base64 ile kodlanmış ASCII dosyasıdır. Aşağıdaki örnek bir sertifika görüntüleyerek açıklamak gerekirse ;

Mouse’la seçili olan alan *.google.com wildcart ssl’i cer/crt’ye karşılık gelen dosyadır.

Sertifika hiyerarşisi olarak kırmızı seçili alan;

-GeoTrust Global CA

     -Google Internet Authority G2

          -*.google.com ise pem dosyasına karşılık gelir.

Pem dosyasını biraz daha açacak olursak birden fazla ssl dosyasının, içine aktarıldığı kapsayıcı ssl dosyasıdır. Pem’de ssl zinciri oluşturmanın kuralı vardır ve o kurala göre oluşturulur. Pem dosyası herhangi bir editör uygulamasıyla düzenlenebilir. SSL zinciri temel olarak aşağıdaki kurala göre bundle edilir. Google örnek olarak ele alınmıştır.

1.Birincil Sertifika – YourDomainName.crt

2.Orta Sertifika – DigiCertCA.crt

3.Kök Sertifika – TrustedRoot.crt yani aşağıda;

—–BEGIN CERTIFICATE—–
(
Birincil SSL sertifikası google.com.cer dosyasının içeriği)
—–END CERTIFICATE—– 

—–BEGIN CERTIFICATE—–
(Sertifikanızı imzalayan Alt KÖK Makamı/
Orta-Ara Sertifika googleinternetauhority.cer dosyasının içeriği)
—–END CERTIFICATE—– 

—–BEGIN CERTIFICATE—–
(Alt KÖK Makamını imzalayan KÖK Makamı/
Kök Sertifika geotrustca.cer dosyasının içeriği)
—–END CERTIFICATE—–

Pem dosyasını anlamak adına, ayrıntılı bilgi için https://www.digicert.com/ssl-support/pem-ssl-creation.htm linkini mutlaka inceleyin.

Gene burada bir püf nokta paylaşayım. WildCard SSL’i satın alırken diyelim *.fatlan.com olarak talep ettiğinizde fatlan.com’u alternatif name’i WildCard SSL’inizin içermesi gerekiyor, buna dikkat edin. Aksi taktirde COMMON NAME hata mesajını alacaksınız. Ki bu common name uyarısını alırsanız ya domain name düzgün konfigure edilmemiştir yada ssl sertifikanız common name kısmı ile alakalı olarak DomainName’inizi desteklemiyordur. Bu hatayı aldığınızda, düzeltmek için Server Name’inizi yada HostName’inizi değiştirmeyin, sorun düzelmeyecektir. Aşağıdaki linki incelemenizi tavsiye ederim. Bu adreste RFC‘ye de referans verilmiş.

https://serverfault.com/questions/310530/should-a-wildcard-ssl-certificate-secure-both-the-root-domain-as-well-as-the-sub

SSL den bu kadar bahsettik şimdi gelelim bir ssl’imizin olabilmesi için yani bir ssl satın alabilmek için yapılması gerekenlere, en başta bir *.csr dosyamızın ve *.key private key dosyamızın olması lazım. Bu işleme crs oluşturma, csr generate etme yada csr request de diyebiliriz. Yani her şeyden evvel bir ssl satın alabilmek için web sunucusunda ssl csr isteği oluşturmak gerekli. Bu işlem için OpenSSL’i kullanacağız.

Csr nedir : Certificate Signing Request web sunucunuz tarafından üretilen, içinde web sunucunuza ve SSL sertifikasını kullanacağınız web sitesine dair bir takım veriler içeren koddur. SSL csr dosyasıyla satın alınacaktır.

Private Key nedir : CSR (Certificate Signing Request) oluşturma sırasında kullanılan ve SSL Sertifikasıyla uyumlu bir anahtardır. Private Key dosyasını güvenlik nedeniyle muhafaza ediniz ve 3. şahıslarla paylaşmayınız.

OpenSSL nedir : SSL ve TLS protokollerinin açık kaynak kodlu uygulamasıdır.

Bu aşamada şu link incelenebilir. https://www.bilgiguvenligi.gov.tr/guvenlik-teknolojileri/sertifika-sertifika-olusturma-sertifika-turleri.html

Dediğimiz gibi CSR isteğini OpenSSL ile oluşturacağız bunun için sunucuda openssl uygulaması kurulu olması gerekiyor. Kurulumuna hiç girmeyeceğim konu dağılmasın. Kurulumunu başka bir makalede ele alırsak burada link verebiliriz. Her şeyden önce CSR üretme ile ilgili olarak ortak platformların ve işletim sistemlerinin yer aldığı https://www.digicert.com/csr-creation.htm linkini mutlaka inceleyin.

Bu arada sunucuda birden fazla web sitesi barındırıyorsanız komutlarda oluşturduğunuz ilgili domain’in ismini kullanın. Csr oluşturulması interaktif bir şekilde olacaktır. Sizden bir takım bilgiler isteyecektir (Common name, State, Organization Name vs gibi), bu bilgileri elde edince gerekli dosya oluşacaktır.

Apache ve Nginx için OpenSSL ile aşağıdaki komutları kullanarak csr isteği oluşturabiliriz.

> openssl genrsa -out fatlan.com.key 2048                                      –> *.key private key dosyası oluşur.

> openssl req -new -key fatlan.com.key -out fatlan.com.csr           –> Ssl için *.key dosyasını kullanarak *.csr dosyası oluşur.

yada böyle iki komut girmek yerine aşağıdaki gibi tek komutla da halladebilirsiniz.

> openssl req -new -newkey rsa:2048 -nodes -keyout fatlan.com.key -out fatlan.com.csr

Tabi komuttan sonra istenilen bilgileri girdikten sonra(Common name, State, Organization Name vs gibi).

Tüm bunlara alternatif olarak da interaktif olarak yani komuttan sonra tek tek bilgi girmeden de bu işlemleri tek seferde toptan yapabilirsiniz. Yani aslında istediği tüm bilgileri tek bir komutta toptan verebilirsiniz.

Bunun için ilk önce https://www.digicert.com/easy-csr/openssl.htm link’ini açıp, aşağıdaki resimden de görüldüğü üzere Certificate Details kısmını doldurup, Generate butonuna basıyorsunuz. Daha sonra Information bölümünde kullanacağınız komut seti oluşturuluyor. Siz bunu direk kopyalayıp ilgili sunucuda çalıştırdıktan sonra hem *.key hem *. csr dosyanız otomatik olarak oluşuyor. Tüm işlem bu kadar.

Türkçe kaynak olabilecek bir link http://destek.doruk.net.tr/index.php?/Knowledgebase/Article/View/234/44/csr-oluturma-linux–openssl

Şimdi asıl konumuza geri dönecek olursak elimizde bir Linux Sunucu var ve bunda Apache yada Nginx kurulu ve içerik olarak WordPress kullanıyoruz (WordPress kısmı önemli bir kaç şeyi onun üzerinden değiştireceğiz yoksa ilgili kodda değişiklik yapmak gerekebilir) ve bu sunucuda ilgili Domain için CSR oluştu ve o CSR ile, ilgili domain için istediğimiz SSL Sertifikayı aldık ve Sunucuda $DizinYolu/SSL diye bir dizin oluşturup(siz farklı bir dizin de oluşturabilirsiniz) bu sertifikaları bu dizin içine kopyaladık varsayıyorum.

Bu arada Url’inizi adres çubuğunda fatlan.com diye çağırdığınızda www.fatlan.com olarak gelmesini sağlamalısınız. Zaten bu bir standarttır. Yani screenshot’lardan anlaşılacağı üzere adres çubuğuna  yazıp enter’a bastığınızda siteniz  olarak açılmalıdır.

Bunun ayarı aşağıdaki screenshot’tan anlaşılacağı üzere WordPress’te Ayarlar(Settings)-Genel(General) sekmesine giderek aşağıdaki şekilde yapılabilir. Siteniz WordPress değilse kod tarafında bu değişikliği yapmalısınız. Daha sonra burada başka bir ayar daha yapacağız (http-https url redirect) onuda ilerde bahsedeceğim.

Apache için SSL kurulumu;

Ssl aldık ve sunucuda diyelim /root/ssl klasörünün içine attık, zaten apache için hali hazırda http(80) üzerinden çalıştığı için VirtualHost tanımı mevcut olmalıdır. Şimdi biz ise VirtualHost tanımını içine https(443)‘ü aşağıdaki görüldüğü üzere ssl’li bir şekilde ekleyeceğiz.

Domain’imizin fatlan.com olduğunu varsayalım.

etc/httpd/conf-available.d/fatlan.com(ki bu dosyanın /etc/httpd/conf.d/110-fatlan.com.conf gibi olarak linklenmesi olayına hiç girmiyorum) dosyasının içerisindeki VirtualHost tanımına;

Default http(80) üzerinden çalışırken;

<VirtualHost *:80>

ServerAdmin fatlan@fatlan.com               –> Server Yönetici Email Adresi(opsiyonel)

ServerName fatlan.com                             –> İlgili Domain/AlanAdı Adresi

ServerAlias www.fatlan.com                     –> İlgili Domain/AlanAdı www Kayıtlarınında Karşılanacağı(opsiyonel)

DocumentRoot /var/www/fatlan.com/       –> Web Dosyalarımızın Bulunduğu Klasör Yolu, isterseniz farklı dizin yolu kullanabilirsiniz

</VirtualHost>

Daha sonra SSL ile beraber https(443) için satırların eklenmiş hali;

<VirtualHost *:80>

ServerAdmin fatlan@fatlan.com

ServerName fatlan.com

ServerAlias www.fatlan.com

Redirect permanent / https://www.fatlan.com/           –> Bu kısımda ise tüm istekleri https(443)’ye yönlendiriyoruz

DocumentRoot /var/www/fatlan.com/

</VirtualHost>

<VirtualHost _default_:443>

ServerAdmin fatlan@fatlan.com

ServerName www.fatlan.com

DocumentRoot /var/www/fatlan.com/

SSLEngine On                                                            –> SSL’i aktif ediyoruz

SSLCertificateFile /root/ssl/fatlan.com.cer                 –> İlgili Domain sertifikamızı belirtiyoruz

SSLCertificateKeyFile /root/ssl/fatlan.com.key         –> İlgili Domain için key dosyamızı belirtiyoruz

SSLCertificateChainFile /root/ssl/fatlan.com.pem     –> İlgili domain için bundle edilmiş sertifikamızı belirtiyoruz

SSLProtocol all -SSLv2 -SSLv3                                –> Güvenlik sebebi için SSLv2 ve v3 pasif duruma getiriyoruz

</VirtualHost>

Tamda bu aşamada iki önemli bilgi daha paylaşayım;

İlki : Sunucuda birden fazla web site barındırıyor iseniz, <VirtualHost *:80> yada <VirtualHost _default_:443> tanımları için kullanılan * ve _default_ yerine sunucunuzun ip adresini yazarsanız domain sunucuyu kendine tahsis edecektir yani diğer mevcut web sayfalarını açmak istediğinizde açılmayacak, yerine bu sayfa açılacaktır.

İkincisi : <VirtualHost *:80> tanımındaki Redirect permanent satırı yani 80’den 443’e yönlendirme satırı, evet bu istediğimiz işlemi yapacaktır fakat bunun yerine site yapımız WordPress olduğu için bu kısmı WordPress’te Ayarlar(Settings)-Genel(General) sekmesine giderek aşağıdaki şekilde yapabiliriz ve aslında <VirtualHost *:80> tanımını da VirtualHost dosyasından komple kaldırabiliriz. Zaten WordPress’te bu ayarlama yapıldığı vakit o işlemi WordPress yapacaktır. Ben her iki ayarı da aktif şekilde kullandım.

Nginx için SSL kurulumu;

Ssl aldık ve sunucuda diyelim /root/ssl klasörünün içine attık, zaten nginx için hali hazırda http(80) üzerinden çalıştığı için VirtulHost tanımı mevcut olmalıdır. Şimdi biz ise VirtualHost tanımı içine https(443) tanımını aşağıdaki şekilde ssl’li bir şekilde yapacağız.

Domainimizin fatlan.com olduğunu varsayalım.

/etc/nginx/sites-available/fatlan.com.conf(ki bu dosyanın /etc/nginx/sites-enabled/fatlan.com.conf olarak link’lenmesi olayına hiç girmiyorum) dosyasının içerisindeki VirtualHost tanımına;

Default http(80) üzerinden çalışırken;

server {

             listen 80;                                                                                        > Bu kısım istek tipi

             server_name fatlan.com;                                                               > İlgili Domain/AlanAdı Adresi

location / {

              try_files $uri $uri/ $uri$args $uri$args/ /index.html;

              root /var/www/fatlan.com;                                                           > Web Dosyalarımızın Bulunduğu Klasör Yolu

              index index.html index.htm;

                 }

}

Daha sonra SSL ile beraber https(443) için satırların eklenmiş hali;

server {

             listen 80;

             server_name fatlan.com;

             return 301 https://www.fatlan.com;                                —> Bu satırda istekleri https(443) yönlendirir, yani URL Redirect

location / {

              try_files $uri $uri/ $uri$args $uri$args/ /index.html;

              root /var/www/fatlan.com;

              index index.html index.htm;

                  }

}

server {

             listen 443;

             server_name fatlan.com;

             ssl on;                                                                              —> SSL’i aktif ediyoruz

             ssl_certificate /root/ssl/fatlan.com.pem;                          —> İlgili Domain sertifikamızı belirtiyoruz

             ssl_certificate_key /root/ssl/fatlan.com.key;                   —> İlgili Domain için key dosyamızı belirtiyoruz

location / {

              try_files $uri $uri/ /index.html;

              root /var/www/fatlan.com;

              index index.html index.htm;

                 }

}

Hepsi bu kadar, Tüm tanımlarımız tamamsa test edebiliriz. Buraya kadar her şey doğru ise siteye bağlanırken adres çubuğuna fatlan.com yazıp enter’a bastığımız zaman https://www.fatlan.com adresine bağlanıp sertifikayı aktif etmelidir ve adres çubuğunda https’ye kadar olan kısım yeşil görünmelidir. Aşağıdaki gibi.

Her şey tamam fakat yeşil görünmüyorsa bir yerde bir şey vardır. Alttaki resimden de anlaşılacağı üzere, seçili alanda uyarı verecektir.

Hatanın bir sebebi de https(443) olarak getirilen sitede sayfa içerisinde http(80) ile çağrılmaya çalışılan url’ler varsa bundan kaynaklı, sayfa Insecure görünüp yeşil gösterilmeyebilir. Bu linkleri düzeltip https’ye çevirmelisiniz.

Bunu için sayfayı açtıktan sonra alttaki screenshot’tan da anlaşılacağı üzere;

Mozilla Fİrefox ise : sağ click – Inspect Element

Google Chrome ise : sağ click – Inspect tıklayıp Console sekmesine geliyoruz. Evet bu bölümde https(443) ile çağırılan sayfada http(80) ile çağrılmaya çalışılan linkleri kızarık bir şekilde belirtecektir. Bu linkleri https(443) çevirdikten sonra yani kızarıklıkları yok ettikten sonra sayfada ssl kısmı secure görünüp yeşil‘lenecektir.

Yukarda belirtmiştim tekrar belirtmekte fayda var Wildcard satın alırken örneğin *.fatlan.com için aldığınız SSL’e alternatif name olarak fatlan.com’unda bulunması gerekli yoksa şöyle bir şey söz konusu olabilir. Sitenize ilk defa bağlanan biri yada tüm çerezleri silip inatla manuel olarak https://fatlan.com yazarak siteye bağlanmaya çalıştığında ssl https://www.fatlan.com yönlendirirken çakılıp fatlan.com comman name’i bulamayacağı için Insecure Connection hatası verecektir. Aşağıdaki görselden de anlaşılabilir.

En son olarak konu ile ilgisi var ama tam olarak hedefi Virtual Hosts(Sanal Konak) tanımlama ve çeşitleri  https://httpd.apache.org/docs/current/tr/vhosts/examples.html linkini inceleyebilirsiniz, kafanız karışırsa unutun gitsin. İleride bu konuya da bir makale ile değineceğiz.

Aklıma gelenler bunlar, umarım faydalı olur. Eksik yada hatalı gördüğünüz kısımları belirtirseniz sevinirim ve düzeltmeye çalışırız.

 

Kali Linux 2016.2 E17 Kurulumu On VM VirtualBox/VMware

Kali Linux Offensive Security Ltd. tarafından geliştirilen Debian tabanlı amaca yönelik olarak digital forensics (adli bilişim) ve penetration testing(sızma testleri) olarak 2013 yılında oluşturulmuş güvenlik kontrol işletim sistemi bir Linux dağıtımıdır. Tr wiki adresinden detaylara ulaşabilirsiniz.

Kuruluma geçmeden önce Kali Linux Kullanmalı mıyım? diye güzel bir yazı var, okumanızı tavsiye ederim. Ardından Kali Linux edin adresinden istediğiniz  desktop environment seçeneği olan iso dosyasını indirin.

Kali Linux minumum yükleme gereksinimleri

  • 10GB disk alanı
  • i386 ve amd64 mimarileri için minumum 512MB ram
  • CD-DVD yada USB boot aygıtı (kali yüklemek için)

İstediğiniz sanallaştırma platformunda VMware yada VM VirtualBox gibi. VM makina oluşturduktan sonra Kali Linux iso’sunu mount edin ve makinayı başlatın. Ben 30GB disk alanı, 2GBram 1soket 2çekirdek vs bir makina oluşturdum ve Kali iso’sunu attach edip makinayı başlattım.

Başlama ekranı aşağıdaki gibi olup bir çok başlatma seçeneği mevcuttur. Biz sabit diskimize grafiksel yükleme seçeneği olan ‘Graphical İnstall‘ seçeneğini seçip kurulum işlemine başlıyoruz.

kalli1

Dil belirleyip devam ediyoruz.

kalli2

Lokasyon bilgimi ‘Turkey‘ olarak belirliyorum, siz isterseniz farklı bir seçenekte kullanabilirsiniz.

kalli3

Klavyemi Turkish Q olarak belirleyip, devam ediyorum.

kalli4

Defaultta gelen root user için paralo belirledikten sonra devam ediyorum.

kalli5

Disk tarafında şuan için özel bir ayar gerekmediği için ‘Guided – use entire disk‘ seçip devam edelim.

kalli6

Disk partition seçip devam edelim.

kalli7

Dosya dizin yapısına atanacak disk alanı için biz şuanlık ‘All files in one partition‘ seçeneğini seçip devam edelim.

kalli8

Ve disk yapılandırmasını bitiren ‘Finish partitioning and write changes to disk‘ seçip Continue ile devam edelim.

kalli9

Disk tarafında yapılan tüm değişiklikleri onaylamak için ‘Yes‘ seçip devam edelim.

kalli10

Kurulum yapılıyor.

kalli11

Paket yönetimi yapılandırması için ‘Yes‘ ile devam ediyoruz.

kalli12

İsterseniz proxy bilgisi girebilirsiniz. Biz girmeden devam ediyoruz.

kalli13

GRUB boot loader kurulumu için ‘Yes‘ ile devam ediyoruz.

kalli14

Yükleme işlemi tamamladı ve Continue ile devam edelim.

kalli15

Reboot olduktan sonra aşağıdaki gibi consol ekranında başlayacaktır. Bu ekrana BackTrack‘tan aşina olabilirsiniz. User root ve kurulum ekranında belirlediğiniz şifre ile login olacaksınız. Şimdi burdan GUI (Grafichal User Interface) tarafına geçeceğiz fakat geçmeden network ayarlarını yapacağız. tabi network ayarlarını GUI aktif olduktan sonra da yapabliriz fakat ben burda yapıp daha sonrasında GUI tarafına geçiş işlemini anlatacağım.

kalli16

ping ve ifconfig komutları ile network tarafının çalışmadığını görebiliyoruz.

kalli17

> ls /sys/class/net komutu ile interface name tarafını öğreniyoruz. eth0 bizim çıkış ethernetimizi, lo ise local loopback iafede etmektedir.

kalli18

> vi /etc/network/interfaces komutu ile network tafarını yapılandıralım. siz nano komutunu da kullanabilirsiniz.

kalli19

Açılan ayarlar kısımında enp0s3 kısımlarını eth0 yazıp, değiştiriyoruz. Tabi bu dhcp den otomatik ip alacaktır. İşlem bu kadar, kaydedip çıkın.

Statik yapılandırma için aşağıdaki veriyi dosyaya yazmanız gerekecektir;

auto eth0

iface eth0 inet static

address 192.168.1.34

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.1.255

gateway 192.168.1.1

dns-nameservers 8.8.8.8

kalli20

kalli21

Daha sonra ifup komutu ile interface yi aktif edelim.

> ifup eth0

kalli22

ifconfig ile ip aldığınız ip’yi görebilir, ping ile test edebilirsiniz.

kalli23

Şimdi BackTrack‘tan da aşina olduğumuz startx komutu ile GUI ortamına geçiş yapıyoruz.

> startx

kalli24

İlk kurulum olduğu için GUI içinde gerekli yönergeneleri gerçekleştirip aktif edeceğiz. İlk olarak dil seçip Next ile devam edelim.

kalli25

Klavye’yi seçip devam ediyoruz.

kalli26

Computer‘ seçip devam edelim.

kalli27

Text format boyutunu seçip devam edelim.

kalli28

Next ile devam edin.

kalli29

Network‘ün aktif olduğunu görüyoruz, eğer consol ekranında yapmasaydık bu kısımda disable olarak görünecekti. Next ile devam edin.

kalli30

Next ile devam edin.

kalli31

Tekrar Next ile devam edin.

kalli32

Son olarak Next dedikten sonra masaüstü ortamı aktif olacaktır.

kalli33

Ve karşınızda e17 masaüstü ortamı ile KALİ LİNUX

kalli34

Tüm bu işlemlerin ardından yapılması gereken temel bir hareket var. Eğer makinanız VM VirtualBox üzerinde çalışıyorsa ‘VirtualBox Guest Additions‘, eğer VMware platformunda çalışıyorsa ‘VMware Tools‘ paketleri kurulmalıdır. Bunları bir sonraki makalemizde ele alacağız.

Windows Sistemlerde Daha Önceden Kullanılmış Wi-Fi Şifrelerini Elde Etme

Windows işletim sistemimizde daha önceden kullanılmış ve hali hazırda kullanılan wi-fi ssid ve şifrelerini iki yolla elde edebiliriz. Bunlardan birincisi GUI(graphical user interface) diğeri Command Promt aracılığı iledir. Biz her iki yöntemi de kullanarak gösterilim.

ilki GUI ile; ben işlemleri Windows 10 üzerinde göstereceğim, diğer sürümlerde görünüm farklılık gösterebilir.

ilk olarak sistemin sağ alt köşesinde bulunan Network işaretini yada Denetim Masası‘ndan Network and Sharing Center (Ağ ve Paylaşım Merkezi) tıklayın

winwifigui1

Ardından Wi-Fi yayınını tıklayın,

winwifigui2

Daha sonra Wireless Properties sekmesini tıklayın.

winwifigui3

Ve son aşama olarak Security sekmesinden Show characters opsiyonunu aktif edin, clear text olan şifre görünür olacaktır.

winwifigui4

Bu işlemle anlık bağlı olduğunuz yayının şifresini elde ettiniz. Bu zamana kadar bağlanmış olduğunuz tüm yayınların şifresini elde etmek için Command Promt kullanablirsiniz. Şimdi komut aracılığı ile işlemleri gerçekleştirelim. ilk olarak aşağıdaki komut ile tüm yayın profilleri listeleyelim.

> netsh wlan show profiles

winwificmd5

Daha sonra şifresini elde etmek istediğimiz profili belirterek şifresini clear text olarak bize yansıtmasını isteyelim.

> netsh wlan show profiles ‘profil ismi’ key=clear

winwificmd6

Ve işlem bu kadar, fakat profilin tüm değerleri yerine sadece key değerini görmek için komutun sonunda aşağıdaki gibi key için atanan findstr değişkenini belirtirseniz daha hızlı sonuç elde edersiniz.

> netsh wlan show profiles ‘profil ismi’ key=clear | findstr Key

winwificmd7

 

Linux Sistemlerde Daha Önceden Kullanılmış Wi-Fi Şifrelerini Elde Etme

Linux işletim sistemimizde daha önceden kullanılmış ve hali hazırda kullanılan wi-fi ssid ve şifrelerini iki yolla elde edebiliriz. Bunlardan birincisi GUI(graphical user interface) diğeri terminal aracılığı iledir. Biz her iki yöntemi kullanarak gösterilim.

ilki GUI ile; ben işlemleri Ubuntu üzerinde göstereceğim, diğer dağıtımlarda görünüm farklılık gösterebilir.

ilk olarak sistemin sağ üst köşesinde bulunan wi-fi yayın işaretini tıklayıp ardından Edit Connections… sekmesini tıklayın.

wififget1

Daha sonra kırmızı alanla listelenen wi-fi bağlantılarınızdan şifresine ulaşmak istediğiniz bağlantıyı tıklayarak Edit butonuna basın.

wifiget2

Ardından Wi-Fi Security sekmesini tıklayarak Show password seçeneğini aktif edin ve şifre görünür olacaktır.

wifiget3

İkinci yöntem ise Terminal kabuk aracılığı ile;

Aslında bağlandığınız wi-fi’ler şifrelenmemiş text dosyası olarak sistemde saklanmaktadır. Bizler o text dosyasına ulaşıp içini okuma yöntemi ile bilgilere erişiyoruz. Tabi bu işlemleri root olarak yapmalısınız değilseniz komutların başında sudo ekini kullanınız. İlk olarak wi-fi bağlantıları clear text olarak saklanan directory’e (/etc/NetworkManager/system-connections/) cd komutu ile giriyoruz.

> cd /etc/NetworkManager/system-connections/

wifiget4

Ardından ls -lash komutu ile wi-fi bağlantılarını barındırdığı şifrelenmemiş text dosyalarını detaylı olarak listeliyoruz.

> ls -lash

wifiget5

Daha sonra kırmızı alandaki wi-fi bağlantılarından şifresini elde etmek istediğimiz clear text dosyasını cat komutu ile okuyoruz. Ve SSID, Şifre ve ayrıca diğer bilgileri elde ettik.

> cat ‘wifibaglantiadi’

wifiget6

Mysql Root Parolasını Elde Etme – How Can I Find Out Mysql Root Password (DirectAdmin)

DirectAdmin sunucunuzda phpmyadmine yada db ye bağlanacaksınız ama MySQL root parolasını unutmuş yada bilmiyor olabilirsiniz. Fakat sunucuya login olabiliyorsanız MySQL şifresini elde edebilirsiniz.

Bu işlem için sunucuya konsol yada ssh yöntemi ile login olduktan sonra aşağıdaki komutu çalıştırarak gerçekleştirebilirsiniz.

> cat /usr/local/directadmin/conf/mysql.conf

 

Windows Sistem Üzerinde Depolanan Kullanıcı Adı ve Parolaları Yönetme

Sistem üzerinden herhangi bir yere ağ üzerinden bağlanırken kullanıcı adı ve şifre kısmına hatırla seçeneği aktif olduğunda sistem şifreleri kayıt eder ve her seferinde bir daha kullanıcı adı ve şifre girmeden sadece tıklama ile bağlanabilirsiniz. Peki bu şifreleri basitçe nereden yönetebiliriz ona bir göz atalım. Bunun iki yolu var,

Birincisi Control Panel(Denetim Masası)- Credential Manager(Kimlik Bilgileri Yöneticisi)

skpy1

Girilen ve hatırla denilen şifrelerin tümü burada görünecektir.

skpy2

İkinci yöntem ise Windows + R tuşuna bastıktan sonra ‘rundll32 keymgr.dll,KRShowKeyMgr’ yazıp enter’a basın.

skpy3

Gelen menüde şifrelerinizi editleyebilir, backup’ını da alabilirsiniz.

skpy4

Wi-Fi Sense – Windows 10

Microsoft Windows Phone’da da olan bu özelliği Windows 10 ile birlikte hayatımıza getirdi fakat bir takım endişeler ve tartışmalar ardı sıra geldi.

Tam olarak ne yapıyor Wi-Fi Sense, bulunan Share network with my contact kutucuğunu işaretlerseniz Microsoft account’larınızda, Facebook’unuzda bulunan kişi listelerinizine bu ağı paylaşıyor.

s1

Microsoft’un dediğine göre paylaşılan ağ şifresi şifreli bir şekilde Windows sunucusuna gidiyor. İhtiyaç duyan kişi listenizdeki arkadaşlarınıza cihazın konumuna vs. bakarak paylaştırıyor. Fakat Hacker’lar için bu şifrelere ulaşmak ne kadar zor veya kolay oda onların kabiliyetine kalmış. Diğer yandan kişi listenizdeki tüm kişiler güvenilir mi? Sadece bu yönden bile bakılsa bu iş tedirginlik verici. Tabi ki bence paylaşım kutucuğu açık olmamalı ayrıca Wi-Fi SSID’inizin sonuna “_optout” ibaresini ekleyince Wi-Fi Sense üzerinden paylaşılmaz hale geliyor diyor Microsoft.  Ayrıntılara bu linkten ulaşabilirsiniz.

Ayrıca Wi-Fi ağ yönetim menüsünden de aşağıdaki işlemleri yaparak paylaşımı kapatabilirsiniz.

s2

İki Aşamalı Kimlik Doğrulama(Two-Step Authentication)!

Sosyal mecrada kullandığınız hesapların güvenliğinden endişe duyuyorsanız, şifrenizin ele geçirilmesinden endişeliyseniz birazdan anlatacaklarım sizin için ilaç mahiyetine gelebilir.

Tüm hesaplarınızda iki aşamalı güvenlik doğrulaması yapmalısınız. Yani giriş yapmak istediğiniz hesabınızın şifresini doğru girseniz dahi hesap yönetimi tarafından mobil cihazınıza yada farklı e-posta adresinize(sizin seçimize bağlı) bir doğrulama kodu gönderir. O doğrulama kodunu girdikten sonra hesabınıza başarılı bir şekilde login olabilmeniz anlamına gelmektedir. Biz temel olarak Gmail, Facebook, Twitter ve Outlook tarafında bu işlemleri nasıl yapabilirsiniz anlatmaya çalışacağız. Varsa diğer hesaplarınızda da aynı işlemleri gerçekleştirebilirsiniz.

Gmail

Gmail hesabınıza login olduktan sonra Hesabım butonunu tıklayın.

gmail1    yada    gmail2-300x228

 

daha sonra karşınıza gelen menüde Oturum açma ve güvenlik sekmesini tıklayın.

gmail3

 

Gelen menüde Şifre ve oturum açma yöntemi panelindeki 2 Adımlı Doğrulama sekmesini tıklayın.

 

gmail4

Kurulumu Başlat butonunu tıklayın.

gmail5

 

Daha sonra 4 adımda işlemlerinizi onaylayıp çıkın.

gmail6

 

Twitter

Twitter hesabınıza login olduktan sonra profiliniz setting/ayarlar kısmına girin.

twt1

 

Daha sonra Security an privacy(güvenlik ve gizlilik) kısmından Send login verification request to(Giriş doğrulama isteği gönder) diyerek tanımlı mobil cihazınıza giriş için güvenlik kodu gönderilmesini sağlayabilirsiniz. Eğer profilinizde herhangi bir numara tanımlı değilse Mobile/Telefon sekmesinden tanımlamayı yapınız.

twt2

 

Facebook

Facebook profilinize login olduktan sonra Ayarlar/Settings kısmına girin.

fcbk1

Daha sonra Güvenlik Ayarları/Security Settings kısmından Giriş Onayları/Login Approvals kısmına gelip Check edin.

fcbk2

 

Daha sonrasında karşımıza gelen menü yardımıyla işlemlere Başla deyip sonrasında tamamlayıp sonlandırın.

fcbk3

 

Microsoft Account

Hesabınıza login olduktan sonra sağ üst köşedeki profilinizi tıklayıp Hesap Ayarları‘nı tıklayın.

ma1

 

Daha sonra Güvenlik ve Gizlilik sekmesini tıklayın. Tabi bu sayfaya girebilmek için Microsoft sizden cep telefonunuza yada ikincil e-posta hesabınıza doğrulama kodu göndermenizi isteyecektir. Teyit ettikten sonra giriş yapabilirsiniz.

ma2

 

O sayfanın biraz altındaki İki basamaklı doğrulama kısmına gelip, İki basamaklı doğrulama ayarlayın sekmesini tıklayın.

ma3

 

İleri diyerek işlemleri başlatıp tamamlayın.

 

ma4

 

Gerçek Zamanlı Siber Savaş Haritası NORSE!

Norse ABD merkezli bir güvenlik firmasıdır. Dünya üzerinde içinde TÜRKİYE’ninde bulunduğu yaklaşık 40’a yakın ülkeyi kapsayan gerçek zamanlı siber atakları izlemeye olanak sağlayan map.ipviking.com üzerinden kullanıcılara sunmaktadır. Haritaya saldırının hangi ülkeye yapıldığı, saldırının kaynağı, türü ve diğer saldırı detayları gibi bilgiler interaktif olarak aktarıldığından dolayı birçok bilgiyi izlemek mümkün hale geliyor.

norse1

Haritaya buradan göz atabilirsiniz.

Bad USB

Siber dünyanın kıyamet silahı Bad USB

Bad USB, USB’lerin donanım yazılımını ele geçiriyor. Böylece, her gün USB ile bilgisayarınıza bağladığınız klavye, fare, USB bellek, harici disk gibi birçok cihaz doğrudan hacker saldırıları için araç haline dönüşüyor.

Tehdit bilgisayarınıza USB ile bağlanacak herhangi bir cihazın hacker saldırısı için ayarlanabilmesi anlamına geliyor.

Etkileri ise şu şekilde özetlenebilir;

– Cihaz, klavyenizi taklit edebilir ve kendi komutlarını göndermeye başlayabilir. Böylece, kötü amaçlı yazılım yükleyebilir veya veri çalabilir.

– Cihaz, ağ kartı taklidi yaparak bilgisayarın “alan adı sistem” ayarlarını değiştirebilir. Hacker bu şekilde URL çubuğuna yazacağınız bir adrese gittiğiniz zaman trafiğinizi gizlice yönlendirebilir.

– Bad USB taşıyan cihazlar, bilgisayar henüz açılırken, antivürüs yazılımları kontrol etme imkanı bulmadan sisteme bulaşabilir.

 

 

Daha fazla bilgi için linki ziyaret edebilirsiniz.

Ürünü hakshop.myshopify.com inceleyebilirsiniz.