Temel olarak, sanal makine yazılımı bilgisayarların sanallaştırma özelliğini kullanarak, fiziksel bilgisayarın kaynaklarını sanal makineler arasında paylaştırır ve her sanal makineyi fiziksel bir bilgisayar gibi davranacak şekilde izole eder. Yeni çıkan beta sürümleri test etmek, Bir bilgisayarda birden çok işletim sistemi ile paralel çalışmak. gibi birçok sebeple kullanılabilir.
DEBIAN | ROCKY |
---|---|
Daha fazla güncelleme alır kararsız bir yapıdadır | Daha az güncelleme alır ve daha kararlı bir yapıdadır |
Bağımsız bir projedir ve kendine özgü bir topluluk tarafından geliştirilir. | Red Hat topluluğu tarafından geliştirilir ve kurumsal yapılarda tercih edilir |
Geniş bir topluluk tarafından desteklenir ve geniş bir belgelendirme ve rehberlik kaynağına sahiptir. | Daha yeni bir proje olduğundan, topluluk desteği ve dokümantasyonunun Debian kadar geniş olmadığı söylenebilir. |
apt adı verilen paket yöneticisini kullanır | yum adı verilen RPM tabanlı paket yöneticisini kullanır |
apt | aptitude |
---|---|
Basit ve hızlı bir paket yönetim aracı | Daha kapsamlı bir kontrol ve bağımlılık yönetimi |
Sadece komut satırı tabanlıdır ve doğrudan grafik bir kullanıcı arayüzü sunmaz | aptitude 'ın grafik kullanıcı arayüzü bulunur |
Ubuntu’nun 7.10 sürümünden itibaren default olarak dahil edilen önemli bir güvenlik özelliğidir. Güvenlik politikalarını uygulamak için kullanılan bir güvenlik çerçevesidir. Temel olarak, uygulamaların ve süreçlerin belirli kaynaklara (dosyalar, klasörler, ağ bağlantıları vb.) erişimini sınırlar ve izler. Bu, kötü niyetli bir yazılımın veya yetkisiz bir kullanıcının sisteme zarar vermesini önler.
sudo apparmor_status
sudo systemctl status <ufw or ssh>
sudo hostnamectl
sudo getent passwd <username>
id <username>
sudo vim /etc/login.defs
sudo vim /etc/pam.d/common-password //libpam-pwquality paketi
sudo chage -l <username> //kuralları göster
sudo chage -l --mindays <number> <username>
sudo chage -l --maxdays<number> <username>
sudo chage -l --warndays<number> <username>
sudo adduser <username> // Kullanıcıyı yönergeye göre oluştur
id <username> //oluşturuldu mu ???
sudo addgroup <groupName> //grup oluştur
sudo adduser <username> <groupname> //gruba kullanıcı ekle
sudo hostnamectl //bilgisayar adı işletim sistemi vs bilgiler
sudo hostnamectl set-hostname <newHostName> //adı değiştirdik
sudo vim /etc/hosts //buradanda değiştiriyoruz
//reboot edip tekrar hostnamectl ile kontrol ediyoruz
lsblk
- LVM NEDİR LVM, fiziksel disklerden (hard diskler, SSD'ler) mantıksal hacimler oluşturarak esnek bir depolama altyapısı sağlar. Mantıksal hacimler, fiziksel disklerdeki bölümleme sınırlamalarını aşarak daha esnek bir depolama çözümü sunar.
dpkg -l | grep sudo //sudo yüklü mü kontrolü
getent group sudo // sudo grubundakileri gör
sudo cat /var/log/sudo/sudo.log // sudo ile yapılan her işlemi kontrol et
Linux tabanlı işletim sistemlerinde güvenlik duvarı (firewall) yönetimini basitleştiren bir araçtır. Temel olarak, UFW, sistemde gelen ve giden ağ trafiğini kontrol etmenizi sağlar ve böylece ağ güvenliğini sağlar. UFW ile belirli ağ trafiği için kurallar oluşturursunuz. Bu kurallar, hangi tür trafiğin sistem üzerinden geçebileceğini veya engelleneceğini belirtir.
dpkg -l | grep ufw //yüklü mü
systemctl status ufw //aktif mi
sudo ufw status //izin verilen portlar
sudo ufw status numbered //numaralandırılmıs
sudo ufw delete <number> //numaralı olanı sil
sudo ufw allow <portnumber> //yeni kural ekle
SSH (Secure Shell) güvenli ve şifreli bir şekilde bilgisayarlar arasında iletişim sağlayan bir ağ protokolüdür. Uzaktan erişim, dosya aktarımı ve diğer ağ işlevleri için yaygın olarak kullanılır.
dpkg -l | grep ssh //yüklü mü
systemctl status ssh //aktif mi
sudo vim /etc/ssh/sshd_config //açık porta bak
ssh <username>@localhost -p 4242 // bağlan
TTY modunu aktif eder.Bu komut sadece sudo ön eki ile çalıştırılabilen komutlarda geçerlidir. Herhangi bir komut çalıştırmak için açık bir terminal ister. TTY1, PTS/0 gibi. Örneğin ;
//kendi sunucumuz üzerinden bir dosya oluşturalım
sudo touch /root deneme.txt //başarı ile oluşturabilmemiz gerek
// daha sonra buna benzer bir kodu ssh ile oturum açmadan direkt komut göndererek girelim
ssh <username>@localhost -p 4242 "sudo touch /root ttyModAktif.txt"
// şifreyi girdikten sonra tty modu akitf ise şöyle bir hata almamız gerek "sudo: sorry, you must have a tty to run sudo"
#!/bin/bash
# ARCH
arch=$(uname -a)
# CPU PHYSICAL
cpuf=$(grep "physical id" /proc/cpuinfo | wc -l)
# CPU VIRTUAL
cpuv=$(grep "processor" /proc/cpuinfo | wc -l)
# RAM
ram_total=$(free --mega | awk '$1 == "Mem:" {print $2}')
ram_use=$(free --mega | awk '$1 == "Mem:" {print $3}')
ram_percent=$(free --mega | awk '$1 == "Mem:" {printf("%.2f"), $3/$2*100}')
# DISK
disk_total=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_t += $2} END {printf ("%.1fGb\n"), disk_t/1024}')
disk_use=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} END {print disk_u}')
disk_percent=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} {disk_t+= $2} END {printf("%d"), disk_u/disk_t*100}')
# CPU LOAD
cpul=$(vmstat 1 2 | tail -1 | awk '{printf $15}')
cpu_op=$(expr 100 - $cpul)
cpu_fin=$(printf "%.1f" $cpu_op)
# LAST BOOT
lb=$(who -b | awk '$1 == "system" {print $3 " " $4}')
# LVM USE
lvmu=$(if [ $(lsblk | grep "lvm" | wc -l) -gt 0 ]; then echo yes; else echo no; fi)
# TCP CONNEXIONS
tcpc=$(ss -ta | grep ESTAB | wc -l)
# USER LOG
ulog=$(users | wc -w)
# NETWORK
ip=$(hostname -I)
mac=$(ip link | grep "link/ether" | awk '{print $2}')
# SUDO
cmnd=$(journalctl _COMM=sudo | grep COMMAND | wc -l)
wall " Architecture: $arch
CPU physical: $cpuf
vCPU: $cpuv
Memory Usage: $ram_use/${ram_total}MB ($ram_percent%)
Disk Usage: $disk_use/${disk_total} ($disk_percent%)
CPU load: $cpu_fin%
Last boot: $lb
LVM use: $lvmu
Connections TCP: $tcpc ESTABLISHED
User log: $ulog
Network: IP $ip ($mac)
Sudo: $cmnd cmd"
uname -a
İşletim sistemi hakkında bilgi veren bir komuttur.
grep "physical id" /proc/cpuinfo | wc -l
Bu komut, /proc/cpuinfo
dosyasındaki "physical id" satırlarını bulur ve bu satırların sayısını sayar.
grep "processor" /proc/cpuinfo | wc -l
Bu komut, /proc/cpuinfo
dosyasındaki "processor " satırlarını bulur ve bu satırların sayısını sayar.
ram_total=$(free --mega | awk '$1 == "Mem:" {print $2}')
ram_use=$(free --mega | awk '$1 == "Mem:" {print $3}')
ram_percent=$(free --mega | awk '$1 == "Mem:" {printf("%.2f"), $3/$2*100}')
ram_total=$(free --mega | awk '$1 == "Mem:" {print $2}')
: Bu satır, toplam RAM miktarını MB cinsinden belirler. free --mega
komutu, RAM kullanımı hakkında bilgiler sağlar ve awk
komutuyla "Mem:" başlığı altındaki satırın ikinci sütununu (yani toplam RAM miktarını) alır ve ram_total
değişkenine atar.
ram_use=$(free --mega | awk '$1 == "Mem:" {print $3}')
: Bu satır, şu anda kullanılan RAM miktarını MB cinsinden belirler. Aynı şekilde, free --mega
komutu kullanılarak RAM kullanımı hakkında bilgiler sağlanır ve awk
komutuyla "Mem:" başlığı altındaki satırın üçüncü sütununu (yani kullanılan RAM miktarını) alır ve ram_use
değişkenine atar.
ram_percent=$(free --mega | awk '$1 == "Mem:" {printf("%.2f"), $3/$2*100}')
: Bu satır, RAM kullanımının yüzde olarak belirlenmesini sağlar. Yine, free --mega
komutu kullanılarak RAM kullanımı hakkında bilgiler sağlanır. awk
komutuyla "Mem:" başlığı altındaki satırlardan kullanılan ve toplam RAM miktarı alınır. Ardından, kullanılan RAM miktarının toplam RAM miktarına oranı hesaplanır ve yüzde olarak ifade edilir. Sonuç, ram_percent
değişkenine atanır. Bu, RAM kullanımının yüzde cinsinden bir değerini temsil eder.
disk_total=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_t += $2} END {printf ("%.1fGb\n"), disk_t/1024}')
disk_use=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} END {print disk_u}')
disk_percent=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} {disk_t+= $2} END {printf("%d"), disk_u/disk_t*100}')
Bu kod bloğu, disk kullanımıyla ilgili istatistikleri hesaplar.
disk_total=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_t += $2} END {printf ("%.1fGb\n"), disk_t/1024}')
: Bu satır, disklerin toplam kapasitesini hesaplar. İlk olarak, df -m
komutuyla disk kullanımı bilgileri alınır. Ardından, /dev/
dizinine sahip olan satırlar grep "/dev/"
ile filtrelenir. Ancak, /boot
dizini filtrelenir ve grep -v "/boot"
ile dışlanır. Son olarak, AWK ile toplam disk kapasitesi hesaplanır ve GB cinsinden yazdırılır.
disk_use=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} END {print disk_u}')
: Bu satır, disklerin şu anki kullanımını MB cinsinden hesaplar. Benzer şekilde, df -m
komutuyla disk kullanımı bilgileri alınır, /dev/
dizinine sahip olan satırlar grep "/dev/"
ile filtrelenir ve /boot
dizini filtrelenir. Ardından AWK ile toplam disk kullanımı hesaplanır ve MB cinsinden yazdırılır.
disk_percent=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} {disk_t+= $2} END {printf("%d"), disk_u/disk_t*100}')
: Bu satır, disk doluluğunun yüzde olarak hesaplanmasını sağlar. Yine, df -m
komutuyla disk kullanımı bilgileri alınır, /dev/
dizinine sahip olan satırlar grep "/dev/"
ile filtrelenir ve /boot
dizini filtrelenir. Son olarak, AWK ile disk kullanımı ve toplam disk kapasitesi hesaplanır, ardından disk doluluğu yüzde cinsinden yazdırılır.
cpul=$(vmstat 1 2 | tail -1 | awk '{printf $15}')
cpu_op=$(expr 100 - $cpul)
cpu_fin=$(printf "%.1f" $cpu_op)
cpul=$(vmstat 1 2 | tail -1 | awk '{printf $15}')
: Bu satır, CPU kullanımını belirler. İlk olarak, vmstat 1 2
komutuyla CPU kullanım istatistikleri alınır. tail -1
komutu, son satırı alır çünkü bu satırın istenilen istatistikler içerdiği kabul edilir. Son olarak, AWK ile CPU kullanımı değeri belirlenir ve değişkene atanır.
cpu_op=$(expr 100 - $cpul)
: Bu satır, CPU kullanımının yüzde cinsinden doluluk oranını hesaplar. expr
komutu, basit matematiksel işlemler yapmak için kullanılır. Burada, 100'den CPU kullanımı değeri çıkarılarak boş CPU yüzdesi hesaplanır ve bu değer cpu_op
değişkenine atanır.
cpu_fin=$(printf "%.1f" $cpu_op)
: Bu satır, CPU kullanımının virgülden sonra bir basamağa yuvarlanmasını sağlar. printf "%.1f"
ifadesi, bir sayıyı virgülden sonra bir basamak olacak şekilde formatlar. Bu şekilde, CPU kullanımı yüzdesi daha okunaklı bir şekilde yazdırılır ve cpu_fin
değişkenine atanır.
lb=$(who -b | awk '$1 == "system" {print $3 " " $4}')
lb=$(who -b | awk '$1 == "system" {print $3 " " $4}')
: Bu satır, sistemin başlangıç zamanını belirler. who -b
komutu, sistemin son yeniden başlatılma zamanını gösterir. awk '$1 == "system" {print $3 " " $4}'
ifadesi, who -b
komutunun çıktısını işler ve "system" kullanıcısına ait olan satırı bulur. Sonrasında bu satırdaki üçüncü ve dördüncü sütunları, yani başlangıç tarihini ve saati alır. Bu bilgiler, lb
değişkenine atanır.
lvmu=$(if [ $(lsblk | grep "lvm" | wc -l) -gt 0 ]; then echo yes; else echo no; fi)
lvmu=$(if [ $(lsblk | grep "lvm" | wc -l) -gt 0 ]; then echo yes; else echo no; fi)
: Bu satır, LVM'nin kullanılıp kullanılmadığını belirler. İlk olarak, lsblk
komutu ile blok cihazları listelenir ve grep "lvm"
ile LVM'ye ait olan satırlar filtrelenir. Daha sonra, wc -l
ile bu satırların sayısı hesaplanır. -gt 0
koşulu, bu sayının 0'dan büyük olup olmadığını kontrol eder. Eğer LVM'ye ait bir blok cihazı bulunursa, yani lsblk
çıktısında LVM'ye ait bir satır varsa, echo yes
çalıştırılır; aksi takdirde echo no
çalıştırılır. Sonuç, lvmu
değişkenine atanır. Bu sayede lvmu
değişkeni "yes" veya "no" olarak atanır, LVM'nin kullanılıp kullanılmadığına dair bilgi verir.
tcpc=$(ss -ta | grep ESTAB | wc -l)
tcpc=$(ss -ta | grep ESTAB | wc -l)
: Bu satır, TCP bağlantılarının sayısını hesaplar. İlk olarak, ss -ta
komutu, TCP bağlantılarının detaylarını listeler. Ardından, grep ESTAB
ile bu listeyi ESTABLISHED durumundaki TCP bağlantılarını filtreler. Son olarak, wc -l
komutu ile bu filtrelenmiş satırların sayısı hesaplanır ve tcpc
değişkenine atanır. Bu, sistemdeki mevcut TCP bağlantılarının sayısını temsil eder.
ulog=$(users | wc -w)
ulog=$(users | wc -w)
: Bu satır, users
komutuyla mevcut oturum açmış kullanıcıların listesini alır. Ardından, wc -w
komutuyla bu kullanıcı listesinin kelime sayısını hesaplar. Her bir kullanıcı bir kelime olarak kabul edilir. Sonuç, ulog
değişkenine atanır ve bu değişken, şu anda oturum açmış olan kullanıcıların sayısını temsil eder.
ip=$(hostname -I)
mac=$(ip link | grep "link/ether" | awk '{print $2}')
ip=$(hostname -I)
: Bu satır, hostname -I
komutuyla sistemdeki tüm ağ arabirimlerinin IP adreslerini alır. Birden fazla IP adresi varsa, bu IP adresleri bir boşlukla ayrılarak ip
değişkenine atanır.
mac=$(ip link | grep "link/ether" | awk '{print $2}')
: Bu satır, ip link
komutuyla sistemdeki ağ arabirimlerinin detaylarını alır. grep "link/ether"
komutuyla sadece MAC adreslerini içeren satırları filtreler. Ardından, AWK kullanılarak bu satırlardan sadece MAC adresleri (ikinci sütun) çıkarılır ve mac
değişkenine atanır. Bu, sistemdeki birincil ağ arabiriminin MAC adresini temsil eder.
cmnd=$(journalctl _COMM=sudo | grep COMMAND | wc -l)
cmnd=$(journalctl _COMM=sudo | grep COMMAND | wc -l)
: Bu satır, journalctl
komutuyla sistem günlüklerini inceleyerek sudo
komutuyla yapılan işlemleri arar. _COMM=sudo
ifadesi, sadece sudo
komutuyla ilgili kayıtları filtreler. Ardından, grep COMMAND
komutu ile sudo
komutunun başarılı çalıştırılması durumundaki kayıtları bulur. Son olarak, wc -l
komutu ile bulunan bu kayıtların sayısı hesaplanır ve cmnd
değişkenine atanır. Bu, sudo
komutuyla yapılan başarılı işlemlerin sayısını temsil eder.
WALL nedir "Wall" kısaltması "write all"dan gelir ve "duvara yaz" anlamına gelir. Bu komut, bir sistem yöneticisinin veya yetkili bir kullanıcının, sistemdeki tüm kullanıcılara bir mesaj göndermesini sağlar. Bu mesaj, terminalde çalışan her kullanıcıya ulaşır ve sistemdeki tüm kullanıcılara eşzamanlı olarak iletilir.
su -
sudo -s
Root ortamına geçmek için.
lsblk
Disk yapısını incelemek için
reboot
Sisteme reset atar
hostnamectl
Host adı sürüm bilgisi vs öğrenme
hostnamectl set-hostname <newHostName>
Yeni Host adı vermek için bu kod yazılır fakat;
vim etc/hosts
dosyasına erişmeli ve değişikliği burayada uygulamayız, değişiklerin kaydedilmesi için sisteme reset atmak gerekir...
sudo adduser <username>
Yeni bir kullanıcı oluştur
sudo getent passwd <username>
id <username>
Kullanıcıya ait bilgiler (kullanıcı oluşturulduğuna dair bilgi)
sudo passwd
Root şifresi değiştir
passwd
Aktif kullanıcı şifresi değiştir
passwd <username>
Belirtilen kullanıcı şifresini değiştirmek
sudo deluser <username>
Kullanıcıyı siler
sudo deluser --remove-home <username>
Kullacıyı ana dizini ile birlikte kaldırır
sudo deluser --remove-all-files <username>
Kullanıcıya ait tüm dosyalar temizlenir.
sudo addgroup <group>
Grup oluştur.
sudo adduser <username> <group>
sudo usermod -aG <group> <username>
Gruba kullanıcı ekleme
adduser <username> <group>
usermod -aG <group> <username>
Kullanıcıyı istenilen bir gruba ekler
getent group <group>
Gruptaki kullanıcıları görüntüleme
sudo chage -l <username>
Kullanıcıya dayatılan şifre politikalarını öğren.
groups
groups <username>
Dahil olunan grupları öğren, sadece groups yazılırsa aktif kullanıcıya dair bilgiler.
dpkg -l | grep ssh
Kurulum kontrolü
ssh <username>@127.0.0.1 -p 4242
SSH ile sanal makinaya bağlan
sudo systemctl status ssh
sudo service ssh status
SSH servisi aktif durumu öğren
sudo systemctl restart ssh
sudo service ssh restart
SSH servisine reset at
sudo grep Port /etc/ssh/sshd_config
Port ayarlarını kontrol et
sudo vim /etc/ssh/sshd_config
SSH ayarlarına eriş
logout
exit
SSH ile bağlandı isen sonlandır
who
SSH ile bağlandığın zaman sanal makinadan terminale kimler hangi şekilde bağlı görebiliriz.