关于linux中安全方面的一些笔记(代码片段)

山河已无恙 山河已无恙     2023-01-15     474

关键词:

写在前面


  • 笔记是学习整理的,大都老师讲课内容,适合温习,不适合新手。整理了一份,希望对小伙伴有帮助.
  • 生活加油,天天开心!博文主要围绕以几个方面:
    • Linux基本防护:账户安全、文件系统安全、关闭不需要的服务
    • 用户切换与提权su和sudo,
    • sshd访问控制
    • 加密与解密/对称加密、非对称加密、信息摘要
    • AIDE入侵检测
    • 端口扫描

一、Linux基本防护

一、Linux基本防护
账户安全:设置账户有效期,锁定与解锁账户密码,修
改登陆信息
文件系统安全:修改
文件 ATTR属性,设置mount挂载
关闭不需要的服务

设置账号有效期
使用chage工具
-d 0, 强制修改密码
-E yyyy-mm-dd,指定失效日期(-1 取消)

##创建账户dachui
[root@liruilong ~]# useradd dachui
####查看账户dachui的过期时间
[root@liruilong ~]# chage -l dachui
最近一次密码修改时间 :8月 18, 2020
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不 ##永不过期
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
###-E 指定账户dachui的过期时间
[root@liruilong ~]# chage -E 2029-10-01 dachui
[root@liruilong ~]# chage -l dachui
最近一次密码修改时间 :8月 18, 2020
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :10月 01, 2029 ##过期时间指定
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
###-E 后跟数字-1,代表取消账户的过期时间设置
[root@liruilong ~]# chage -E -1 dachui
[root@liruilong ~]# chage -l dachui
最近一次密码修改时间 :8月 18, 2020
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不 ##账户永不过期
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7

设置强制要求用户修改密码 -d 0 案例

########设置强制要求用户修改密码 -d 0 案例
##第一步:给用户dachui设置密码
[root@liruilong ~]# echo 123456 | passwd --stdin dachui
更改用户 dachui 的密码 。
passwd:所有的身份验证令牌已经成功更新。
##第二步:使用dachui用户远程本机
[root@liruilong ~]# ssh dachui@127.0.0.1
......
dachui@127.0.0.1 s password: #输入密码123456
[dachui@liruilong ~]$ #可以登录,ctrl + D 退出
##第三步:管理员设置dachui用户必须修改密码,否则无法登录
[root@liruilong ~]# chage -d 0 dachui
##第四步:重新使用dachui用户远程本机,需要重新设置密码
#因为是普通用户,权限低,所以密码必须是8位以上,字母和数字(tarena123)
[root@liruilong ~]# ssh dachui@127.0.0.1
dachui@127.0.0.1s password: #输入密码123456
You are required to change your password immediately (root enforced)
Last failed login: Tue Aug 18 08:38:45 CST 2020 from localhost on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Tue Aug 18 08:33:19 2020 from localhost
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user dachui.
Changing password for dachui.
(current) UNIX password: #输入以前的密码123456
New password: #设置新的密码为123,太过简单无法通过
BAD PASSWORD: The password is too similar to the old one
New password: #设置新的密码为654321,密码最少是8位
BAD PASSWORD: The password is shorter than 8 characters
New password: #设置新的密码:tarena123
Retype new password: #重新输入新密码:tarena123
passwd: all authentication tokens updated successfully.
Connection to 127.0.0.1 closed.
#第五步:重新使用账户dachui远程本机
[root@liruilong ~]# ssh dachui@127.0.0.1
dachui@127.0.0.1s password: #输入密码:tarena123
Last login: Tue Aug 18 08:38:49 2020 from localhost
[dachui@liruilong ~]$ #ctrl + D 登出

账号的锁定/解锁

使用passwd命令: -l 锁定、-u 解锁、-S 看状态

####-S(大写) 查看用户dachui密码的状态
[root@liruilong ~]# passwd -S dachui
dachui PS 2020-08-18 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
###-l 锁定dachui账户
[root@liruilong ~]# passwd -l dachui
锁定用户 dachui 的密码 。
passwd: 操作成功
####-S(大写) 查看用户dachui密码的状态,密码被锁定,无法登录使用
[root@liruilong ~]# passwd -S dachui
dachui LK 2020-08-18 0 99999 7 -1 (密码已被锁定。)
###使用账户dachui远程本机,无法登录
[root@liruilong ~]# ssh dachui@127.0.0.1
dachui@127.0.0.1's password: #密码为: tarena123
Permission denied, please try again.
dachui@127.0.0.1's password:
###-u 解锁dachui账户
[root@liruilong ~]# passwd -u dachui
解锁用户 dachui 的密码。
passwd: 操作成功
###重新使用账户dachui远程本机,可以登录
[root@liruilong ~]# ssh dachui@127.0.0.1
dachui@127.0.0.1s password: #密码为: tarena123
Last failed login: Tue Aug 18 08:55:30 CST 2020 from localhost on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Tue Aug 18 08:46:50 2020 from localhost
[dachui@liruilong ~]$ #ctrl + D 退出登录
Connection to 127.0.0.1 closed.
#####-S(大写) 重新查看用户dachui密码的状态,已解锁
[root@liruilong ~]# passwd -S dachui
dachui PS 2020-08-18 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

强制定期修改密码

  • 配置文件 /etc/login.defs
  • 主要控制属性
主要控制属性
PASS_MAX_DAYS —》 用户密码的最长有效期
PASS_MIN_DAYS —》 用户密码的最短有效期
PASS_WARN_AGE —》 用户密码过期的前几天会发送警告信息
#######此管理用户密码的操作,只会对后面创建的用户生效,以前的则不影响
[root@liruilong ~]# vim /etc/login.defs
......
25 PASS_MAX_DAYS 60 #一个密码最长可以使用60天
26 PASS_MIN_DAYS 0 #一个密码最少要用多少天,否则无法修改,0不设置
27 PASS_MIN_LEN 5 #密码的最少长度为5
28 PASS_WARN_AGE 7 #密码过期的前7天,对用户发送警告信息
......
#####对当前用户的密码进行管理,/etc/shadow 为用户密码的配置文件
###用户密码的最长有效期为99999,可以直接修改配置文件对以前的用户进行密码管理
[root@liruilong ~]# cat /etc/shadow | head -3
root:$6$l2XJYza/aL1Ug4Ta$4kBxc4ED.pyWbBR5Yg3XVX/3lT3S0Efuh4eNxC83AdIlYDeEzcafsbV
8YkVo88T0W/vVDTxpYtiFceiUM9qQk0::0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::

伪装登录提示

伪装登录提示
配置文件 /etc/issue、/etc/issue.net
分别使用于本地、远程登录
默认会提示内核、系统等版本信息

这个 centos7 可能有点问题,可以写到 .bashrc 文件里:.bashrc文件通常也是通过某个bash启动文件来运行的。因为.bashrc文件会运行两次:一次是 当你登入bash shell时,另一次是当你启动一个bash shell时。如果你需要一个脚本在两个时刻都得 以运行,可以把这个脚本放进该文件中。

#####修改本地用户登录的提示信息
[root@liruilong ~]# vim /etc/issue
Welcome to Tedu
#####修改网络用户登录的提示信息,远程登录时显示,ssh默认关闭此功能
##可以不修改
[root@liruilong ~]# vim /etc/issue.net
Welcome to Ted

文件系统安全

锁定/解锁保护文件

  • 文件属性控制chattr、lsattr
  • +、- 控制方式
    • 属性i不可变 (immutable)
    • 属性a: 仅可追加(append only)

######创建一个测试文件
[root@liruilong ~]# vim test.sh
hello the world
ni hao.
#########文件如果有i的属性,则对于此文件,增删改查均无法操作
##lsattr 查看文件的属性
[root@liruilong ~]# lsattr test.sh
---------------- test.sh
##chattr 给文件test.sh增加i的属性
[root@liruilong ~]# chattr +i test.sh
##查看文件test.sh属性
[root@liruilong ~]# lsattr test.sh
----i----------- test.sh
##测试,写入操作和删除操作都无法进行
[root@liruilong ~]# echo 123 > test.sh
-bash: test.sh: 权限不够
[root@liruilong ~]# rm -rf test.sh
rm: 无法删除"test.sh": 不允许的操作
##取消文件test.sh的i的属性,通过lsattr查看
[root@liruilong ~]# chattr -i test.sh
[root@liruilong ~]# lsattr test.sh
---------------- test.sh
#########文件如果有a的属性,则对于此文件,只能执行追加的操作
####对于日志文件执行a属性,防止内容被篡改
##给文件test.sh增加一个a属性,lsattr查看
[root@liruilong ~]# chattr +a test.sh
[root@liruilong ~]# lsattr test.sh
-----a---------- test.sh
###测试,追加内容的操作可以进行,写入,删除失败
[root@liruilong ~]# echo 123 >> test.sh
[root@liruilong ~]# echo 123 > test.sh
-bash: test.sh: 不允许的操作
[root@liruilong ~]# rm -rf test.sh
rm: 无法删除"test.sh": 不允许的操作
##取消文件test.sh的a的属性,通过lsattr查看
[root@liruilong ~]# chattr -a test.sh
[root@liruilong ~]# lsattr test.sh
---------------- test.sh

文件系统挂载熟悉

mount 挂载属性

  • noexec: 不可执行程序
  • noatime: 不更新文件的访问时间

noexec:
挂载设备时,添加此选项,则此设备中的所有程序均不可被执行(例如:病毒或木马)
noatime:
计算机中的文件都有访问时间(atime),修改时间(mtime);
挂载设备时,添加此选项,则所有文件的访问时间都不再被更新;
如果计算机中的a文件被用户访问,则a文件的atime就会被修改,对于web服务器而言,会有成千上万的
用户访问网页,则这个网页的atime就会被频繁修改,会消耗大量的CPU资源,需要在挂载的时候使用

#########boot分区挂载示例,其他挂载方法类似
[root@liruilong ~]# vim /etc/fstab
UUID=c120742d-5bdf-48c3-b830-3bfb3e796009 /boot xfs
defaults,noexec,noatime 0 0
###-o remount 重新挂载,让配置生效
[root@liruilong ~]# mount -o remount /boot/
###查看挂载的属性,/boot分区下,有了noexec,noatime
[root@liruilong ~]# mount
......
/dev/sda1 on /boot type xfs (rw,noexec,noatime,attr2,inode64,noquota)
......
#####定义一个不断输出a的脚本,赋予x执行权限,却无法运行
[root@liruilong ~]# vim /boot/test.sh
#!/bin/bash
while :
do
echo a
done
##必须是在/boot/目录下,执行脚本
[root@liruilong ~]# cd /boot
[root@liruilong boot]# chmod +x test.sh
[root@liruilong boot]# ./test.sh
-bash: ./test.sh: 权限不够

程序和服务控制

  • 禁用非必要的系统服务: 使用systemctl、chkconfig (centos6使用) 工具
  • 可选服务列表(选择进行关闭)
可选服务列表
cups.service 打印服务
postfix.service 邮件服务
NetworkManager.service 网络管理服务(network可以替代)
firewalld 防火墙 (iptables可以替代)
atd.service 一次性计划任务(crond可以替代)
bluetooth.service 蓝牙服务
autofs.service 自动挂载
pcscd.service 智能卡设备资源管理器
#####停止服务,并设置为开机不会自动启动
[root@liruilong ~]# systemctl stop firewalld
[root@liruilong ~]# systemctl disable firewalld

二、用户切换与提权

su切换用户身份

切换与提权的应用场景

  • 切换用户身份,When?:SSH远程管理/运维测试
  • 提升执行权限,when?:管理权限细分

su切换的基本用法:Substitube User,换人

  • 快速切换为指定的其他用户
  • 普通用户执行时,需验证目标用户的口令
  • root执行时,无需验证口令

命令格式

  • 用法1:su [-] [目标用户]
  • 用法2:su [-] -c “命令” [目标用户]

su操作示例

从普通用户切换为root,并登录新Shell环境,执行 su -,或者su - root,不指名目标用户时,默认视为root

#####创建新的用户jerry,并设置密码为123456
[root@liruilong ~]# useradd jerry
[root@liruilong ~]# echo 123456 | passwd --stdin jerry
更改用户 jerry 的密码 。
passwd:所有的身份验证令牌已经成功更新。
###从root用户切换到jerry用户
[root@liruilong ~]# su - jerry
###查看当前当前登录的用户身份为jerry,普通用户的权限很低
[jerry@liruilong ~]$ whoami
jerry
[jerry@liruilong ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[jerry@liruilong ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[jerry@liruilong ~]$ exit #退出jerry用户登录状态
logout
#####创建新的用户tom,并设置密码为123456
[root@liruilong ~]# useradd tom
[root@liruilong ~]# echo 123456 | passwd --stdin tom
更改用户 tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。
###从root用户切换到jerry用户,管理员切换成普通用户身份不需要密码
[root@liruilong ~]# su - jerry
上一次登录:二 818 10:21:41 CST 2020pts/0 上
###从jerry用户切换到tom用户,普通用户身份的切换需要输入密码
[jerry@liruilong ~]$ su - tom
Password: #输入tom用户的密码
[tom@liruilong ~]$ exit #退出tom用户的登录
logout
[jerry@liruilong ~]$ exit #退出jerry用户的登录
logout
###从root用户切换到jerry用户,管理员切换成普通用户身份不需要密码
[root@liruilong ~]# su - jerry
上一次登录:二 818 10:23:02 CST 2020pts/0 上
###su - 后面不跟用户,则默认是切换到root用户下
[jerry@liruilong ~]$ su -
Password: #输入管理员root的密码
Last login: Tue Aug 18 10:23:53 CST 2020 on pts/0
[root@liruilong ~]# exit #退出,回到jerry用户下
[jerry@liruilong ~]$ exit #退出,回到最出的root解释器下

root以指定的普通用户身份执行任务:以用户tom的身份创建目录,以用户tom的身份执行管理员操作会出错

###-c 以普通用户jerry的身份执行一条命令
[root@liruilong ~]# su - jerry -c "touch /tmp/test.txt"
##查看文件的属性
[root@liruilong ~]# ll /tmp/test.txt
-rw-rw-r-- 1 jerry jerry 0 818 10:25 /tmp/test.txt
####错误,普通用户没有权利去重启sshd服务
[root@liruilong ~]# su - tom -c "systemctl restart sshd"
Error creating textual authentication agent:
......

分析su切换的使用情况:安全日志 /var/log/secure,记录su验证、Shell开启与关闭

[root@liruilong ~]# tail -4 /var/log/secure
Aug 18 10:25:03 localhost su: pam_unix(su-l:session): session opened for user
jerry by root(uid=0)
Aug 18 10:25:03 localhost su: pam_unix(su-l:session): session closed for user
jerry
Aug 18 10:40:50 localhost su: pam_unix(su-l:session): session opened for user
tom by root(uid=0)
Aug 18 10:40:51 localhost su: pam_unix(su-l:session): session closed for user
tom

sudo 提升执行权限

sudo提权的基本用法

  • Super or another Do,超级执行:管理员预先为用户设置执行许可,被授权用户有权执行授权的命令,验证自己的口令
  • 执行提权命令: 用法: sudo 提权命令
  • 查看提权命令: 用法:sudo -l

配置sudo提权

修改方法

  • 推荐:visudo
  • 其他:vim /etc/sudoers ---> wq!(强制保存并退出)授权记录格式`

用户或组
#指定给特定用户授权或者组(多个用户属于一个组)
#指定给组授权时,组的前面必须加 %,例如:%wheel

主机列表
#允许哪些客户机可以通过这个用户登录本机去执行命令,例如:ALL(指所有客户机)
提权身份
#给第一列的用户赋予权限,例如:(root)

[NOPASSWD]:命令列表 #前半部分是不需要密码执行命令;后半部分是要执行的命令,且;命令要写绝
对路径

%wheel ALL=(root) ALL #给wheel组中的所有用户,赋予root的权限,让其可以在任何主机上以root的身份去执行任何命令

允许mike以root权限执行 /sbin/ 下的所有命令,但是,禁止修改eth0网卡的参数

/sbin/* #模糊匹配,/sbin/下的所有命令都可以用sudo提权使用
!/sbin/ifconfg etho #! 代表取反,该命令不能被sudo提权使用
####sudo 提权,让普通用户jerry可以执行systemctl restart sshd 命令
[root@liruilong ~]# id jerry
uid=1002(jerry) gid=1002(jerry)=1002(jerry)
####通过which命令,获取systemctl的绝对路径
[jerry@liruilong ~]# which systemctl
/bin/systemctl
###最后一行追加,允许jerry用户,可以以任何人的身份,从任何客户端,执行此命令
##立刻生效
[root@liruilong ~]# visudo
......
jerry ALL=(ALL) /usr/bin/systemctl
######测试,验证
##切换到jerry用户下
[root@liruilong ~]# su - jerry
上一次登录:二 818 10:50:16 CST 2020pts/0 上
####使用sudo提权命令,重启sshd服务
[jerry@liruilong ~]$ sudo systemctl restart sshd
[sudo] password for jerry: ##jerry用户密码:123456
Sorry, try again.
###sudo -l 查看jerry用户可以执行的sudo提权命令
[jerry@liruilong ~]$ sudo -l
......
User jerry may run the following commands on liruilong:
(ALL) /usr/bin/systemctl

wheel组的用户无需验证可执行所有命令

####通过which命令,获取parted分区命令的绝对路径
[root@liruilong ~]# which parted
/usr/sbin/parted
###最后一行追加,允许tom用户,可以以任何人的身份,从任何客户端,无密码使用parted命令
##立刻生效
[root@liruilong ~]# visudo
......
jerry ALL=(ALL) /usr/bin/systemctl
tom ALL=(ALL) NOPASSWD:/usr/sbin/parted
######测试,验证
##切换到tom用户下
[root@liruilong ~]# su - tom
上一次登录:二 818 10:40:50 CST 2020pts/0 上
##sudo提权后,tom用户下,查看磁盘/dev/sda的分区情况
[tom@liruilong ~]$ sudo parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 21.5GB 20.4GB primary lvm
[tom@liruilong ~]$ exit #退出tom用户登录

分析sudo提权的使用情况: 修改全局配置,启动日志Defaults logfile="/var/log/sudo"

##########修改全局配置,启动的日志,该日志记录sudo提权的使用情况
##最后一行添加:Defaults logfile="/var/log/sudo"
[root@liruilong ~]# visudo
......
jerry ALL=(ALL) /usr/bin/systemctl
tom ALL=(ALL) NOPASSWD:/usr/sbin/parted
Defaults logfile="/var/log/sudo"
########验证日志信息,需先执行一次提权命令
[root@liruilong ~]# su - tom
上一次登录:二 818 10:56:52 CST 2020pts/0 上
##sudo提权后,tom用户下,查看磁盘/dev/sda的分区情况
[tom@liruilong ~]$ sudo parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 21.5GB 20.4GB primary lvm
[tom@liruilong ~]$ exit #退出tom用户的登录状态
######查看日志,看看sudo提权的使用信息
[root@liruilong ~]# cat /var/log/sudo
Aug 18 13:02:12 : jerry : TTY=pts/0 ; PWD=/home/jerry ; USER=root ;
COMMAND=/bin/systemctl restart sshd
Aug 18 13:18:34 : tom : TTY=pts/0 ; PWD=/home/tom ; USER=root ;
COMMAND=/sbin/parted /dev/sda print

三、sshd访问控制

SSH基本防护

SSH防护概述

  • 存在的安全隐患
    • 密码嗅探、键盘记录
    • 暴力枚举账号、猜解密码
  • 常见的防护措施
    • 用户限制、黑白名单
    • 更改验证方式(密码 --> 密钥对)
    • 防火墙…

sshd基本安全配置

配置文件 /etc/ssh/sshd_config

  • Port 3389 //改用非标准端口
  • ListenAddress 192.168.168.174
  • PermitrootLogin //禁止root登录
#####修改ssh配置时,先备份sshd主配置文件
[root@liruilong ~]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
####修改虚拟机ssh远程连接得端口为3389
[root@liruilong ~]# vim /etc/ssh/sshd_config
17 Port 3389
##重启sshd服务
[root@liruilong ~]# systemctl restart sshd
#xshell测试使用ssh远程时必须加端口号3389
[c:\\~]$ ssh root@192.168.2.100 3389
####用户只能通过192.168.2.100这个IP地址远程liruilong这台虚拟机
[root@liruilong ~]# vim /etc/ssh/sshd_config
20 ListenAddress 192.168.2.100
##重启sshd服务,虚拟机新添加网卡配置其他IP地址测试
[root@liruilong ~]# systemctl restart sshd
#xshell测试使用ssh远程时必须加端口号3389
[c:\\~]$ ssh root@192.168.2.100 3389
#####禁止root远程登录虚拟机liruilong
[root@liruilong ~]# vim /etc/ssh/sshd_config
38 PermitRootLogin no
##重启sshd服务,xshell使用root远程登录liruilong失败
[root@liruilong ~]# systemctl restart sshd
#####xshell以普通用户jerry的身份可以登录liruilong虚拟机
##使用su -切换成root身份,或者使用sudo提权命令
[c:\\~]$ ssh jerry@192.168.2.100 3389 #密码123456
[tom@liruilong ~]$
[tom@liruilong ~]$ su - root #su - 切换root用户
密码: #输入root密码
[root@liruilong ~]#
  • 配置文件 /etc/ssh/sshd_config
    • UseDNS no //不解析客户机地址
    • LoginGraceTime 1m //登录限时
    • MaxAuthTries 3//每连接最多认证次数

UseDNS no #不对客户机进行域名解析,访问网站的普通用户是没有域名的,不需要解析
LoginGraceTime 1m #用户在ssh远程服务器时,如果1分钟内用户没有输入用户名和密码,则断开连接

#########举例演示
##登录限时修改为10s,真实环境需要长一点
[root@liruilong ~]# vim /etc/ssh/sshd_config
37 LoginGraceTime 10s
115 UseDNS no
##重启sshd服务
[root@liruilong ~]# systemctl restart sshd
###使用xshell远程连接时,不输入密码,等待10s中,会出现连接关闭的提示
[c:\\~]$ ssh jerry@192.168.2.100 3389
Connection closing...Socket close.

MaxAuthTries 3 : #用户远程服务器时,密码错误,可以尝试多少次

#这里的3不是指的3次,是一个概数,需要不断尝试错误连接,来得出这里得数字
#########举例演示
##修改连接认证次数为3
[root@liruilong ~]# vim /etc/ssh/sshd_config
40 MaxAuthTries 3
##重启sshd服务
[root@liruilong ~]# systemctl restart sshd
##使用xshell远程连接,输入错误密码,输入两次就会出现连接端口的提示
[c:\\~]$ ssh jerry@192.168.2.100 3389
Connection closing...Socket close.

ssh经常一段时间就断掉解决办法去掉注释,改成

vim /etc/ssh/sshd_config

ClientAliveInterval 30
ClientAliveCountMax 86400

这两行的意思分别是

  1. 、客户端每隔多少秒向服务发送一个心跳数据
  2. 、客户端多少秒没有相应,服务器自动断掉连接

重启sshd服务

#service sshd restart
  • sshd黑/白名单配 配置文件 /etc/ssh/sshd_config
    • DenyUsers USER1 USER2 …
    • AllowUsers USER1@HOST USER2 …
    • DenyGroups GROUP1 GROUP2 …
    • AllowGroups GROUP1 GROUP2 …
#####设置黑白名单时,如果要允许或拒绝多个用户,用户之间以空格作为分隔符
DenyUsers #设置黑名单,拒绝某些用户登录本机
AllowUsers #设置白名单,允许某些用户登录本机
DenyGroups #设置黑名单,拒绝一个或多个用户组登录本机
AllowGroups #设置白名单,允许一个或多个用户组登录本机
AllowUsers USER1@HOST #设置白名单,允许用户USER1从HOST这台主机登录本机

应用示例:仅允许一部分用户(从指定地点)登入,其他任何用户均禁止登入

####使用xshell让用户jerry使用3389端口登录
[c:\\~]$ ssh jerry@192.168.2.100 3389
[jerry@liruilong ~]$ su - root #切换为root身份
[jerry@liruilong ~]#
#######设置白名单,仅允许tom可以ssh远程登录服务器,其他任何用户都无法登录
##如果设置的是白名单,则不需要设置黑名单了,默认是拒绝其他用户远程登录
[root@liruilong ~]# vim /etc/ssh/sshd_config
42 AllowUsers tom
##重启sshd服务
[root@liruilong ~]# systemctl restart sshd
######xshell远程测试
##jerry无法再登录了
[c:\\~]$ ssh jerry@192.168.2.100 3389 #登录密码123456
##tom用户可以远程登录
[c:\\~]$ ssh tom@192.168.2.100 3389 #登录密码 123456
[tom@liruilong ~]$

```bash
#######设置黑名单,仅拒绝tom通过ssh远程登录服务器,其他用户都允许
[root@liruilong ~]# vim /etc/ssh/sshd_config
42 DenyUsers tom
##重启sshd服务
[root@liruilong ~]# systemctl restart sshd
######xshell远程测试
##tom无法再登录了
[c:\\~]$ ssh tom@192.168.2.100 3389 #登录密码123456
##jerry用户可以远程登录
[c:\\~]$ ssh jerry@192.168.2.100 3389 #登录密码 123456
[tom@liruilong ~]$
#######设置黑名单,拒绝用户tom从IP地址为192.168.2.1的主机,来远程服务器svr7
[root@svr7 ~]# vim /etc/ssh/sshd_config
42 DenyUsers tom@192.168.2.1
##重启sshd服务
[root@svr7 ~]# systemctl restart sshd

SSH密钥对验证

sshd验证方式控制

  • 口令验证::检查登录用户的口令是否一致:密码验证:#当windows被攻击,系统被植入木马,容易被攻击者从键盘记录等方式中获取密码
  • 密钥验证:检查客户端私钥与服务器上的公钥是否匹配:密钥验证:#密钥验证的安全度很高;#不会有输入密码的过程,键盘工具方式无效;
  • PasswordAuthentication yes #ssh支持密码验证
47 AuthorizedKeysFile .ssh/authorized_keys ##指定公钥的存放位置,在用户的家目录
下的.ssh目录中的authorized_keys文件中

密钥对验证的实现思路

查看详情

关于linux运维中监控方面的一些笔记(代码片段)

写在前面笔记是报班学习后整理的,适合温习,不适合新手。蹭着国庆长假整理了一份,希望对小伙伴有帮助.生活加油,天天开心!博文主要围绕以几个方面:监控的基本知识zabbix的安装部署教程,多节点... 查看详情

关于kubernetes中networkpolicy(网络策略)方面的一些笔记(代码片段)

写在前面学习k8s遇到整理笔记博文内容主要涉及Kubernetes网络策略理论简述K8s中网络策略方式:egress和ingress的DemoipBlock,namespaceSelector,podSelector的网络策略规则Demo混吃等死,小富即安,飞黄腾达,是因为各有各的缘... 查看详情

关于linux中systemd的一些笔记(代码片段)

写在前面嗯,准备RHCA,学习整理这部分知识博文内容涉及:systemd简述对于unit的信息的介绍通过systemctl命令控制Serviceunit的DemoServiceunit配置文件内容,权值的一些介绍傍晚时分,你坐在屋檐下,看着天慢慢地黑... 查看详情

关于linux性能调优中网络i/o的一些笔记(代码片段)

写在前面和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括常用的优化工具(mii-tool,ethtool,ifconfig,ip,sar,iptraf,netstat)使用Demo及对应的输出解释具体的调优策... 查看详情

关于linux性能调优中网络i/o的一些笔记(代码片段)

写在前面和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括常用的优化工具(mii-tool,ethtool,ifconfig,ip,sar,iptraf,netstat)使用Demo及对应的输出解释具体的调优策... 查看详情

关于linux中shell等知识的一些笔记(代码片段)

写在前面笔记是上课后整理的笔记,适合温习,不适合新手,希望对小伙伴有帮助笔记内容包括:Shell一些常见情境傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生... 查看详情

关于linux中shell等知识的一些笔记(代码片段)

写在前面笔记是上课后整理的笔记,适合温习,不适合新手,希望对小伙伴有帮助笔记内容包括:Shell一些常见情境傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生... 查看详情

关于linux中批量配置ssh免密的一些笔记(代码片段)

写在前面今天和小伙伴们分享批量配置SSH免密的一些笔记传统的运维场景可以通过Ansible等运维工具处理在安装使用一些运维工具,比如Ansible,或则一些pass组件,需要配置ssh免密,sudo免密的操作今天和小伙伴分享... 查看详情

关于linux中批量配置ssh免密的一些笔记(代码片段)

写在前面今天和小伙伴们分享批量配置SSH免密的一些笔记传统的运维场景可以通过Ansible等运维工具处理在安装使用一些运维工具,比如Ansible,或则一些pass组件,需要配置ssh免密,sudo免密的操作今天和小伙伴分享... 查看详情

关于linux中批量配置ssh免密的一些笔记(代码片段)

写在前面今天和小伙伴们分享批量配置SSH免密的一些笔记传统的运维场景可以通过Ansible等运维工具处理在安装使用一些运维工具,比如Ansible,或则一些pass组件,需要配置ssh免密,sudo免密的操作今天和小伙伴分享... 查看详情

关于linux中作业调度crond和systemd.timer使用场景的一些笔记(代码片段)

...我们承受所有的不幸,皆因我们无法独处------叔本华关于systemd.timer的一些介绍crond这里不多介绍,小伙伴们应该都接触过。所以直接来 查看详情

关于linux性能调优中磁盘io调优的一些笔记(代码片段)

写在前面和小伙伴分享一些Linux磁盘IO优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括使用vmstat统计系统内磁盘分区I/O属性的性能使用iostat分析磁盘分区的饱和度,利用率... 查看详情

关于linux中控制群组cgroup(资源管理)的一些笔记(代码片段)

写在前面学习遇到容器资源限制的处理问题,所以研究下。博文内容涉及:容器中cgroup的应用控制群组部分属节译,介意小伙伴请看原文。原文链接:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/reso... 查看详情

关于linux中系统调优的一些笔记(代码片段)

写在前面推送的的邮件里看到有大佬讲的公共课,听了之后这里整理学习笔记。因为是公开课,所以讲的很浅,没接触过,这里做为了解,长长见识。博文内容包括系统调优原理概述如何检测系统的性能瓶颈... 查看详情

关于linux中网络连接配置(networkmanager)的一些笔记(代码片段)

写在前面嗯,准备RHCA,学习整理这部分知识NetworkManager其实是RHCAS的内容博文内容为常见的配置操作回顾:NetworkManager简述命令行的方式配置网络连接修改配置文件的方式配置网络连接谁有权限修改网络连接配置傍晚... 查看详情

关于linux中控制群组cgroup(资源管理指南)的一些笔记(代码片段)

写在前面学习遇到容器资源限制的处理问题,所以研究下。嗯,博文属节译,介意小伙伴请看原文。原文链接:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/resource_management_guide/index嗯,还有一点, 查看详情

关于linux中keepalived高可用热备自动化部署的一些笔记(代码片段)

写在前面今天和小伙伴们分享一些Keepalived相关笔记博文内容涉及:vrrp协议由来Ansible方式Keepalived安装部署Keepalived脚本方式配置服务检查Keepalived自动化部署Ansible角色编写食用方式:需要Linux、Ansible基础知识理解不足小伙... 查看详情