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——SSH服务篇与防火墙简单配置_第1张图片
    上图说明Centos7默认安装了SSH包。

  2. 安装缺失的包、并配置SSH yum install openssh*
    Linux——SSH服务篇与防火墙简单配置_第2张图片
    遇到选项按y就好了。

  3. 重启SSH服务,使之生效 systemctl restart sshd

2.禁止root用户直接SSH登陆

Linux最高权限用户root,默认可以直接登录sshd。为了提高服务器的安全度,需要对它进行禁止,使得攻击者无法通过暴力破解来获取root权限。

  1. 修改ssh配置文件 vim /etc/ssh/sshd_config
    Linux——SSH服务篇与防火墙简单配置_第3张图片
    编辑好,先按ESC键,再输入 :wq 保存退出。

  2. 重启SSH服务,使之生效 systemctl restart sshd

3.更改SSH端口(含防火墙简单配置)

有时候为了安全起见,会做更改ssh端口的操作。新的端口需要在防火墙上放通。

  1. 修改ssh配置文件,添加新端口20000 vim /etc/ssh/sshd_config
    Linux——SSH服务篇与防火墙简单配置_第4张图片

注意:端口号最大不能超过65535!
实际环境中,不建议直接修改22端口。在新端口能正常访问后,再关闭22端口。

  1. 在防火墙上放通20000端口 firewall-cmd --zone=public --add-port=20000/tcp --permanent
命令 含义
-zone 作用域
–add-port=9200/tcp 添加端口,格式为:端口/通讯协议
–permanent 永久生效,没有此参数重启后失效

firewall-cmd

注意:添加端口后,必须用命令 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——SSH服务篇与防火墙简单配置_第5张图片
  2. 检查Selinux是否关闭

Selinux默认为开启状态,不关闭Selinux的话,新端口无法连接成功。
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。

永久关闭selinux vi /etc/selinux/config
将SELINUX=enforcing更改为SELINUX=disabled,保存退出。
Linux——SSH服务篇与防火墙简单配置_第6张图片设置后需要重启才能生效。

查看selinux状态 vi /etc/selinux/config
sestatus

补充:
查看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——SSH服务篇与防火墙简单配置_第7张图片

  1. 在/root/.ssh/目录下查看是否有密钥生成
    查看是否有密钥生成
  2. 将公钥添加到另外两台服务器里,就可以实现免密登陆了

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected].* #对应服务器的IP地址

Linux——SSH服务篇与防火墙简单配置_第8张图片
至此,该服务器可以免密访问另外两台服务器!然后再另外两台服务器上重复该节操作即可。

总结

本次实验中,也解决了本人心中的一些小顾虑。
免密访问与操作机登陆的ssh端口无关;

本文参考文章:
1.Centos 7 安装、配置并启动SSH远程访问
2.linux如何修改默认SSH端口
3.Centos 7 查看防火墙状态
4.CentOS 7.X 关闭SELinux
5.多台Linux服务器之间互相免密登陆

你可能感兴趣的:(Linux学习之路,linux,ssh,centos)