
例如:dmesg |grep tty可以查看开启的接口(串口)
目前连接远程服务器或者直接在服务器上面 *** 作等都是通过创建虚拟终端的形式。比如pts/1 和tty1虚拟终端,其中tty表示直接登录机器生成的而pts表示远程连接生成的。其中远程连接是通过sshd服务进行创建session会话和bash进程(所以可以看到有sshd进程,同时虚拟终端可以创建多个,这是依赖ptmx功能,sshd通过与ptmx通讯,ptmx在和相对应的pts通讯从而达到多个虚拟终端的效果)。
例如:在centos系统中的图像界面中打开的terminal就是一个pts但是整个图形界面是一个tty,centos切换到命令行界面后 输入tty命令时输出就是tty1或ttyn了,这时候的命令行界面与图形界面的运行级别是一样的,通过命令行创建的所有进程都是属于tty1终端的。
注意: tty就是ttyS的虚拟版本,只是不需要通过外部线路进行连接了。远程连接服务器需要sshd服务,sshd和tty没有联系,远程连接是因为本地有终端模拟器,本机连接就需要内核直接模拟一个模拟器了,所有远程是pts,本机是tty 。
从上面的流程中可以看出来对用户空间的程序来说它们没有区别,都是一样的;从内核角度来看pts的另一端连接的是ptmx,而tty的另一端连接的是内核的终端模拟器,ptmx和终端模拟器都只是负责维护会话和转发数据包;再看看ptmx和内核终端模拟器的另一端,ptmx的另一端连接的是用户空间的应用程序,如sshd、tmux等,而内核终端模拟器的另一端连接的是具体的硬件,如键盘和显示器。
SSH远程访问---重点
这里的Terminal可能是任何地方的程序,比如windows上的putty,所以不讨论客户端的Terminal程序是怎么和键盘、显示器交互的。由于Terminal要和ssh服务器打交道,所以肯定要实现ssh的客户端功能。这里将建立连接和收发数据分两条线路解释,为了描述简洁,这里以sshd代替ssh服务器程序:
建立连接:
1Terminal请求和sshd建立连接。
2如果验证通过,sshd将创建一个新的session。
3调用API(posix_openpt())请求ptmx创建一个pts,创建成功后,sshd将得到和ptmx关联的fd,并将该fd和session关联起来。
4同时sshd创建shell进程,将新创建的pts和shell绑定。
收发消息:
1Terminal收到键盘的输入,Terminal通过ssh协议将数据发往sshd。
2sshd收到客户端的数据后,根据它自己管理的session,找到该客户端对应的关联到ptmx上的fd。
3往找到的fd上写入客户端发过来的数据。
4ptmx收到数据后,根据fd找到对应的pts(该对应关系由ptmx自动维护),将数据包转发给对应的pts。
5pts收到数据包后,检查绑定到自己上面的当前前端进程组,将数据包发给该进程组的leader。
6由于pts上只有shell,所以shell的read函数就收到了该数据包。
7shell对收到的数据包进行处理,然后输出处理结果(也可能没有输出)。
8shell通过write函数将结果写入pts。
9pts将结果转发给ptmx。
10ptmx根据pts找到对应的fd,往该fd写入结果。
11sshd收到该fd的结果后,找到对应的session,然后将结果发给对应的客户端。
SSH + Screen/Tmux
常用Linux的同学应该对screen和tmux不陌生,通过它们启动的进程,就算网络断开了,也不会受到影响继续执行,下次连上去时还能看到进程的所有输出,还能继续接着干活。 这种情况要稍微复杂一点,不过原理都是一样的,前半部分和普通ssh的方式是一样的,只是pts/0关联的前端进程不是shell了,而是变成了tmux客户端,所以ssh客户端发过来的数据包都会被tmux客户端收到,然后由tmux客户端转发给tmux服务器,而tmux服务器干的活和ssh的类似,也是维护一堆的session,为每个session创建一个pts,然后将tmux客户端发过来的数据转发给相应的pts。由于tmux服务器只和tmux客户端打交道,和sshd没有关系,当终端和sshd的连接断开时,虽然pts/0会被关闭,和它相关的shell和tmux客户端也将被kill掉,但不会影响tmux服务器,当下次再用tmux客户端连上tmux服务器时,看到的还是上次的内容。服务名称 功能 默认 建议 备注说明
NetworkManager 用于自动连接网络,常用在Laptop上 开启 关闭 对服务器无用
abrt-ccpp 开启 自定 对服务器无用
abrt-oops 开启 自定 对服务器无用
abrtd 开启 自定 对服务器无用
acpid 电源的开关等检测管理,常用在Laptop上 开启 自定 对服务器无用
atd 在指定时间执行命令 开启 关闭 如果用crond,则可关闭它
auditd 审核守护进程 开启 开启 如果用selinux,需要开启它
autofs 文件系统自动加载和卸载 开启 自定 只在需要时开启它,可以关闭
avahi-daemon 本地网络服务查找 开启 关闭 对服务器无用
bluetooth 蓝牙无线通讯 开启 关闭 对服务器无用
certmonger 关闭 关闭
cpuspeed 调节cpu速度用来省电,常用在Laptop上 开启 关闭 对服务器无用
crond 计划任务管理 开启 开启 常用,开启
cups 通用unix打印服务
开启 关闭 对服务器无用
dnsmasq dns cache 关闭 关闭 DNS缓存服务,无用
firstboot 系统安装后初始设定 关闭 关闭
haldaemon 硬件信息收集服务 开启 开启
ip6tables ipv6防火墙 开启 关闭 用到ipv6网络的就用,一般关闭
iptables
ipv4防火墙 开启 开启 ipv4防火墙服务
irqbalance cpu负载均衡 开启 自定 多核cup需要
kdump 硬件变动检测 关闭 关闭 服务器无用
lvm2-monitor lvm监视 开启 自定 如果使用LVM逻辑卷管理就开启
matahari-broker 关闭 关闭 此服务不清楚,我关闭
matahari-host 关闭 关闭 此服务不清楚,我关闭
matahari-network 关闭 关闭 此服务不清楚,我关闭
matahari-service 关闭 关闭 此服务不清楚,我关闭
matahari-sysconfig 关闭 关闭 此服务不清楚,我关闭
mdmonitor 软raid监视 开启 自定
messagebus 负责在各个系统进程之间传递消息 开启 开启 如停用,haldaemon启动会失败
netconsole 关闭 关闭
netfs 系统启动时自动挂载网络文件系统 开启 关闭 如果使用nfs服务,就开启
network 系统启动时激活所有网络接口 开启 开启 网络基础服务,必需!
nfs 网络文件系统 关闭 关闭 nfs文件服务,用到就开启
nfslock nfs相关 开启 关闭 nfs相关服务,用到就开启
ntpd 自动对时工具 关闭 自定 网络对时服务,用到就开启
ntpdate 自动对时工具 关闭 关闭
oddjobd 与D-BUS相关 关闭 关闭
portreserve RPC 服务相关 开启 自定 可以关闭
postfix 替代sendmail的邮件服务器 开启 自定 如果无邮件服务,可关闭
psacct 负荷检测 关闭 关闭 可以关闭
qpidd 消息通信 开启 开启
quota_nld 关闭 关闭 可以关闭
rdisc 自动检测路由器 关闭 关闭
restorecond selinux相关 关闭 关闭 如果开启了selinux,就需开启
rpcbind 开启 开启 关键的基础服务,nfs服务和桌面环境都依赖此服务!相当于CentOS 5x里面的portmap服务。
rpcgssd NFS相关 开启 关闭 NFS相关服务,可选
rpcidmapd RPC name to UID/GID mapper 开启 关闭 NFS相关服务,可选
rpcsvcgssd NFS相关 关闭 关闭 NFS相关服务,可选
rsyslog 提供系统的登录档案记录 开启 开启 系统日志关键服务,必需!
saslauthd sasl认证服务相关 关闭 关闭
smartd 硬盘自动检测守护进程 关闭 关闭
spice-vdagentd 开启 开启
sshd ssh服务端,可提供安全的shell登录
开启 开启 SSH远程登录服务,必需!
sssd 关闭 关闭
sysstat 开启 开启 一组系统监控工具的服务,常用
udev-post 设备管理系统 开启 开启
wdaemon 关闭 关闭
wpa_supplicant 无线认证相关 关闭 关闭
ypbind network information service客户端 关闭 关
aix中如何重启sshd服务:
查看ssh服务状态
# lssrc -s sshd
Subsystem Group PID Status
sshd ssh 3866742 active
停止和启动 ssh 服务
# stopsrc -t sshd
# startsrc -t sshd
建议通过console连接,不然停止ssh后网络连接就断开连不上了。
AIX:
1AIX (Advanced Interactive eXecutive)是IBM基于AT&T Unix System V开发的一套类UNIX *** 作系统,运行在IBM专有的Power系列芯片设计的小型机硬件系统之上。
2它符合Open group的UNIX 98行业标准(The Open Group UNIX 98 Base Brand),通过全面集成对32-位和64-位应用的并行运行支持,为这些应用提供了全面的可扩展性。它可以在所有的IBM ~ p系列和IBM RS/6000工作站、服务器和大型并行超级计算机上运行。
1、设置防火墙开放SSH端口2、检查SSH服务是否已经启动,service sshd status 如果没有启动则启动该服务 service sshd start
3、检查SSH配置文件中是否设置了禁止root用户远程登录一般原因是sshd没有开启,建议打开sshd进程,或者是ssh做了限制。
这种情况算是比较难搞定的一般可以按照底下的方法是下:1检查/etc/hostsdeny和/etc/hostsallow里面是否屏蔽了某些帐户。2删除/ssh/known_hosts里面的相关服务器条目试一下。3在某些发行版上升级glibc或openssl等软件包以后需要重启一下sshd。4由于ssh试探或者ssh连结数太多,/etc/ssh/sshd_config里面的MaxStartups默认参数配置不够。SSH、DHCP和Telnet服务 SSH、DHCP和Telnet服务 一、Linux下两大服务 11 独立服务 独立的进程和独立的启动脚本 启动方式 /etc/initd/xxx start或者/etc/rcd/initd/xxx start或者service xxx start 12 依赖服务 注意:RHEL7/Centos7服务的管理方式不一样 没有独立的启动脚本,依赖于xinetd服务(xinetd服务本身是一个独立服务) 启动方式 必须启动xinetd服务 13 什么是xinetd服务 Extended internet daemon(扩展的网络守护进程),又叫超级Internet服务,常用来管理多种轻量级Internet服务; 作用:唤醒在睡觉的服务,由xinetd管理的服务只有在用到的时候才被唤醒,平时不占用系统资源;支持Tcp_Wrappers一种安全策略机制。 TCP_Wrappers简介: TCP_Wrappers是一个工作在应用层的安全工具,它只能针对某些具体的应用或者服务起到一定的防护作用。比如说ssh、FTP等服务的请求,都会先受到TCP_Wrappers的拦截。 TCP_Wrappers工作原理: TCP_Wrappers有一个守护进程叫作tcpd。以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件/etc/hostsallow和/etc/hostsdeny;合乎要求,则会把这次连接原封不动的转给真正的sshd进程,sshd完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。ssh 为 secure shell 的英文缩写,是一种加密的网络传输协议。常用于登录远程服务器与在远程服务器上执行命令。
SSH 使用客户端-服务器模型,标准端口为 22。服务器端需要开启 SSH 守护进程接受远端的连接,而用户需要使用 SSH 客户端与服务端连接。
最常见的开源实现是 OpenSSH
登录:
在远程机器上执行 command,把 stdout,stderr 送回来然后断开连接:
常用参数:
scp 是一个命令行工具,是英文 secure copy 的缩写,用于在服务器和客户端之间传输文件, *** 作类似cp。
使用注意点:远程主机名后要加个冒号再跟路径。如:
SSH 以非对称加密实现身份验证。身份验证有多种途径,可以使用密码来认证,也可以通过实现配置好的密钥文件来认证。
通过密钥认证登录的条件:
我们通常使用 ssh-keygen 这个工具来生成公钥和私钥,如下:
这会生成两个文件 ~/ssh/id_rsa 和 ~/ssh/id_rsapub ,前者是私钥,我们应该小心保护,后者是公钥,应当将其放到服务端的 ~/ssh/authorized_keys 中去,我们可以使用 ssh-copy-id 这个工具来完成:
或者手动将其复制粘贴过去。
也可以使用如下命令:
跳板机,又常叫做“Bastion host”。
在企业中,业务服务器通常有 ip 限制,不允许直接从办公机登录,而是需要先登录一个跳板机,通过跳板机来登录业务服务器。
这样做的目的是:隔离内部网络,只允许从跳板机访问,那么我们只需要特别关注跳板机的安全配置就可以了,便于更好的进行安全控制。
我们可以配置 ssh 客户端,让 ssh 替我们处理跳板机的登录,避免多次输入命令的负担。
假设我们有跳板机 jumpserver 和 目标服务器 targetserver。
方法一、使用命令行的 -J 参数
方法二、配置文件: ~/ssh/config
然后就可以直接:
sshd 的配置文件: /etc/ssh/sshd_config 。
我们可以修改 sshd 的默认配置来增强系统的安全性,以下是一些需要注意的配置项:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)