๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

OS

Rocky Linux 8.10 OpenSSL & OpenSSH Server Installation Guide

๐Ÿš€ Rocky Linux์—์„œ OpenSSL 1.1.1u, OpenSSH 9.8p1, Bash 5 ์„ค์น˜ ๊ฐ€์ด๋“œ

์ด ๊ธ€์—์„œ๋Š” Rocky Linux 8.10 ํ™˜๊ฒฝ์—์„œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ์ตœ์‹  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด
OpenSSL, OpenSSH, Bash๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์ˆ˜๋™ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.
๊ฐ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹œ์Šคํ…œ ๊ธฐ๋ณธ๊ณผ ์ถฉ๋Œ ์—†์ด ๋ณ‘๋ ฌ ์„ค์น˜ ๋ฐ ์—ฐ๋™ํ•˜๋Š” ๊ณผ์ •๊นŒ์ง€ ์ž์„ธํžˆ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

 


! ์ž‘์—…์ค‘ SSH์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๊ฑฐ๋‚˜ ๊ธฐ์กด ์‚ฌ์šฉ์ž๋กœ ์ ‘์†์ด ์•ˆ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๊ทธ๋Ÿฌํ•œ ๊ฒฝ์šฐ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด selinux ์„ค์ •์„ ๋ณ€๊ฒฝํ•œ ํ›„, ๋‹ค์‹œ ๋ณ€๊ฒฝํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

setenforce 0 #selinux ์„ค์ • Permissive๋กœ ๋ณ€๊ฒฝ

setenforce 1 #selinux ์„ค์ • enforce๋กœ ๋ณ€๊ฒฝ 

ํ™•์ธ ๋ฐฉ๋ฒ•

getenforce # selinux์„ค์ • ํ™•์ธ

๐Ÿ“Œ ์‚ฌ์ „ ์ค€๋น„

sudo dnf groupinstall "Development Tools" -y
sudo dnf install wget gcc make zlib-devel pam-devel ncurses-devel git -y

 

๐Ÿ›ก๏ธ OpenSSL 1.1.1u ์„ค์น˜ (๋ณ‘๋ ฌ)

bash
 
bash

cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz
tar xvf openssl-1.1.1u.tar.gz
cd openssl-1.1.1u

./config --prefix=/opt/ssl --openssldir=/opt/ssl shared zlib
make -j$(nproc)
sudo make install

๐Ÿ”น ์„ค์น˜ ๊ฒฝ๋กœ: /opt/ssl
๐Ÿ”น ๊ธฐ์กด ์‹œ์Šคํ…œ OpenSSL์€ ๋ฎ์–ด์“ฐ์ง€ ์•Š์Œ
๐Ÿ”น ๊ธฐ์กด ์‹œ์Šคํ…œ OpenSSL์„ ๋ฎ์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‹ฌ๊ฐํ•œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•จ (dnf, yum, pip, ssh, gui๋“ฑ ๊ธฐ๋ณธํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉ ๋ถˆ๊ฐ€)
     ์–ด์ง€๊ฐ„ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ๋ณ€๊ฒฝํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ณต๊ตฌ ์•ˆ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿ” OpenSSH 9.8p1 ์„ค์น˜ (OpenSSL ์ •์  ๋งํฌ)

ํ•„์ˆ˜ ์‚ฌํ•ญ

1. ๊ธฐ์กด /etc/ssh/sshd_config ํŒŒ์ผ ๋ฐฑ์—… ํ•ด๋†“๊ธฐ

cd /usr/local/src
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
tar xvf openssh-9.8p1.tar.gz
cd openssh-9.8p1

export OPENSSL_DIR=/opt/ssl
export CPPFLAGS="-I$OPENSSL_DIR/include"
export LDFLAGS="$OPENSSL_DIR/lib/libssl.a $OPENSSL_DIR/lib/libcrypto.a -ldl -lpthread -lz"
export PKG_CONFIG_PATH="$OPENSSL_DIR/lib/pkgconfig"

./configure \
  --prefix=/usr/local/openssh \
  --with-ssl-dir=$OPENSSL_DIR \
  --with-pam \
  --without-openssl-header-check \
  --sysconfdir=/etc/ssh

make -j$(nproc)
sudo make install

 

๐Ÿ”น ์„ค์น˜ ๊ฒฝ๋กœ: /usr

๐Ÿ”น ์ •์ƒ์„ค์น˜ ์—ฌ๋ถ€ ํ™•์ธ ๋ฐฉ๋ฒ•


/usr/local/openssh/sbin/sshd -V
ldd /usr/local/openssh/sbin/sshd | grep ssl   # ๐Ÿ”ธ์•„๋ฌด๋Ÿฐ ๊ฐ’๋„ ๋‚˜์˜ค๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.
strings /usr/local/openssh/sbin/sshd | grep OpenSSL # ๐Ÿ”ธ์„ค์น˜ํ•œ openssl ๋ฒ„์ „์ด ๋ช…์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 - sshd -v ๋ฅผ ์ž…๋ ฅํ•˜์‹  ๊ฒฝ์šฐ ssh๋ฒ„์ „ ํ™•์ธ ๋ฐ ssl ๋ฒ„์ „์„ ํ™•์ธํ•ด ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ’ป Bash 5.x ์„ค์น˜

cd /usr/local/src
wget https://ftp.gnu.org/gnu/bash/bash-5.2.tar.gz
tar xvf bash-5.2.tar.gz
cd bash-5.2

./configure --prefix=/usr/local/bash-5.2
make -j$(nproc)
sudo make install

 

๐Ÿ”น ์ •์ƒ์„ค์น˜ ์—ฌ๋ถ€ ํ™•์ธ ๋ฐฉ๋ฒ•

/usr/local/bash-5.2/bin/bash --version

๐Ÿ”น ๊ธฐ๋ณธ Bash๋กœ ์„ค์ • ํ•˜๋Š” ๊ฒฝ์šฐ

chsh -s /usr/local/bash-5.2/bin/bash

#๋˜๋Š” 

export PATH=/usr/local/bash-5.2/bin:$PATH

 

๐Ÿ’ป SSH ์„ค์น˜ ์ดํ›„ systemd ์„œ๋น„์Šค ๋“ฑ๋ก ๋ฐฉ๋ฒ•

๊ธฐ์กด์— ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” ํŒŒ์ผ์„ ๋ฐฑ์—… ํ›„ ์ž‘์„ฑํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

#๊ธฐ์กด service ํŒŒ์ผ ๋ฐฑ์—…
cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak

vi /usr/lib/systemd/system/sshd.service
## ์•„๋ž˜์˜ ๋‚ด์šฉ์œผ๋กœ ๋ณ€๊ฒฝ ##
[Service]
ExecStart=/usr/local/openssh/sbin/sshd -D #<- ์ด๋ถ€๋ถ„๋งŒ ๋ณ€๊ฒฝํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
#####################


systemctl daemon-reload
systemctl restart sshd.service