远程连接工具Telnet、SSH及Dropbear

1、Telnet

telnet是一种C/S架构协议,监听于TCP的23号端口,在CentOS 6上,telnet的服务器端程序叫telnet-server,客户端程序叫telnet。
服务进程有两种类型:
独立守护进程:自我管理;
超级守护进程:xinetd,服务器托管者,用于托管其它瞬时守护进程,xinetd自己是独立守护进程;
瞬时守护进程:非自我管理,而是由“超级守护进程”代为管理。
xinetd的配置文件位于:/etc/xinetd.conf, /etc/xinetd.d/*

2、SSH

SSH(Secure SHell)是一种C/S架构协议,监听于TCP的22号端口,用于安全地远程登录。
SSH的Server端实现叫OpenSSH(sshd),Client端实现叫做OpenSSH(ssh, scp),Windows上的SSH工具有xshell,securecrt,sshsecureshellclient,putty;
ssh协议版本:V1版不安全,现在普遍用的是V2版。
主机认证:需要用到主机认证密钥;由服务器端维护和提供;
用户登录:用户认证分为:基于口令的认证和基于密钥的认证;
用户提供一对儿密钥,私钥保留在客户端,公钥保留于远程服务器端的用户家目录下。
sshd的配置文件位于/etc/ssh/sshd_config;
ssh的配置文件位于/etc/ssh/ssh_config。
客户端程序:
ssh [options] [user@]host [COMMAND]
ssh [-l user] [options] host [COMMAND]
省略用户名意为使用本地用户名作为远程登录的用户名。
常用选项:
-l user:以指定的用户登录远程主机;
-p port:用于指明远程服务器的端口;
-X:支持X11转发;
-Y:支持信任的X11转发;
X:协议; x-window,C/S架构;
X11转发的作用:在本地显示远程主机上的图形窗口。前提:本地是X图形界面,或者提供了x service;
-o StrictHostKeyChecking=no;
接收的所有认可的服务器列表:~/.ssh/known_hosts
ssh远程连接服务器时的配置选项,定义在/etc/ssh/ssh_config配置文件中;
ssh支持的用户认证方式有基于口令的认证和基于密钥的认证;
(a) 在本地主机生成一对儿密钥:
ssh-keygen [-q] [-b bits] [-t type] [-f output_keyfile] [-P passphrase]
-t {rsa|ecdsa|dsa}:公钥加密算法类型;
-b bits:指明密钥长度;
-P passphrase:私钥加密密码;
-f output_keyfile:生成密钥的保存位置;
(b) 在本地主机上,将公钥复制到要登录的远程主机的某用户的家目录下的特定文件中(~/.ssh/authorized_keys)
ssh-copy-id [-i [identity_file]] [-p port] [-o ssh_option] [user@]hostname
© 测试:ssh user@host
(1)scp命令: 基于ssh连接完成复制
scp [options] SRC... DEST/
scp [options] SRC DEST
存在两种使用情形:
PULL:scp [options] [user@]host:/PATH/TO/SOMEFILE /PATH/TO/SOMEFILE
PUSH:scp [options] /PATH/TO/SOMEFILE [user@]host:/PATH/TO/SOMEFILE
常用选项:
-r:递归复制;
-p:保持原文件的权限信息;
-q:静默模式;
-P PORT:指明远程主机ssh协议监听的端口;
(2)sftp命令
ftp:file transfer protocol,明文;
安全的文件传输机制:
ftps: ftp over ssl
sftp: ftp over ssh
sftp:C/S架构
S:由sshd服务进程管理,是sshd的一个子系统,在centos系统上的openssh上,默认为启动状态,/usr/libexec/openssh/sftp-server;
C:即sftp。
连接至远程主机: sftp user@host
(3)sshd(服务器端)
配置文件:/etc/ssh/sshd_config
格式:配置指令 值
常用指令:

Port  22						
ListenAddress  0.0.0.0
Protocol  2						
PermitRootLogin  yes
UseDNS  no

手册页:

man  sshd_config
man  sshd
man  ssh_config
man  ssh

限制可登录的用户(配置文件):

AllowUsers  user1  user2  user3 ...
AllowGroups  grp1 grp2  ...

DenyUsers  user1  user2  ...
DenyGroups  grp1  grp2  ...

CentOS 6中的服务脚本:/etc/rc.d/init.d/sshd;
CentOS 7中的Systemd Unit File:/usr/lib/systemd/system/sshd.service;

ssh服务的最佳实践:

  1. 不要使用默认端口;
  2. 禁止使用protocol version 1;
  3. 限制可登录的用户;
  4. 设定空闲会话超时时长;
  5. 利用防火墙设置ssh访问策略;
  6. 仅监听特定的IP地址;
  7. 基于口令认证时,使用强密码策略(生成随机密码:# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs);
  8. 使用基于密钥的认证;
  9. 禁止使用空密码;
  10. 禁止root用户直接登录;
  11. 限制ssh的访问频度和并发在线数;
  12. 做好日志,经常分析(日志位于/var/log/secure);

3、dropbear

dropbear是ssh协议的另一个实现,是一种轻量化的实现方案,多用于嵌入式环境中。
常用工具:
dbclient:ssh协议客户端程序;
dbclient [options] [user@]host[/port][,[user@]host/port],...] [command]
dropbearkey:主机密钥生成工具;
dropbearkey -t -f [-s bits]
文件位置可以位于:/etc/dropbear/;
服务端程序:
dropbear
-p [IP:]PORT;
-F: 前台;
-E:将日志发往错误输出。

你可能感兴趣的:(Linux,深入Linux系统架构)