5 Kasım 2019 Salı

/etc/ssh/sshd_config Dosyası - Sunucu Tarafındaki Dosya

Giriş
Bu dosya şu dizinindedir. Bu dosyadaki ayarlar ssh ve sftp'nin çalışmasını değiştirir.
/etc/ssh/sshd_config
Açıklaması şöyle
The SSH server has a configuration file, usually /etc/sshd/sshd_config. The configuration file specifies encryption options, authentication options, file locations, logging, and various other parameters.
KexAlgorithms Alanı
Bir  zamanlar eski bir ssh istemcini taklit etmek için şöyle yaptım
$ ssh -oKexAlgorithms=diffie-hellman-group14-sha1 jboss@127.0.0.1

Unable to negotiate with 127.0.0.1 port 22: no matching key exchange method found. 
Their offer: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,
ecdh-sha2-nistp384,ecdh-sha2-nistp521,sntrup761x25519-sha512@openssh.com,
diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,
diffie-hellman-group18-sha512,diffie-hellman-group14-sha256
Örnek
Şöyle yaparız
Ciphers ...
MACs ...
KexAlgorithms ...
AuthorizedKeysFile Alanı
Açıklaması şöyle. Client public key'lerin fingerprint değerini gönderir.
SSH authentication with the "publickey" method works by having the client send each potential public key to the server, then the server responds telling the client which key is allowed. If one of the keys is allowed, then the client must decrypt the private key to sign a message, proving ownership of the private key.
Örnek
Şöyle yaparız
Protocol                                     2
Ciphers                                      aes256-ctr
MACs                                         hmac-sha2-512,hmac-sha2-256
# MACs                                       hmac-sha1
PermitRootLogin                              no
AuthorizedKeysFile                           .ssh/authorized_keys  {set this up}
IgnoreRhosts                                 yes
IgnoreUserKnownHosts                         yes
StrictModes                                  yes
UsePAM                                       yes
Örnek
Şöyle yaparız
apiVersion: v1
kind: ConfigMap
metadata:
  name: ssh-config
data:
  sshd_config: |
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    UsePAM no
  authorized_keys: |
    ssh-rsa AAAAB3NzaC1y... 
Match Group Alanı
Belirtilen grubun nasıl login olacağını belirtir.

Örnek
Elimizde allowssh ve sftponly grupları olsun. Açıklaması şöyle.
-It only allows (pubkey) login for users in the allowssh group.
-Users in the sftponly group cannot get a shell over SSH, only SFTP.
Şöyle yaparız.
Match Group allowssh
    PubkeyAuthentication yes

Match Group sftponly
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
Match Host Alanı
Belirtilen host'un nasıl login olacağını belirtir.
Örnek
Şöyle yaparız
Match Host server1,server1.internalnet.local,1.2.3.4
    PasswordAuthentication yes
Match User Alanı
Belirtilen kullanıcının nasıl login olacağını belirtir.
Örnek
 gitlab-ci isimli kullanıcının şifre ile login olması için şöyle yaparız
printf 'Match User gitlab-ci\n\tPasswordAuthentication yes\n' >> /etc/ssh/sshd_config
Örnek
test isimli kullanıcıyı bir chroot jail içinde çalıştırmak için şöyle yaparız
Match User test
ChrootDirectory /home/foo/
X11Forwarding no
AllowTcpForwarding no
MaxSessions Alanı
Açıklaması şöyle.
MaxSessions
         Specifies the maximum number of open shell, login or subsystem
         (e.g. sftp) sessions permitted per network connection.  Multiple
         sessions may be established by clients that support connection
         multiplexing.  Setting MaxSessions to 1 will effectively disable
         session multiplexing, whereas setting it to 0 will prevent all
         shell, login and subsystem sessions while still permitting for-
         warding.  The default is 10.
Normalde bu alanın değeri şöyledir. Yani login olacak kullanıcı sayısına kısıtlama getirilmez.
#MaxSessions 10
Örnek
Sisteme giren kullanıcı sayısın kısıtlamak için şöyle yaparız.
MaxSessions 20
PasswordAuthentication Alanı
Açıklaması şöyle.
It's best to use public keys for SSH. So my sshd_config has PasswordAuthentication no.
Örnek - Password ile Giriş
Şifre ile giriş için şöyle yaparız.
PasswordAuthentication yes 
PermitEmptyPasswords no
PermitRootLogin Alanı
prohibit-password veya no değerini verirsek root login olamaz.
Örnek
Şöyle yaparız.
PermitRootLogin no
PubkeyAuthentication no
PasswordAuthentication no
RequiredAuthentications Alanı
Açıklaması şöyle
In newer versions of OpenSSH you can set the RequiredAuthentications2 pubkey,password parameter in /etc/ssh/sshd_config. This will force the user to use both public key AND password authentication, effectively giving you two-factor authentication
UsePAM Alanı
Açıklaması şöyle. "yes" ise ChallengeResponseAuthentication  ve PasswordAuthentication  etkindir
UsePAM
Enables the Pluggable Authentication Module interface. If set to “yes” this will enable PAM authentication using ChallengeResponseAuthentication and PasswordAuthentication in addition to PAM account and session module processing for all authentication types.

Because PAM challenge-response authentication usually serves an equivalent role to password authentication, you should disable either PasswordAuthentication or ChallengeResponseAuthentication.

If UsePAM is enabled, you will not be able to run sshd(8) as a non-root user. The default is “no”.
Sadece private key ile login için şöyle yaparız.
PermitRootLogin no
PasswordAuthentication no
UsePAM no

Hiç yorum yok:

Yorum Gönder