安裝完操做系統並加固後,那麼系統在未安裝其它應用以前,對外提供的服務就只有22端口,也就是OPENSSH使用的端口。如何該協議存在漏洞的話,***就能夠能相應的工具經過協議漏洞***你的服務器linux
那麼咱們須要作的就是按期把OPENSSH升級到最新的版本,以保證此項不會被輕易***。算法
若是安裝的LINUX服務器要安裝ORACLE-RAC或是其它與SSH相關的集羣軟件,請先安裝軟件,後升級SSH,以避免ORACLE-RAC或是相關的集羣軟件因SSH版本沒法安裝。安全
OPENSSH最新版本下載地址服務器
登陸網站http://www.openssh.com/,找到FOR OTHER OS'S,下的LINUX微信
https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/下載最新的TAR.GZ包session
另外version.h文件若是按下面的操做修改了「 」裏的內容,ssh –V時就不會顯示ssh版本。一些安全廠商認爲這樣的操做是安全的。如無必要可不修改該文件app
此方法中的第10步,視狀況修改。ssh
1、ssh登陸到要安裝的服務器上,查看當前版本tcp
[root@localhost ~]# ssh -Vide
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11Feb 2013
2、在/目錄下建立/tools目錄,經過FTP工具上傳安裝文件到該目錄下
mkdir /tools
[root@myhost tools]# ls -ltrh
total 9.2M
-rw-r--r-- 1 root root 1.5M Nov 1323:38 openssh-7.6p1.tar.gz
-rw-r--r-- 1 root root 5.1M Nov 1323:38 openssl-1.0.2h.tar.gz
-rw-r--r-- 1 root root 2.7M Nov 1323:38 zlib-1.2.8.tar.gz使用yum安裝Telnet服務
3、爲防止重啓SSH後沒法登陸,安裝TELNET
yum install –y telnet-server
4、修改telnet文件disable=no(原有值爲yes),容許用戶遠程登陸
sed -i '12 s/yes/no/'/etc/xinetd.d/telnet
echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty
echo 'pts/2' >>/etc/securetty
echo 'pts/3' >>/etc/securetty
5、而後重啓服務
service xinetd restart
Stopping xinetd: [FAILED]
Starting xinetd: [ OK ]
6、用ROOT帳戶使用telnet登陸系統執行修改OPENSSH操做
rpm -eopenssh-server-5.3p1-94.el6.x86_64
rpm -eopenssh-askpass-5.3p1-94.el6.x86_64
7、安裝zlib
cd /tools
tar -xvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=/usr/local/zlib&& make && make install
cd ..
8、安裝openss
tar -xvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
./config --prefix=/usr/local/openssl&& make depend && make && make install
cd ..
9、安裝openssh
tar -xvf openssh-7.6p1.tar.gz
cd openssh-7.6p1
10、修改version.h文件,把裏面」」裏面的內容改爲「空格」。
/* $OpenBSD: version.h,v 1.802017/09/30 22:26:33 djm Exp $ */
#define SSH_VERSION " "
#define SSH_PORTABLE " "
#define SSH_RELEASE SSH_VERSION SSH_PORTABLE
11、而後再在執行編譯安裝
./configure--prefix=/usr/local/openssh --sysconfdir=/etc/ssh--with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib--with-md5-passwords --with-pam--without-hardening && make&& make install
12、拷貝SSHD服務文件
cp contrib/redhat/sshd.init/etc/init.d/sshd
chmod +x /etc/init.d/sshd
13、修改SSHD服務文件,修改對應指令的安裝目錄
vi /etc/init.d/sshd
SSHD=/usr/sbin/sshd 爲SSHD=/usr/local/openssh/sbin/sshd
/usr/bin/ssh-keygen -A 爲 /usr/local/openssh/bin/ssh-keygen-A
14、保存退出
把SSHD加入到系統服務
chkconfig --add sshd
15、查看系統啓動服務是否增長改項
chkconfig --list |grep sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
16、從新啓動SSHD服務。
service sshd start
17、替換SSH及SSL命令
mv /usr/bin/ssh /usr/bin/ssh.old
ln -s /usr/local/openssh/bin/ssh/usr/bin/ssh
mv /usr/bin/openssl/usr/bin/openssl.old
ln -s /usr/local/openssl/bin/openssl/usr/bin/openssl
18、檢查相關軟件版本
[root@myhost ~]# ssh -V
OpenSSH_7.2p2, OpenSSL 1.0.2h 3 May 2016
[root@myhost ~]# openssl version -a
OpenSSL 1.0.2h 3 May 2016
built on: reproducible build, dateunspecified
platform: linux-x86_64
options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int)idea(int) blowfish(idx)
compiler: gcc -I. -I..-I../include -DOPENSSL_THREADS-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3-Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5-DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM-DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR:"/usr/local/openssl/ssl"
19、升級到新版本後,默認不容許root用戶遠程登陸,修改/etc/ssh/sshd_config配置文件。
PermitRootLogin yes
20、從新啓動SSHD服務。
service sshd start
21、測試登陸SSH,測試成功後,刪除TELNET
rpm -etelnet-server-0.17-47.el6_3.1.x86_64
rpm -e xinetd-2.3.14-39.el6_4.x86_64
此方法中的5~7視安全要求,看是否操做
1、安裝編譯所必須的組件包
yum -y groupinstall "Developmenttools"
yum -y install pam-devel rpm-buildrpmdevtools zlib-devel krb5-devel tcp_wrappers tcp_wrappers-develtcp_wrappers-libs libX11-devel xmkmf libXt-devel wget openssl-devel
2、登陸網站http://www.openssh.com/,找到FOR OTHEROS'S,下的LINUX
https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/下載最新的TAR.GZ包
3、進行編譯
cd ~
mkdir rpmbuild
cd rpmbuild
mkdir -pv{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
4、拷貝openssh-7.6p1.tar到~/rpmbuild/SPECS目錄下
cd ~/rpmbuild/SPECS
tar xfz../SOURCES/openssh-7.6p1.tar.gz openssh-7.6p1/contrib/redhat/openssh.spec
mv openssh-7.6p1/contrib/redhat/openssh.specopenssh-7.6p1.spec
rm -rf openssh-7.6p1
sed -i -e "s/%defineno_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh-7.6p1.spec
sed -i -e "s/%defineno_x11_askpass 0/%define no_x11_askpass 1/g" openssh-7.6p1.spec
sed -i -e "s/BuildPreReq/BuildRequires/g"openssh-7.6p1.spec
5、進入到~/rpmbuild/SPECS目錄下,解壓文件
tar -xvf openssh-7.6p1.tar.gz
cd openssh-7.6p1
6、修改version.h文件,把裏面」」裏面的內容改爲「空格」。
/* $OpenBSD: version.h,v 1.802017/09/30 22:26:33 djm Exp $ */
#define SSH_VERSION " "
#define SSH_PORTABLE " "
#define SSH_RELEASE SSH_VERSION SSH_PORTABLE
7、而後再從新打包文件,刪除舊的文件
rm -rf openssh-7.6p1.tar.gz
tar -cvf openssh-7.6p1.taropenssh-7.6p1/
gzip openssh-7.6p1.tar
rm -rf openssh-7.6p1
8、進行RPM包編譯
cd ~/rpmbuild/SPECS
rpmbuild -bb openssh-7.6p1.spec
9、編譯完成後,進到以下目錄,查看編譯成功的RPM包
cd ~/rpmbuild/RPMS/x86_64
[root@myhost x86_64]# ls -l
total 1416
-rw-r--r-- 1 root root 458516 Nov 1400:56 openssh-7.6p1-1.x86_64.rpm
-rw-r--r-- 1 root root 578416 Nov 1400:56 openssh-clients-7.6p1-1.x86_64.rpm
-rw-r--r-- 1 root root 16948 Nov 14 00:56openssh-debuginfo-7.6p1-1.x86_64.rpm
-rw-r--r-- 1 root root 388100 Nov 1400:56 openssh-server-7.6p1-1.x86_64.rpm
以上配置完成後,能夠開始進行OPENSSH的RPM包安裝,編譯過的安裝包能夠拿到別的系統上直接安裝。不過安裝以前如下說的方法都要執行下!
10、備份PAM配置
cp /etc/pam.d/sshd /tmp/
mv /etc/pam.d/sshd/etc/pam.d/sshd.old
11、刪除OPENSS-ASK
[root@localhost ~]# rpm -eopenssh-askpass-5.3p1-94.el6.x86_64
12、升級OPENSSH
cd ~/rpmbuild/RPMS/x86_64/
rpm -Uvh *.rpm
13、修改配置容許ROOT用戶遠程登陸
sed -i -e "s/ #PermitRootLoginyes/PermitRootLogin yes/g" /etc/ssh/sshd_config
sed -i -e "s/#UsePAM no/UsePAMyes/g" /etc/ssh/sshd_config
cp /tmp/sshd /etc/pam.d/
輸入Y
14、若是原來沒有PAM/SSHD那新會新生成一個,更改新生成SSHD文件內容以下:
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be thefirst session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only befollowed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
15、從新SSHD服務
/etc/init.d/sshd restart
更多請實戰文章請關注公衆號,不按期更新中~,另外廣大的攻城獅們,聖誕快樂!!