Linux基础 sshd服务
一、sshd的key认证
1.在服务端
设置公钥(相当于是个锁)输入命令:ssh-keygen 生成加密字符,被保存到/root/。ssh/id_rsa.pub.
2.给服务器加密(原始密码认证关闭前加密):输入命令 ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.227
然后输入命令查看:ls -a /root/.ssh/,看是否有authorized_keys这个文件存在,有的话说明加密成功。
3.给客户端分发钥匙:scp /root/.ssh/id_rsa root@172.25.254.127:/root/.ssh/
4.测试:在客户主机或客户端中操作,连接服务器,ssh root@172.25.254.227,连接时发现直接登陆不需要root登陆系统的密码认证。
二、sshd的安全设定。
1. 在服务器关闭原始密码认证。(禁止客户端输入密码的权限)命令:vim /etc/ssh/sshd_config
把78行的这串字符PasswordAuthentication最后边的yes改为no,退出保存。
然后重新启动服务,命令:systemctl restart sshd.service.
测试:在客户端测试,连接服务器,看是否还能输入密码认证。测试成功后,恢复原来的yes。
2.是否允许root用户通过sshd的服务认证。命令:vim /etc/ssh/sshd_config
把48行的这串字符PermitRootLogin最后边的yes改为no,退出保存。
然后重新启动服务,命令:systemctl restart sshd.service.
测试:在客户端测试,看是否root用户允许连接服务器。测试成功后,恢复原来的yes。
3.设定用户白名单,白名单出现默认不在名单中的用户不能使用sshd的认证。(指定某用户连接,其他用户不能连接)命令:vim /etc/ssh/sshd_config
在50行左右编辑加入AllowUsers 用户名(可以多个),退出保存。
然后重新启动服务,命令:systemctl restart sshd.service.
测试:在客户端测试,看除了设定的这个用户之外的其他用户能否连接。测试成功后,注释掉这个设置。
4.设定用户黑名单,黑名单出现默认不在名单中的用户可以使用sshd的认证。(除了这个用户不能连接,其他用户都可以连接)命令:vim /etc/ssh/sshd_config
在50行左右编辑加入DenyUsers 用户名(可以多个),退出保存。
然后重新启动服务,命令:systemctl restart sshd.service.
测试:在客户端测试,看设定的这个用户能否连接,测试成功后,注释掉这个设置。
三、添加sshd登陆信息
vim /etc/motd ,然后输入自己设定的登陆信息,退出保存。文件内容就是登陆后显示的信息
四。用户的登陆审计
1.w 参数 查看正在使用当前系统的用户
-f 查看使用来源
-i 显示ip
( 信息都在 /var/run/utmp)
2.last 查看使用过并退出的用户信息(信息都在/var/log/wtmp里)
lastb 试图登陆但没成功的用户 (信息都在/var/log/btmp里)
五。文件在系统中的传输(这个过程不用ssh连接)
1.scp (复制)
scp file user@ip(服务器):/root/Desktop(桌面路径)上传:将本机文件上传到远程服务器上
scp -r /etc/ user @ip(服务器):/mnt/ 下载:将远程服务器上的文件复制到本机
2.rsync 传输 (远程同步,速度快,默认会忽略,文件属性,链接文件,设备文件,但可以加参数使其把忽略的文件也进行同步传输)
参数: -r 同步目录(rsync -r /mnt/ root@172.25.254.227:/mnt/)
-p 同步权限
-l 同步链接
-o 同步文件所有人
-g 同步文件所有组
-t 同步文件时间戳
-D 同步设备文件
命令:du -sh /etc/ 查文件/目录的大小。
注意:无论是scp还是rsync传输文件,待传输文件是一个目录下多个文件或还有子目录时:
目录后加“/”表示不传输这个目录,只传输目录下的内容。如:rsync /etc/ root@172.25.254.227:/mnt/这将etc目录下的内容传输给了服务器到/mnt/目录下。
目录后不加“/”表示连同这个目录一起传输,如:rsync /mnt root@172.25.254.227:/mnt/这连带etc目录传输给了172.25.254.227到/mnt/。
3.tar 文件归档 (归档文件,把很多个文件变成一个文件)
参数:-c 创建
-f 指定归档文件名称
-v 显示过程
-x 解档
-t 查看归档文件内容
-r 添加文件到归档中
--get 解档指定文件
--delete 删除归档中的指定文件
-C 指定解档目录(放在命令最后)
4.压缩
(1)zip:
zip -r xxx.tar.zip xxx.tar 压缩
unzip xxx.tar.zip 解压
(2)gz:
gzip xxx.tar 压缩
gunzip xxx.tar.gz 解压
==============
tar -zcf xxx.tar.gz /xxx 打包压缩
tar -zxf xxx.tar.gz 解压
(3)bz2
bz2 xxx.tar 压缩
bunzip2 xxx.tar.bz2 解压
=============
tar jcf xxx.tar.bz2 /xxx 打包压缩
tar jxf xxx.tar.bz2 解压
(4)xz
xz xxx.tar 压缩
unxz xxx.tar.xz 解压
=============
tar jcf xxx.tar.xz /xxx 打包压缩
tar jxf xxx.tar.xz 解压
zip无法一步完成打包和压缩,只能先单独归档,再压缩。其他3个可以一步完成。
六。系统日志管理
含义:系统日志是记录系统中硬件,软件和系统问题的信息,同时还可以监视系统中发生的事件,用户可以通过它来检查错误发生的原因,或者寻找受到xx时xx者留下的痕迹,包括系统日志,应用程序日志和安全日志。
1.rsyslog 此服务是用来采集系统日志的,它不产生日志,只是起到采集日志
2.系统日志分类(用cat查看)
cat /var/log/messages 服务信息日志
/var/log/secure 系统登陆日志
/var/log/cron 定时任务日志
/var/log/maillog 邮件日志
/var/log/boot.log 系统启动日志
3.日志类型
auth pam产生的日志
authpriv ssh,ftp等登陆信息的验证信息
cron 时间任务相关
kern 内核
lpr 打印
mail 邮件
mark(syslog)-rsyslog 服务内部的信息,时间标识
news 新闻组相关
user 用户程序产生相关信息
uucp unix to unix copy,unix主机之间的相关通讯
local 1~7 自定义的日志设备
4.日志级别
debug 有调式信息的,日志信息最多
info 一般信息的日志,最常用
notice 最具有重要性的普通条件的信息
warning 警告级别
err 错误级别,阻止某个功能或者模块不能正常工作的信息
crit 严重级别,阻止整个系统或整个软件不能正常工作的信息
alert 需要立刻修改的信息
emerg 内核崩溃等严重信息
none 什么都不记录
注意:从上到下,级别从低到高,记录的信息越来越少
详细可查:man 3 syslog
示例:把系统中所有日志采集到/var/log/westos文件中:
编辑 vim /etc/rsyslog.conf,在文件中加入:
*.* /var/log/westos :wq 退出保存。(前面的*代表什么类型服务日志,后面的*代表什么级别的日志 )
重启服务:systemctl restart rsyslog
测试:systemctl restart sshd 目的为生成日志
cat /var/log/westos 查看此文件中的日志信息
5.日志的传输
在日志发送方:
编辑:vim /etc/rsyslog.conf 在文件中加入:
*.* @172.25.254.227 :wq 退出保存。(@表示udp协议发送,@@表示tcp协议发送)
重启服务:systemctl restart rsyslog。
在日志接收方:
先编辑:vim /etc/rsyslog.conf,开启这两条命令:
15行 $ModLoad imudp 日志接受模块
16行 $UDPS而verRun 514 开启接收端口
重启服务:systemctl restart rsyslog
在关闭防火墙 systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 设定火墙开机关闭(这步可不做)
最后测试:在发送和接收方都清空日志文件
命令:> /var/log/messages
然后在日志的发送方输入:logger test
先在发送方查看日志是否生成:cat /var/log/messages
然后在接收方查看日志是否生成:cat /var/log/messages
注意:假如以上都设定完成以后,还是不能传输,则在接收方输入:> /etc/rc.d/rc.local,然后输入reboot重启命令,在查看原来设置,完成后则可。