Giriş
- Merhaba, Bu yazımda ssh-audit aracıyla hedef makinedeki ssh bağlantı güvenliği açıklarını bulup, açıkları kapamak için gereken değişiklikleri Ansible ile yapacağız.
.sshd_config ve ssh_config Arasındaki Fark?
- sshd nin açılımı ssh daemondur. SSH Portuna gelen bağlantıları dinler. sshd_config bulunduğumuz makineye gelen bağlantıları karşılamada kullanılan ayarlardır.
- ssh_config de ise ssh istemcisi için yapılan ayarlar bulunur. Yani ssh_config başka makinelere bağlanırken kullanılan ayarlar içindir.
ssh-audit ile Açıkları Bulmak
- ssh-audit kurulur.
sudo apt install ssh-audit -y | |
#ya da | |
sudo snap install ssh-audit |
-
sshd_config ayarları yapılarak güvenliği arttırılacak makine taratılır. İster uzak bir makineden ister kendisinden taratabiliriz.
ssh-audit localhost
Çıkan sonuca göre anahtar değişim algoritmalarında (KexAlgorithms), HostKeyAlgoritms de, kullanılan şifreleme algoritmalarında (ciphers) ve mesaj kimlik doğrulama kodlarında yeşille belirtilen algoritmalar güvenli olduğundan kalacak, sarı ve kırmızı olanlar sshd_config den çıkartılacak.
-
Ubuntu 20.04 Focal için örnek sshd_config dosyamız.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters### Degistirilen Bolum ### KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256 HostKeyAlgorithms ssh-ed25519,rsa-sha2-256,rsa-sha2-512 HostKey /etc/ssh/ssh_host_ed25519_key HostKey /etc/ssh/ssh_host_rsa-sha2-256_key HostKey /etc/ssh/ssh_host_rsa-sha2-512_key Ciphers chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com MACs umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com ### Degistirilen Bolum ###
Ansible ile Otomasyon
Birden fazla sunucunun olduğu bir ortamda, teker teker bu ayarları dağıtmak çok fazla zaman alacağından Ansible ile dağıtacağız.
Ansible ile dağıtırken her işletim sistemi sürümüne göre desteklenen algoritmalarda değişiklikler olabilir. Bundan dolayı playbook umuza sunucuların işletim sistemini bakıp, sadece Ubuntu 20.04 (focal) için çalışacak şekilde ayarlanacak. Dilerseniz farklı işletim sistemlerinide benzer yöntemle ekleyebilirsiniz.
Aşağıdaki ekran görüntüsünde host02.txt dosyasında belirtilen makinelerde işletim sistemi kod adı bilgisine ulaşıyoruz.
- Yapacağımız işlemi kısaca özetlersek
- sshd_config hedef makineye kopyalamak (var olan izin ve sahiplikleri koruyarak)
- sshd_config de belirtilen hostkeyleri yoksa oluşturmak
- ssh servisini yeniden başlatmak (değişiklik olmuşsa)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
### 2nd Part of playbook.yaml - hosts: OSRelease_focal remote_user: root tasks: - name: Change sshd_config ansible.builtin.copy: src: ./sshd_config dest: /etc/ssh/sshd_config owner: root group: root mode: '0644' notify: Restart ssh service - name: Generate ed25519 host key command: ssh-keygen -q -N "" -t ed25519 -f /etc/ssh/ssh_host_ed25519_key args: creates: /etc/ssh/ssh_host_ed25519_key notify: Restart ssh service - name: Generate rsa-sha2-256 host key command: ssh-keygen -q -N "" -t rsa-sha2-256 -f /etc/ssh/ssh_host_rsa-sha2-256_key args: creates: /etc/ssh/ssh_host_rsa-sha2-256_key notify: Restart ssh service - name: Generate rsa-sha2-512 host key command: ssh-keygen -q -N "" -t rsa-sha2-512 -f /etc/ssh/ssh_host_rsa-sha2-512_key args: creates: /etc/ssh/ssh_host_rsa-sha2-512_key notify: Restart ssh service handlers: - name: Restart ssh service service: name: ssh state: restarted
Bir sonraki yazımızda görüşmek üzere ;)
Top comments (0)