Linux学习之路|Linux——SSH服务篇与防火墙简单配置

ssh服务也是日常工作中比较常用的一个服务,本次实验中,将介绍 一下ssh中常见的一些场景。

Linux——SSH服务篇与防火墙简单配置

  • 1.开启SSH远程访问
  • 2.禁止root用户直接SSH登陆
  • 3.更改SSH端口(含防火墙简单配置)
  • 4.设置多服务器之间相互SSH免密登陆
  • 总结

1.开启SSH远程访问
一般使用服务器时,我们需要开启SSH远程访问,方便用户远程进行操作。
  1. 查看SSH是否安装 rpm -qa | grep ssh
    Linux学习之路|Linux——SSH服务篇与防火墙简单配置
    文章图片

    上图说明Centos7默认安装了SSH包。
  2. 安装缺失的包、并配置SSH yum install openssh*
    Linux学习之路|Linux——SSH服务篇与防火墙简单配置
    文章图片

    遇到选项按y就好了。
  3. 重启SSH服务,使之生效 systemctl restart sshd
2.禁止root用户直接SSH登陆
Linux最高权限用户root,默认可以直接登录sshd。为了提高服务器的安全度,需要对它进行禁止,使得攻击者无法通过暴力破解来获取root权限。
  1. 修改ssh配置文件 vim /etc/ssh/sshd_config
    Linux学习之路|Linux——SSH服务篇与防火墙简单配置
    文章图片

    编辑好,先按ESC键,再输入 :wq 保存退出。
  2. 重启SSH服务,使之生效 systemctl restart sshd
3.更改SSH端口(含防火墙简单配置)
有时候为了安全起见,会做更改ssh端口的操作。新的端口需要在防火墙上放通。
  1. 修改ssh配置文件,添加新端口20000 vim /etc/ssh/sshd_config
    Linux学习之路|Linux——SSH服务篇与防火墙简单配置
    文章图片
注意:端口号最大不能超过65535!
实际环境中,不建议直接修改22端口。在新端口能正常访问后,再关闭22端口。
  1. 在防火墙上放通20000端口 firewall-cmd --zone=public --add-port=20000/tcp --permanent
命令 含义
-zone 作用域
–add-port=9200/tcp 添加端口,格式为:端口/通讯协议
–permanent 永久生效,没有此参数重启后失效
Linux学习之路|Linux——SSH服务篇与防火墙简单配置
文章图片

注意:添加端口后,必须用命令 firewall-cmd --reload 重新加载一遍才会生效!
拓展——防火墙简单配置
拓展——防火墙简单配置 防火墙的开启、关闭、禁用命令 (1)启动防火墙:systemctl start firewalld (2)关闭防火墙:systemctl stop firewalld (3)重新启动防火墙:systemctl restart firewalld (4)检查防火墙状态:systemctl status firewalld (5)设置开机启用防火墙:systemctl enable firewalld.service (6)设置开机禁用防火墙:systemctl disable firewalld.service (7)查看服务是否开机启动:systemctl is-enabled firewalld.service (8)查看已启动的服务列表:systemctl list-unit-files | grep enabled (9)查看启动失败的服务列表:systemctl --failed使用firewall-cmd配置端口 (1)查看防火墙状态:**firewall-cmd --state** (2)查看版本: firewall-cmd --version (3)查看帮助: firewall-cmd --help (4)更新防火墙规则/重新加载配置: **firewall-cmd --reload** (5)查看开放的端口:**firewall-cmd --list-ports** (6)查看所有打开的端口: firewall-cmd --zone=public --list-ports (7)查看区域信息:firewall-cmd --get-active-zones (8)查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0 (9)拒绝所有包:firewall-cmd --panic-on (10)取消拒绝状态: firewall-cmd --panic-off (11)查看是否拒绝: firewall-cmd --query-panic (12)开启防火墙端口:**firewall-cmd --zone=public --add-port=9200/tcp --permanent**(端口号为9200,通讯协议为tcp) (13)关闭防火墙端口:**firewall-cmd --zone=public --remove-port=9200/tcp --permanent** (14)查看端口:firewall-cmd --zone=public --query-port=80/tcp

  1. 查看20000端口是否已经开放 iptables -nL --line-number
    如下图,则表示已经开放。Linux学习之路|Linux——SSH服务篇与防火墙简单配置
    文章图片
  2. 检查Selinux是否关闭
Selinux默认为开启状态,不关闭Selinux的话,新端口无法连接成功。
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。
永久关闭selinux vi /etc/selinux/config
将SELINUX=enforcing更改为SELINUX=disabled,保存退出。
Linux学习之路|Linux——SSH服务篇与防火墙简单配置
文章图片
设置后需要重启才能生效。
查看selinux状态 vi /etc/selinux/config
Linux学习之路|Linux——SSH服务篇与防火墙简单配置
文章图片

补充:
查看selinux状态的命令:
  1. getenforce
  2. /usr/sbin/sestatus -v
  3. sestatus
临时关闭selinux的命令:setenforce 0
##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
永久关闭selinux的命令:vi /etc/selinux/config
将SELINUX=enforcing更改为SELINUX=disabled,保存退出,设置后需要重启才能生效。
  1. 重启SSH服务 systemctl restart sshd.service
    重启ssh服务后,尝试用新端口连接是否能成功。
4.设置多服务器之间相互SSH免密登陆 在实际环境中往往是有多台服务器,为方便运维管理,我们常将实现同意功能的多台服务器之间设置免密登陆。例如:集群中的多个节点之间就会开启该功能。
现在我有三台Linux服务器:172.16.211.180-182
  1. 首先在一台服务器上生成密钥 ssh-keygen -t rsa
如下图即成功生成密钥,没有出现提示也不要紧,可以看下 /root/.ssh/ 路径下是否生成 id_rsa.(私钥) 和 id_rsa.pub(私钥) 两个文件。
第一个回车处 可设置登陆密码,直接回车代表无需密码登陆
Linux学习之路|Linux——SSH服务篇与防火墙简单配置
文章图片

  1. 在/root/.ssh/目录下查看是否有密钥生成
    Linux学习之路|Linux——SSH服务篇与防火墙简单配置
    文章图片
  2. 将公钥添加到另外两台服务器里,就可以实现免密登陆了
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.211.* #对应服务器的IP地址
Linux学习之路|Linux——SSH服务篇与防火墙简单配置
文章图片

至此,该服务器可以免密访问另外两台服务器!然后再另外两台服务器上重复该节操作即可。
总结 本次实验中,也解决了本人心中的一些小顾虑。
免密访问与操作机登陆的ssh端口无关;
【Linux学习之路|Linux——SSH服务篇与防火墙简单配置】本文参考文章:
1.Centos 7 安装、配置并启动SSH远程访问
2.linux如何修改默认SSH端口
3.Centos 7 查看防火墙状态
4.CentOS 7.X 关闭SELinux
5.多台Linux服务器之间互相免密登陆

    推荐阅读