1)作为yum仓库服务器,提供全网服务器的软件下载
2)跳板机,操作审计
3)VPN(PPTP)
4)监控(nagios,zabbix)
5)兼职批量分发和管理
外网IP 10.0.0.61/24
内网IP 172.16.1.61/24
主机名规划 m01
hostaname mo1
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=m01
su -
vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
/etc/init.d/network restart
ssh在进行数据传输之前,ssh先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输,确保了传递的数据安全。
ssh是专为远程登录会话和其他网络服务提供的安全性协议,利用ssh协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用ssh协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。
在默认状态下,ssh服务主要提供两个服务功能,一个是提供雷士Telnet远程联机服务器的服务,即上面提到的ssh服务,另一个类似FTP服务的sftp-server,借助ssh协议来传输数据的,提供更安全的SFTP服务(vsftp,proftp)
特别提醒:SSH客户端(SSH命令)还包含一个很有用的scp,也是通过SSH协议工作的。
1)服务器防火墙iptanles; /etc/init.d/iptables stop
2)SSH服务有问题
3)客户端到服务器端的线路有问题。
ping 10.0.0.245
1)SSH是安全的加密协议,用于远程连接Linux服务器。
2)SSH默认端口是22,安全协议版本SSH2,除了2之外还有SSH1(有漏洞)。
3)SSH服务端主要包含两个服务功能SSH远程连接和 SFTP 服务。
4)Linux SSH客户端包含SSH远程连接命令,以及远程拷贝scp命令等。
[root@m01 ~]# rpm -qa openssh openssl
openssl-1.0.1e-48.el6_8.3.x86_64
openssh-5.3p1-118.1.el6_8.x86_64
在客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于密码的安全验证),知道帐号和密码,就可以登录到远程主机,并且所有传输的数据都会被加密。但是,可能会有别的服务器在冒充真正的服务器,无法避免被“中间人”攻击。
第二种级别(基于密钥的安全验证),需要依靠密钥,也就是你必须为自己创建一对密钥,并把公有密钥放在需要访问的服务器上。客户端软件会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在你在该服务器的用户根目录下寻找你的公有密钥,然后把它和你发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有密钥加密“质询”(challenge)并把它发送给客户端软件。从而避免被“中间人”攻击。
在服务器端,SSH也提供安全验证。 在第一种方案中,主机将自己的公用密钥分发给相关的客户端,客户端在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据,从而实现主机密钥认证,确保数据的保密性。 在第二种方案中,存在一个密钥认证中心,所有提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户端的主机则只要保存一份认证中心的公开密钥就可以了。在这种模式下,客户端必须访问认证中心然后才能访问服务器主机。
lsof -i :22
netstat -lntup|grep oldboy
修改SSH服务的运行参数,是通过修改/etc/ssh/sshd_config SSH配置文件实现的。
一般来说SSH服务使用的默认的配置已经能够很好的工作了,如果对安全要求不高,仅仅提供SSH服务的情况,可以不需要修改任何配置。
cp /etc/ssh/sshd_config{,.ori}
#操作之前先备份,
ll /etc/ssh/sshd_config*
1)Port 52113 SSH连接默认端口为22,因此,为了提高安全级别,建议改掉它。
指定sshd守护进程监听的端口号,默认为22。默认在本机的所有网络接口上监听,也可以通过ListenAddress 指定只在某个特定的接口上监听。
端口分为:0-65535,不能和已有的服务端口冲突。一般建议改为比1025大的端口。
ListenAddress 172.16.1.61:52113 指定能登录的网段和端口
2)PermitRootLogin no root超级用户要禁止他远程登录能力。
是否允许root登录,可用值如下:
yes:表示允许。
no:表示禁止。
without-password:表示禁止使用密码认证。
forced-commands-only:表示只有在指定了command选项的情况下才允许使用公钥认证登录,同时其他认证方法全部被禁止,这个值常用于做远程备份之类的事情
3)PermitEmptyPasswords no
是否允许密码为空的用户远程登录。默认为:no。
4)UseDNS no 不使用DNS。
指定sshd是否应该对远程主机名进行反向解析,以检查此主机名是否与其IP地址真是对应。默认值为:yes。建议改成:no ,否则可能会导致ssh连接很慢。
5)GSSAPIAuthentication no #GSSAPIAuthentication yes
解决Linux之间使用ssh远程连接慢的问题。
将以上信息更改后,保存退出。
执行如下命令重启sshd,使修改的配置生效:
reload为平滑重启,不影响正在SSH连接的其他用户,因此要好于restart。
/etc/init.d/sshd reload
/etc/init.d/sshd restart
除了手工操作之外,也可以通过命令行批量修改对应的参数,命令集如下:
echo "#--------sshConfig修改ssh默认登录端口,禁止root登录----------#"
\cp /etc/ssh/sshd_config /etc/ssh/sshd_config.`date +"%F%H%M%S"`
sed -i ‘s%#Port 22%Port 52113%‘ /etc/ssh/sshd_config
sed -i ‘s%#PermitRootLogin yes%PermitRootLogin no%‘ /etc/ssh/sshd_config
sed -i ‘s%#PermitEmptyPasswords no%PermitEmptyPasswords no%‘ /etc/ssh/sshd_config
sed -i ‘s%#UseDNS yes%UseDNS no%‘ /etc/ssh/sshd_config
sed -i ‘s%GSSAPIAuthentication yes%GSSAPIAuthentication no%‘ /etc/ssh/sshd_config
egrep "UseDNS|52113|RootLogin|EmptyPass|GSSAPIAuthentication" /etc/ssh/sshd_config
/etc/init.d/sshd reload
还可以通过sed命令快速增加参数内容,如下:
[root@m01 ~]# cd /etc/ssh/
[root@www ssh]# sed -ir ‘13 iPort 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no‘ /etc/ssh/sshd_config
[root@www ssh]# sed -n ‘13,17p‘ /etc/ssh/sshd_config
Port 52113
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
[root@m01 ssh]# diff sshd_config sshd_config.ori
#比较修改后的区别。
vimdiff sshd_config sshd_config.ori
:q! (退出)
注意,在重启sshd后,当前的CRT仍然可以连接服务器,直到退出重新登录为止。
1)通过防火墙,只允许内网连接
2)通过SSH只监听内网IP、
useradd oldboy
echo 123456 |passwd --stdin oldboy
MacdeMacBook-Pro:~ mac$ ssh -p52113 oldboy@172.16.1.61
phenixikki.blog.51cto.com/7572938/1546669
1)用密钥登录,不用密码登录。
2)牤牛阵法:解决SSH安全问题;
防火墙封闭SSH,指定源限制(局域网,信任公网)
开启SSH只监听本地内网IP(ListenAddress 10.0.0.8)
3)尽量不给服务器外网IP
ssh -p52113 oldboy@10.0.0.61 [命令]
# ssh连接远程主机的基本语法:
# -p (小写)接端口,默认22端口时可以省略。
# @ 前面为用户名,如果当前用户连接,可以不指定用户名。
# @ 后面为要连接的服务器IP,更多用法 man ssh。
1)直接登录远程主机的方法; 在未禁止root远程登录及更改ssh端口前的登录方法为: ssh -p22 root@10.0.0.61
2)也可以直接接上命令。 ssh -p52113 oldboy@10.0.0.61 /sbin/ifconfig eth0
ssh: connect to host 10.0.0.61 port 2113: Connection refused
报错字符串对应的可能问题:
1)no route to host 可能为防火墙影响
2)Connection refused 额能为防火墙,还可能是连接的对端服务没开或端口改变了。
1)切换到别的机器上 ssh -p52113 user@ip (user@hostname [command])
2)到其他机器执行命令(不会切到机器上)ssh -p52113 user@ip 命令(命令全路径)
3)当第一次ssh连接的时候,本地会产生一个密钥文件 ~/.ssh/known_hosts (多个密钥)。
scp的基本语法使用:scp -secure copy(remote file copy program)
每次都是全量拷贝,增量拷贝rsync。
推:PUSE
[root@nfs01 ~]# scp -P52113 -rp /etc oldboy@10.0.0.61:/tmp/
拉:PULL
scp -P22 -rp root@10.0.0.61:/tmp/oldboy /opt/
-P (大写,注意和ssh命令的不同)接端口,默认22端口时可以省略;
-r 递归,表示拷贝目录
-p 表示子啊拷贝前后保持文件或目录的属性:
-l limit 限制速度。
注意:拷贝权限为连接的用户对应的权限。
特别提醒:scp接端口号时需要用P (大写),-r表示复制目录,-p表示拷贝过程中保留文件或目录的原始属性。
1——scp是加密的远程拷贝,而cp 仅为本地拷贝。
2——可以把数据从一台机器推送到另一台机器上,也可以从其他服务器把数据拉回到本地执行命令的服务器。
3——每次都是全量完整拷贝,因此,效率不高,适合第一次拷贝,如果需要增量拷贝,用rsync.
SSH服务除了远程连接机器外,还有一个安全FTP的功能,即通过ssh加密数据后进行传输。
1)rz,sz,(lrzsz).
2)winscp winscp-v4-.0.5 《————基于SSH sftp
3)SFX(xshell)
4)SFTP 《————基于SSH加密传输
5)Samba,http,FTP,NFS。
FTP工具:vsftp,proftpd,Sftp
登录FTP的方法就是 sftp oldboy@10.0.0.61 如果ssh端口为52113则登录命令如下:
[root@nfs01 ~]# sftp -oPort=52113 oldboy@10.0.0.61
Connecting to 10.0.0.61...
oldboy@10.0.0.61‘s password:
sftp> ls
sftp> pwd
Remote working directory: /home/oldboy
# 可以看到当前目录是61的/home/oldboy目录下。
sftp> put /etc/hosts
# 把/etc/hosts从客户端本地传到sftp服务器当前连接目录,即/home/oldboy.
Uploading /etc/hosts to /home/oldboy/hosts
/etc/hosts
sftp> put /etc/hosts /tmp
Uploading /etc/hosts to /tmp/hosts
/etc/hosts
# 也可以传到指定的目录下。
sftp> ls -l /home/oldboy
-rw-r--r-- 1 oldboy oldboy 349 Jan 26 15:02 hosts
# 还可以像系统命令行那样查看目录内容
sftp> mkdir /tmp/ett
# 也可以创建目录
sftp> cd /tmp
sftp> pwd
Remote working directory: /tmp
# 还可以切换目录
sftp> get /etc/ /tmpget /etc/ /tmp
1)Linux下连接命令sftp -oPort=52113 oldboy@10.0.0.61
2)上传put加客户端本地路径put /etc/hosts
3)下载get服务端的内容get hosts ,Linux下载到本地连接前的目录, 也可以指定路径下载:get hosts /etc/ (安全风险,需要控制,作业)
4)连接到的远程家目录为默认目录,也可以切换到其他有权限的目录下。
思考:5)如何把sftp用户登录的目录限制到指定的目录。
1)ssh为加密的远程连接协议。了解 ssh协议原理。
2)默认端口22
3)协议版本1.x和2.x,2x更安全,了解ssh协议原理。
4)服务端ssh远程连接服务,sftp服务,sshd守护进程,开机需要自启动。
5)ssh客户端包含ssh,scp,sftp命令。
6)ssh安全验证方式:口令和密钥,这两种都是基于口令的,SSH密钥登录的原理。
7)ssh服务安全优化,修改默认端口22,禁止root远程连接,禁止dns,ssh只监听内网IP。
原文:http://www.cnblogs.com/aofo/p/6379582.html