unix 文件加密 Linux_SSH服务应用
简介
SSH是 "Secure Shell"的缩写,是建立在应用层和传输层基础上的一种安全协议,方便跨平台访问,常用于Linux服务器远程加密登录unix 文件加密,同时可以借助ssh协议来传输数据,提
目录 简介 SSH是 "Secure Shell"的缩写,是建立在应用层和传输层基础上的一种安全协议,方便跨平台访问,常用于Linux服务器远程加密登录unix 文件加密,同时可以借助ssh协议来传输数据,提供更安全的SFTP服务。 SSH服务安装 查看openssh安装情况: rpm -qa openssh* 如果不存在的话需要先进行安装 安装 Centos系列运行命令安装: yum install -y openssh 或 yum install openssh-server -y 或 yum install openssh* 当然,安装软件操作需要root权限运行 Debian系列运行命令安装: apt-get install openssh-server 或 apt-get install openssh* SSH配置文件 安装完成后配置文件路径在: /etc/ssh/ ls /etc/ssh #查看 这里有两个配置文件需要区分一下: /etc/ssh/ssh_config #ssh客户端配置文件 /etc/ssh/sshd_config #ssh服务端配置文件 通常需要配置的就是 '/etc/ssh/sshd_config' 文件 最后在改动之前进行一下备份 cp -p /etc/ssh/sshd_config/etc/ssh/sshd_config.bak cp cp命令用于复制文件 常用参数: -a #复制目录时使用,保留链接、文件属性,并复制目录下的所有内容 -d #复制时保留链接。相当于 Windows 系统的快捷方式 -f #覆盖已经存在的目标文件而不给出提示 -i #覆盖目标文件之前给出提示,要求用户确认是否覆盖 -p #除复制文件的内容外,同时复制时间和访问权限到新文件 -r #若源文件是一个目录文件,将复制该目录下所有的子目录和文件 -l #不复制文件,只生成链接文件 sshd_config文件内容: Port 22 #监听端口,默认22,可随意更改 #AddressFamily any #IPV4和IPV6协议使用,any表示二者同时使用 ListenAddress 0.0.0.0 #IPV4,0.0.0.0表示本机的所有地址 #ListenAddress :: #IPV6 PermitRootLogin yes #允许管理员登录,yes允许,no拒绝 PermitEmptyPasswords no #是否允许空密码用户登录 PasswordAuthentication yes #是否允许基于密码登录 SSH登录系统 SSH提供基于口令(密码)的安全验证和基于密匙的安全验证方式。 基于密码的安全验证 只要你知道自己帐号和对应的密码,就可以通过ssh服务登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,比如蜜罐。 比如这里我这里使用用户名 'root' ,密码 'root' ,登录cnentos: 没有做过多限制的话,只有用户名和密码正确即可通过ssh服务登录。 -l #登录的用户名 -p #连接的端口 基于密匙的安全验证 将自己的公钥储存在远程主机上,登录的时候远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不用在输入密码即可成功登录到系统。 sshd_config配置文件需要配置: PubkeyAuthentication yes #公钥验证开启 AuthorizedKeysFile .ssh/authorized_keys #私钥文件路径,公钥发给客户端 PasswordAuthentication no #禁用密码验证登录 首先生成一个秘钥文件 ssh-keygen 这里我是在本地windows中生成的所以是 'ssh-keygen.exe' 中间不用输入使用默认即可 id_rsa #私钥 id_rsa.pub #公钥 然后将本机的公钥文件复制到远程机器的用户家目录下保存到'.ssh/authorized_keys' 文件中 这里我是直接使用的ssh终端软件将id_rsa.pub文件进行的sftp文件传输到ssh服务主机的root家目录下 因为这里没有 ‘.ssh’ 文件夹,所以这里先新建了一个 随后将 'id_rsa.pub' 文件中的内容保存为'.ssh' 文件夹下的 'authorized_keys' 然后重启了一下ssh服务 最后运行命令验证秘钥后没有输入用户密码直接登录到了ssh服务主机 当然,这里我没有更改任何的文件夹及文件的权限,至于网上很多说需要更改 '.ssh' 权限的设置自己可以去尝试一下: chmod 700 .ssh chmod 600 .ssh/authorized_keys 在说明一下,这里我是在windows主机上传输文件到linux主机,如果直接两台linux主机上进行文件传输可以使用scp命令,当然windows上也支持scp命令,但是好像只能使用ssh服务的默认22端口,我这里是映射出来的端口在2222,进过尝试无法完成,所以采用sftp直接上传文件了 scp scp:'secure copy' ,命令是 linux 系统下基于 ssh 登陆进行安全的远程复制文件和目录命令。 常用参数: SSH命令参数 ssh user@]host [command] ssh 192.168.217.128 #windows命令行中不加用户名默认使用当前系统用户名 #linux中不假用户名默认使用root用户 参数: -b #指定连接的源IP -g #允许远程主机连接主机的转发端口 -i #指定私钥文件 -l #指定连接远程服务器登录用户名 -N #不执行远程指令 -p #指定远程服务器上的端口 -q #静默模式 -X #开启X11转发功能 -x #关闭X11转发功能 -t #不分配伪终端 SSH隐身登录 ssh -T root@192.168.217.128 /bin/bash -i -T #不分配伪终端 -i #bash的参数,表示交互式shell 这里以kali为例: 目前只打开了一个终端 通过windows使用ssh添加一个会话后 使用 'w' 和 'who' 命令查看当前已经多出来一个用户在线 尝试运行命令: ssh ling@192.168.217.128 -T /bin/bash -i 此时在运行'w' 和 'who' 命令但是没有检测出新加入的ssh连接从而达到隐身登录的目的。 SSH端口转发 SSH能够将其他TCP端口的网络数据通SSH链接来转发,并且自动提供了相应的加密及解密服务。SSH为其他TCP链接提供了一个安全的通道来进行传输,如果工作环境许中的防火墙限制了一些网络端口的使用,但是允许SSH的连接,那么就能够将通过ssh将TCP用端口转发来使用SSH进行通讯。 -L #本地转发 -R #远程转发 -f #后台启用 -N #不打开远程shell(不加-N则直接登录进去) -g #启用网关功能 本地转发 ssh -L 本地端口:连接主机:连接主机端口 转发的主机 ssh -L 8888:192.168.217.128:22 192.168.217.128 将本地8888端口通过192.168.217.128转发至192.168.217.128主机的22端口 运行命令之后本机和192.168.217.128主机建立了一个tcp连接用于转发 这时候在本地从新打开一个终端并尝试运行ssh命令连接本地8888端口 ssh 127.0.0.1 -p 8888 -l root 这个时候连接上的同样是kali主机 SSH日志信息 cat /var/log/auth.log #ubuntu cat /var/log/secure #centos cat /var/log/auth.log |grep "Accept" #登录成功的日志 cat /var/log/auth.log |grep "pam_unix(sshd:session): session closed" #正常退出的日志 cat /var/log/auth.log | grep "Failed password for" #登录失败日志 sudo grep "Failed password" /var/log/auth.log|perl -e 'while($_=){ /for(.*?)from/; print"$1\n";}'|sort|uniq -c|sort -nr #统计登录失败的用户名及次数 sudo cat /var/log/auth.log | grep "Failed password for" |grep "root" | grep -Po '(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])(\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)){3}'|sort|uniq -c|sort -nr #统计登录者的Ip和次数(这里用的是root) cat /var/log/auth.log | grep "Failed password for"| grep "invalid" | cut -d " " -f 11 | sort | uniq -c | sort -nr #统计不存在的用户名及错误登录次数 SSH暴力破解 hydra -L users.txt -P password.txt -t 5 -vV -o ssh.txt -e ns 192.168.217.128 ssh hydra -L user.txt -P pass.txt -t 20 -vV ssh://192.168.217.128 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |