centOS7 防火墙操作

CentOS7设置ssh服务以及端口修改

一、安装之前了解openssh_7.9版本要求

1.目前不支持OpenSSL 1.1.x.(条件满足,无需升级)
2.Zlib 1.1.4或1.2.1.2或更高版本(早期1.2.x版本有问题)(条件满足,无需升级)

查看openssh版本 ssh -V
查看openssl版本 openssl version (版本号1.0.x)
查看zlib版本rpm -q zlib (Zlib 1.1.4或1.2.1.2或更高版本)

二、安装telnet服务(防止ssh安装失败连接不上服务器)

yum install -y telnet-server

yum install -y xinetd

systemctl enable xinetd.service

systemctl enable telnet.socket

systemctl start telnet.socket

systemctl start xinetd

#默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容:

echo ‘pts/0’ >>/etc/securetty
echo ‘pts/1’ >>/etc/securetty

可以关闭防火墙或者开启防火墙telnet端口(23)

三、卸载旧的openssh

cp -r /etc/ssh /etc/ssh.old #备份一些之前的文件
rpm -qa|grep openssh #会显示三行分别为openssh,openssh-clients和openssh-server
rpm -e --nodeps openssh-clients #测试服务器上实验不用写全也可以实现,写全后会报错
rpm -e --nodeps openssh
rpm -e --nodeps openssh-server
rpm -qa|grep openssh #此时查看不显示任何信息

如果之前就是源码安装的,找到之前的安装包,在里面执行
make uninstall

四、安装openssh

(1)连接到其他计算机时,OpenSSH作为两个进程运行。第一个进程是特权进程,并根据需要控制权限的颁发。第二个进程与网络通信。设置适当的环境需要额外的安装步骤,这些步骤通过以root用户身份发出以下命令来执行 :

install -v -m700 -d /var/lib/sshd
chown -v root:sys /var/lib/sshd
groupadd -g 50 sshd
useradd -c ‘sshd PrivSep’ -d /var/lib/sshd -g sshd -s /bin/false -u 50 sshd

(2)下载最新版本openssh

需要到官网中查看https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

下载openssh
wget ftp://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz

tar -zxvf openssh-7.9p1.tar.gz #解压
cd openssh-7.9p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd && make (这两行是在一行打)

如果报错
① configure: error: no acceptable C compiler found in $PATH
问题解决
yum install gcc
② configure: error: * zlib.h missing - please install first or check config.log *
问题解决
yum install openssl openssl-devel -y 安装相关依赖包 (测试的时候出现了该问题)

(3)修改相应文件权限

chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key

(4)安装

make install

(5)配置

install -v -m755 contrib/ssh-copy-id /usr/bin
install -v -m644 contrib/ssh-copy-id.1 /usr/share/man/man1
install -v -m755 -d /usr/share/doc/openssh-7.9p1
install -v -m644 INSTALL LICENCE OVERVIEW README* # 此行可能会报错没有关系
install -v -m644 INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.9p1

命令解释:
–sysconfdir=/etc/ssh:这可以防止安装配置文件 /usr/etc。
–with-md5-passwords:这使得可以使用MD5密码。
–with-pam:此参数在构建中启用 Linux-PAM支持。
–with-xauth=/usr/bin/xauth:为X身份验证设置xauth二进制文件的默认位置。如果将xauth安装到其他路径,请更改位置。这也可以sshd_config使用XAuthLocation关键字进行控制。如果已安装Xorg,则可以省略此开关。
–with-kerberos5=/usr:此选项用于在构建中包含Kerberos 5支持。
–with-libedit:此选项为sftp启用行编辑和历史记录功能。

(6)根据自身需求改写配置文件。因为配置文件为初始配置文件。所以和之前的不一样。可以使用备份配置文件覆盖。

注意:默认是22端口,但是不能root直接登录。如果想直接使用root登录执行以下命令

echo ‘X11Forwarding yes’ >> /etc/ssh/sshd_config
echo “PermitRootLogin yes” >> /etc/ssh/sshd_config
echo “PasswordAuthentication yes” >> /etc/ssh/sshd_config

ssh -V #检查版本

!!!开机自启动
!!!ssh服务必须开机自启动,不然重启的时候爆炸。(建议此时不要关闭telnet)
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
chkconfig --list sshd
systemctl restart sshd

ssh -V #检查版本

firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload

关闭selinux

vi /etc/selinux/config

把SELINUX=enforcing 改成 SELINUX=disabled

此时先测试ssh是否成功,若不成功可以重启试验一下,保证ssh正常后关闭telnet功能。