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


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

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


1.开启SSH远程访问

一般使用服务器时,我们需要开启SSH远程访问,方便用户远程进行操作。

  1. 查看SSH是否安装 rpm -qa | grep ssh
  2. Hadoop怎样设置防火墙允许ssh端口通过 linux防火墙限制ssh_centos

  3. 上图说明Centos7默认安装了SSH包。
  4. 安装缺失的包、并配置SSH yum install openssh*
  5. Hadoop怎样设置防火墙允许ssh端口通过 linux防火墙限制ssh_重启_02

  6. 遇到选项按y就好了。
  7. 重启SSH服务,使之生效 systemctl restart sshd

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

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

  1. 修改ssh配置文件 vim /etc/ssh/sshd_config
  2. Hadoop怎样设置防火墙允许ssh端口通过 linux防火墙限制ssh_linux_03

  3. 编辑好,先按ESC键,再输入 :wq 保存退出。
  4. 重启SSH服务,使之生效 systemctl restart sshd

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

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

  1. 修改ssh配置文件,添加新端口20000vim /etc/ssh/sshd_config

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

  1. 在防火墙上放通20000端口 firewall-cmd --zone=public --add-port=20000/tcp --permanent

命令

含义

-zone

作用域

–add-port=9200/tcp

添加端口,格式为:端口/通讯协议

–permanent

永久生效,没有此参数重启后失效

Hadoop怎样设置防火墙允许ssh端口通过 linux防火墙限制ssh_linux_04

注意:添加端口后,必须用命令 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
    如下图,则表示已经开放。
  2. 检查Selinux是否关闭

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

永久关闭selinux vi /etc/selinux/config

将SELINUX=enforcing更改为SELINUX=disabled,保存退出。

Hadoop怎样设置防火墙允许ssh端口通过 linux防火墙限制ssh_centos_05

设置后需要重启才能生效。查看selinux状态 vi /etc/selinux/config

Hadoop怎样设置防火墙允许ssh端口通过 linux防火墙限制ssh_linux_06

补充:
查看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(私钥) 两个文件。
第一个回车处 可设置登陆密码,直接回车代表无需密码登陆

Hadoop怎样设置防火墙允许ssh端口通过 linux防火墙限制ssh_服务器_07

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

ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.211.* #对应服务器的IP地址

Hadoop怎样设置防火墙允许ssh端口通过 linux防火墙限制ssh_服务器_08


至此,该服务器可以免密访问另外两台服务器!然后再另外两台服务器上重复该节操作即可。

总结

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

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