SSH远程访问及控制
大多数企业服务器是通过远程登录的方式来进行管理的,如何更加安全、高效的远程管理网络中的各种服务器是作为网络管理人员的必修课。这里将针对Linux环境使用安全的SSH远程管理途径,以及通过TCP Wrappers机制为应用提供访问控制
SSH(secure shell)是一种安全的通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,与早期的TELNET、RSH、RCP等应用相比,SSH协议提供了更好的安全性
配置OpenSSH服务端
在RHEL系统中,OpenSSH服务器的openssh等软件包默认已经安装,并已添加为系统服务,只需配置并启动sshd服务,大部分用户(拥有合法的登录shell)都可以远程登录系统。sshd的配置文件位于/etc/ssh/sshd_config目录下,正确调整相关配置项,有助于提高sshd远程登录的安全性
[root@localhost ~]# vim /etc/ssh/sshd_config Port 22 //默认端口号22,必要时可修改 ListenAddress 192.168.1.1 //监听地址 Protocol 2 //使用SSH v2协议,比v1更安全 UseDNS no //禁用DNS反向解析,提高服务器响应速度LoginGraceTime 2m //登录验证时间为2分钟 PermitRootLogin yes //禁止root用户登录,用普通用户登录后,su切换为root更加安全 MaxAuthTries 6 //最大重试次数为6 PermitEmptyPasswords no //禁止空密码用户登录AllowUsers ysf yang@192.168.3.110 //当只允许某些用户登录时 DenyUsers yangshufan //当只禁止某些用户登录时,注意两者不要同时使用PasswordAuthentication yes //启用密码验证 PubkeyAuthentication yes //启用密钥对验证 AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件[root@localhost ~]# service sshd reload //配置完后,需要更新服务 重新载入 sshd: [确定]
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性较高的服务器,建议禁止密码验证方式,只允许密钥对验证方式;若没有特殊要求,则两种都可以启用
使用SSH客户端程序
在Linux系统中,SSH客户端默认已安装,其中包括ssh、scp、sftp等命令。实际上,任何支持SSH协议的客户端程序都可以与OpenSSH服务器进行通信,如Windows平台中的Xshell、SecureCRT、Putty等图形工具。
(1)ssh远程登录
通过ssh命令,可以远程登录sshd服务,为用户提供一个安全的shell环境,以便对服务器进行管理和维护
[root@localhost ~]# ssh ysf@192.168.1.1 //如果不是默认端口,需要使用"-p 端口号" Are you sure you want to continue connecting (yes/no)? yes //第一次连接,必须输入yes ysf@192.168.1.1's password: //输入密码 Last login: Thu Dec 28 05:01:52 2017 from 192.168.1.2 [ysf@localhost ~]$
(2)scp远程复制
通过scp命令可以利用SSH安全连接与远程主机互相复制文件
[root@localhost ~]# scp /etc/passwd root@192.168.1.1:/root/passwd.txt //将本地文件复制到远程主机 root@192.168.1.1's password: passwd 100% 1915 1.9KB/s 00:00 [root@localhost ~]# scp -r root@192.168.1.1:/home/ /opt //将远程主机的home目录复制到本地 root@192.168.1.1's password: .bash_profile 100% 176 0.2KB/s 00:00 .bash_logout 100% 18 0.0KB/s 00:00 [root@localhost ~]#
(3)sftp安全FTP
通过sftp命令可以利用SSH安全连接与远程主机上传、下载文件,采用了与FTP类似的登陆过程和交互式环境,便于管理资源
[root@localhost ~]# sftp ysf@192.168.1.1 Connecting to 192.168.1.1... ysf@192.168.1.1's password: sftp> help sftp> bye [root@localhost ~]#
使用密钥对验证SSH的方式
密钥对验证方式可以为远程登录提供更好的安全性,下面将介绍在Linux服务器、客户机中构建密钥对验证SSH体系的基本过程,如下图所示:
1. 在客户机创建密钥对
[yang@localhost ~]$ ssh-keygen -t rsa //ssh-keygen工具为当前用户创建密钥对文件,rsa为加密算法,也可以为dsa加密算法 Generating public/private rsa key pair. Enter file in which to save the key (/home/yang/.ssh/id_rsa): //指定私钥位置,按Enter键确定 Created directory '/home/yang/.ssh'. Enter passphrase (empty for no passphrase): //设置私钥密码,也可以设置为空,实现无密码登录,但使用密码更加安全 Enter same passphrase again: //确认密码 Your identification has been saved in /home/yang/.ssh/id_rsa.[yang@localhost ~]$ ls -lh ~/.ssh/id_rsa* //确认生成的密钥文件 -rw-------. 1 yang yang 1.8K 12月 29 08:47 /home/yang/.ssh/id_rsa //私钥文件,不能泄露 -rw-r--r--. 1 yang yang 408 12月 29 08:47 /home/yang/.ssh/id_rsa.pub //公钥文件,用来提供给服务器
2. 将公钥上传至服务器
3. 在服务器中导入公钥文本
上面两个步骤有两种方式完成导入:
方式一:命令格式如下
ssh-copy-id -i 公钥文件 目标主机用户@目标主机
[yang@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub ysf@192.168.1.1 ysf@192.168.1.1's password: //输入ysf的密码 Now try logging into the machine, with "ssh 'ysf@192.168.1.1'", and check in:.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. [ysf@localhost ~]# //验证密码后,会将公钥自动添加到宿主目录下的.ssh/authorized_keys
方式二:使用FTP、scp等方式上传到服务器,在将文件导入到目标用户的公钥数据库
[yang@localhost ~]$ scp .ssh/id_rsa.pub root@192.168.1.1:/tmp //使用scp命令上传到服务器 root@192.168.1.1's password: //输入服务器root的密码 Could not chdir to home directory /home/ysf: No such file or directory id_rsa.pub 100% 408 0.4KB/s 00:00 [yang@localhost ~]$ ssh root@192.168.1.1 //远程登录到服务器 root@192.168.1.1's password: [root@localhost ~]# mkdir /home/ysf/.ssh //将公钥导入到公钥数据库 [root@localhost ~]# cat /tmp/id_rsa.pub >> /home/ysf/.ssh/authorized_keys [root@localhost ~]# ls -l /home/ysf/.ssh/authorized_keys //注意:公钥库文件的权限必须是root用户或宿主用户 -rw-rw-r--. 1 root root 408 12月 29 10:01 .ssh/authorized_keys
4. 在客户端上使用密钥对验证
[yang@localhost ~]$ ssh ysf@192.168.1.1 Enter passphrase for key '/home/yang/.ssh/id_rsa': //输入私钥密码,如未设置密码,则直接登录服务器 Last login: Fri Dec 29 10:57:12 2017 from 192.168.1.2 [ysf@localhost ~]$
TCP Wrappers访问控制
TCP Wrappers将其他TCP服务程序包裹起来,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。对于大多数Linux发行版,TCP Wrappers是默认提供的功能。
1. 策略的配置格式
TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务程序的客户机地址进行访问控制。对应的策略文件为/etc/hosts.allow和/etc/hosts.deny,分别提供允许和拒绝的要求
配置格式如下:
服务程序列表:客户机地址列表
其中,
(1)服务程序列表分为以下几类:
ALL:代表所有服务
单个服务程序:如“sshd”
多个服务程序组成的列表:如“httpd,sshd”,以逗号分隔
(2)客户机地址列表分为以下几类:
ALL:代表任何客户机服务
LOCAL:代表本机地址
单个IP地址:如“192.168.1.1”
网络段地址:如“192.168.1.0/255.255.255.0”或者“192.168.1.”
域名:如“.ysf.com”匹配ysf.com域中的所有主机
通配符*、?:前者代表任意长度字符,后者仅代表一个字符
多个客户机地址组成的列表:如“192.168.1.1,172.16.10.,.ysf.com”
2. 访问控制的基本原则
(1)先检查hosts.allow,找到匹配则允许访问
(2)否则再检查hosts.deny,找到则拒绝访问
(3)若两个文件中均无匹配策略,则默认允许访问
实际使用TCP Wrappers机制时,较为宽松的策略可以是“允许所有,拒绝个别”,较为严格的可以是“允许个别,拒绝所有”。前者只需在hosts.deny文件中添加相应的策略;而后者需要在hosts.allow中添加允许策略外,还要在hosts.deny文件中添加“ALL:ALL”的拒绝策略
例如:
1)仅允许从主机61.63.65.67,网段192.168.2.0/24 地址访问sshd服务 ,禁止其他所有地址访问受保护的服务
2)拒绝192.168.2.2访问httpd服务
[root@localhost ~]# vim /etc/hosts.allow sshd:61.63.65.67,192.168.2.*[root@localhost ~]# vim /etc/hosts.deny sshd:ALL httpd:192.168.2.2
转载于:https://blog.51cto.com/yangshufan/2055727
SSH远程访问及控制相关推荐
- SSH远程访问以及控制
SSH远程访问以及控制 一.SSH远程管理基本简介 二.OpenSSH服务端相关配置 三.SSH客户端程序的登录以及使用 -登录验证方式 -SSH客户端程序的使用 (1)ssh远程登录: (2)scp ...
- ssh远程访问及控制与TCP Wrappers
远程访问及控制 文章目录 远程访问及控制 SSH协议 客户端和服务端 OpenSSH 配置opensSH服务端 设置SSH白名单和黑名单 使用SSH客户端程序 1. ssh远程登录 2. scp远程复 ...
- SSH远程访问及控制——远程登录服务器并传输数据
文章目录 一.SSH远程管理 1.SSH的概述 二.OpenSSH服务器 三.配置OpenSSH服务器 3.1.sshd_ config配置文件的常用选项设置 3.2.实例操作:配置文件的常用选项 3 ...
- SSH远程访问与TCP Wrappers 访问控制(基础概述及配置操作)
SSH远程访问及控制 OpenSSH服务器 基础概述 Windows远程桌面连接 配置OpenSSH 服务端 sshd_config配置文件的常用选项设置 使用SSH客户端程序进行黑白名单登录测试 使 ...
- 【鬼网络】之远程访问及控制ssh
远程访问及控制ssh 一.SSH远程管理 1.定义 2.优点 3.客户端与服务端 4.SSH服务的开启.端口号和配置文件 二.配置 OpenSSH 服务端 1.配置文件常用设置选项 2.AllowUs ...
- Linux远程访问及控制(SSH、TCP Wrappers 访问控制)
Linux远程访问及控制 一.SSH远程管理 1.SSH定义 2.SSH数据传输优点 3.SSH客户端和服务端 二.OpenSSH 1.配置OpenSSH 服务端配置 2.scp远程复制 3.sftp ...
- 远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制
远程访问及控制(详解)--SSH远程管理及TCP Wrappers 访问控制 一.SSH远程管理 1.定义 2.优点 3.客户端与服务端 4.SSH服务的开启.端口号和配置文件 二.配置 OpenSS ...
- centos 7.6 ——远程访问及控制——(ssh密钥登录、ssh客户端、TCP Wrappers)
远程访问及控制 文章目录 远程访问及控制 一.ssh基本配置 1. 允许root登录 2. 禁止root远程登录 **注意 3. DenyUsers 黑名单的使用 4. AllowUsers 白名单使 ...
- Linux 远程访问及控制
Linux 远程访问及控制 文章目录 Linux 远程访问及控制 引言: 一.SSH远程管理 1.SSH是什么: 2.SSH客户端与OpenSSH服务端 3.SSH服务配置 4.SSHD服务端的功能 ...
最新文章
- STM32串口中断接收方式详细比较
- WCF与现行分布式通讯技术性能对比
- fileviewpro绿色免安装版
- Maven项目缺少Maven Dependencies解决方法总结
- JQuery 自动触发事件
- linux系统如何查看是否是线程死锁,多线程中如何使用gdb精确定位死锁问题
- XSS跨站脚本攻击在Java开发中防范的方法
- Matlab计算机视觉/图像处理工具箱(待续)
- word2013插入excel对象报错_在Word文档中修改嵌入的Excel对象
- GO_10:GO语言基础之error
- php不支持redis
- SQL Server中数据库文件的存放方式,文件和文件组
- Unity3D中Update和FixedUpdate、LateUpdate的区别
- 在线php中文手册,JavaScript中文参考手册
- 《大学》与威斯敏斯特大教堂的无名墓碑
- 怎么缩小照片的kb?
- HashSet源码解读
- 后台SpringBoot + Mybatis开发遇到的一些坑
- Apache Tuscany中文论坛开通: http://groups.google.com/group/tuscany-sca-chinese
- 用PYQT5写一个登陆界面
热门文章
- C语言初学者代码中的常见错误与瑕疵(2)
- 12 个的优秀手机设计灵感
- LeetCode算法题-Reverse Linked List(Java实现)
- 基于复杂方案OWSAP CsrfGuard的CSRF安全解决方案(适配nginx + DWR)
- android报错res\drawable-xhdpi\ic_Dianhua.png: Invalid file name: must contain only [a-z0-9_.]
- symfony note
- MockDialog
- Samba的主配置文件
- 感觉 Mongodb 的操作 还没 mysql 方便 。。。。
- SBO-COMMON库中查各个表的大小的SQL语句