# Telnet ve SSH

Telnet, TCP bağlantı noktası **23**'ü kullanır. Hem oturum açma kimlik doğrulamasının (kullanıcı adı ve parola) hem de iletişim kuran cihazlar arasında iletilen verilerin güvenli olmayan düz metin iletimini kullanan eski bir protokoldür.

Bir tehdit aktörü Wireshark kullanarak paketleri izleyebiliriz

```

R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#username sefa privilege 15 secret 123
R1(config)#enable secret cisco
R1(config)#line vty 0 4
R1(config-line)#login local
R1(config-line)#exit

R1#conf t
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown

R2 router üzerinden telnet  bağlantısı sağlayalım

R2(config)#int fa0/0
R2(config-if)#ip add 192.168.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit

R2#telnet 192.168.1.1
Trying 192.168.1.1 ... Open

Username: sefa
Password:   //123

R1>
R1>en
Password:
R1#



```

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FwquZ7nonSID64KkEr3gG%2Fimage.png?alt=media\&token=81e2d30c-a6db-4db0-8833-5fe7df1777a1)

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2Fcpb7iDCq5OsIRBUyOypP%2Fimage.png?alt=media\&token=70154d05-0d29-4273-8b89-b2559d715588)

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FpAD2AfvQrVVPKwNo7Ogy%2Fimage.png?alt=media\&token=fa1edb59-eaa7-4455-b637-1cfb465ef8b9)

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2F7uDrHWhQBop1nxkevRFv%2Fimage.png?alt=media\&token=fbf340a7-c979-487f-b933-255f36b355ed)

![R2 den R1 telnet bağlantısı yapmıştım R2 den bağlantıyı sonlandırdım R1 üzerinde bu şekilde gözüktü](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2F5BdxDiNNfecu7cs5DbEz%2Fimage.png?alt=media\&token=6e981686-0b6e-4fe5-af83-7a83cf371b46)

![wireshark üzerinde paketi follow ettiğimizde bu şekilde gözüküyor.](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FZbreOasST0nerrAUZmoW%2Fimage.png?alt=media\&token=c5044c61-a6c5-4b3f-b869-8051d0ed5131)

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2Fzc4hUiSyNEALHkCLVT33%2Fimage.png?alt=media\&token=bcb5a434-b2e6-4589-8d30-1c05c36876b0)

### SSH (Secure Shell)

Adım1 : Cihaza hostname ver.\
Adım2: Cihaza bir domain name tanımla\
Adım3: RSA -- Anahtar çifti oluşturma\
Adım4:  Kullanıcı oluşturma\
Adım5: VTY hattından sadece SSH bağlantılarını kabul et\
Adım6: SSH güvenliği (SSH hardening)

Güvenli Kabuk-Secure Shell (SSH), TCP bağlantı noktası **22** kullanan güvenli bir protokoldür. Uzak bir aygıta güvenli (şifreli) bir yönetim bağlantısı sağlar. SSH, yönetim bağlantıları için Telnet'in yerini almalıdır. SSH, bir cihazın kimliği doğrulandığında (kullanıcı adı ve şifre) güçlü şifreleme sağlayarak ve aynı zamanda iletişim kuran cihazlar arasında iletilen veriler için uzaktan bağlantılar için güvenlik sağlar. Şekilde bir SSH oturumunun Wireshark yakalaması gösterilmektedir. Tehdit aktörü, yönetici aygıtının IP adresini kullanarak oturumu izleyebilir. Bununla birlikte, Telnet'ten farklı olarak, SSH ile kullanıcı adı ve parola şifrelenir.

```
R1(config)#ip domain-name cisco.com
R1(config)#crypto key generate rsa
The name for the keys will be: R1.cisco.com
Choose the size of the key modulus in the range of 360 to 2048 for your
  General Purpose Keys. Choosing a key modulus greater than 512 may take
  a few minutes.

How many bits in the modulus [512]: 1024
% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]
R1(config)#
*Mar  1 00:35:05.611: %SSH-5-ENABLED: SSH 1.99 has been enabled
Adım 5: Kullanıcı oluşturma
R1(config)#username sefa secret 123

R1(config)#line vty 0 4  //Eş zamanlı 5 kullanıcı vty=virtual terminal
R1(config-line)#tran
R1(config-line)#transport input ssh
//eğer sadece bu networkten erişim sağlansın istediğimizde ACL yazabiliriz
R1(config-line)#access-class 1 in
R1(config-line)#login local         // Ssh erişiminde kullanıcı adının doğru
olup olmadığını local'den teyit et. Local'daki database üzerindekiler giriş yapsın
R1(config-line)#do wr
Building configuration...
[OK]
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255

Adım 6: SSH güvenliği
R1(config)#ip ssh version 2
R1(config)#ip ssh authentication-retries 5 // 5 defa deneme yapmaya imkan sağla.

R2 Router üzerinden SSH ile bağlanmak istersek 
===============================================


R2#ssh ?
  -c    Select encryption algorithm
  -l    Log in using this user name
  -m    Select HMAC algorithm
  -o    Specify options
  -p    Connect to this port
  -v    Specify SSH Protocol Version
  WORD  IP address or hostname of a remote system
  
R2#ssh -l sefa 192.168.1.1


Password:       //123 girdik

```

![wireshark üzerinde bağlantıyı capture ettik](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FUjhnyhI7c16LOrkTa1yq%2Fimage.png?alt=media\&token=69fa1b70-7361-48a6-afa2-11b6829950de)

![Hashlenmiş şekilde burada gözüküyor](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FItbQEJukJoTGhE7HWk1o%2Fimage.png?alt=media\&token=f90d4b60-c4ae-4bc1-b2a4-553b455a093b)

### Switch /Router SSH Desteklediğini Doğrulama

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FvsE0TlOUPdggXptTvcSW%2Fimage.png?alt=media\&token=636c8ff6-cbfd-4a6e-a93c-3c9e6b031170)

Router üzerinde veya switch üzerinde hangi IOS çalıştığını görmek için show version komutunu kullanabilirsiniz.

"K9" kombinasyonunu içeren bir IOS dosya adı, şifreleme(şifreli) özelliklerini ve yeteneklerini destekler.&#x20;

### Adım adım SSH yapılandırılması

SSH' yi yapılandırmadan önce, Switch ya da Router'ın benzersiz bir Hostname ve doğru ağ ayarları yapılması gerekir.

Adım 1: SSH desteğini doğrulama, Switch/ Router' ın SSH'ı desteklediğini doğrulamak için sh ip ssh komutunu kullanın. Switch/Router şifreleme özelliklerini destekleyen bir IOS çalıştırmıyorsa, bu komut tanınmaz.&#x20;

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FSGDsePVwL5NwmKLD1u3r%2Fimage.png?alt=media\&token=fbcebd85-790e-4ec0-9632-34d99255c4a6)

Adım 2: IP etki alanını yapılandırın -ip domain name - genel yapılandırma metodu kullanılarak ağın IP etki alanını yapılandırın.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FU0ByPHC7v7Q6wV9r085u%2Fimage.png?alt=media\&token=5bb74102-7b49-47d8-b57a-38a50a1ea07e)

Adım 3: RSA anahtar çiftlerini oluşturur. - RSA anahtar çifti oluşturmak otomatik olarak SSH'yi etkinleştirir. Switch /Router'da SSH sunucusunu etkinleştirmek ve bir RSA anahtar çifti oluşturmak için **crypto key generate** **rsa** global yapılandırma modu komutunu kullanın

**R1(config)#crypto key generate rsa**

How many bits in the modulus\[512]: 1024

Not: RSA anahtar çiftini silmek için, **crypto key zeroize rsa**  global yapılandırma modu komutunu kullanın. RSA anahtar çifti silindikten sonra SSH sunucusu otomatik olarak devre dışı bırakılır.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2F75k4IJSg2qSYBQDUhcpx%2Fimage.png?alt=media\&token=cfaf3acc-0e8f-46bf-95f4-4561c06878f0)

4.Adım: Kullanıcı kimlik doğrulamasını yapılandırın. - SSH sunucusu yerel olarak veya bir kimlik doğrulama sunucusu kullanarak kullanıcıların kimliğini  doğrulayabilir. Yerel kimlik doğrulama yöntemini kullanmak için, **username username secret password** genel yapılandırma modu kullanarak bir kullanıcı adı ve parola çifti oluşturun.  Ekstra olarak privilege 15 modu verebilirsiniz.

**R1(config)#username sefa privilege 15 secret 123**

5.Adım: VTY satırlarını yapılandırın. - **transport input ssh**  yapılandırma modu komutunu kullanarak vty satırlarındaki SSH protokolünü etkinleştirin. Yerel kullanıcı adı veritabanındaki SSH bağlantıları için yerel kimlik doğrulaması istemek için **line vty** global yapılandırma modu komutunu  ve ardından **login local** yapılandırma modu komutunu kullanın.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FRdO8fNg0lexuUJtGVRDL%2Fimage.png?alt=media\&token=28ceea97-5419-4c97-a50f-385265a174d2)

Adım 6:  SSH sürüm 2'yi etkinleştirin. - Varsayılan olarak, SSH hem sürüm 1 hem de 2'yi destekler. Her iki sürümü de desteklerken bu, **show ip ssh** çıktısında destekleyici sürüm 2 olarak gösterilir. \
**ip ssh version 2** genel yapılandırma komutunu kullanarak SSH sürümünü etkinleştirin.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FvxK0ZGWVI7KUHg5SOUyB%2Fimage.png?alt=media\&token=7c90bf5d-2eff-4284-b3dd-449f14b538e5)

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FpGkpuVZd0DMToO5gtq4u%2Fimage.png?alt=media\&token=ab7e9ce0-02f3-4cde-ab5f-d0d99ac61bf5)



