SSH Public Key ile Güvenli Bağlantı

ssh

İki bilgisayar arasında bağlantı kurmak için ssh protokolü güvenli bir yoldur. SSH protokolü ile varsayılan olarak 22 portundan iki bilgisayar arasında güvenli bir yol oluşturulur. Bu kanaldan veri alış verişi yapılabilir.

SSH ile bağlantı kurmanın 2 farklı yolu vardır. Bunlardan biri bağlanılmak istenen bilgisayardaki kullanıcı adı ve parola ile bağlanmaktır. Diğer bir yöntem ise .ssh dizini altındaki .pub uzantılı dosyadaki key, hedef bilgisayarda .ssh dizinindeki authorized_keys dosyasına yazılır. Bu şekilde kaynak bilgisayardaki ssh key ile hedef bilgisayardaki ssh key birbiriyle eşleştirilmiş olur.

Session Management / Oturum Yönetimi


session_management


İstemci/client ile sunucu/server arasında birbirini tanıma yöntemidir. Sunucu konuştuğu istemcinin kim olduğunu bilmek ister.

Session, oturum anlamına gelir. Gerçek hayatta insanlar birbiriyle konuşmak için haberleşmek için oturum düzenlerler. İşte sanal dünyada da benzer bir ilişki vardır. Cihazlar/makineler/bilgisayarlar arasındaki iletişimin anlamlı olması için oturum/session kurulur.

Git Başlangıç ve Orta Seviye

Nginx Reverse Proxy

Konfigürasyonların farklı dosyalarda tanımlanmasını tavsiye ederim. Bu şekilde daha yönetilebilir olur. Mantık olarak sites-available altında konfigürasyonlar tanımlanır. Uygulanması istenen konfigürasyonlar sites-enabled altında sembolik link ile linklenir.

/etc/nginx/sites-available/default

Varsayılan ayarları default dosyasına yaz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

geo $whitelist {
default 0;

# CIDR in the list below are not limited
<ip>/24 1;
<ip>/32 1;
}

map $whitelist $limit_key {
0 $binary_remote_addr;
1 "";
}

limit_conn_zone $limit_key zone=addr:10m;

server {
server_name _;
listen 80 default_server;
listen 443 ssl default_server;
ssl_certificate /etc/nginx/ssl/xxx.domain.com.crt;
ssl_certificate_key /etc/nginx/ssl/xxx.domain.com.key;
return 404;
}

Windows VSCode SSH config Erişim Problemi

…Bad Owner or Permissions on username.ssh\config…

settings.json‘a (sol altta makaraya tıkla oradan Settings tıkla. Açıldıktan sonra sağ üst köşede Open Settings (JSON) iconuna tıkla) aşağıdaki satırı ekle.

1
2
3
...
"remote.SSH.configFile": "C:\\\\Users\\\\<username>\\\\.ssh\\\\config"
...

SSL Sertifika İşlemleri

Private Key ve CSR

Sertifika satın alma işlemi öncesi key ve csr dosyaları üretilir. Üretilen csr kullanılarak satın alma işlemi yapılır.

1
2
$ openssl genrsa -out /path/to/www_server_com.key 2048
$ openssl req -new -key /path/to/www_server_com.key -out /path/to/www_server_com.csr

Satın Alma

Farklı web/http sunucusularına göre satın alınan sertifika dosyaları kullanılır. Temelde mantık sertifika dosyalarının paketlenmesidir(bundle). Satın alınan türe(DV, OV, EV) göre bundle(paket) dosya oluşturulur. Bu yazıda sık kullanılan crt ve pfx formatına değinilecektir.

Mongodb Faydalı Bilgiler

Export

Veritabanı yapılandırmasına bağlı olarak 2 farklı yöntem vardır.

Kimlik Doğrulama

1
mongoexport --username=<DB_KULLANICI_ADI> --authenticationDatabase="<DB_ADI_1>" --db <DB_ADI> -c <KOLESIYON_ADI> --out <DOSYA_PATH>.json

Kimlik Doğrulamasız

1
mongoexport --db <DB_ADI> -c <KOLESIYON_ADI> --out <DOSYA_PATH>.json

LVM Disk Genişlet

LVM disk genişletme (LVM Extend) işleminde 2 farklı yöntemden bahsedicem. Ubuntu işletim sisteminde partition tanımı sınırlıdır. Yöntemlerden birinde yeni partition yaratarak extend işlemi yapılır. Diğer yöntemde ise mevcut partition silinip yeniden oluşturularak extend işlemi yapılır.

sda4 partition, /dev/sda4 volume ve /dev/root-vg/root volume group için işlem yapılmaktadır.

Yöntem 1

sda4 partition’u sil ve free space ile birleştirek yeni bir partition yarat.

1
$ cfdisk

İşletim sisteminin partition tablosunu yeniden okumasını sağla.

1
$ partprobe

LVM Diskler Arası Volume Group Transferi

/data dizinine mount edilmiş logic volume için çalışma yapılıyor. Bu dizinin bağlandığı logic volume’ün volume group’u data_vg. data_vg volume group /dev/sdb partition’a bağlı. Genişletmek istediğin volume group root_vg.

Disk Bağlantısını Kes

1
$ umount /data

/etc/fstab İçinden İlgili Mount Point Satırını Sil

1
$ vim /etc/fstab

tmp Konfigürasyon Yenile

Komut

Bu yöntem her zaman doğru sonuç vermeyebilir. Boot sırasında çalışan diğer servisler ile bağlantılı noktalar beklendiği gibi çalışmayabilir. O yüzden bu yöntemden ziyade tmp konfigürasyon dosyasında yapılan değişiklikten sonra en sağlıklısı restart atmaktır.

1
$ sudo /bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev

tmp Dosya Yolları

1
2
3
4
5
6
7
8
9
/etc/tmpfiles.d/*.conf
/run/tmpfiles.d/*.conf
/usr/lib/tmpfiles.d/*.conf

~/.config/user-tmpfiles.d/*.conf
$XDG_RUNTIME_DIR/user-tmpfiles.d/*.conf
~/.local/share/user-tmpfiles.d/*.conf
...
/usr/share/user-tmpfiles.d/*.conf