Ubuntu yeni kullanıcı ekleme işlemleri

12 May

Ubuntu ortamında kullanılan “sudo” komutu, “super user do” anlamına gelmektedir. Yani sudo komutunu kullanmak için yönetici yetkilerine sahip olmak gerekmektedir. Bir kullanıcının super user olması için “sudo” grubuna dahil olması gerekmektedir. Öncelikle bir kullanıcı oluşturulması gerekmektedir.

1. Giriş

sudo yetkili kullanıcıların oluşturulabilmesi için öncelikle root kullanıcısı ile ya da root yetkili bir kullanıcı ile giriş yapmak gerekmektedir.

ssh root@server_ip_address

2. Kullanıcı hesabı oluştur

Yeni kullanıcı oluşturmak için adduser ve useradd komutları kullanılır.

useradd ve adduser komutları arasında ne fark var?

useradd , aslında sistemle derlenmiş yerel bir binary dosyadır. adduser ise arka tarafta useradd binary dosyasını kullanan bir perl script’tir.

2.1  adduser komutu ile kullanıcı ekle

Yeni kullanıcı oluşturma işlemi adduser komutu ile yapılmaktadır. Örneğin bucuncu adında bir kullanıcı oluşturmak için gerekli komut aşağıdaki şekildedir.

adduser bucuncu

Komut çalıştırıldığında aşağıdaki işlemler gerçekleştirilerek kullanıcı hesabı ve dosyaları oluşturulur.

root@localhost:~# adduser bucuncuAdding user `bucuncu’ …
Adding new group `bucuncu’ (1001) …
Adding new user `bucuncu’ (1001) with group `bucuncu’ …
Creating home directory `/home/bucuncu’ …
Copying files from `/etc/skel’ …
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for bucuncu
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y

Parolayı girdikten sonra, kullanıcı için otomatik olarak bir giriş dizini oluşturur, giriş dizinindeki birkaç yapılandırma dosyasını kopyalar ve yeni kullanıcının bilgilerini ayarlamanız istenir. Tüm bu bilgileri boş bırakmak istiyorsanız, varsayılanları kabul etmek için ENTER tuşuna basmanız yeterlidir..

adduser komutu, kullanıcı hesabının otomatik bir şekilde oluşturan, kullanıcı dostu bir komuttur.

2.2 useradd komutu ile kullanıcı ekleme

useradd komutu, parametreler kullanarak kullanıcı oluşturma işlemi için kullanılan komuttur.

useradd bucuncu -m -s /bin/bash -g users -G dbusers

Bu komut ile kullanıcı oluşturulurken, kullanıcı için gerekli olan tüm parametreler elle girilmelidir.

  • -m parametresi: –create-home anlamına gelir ve eğer daha önce oluşturulmamış ise home/bucuncu dizinini oluşturur.
  • -s parametresi: –shell anlamına gelir. Kullanıcının shell de oturum açması için gereklidir. Bu paramtreyi kullanmadan bir kullanıcı oluşturursanız, /etc/passwd içerisinde kullanıcıyı bucuncu:x:1000:1000::/home/bucuncu:/bin/sh şeklinde bulunur. Bu şekilde oturum açtığınızda terminalde yalnızca $: şeklinde bir terim görürsünüz. Eğer bu parametreyi kullanırsanız, /etc/passwd içerisinde kullanıcıyı bucuncu:x:1000:1000::/home/bucuncu:/bin/bash şeklinde görebilirsiniz. Bu şekilde oturum açtığınızda terminalde komut satırını bucuncu@localhost:~# şeklinde görebilirsiniz.
  • -g parametresi: –gid anlamınag elir. Yani grup id olarak adlandırılabilir.
  • -G parametresi: –groups anlamına gelir. Kullanıcıyı birden çok gruba eklemek için gereklidir.

useradd komutu için gerekli bütün parametrelere buradan ulaşabilirsiniz.

3. Kullanıcıyı sudo grubuna ekle

Ubuntu sistemlerinde varsayılan olarak, sudo grubunun üyelerine sudo erişim yetkisi verilir. sudo grubunda olmayan kullanıcılar sudo komutunu kullanamazlar. Çünkü sudo komutu yönetici yetkilerine sahip işlemler için gereklidir.Oluşturulan kullanıcıyı sudo grubuna eklemek için usermod komutu kullanılır.

usermod -aG sudo bucuncu

4. Yeni kullanıcı ile giriş yap

Oluşturulan yeni kullanıcı ile giriş yapmak için gerekli komut aşağıdaki şekildedir.

ssh bucuncu@localhost

5. Kullanıcı şifresini değiştir

Kullanıcı şifresini değiştirmek için:

sudo passwd bucuncu

komutu kullanılabilir. Komut çalıştığında iki defa yeni şifre girmeniz istenir.

Sonuç

Sudo yetkilerine sahip bir kullanıcı oluşturmayı görmüş olduk. Bu işlemi gerçekleştirirken  useradd ve adduser komutlarının kullanılabileceğini ve bu komutlar arasındaki farkları öğrenmiş olduk. Artık bu kullanıcı hesabıyla Ubuntu sunucunuza giriş yapabilir ve yönetici komutlarını çalıştırmak için sudo komutunu kullanabilirsiniz.

Coğrafi ve Projeksiyon Koordinat Sistemleri

16 Mar

Coğrafi Koordinat Sistemleri

Bir coğrafi koordinat sistemi, (CKS) yeryüzündeki konumları tanımlamak için üç boyutlu küresel bir yüzey kullanır. CKS’ne genellikle datum şeklinde yanlış adlandırılır. Datum, CKS’nin yalnızca bir parçasıdır. Çünkü bir CKS, açısal bir ölçü birimi, bir ana meridyen ve bir datum içerir.

CKS’de bir nokta, boylam ve enlem değerleri ile belirtilir. Boylam ve enlem, dünyanın merkezinden dünyanın yüzeyinde bir noktaya kadar ölçülen açılardır. Bu açılar genellikle derece cinsinden ölçülür. Aşağıdaki şekil buna bir örnektir.

Küresel sistemde, yatay çizgiler veya doğu-batı çizgileri eşit aralıklı enlem veya paralel çizgilerdir. Dikey çizgiler veya kuzey-güney hatları eşit boylam çizgileri veya meridyenlerdir. Bu çizgilerin kesişimi dünyayı kaplar ve retükül adı verilen ızgaralı bir ağ oluşturur.

Sıfır enlem çizgisine ekvator, sıfır boylam çizgisine ana meridyen denir. Coğrafi koordinat sistemlerinin çoğunda, ana meridyen İngiltere’nin Greenwich kentinden geçen boylamdır. Diğer ülkeler ise Bern, Bogota ve Paris’ten geçen boylam çizgilerini ana meridyen olarak kullanırlar. CKS’de (0,0) yani orijin, ana meridyen ve ekvatorun kesiştiği nokta olarak tanımlanır.

CKS’de enlem ve boylam değerleri geleneksel olarak ondalık derece veya derece, dakika ve saniye (DMS) olarak ölçülür. Enlem değerleri ekvatora göre ölçülür ve Güney Kutbunda -90 ° ile Kuzey Kutbunda + 90 ° arasında değişir. Boylam değerleri, ana meridyene göre ölçülür. Batı yönünde seyahat ederken -180 ° ile doğu yönünde seyahat ederken 180 ° arasındadır.

Boylam değerlerini X ve enlem değerlerini Y ile eşitlemek yararlı olabilir. Coğrafi koordinat sisteminde tanımlanan veriler bir derece doğrusal bir ölçü birimi gibi görüntülenir. Bu yöntem temelde Plate Carrée projeksiyonu ile aynıdır.

Enlemlerin kutuplara doğru gittikçe boyları küçülür ve kutuplarda sıfır olur.  Enlem ve boylam derecelerinin standart bir uzunluğu olmadığından, mesafeleri veya alanları doğru bir şekilde ölçemez veya verileri düz bir haritada veya bilgisayar ekranında kolayca görüntüleyemezsiniz.

Projeksiyon Koordinat Sistemleri

Projeksiyon kelimesi yansıtma anlamına gelmektedir. Projeksiyon koordinat sistemi düz, iki boyutlu bir yüzey üzerinde tanımlanır. Coğrafi bir koordinat sisteminden farklı olarak, projeksiyon koordinat sisteminin sabit uzunlukları, açıları ve iki boyuttaki alanları vardır. Bir projeksiyon koordinat sistemi, her zaman bir küre veya küreye dayanan bir coğrafi koordinat sistemini temel alır. Yani küresel yer yüzünün, düz bir zemine yansıtılmış halidir.

Bir projeksiyon koordinat sisteminde, konumlar bir ızgara üzerinde x, y koordinatları ile belirlenir ve orijin merkezde bulunur. Her konumun, bu merkezi konuma referans veren iki değeri vardır. Biri yatay konumunu diğeri dikey konumunu belirtir. Bu iki değere x ve y koordinatı denir. Başlangıçtaki koordinatlar x = 0 ve y = 0’dır.

Eşit aralıklı yatay ve dikey çizgilerin oluşturduğu ızgaralı yapıda, merkezdeki yatay çizgiye x ekseni, orta dikey çizgiye y ekseni denir. Birimler tutarlıdır ve tüm x ve y aralıkları arasında eşit aralıklıdır. Başlangıç noktasının üzerindeki yatay çizgiler ve başlangıç noktasının sağındaki dikey çizgiler pozitif değerlere sahiptir; aşağıdaki veya soldaki negatif değerlere sahiptir. Dört çeyrek daire, pozitif ve negatif X ve Y koordinatlarının dört olası kombinasyonunu temsil eder.

Sonuç

Projeksiyon ve Coğrafi koordinat sistemleri birbirlerinin dönüşümüdür. Coğrafi koordinat sistemi küresel yer yüzünü temsil ederken, projeksiyon koordinat sistemi, küresel yapının düz bir kağıt üzerine yansıtılmış halidir.

Kaynaklar

  • http://resources.arcgis.com/en/help/main/10.1/index.html#//003r00000006000000
  • https://blogs.esri.com/esri/arcgis/2010/08/12/wgs84-vs-nad83/
  • http://resources.arcgis.com/en/help/main/10.1/index.html#/What_are_projected_coordinate_systems/003r0000000p000000/
  • https://communityhub.esriuk.com/geoxchange/2012/3/26/coordinate-systems-and-projections-for-beginners.html

ASP.NET Core geliştiriciler için yol haritası

5 Oca

2019 yılında, bir grup geliştirici, GitHub‘da ASP.NET Core geliştiriciler için bir yol haritası ortaya koymuşlar. Kaynağa buradan ulaşabilirsiniz.

Bu yazıda, her geliştirici için faydalı olabileceğini düşündüğüm bu yol haritasını sizlerle paylaşmak istedim.

Yol Haritası Boyunca Bilinmesi Gerekenler

  1. Öncelikle bilinmesi gerekenler.
    • C#
    • Entity Framework
    • ASP.NET Core
    • SQL Fundamentals
  2. Bilinmesi gereken genel geliştirme becerileri.
    • GIT sistemi öğrenilmeli, GitHub üzerinde yeni bir repository oluşturulabilmelidir, kod diğer geliştiricilerle paylaşılmalıdır.
    • HTTP(S) protokolü bilinmeli, http request metodları (GET, POST, PUT, PATCH, DELETE, OPTIONS) bilinmelidir.
    • Google kullanmaktan ve araştırmaktan korkmayın.
    • Dotnet CLI öğrenmelisiniz.
    • Veri yapıları ve algoritmalar hakkında bir kaç kitap okumalısınız.
  3. Dependency Injection (DI – Bağımlılıkların dışarıdan alınması)
  4. Veritabanları
  5. Cache Mekanizmaları
  6. Log Mekanizmaları
  7. Web site geliştirme şablonları (Template Engines)
  8. Gerçek zamanlı iletişim araçları (Realtime Communication)
  9. Nesne eşleştirme araçları (Object Mapping)
  10. API istemcileri (Clients)
  11. Bilinmesi faydalı olabilecek bilgiler
  12. Testler
  13. Görev zamanlayıcılar (Task scheduling)
  14. Mikro servisler (MicroServices)
  15. SOLID prensipleri
  16. Tasarım Kalıpları (Design-Patterns)

Yol Haritası Görseli

Alert, Event ve Log arasındaki farklar

11 Ara

Yazılımsal bir ekosistemin yönetim ortamında görülmek istenen bazı temel raporlar vardır. Bu yazıda bir birine benzeyen ve bazen karıştırılabilen alert, event ve log kavramlarından bahsedilmektedir.

Alert

Bir alert(alarm), sistemde meydana gelebilecek sıra dışı olaylar olarakdır. Örneğin;

  • Sunucu disk kapasitesinin %90 kullanım oranına ulaşması.
  • Sistemdeki IoT cihazlarının N tanesinin birden kapanması veya hata durumu bildirmesi. (N eşik değer)
  • N tane kullanıcının birden gün içinde bloklanması. (N eşik değer)

Bu ve buna benzer olaylar, sistemin yönetim biriminde raporlar veya bildirimler(sms, email, ses) şeklinde alarm olarak tutulabilirler. Alarmlar genellikle sistemin sağlıklı devam edebilmesi için bildirilen kritik uyarılardır. Belirli bir olay gerçekleştiğinde, sorumlu kişilerin veya sistemlerin harekete geçmesini sağlamak amacıyla yapılan bildirimler olarak da düşünülebilir.

Event

Bir event(olay), sistemde meydana gelebilecek sıradan olaylardır. Örneğin;

  • Yeni kullanıcı kaydı yapıldı.
  • Kullanıcı aktif edildi.
  • Kullanıcı silindi.
  • Sipariş alındı.
  • Sipariş onaylandı.

Bu ve buna benzer rutin olaylar, event olarak kaydedilirler. Sistemde meydana gelen rutin akışın takibi ve kaydı için gerekli bir kayıt kütüğü olarak düşünülebilir.

Log

Kelime anlamı günlük olan log, sistemde meydana gelen olayların otomatik olarak üretilir ve zaman damgalı olarak kaydedilir. Örneğin;

  • Veri tabanı bağlantı hataların detaylarıyla birlikte kaydedilmesi.
  • Servis talebinin olumsuz cevap alması.

Log kayıtları, istenilen seviyede tutulabilir. Bu seviyeler, Info, Warning, Error, Fetal, Debug şeklinde gruplandırılabilir.

  • Info, genellikle sistemdeki yararlı bilgiler şeklinde düşünülebilir. İhtiyaç duyulduğunda bilgi mahiyetinde bakılabilecek kayıtlardır.
  • Warning, sonuçları otomatik olarak düzeltilebilecek, uyarı niteliğindeki bilgilerdir.
  • Error, işlemlerin devam edememesi durumunda kaydedilen bilgilerdir. Sistem yöneticisinin müdahalesini gerektirir.
  • Fetal, sistemin durması veya veri kayıplarının yaşanabileceği durumlarda kaydedilen bilgilerdir.
  • Debug, geliştirme sırasında geliştiriciye bilgiler veren kayıtlardır.

Sonuç

Alert, Event ve Log bilgileri, sistemin yönetilebilirliği açısından çok önemlidir. Bu kayıtlar tutulmadığı taktirde, sistemde ne olup bittiğinden haber alınamaz. Bu tür kayıtlar, bir veritabanında veya dosyalarda tutulabilir. Proje büyüklüğüne göre genellikle log kayıtları dosyalarda, alert ve event kayıtları, veritabanı tablolarında tutulurlar. Bu sayede, alert ve event bilgileri, gösterge panelleri(dashboard) ve raporlarda çıktı olarak alınabilir.

Javascript unary plus (+) operator

30 Haz

Javascript ve diğer programlama dillerinde artı (+) ya da plus (+) operatörü,  toplama işlemi için kullanılmaktadır. Ancak (+) operatörünün Javascript dilinde geliştiricilere avantaj sağlayan bir özelliği daha bulunmaktadır. (+) operatörü, önünde bulunduğu operand eğer sayı değilse, onu sayıya dönüştürmeye çalışır. Operatörün kullanımı şu şekildedir:

+degisken

Yani sadece değişkenin önüne bir (+) işareti eklenir.

Dönüştürülebilen Türler

(+) operatörü aşağıdaki türleri sayıya dönüştürebilir:

  • string (sayı olarak)
  • null
  • boolean
  • integer (pozitif veya negatif)
  • float (pozitif veya negatif)
  • 0x formatındaki onaltılık sayılar.
  • scientific (exponent)  bilimsel üslü sayılar.

Dönüştürülemeyen Türler

(+) operatörü, sayıya dönüştüremediği değerleri NaN olarak verir.

  • undefined
  • string (yazılar)

Örnek

console.log(+”09″);  // Output: 9

console.log(+null);  // Output: 0

console.log(+”7″);   // Output: 7

console.log(+”-7″);  // Output: -7

console.log(+”-3.14″);  // Output: -3.14

console.log(+”3.14″);  // Output: 3.14

console.log(+false);   // Output: 1

console.log(+false);  // Output: 0

console.log(+”0xFF”);  // Output: 255

console.log(+”123e-5″);  // Output: 0.00123

console.log(+”xxx”);   // Output: NaN

console.log(+”undefined”);   // Output: NaN

Sonuç

(+) operatörü yani unary plus operatörünün Javascript dilinde kullanımı örneklerle desteklenerek incelenmiştir. (+) operatörünün pek bilinmeyen ve kullanılmayan bir kullanımı anlatılmıştır.

Putty Kullanıcı Oturum Bilgileri ile Kısayol Oluşturmak

14 Şub

Putty Nedir?

Putty, windows işletim sistemi üzerinden ssh protokolü ile bağlanılabilen  sistemlere, erişim yapabilmek amacıyla kullanılan bir terminal uygulamasıdır. Program, tek bir exe şeklinde indirilmektedir ve kurulum yapılmamaktadır. Uygulamanın arayüz görünümü aşağıdaki gibidir.

Bu arayüz kullanılarak Linux gibi işletim sistemlerine, terminal aracılığı ile erişebilmek mümkündür. Ancak, birden fazla işletim sistemine erişmek istediğimizde her defasında bu ara yüzden kullanıcı erişim bilgilerini girmek biraz zaman alıcı bir yöntemdir. Putty.exe programı, farklı kısayollar üretilerek birden fazla oturum bilgisi ile kaydedilebilmektedir.

Bu işlem için masa üstüne sağ tıklayarak yeni kısayol oluşturulur.

Kısayol ayarlarında, Putty.exe dosyası seçilir.

Oluşturulan kısayola sağ tıklayarak özellikler penceresinde Hedef bölümüne aşağıdaki şekilde kullanıcı bilgileri girilebilir.

"C:\Program Files\PuTTY\putty.exe" -ssh bayram@172.16.1.110 -pw PaSwOrD

İşlem tamamlanmıştır. Kısayola çift tıklayarak, kullanıcı oturum bilgileri girilmeden direk terminal açılacaktır.

Danimarkalı Programcılar

2 Oca

Bir konu hakkında okuduğum bilgilerin temeline inmeyi ve o konunun yazarları hakkında bilgiler edinmeyi alışkanlık haline getirdim. Okuduğum yazı ve makalelerde karşılaştığım programcıların özelliklerini ve çalışma alanlarını incelediğimde karşıma çıkan bazı ortak özellikler farkettim. Bu nedenle, bu yazıda Danimarka kökenli programcılardan ve bu programcıların dikkatimi çeken ortak özelliklerden bahsetmek istedim.

Bjarne Stroustrup
1950 doğumlu olan Bjarne Stroustrup, Columbia Üniversitesi’nde profesördür. New York’ta Morgan Stenley’in genel müdürüdür. C++ programlama dilini tasarlamış ve uygulaya geçirmiştir. C++ ile birlikte Object Oriented Programming felsefesinin temelini atmıştır.

Anders Hejlsberg
1989 yılında Borland firmasında Turbo Pascal ve sonrasında Delphi programlama dillerini geliştirdi. 1996 yılında Borland firmasından ayrılarak Microsoft ile çalışmaya başlamıştır. Microsoft tarafında C# programlama dilini geliştirmektedir.

David Heinemeier Hansson
1979 doğumlu olan Hansson, Ruby on Rails programlama dilinin çatısını oluşturmuştur.

Lars Bak
Javacript ve Sanal makineler üzerinde uzman olan Lar Bak, Google tarafından üretilmiş olan Chrome tarayıcısında da kullanılan olan V8 Javascript motorunu geliştirmiştir.

Rasmus Lerdorf
Rasmus Lerdorf, PHP web programlama dilinin mucidi ve Apache sunucu projesi mühendislerindendir. Danimarka kökenli Kanadalıdır.

Yukarıda bahsedilen programcıların tümünün ortak özelliği, Danimarka kökenli olmaları ve çok önemli programlama dillerini geliştirmiş olmalarıdır.

Programlama dillerinin temelinde Biçimsel diller ve Automata teorisi yatmaktadır. Danimarkalı programcıları bir dil geliştirmeye iten şey nihayetinde bu teorinin iyi benimsenmiş olması olabilir. Bundan daha da önemlisi, İskandinav(Danimarka, İsveç ve Norveç) ülkelerinin dünyaca ünlü gelişmiş bir eğitim sistemine sahip olmaları olabilir.

SSL Güvenlik Protokolü ve SSL Sertifikası

29 Haz

İş dünyasının ve ticaretin internet ortamına taşındığı günden itibaren internetin güvenliği sürekli sorgulanmıştır. Milyonlarca internet site arasından müşteri bilgilerinin güvenliğini ve mahremiyetini sağlayanlar öncelikli olarak tercih edilmiş ve rekabette bir adım önde olmuştur.

İnternet üzerinden yapılan iletişimin güvenliği noktasında iki önemli soruna çözüm bulunmalıdır.

  1. Veri gönderen ve alan tarafın, iletişim süresi boyunca birbirlerini tanıdıklarından emin olmaları gerekir. Alıcı tarafın, üçüncü şahıslar olması durumunda kişisel bilgiler, hesaplar gibi önemli verilerin güvenliği tehlikede demektir.
  2. Alıcı taraf, gönderilen verinin iletişim yolu üzerinde hiç değiştirilmeden geldiğinden emin olmak durumundadır.

Uzmanlar güvensiz ağ üzerinde güvenlik üzerinde kafa yorarak http protokolüne güvenlik mekanizmasını ekleyip https protokolünü oluşturmuşlardır.

  • http: hyper text transper protocol.
  • https: secured  hyper text transper protocol.

HTTP Protokolü

Protokol kavramı bilgisayar dünyasında gerçek hayatta ki sözlük anlamından farksızdır. Günlük hayatta protokoller iki taraf arasında uyulacak kuralları belirlemek amacıyla imzalanan anlaşma metnidir. Bilgisayar dünyasında ise haberleşen taraflar arasında belirlenen dijital iletişim kurallarıdır. Gönderen tarafın ve alıcı tarafın ilgili protokol kurallarına göre veri göndermesi ve alması gerekmektedir. HTTP protokolü sunucudaki 80 numaralı port üzerinden haberleşir.

HTTP protokolü, belli kurallar dahilinde istemci ve sunucu arasında talep/cevap göndermeyi sağlayan bir protokoldür.

https-ranking-signal-02 - Kopya

Örneğin bir tarayıcı sunucuya gönderdiği talepte protokol gereği şunları söyler:

  • Benim metodum GET,
  • Ulaşmak istediğim kaynak URL şudur,
  • QueryString parametrelerim şunlar,
  • Kabul ettiğim Accept-Encoding gzip, deflate
  • Tarayıcı dilim en-EN
  • Tarayıcı bilgilerim şunlar gibi.

HTTP protokolünün kurallarını, sunucu bilgisayar da bildiği için tarayıcının ne söylediğini anlayabilir ve ona göre ilgili kaynaktaki bilgiyi cevap olarak geri gönderir.

HTTP protokolü güvenlik gerektirmeyen bir ağ üzerinde çalışabilmek amacıyla tasarlanmıştır.

HTTPS Protokolü

HTTPS protokolünün oluşturulma amacı güvensiz bir ağ ortamında güvenli bir iletişim yolu oluşturmaktır. Çünkü HTTP protokolü man-in-the-middle diye tabir edilen saldırılara açıktır. Bu tür saldırılarda ağı dinleyen saldırganlar, kişisel hesap bilgilerini ve parolaları kolay bir şekilde ele geçirebilirler. HTTPS bu tür saldırılardan korunmak amacıyla tasarlanmış bir protokoldür. HTTPS = HTTP + SSL şeklinde bir formül ile ifade edebiliriz. HTTPS protokolü sunucudaki 443 numaralı port üzerinden haberleşir.

https-ranking-signal-02

Bir web sitesinde https protokolünün kullanılmasını gerektiren durumlar özetle şu şekildedir.

  • E-ticaret ve ödemek işlemleri gerçekleştirilen sitelerde maddi kayıpları önlemek amacıyla kullanılır.
  • Kişisel hesapların oluşturulduğu sitelerde kişisel verilerin korunması ve kullanıcı güvenliği amacıyla kullanılır.
  • Kullanıcıların kötü niyetli şahıslar tarafından oluşturulan benzer sitelere gitmesini engellemek için bilgilendirmek amacıyla kullanılır.

https ile veri mahremiyeti ve bütünlüğünü sağlamak amacıyla verinin şifrelenmesi ve iletişime geçilen sunucuların güvenliği doğrulanmış olması gerekmektedir. Veri şifrelemesi için doğrulanmış ve güvenilir sunucu sertifikaları kullanılır. Bu sertifikalara SSL sertifikaları denir. SSL sertifikaları, SSL protokolünün bir parçasıdır.

SSL Protokolü

SSL protokolü, ağ üzerinden gönderilen bilginin sadece doğru adreste deşifre edilerek okunabilmesi amacıyla tasarlanmış kriptolama protokolüdür. Protokol kuralları gereği gönderilen bilgi gönderici tarafında şifrelenir, ve sadece ulaşması istenen tarafta deşifre edilmesi garanti altına alınır. Böylece her iki tarafta doğrulamalar yapılarak veri mahremiyeti ve bütünlüğü sağlanmış olur.

ssl

Veri şifrelemede güvenliğin seviyesi şifreleme anahtarının uzunluğuna göre değişir. Örneğin 8 bit anahtar 0-255 arası değerler alacağından 256 olasılık sıra ile denenerek anahtar bilgisi elde edilebilir. SSL protokolünde genelde 128 ve daha fazla bit ile şifreleme kullanılır. 128 bit şifreleme durumda 2128 adet değişik anahtar kullanılmaktadır. 128 bitlik şifrenin çözülmesi için çok büyük yatırım maliyetleri ve çok uzun süre gereklidir.

SSL protokolü ile iletişim kurulabilmesi için SSL sertifikalarına ihtiyaç duyulur ancak olmazsa olmaz bir şart değildir.

SSL Sertifikaları

SSL Sertifikaları, internet işlemlerini güvenli hale getiren veri şifreleme işleminin önemli bir bileşenidir. Sertifikalar, veri gizliliğini ve bütünlüğünü sağlamak amacıyla web sitelerinin kimlik bilgisini doğrulayan dijital belgelerdir. SSL sertifikaları SSL protokolü aracılığıyla kullanıcıların güvenli bir oturum başlatmalarını sağlar. Sertifika olmadan şifreleme anahtarları ve web sitesini tanıtan şirket bilgileri olmayacağından güvenli bir bağlantı sağlanamaz.

Sertifikalar tanınmış resmi kuruluşlar tarafından sağlanır. Bu kuruluşlara Certificate Authority(CA) denir. Sertifika içeriğinde veri şifreleme için kullanılacak olan bir public key ve sertifika veren kuruluş bilgileri bulunur. Sertifika veren kuruluşlar istemci bilgisayarların sertifika depolarında bulunduğundan sunucu ile iletişime geçen bir internet tarayıcısı bize ilgili sitenin sertifikasının güvenilir bir kuruluş tarafından verilip verilmediğini veya geçerli olup olmadığını uyarılar şeklinde belirtir.

HTTPS ile Güvenli İletişimin Adımları

HTTPS protokolü üzerinden bir internet tarayıcısı ve sunucu arasında gerçekleştirilen iletişim adımları şu şekilde gerçekleşir.

https://www.thesslstore.com/blog/wp-content/uploads/2016/02/howsslworks-1.png
https://www.thesslstore.com/blog/wp-content/uploads/2016/02/howsslworks-1.png

 

Adım-1: İstemci internet tarayıcısında https protokolü üzerinden sunucuya bir talep gönderir.

Adım-2: Sunucu kendisine ait şifreleme yöntemini belirten genel anahtarı(public-key) bulunduran bir sertifikayı istemciye gönderir.

Adım-3: İstemci tarayıcısı, sertifikanın:

  • Güvenli bir CA tarafından üretilip üretilmediğini,
  • Sertifikanın hala geçerli olup olmadığını,
  • Sertifikanın ilgili siteye ait olup olmadığını kontrol eder.

Adım-4: Tarayıcı public-key kullanarak rasgele simetrik şifreleme ile bilgileri şifreleyerek sunucuya gönderir.

Adım-5:Sunucu simetrik şifreyi private-key yardımı ile çözerek veriye ulaşır.

Adım-6: Sunucu istemciye html dökümanını şifreleyerek geri gönderir.

Adım-7: İstemcinin internet tarayıcısı şifreyi çözerek html dökümanını görüntüler.

Anlamsal Yazılım Sürüm Numaraları – Semantic Versioning

25 Ağu

Bir yazılım ürünü hakkında bilgi edinmek istediğimizde About(Hakkında) diyalog kutuları veya Readme(Beni Oku) metin dosyalarına bakarız. Bilgiler içerisinde yazılım adı, şirket adı, telif hakkı gibi bilgiler yanında yazılımın sürüm numaraları da bulunur.

Yazılım ürünü, bir masaüstü programı ise hakkında kutusu aşağıdaki gibi olacaktır:

internet explorer
internet explorer about box

Bir .Net kütüphanesi ise AssemblyInfo dosyasında versiyon numarası aşağıdaki gibi olacaktır:

.Net Kütüphanesi AssemblyInfo
.Net Kütüphanesi AssemblyInfo

Her iki durumda da versiyon numaraları noktalarla ayrılmış 4 adet sayıdan oluşmaktadır. Bazı yazılım ürünleri, 3 basamaklı şekilde gösterilmektedir. Öncelikle bu ifade şekillerinin ne anlama geldiğini bilmeliyiz ki yazılımın bize ne söylemek istediğini anlayalım.

version control
sürüm numaraları

Genellikle 1.0.35.40 gibi dört sayıdan oluşan yazılım sürüm numaralarının her bir basamağı:

  1. Basamak Major
  2. Basamak Minor
  3. Basamak Build
  4. Basamak Revision

olacak şekilde ifade edilmektedir.

Burada 1.0.40 gibi üç basamaklı sürüm numaraları için bir not düşecek olursak:

  1. Basamak Major
  2. Basamak Minor
  3. Basamak Revision

şeklinde ifade edilmektedir. Yani Build basamağı ihmal edilmiştir.

1 Major: Yazılım sürümünün ilk basamak numarası, büyük(major) sürüm numarasıdır. Bir yazılımın ilk ana sürümü için bu numara 1 olacaktır. Yazılımda köklü değişiklikler olduğunda bu versiyon numarası değiştirilir. Örneğin yazılım geliştirme sürecinde bir teknoloji değişikliği yapıldığında veya ana işlevlerde değişiklikler yapıldığı durumlarda major sürüm numarası bir arttırılır.

2 Minor: Yazılım sürümünün ikinci basamak numarası, küçük(minor) sürüm numarasıdır. Yazılımın çalışma şeklini değiştirmeyen yeni özellikler eklendiğinde, service pack gibi iyileştirici düzenlemeler yapıldığında minor sürüm numarası bir arttırılır.

3 Build: Yazılım sürümünün üçüncü basamak numarası, geliştirme sürecinde tamamlanan iterasyonları ifade eden sürüm numarasıdır.  SDLC (Software Development Life Cycle) methodolojilerini uygulayan takım çalışmalarında Waterfall veya Spiral gibi iterasyon temelli döngüler tamamlandığında belli modüller oluşur. Her döngü tamamlandığında build sürüm numarası bir arttırılır.

4 Revision: Yazılım sürümünün dördüncü basamak numarası, düzeltilen hataların(bug) sayısını gösteren sürüm numarasıdır. Hiçbir yazılım mükemmel değildir. Gözden kaçan hatalı noktalarda yazılım istendiği şekliyle çalışmayacaktır ve bu noktaların düzeltilmesi gerekecektir. Her hata düzeltme işlemi sonrasında dördüncü sürüm numarası bir arttırılır.

Kaynaklar:
http://semver.org/
https://www.open-mpi.org/software/ompi/versions/

 

Blog sayfam 4 yaşında

19 Ağu

Bugün 19 Ağustos 2015. Blog sayfam 4 yaşında. Geride bıraktığımız senelerde birçok yeni konuyu paylaşma fırsatı buldum. Olumlu olumsuz birçok eleştiri aldım. Bir o kadar yeni arkadaş edinme fırsatı buldum. Özelden gelen sorulara elimden geldiğince cevap vermeye ve sizlere yardımcı olmaya çalıştım. Özetle işin hakkını vermeye çalıştım.

Yazsam da yazmasam da zaman her türlü geçiyor. Yazmayı ve paylaşım yapmayı, geçen zamanı boş geçirmemek adına faydalı bir aktivite olarak görüyorum.

Sayfamı oluştururken belli bir yazı hedefi oluşturmadım. Fakat epeyce yazı ve yorum birikimi oldu. Bu bağlamda beni sürekli gelişime iten okuyucularıma da sonsuz teşekkürlerimi sunuyorum.

Önümüzdeki yılda yeni yazılarda buluşmak dileğiyle…