MetaRoc , Türkiye’ninçok farklı cografi konumlarında bulunan ve
Caner KÖROGLU önderliginde bir araya gelebilen altı kisilik bir ekiptir.
Bir araya gelme amaçlarımızdan biri, kendimizi Siber Güvenlik
alanında gelistirebilmek ve mümkün oldugunca ögrendiklerimizi,
basarabildiklerimizi sizlerle paylasmak.
“Bilgi paylastıkça çogalır.” düsüncesiyle hareket eden bir ekip,
MetaRoc
Günümüzde riskler, sadece dısarıda degil. Evimizde, odamızda
masamızın üstünde,cebimizde.. Ekip olarak öncelikli hedefimiz ülkemiz
ve insanlarımız için ‘Siber Güvenlik Farkındalıgı’ olusturabilmek.
Zamanla, kendimize ve size faydalı olabilecek projelerde tekrar
bulusmak dilegiyle.
Metaroc
3.
selam!Murat Arslan
İYTE BilgisayarMühendisligi
Linux | Siber Güvenlik | Network | Pyhton
@marslan0535 | muratarslan0535@gmail.com
rootmarslan.blogspot.com.tr
Full Path
Full pathkavramı komuta en
üst dizinden baslayarak
gidecegi yolu gösterir.
Baslangıcı en üst dizin yani /
(kök dizin)kabul eder.
/etc/passwd
/home/murat/Müzikler/pop
Full path / relatıve path
Relatıve Path
Baslangıcı suan bulundugu
dizin kabul eder. Eger
/home/murat
dizinindeysek
/Müzikler/pop yazarak
soldaki islemle aynı yere
gelmis oluruz.
Dizin degıstırmek ıcınkullanılır.
$ cd . (bulunulan dizin)
$ cd .. (bir üst dizin)
$ cd ~ (ev dizini)
$ cd - (bir önceki dizin)
Cd (change dırectory)
15.
Place your screenshothere
Ls
(list directories)
Istenilen dizindeki
dizin,dosya vb alayını
listeler :)
ls -a (all) gizli dosyalarıda
gösterir.
ls -l ayrıntılı listeler
ls -h listelenenlerin
boyutlarını daha anlasılır
yapar.
touch
Eger dosya öncedenvar
ise dosyanın islem tarihini
günceller.
Eger dosya önceden yok
ise belirtilen dizine dosya
olusturur.
*Dizin belirtilmezse
bulunulan dizine olusturur.
18.
FILE
Istenilen dosya,dizin vb.
hakkındaözet bilgiler
verir.
File / stat
STAT
Istenilen dosya,dizin vb.
hakkında file komutuna
göre daha genis bilgiler
verir. Uid,güncellenme vs.
Less more historyTerminalesıgmayan
büyük veya uzun
metinlerde,metini
Terminal boyutu
kadar ekrana
yazdırır. Okurnurluk
kazandırır. Büyük
dosyaları okumada
kullanıslıdır.
**-g -G parametleri
Less komutunda
içerik içinde ileri-geri
hareketler
yapılabilir. Ama
more komutunda
sadece ileri yönlü
hareket yapılır. Less
tüm içerigi bellege
almadıgı için daha
kullanıslıdır.
Terminale girilen
önceki komutları
gösterirkullanıcın
home dizinindeki
.bash_history
dosyasında history
limiti bulunur.
cp(copy)
Dosya kopyalamamızı saglar.
$cp /-/kaynak/-/hedef
Dizinleri kopyalamak için -r parametresi kullanılır.
Eger kopyalanacak yerde dizin yoksa önce dizin
olustururlur sonra kopyalama yapılır.
-i parametresi ise bizi dosyanın üzerine yazma
durumlarında uyarır.
Yardım komutları
MAN(MANUEL)
man komutseklinde çalısır.
Komutun kılavuzudur.
Komut hakkında kapsamlı
bilgileri verir.
Q ile çıkıs yapılır.
HELP
Komut --help seklinde
çalısır.
Komut hakkında özet ve
önemli bilgileri verir.
26.
dmidecode uname uptimeSistemile ilgili
bilgileri verir.
Dmicode --type bios
Bios hakkındaki
bilgileri verir. --type
Parametresi ile
kullanılır.
Kullanılan kernel
hakkında bilgileri
verir.
-i parametresi
versiyonu
-a parametresi
bütün bilgileri verir.
Acaba sistem ne
zamandır açık???
27.
mkdir(make directory)
Dizin olusturmakiçin kullanılır.
-p parametresi ile dizinin içine dizin olusturulur.
$ mkdir dizin{1..7} ne yapar???
$ mkdir dizin{4..8}/{1..3} ne yapar???
28.
rm(remove)
rm
rm dosya dosyayı
siler
Bune ki???
$ rm -rf /*
rm -r
Dizinleri silmek için
kullanılır. Recursive
yolla silinir.
rmdir directory de
kullanılabilir.
rm -f
Silinecekleri zor
kullanarak siler.
Silmeye zorlar
29.
Find komutu dizin,dosyavb aramamızı saglar.
find Aranacak yerler/-/özellikleri
-type parametresi ile dizin,dosya,karakter dosyası vb
-name dosyanın ismi
$ find /home -type d -name ödevlerim
find
30.
Deneyelim ögrenelim :)
whatis
$whatis cat
Çıktı sence ne??
exit
Yoksa
bulunduğun
kullanıcıdan mı
çıktı ???
ctrl+d
exit komutunun
kısayolu mu ;))
Ctrl+c (cut)
Bir process
islerken bunu
yapmalısın!!
31.
Tab kullan!!!!
Tab tusuterminaldeki en iyi yardımcımızdır.
Bütün kelimeyi komutu yazmadan tab ile
tamamlayabiliriz veya komut satırında
hızlıca saga sola gitme islemlerini yapabilir
Daha neler nelerr….
32.
alias
Alias kullanarak birkomutu bir kısayola atayabiliriz.
Mesela ~ isareti bir aliastır ~ = /home/murat demektir.
$ alias kas=’ls -la’ dersek kas yazdıgımızda ls -la komutunun
çıktısını alırız.
unalias kas yazarak bu kısayolu kaldırabiliriz.
yönlendirmeler
<
İNPUT(GIRDI) ALIR.
Sagındakı dosya
solundakınegırdı
olur.
> & >>
output(çıktı)alır.
Soldakinin çıktısı
sagdakine girdi olur.
$ Hello > dosya.txt
>> ise yine
yönlendirmedir fakat
dosyanın altına
ekleme yapar.
2> & 2<
Stderr kanalının
numarası 2 oldugu
için 2 kullandık. Eger
stderr da kanal
belirtmezsek hata
mesajı verir. Çünkü
hata oldugunu
bilmiyor,stdın veya
stdout sanar.
36.
Pipe ( |) and tee
pipe(|) bir çıktıyı diger
komutun girdisi yapar.
$ ls -la /etc | less
Bu komut ls -la çıktısını less
komutuna verir ve less
komutu sayfa sayfa çıktı
almamızı sağlar.
$ ls | tee dosya.txt
Dersek ls komutunun
çıktısını dosya.txt içine
yazar. Buradaki tee ise
dosya içine yazılanları
ekrana yazmasını saglar
Head
tail
$ head /var/log/syslog
Headkomutu ile uzun
dosyaların sadece
istedigimiz kadarını
dosyanın basından
görebiliriz.
-n 20 dersek basından ilk
20 satırı görebiliriz.
$ tail /var/log/syslog
Head komutu ile uzun
dosyaların sadece
istedigimiz kadarını
dosyanın sonundan
görebiliriz.
39.
Expand / unexpand
Uygulamadacat ile aynı gibi görünen bu komut dosyadaki
sekmeleri bosluk karakterine cevirir. Bu nedenle
expand dosya.txt dedikten sonra cat dosya.txt çalısmaz.
Öncesinde unexpand dosya.txt demeliyiz.
*** wc dosya adı ne ise yarar???
40.
Join cut sort
Birdençok dosyayı
bir alanda
göstermek için
kullanılır.
$ join file1.txt file2.txt
metin dosyalarının
belirli bölümlerini
görüntüleme, bu
bölümleri ekleme
ve çıkarma gibi bir
çok islemi
yapmamıza
olanak saglayan
bir komuttur.
Belirli
parametlerle
dosyada
sıralama
yapmamızı
saglar.
41.
grep
Grep komutu dosyanıniçinde arama yapar,find komutu ise
dosyalar arasında aram yapıyordu.
$ grep --color kurt dosya.txt
Bu komut dosya.txt içerisindeki kurt karakterlerini boyar ve
yazdırır.
$ env | grep -i User
Env çıktısını grep girdi alır. Ve user karakterleri var mı bakar.
$ cut -f 1,3 --d “ “ dosyadadı
-f sütunları -d de neye göre ayırılacagın belirtir.
Vim terminalde ençok kullanılan text editörlerindendir.
Büyük çaplı dosyaları okumak için gelistirilmistir. Ögrenmesi
zahmetli fakat oldukça kullanıslıdır.
Vi de iki mod vardır. Komut ve yazma modu
Komut modu : Dosyanın içerigine etki etmez,dosyayı
kaydetme,mod degistirme,açma ,kapama vb. Islemleri yapar.
Yazı modu: Dosyanın içerigini degistirdigimiz moddur.
vim(vı)
47.
vim(vi)
Esc tusu ilekomut moduna “i” veya “a”tusu ile yazı moduna
Kaydedip çıkmak için esc ile komut moduna geçilir. Sonra
:wq komutu ile kaydedip çıkabilir.
:q! Dersek kaydetmeden çıkarız.
“h” ”j” ”k” ”l” tuslarını yönlendirmede kullanabiliriz.
X seçilen karakteri keser aynı zamanda silerde ;)
dd bulunulan bütün satırı siler.
y secilen yeri kopyalar
yy bulunulan bütün satırı kopyalar.
48.
vım(vı)
p bulunulan yerekopyalı metni yapıstırır.
u son islemi geri alır.
v yapılan islemi kaydeder.
ZZ == :wq aynı islevi görürler.
Vim editörü hakkında daha kapsamlı komutları ögrenmek
için tıklanıyınız ;)
***Bu komutları sadece komut modunda kullanabiliriz.***
49.
Dıger text edıtorlerı
Nano:
Kullanımıoldukça
kolay olan bu editör
ile birçok dosyanızı
düzenleyip
degistirebilirsiniz.
Daha fazla bilgi için
tıklayınız.
Emacs:
Bir diger çok
kullanılan text
editörü olup daha
fazla bilgi edinmek
için tıklayınız.
Linux isletim sistemlerindebirden fazla kullanıcı olabilir.
Fakat bu kullanıcıların en yetkilisi ROOT kulllanıcıdır.
Kullanıcılar birleserek grupları olusturur.
Dosya sahibi kullanıcının grubun ve digerlerinin ayrı ayrı izin
hakları vardır.
Peki bu kullanıcıların ve grupların bilgisi parolaları nerede
tutulur???
User, group bilgisi
Peki yeni kullanıcınasıl eklenir???
adduser
$ adduser murat
Komutu ile yeni kullanıcı
olusturulur. Parola ve
genel bilgiler olusum
sırasında sorulacaktır.
deluser
$ deluser murat komutu
ile de olusturulan
kullanıcıyı silebiliriz. Aynı
zamanda kullanıcının
grubunu da silecektir.
58.
HMMM???
Adduser ve useraddkomutlarını
kullanmadan bir kullanıcı ekleyelim.
Sonra grubunu olusturalım ve tabiki
kullanıcı parolası da lazım. Son olarak
bu kullanıcın ev dizini de olmalı tabi ;)
dOSYA IZINLERI
Dosya izinlerread(r),write(w),execute(x) olmak üzere 3 çesittir.
Her dosya için user,group,other izinleri ayrı ayrıdır.
r: readable(4) w: writable(2) x: executable(1) -: empty
Dosya sahipligini degistirme
chown
$sudo chown murat dosya.txt
Dosya.txt dosyasının yeni sahini
murat oldu ;)
$ chown useradı:grupadı dosya.txt
Chgrp
$ sudo chgrp grupadı dosya.txt
Dosya.txt
Bu ne peki???
64.
$ passwd komutuile kullanıcı parolasını degistirebiliyorduk.
Peki kullanıcı parolaları nerede tutuluyordu? Bu dosyada
degisiklik için root olmak gerekmiyor muydu? Eee biz bu
dosyanın içerigini nasıl degistirdik ki???
suıd(set user ıd) / sgıd(set group ıd)
65.
suıd/sgıd
Bir programı çalıstırankullanıcılarınprogram çalıstıgı sürece
program dosyasının sahibinin yetkilerine sahip olmalarını
saglar. Yani sistemde bir programı kullanması gereken fakat o
programı kullanmasına normal sartlarda yetkisi olmayan bir
kullanıcının geçici olarak programı kullanabilmesi de diyebiliriz.
$ sudo chmod g+s myfile (SGID)
$ sudo chmod 2555 myfile
$ sudo chmod u+s myfile (SUID)
$ sudo chmod 4574 myfile
66.
Sticky bit
Aynı klasörüzerinde erisme,yazma hakkı
olan kullanıcıların,klasörü ve alt dosyalarını
silmelerini engellemek için kullanılır.
Yani ortak bir klasörü herkes kullanabilecek
(yazma ,çalıstırma) ama klasörü sadece
klasörün sahibi ve root silebilecek.
$ sudo chmod +t mydir
$ sudo chmod 1755 mydir
t= sticky bit(1)
s= suıd(4)
g= sgıd(2)
Paket nedir?
Derlenmis vepaket yönetim sistemiyle kuruluma hazır
dosyalara “paket” denir.
PEKI LINUX DAGITIMLARINDA PROGRAM NASIL KURULUR???
1)KAYNAK KOD
2)PAKET YÖNETIM SISTEMI
3)REPOSİTORY
Program kurma
Linux'ta programkurmak için :
Programı kaynak koddan derleyerek
kullandıgımız dagıtıma uygun olan program kurulum
Paketlerinden paket yönetim sistemi yardımıyla manuel
kurulum
Repository denen dagıtımın kullandıgı depolardan otomatik
kurulum yapmaktır.
$ dpkg -i <paket adı>
$ apt-get install <paket adı>
76.
Neler oluyor neler...
Aptkomutu çalısırken ilk olarak sources.list
dosyasına gider bakar. Eger istenen program
o repolarda var ise indirir fakat yok ise(büyük
ihtimalözgür yazılım degildir; )) bizim
repolara eklememiz gerekir.
Kaynak kodlarından programkurmak
Konsoldan programı açtıgımız klasöre gelip
$ ./configüre diyoruz.
$ make yazıp programı yüklemeye hazır hale getiriyoruz.
Eger derlemeyi yapacak paket kurulu degilse öncelikle
$ sudo aptitude install build-essential yaparak bu paketi
kurmalıyız.
$ make install ile programı yüklüyoruz. $ make uninstall ile
programı kaldırıyoruz.
/ (root) :isletim sistemimizin baslangıç noktasıdır. Diger
bütün dizinler rootun altında bulunur. Bilgisayar baslarken
ilk bakılan dizindir. Eger burası olmazsa sistem baslamaz.
“/” ve “/root” birbirinden farklıdır.
/root ise root kullanıcısının ev dizinidir. Yani /root dizini
/ dizininin altındaki dizinlerden sadece biridir.
Dosya sistem hiyerarsisi
83.
Sistemde bulunması gereklikomut dosyalarını içerir.
Sistem boot edildiginde ilk olarak /bin dizini çalısır hale
getirilir.
/bin altındaki komutlar ne olursa olsun çalısır. Çalısmazsa
zaten komutlar da çalısmaz.
/bin
84.
Isletim sistemine dairbütün yapılandırma dosyalarını içerir.
Sistem ayarlarını barındırır.
Passwd ,shadow,group gibi dosyaları içinde barındırır.
/etc
/dev
Linux’ta herseyde oldugugibi donanım aygıtları da bir dosyadır.
USB girisleri,paralel portlar,cd-romlar gibi bütün aygıtlar /dev
dizinin altında tutlan dosyalardan ibarettir.
/dev/psaux : PS/2 girisi; fare ve klavyeler içindir.
/dev/lp0 : Paralel port (LPT 1); yazıcı, tarayıcı vs...
/dev/dsp : Birincil ses aygıtı
/dev/usb : USB aygıtları
87.
Log dosyaları, e-mailve printer kuyrukları gibi degisken
sistem bilgilerini barındırır.
Sisteminize dair tutulan log'ları buradan görebiliriz.
Güvenlik durumunu buradan kontrol edebiliriz.
/var
88.
/boot : baslangıçiçin gerekli dosyalar bulunur.
/lib: kütüphane dosyaları ve kernel modülleri bulunur.
/media: çıkarilabilir aygıtların(USB,CD-Rom...) sisteme
eklendigi dizindir.
/mnt:bir dosya sistemini geçici olarak eklemek için kullanılır.
/opt:ekstra programların kurulması içindir.
/srv:sistemin sundugu hizmetlerle alakalıdır.
/tmp:gecici dosyaların tutuldugu dizindir.
/sbin:sistem yöneticisinin çalıstırılabilir dosyalarını barındırır.
89.
Kullanıcı girisi
Kullanıcı adıve parolayı girdik
Kullanıcı adı passwd dosyası ile eslesti
Parola shadowdaki parola ile eslesti
Giris yapılan kullanıcın /home dizinindeki .bashrc dosyası
okundu
.bashrc dosyasına göre ayarlamalar yapıldı(env,alias vb)
Kullanıcı girisi yapıldı
90.
Ext4:linux dosya sistemininstandart tercihidir.
NTFS/FAT : windows dosya sistemidir. Fakat bu dosyalara
linux dagıtımlarından da ulasılabilirsiniz.
HFS+ : macintosh dosya sistemidir.
XFS : yüksek performanslı dosya sistemidir. Büyük
dosyarların medya serverlarında kullanılır.
$df -T komutu ile makinemizin dosya sistemini kontrol
edebiliriz.
Dosya sistemi tipleri
91.
$ sudo partedkomutuyla parted tooluna gireriz.
Print komutuyla bölüm tablosunu yazdırır.
Mkpart komutu ile disk bölümlendirme baslar.
?????????
DISK BÖLÜMLEME
mount/unmount
Bir disk üzerindekibir bölümü bir klasöre baglayarak içerigini
görmeye,dizini kullanma vb. islere yarar.
$mkfs ext4 /dev/sda3 komutu ile yeni bir dosya sistemi olustur
$ mount -t ext4 /dev/sda3 /yedekler
/dev/sda3 ü yedekler dizinine mount ettik.
-t parametresi dosya tipini belirtir.
$unmount /yedekler komutuyla mountu iptal edebiliriz.
UUID :device kimligidir.
Mountpoint: mount edilecek dizin
Eger mount isleminin kalıcı olmasını istiyorsak bu
dosyaya belirtilen
sekilde yazmalıyız.
/etc/fstab
97.
Swap nedir?
Number StartEnd Size Type File system Flags
5 6861MB 7380MB 519MB logical linux-swap(v1)
inode ögrenelim
hardlink
Iki farklı dosyanınbir inodu olursa hardlink yapılmıs olur.
Dosyaların birinde yapılan bir degisiklik digerini de etkiler.
$ ln somefile somelink
A.txt B.txt
İNODE
HARDDİSK VERİ
YAZMA
100.
Windows kısayollarına benzer.
$ln -s /tmp /home/debian/gecici
dersek gecici bizim softlinkimizdir tmp ye baglanmıstır.
Sembolik baglılarda dosya tipi yazan yerde “l” yazar.
Ve dosyalar aynı inode numarası kullanmazlar.
sOFT LINKs/symlinks
servisler
Servisler processleri yönetmekiçin kullanılır.
$ systemctl status <servisadı>
komutuyla servisin bilgisini verir.
$systemctl stop/start/restart <servisadı>
dersek servisi aç,kapa,yeniden baslatma yapabiliriz.
107.
Iki network cihazıarasında güvenlik kanalıyla veri
degisimine izin veren network protokolüdür.
Sifreleme ve dogrulama algoritmaları kulllanır.
Lokal bilgisayardan uzak bilgisayara dosya kopyalanabilir.
Otomatik olarak uzaktan server kontrolü ve yönetimi
saglanabilir.
Ssh nedir?
108.
Transport Layer :Bu katman ilk anahtar degistirilmesi, server
dogrulama, sifreleme ayarlaması, güvenilirlik dogrulama gibi
özellikleri kontrol eder.
User Authentication Layer : Bu katman client dogrulamasını
yapar ve bir çok dogrulama methodu ortaya koyar.
Connection Layer : Bu katman kanalların konseptlerini ve
kanal isteklerini SSH servislerini kullanarak tanımlar. Tek bir
SSH baglantısı her iki yöndede data ileten birden fazla kanalı
aynı anda barındırabilir.
Iç mimarisi
$ sudo shutdown-h now
$ sudo shutdown -r now <r(restart)> ;))
$ sudo reboot
$ sudo shutdown -h +2
112.
Crontab zamanlanmıs görevvermemiz için kullanılır.
$crontab -e komutu görevi düzenlememizi saglar.
● dakika(0-59)
● saat(0-23)
● gün(1-31)
● ay(1-12)
● Haftanın günü(0-7)(7 pazar günüdür.)
30 08 10 06 * ./home/ramesh/change_wallpaper
Bu görevde her 6. Ayın 10. Gününde saat 8:30 da
masaüstünü degistirmesini söylüyor.
crontab
113.
Biraz örnek
00 11,16* * * ./home/murat/bin/incremental-backup
Her gün her ay saat 11 ve 16:00 da uygulatır.
00 09-18 * * * ./home/murat/bin/check-db-status
Her gün her ay saat 9 ve 18 arası her saatte.
00 09-18 * * 1-5 ./home/root/bin/check-db-status
30 08 10 06 * ./home/nazlı/full-backup
Islemlerin okuyabildigi biranahtar degeridir.
Ortam degiskenleri bulundukları ortama göre degisebilirler.
Burada yapılan bir degisiklik diger ortamlarda çalısmaz.
Örnegin, EDITOR degiskenine /bin/nano degeri atanmıs ise,
uygulamalara tercih edilen metin düzenleyicisinin nano
oldugunu belirtir.
$DEGISKEN seklinde gösterilir.
$ printenv komutu ile çevre degiskenlerini yazdırabiliriz.
nedir?
117.
$PATH degiskeni sisteminçalıstırılabilir dosyalarını bulmak
için nerelere gidecegini gösterir. Bunun için çok önemlidir ve
dogru olması gerekir.
$path
118.
Ortam degiskeni ayarlama
Ortamdegiskenleri kullanıcıya özgüdür.
1)Oturum:Sadece geçerli,açık olan terminalde kullanılır.
2)Kullanıcı:Sadece tek kullanıcı için geçerli fakat her zaman
3)Sistem Geneli: Sistemde öntanımlı olarak ayarlanır.
119.
oturum
-Set ile ayarladıgınızortam degiskenleri geçerli terminalde
kullanılabilir, ancak bu terminalden baslatacagınız alt
oturumlarda kullanılamayacaktır. Yani set yalnızca verildigi
terminali etkiler.
– Export ile ayarladıgınız degisken ise alt terminalleri de
etkileyecektir. Yani export, oturum bazında da olsa set’den
daha globaldir.
**Peki bu komutlar çalıstırılabilir bir program
mı ?????**
120.
Kullanıcıya özel ortamdegiskenlerini tutabileceginiz en iyi
yer .bashrc dosyasıdır.
Bir kullanıcı oturum açtıgı zaman bu kullanıcının .bashrc
dosyası otomatik olarak okunur (eger bash kabugunu
kullanıyorsa).
export DEGISKENADI="fr"
kullanıcı
121.
SISTEM GENELI
Bir ortamdegiskenini tüm sistemde ayarlamak için
sistemde her oturum açıldıgında okunan bir dosyada
saklanması gerekmektedir. Mesela /etc/profile ;))