# önder online
Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri Yapay zekâ ve otomasyonun güvenliğe etkileri Microsoft 365 ve Active Directory güvenlik rehberleri Yazılım geliştirmede güvenlik odaklı yaklaşımlar Teknoloji ve siber güvenlik dünyasına hoş geldiniz Güncel siber tehditler ve korunma yöntemleri

Menu

Debian Kurulum Notlarım

Debian Kurulum Notlarım

Debian Kurulum Notlarım/ install Notes

Önder AKÖZ

Debian Kurulum Notlarım/ install Notes

1. Debian Repository Ekleme / Adding Debian Repository
— Sources.list Dosyası Ekleme / Adding Sources.list File
— Temel Repository Formatı / Basic Repository Format
— Resmi Repository’ler / Official Repositories
— GPG Anahtarı Ekleme / Adding GPG Key
— Repository Güncelleme / Repository Update
— Backports Repository / Backports Repository
— Third-Party Repository / Third-Party Repository
— Repository Silme / Remove Repository
— Repository Yönetimi / Repository Management
— HTTPS Desteği / HTTPS Support

2. Terminal Kopyalama-Yapıştırma / Terminal Copy-Paste
— Terminal İçi Kopyalama / In-Terminal Copy
— Sağ Tık Menüsü / Right Click Menu
— Orta Fare Tuşu / Middle Mouse Button
— Terminal Kısayolları / Terminal Shortcuts
— Screen Kullanımı / Screen Usage
— Tmux Kullanımı / Tmux Usage
— Buffer Kopyalama / Buffer Copy
— xclip Kullanımı / xclip Usage
— Terminal Yapılandırması / Terminal Configuration
— Vim Kopyalama / Vim Copy
— SSH Kopyalama / SSH Copy

3. Sistem Askıya Alma / System Suspend
— Askıya Alma Engelleme / Prevent Suspend
— Dosya Kaydetme / Save Files
— Sistem Durumu Kontrolü / System Status Check
— Askıya Alma Yönetimi / Suspend Management
— Zamanlı Askıya Alma / Timed Suspend

4. RDP Kurulumu / RDP Setup
— XRDP Kurulumu / XRDP Installation
— XRDP Servis Yönetimi / XRDP Service Management
— Firewall Ayarları / Firewall Settings
— Masaüstü Ortamı Ayarları / Desktop Environment Settings
— Sorun Giderme / Troubleshooting
— Güvenlik Önerileri / Security Recommendations
— Bağlantı Bilgileri / Connection Information

5. LAMP install (phpmayadmin + secure install)
6. OpenSSH install
7. Debian/Linux sisteminde saat ve tarih güncelleme işlemleri
8. Debian/Linux’ta uyku moduna girmeyi engelleme yöntemleri
9. FTP sunucusu kurulumu için vsftpd (Very Secure FTP Daemon) kullanacağız
10. Debian’a VSCode kurulumunu 
*****************************************************

Debian’da repository (depo) ekleme konusunda size yardımcı olacağım. İşte farklı yöntemlerle repository ekleme adımları:

1. Sources.list Dosyası Üzerinden Ekleme:
```bash
# Sources.list dosyasını açın
sudo nano /etc/apt/sources.list

# Veya yeni bir dosya oluşturun
sudo nano /etc/apt/sources.list.d/yeni_repo.list
```

2. Temel Repository Formatı:
```bash
deb http://depo-adresi/debian version main contrib non-free
deb-src http://depo-adresi/debian version main contrib non-free
```

3. Debian’ın Resmi Repository’leri (Örnek):
```bash
# Debian 12 (Bookworm) için
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware

# Debian 11 (Bullseye) için
deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
```

4. GPG Anahtarı Ekleme:
```bash
# Anahtar indirme
wget -qO — https://paket-adresi/KEY.gpg | sudo apt-key add -

# Veya
curl -fsSL https://paket-adresi/KEY.gpg | sudo gpg — dearmor -o /etc/apt/trusted.gpg.d/paket.gpg
```

5. Repository Güncelleme:
```bash
# Paket listelerini güncelle
sudo apt update

# Tüm paketleri güncelle
sudo apt upgrade
```

6. Backports Repository Ekleme:
```bash
# Bookworm için
deb http://deb.debian.org/debian bookworm-backports main contrib non-free

# Bullseye için
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
```

7. Third-Party Repository Örnekleri:

PHP Repository:
```bash
# Ondrej PHP PPA
wget -qO — https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo “deb https://packages.sury.org/php/ $(lsb_release -sc) main” | sudo tee /etc/apt/sources.list.d/php.list
```

Node.js Repository:
```bash
# NodeSource repository
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo bash -
```

8. Repository Silme:
```bash
# sources.list.d dizininden silme
sudo rm /etc/apt/sources.list.d/repo_adi.list

# veya sources.list içinden ilgili satırları silme/yorum satırı yapma
sudo nano /etc/apt/sources.list
```

9. Repository Yönetimi İçin Yararlı Komutlar:
```bash
# Mevcut repository’leri listele
apt policy

# Repository anahtarlarını listele
sudo apt-key list

# Bozuk repository’leri kontrol et
sudo apt update 2>&1 | grep Err

# Repository önbelleğini temizle
sudo apt clean
```

10. HTTPS Desteği İçin:
```bash
sudo apt install apt-transport-https ca-certificates
```

Önemli Notlar:
- Repository eklerken güvenilir kaynaklardan eklediğinizden emin olun
- Her repository ekledikten sonra `sudo apt update` komutunu çalıştırın
- Eski/kullanılmayan repository’leri sistemden kaldırın
- Third-party repository’leri dikkatli kullanın
- Her zaman GPG anahtarlarını doğrulayın

Bu adımları takip ederek Debian sisteminize güvenli bir şekilde yeni repository’ler ekleyebilirsiniz.

Debian terminalinde kopyalama ve yapıştırma işlemleri için size farklı yöntemleri açıklayacağım:

1. Terminal İçinde Kopyalama-Yapıştırma:
```bash
# Kopyalama
CTRL + SHIFT + C

# Yapıştırma
CTRL + SHIFT + V
```

2. Sağ Tık Menüsü:
```bash
# Fare sağ tıklama ile:
Kopyala (Copy)
Yapıştır (Paste)
```

3. Orta Fare Tuşu ile:
```bash
# Metni seçtikten sonra:
Orta tuş (tekerlek) ile tıklayarak yapıştırma
```

4. Terminal Kısayolları:
```bash
# Metin seçimi:
SHIFT + Sol/Sağ ok tuşları

# Tüm metni seçme:
CTRL + SHIFT + A

# Kesme:
CTRL + SHIFT + X
```

5. Screen Kullanıcıları İçin:
```bash
# Copy mode’a geçiş:
CTRL + A +
```

6. Tmux Kullanıcıları İçin:
```bash
# Copy mode’a geçiş:
CTRL + B +
```

7. Terminal Buffer Kopyalama:
```bash
# Son çıktıyı kopyalama
!$

# Son komutun tamamını kopyalama
!!
```

8. xclip Kullanımı:
```bash
# xclip kurulumu
sudo apt install xclip

# Dosya içeriğini panoya kopyalama
cat dosya.txt | xclip -selection clipboard

# Komut çıktısını panoya kopyalama
pwd | xclip -selection clipboard
```

9. Terminal Yapılandırması:
```bash
# .bashrc veya .zshrc dosyasına eklenebilecek alias’lar:
alias c=’xclip -selection clipboard’
alias v=’xclip -selection clipboard -o’
```

10. Vim Kullanıcıları İçin:
```bash
# Vim içinde kopyalama-yapıştırma:
# Visual mode’a geçiş
v

# Tüm satırı seçme
V

# Kopyalama
y

# Yapıştırma
p
```

11. SSH Üzerinden Kopyalama:
```bash
# SSH oturumunda kopyalama-yapıştırma aktif etme
ssh -X kullanici@sunucu
```

Önemli İpuçları:

- Terminal emülatörünüzün ayarlarından kopyalama-yapıştırma davranışını özelleştirebilirsiniz
- Bazı terminal emülatörleri otomatik kopyalama özelliğine sahiptir
- UTF-8 karakter kodlaması sorunlarına dikkat edin
- Güvenlik nedeniyle bazı terminaller yapıştırma işlemini onay gerektirebilir

Güvenlik Notları:
- Hassas bilgileri kopyalarken dikkatli olun
- Pano içeriğini düzenli olarak temizleyin
- Güvenilmeyen kaynaklardan yapıştırma yaparken dikkatli olun

Terminal türüne göre ek özelleştirmeler:

GNOME Terminal:
```bash
# Ayarlar menüsünden:
Düzenle > Tercihler > Kısayollar
```

Konsole:
```bash
# Ayarlar menüsünden:
Ayarlar > Kısayolları Yapılandır
```

Bu yöntemlerden size en uygun olanı kullanabilirsiniz.

``````
The system will suspend now!
``````
Bu mesaj sistemin askıya alınacağını (suspend/uyku moduna geçeceğini) belirten bir uyarıdır. İşte bu durumla ilgili bilmeniz gerekenler ve yapabilecekleriniz:

1. Sistemin Askıya Alınmasını Engellemek İçin:
```bash
# Askıya almayı iptal etmek için
sudo systemctl cancel-shutdown

# veya
sudo shutdown -c
```

2. Açık Dosyaları Kaydetme:
- Tüm açık belgelerinizi kaydedin
- Çalışan programları düzgünce kapatın
- Devam eden indirmeleri durdurun

3. Sistem Durumunu Kontrol:
```bash
# Sistemi kullanan kullanıcıları görmek için
who

# Çalışan işlemleri görmek için
ps aux

# Sistem kaynaklarını kontrol etmek için
top
```

4. Askıya Alma İşlemini Yönetme:
```bash
# Manuel askıya alma
sudo pm-suspend

# Veya
sudo systemctl suspend
```

5. Zamanlı Askıya Alma:
```bash
# 30 dakika sonra askıya alma
sudo shutdown -h +30

# Belirli bir saatte askıya alma
sudo shutdown -h 23:00
```

Önemli Notlar:
- Açık dosyalarınızı kaydettiğinizden emin olun
- Önemli işlemlerin tamamlandığından emin olun
- Sistem yeniden başlatıldığında işlerinize kaldığınız yerden devam edebilirsiniz

Debian’da RDP (Remote Desktop Protocol) kurulumu için adım adım rehber:

**TÜRKÇE:**

1. **XRDP Kurulumu:**
```bash
# Sistem güncellemesi
sudo apt update
sudo apt upgrade -y

# XRDP ve XFCE4 masaüstü ortamı kurulumu
sudo apt install xrdp xfce4 xfce4-goodies -y
```

2. **XRDP Servisini Başlatma:**
```bash
# XRDP servisini başlat
sudo systemctl start xrdp

# Sistem başlangıcında otomatik başlatma
sudo systemctl enable xrdp
```

3. **Firewall Ayarları:**
```bash
# UFW ile port açma
sudo ufw allow 3389/tcp

# Firewall’u yeniden başlat
sudo ufw reload
```

4. **Masaüstü Ortamını Ayarlama:**
```bash
# XFCE4 yapılandırma dosyası oluşturma
echo xfce4-session > ~/.xsession

# XRDP yapılandırma dosyasını düzenleme
sudo nano /etc/xrdp/startwm.sh
```

Dosyanın sonuna ekleyin:
```bash
#!/bin/sh
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
startxfce4
```

5. **Servisi Yeniden Başlatma:**
```bash
sudo systemctl restart xrdp
```

6. **Bağlantı Durumunu Kontrol Etme:**
```bash
sudo systemctl status xrdp
```

**ENGLISH:**

1. **Installing XRDP:**
```bash
# System update
sudo apt update
sudo apt upgrade -y

# Install XRDP and XFCE4 desktop environment
sudo apt install xrdp xfce4 xfce4-goodies -y
```

2. **Starting XRDP Service:**
```bash
# Start XRDP service
sudo systemctl start xrdp

# Enable automatic start at boot
sudo systemctl enable xrdp
```

3. **Firewall Settings:**
```bash
# Open port with UFW
sudo ufw allow 3389/tcp

# Reload firewall
sudo ufw reload
```

4. **Setting Up Desktop Environment:**
```bash
# Create XFCE4 configuration file
echo xfce4-session > ~/.xsession

# Edit XRDP configuration file
sudo nano /etc/xrdp/startwm.sh
```

Add to end of file:
```bash
#!/bin/sh
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
startxfce4
```

5. **Restart Service:**
```bash
sudo systemctl restart xrdp
```

6. **Check Connection Status:**
```bash
sudo systemctl status xrdp
```

**Sorun Giderme / Troubleshooting:**

1. **Bağlantı Sorunları / Connection Issues:**
```bash
# Log kontrolü / Check logs
sudo tail -f /var/log/xrdp.log

# Servis durumu / Service status
sudo systemctl status xrdp
```

2. **İzin Sorunları / Permission Issues:**
```bash
# İzinleri düzenleme / Fix permissions
sudo chown xrdp:xrdp /var/run/xrdp.pid
sudo chown xrdp:xrdp /var/run/xrdp.sock
```

3. **Port Kontrolü / Port Check:**
```bash
# Port dinleme durumu / Port listening status
sudo netstat -tulpn | grep xrdp
```

4. **SSL Sertifika Yenileme / SSL Certificate Renewal:**
```bash
# Sertifikaları yenileme / Renew certificates
sudo xrdp-keygen xrdp auto
```

**Güvenlik Önerileri / Security Recommendations:**

1. **Güçlü Şifre Kullanımı / Strong Password Usage:**
```bash
# Şifre politikası ayarlama / Set password policy
sudo apt install libpam-pwquality
sudo nano /etc/security/pwquality.conf
```

2. **SSH Üzerinden Tünel / SSH Tunneling:**
```bash
# SSH tüneli oluşturma / Create SSH tunnel
ssh -L 3389:localhost:3389 kullanici@sunucu-ip
```

3. **Fail2ban Kurulumu / Install Fail2ban:**
```bash
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
```

**Bağlantı Bilgileri / Connection Information:**
- Varsayılan Port / Default Port: 3389
- Protokol / Protocol: RDP
- Kullanıcı Adı / Username: Linux kullanıcı adınız / Your Linux username
- Şifre / Password: Linux kullanıcı şifreniz / Your Linux password

Windows’tan bağlanmak için “Uzak Masaüstü Bağlantısı” (Remote Desktop Connection) uygulamasını kullanabilirsiniz. / You can use Remote Desktop Connection application from Windows to connect.

Debian’da LAMP (Linux, Apache, MySQL, PHP) stack kurulumunu adım adım anlatayım:

1. Sistem Güncellemesi / System Update:
```bash
sudo apt update
sudo apt upgrade -y
```

2. Apache Web Server Kurulumu / Apache Installation:
```bash
# Apache kurulumu
sudo apt install apache2

# Apache’yi başlatma
sudo systemctl start apache2
sudo systemctl enable apache2

# Durumu kontrol
sudo systemctl status apache2
```

3. MySQL (MariaDB) Kurulumu / MySQL Installation:
```bash
# MySQL kurulumu
sudo apt install mariadb-server mariadb-client

# MySQL’i başlatma
sudo systemctl start mariadb
sudo systemctl enable mariadb

# Güvenlik yapılandırması
sudo mysql_secure_installation
```

4. PHP Kurulumu / PHP Installation:
```bash
# PHP ve gerekli modüllerin kurulumu
sudo apt install php php-mysql php-cli php-common php-mbstring php-gd php-curl php-xml php-zip

# Apache PHP modülü
sudo apt install libapache2-mod-php

# Apache’yi yeniden başlatma
sudo systemctl restart apache2
```

5. Test ve Doğrulama / Testing:
```bash
# PHP bilgi sayfası oluşturma
sudo nano /var/www/html/info.php
```

PHP test dosyası içeriği:
```php
<?php
phpinfo();
?>
```

6. İzinler ve Güvenlik / Permissions:
```bash
# Web dizini izinleri
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
```

7. Firewall Ayarları / Firewall Settings:
```bash
# HTTP ve HTTPS portlarını açma
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
```

8. PhpMyAdmin Kurulumu (Opsiyonel) / PhpMyAdmin Installation /phpMyAdmin secure Installation adım adım yapalım:

1. İlk olarak paket deposunu güncelleyelim:
```bash
sudo apt update
```

2. phpMyAdmin ve gerekli PHP paketlerini kuralım:
```bash
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
```

Kurulum sırasında şu adımlarla karşılaşacaksınız:

- Web sunucusu seçimi penceresi geldiğinde:
— Apache2 kullanıyorsanız Apache2'yi seçin (Space tuşu ile seçim yapılır)
— Tab tuşu ile OK’a gelip Enter’a basın

- “Configuring phpmyadmin” ekranında:
— “Yes” seçeneğini seçin ve phpMyAdmin veritabanını otomatik yapılandırmasına izin verin

- Veritabanı yapılandırması için bir şifre belirlemeniz istenecek:
— Güvenli bir şifre belirleyin ve not alın
— Şifreyi tekrar girin

3. PHP’yi yeniden başlatalım:
```bash
sudo systemctl restart apache2
```

4. Güvenlik için Apache’de phpMyAdmin konfigürasyonunu düzenleyelim:
```bash
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
```

5. Apache’yi yeniden başlatalım:
```bash
sudo systemctl restart apache2
```

Artık phpMyAdmin’e erişebilirsiniz:
- Web tarayıcınızda şu adresi açın: `http://localhost/phpmyadmin` veya `http://sunucu-ip-adresi/phpmyadmin`
- Kullanıcı adı olarak “root”
- Şifre olarak MySQL root şifrenizi kullanın

///////////////phpmayadmin//////////////

************gerekirsese yeniden yapılandırma************

Tamam, phpMyAdmin’i yeniden yapılandıralım:

1. Önce yeniden yapılandırma komutunu çalıştıralım:
```bash
sudo dpkg-reconfigure phpmyadmin
```

Bu komuttan sonra karşınıza aşağıdaki adımlar çıkacak:

2. Yapılandırma Adımları:
— Web sunucusu seçimi ekranında:
— Apache2'yi seçin (Space tuşu ile)
— Tab tuşu ile OK’a gelip Enter’a basın

- “Configure database for phpmyadmin with dbconfig-common?” sorusuna:
— “Yes” seçeneğini seçin

- phpMyAdmin veritabanı için şifre belirleme:
— Güvenli bir şifre girin (örneğin: şifreniz)
— Şifreyi tekrar girin

3. Yapılandırma tamamlandıktan sonra, gerekli servisleri yeniden başlatalım:
```bash
sudo systemctl restart mysql
sudo systemctl restart apache2
```

4. İzinleri kontrol edelim:
```bash
sudo chown -R www-data:www-data /etc/phpmyadmin/
sudo chmod 644 /etc/phpmyadmin/config.inc.php
```

5. MySQL’de root kullanıcısının yetkilendirmesini yapalım:
```bash
sudo mysql
```

MySQL komut satırında:
```sql
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘şifre’;
FLUSH PRIVILEGES;
EXIT;
```

6. Son olarak, tüm ayarların doğru çalıştığından emin olmak için tekrar servisleri yeniden başlatalım:
```bash
sudo systemctl restart mysql
sudo systemctl restart apache2
```

Şimdi web tarayıcınızdan phpMyAdmin’e erişmeyi deneyin:
```
http://localhost/phpmyadmin
```
veya
```
http://sunucu-ip-adresi/phpmyadmin
```

Kullanıcı adı: root
Şifre: şifre

Eğer hala bir sorunla karşılaşırsanız, lütfen hatayı paylaşın. Size yardımcı olmaya devam edeceğim.

*********************************************************

Güvenlik İpuçları:
1. phpMyAdmin dizinini yeniden adlandırabilirsiniz
2. .htaccess ile ek güvenlik katmanı ekleyebilirsiniz
3. Erişimi belirli IP adreslerine kısıtlayabilirsiniz

Önemli Dizinler / Important Directories:
```bash
# Web root dizini
/var/www/html/

# Apache yapılandırma
/etc/apache2/

# PHP yapılandırma
/etc/php/

# MySQL yapılandırma
/etc/mysql/
```

Temel Komutlar / Basic Commands:
```bash
# Apache yönetimi
sudo systemctl start|stop|restart|status apache2

# MySQL yönetimi
sudo systemctl start|stop|restart|status mariadb

# Apache hata logları
sudo tail -f /var/log/apache2/error.log

# PHP hata logları
sudo tail -f /var/log/php_errors.log
```

Güvenlik Önerileri / Security Tips:
1. Güçlü şifreler kullanın / Use strong passwords
2. Düzenli güncellemeleri yapın / Regular updates
3. SSL sertifikası kurun / Install SSL certificate
4. Güvenlik duvarını yapılandırın / Configure firewall
5. Dosya izinlerini kontrol edin / Check file permissions

SSL Sertifikası Kurulumu / SSL Certificate:
```bash
# Let’s Encrypt kurulumu
sudo apt install certbot python3-certbot-apache

# Sertifika alma
sudo certbot — apache
```

Virtual Host Oluşturma / Creating Virtual Host:
```bash
# Yapılandırma dosyası oluşturma
sudo nano /etc/apache2/sites-available/site.conf

# Virtual host aktif etme
sudo a2ensite site.conf
sudo systemctl reload apache2
```

Hata Ayıklama / Troubleshooting:
1. Apache error logs kontrol
2. PHP error logs kontrol
3. MySQL error logs kontrol
4. İzinlerin doğruluğunu kontrol
5. Modüllerin aktif olduğunu kontrol

Not / Note:
- Her kurulumdan sonra servisleri yeniden başlatın
- Güvenlik güncellemelerini düzenli takip edin
- Yedekleme rutini oluşturun
- Performans optimizasyonu yapın

SSH Server kurulumunu adım adım anlatıyorum:

1. SSH Server Kurulumu / SSH Server Installation:
```bash
# Güncelleme
sudo apt update
sudo apt upgrade

# OpenSSH Server kurulumu
sudo apt install openssh-server
```

2. Servis Yönetimi / Service Management:
```bash
# Servisi başlatma
sudo systemctl start ssh

# Otomatik başlatma
sudo systemctl enable ssh

# Servis durumu kontrolü
sudo systemctl status ssh
```

3. Temel Güvenlik Ayarları / Basic Security Settings:
```bash
# SSH yapılandırma dosyası
sudo nano /etc/ssh/sshd_config

# Önemli güvenlik ayarları:
Port 2222 # Varsayılan portu değiştir
PermitRootLogin no # Root girişini engelle
PasswordAuthentication no # Şifre ile girişi kapat
PubkeyAuthentication yes # Anahtar ile girişe izin ver
AllowUsers kullanici1 # İzin verilen kullanıcılar
MaxAuthTries 3 # Maksimum deneme sayısı
```

4. Firewall Ayarları / Firewall Settings:
```bash
# SSH portu için güvenlik duvarını yapılandırma
sudo ufw allow 2222/tcp
sudo ufw enable
sudo ufw status
```

5. SSH Anahtar Yönetimi / SSH Key Management:
```bash
# Client tarafında anahtar oluşturma
ssh-keygen -t rsa -b 4096

# Açık anahtarı sunucuya kopyalama
ssh-copy-id -p 2222 kullanici@sunucu_ip
```

6. SSH Bağlantı Test / SSH Connection Test:
```bash
# SSH bağlantı testi
ssh -p 2222 kullanici@sunucu_ip
```

7. Log Kontrolü / Log Monitoring:
```bash
# SSH loglarını izleme
sudo tail -f /var/log/auth.log
```

8. Fail2ban Kurulumu / Fail2ban Installation:
```bash
# Fail2ban kurulumu
sudo apt install fail2ban

# Yapılandırma
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
```

9. İzinler / Permissions:
```bash
# SSH dizini izinleri
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
```

10. Güvenlik İpuçları / Security Tips:
- Güçlü şifreler kullanın
- Varsayılan portu değiştirin
- Anahtar tabanlı kimlik doğrulama kullanın
- Fail2ban kullanın
- Logları düzenli kontrol edin

11. Sorun Giderme / Troubleshooting:
```bash
# Bağlantı sorunları için debug modu
ssh -vv kullanici@sunucu_ip

# SSH servis durumu
sudo systemctl status ssh

# Port kontrolü
sudo netstat -tulpn | grep ssh
```

12. SSH Config Örneği / SSH Config Example:
```bash
# ~/.ssh/config dosyası
Host sunucu_adi
HostName sunucu_ip
Port 2222
User kullanici
IdentityFile ~/.ssh/id_rsa
```

13. Otomatik Bağlantı / Auto Connection:
```bash
# Anahtar oluşturma (parolasız)
ssh-keygen -t rsa -N “” -f ~/.ssh/id_rsa

# Anahtarı sunucuya kopyalama
ssh-copy-id -i ~/.ssh/id_rsa.pub kullanici@sunucu_ip
```

Önemli Notlar / Important Notes:
- Her değişiklikten sonra servisi yeniden başlatın
- Güvenlik güncellemelerini düzenli yapın
- Yedekleme rutini oluşturun
- Sadece gerekli portları açık tutun
- SSH anahtarlarını güvenli saklayın

Yararlı Komutlar / Useful Commands:
```bash
# Bağlı kullanıcıları görme
who

# Aktif SSH oturumları
w

# SSH versiyonu kontrol
ssh -V

# SSH anahtar parmak izi
ssh-keygen -l -f ~/.ssh/id_rsa.pub
```
Debian/Linux sisteminde saat ve tarih güncelleme işlemleri

# Sadece saat ayarlama
sudo date +%T -s “14:30:00”

# Sadece tarih ayarlama
sudo date +%Y%m%d -s “20241124”
```

2. NTP (Network Time Protocol) ile Otomatik Ayarlama:
```bash
# NTP kurulumu
sudo apt update
sudo apt install ntp

# NTP servisi başlatma
sudo systemctl start ntp
sudo systemctl enable ntp

# NTP durumu kontrolü
sudo systemctl status ntp
```

3. Zaman Dilimi Ayarları / Timezone Settings:
```bash
# Mevcut zaman dilimini görme
timedatectl

# Kullanılabilir zaman dilimlerini listeleme
timedatectl list-timezones

# Zaman dilimini değiştirme
sudo timedatectl set-timezone Europe/Istanbul
```

4. Donanım Saati Senkronizasyonu:
```bash
# Sistem saatini donanım saatine yazma
sudo hwclock — systohc

# Donanım saatini okuma
sudo hwclock — show

5. Chrony ile Saat Senkronizasyonu:
```bash
# Chrony kurulumu
sudo apt install chrony

# Servisi başlatma
sudo systemctl start chronyd
sudo systemctl enable chronyd

# Durum kontrolü
chronyc tracking
```

Yararlı Komutlar / Useful Commands:
```bash
# Mevcut saat ve tarihi gösterme
date

# NTP sunucuları ile senkronizasyon durumu
ntpq -p

# Sistem saati ayarlarını görme
timedatectl status

# Zaman senkronizasyonunu kontrol etme
sudo timedatectl set-ntp true
```

Not / Notes:
- Sunucu sistemlerinde NTP kullanımı önerilir
- Zaman dilimi değişikliklerinde sistemin yeniden başlatılması gerekebilir
- Saat değişikliği bazı servisleri etkileyebilir
- Donanım saati UTC formatında tutulur

Debian/Linux’ta uyku moduna girmeyi engelleme yöntemleri:

1. Sistem Ayarlarından Engelleme / System Settings:
```bash
# Güç yönetimi ayarlarını değiştirme
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

# Servisleri kontrol etme
systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target
```

2. Komut Satırı ile Geçici Engelleme / Temporary Prevention:
```bash
# systemd-inhibit kullanımı
systemd-inhibit — what=sleep — who=”$USER” — why=”Prevent suspend” — mode=block sleep infinity

# caffeine benzeri uygulama
sudo apt install caffeine
```

3. Güç Yönetimi Ayarları / Power Management:
```bash
# GNOME için
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type ‘nothing’
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type ‘nothing’

# KDE için
qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement set suppressSleep true
```

4. systemd Yapılandırması / systemd Configuration:
```bash
# logind.conf düzenleme
sudo nano /etc/systemd/logind.conf

# Eklenecek/değiştirilecek satırlar:
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
IdleAction=ignore
```

5. DPMS (Ekran Güç Yönetimi) Ayarları:
```bash
# DPMS’i devre dışı bırakma
xset -dpms
xset s off

# Kalıcı yapmak için ~/.xprofile’a ekleyin:
echo “xset -dpms” >> ~/.xprofile
echo “xset s off” >> ~/.xprofile
```

6. Otomatik Script Oluşturma / Create Automatic Script:
```bash
# Script oluşturma
sudo nano /usr/local/bin/prevent-suspend.sh

# Script içeriği
#!/bin/bash
while true; do
xdotool keydown Shift; xdotool keyup Shift
sleep 59
done

# Çalıştırılabilir yapma
sudo chmod +x /usr/local/bin/prevent-suspend.sh
```

7. Kernel Parametreleri / Kernel Parameters:
```bash
# GRUB yapılandırması
sudo nano /etc/default/grub

# Eklenecek parametre
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash noacpi”

# GRUB güncelleme
sudo update-grub
```

8. Otomatik Başlangıç Ayarı / Autostart Setting:
```bash
# Autostart dosyası oluşturma
mkdir -p ~/.config/autostart
nano ~/.config/autostart/prevent-suspend.desktop

# Dosya içeriği

Type=Application
Name=Prevent Suspend
Exec=/usr/local/bin/prevent-suspend.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
```

Önemli Notlar / Important Notes:
- Bazı ayarlar masaüstü ortamına göre değişebilir
- Sistem güncellemelerinde ayarlar sıfırlanabilir
- Pil kullanımı artabilir
- Güvenlik güncellemeleri için sistem yeniden başlatılmalıdır

Sorun Giderme / Troubleshooting:
```bash
# Güç yönetimi durumu
powerprofilesctl get

# Uyku modu durumu
systemctl status systemd-suspend.service

# Aktif inhibitörleri görme
systemd-inhibit — list
```

GUI Uygulamaları / GUI Applications:
- Caffeine
- GNOME Tweaks
- KDE System Settings
- Power Manager Settings

Her masaüstü ortamı için ayarlar farklı olabilir, kullandığınız ortama göre uygun yöntemi seçin.

9. FTP sunucusu kurmak için vsftpd (Very Secure FTP Daemon) kullanacağız. Adım adım kuralım:

1. Önce vsftpd’yi yükleyelim:
```bash
sudo apt update
sudo apt install vsftpd
```

2. Orijinal config dosyasını yedekleyelim:
```bash
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup
```

3. vsftpd.conf dosyasını düzenleyelim:
```bash
sudo nano /etc/vsftpd.conf
```

vsftpd.conf içeriğini şu şekilde düzenleyelim:
```conf
# Temel Ayarlar
listen=YES
listen_ipv6=NO
an>local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES

# Güvenlik Ayarları
chroot_local_user=YES
allow_writeable_chroot=YES
ssl_enable=NO
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100

# Logging
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

# www klasörü için özel ayarlar
local_root=/var/www
user_sub_token=$USER
```

4. FTP için yeni bir kullanıcı oluşturalım:
```bash
sudo adduser ftpuser
```
(Sizden şifre ve kullanıcı bilgileri isteyecek, bunları doldurun)

5. Kullanıcıyı www-data grubuna ekleyelim:
```bash
sudo usermod -aG www-data ftpuser
```

6. www dizini için izinleri düzenleyelim:
```bash
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www
```

7. vsftpd servisini yeniden başlatalım:
```bash
sudo systemctl restart vsftpd
```

8. Firewall ayarlarını yapalım (eğer UFW kullanıyorsanız):
```bash
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:40100/tcp
sudo ufw enable
```

Artık FTP sunucunuz hazır! Şu bilgilerle bağlanabilirsiniz:
- Host: sunucu-ip-adresi
- Port: 21
- Kullanıcı adı: ftpuser
- Şifre: (oluşturduğunuz şifre)

FTP istemcisi olarak şunları kullanabilirsiniz:
- FileZilla
- WinSCP (Windows için)
- Cyberduck (Mac için)

Güvenlik İpuçları:
1. Güçlü şifreler kullanın
2. Mümkünse SFTP kullanın (daha güvenli)
3. Sadece gerekli dizinlere erişim verin
4. Düzenli olarak log dosyalarını kontrol edin

Örnek bir kullanıcı ve klasör erişimi için; kök dizinideki python klasörüne özel bir kullanıcı erişimi yapacağız.

Python klasörüne erişim için yeni bir FTP kullanıcısı oluşturalım:

1. Yeni bir kullanıcı oluşturalım:
```bash
sudo adduser pythonuser
```
(Şifre ve kullanıcı bilgilerini doldurun)

2. Python klasörünüz için (örneğin /python) dizin oluşturalım:
```bash
sudo mkdir /python
```

3. Klasör sahipliği ve izinlerini ayarlayalım:
```bash
sudo chown -R pythonuser:pythonuser /python
sudo chmod -R 755 /python
```

4. vsftpd.conf dosyasını düzenleyelim:
```bash
sudo nano /etc/vsftpd.conf
```

Dosyaya şu satırları ekleyelim (eğer yoksa):
```conf
# Kullanıcı bazlı dizin yapılandırması
user_sub_token=$USER
local_root=/home/$USER

# Güvenlik ayarları
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES

# Kullanıcı listesi ayarları
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
```

5. Kullanıcı listesi oluşturalım:
```bash
sudo nano /etc/vsftpd.userlist
```

Bu dosyaya kullanıcıları ekleyelim:
```
ftpuser
pythonuser
```

6. Python kullanıcısı için özel bir yapılandırma dosyası oluşturalım:
```bash
sudo mkdir -p /etc/vsftpd/users
sudo nano /etc/vsftpd/users/pythonuser
```

İçeriği şu şekilde olsun:
```
local_root=/python
```

7. Ana vsftpd.conf dosyasına bu kullanıcı yapılandırmasını ekleyelim:
```bash
sudo nano /etc/vsftpd.conf
```

Dosyanın sonuna ekleyin:
```conf
user_c>```

8. Servisi yeniden başlatalım:
```bash
sudo systemctl restart vsftpd
```

9. İzinleri test edelim:
```bash
sudo -u pythonuser touch /python/test.txt
```

Artık şu bilgilerle bağlanabilirsiniz:
- Host: sunucu-ip-adresi
- Port: 21
- Kullanıcı adı: pythonuser
- Şifre: (oluşturduğunuz şifre)

Test etmek için:
1. FileZilla veya başka bir FTP istemcisi kullanın
2. Yukarıdaki bilgilerle bağlanın
3. /python dizinine dosya yüklemeyi deneyin

Güvenlik notları:
1. Python klasöründe çalıştırılabilir dosyalar için dikkatli olun
2. Düzenli olarak log dosyalarını kontrol edin
3. Güçlü şifre kullandığınızdan emin olun

10. Debian’a VSCode kurulumunu adım adım yapalım:

1. Önce gerekli bağımlılıkları yükleyelim:
```bash
sudo apt update
sudo apt install software-properties-common apt-transport-https wget gpg
```

2. Microsoft GPG anahtarını indirelim ve ekleyelim:
```bash
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg — dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
```

3. VSCode deposunu sisteme ekleyelim:
```bash
sudo sh -c ‘echo “deb https://packages.microsoft.com/repos/code stable main” > /etc/apt/sources.list.d/vscode.list’
```

4. Paket listesini güncelleyelim:
```bash
sudo apt update
```

5. VSCode’u yükleyelim:
```bash
sudo apt install code
```

Yararlı VSCode Eklentileri (isteğe bağlı):

Python Geliştirme için:
```
- Python (Microsoft)
- Pylance
- Python Indent
- autoDocstring
```

Web Geliştirme için:
```
- Live Server
- HTML CSS Support
- JavaScript (ES6) code snippets
- ESLint
```

PHP Geliştirme için:
```
- PHP Intelephense
- PHP Debug
- PHP Extension Pack
```

Git için:
```
- GitLens
- Git History
```

Genel Kullanım için:
```
- Material Icon Theme
- One Dark Pro
- Remote — SSH
- Remote Development
```

VSCode Temel Ayarları:

1. Otomatik kaydetme:
File > Preferences > Settings
- “Files: Auto Save” seçeneğini “afterDelay” yapın

2. Yazı tipi boyutu:
File > Preferences > Settings
- “Editor: Font Size” değerini istediğiniz boyuta ayarlayın

3. Tema değiştirme:
File > Preferences > Color Theme
- İstediğiniz temayı seçin

4. Terminal entegrasyonu:
```
Ctrl + ` (backtick) ile terminali açabilirsiniz
```

Temel VSCode Kısayolları:
```
Ctrl + P : Dosya arama
Ctrl + Shift + P : Komut paleti
Ctrl + , : Ayarlar
Ctrl + B : Kenar çubuğunu gizle/göster
Ctrl + ` : Terminal aç/kapa
Ctrl + / : Satır yorumu
Alt + Up/Down : Satırı yukarı/aşağı taşı
Ctrl + D : Sonraki eşleşmeyi seç
```

Proje Dizini Açma:
1. VSCode’u başlatın
2. File > Open Folder
3. Proje dizininizi seçin

VSCode’u güncellemek için:
```bash
sudo apt update
sudo apt upgrade code
```

VSCode’u kaldırmak için:
```bash
sudo apt remove code
sudo apt autoremove
```