SSH Servisi.

Slides:



Advertisements
Benzer bir sunumlar
Kullanıcı ve Grup Yönetimi
Advertisements

IIS 6.0. Giriş  Geçtiğimiz yıllarda, Microsoft güvenlik açıkları nedeniyle IIS 4/5 üstünden bir çok saldırıya uğradı.  Bu sebepten Microsoft’un geliştirdiği.
TEMEL AĞ TANIMLARI.
FreeRADIUS ile Kimlik Denetimi
Filezilla Client & Server
HTTP’yi (istemci tarafı) kendi kendinize deneyin
Web Host Manager (WHM) Nedir Ne İşe Yarar ?
WEB SAYFALARININ SUNUCUYA YERLEŞTİRİLMESİ Okutman İlyas KOÇ.
AĞ PROTOKOLÜ.
Bilgisayar Mühendisliği Bölümü Bilgi Servisleri (IS) GRID Kullanıcı Eğitimi Boğaziçi Üniversitesi 2007, İstanbul Emrah AKKOYUN.
DOVECOT İLE IMAP VE POP3 SERVER KURULUMU
BTP 108 BİLGİSAYAR AĞ SİSTEMLERİ AĞ KAVRAMI Birden çok bilgisayarın birbirine bağlı olarak kullanılmasıyla oluşturulan çalışma biçimine bilgisayar ağı.
ARP DİNLEME.
(FIREWALLS) GÜVENLİK DUVARI GİRİŞ
Kullanıcı ve Grup İşlemleri
DHCP.
Cisco Discovery Protokolü. CDP?  Bir protokoldür  Veri iletim katmanında çalışır  Cisco tarafından geliştirilmiştir  Fiziksel olarak birbirine bağlı.
Büyük Risk Bilgisayar Ağları Network Soru-Cevap 1 Bilgisayar Ağları
Kabuk ve Kısayollar BİLGİSAYAR PROGRAMCILIĞI BÖLÜMÜ
DHCP SUNUCUSU KURULUMU VE YÖNETİMİ
İnternet Teknolojisi Temel Kavramlar
MERKEZİ KULLANICI TANIMA SERVİSLERİ Mustafa Atakan ODTU-BIDB Teknik Destek Grubu.
Dosya İşlemleri BİLGİSAYAR PROGRAMCILIĞI BÖLÜMÜ
Windows için mysql kurulumu sitesinden mysql veritabanının ilgili sürümü indirilir. Biz.
TCP/IP Sorun Çözme ve Ağ Komutları
Kullanıcı Hesapları Aslı Ergün.
TCP/IP – DHCP Nedir?.
Kullanıcı ve Grup İşlemleri Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ.
Bölüm 12: DNS Altyapı Mimarisini Oluşturmak
Dosya İşlemleri Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ.
Dosya İşlemleri Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ.
İnternet Teknolojisi Temel Kavramlar
Paralel Programlamaya Giriş
Chapter 5. Ağ Protokolleri
TCP/IP Sorun Çözme ve Ağ Komutları
Yönlendirici (Router) Güvenliği
Linux İşletim Sistemi Metin Editörleri
Yardım Komutları Linux’ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos.
Windows İşletim Sistemlerinde Yetkilendirme
KIRKLARELİ ÜNİVERSİTESİ
BM-308 Paralel Programlamaya Giriş Bahar 2016 (1. Sunu) (Yrd. Doç. Dr. Deniz Dal)
1.Hafta.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
B İ L İŞİ M S İ STEMLER İ GÜVENL İĞİ (2016) PROF. DR. ORHAN TORKUL ARŞ. GÖR. M. RAŞIT CESUR.
B İ L İŞİ M S İ STEMLER İ GÜVENL İĞİ (2016) PROF. DR. ORHAN TORKUL ARŞ. GÖR. M. RAŞIT CESUR.
Kim Korkar Linux’tan.
Bir 802.1x Kimlik Kanıtlama Uygulaması: EDUROAM Figen Bozkurt Şule Toker
FTP Nedir ? Deniz Kaya FTP NEDİR ? Ftp (File Transfer Protocol), dosya gönderme protokolü manası gelir. Bir bilgisayardan bir başka bilgisayar.
SUNUCU İŞLETİM SİSTEMLERİ
DNS SERVER (DOMAİN NAME SYSTEM) HAZIRLAYAN:KÜBRA SİNEM ALBAY
KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi KBT208 SUNUCU İŞLETİM SİSTEMİ DNS Öğr.Gör. Ruslan ABDULLA 11. HAFTA.
 Active Directory, ağ kaynaklarını verimli bir şekilde yönetmenize olanak sağlayan, genişletilebilir bir dizin hizmetidir. Bu dizin hizmeti, ağda bulunan.
Öğretim Görevlisi Alper Talha Karadeniz Ağ Temelleri
Linux Komutları.
Paralel Programlamaya Giriş
Muhammet Doğan KABLAN
FTP Server Eray Demir
DOMAIN SERVER DOMAIN NEDIR ?
Active Directory.
PROXY SERVER YASİN ÇAKIR
ACTIVE DIRECTORY.
HESAP YÖNETİMİ-2.
PORTLAR Gizem GÜRSEL
LDAP ( LİGHTWEİGHT DİRECTORY ACCESS PROTOCOL )
Trakya Üniversitesi Teknik Bilimler Meslek Yüksekokulu
Temel Internet Kullanımı Y. Doç. Dr. M. Sıtkı İlkay Ekim 2006.
HTTP Kullanıcı Asıllama ve Yetkilendirme
cURL ile Web Servisleri
OSİ Modeli.
SANAL IP NUMARASI KULLANILAN KAMPÜS ORTAMINDA DNS KULLANIMI
Sunum transkripti:

SSH Servisi

SSH Servisi (1) SSH, iki sistem arasındaki uzak bağlantıların güvenli bir şekilde kurulmasını sağlayan bir protokoldür. İki sistem arasındaki tüm ağ trafiğinin şifrelendiği bu protokol ile, önceden kullanan ftp, rsh, telnet ve rcp gibi yerini sftp, ssh ve scp gibi programlar almıştır. SSH protokolü ile gerçekleştiren bağlantılarda öncelikle kimlik doğrulama ile ilgili kullanıcı adı ve şlifre bilgileri sunucuya şifrelenmiş olarak gönderilir. Kimlik doğrulama adımı geçildikten sonra veri aktarımı sunucu ve istemcinin ortaklaşa anlaştığı bir şifre ile şifrelenerek gerçekleştirilir.

SSH Servisi (2) SSH protokolü üzerinden bağlantı kurulduktan sonra istemci bağlantı yaptığı sunucu ile ilgili bazı bilgileri kaydeder. Aynı sunucuya daha sonra yapılacak bağlantılarda yine bu bilgiler kontrol edilir ve uyuşmazlık olması durumunda kullanıcı uyarılır. Bu bilgiler arasında tutarsızlığın sebebi bağlantı yapılan sunucunun aslında gerçekten bağlanılmak istenen sunucu olmaması olabilir. Bu tipte saldırılar “man-in the-middle”olarak adlandırılır. Red Hat Linux dağıtımları ile beraber openssh sunucu ve istemci programları gelmektedir. Eğer ssh sunucusu çalıştırılacak ise, openssh-server paketi kurulu olmalıdır. Bir sistem ssh istemcisi olarak kullanılacak ise openssh-client paketi sistemi kurulu olmalıdır. Ayrıca openssh paketi de hem istemci hem de sunucu paketinin gereksinim duyduğu temel dosyaları içeren bir paketttir. [root@localhost ~] #rpm –q openssh openssh-server openssh-client openssh-4.2p1-fc4.10 openssh-server-4.2p1-fc4.10 openssh-clients-4.2p1-fc4.10

SSH Servisi (3) SSH servisinin verilebilmesi sistemde sshd servisinin çalışıyor olması gerekir. (root@localhost ~)#service sshd status sshd (pid 10224 30063)is running… SSH servisi yapılandırmasnı /ets/ssh/sshd_config dosyasından okur, dosyanın her satırında yapılandırma deyimi değer çiftleri bulunur. “#” ile başlayan satırlar yorum/açıklama satırları olarak değerlendirilir.

SSH Sunucusunun Yapılandırılması SSH sunucusunun yapılandırmasında kullanılabilecek temel yapılandırma deyimleri aşağıda verilmiştir. Port: SSH sunucusu varsayılan olarak 22 numaralı portu dinler, istenilirse bu değer Port yapılandırma deyimi ile değiştirilebilir. Port 22 Protokol: SSH sunucusunun hangi protokol versiyonlarını desteklediğini gösterir. SSH1 ve/veya SSH2 protokolleri kullanılabilir. Bu yapılandırma deyiminin varsayılan değeri 2,1 dir. Bu sıralama bir öncelik belirtmez, çünkü protokol seçiminiistemci yapar. Protokol2 HostKey: SSH protokolünde kullanılacak özel sistem anahtarlarının bulunduğu dosyaları gösterir. Birden fazla anahtar dosyası tanımlanabilir. Bu dosyalar ayrıca SSH1/SSH2 protokollerinin kullanımına göre değişiklik gösterebilir.

SSH Sunucusunun Yapılandırılması (2) SyslogFacility: ssh sunucusundan gelecek mesajları loglanırken hangi tipte değerlendireceğini belirtir. Bu deyimin alabileceği değerler: DEAMON, USER, AUTH, AUTHPRIV, LOCAL[0-7] dir. Varsayılan olarak AUTH kullanılır. SyslogFacility AUTHPRIV LogLevel: ssh sunucusunun üreteceği log miktarının ayarlanmasını için kullanılır. Alabileceği değerler QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG[1-3] tür. Varsayılan olarak INFO değeri kullanılır. Log seviyesinin DEBUG ve üstü olarak ayarlanması durumunda aşırı miktarda log üretilecek ve üretilen loglar arasında kullanıcıların kişisel gizliliklerini ihlal edebilecek loglar bulunacaktır. AllowUsers: Sisteme ssh ile bağlanabilecek kullanıcıların ayarlanması için kullanılır. Varsayılan olarak sisteme bağlanabilecek kulanıcılar üzerinde bir kısıtlama bulunmamaktadır. Bu deyim ile birbirinden boşluk karakteri ile ayrılan birden fazla kullanıcı ismi tanımlanabilmektedir. Kullanıcı ismi tanımlanırken * ve ? özel karakterleri kullanılabilmektedir. Eğer kullanıcı ismi olarak KULLANICI@UZAK_SİSTEM formatı kullanılır ise KULLANICI ile belirtilen kullanıcının sadece UZAK_SİSTEM ile belirtilen istemcinin login olabilme hakkı bulunmaktadır.

SSH Sunucusunun Yapılandırılması (3) DenyUsers: sisteme ssh ile bağlanacak kullanıcıların kısıtlanması için kullanılır. AllowUsers deyimi ile benzer kullanıma sahiptir. AllowGroups: Sisteme ssh ile bağlanmasına izin verilecek grupların tanımlanması için kullanılır. Varsayılan olarak her grubun izni vardır. Grup isimleri belirtilirken * ve ? gibi karakterler kullanılabilir. DenyGroups: Sisteme ssh ile bağlanması istenmeyen grupların belirtilmesi için kullanılır. AllowGroups deyimi ile benzer kullanıma sahiptir. LoginGraceTime: Kullanıcı kimlik doğrulama adımında başarılı olamazsa sunucunun ( saniye cinsinden) belirtilen zaman sonunda bağlantıyı koparmasını sağlar. Bu değer “0” ise bir sınırlama yoktur. Varsayılan değeri 120 saniyedir. Bu değerin küçük tutulması kullanıcı adı, şifre çiftlerini kullanarak yapılan saldırılarda bir seferde yapılacak maksimum deneme sayısını kısıtlayıcı yönde etki yapacaktır.

SSH Sunucusunun Yapılandırılması (4) PermitRootLogin: Bu yapılandırma deyimi “yes”, “without-password”, “forced- commands-only” ve “no” değerlerini alabilir. Varsayılan olarak root kullanıcısının sisteme ssh ile bağlanmasına izin verilmiştir (yes). Bu deyime “without-password” değeri verilmişse root kullanıcısı şifre ile kimlik doğrulaması yapamaz eğer değer olarak “forced-commands-only” ayarlanmış ise, root kullanıcısının sisteme login olup interaktif bir kabuk elde etmesi engellenirken, ssh üzerinden sistemde komut çalıştırılmasına izin verilecektir. Root kullanıcısının ssh ile bağlantısını engellemek için bu değer “no” yapılmalıdır. PermitLootLogin yeni PubkeyAuthentication: Genel anahtar kimlik doğrulama mekanizmasının kullanılıp kullanılmayacağını ayarlamak için kullanılır. Varsayılan olarak bu mekanizma kullanımaktadır. Bu deyim sadece SSH2 için geçerlidir. PoobkeyAuthentication yes AuthorizedKeysFile: Genel anahtar ile kimlik doğrulamada kullanılacak anahtar dosyasının yerini belirtir. Varsayılan değeri kulanıcının ev dizinindeki ssh/authorized_keys dosyasıdır. AuthorizedKeysFile ssh/authorized_keys PasswordAuthentication: Şifre ile kimlik doğrulama yapılıp yapılmayacağını belirtir. Varsayılan olarak şifre ile kimlik doğrulamaya izin verilir. PasswordAuthentication yes

SSH Sunucusunun Yapılandırılması (5) PermitEmptyPasswords: Şifre ile kimlik doğrulama mekanizmasının kullandığı durumlarda boş şifrelerin kabul edilip edilmeyeceğini belirtilmesi için kullanıllır. Varsayılan olarak boş şifreye sahip kullanıcıların sisteme girmesi engellenmektedir. PermitEmptyPasswords no UseDNS : eğer değer olarak “yes” verilir ise sshd bağlantı isteğinde bulunan istemcinin IP adresini kullanıp DNS üzerinde ters kayıt sogulaması gerçekleştirecektir. Ters kayıt sorgulaması sonucunda bir isim bulunduğu takdirde, bulunan isim için bir düz DNS sorgulaması gerçekleştirecek ve cevap olarak gelen IP adresi ile istemcinin IP adresi karşılaştırılacaktır. Bu karşılaştırma /var/log/secure dosyasına yansıyacaktır. Varsayılan olarak bu mekanizma kullanılır. [root@localhost ~]# egrep “reverse mapping checking” /var/log/secure reverse mapping checking getaddrinfo for del.dinamic2316.ttnet.net.tr failed – POSSİBLE BREAKİNG ATTEMPT!

Kimlik Doğrulama Mekanizmasları SSH sunucusu doğrulama mekanizması olarak şifre yada genel anahtar mekanizmalarını kullanabilir. Sistem Şifreleri ile Kimlik Doğrulama Kimlik doğrulama mekanizması olarak PasswordAuthentication seçildiği zaman ssh sunucusu kimlik doğrulama işlemini yerel sistem kullanıcıları üzerinden PAM modülü aracılığı ile yapar. Bu yöntem ile /etc/passwd ve /etc/shadow dosyaları yada NIS, LDAP, Active Directory sunucuları kullanılabilir. [root@localhost ~]# cat /etc passwd/sshd #0PAM-1.0 auth required pam_stack_soservice-system-auth account required pam_nologin.so account required pam_stack.so servise-system-auth password required pam_ stack.so servise-system-auth session required pam_ stack.so servise-system-auth session required pam_loginuid.so

Kimlik Doğrulama Mekanizmasları Genel Anahtar (Public Key) ile Kimlik Doğrulama SSH protokolü ile kullanılan bir değer kimlik doğrulama mekanizmasıdır. Bu sistemin temeli birbirlerinin tamamlayıcısı özelliğindeki anahtar çiftlerini dayanmaktadır. Kullanılan anahtarlardan bir tanesi public key (genel anahtar) adını almaktadır. Bağlantı kurulacak sisteme taşınan bu anahtarın içeriğinin öğrenilmesi önemli değildir. Genel anahtarın karşılığı olan anahtar ise private key (özel anahtar) adını almaktadır. Sadece oluşturduğu sistemde bulunan bu anahtar bir şifre (passphrase) ile korunmaktadır. Genel anahtar ile kimlik doğrulama yapılabilmesi için öncelikle kullanılacak anahtar çiftlerinin oluşturulması gerekir.anahtar çifti oluşturma işlemi ssh- keygen komutu ile yapılır. SSH2 protokolünde rsa ve dsa olmak üzere iki tip anahtar oluşturulabilir. Oluşturulmak istenen anahtar çifti tipi ssh-keygen komutuna verilen –t seçeneği ile belirtilir. ssh-keygen –t dsa #DSA tipinde anahtar çifti oluşturmak için ssh-keygen –t rsa #RSA tipinde anahtar çifti oluşturmak için

Genel Anahtar ile Kimlik Doğrulama(2) Oluşturulan anahtar çiftleri varsayılan olarak kullanıcının ev dizinindeki ssh dizininde saklanır. DSA tipindeki anahtar çiftlerinde özel anahtar id_rsa isminde, genel anahtar ise id_rsa.pub ismindeki dosyalarda tutulır. Benzer şekilde RSA tipindeki anahtar çiftlerinde özel ve genel anahtarların tutulduğu dosyalar id_rsa ve id_rsa.pub olacaktır. Anahatr çifti oluşturulması aşamasında özel anahtarın korunması için bir şifre (passphrase) girilmesi istenir. Bu şifrenin güvenlik açısından uzun ve karmaşık olması önerilmektedir. Şifrenin unulması durumunda anahtar çiftinin yeniden oluşturulması gerekmektedir. Ancak passphrase biliniyorsa istendiğinde ssh-keygen komutuna -p anahtarı verilerek değiştirilebilir. [root@localhost ~ ]# ssh-keygen –t dsa Generating public/privatedsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa) Enter passphrase (empty for no passphrase) Enter same passphrase again Your identification has been saved in /root/.ssh/id_dsa Your public key has been saved in /root/.ssh/id_dsa.pub The key fingerprint is: 10:ab:01:67:04:f4:db:d2:b4:6b:2c:8c:36:f2:ee:24

Genel Anahtar ile Kimlik Doğrulama(3) SSH sunucusunda genel anahtar kimlik doğrulama mekanizmasını kullanabilmesi için, bağlantısı yapacak kullanıcının genel anahtarını sunucuda ev dizinindeki .ssh dizini içindeki authorized_keys dosyasına girmesi gerekmektedir. Bu dosya içinde birden fazla genel anahtar bilgisi bulunabilir. Bu işlemler gerçekleşdikten sonra kullanıcı genel anahtarı ile sunucuya ssh ile bağlanabilir. Bağlantı anında, kullanıcıdan, özel anahtarını korumak için kullsndığı passphrase (şifre) istenir. Yardımcı bir program olan ssh-agent program sayesinde passphrase bilgisi kullanıcıdan bir defalığına istenmekte ve bu bilgi yapılan bağlantılarda kullanılmaktadır. Ssh-agent komutunun kullanılması için kullanılan kabuktan aşağıdaki formattaki komut verilmelidir. [root@localhost~]# axec ssh-agent /bin/bash Bu komutun verilmesi ile çalışan kabuk programının yerine ssh-agent programı çalışmaya başlayacak ve kulanıcıya /bin/bash kabuğunu açacaktır. Bu işlemden sonra ssh-add komutu ile gerekli passpharaseler ssh-agent programına bildirilebilir. Bu işlem yapıldıktan sonra pıblic key kimlik doğrulaması yapan ssh sunucularına yapılan bağlantılarda passphrase istenmeyecektir. [root@localhost ~ ]# ssh-add Enter passphrase for /root/.ssh/id_rsa Identity added:/root/.ssh/id-rsa (/root/.rsa/id_rsa)

SSH İstemcisi SSH istemcisi olarak ssh komutu kullanılmaktadır. Bu komut temel olarak rlogin, rsh ve telnet komutlarının güvenli bir yerdeğiştirmesidir. Ssh komutu ile rlogin, rsh ve telnet komutları ile yapılabilen işlemlerin hepsi yapılabilmektedir. Komutun temel kullanımı aşağıdaki gibidir: Ssh [[-1] kullanıcı_adı] uzak_sunucu [komut] Ssh [kullanıcı_adı@]uzak_sunucu [komut] [root@localhost~]# ssh 192.168.1.200 The authenticity of host : 192.168.1.200 (192.168.1.200) can’t be established RSA key fingerprint is fb:78:12:0f:24:a0:fd:14:a5:c4:2d:58:a6:a3:bf:5f Are you sure you want to continue connecting (yes/no)? Yes Warning: Permenently added ‘192.168. 1. 200 ’ (RSA) to the list of known hosts. root@192.168.1.200 ‘s password:

SCP ve SFTP İstemcileri Ağ üzerinden bir makinadan değerini dosya transferi yapmak için kullanılan scp komutu da benzer şekilde rcp komutunun güvenli bir yerdeğiştirmesidir. Scp dosya [kullanıcı_adı@] uzak_sunucu:/kopyalanacak/ dizin Bazı anahtarlar: -p uzak sisteme kopyalanan dosyaların erişim zamanı, izin ve sahip bilgilerini koruması sağlar. -r tekrarlı işlem yaparak tüm dizinin uzak sisteme kopyalanmasını sağlar. SFTP Ağ üzerindeki birmakinadan değer makinaya dosya transferi yapmak için kullanılan sftp komutu interaktif modda ftp istemcisi gibi çalışır. sftp komutunun temel kullanımı aşağıdaki gibidir: sftp uzak_sunucu

SSH Servisinin Yönetilmesi SSH servisinin başlatılması için script start, durdurulması için stop, durumunun öğrenilmesi için status parametreleri ile çağırılmalıdır. [root@localhost~]# /etc/rc.d/init.d/sshd Usage: /etc/rc.d/init.dsshd {start|stop|restart|reload|condrestart|sta tus} [root@localhost~]# /etc/rc.d/init.d/sshd status sshd (pid 12375 10981 10275) is running…

SSH Servisi Uygulaması Makinenizde arkadas-isim_sinif kullanıcısı açın ve şifresini password olarak belirleyin SSH servisinizin sadece SSH2 protokolü ile çalışmasını sağlayınız. Root kullanıcısının SSH servisi ile sisteme bağlanmasını engelleyiniz Makinanızdaki ssh servisini, arkadas-isim _sınıf kullanıcısının sadece tek bir makine üstünden bağlanacağı şekilde ayarlayınız Arkadaşınızın makinesine ssh ile oturum açmadan /etc/passwd dosyasının içeriğini cat komutu ile gösteriniz Kendi makinenizde bulunan bir dosyayı uzaktaki ev dizininize kopyalayınız Uzaktaki ev dizininizdeki dosyayı kendi makinanıza kopyalayınız SSH sunucusunda Genel Anahtar ile kimlik doğrulamalı yapabilmek için gerekli işlemleri yapınız ve test ediniz (Passphrase olarak pktest veriniz)