[Linux] /etc/ssh/sshd_config의 Ciphers, MACs 옵션을 설정하는 방법.

2024. 1. 16. 19:24OperatingSystem/linux

728x90
728x90

Ciphers (암호화 알고리즘) ?

  • SSH 세션의 데이터를 암호화 알고리즘을 제어.

Ciphers 알고리즘 종류

  • aes128-cbc: 128비트 AES (Advanced Encryption Standard) 암호화
  • aes192-cbc: 192비트 AES 암호화
  • aes256-cbc: 256비트 AES 암호화
  • 3des-cbc: Triple-DES (3DES) 암호화
  • blowfish-cbc: Blowfish 암호화
  • chacha20-poly1305@openssh.com: ChaCha20-Poly1305 암호화 (OpenSSH에서 사용하는 고속 암호화)
  • ...

MACs (메시지 인증 코드 알고리즘) ?

  • SSH 세션의 메시지 인증 코드를 생성하는 알고리즘을 제어.
  • 데이터 무결성을 보장. 중간에 데이터가 변경되지 않았음을 검증하는 데 사용함.

MACs 알고리즘 종류

  • hmac-sha2-256: HMAC-SHA-256 알고리즘을 사용하여 메시지 인증 코드 생성
  • hmac-sha1: HMAC-SHA-1 알고리즘을 사용하여 메시지 인증 코드 생성
  • umac-64@openssh.com: UMAC-64 알고리즘을 사용한 메시지 인증 코드 생성 (OpenSSH에서 사용)
  • ...

작업 시나리오.

  1. SFTP Server 작업 환경에서 /etc/ssh/sshd_config 파일의 Ciphers, MACs 옵션을 설정.
  2. SFTP Server 작업 환경에서 SSH 서비스를 재 시작.
  3. SFTP Client 작업 환경에서 SFTP Server로 키 인증 방식으로 접속 시도.

SFTP Server 작업 환경.

$ ssh -V
OpenSSH_7.6p, OpenSSL 1.0.2n 7 Dec 2017
$ hostnamectl
…
  Operating System: Ubuntu 18.04.5 LTS
            Kernel: Linux 5.11.5
…

 

SFTP Client 작업 환경.

$ ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
$ hostnamectl
…
  Operating System: CentOS Linux 7 (Core)
            Kernel: Linux 3.10.0-1160.6.1.el7.x86_64
...

SFTP Server 작업 환경에서 /etc/ssh/sshd_config 파일의 Ciphers, MACs 옵션을 지정.(#은 주석을 의미함.)

$ sudo vi /etc/ssh/sshd_config
...
#Ciphers aes128-ctr,aes192-ctr,aes256-ctr
#MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,umac-128@openssh.com,hmac-sha2-512,hmac-sha2-256
Ciphers aes256-ctr
MACs umac-128-etm@openssh.com
...

SFTP Server 작업 환경에서 SSH 서비스 재 시작.

$ sudo service sshd restart

SSH 서비스가 기동되었는지 확인.

$ ps -ef | grep sshd
...
root     28723     1  0 19:00 ?        00:00:00 /usr/sbin/sshd -D
...

 

SFTP Client 작업 환경에서 SFTP Server로 키 인증 방식으로 접속.

  • 위에서 설정한 MACs, Ciphers 알고리즘을 사용하여, 접속하는 것을 확인할 수 있음.
  • debug1: kex: server->client cipher: aes256-ctr MAC: umac-128-etm@openssh.com compression: none
  • debug1: kex: client->server cipher: aes256-ctr MAC: umac-128-etm@openssh.com compression: none
$ sftp -v [userName]@[Server IP]
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Connecting to ... [...] port 22.
debug1: Connection established.
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.5 pat OpenSSH* compat 0x04000000
debug1: Authenticating to ...:22 as '...'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: aes256-ctr MAC: umac-128-etm@openssh.com compression: none
debug1: kex: client->server cipher: aes256-ctr MAC: umac-128-etm@openssh.com compression: none
debug1: kex: curve25519-sha256 need=32 dh_need=32
debug1: kex: curve25519-sha256 need=32 dh_need=32
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:ATumIRypRzXW3RPQ/veWdxl/0Kr35xCItDAxL5Rr21U
debug1: Host '...' is known and matches the ECDSA host key.
debug1: Found key in /home/.../.ssh/known_hosts:15
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/.../.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Authentication succeeded (publickey).
Authenticated to ... ([...]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Sending environment.
debug1: Sending env LANG = ko_KR.UTF-8
debug1: Sending subsystem: sftp
Connected to ....
sftp>

 

 

 

 

728x90
728x90