RedHat 5 OpenSSHサービスのアップグレード
9154 ワード
:
脆弱性の改善はOpenSSHサービスのアップグレードに関連し、サーバはイントラネットでyumソースを使用できないなどである.本番環境なので、気軽に試してはいけません.以下の内容は、ローカル仮想マシンのシミュレーションを何度も行った後にまとめられています.もちろん、最終的には本番環境サーバSSHもアップグレードに成功しました.踏んだ穴を一緒に目撃せよ!!! :
rootを使用して操作するのは懸念されていないはずです. :
ソースコードを使用してインストールをコンパイルし、rpm
パッケージのインストールをサボりたいのですが、適切なパッケージと適切なチュートリアルが見つかりません.の準備を
OpenSSH
現在の最新版7.3p1
公式サイトをダウンロードします.http://www.openssh.com/英語が下手で、初めてのアクセスでソースパッケージのダウンロードアドレスが見つかりませんでした.左侧でその中のFor other OS's
を见つけてLinux
时に入って更に下に引いて见つけて、1つの适切なダウンロードの空间を探して中に入って最新版をダウンロードすることができます.ここではopenssh-7.3 p 1.tar.gz 構成とインストール
解凍
tar -zxvf openssh-7.3p1.tar.gz
cd openssh-7.3p1
インストールディレクトリのコンパイル
pwd
これが私のインストールディレクトリ
/root/UpdateSSH/openssh-7.3p1
です.これからコンパイルするたびにこのディレクトリで完了します.次のスクリプトの./configure
の前にcd /root/UpdateSSH/openssh-7.3p1
が必要です.コンパイル
ここでは経験に基づいてコンパイル構成を使用します
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords
以前は
--with-pam
も追加されていましたが、新版ではこの構成は必要ないことがわかりました.また、対応する依存パッケージをインストールする必要がある場合は、いっそ要らないので、面倒を省くことができます.**
**ログは次のとおりです(直接成功した場合は、インストール手順に直接ジャンプしておめでとうございます)checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: no acceptable C compiler found in $PATH
See 'config.log' for more details.
問題は明らかで、
gcc
はありません.ネットワークが正常であれば、すぐにyum install gcc
がこの問題を修復します.残念ながら、サーバーはパブリックネットワークを使用できません.最も直接的な解決策は、インストールディスクを見つけて対応するRPMインストールパッケージと依存パッケージを見つけることです(私は以下のスクリプトを使用してインストールしています.インストール順序に注意してください).rpm -Uvh kernel-headers-2.6.18-164.el5.i386.rpm
rpm -Uvh glibc-headers-2.5-42.i386.rpm
rpm -Uvh glibc-devel-2.5-42.i386.rpm
rpm -Uvh libgomp-4.4.0-6.el5.i386.rpm
rpm -Uvh gcc-4.1.2-46.el5.i386.rpm
ここでは、上記のパッケージをインストールする必要がある理由を説明する必要があります.なぜなら、
gcc
をインストールすることで、インストール中にエラーが発生し、エラー情報に基づいて依存関係を見つけることができるからです.インストールディスクがない場合は、他のインターネットデバイスを使用してRPMパッケージを事前にダウンロードすることができ、ミラーステーションにアクセスしてダウンロードを探すことができます.ここでは、RPMインストールパッケージを取得します.今回のテスト環境はRedHat
ですが、ミラーソースはありません.まずCentOS
ソースを使用して、システムがどのバージョンなのかを確認し、対応するバージョンに応じてインストールパッケージをダウンロードする必要があります.lsb_release -a
ここでテスターのバージョン
5.4
なので、ダウンロードされたパッケージにはel5
が含まれているはずです.端末でオペレーティングシステムのビット数を検索し続ける必要があります.getconf LONG_BIT
ここで調べたシステムビット数は
32
ビットなので、ダウンロードしたパッケージにはi386
が含まれているはずです. だからここでパッケージをダウンロードすることに対応します.このときピットが現れ、ミラーステーションは最新版5.11
対応のrpm
パケットしか提供していないが、私のここのシステムバージョンは5.4
ダウンロードしたパケットインストールにはすべての依存関係のパケットをすべて更新する必要がある(個人的にはシステムを更新することに相当すると思う)やはり直接インストールパッケージIOSファイルの中で対応するRPMパッケージを探して比較的に実際に私のここで採用したのは直接インストールディスクで対応するrpm
パッケージを見つけてインストールします.(サーバのストレージ容量が新しいマウント後にインストールディスクのすべてのrpm
パケットをサーバのハードディスクに直接格納するのに十分であれば、必要に応じて直接使用できます)**
**インストールディスクにRPMパッケージをインストールする方法で解決cd /media/RHEL_5.4\ i386\ DVD/Server/
rpm -Uvh kernel-headers-2.6.18-164.el5.i386.rpm
rpm -Uvh glibc-headers-2.5-42.i386.rpm
rpm -Uvh glibc-devel-2.5-42.i386.rpm
rpm -Uvh libgomp-4.4.0-6.el5.i386.rpm
rpm -Uvh gcc-4.1.2-46.el5.i386.rpm
gcc -v
gcc
のインストールに成功しました.バージョンは4.1.2
です.再コンパイル1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords
**
**ログは次のとおりです(直接成功した場合は、インストール手順に直接ジャンプしておめでとうございます).......( )
checking for zlib.h... no
configure: error: *** zlib.h missing - please install first or check config.log ***
問題は明らかで、
zlib
はありません.ネットワークが正常であれば、すぐにyum install zlib
がこの問題を修復します.(ここではコンパイルパラメータ--with-zlib
を削除してみますが、この方法では検証されていません)残念ながらサーバはパブリックネットワークを使用できません.最も直接的な解決策は、インストールディスクを見つけて対応するRPMインストールパッケージと依存パッケージを見つけることです(私は以下のスクリプトを使用してインストールしています.インストール順序に注意してください).rpm -Uvh zlib-1.2.3-3.i386.rpm
rpm -Uvh zlib-devel-1.2.3-3.i386.rpm
**
**ディスクをインストールしてRPMパッケージをインストールする方法は上記のようにgcc
をインストールする方法と一致しています.ここではこの方法を使用しません.ソースコードのコンパイルインストール(gccコンパイル環境があるので、コンパイルインストールできます)を採用してzlibサイトで最新のソースコードのインストールパッケージzlib-1.2.8.tar.gzを見つけてダウンロードします.tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make && make install
再コンパイル2
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords
**
**ログは次のとおりです(直接成功した場合は、インストール手順に直接ジャンプしておめでとうございます).......( )
checking for openssl/opensslv.h... no
configure: error: *** OpenSSL headers missing - please install first or check config.log ***
問題は明らかで、
openssl-devel
はありません.ネットワークが正常であれば、yum install openssl-devel
がこの問題を修復します.**
**残念ながら、サーバーはパブリックネットワークを使用できません.最も直接的な解決策は、インストールディスクを見つけて対応するRPMインストールパッケージと依存パッケージを見つけることです.ここで、システムが私のバージョンと一致しているか、それ以下のバージョンであれば、この方法を使用しないでください.最終的にはOpenSSH 7.3p1
が必要とするopenssl
の最低需要は0.9.8f
バージョンであることがわかります.もちろん、0.9.8f
よりも高いバージョンであれば、直接インストールできます.ここでは、次のコンパイルインストールアップグレードopenssl
に直接ジャンプする解決策を解決することはできません.openssl version -a
rpm -Uvh e2fsprogs-devel-1.39-23.el5.i386.rpm
rpm -Uvh keyutils-libs-devel-1.2-1.el5.i386.rpm
rpm -Uvh libsepol-devel-1.15.2-2.el5.i386.rpm
rpm -Uvh libselinux-devel-1.33.4-5.5.el5.i386.rpm
rpm -Uvh krb5-devel-1.6.1-36.el5.i386.rpm
rpm -Uvh openssl-devel-0.9.8e-12.el5.i386.rpm
再コンパイル3
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords
**
**ログは次のとおりです(直接成功した場合は、インストール手順に直接ジャンプしておめでとうございます).......( )
checking OpenSSL header version... 0090802f (OpenSSL 0.9.8e-rhel5 01 Jul 2008)
checking OpenSSL library version... configure: error: OpenSSL >= 0.9.8f required (have "0090802f (OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008)")
問題は明らかで、
openssl
バージョンが低すぎず、本機は0.9.8e
であり、最低構成には0.9.8f
が必要である.(0.9.8f
を以下の方法で直接取り付けてもこの問題を修復でき、検証済み)**
**openssl公式サイトに最新の安定バージョンopenssl-1.0.2 h.tar.gzをダウンロードtar -zxvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
./config --prefix=/usr/local/ssl shared zlib-dynamic enable-camellia
make depend
make && make install
OpenSSH
アップグレードの準備)mv /usr/bin/openssl /usr/bin/openssl.bak
#mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig -v
openssl version -a
再コンパイル4
構成パラメータ
--with-ssl-dir=/usr/local/ssl
を少し追加する必要があります.この構成は、openssl
のアップグレード中にカスタマイズされた構成に関連しています../configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-ssl-dir=/usr/local/ssl
とうとう成功した
インストール
インストール前に既存のsshプロファイルをバックアップ
mv /etc/ssh/ssh_config /etc/ssh/ssh_config.bak
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
make && make install
ログファイルをバックアップしないと、新しいバージョンのsshのプロファイルが古いバージョンのファイルを上書きできません.
仕上げ作業
service sshd restart
chkconfig sshd on
参考にした『巨人』
OpenSSL headers
に欠けているパッケージについて説明します.openssl
をコンパイルしてインストールした後に配置する必要がある余分なステップを理解して、しかしその中に巨大な穴がありますecho “/usr/local/ssl/lib” >> /etc/ld.so.conf
の中の二重引用符は時間の半分の英語を必要として、しかしその中は中国語で、これも自分に1つの危険を冒して知恵を成長させるようにしましょう、完全にCopyすることができません.openssl
をコンパイルする際にカスタマイズする必要があるパラメータについて説明します.openssl
をコンパイルインストールした後、openssh
をコンパイルする際にパラメータ付き--with-ssl-dir=/usr/local/openssl
ディレクトリをカスタマイズされた構成に基づいて変更する必要があることを知りました.RPM
パッケージをインストールし、このログを書いたときに見た最后にツッコミを入れてBD検索は确かにだめで、国内のフォーラムの环境も确かによくなくて、多くの问题は招待状を解决してもやめて、どうして会社の内部のネット、BDを使うしかなくて、一部の国内のフォーラムにアクセスするしかありません.