๐ 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
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