Switch veya Router üzerinde konsole parolası verme.
Konsole erişimin güvenliği sağlamak. Artık cihazar erişir erişmez User olamayacağım demektir. Cihaza ilk defa bağlandığımızda console kablosunu bağladığımızda benden parola isteyecek.
Sw-Floor-1# configure terminal
Sw-Floor-1(config)# line console 0
Sw-Floor-1(config-line)# password cisco
Sw-Floor-1(config-line)# login
Sw-Floor-1(config-line)# end
Sw-Floor-1#logout
Sw-Floor-1# configure terminal
Sw-Floor-1(config)# enable password class
Sw-Floor-1(config)# exit
Sw-Floor-1#
Şuan cihazımda 2 tane güvenlik önlemi almış oldum. Birincisi console ile bağlanırken bir parola sorması. ikincisi cihaza root olurken yani enable dediğimde # (priviledge mode) geçmek için benden bir parola sormasını istedik. Enable password Running Configurasyonda Plain text olarak gözüküyor. O yüzden güvenli değil.
Sw-Floor-1# configure terminal
Sw-Floor-1(config)# service password-encryption
Sw-Floor-1(config)#
Service password-encyption yazdığımızda type 7 ile kriptolama yapıyor bu bizim için çok da güvenli değil. Kırılabilir. Enable password yerine enable secret kullanmamız daha uygun. Enable secret ise MD5 ile kriptoluyor. MD5 de artık kırılabiliyor bu da çok güvenli değil.
Sw-Floor-1# configure terminal
Sw-Floor-1(config)# enable secret class
Sw-Floor-1(config)# exit
Sw-Floor-1#
Cihaza uzaktan erişim için yapılandırma. (Telnet)
Sw-Floor-1# configure terminal
Sw-Floor-1(config)# line vty 0 15
Sw-Floor-1(config-line)# password cisco
Sw-Floor-1(config-line)# login
Sw-Floor-1(config-line)# end
Sw-Floor-1#
Parolayı cisco giren herkes bu cihaza telnet üzerinden erişebilecek. Telnet güvenli değil. Wireshark ile kolayca izlenip kırılabilir. Clear text olarak iletildiği için. Daha güvenli protokol olan SSH kullanılabilir. Bilgisayarlar arasında da telnet yapmak mümkün. Windows makinede Telnet Client kapalı olarak geliyor
Telnet uzaktan yapılandırma aracıdır. Konsole ile değil de ip ile eriştiğim sağlıyoruz.
Router# configure terminal
Router(config)# enable algorithm-type ?
md5 Encode the password using the MD5 algorithm
scrpyt Encode the password using the SCRYPT hashing algoritm //type 9
sha256 Encode the password using the PBKDF2 hashing algoritm //type 8
Router(config)#enable algorithm-type sha256 secret cisco123
//eğer sh run yazarsak bu parolanın type 8 ve sha256 ile hash'lendiğini görebiliriz
R1(config)#username sefa password sefa //haslenmedi. Sonrasında Service password enctyption ile
hash'leyebiliriz Type 7 ile ama yine de çok da güvenli değil
R1(config)#username sefa secret sefa //MD5 iler hash'lendi
R1(config)#username sefa algorithm-type scrpyt secret sefa //type 9 ile hash'lendi
Hashing => Tek yönlü matematiksel bir fonksiyondur ve girilen inputtan bir output ortaya çıkar. Fixed size bir output elde edersiniz. Tersine matematik de geri dönüşümü yoktur.
Enctyption ise geri dönüşümü olan bir yöntemdir. Encytion çift yönlüdür.
Ek Güvenlik Önlemleri
R1(config)# service password-encryption
R1(config)# security passwords min-length 8
R1(config)# login block-for 120 attempts 3 within 60
//60 sn içerisinde 3 kez giriş yapılırsa 120 sn boyunca loginleri blokla
//brute force karşı güzel bir yöntemdir.
//Şöyle bir risk var. Bütün login işlemleri blokluyor 120 sn boyunca. Hiçkimse
artık login olamaz. Admin bile olsa. Ama access list kullanabiliriz.
R1(config)#ip access-list standart ADMIN-ONLY
R1(config-std-nacl)# remark Sadece admin erişebilir
R1(config-std-nacl)#permit 192.168.1.0 0.0.0.255 //sadece bu networke izin ver.
R1(config)#login quiet-mode access-class ADMIN-ONLY
//eğer cihaz bir şekilde bloklanıysa hatalı girişimden dolayı
ADMIN-ONLY olanlar bundan muaf.
R1(config)# login on-failure log //başarısız girişleri logla (syslog)
R1(config)# login on-success log //başarılı girişleri de logla (syslog)
R1(config)# line vty 0 4
R1(config-line)# password cisco123
R1(config-line)# exec-timeout 5 30 //cihazımızda konsolda ya da telnet de
//belirli bir süre aktivite ya da eylem yoksa logout olmamızı sağlar.
// 5 dk 30 sn boyunca
R1(config-line)# transport input ssh
R1(config-line)# end
R1# show running-config | section line vty
line vty 0 4
password 7 094F471A1A0A
exec-timeout 5 30
login
transport input ssh
R1#
********************************************************************
R1(config)#security passwords min-length 8
R1(config)#enable secret cisco
% Invalid Password length - must contain 8 to 25 characters.
Password configuration failed
ÖRNEK
R1(config)# enable algorithm-type ?
md5 Encode the password using the MD5 algorithm
scrypt Encode the password using the SCRYPT hashing algorithm
sha256 Encode the password using the PBKDF2 hashing algorithm
R1(config)# enable algorithm-type scrypt ?
secret Assign the privileged level secret (MAX of 25 characters)
R1(config)# enable algorithm-type scrypt secret cisco12345
R1(config)# do show run | include enable
enable secret 9 $9$Gyk9x3Ve4c0n5k$8.cR3yReBduzHymEyCOcErgPKW8MSKokRN
9KjEg4WQA
R1(config)#
R1(config)# login block-for 15 attempts 5 within 60
R1(config)# ip access-list standard PERMIT-ADMIN
R1(config-std-nacl)# remark Permit only Administrative hosts
R1(config-std-nacl)# permit 192.168.10.10
R1(config-std-nacl)# permit 192.168.11.10
R1(config-std-nacl)# exit
R1(config)# login quiet-mode access-class PERMIT-ADMIN
R1(config)# login delay 10 //loginler arasında delay(gecikme) koyabiliriz.
R1(config)# login on-success log
R1(config)# login on-failure log
R1# show login
A login delay for 10 sec is applied.
Quiet-Mode access list PERMIT-ADMIN is applied.
Router enabled to watch for login Attacks.
If more than 5 login failures occur in 60 sec or less,
login will be disabled for 120 secs.
Router presently in Normal-Mode.
Current Watch Window
Time remaining: 5 seconds.
Login failures for current window: 4.
Total login failures:4.
Başarısız Giriş Denemeleri
R1#
*Dec 10 15:38:54.455: %SEC_LOGIN-1-QUIET_MODE_ON: Still timeleft for watching failures
is 12 secs, [user: admin] [Source: 10.10.10.10] [localport: 23] [Reason: Login
Authentication Failed - BadUser] [ACL: PERMIT-ADMIN] at 15:38:54 UTC Wed Dec 10 2008
R1# show login
A login delay of 3 seconds is applied.
Quiet-Mode access list PERMIT-ADMIN is applied.
Router enabled to watch for login Attacks.
If more than 5 login failures occur in 60 seconds or
less,logins will be disabled for 120 seconds.
Router presently in Quiet-Mode.
Will remain in Quiet-Mode for 105 seconds.
Restricted logins filtered by applied ACL PERMIT-ADMIN.
R1# show login failures
Total failed logins: 22
Detailed information about last 50 failures
Username SourceIPAddr lPort Count TimeStamp
admin 1.1.2.1 23 5 15:38:54 UTC Wed Apr 6 2022
Admin 10.10.10.10 23 13 15:58:43 UTC Wed Apr 6 2022
admin 10.10.10.10 23 3 15:57:14 UTC Wed Apr 6 2022
cisco 10.10.10.10 23 1 15:57:21 UTC Wed Apr 6 2022
R1#
Privilege Levels
R1#sh privilege
Current privilege level is 15
R1>sh privilege
Current privilege level is 1
Eğer root isek 15.düzeydeyiz. User isem 1.düzeydeyim. 0'dan 15 e kadar 16 tane düzey var. Aradaki level'lar yok aslında Biz oluşturup oraya tanınmlama yapmalıyız.
Kullanılacak komutları sınırlayabiliriz. Bu komutu kullan bu komutu kullanma
R1# conf t
R1(config)# !Level 5 and SUPPORT user configuration
R1(config)# privilege exec level 5 ping //LEVEL 5 olan ping kullanacak
// Exec modundaki ping komutunu kullanabiliyor demektir.
R1(config)# enable algorithm-type scrypt secret level 5 cisco5
//Level 5'e geçerken parola isteyebiliriz.
R1(config)# username SUPPORT privilege 5 algorithm-type scrypt secret cisco5
R1(config)# !Level 10 and JR-ADMIN user configuration
R1(config)# privilege exec level 10 reload // exec şu exec modundaki reload
komutunu kullanabiliyor demektir.
R1(config)# enable algorithm-type scrypt secret level 10 cisco10
//Level 10'un parolası cisco10 olsun diyebiliriz.
R1(config)# username JR-ADMIN privilege 10 algorithm-type scrypt secret cisco10
R1(config)# !Level 15 and ADMIN user configuration
R1(config)# enable algorithm-type scrypt secret level 15 cisco123
R1(config)# username ADMIN privilege 15 algorithm-type scrypt secret cisco12
Örnek
R1(config)#privilege ?
configure Global configuration mode
exec Exec mode
interface Interface configuration mode
line Line configuration mode
router Router configuration mode
R1(config)#privilege exec level 5 ping
R1(config)#privilege exec level 5 debug
//Level 5'deki kişi ping ve debug komutunu kullanabilecek.
R1(config)#privilege configure level 5 ip route
// Level 5'deki ip route komutunu kullanabilsin
// Sonrasında enable parolası atamak gerekiyor.
R1(config)#enable secret level 5 cisco5
//Ben level 5 oluşturdum level 5 içerisinde yazılabilecek komutlar bunlardır.
R1#enable 5
R1#sh privilege
Current privilege level is 5
//5. düzeye geçmiş olduk.
R1#?
Exec commands:
<1-99> Session number to resume
connect Open a terminal connection
disable Turn off privileged commands
disconnect Disconnect an existing network connection
enable Turn on privileged commands
exit Exit from the EXEC
logout Exit from the EXEC
ping Send echo messages
resume Resume an active network connection
show Show running system information
ssh Open a secure shell client connection
telnet Open a telnet connection
terminal Set terminal line parameters
traceroute Trace route to destination
R1#
//Level 5 de yukardakileri kullanabiliyoruz.
R1#conf t
^
% Invalid input detected at '^' marker.
//conf t eklemeyi unutmuşuz.E
R1(config)#privilege exec level 5 configure terminal
R1(config)#exit
R1#
%SYS-5-CONFIG_I: Configured from console by console
//Priviledge 5'e girdik.
R1#
R1#enable 5
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
//Eğer kullanıcı admin ve cisco ile giriş yaparsa 15.düzeyden girsin
ama user5 ve cisco5 parolası ile giriş yaparsa 5.düzeye erişsin dedik.
//user5 ile sadece benim tanımladığım komutlara erişsin
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#username admin privilege 15 secret cisco
R1(config)#username user5 privilege 5 secret cisco5
Telnet ile bağlantı sağlandığımızda user5 ile girersek sadece user5 ile ilgili atadığımız komutları kullanıyor.
Örnek Konfigurasyon
R1# conf t
R1(config)# !Level 5 and SUPPORT user configuration
R1(config)# privilege exec level 5 ping
R1(config)# enable algorithm-type scrypt secret level 5 cisco5
R1(config)# username SUPPORT privilege 5 algorithm-type scrypt secret cisco5
R1(config)# !Level 10 and JR-ADMIN user configuration
R1(config)# privilege exec level 10 reload
R1(config)# enable algorithm-type scrypt secret level 10 cisco10
R1(config)# username JR-ADMIN privilege 10 algorithm-type scrypt secret cisco10
R1(config)# !Level 15 and ADMIN user configuration
R1(config)# enable algorithm-type scrypt secret level 15 cisco123
R1(config)# username ADMIN privilege 15 algorithm-type scrypt secret cisco123
R1> enable 5
Password: <cisco5>
R1# show privilege Current privilege level is 5
R1# ping 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
R1# reload
Translating "reload"
% Bad IP address or host name
Translating "reload"
% Unknown command or computer name, or unable to find computer address
R1#
R1# enable 10
Password: <cisco10>
R1# show privilege
Current privilege level is 10
R1# ping 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
R1# reload
System configuration has been modified. Save? [yes/no]: ^C
R1# show running-config
^
% Invalid input detected at '^' marker.
R1#
R1# enable 15
Password:
R1# show privilege
Current privilege level is 15
R1# show running-config Building configuration...
Current configuration : 1979 bytes
!
! Last configuration change at 15:30:07 UTC Tue Feb 17 2022
!
Priviledge düzeylerden ziyade biz Role-based Cli kullanırız.
Role-Based View
Rol tabanlı CLI, hangi komutların kullanılabilir olduğunu belirleyen üç tür görünüm sağlar:
Root View : Her şeyi yapan, her komuta yetkisi olan. Level 15 düzey.
CLI View : Hangi komutu kullanmak istiyorsanız View'ler oluşturmak gerekiyor.
Superview: İçerisinde birden fazla View barındıran ve onların bütün komutlarını içeren
Örnek
R1(config)# aaa new-model //bunu açmak gerekiyor
R1(config)# parser view SHOWVIEW //view tanımlaması yapıldı
R1(config-view)# secret ? // parola tanımlaması yapıldı
0 Specifies an UNENCRYPTED password will follow
5 Specifies an ENCRYPTED secret will follow
LINE The UNENCRYPTED (cleartext) view secret string
R1(config-view)# secret cisco
R1(config-view)# commands exec include show //exec modunda tüm show'ları dahil et.
R1(config-view)# exit
R1(config)# parser view VERIFYVIEW
R1(config-view)# commands exec include ping // exec modda ping'e izin ver.
% Password not set for the view VERIFYVIEW
R1(config-view)# secret cisco5 // parola ataması gerekiyor
R1(config-view)# commands exec include ping
R1(config-view)# exit
R1(config)# parser view REBOOTVIEW
R1(config-view)# secret cisco10
R1(config-view)# commands exec include reload
R1(config-view)# exit
R1(config)#
Örnek
Level 15'e geçtim. Bundan sonra artık parser-view kullanabiliyorum
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#aaa new mode
^
% Invalid input detected at '^' marker.
Router(config)#aaa new-model
Router(config)#enable secre cisco
Router(config)#ext
^
% Invalid input detected at '^' marker.
Router(config)#exit
Router#
%SYS-5-CONFIG_I: Configured from console by console
Router#ena
Router#enable vi
Router#enable view
Password:
Router#%PARSER-6-VIEW_SWITCH: successfully set to view 'root'.
Router#conf t
Router(config)#parser view CAYLAK
Router(config-view)#%PARSER-6-VIEW_CREATED: view 'CAYLAK' successfully created.
Router(config-view)#secret caylak
Router(config-view)#commands exec include ping
Router(config-view)#command exec include show
Router(config-view)#commands configure include ospf
Router(config-view)#commands exec include configure terminal
Router(config-view)#commands exec include-exclusive debug ip packet
//Bunu kullandığım zaman artık bu debug ip packet başka hiçbir viewda
//kullanamazsın anlamına geliyor.
Router(config-view)#commands exec exclude show ip interface brief
//bütün show komutlarını kullan ama show ip interface brief komutunu kullanma
Router(config-view)#exit
Router(config)#end
Router#
%SYS-5-CONFIG_I: Configured from console by console
Router#enable view CAYLAK
Password: //caylak
Router#%PARSER-6-VIEW_SWITCH: successfully set to view 'CAYLAK'.
Router#?
Exec commands:
disable Turn off privileged commands
enable Turn on privileged commands
exit Exit from the EXEC
logout Exit from the EXEC
ping Send echo messages
show Show running system information
Router#enable view //Root'a geldik
Router#enable view CAYLAK //CAYLAK'a geldik
R1# enable view USER
Password: <cisco1>
R1# ?
Exec commands:
<0-0>/<0-4> Enter card slot/sublot number
do-exec Mode-independent "do-exec" prefix support
enable Turn on privileged commands
exit Exit from the EXEC
show Show running system information
R1# show ? banner Display banner information
flash0: display information about flash0: file system
flash1: display information about flash1: file system
flash: display information about flash: file system
parser Display parser information
usbflash0: display information about usbflash0: file system
R1# enable view SUPPORT
Password: <cisco1>
R1# ?
Exec commands:
<0-0>/<0-4> Enter card slot/sublot number
do-exec Mode-independent "do-exec" prefix support
enable Turn on privileged commands
exit Exit from the EXEC
ping Send echo messages
show Show running system information
R1#
JR-ADMIN için erişilebilirlikleri doğrulama
R1# enable view JR-ADMIN
Password:
R1# ?
Exec commands:
<0-0>/<0-4> Enter card slot/sublot number
do-exec Mode-independent "do-exec" prefix support
enable Turn on privileged commands
exit Exit from the EXEC
ping Send echo messages
reload Halt and perform a cold restart
show Show running system information
R1#
R1# show parser view
Current view is 'JR-ADMIN'
R1# enable view
Password:
R1# show parser view
Current view is 'root'
R1# show parser view all
Views/SuperViews Present in System:
SHOWVIEW
VERIFYVIEW
REBOOTVIEW
USER *
SUPPORT *
JR-ADMIN *
-------(*) represent superview-------
R1#
Cihaz İzleme ve Yönetimi
Komutları ile image dosyasımıız ve konfigurasyon dosyamızı korumaya alabiliriz.
dir komut ile baktığımız zaman IOS dosyasını görebiliyoruz. Ama secure boot-image yazdığımızda artık IOS dosyasımızı göremiyoruz. Yanlışlıkla silinebilmesinin önüne geçmiş oluyorum. Tekrar görünmesini isterseniz başına no komutu kullanmak gerekiyor. Bu komut IOS localdeyse geçerli TFTP ile de yükleyip boot edebilirim o zaman geçerli değil.
Enable parolası verdik ve unuttuk. Konsole parolasi da olabilirdi . Kurtarmak istediğimizde cihazı kapatacaksın fiziksel olarak. Açılırken CTRL+Break tuşuna basarsanız veya CTRL+C kombinasyonuna basarsanız. İşletim sisteminin belleğe yüklenmesini önlemiş oluruz.Belleğe işletim sistemi yüklenmezse cihaz açılmayacak IOS yüklenmeyecek o zaman da bizi rommon moda atacaktır. Burada yapılması gereken şey confreg (config register) yazmak 0x2142 getirmek.
ve ardından cihazı resetlemek gerekiyor. Konfigurasyon değerini 2142 ye çevirseniz ayarlarımız runnig-config'e yüklenmemiş olur. Yani startup-config, running-config'e yüklenmemiş olur.
Ayarlarım belleğe yüklenmemiş oldu. Silinmedi Yani startup config var. ama running confige aktarılmadı . Ben start-up config'i running-config'e aktar diyecem.
Sh run yaptıktan sonra ayarlarımız tekrar görebiliriz. Unutmamız gereken bir şey var. Configuration register değerini orijinal değerine çekmek gerekiyor.
Router(config)#enable secret cisco
Router>en
Password:
Self decompressing the image :
####################
monitor: command "boot" aborted due to user interrupt
rommon 1 > confreg 0x2142
rommon 2 > reset
Router>en
Router#copy startup-config running-config
Destination filename [running-config]?
613 bytes copied in 0.416 secs (1473 bytes/sec)
Router#
%SYS-5-CONFIG_I: Configured from console by console
Router#
R1#sh run
Building configuration...
Current configuration : 658 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname R1
!
!
!
enable secret 5 $1$mERr$4p1IB2LpEIY48t9by4odw1
// 0 yerine 4 yaparsak ayar yükleme gibi bir anlamı var.
R1(config)#config-register 0x2102
Parola kurtarma hizmetini devre dışı bırakabiliriz. O zaman artık cihazımızı sıfırlamamız gerekecek.