ssh服务也是日常工作中比较常用的一个服务,本次实验中,将介绍 一下ssh中常见的一些场景。
Linux——SSH服务篇与防火墙简单配置
- 1.开启SSH远程访问
- 2.禁止root用户直接SSH登陆
- 3.更改SSH端口(含防火墙简单配置)
- 4.设置多服务器之间相互SSH免密登陆
- 总结
1.开启SSH远程访问
一般使用服务器时,我们需要开启SSH远程访问,方便用户远程进行操作。
- 查看SSH是否安装 rpm -qa | grep ssh
文章图片
上图说明Centos7默认安装了SSH包。
- 安装缺失的包、并配置SSH yum install openssh*
文章图片
遇到选项按y就好了。
- 重启SSH服务,使之生效 systemctl restart sshd
Linux最高权限用户root,默认可以直接登录sshd。为了提高服务器的安全度,需要对它进行禁止,使得攻击者无法通过暴力破解来获取root权限。
- 修改ssh配置文件 vim /etc/ssh/sshd_config
文章图片
编辑好,先按ESC键,再输入 :wq 保存退出。
- 重启SSH服务,使之生效 systemctl restart sshd
有时候为了安全起见,会做更改ssh端口的操作。新的端口需要在防火墙上放通。
- 修改ssh配置文件,添加新端口20000 vim /etc/ssh/sshd_config
文章图片
注意:端口号最大不能超过65535!
实际环境中,不建议直接修改22端口。在新端口能正常访问后,再关闭22端口。
- 在防火墙上放通20000端口 firewall-cmd --zone=public --add-port=20000/tcp --permanent
命令 | 含义 |
---|---|
-zone | 作用域 |
–add-port=9200/tcp | 添加端口,格式为:端口/通讯协议 |
–permanent | 永久生效,没有此参数重启后失效 |
文章图片
注意:添加端口后,必须用命令 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
- 查看20000端口是否已经开放 iptables -nL --line-number
如下图,则表示已经开放。
文章图片
- 检查Selinux是否关闭
Selinux默认为开启状态,不关闭Selinux的话,新端口无法连接成功。永久关闭selinux vi /etc/selinux/config
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。
将SELINUX=enforcing更改为SELINUX=disabled,保存退出。
文章图片
设置后需要重启才能生效。
查看selinux状态 vi /etc/selinux/config
文章图片
补充:
查看selinux状态的命令:
临时关闭selinux的命令:setenforce 0
- getenforce
- /usr/sbin/sestatus -v
- sestatus
##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
永久关闭selinux的命令:vi /etc/selinux/config
将SELINUX=enforcing更改为SELINUX=disabled,保存退出,设置后需要重启才能生效。
- 重启SSH服务 systemctl restart sshd.service
重启ssh服务后,尝试用新端口连接是否能成功。
现在我有三台Linux服务器:172.16.211.180-182
- 首先在一台服务器上生成密钥 ssh-keygen -t rsa
如下图即成功生成密钥,没有出现提示也不要紧,可以看下 /root/.ssh/ 路径下是否生成 id_rsa.(私钥) 和 id_rsa.pub(私钥) 两个文件。
第一个回车处 可设置登陆密码,直接回车代表无需密码登陆
文章图片
- 在/root/.ssh/目录下查看是否有密钥生成
文章图片
- 将公钥添加到另外两台服务器里,就可以实现免密登陆了
文章图片
至此,该服务器可以免密访问另外两台服务器!然后再另外两台服务器上重复该节操作即可。
总结 本次实验中,也解决了本人心中的一些小顾虑。
免密访问与操作机登陆的ssh端口无关;
【Linux学习之路|Linux——SSH服务篇与防火墙简单配置】本文参考文章:
1.Centos 7 安装、配置并启动SSH远程访问
2.linux如何修改默认SSH端口
3.Centos 7 查看防火墙状态
4.CentOS 7.X 关闭SELinux
5.多台Linux服务器之间互相免密登陆
推荐阅读
- redhat|远程连接——SSH
- linux|Linux基础篇——Linux网络配置(配置网卡、固定IP,固定hostname,终端远程)详解
- Linux防护与群集|第十章(Mysql主从复制读写分离)
- SLAM|Linux 配置《视觉SLAM十四讲》环境的步骤
- git|Git同时配置和提交代码到Github和Gitee
- Linux服务器下搭建SFTP服务
- 服务器|EsgynDB Troubleshooting - 网卡MTU导致跨网段访问数据库失败
- linux|Linux之 JavaEE-搭建 JavaEE环境
- linux|Linux-RPM与YUM