首页 > 编程知识 正文

ssh带密码登录命令,linux

时间:2023-05-05 17:30:46 阅读:43779 作者:3940

帐户安全和登录控件1、 帐户安全控制1.1帐户安全基本措施1.1.1将非登录用户shell设置为nologin1.1.2锁定长时间不使用的帐户1.1.3删除不需要的帐户1.1.4删除帐户文件1.1.7使用终端自动注销1.1.1.8SS使用su命令在用户1.1.10 Linux上使用PAM安全认证1.1.11sudo机制改进权限2、 系统启动和登录控制2.1脱机安全控制2.2安全终端root登录限制2.3禁止普通用户登录2.4系统弱密码检测(Joth the Ripper,检测JR ) 2.5网络端口扫描

另一方面,帐户安全控制1.1帐户安全基本措施1.1.1未登录用户的shell以nolog in [ root @ hostname~] # usermod-s nolog in用户名#形式[ rooog in ]

1.1.2锁定长期不使用的帐户[ root @ cheng 0307~~ ] # usermod-ll isi #解锁帐户的方式一[ root @ cheng 0307~~ ] # usermod

1.1.3删除无用帐户[root@hostname ~]# userdel用户名#格式[root@cheng0307 ~]# userdel lisi#实际操作

1.1.4锁定帐户文件[ root @ cheng 0307~~ ] #查看lsattr/etc/passwd/etc/shadow #文件的状态[ root @ cheng 0307~~ ] #

1.1.5密码安全控制要设置密码有效期,用户下次登录时必须更改密码1 .格式。

1 .应用于新用户的[ root @ cheng 0307~] # vim/etc/log in.defs #修改配置文件-----此处省略了部分注释和配置----pass _ max _ 更改密码有效期3 .下次登录成功时强制更改密码(/etc/shadow中的第三个字段更改为0 ) [ root @ cheng 0307 ] # ch age-d0zhangsan #

3 .示例2 :现有用户的zhangsan密码有效期也更改为30天。

4 .示例3 :设置现有用户zhangsan,以便下次登录时需要更改密码。

登录时输入密码后,需要设置新密码。

1.1.6减少命令历史限制记录的命令根数; 登录时自动清除命令历史记录; 系统默认保存1000条历史命令记录; history -c命令只是暂时清除记录,重新启动后仍保留记录。 1 .格式:

1 .限制历史命令数[ root @ cheng 0307~~ ] # vim/etc/profile #变更配置文件export HISTSIZE=200#变更命令历史记录数最多为200个,前面有export 生效2 .登录时命令历史vim .bashrc #更改/etc/profile配置文件(每次切换bash时运行)或vim /etc/profile# )更改/etc/profile

3 .例2 :设置为登录时自动清除命令历史记录

1.1.7终端自动退出空闲[ n ]秒后自动注销。 (n为数字)1.格式:

[ root @ cheng 0307~~ ] # vim/etc/profile #编辑/etc/profile文件export TMOUT=100#设置全局自动注销时间2 .情况100秒的终端自动注销

1.1.8命令切换用户1 .用途和使用方法

用途: Substitute User,用户格式切换: su -目标用户(水平条“-”表示到目标用户家目录的切换)2.密码验证

root - - -任何用户,不验证密码的普通用户--- -其他用户表示目标用户的密码带“- -”使用目标用户的登录shell环境3 .格式。

1 .用户切换[root@cheng0307 ~]# su

- zhangsan#root切换普通用户[zhangsan@cheng0307 ~]$ su - root#普通用户切换其他用户2.查看当前登录的用户[root@cheng0307 ~]# whoami#显示当前登录的用户

4.案例:测试用户之间切换

1.1.9 限制使用su命令的用户 将允许使用su命令的用户加入wheel组中;启用pam_wheel 认证模块

1.格式:

[root@cheng0307 ~]# vim /etc/pam.d/su#编辑/etc/pam.d/su配置文件[root@cheng0307 ~]# gpasswd -a zhangsan wheel#将希望可以使用su命令的用户加入到wheel组中auth required pam_wheel.so use_uid#将此行的注释取消即可

2.实例:有zhangsan和lisi两个用户,要求设置zhangsan可以使用su命令切换用户,lisi用户不允许使用。


3. 实例2:查看su操作记录

1.1.10 Linux中的PAM安全认证

1.su命令的安全隐患

默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。

2.PAM(Pluggable Authentication Modules)可插拔式认证模块

是一种高效而且灵活便利的用户级别的认证方式;也是当前Linux服务器普遍使用的认证方式。

3.PAM认证原理:

PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/lib64/security/下)进行安全认证。用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用.

1.1.11 使用sudo机制提升权限

1.sudo命令的用途及用法

用途 :以其他用户身份(如root执行授权的命令)用法:sudo 权限命令

2.配置sudo授权
- visudo或者vi /etc/sudoers(此文件默认权限为440,保存时必须 wq!强制执行操作)
- 记录格式:用户 主机名=命令程序列表
- 可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
- 权限生效后,输入密码后5分钟可以不用重新输入密码。

3.语法格式:

用户 主机名=命令程序列表用户 主机名=(用户)命令程序列表zhangsan ALL=(root) /sbin/ifconfig#实际操作 用户: 直接授权指定的用户名,或采用“&组名"的形式(授权一个组的所有用户)。主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机。(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令。
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“。"进行分隔。ALL则代表系统中的所有命令

4.启用sudo操作日志

需启用Defaults logfile配置默认日志文件:/var/log/sudo操作:在/etc/sudoers末尾添加Defaults logfile="/var/log/sudo"

5.查询授权的sudo操作

sudo -l

6.实例1:查看当前sudo配置文件。

实例2:配置相关文件,使得zhangsan可以通过sudo命令使用ifconfig。

切换到zhangsan用户进行测试。

末尾插入下列配置,然后强制保存并退出。

进行测试。

实例3:设置wheel组进行sudo操作时无需密码验证,并将lisi用户添加到wheel组中测试。

这里是sudo配置文件 /etc/sudoers 内的具体修改步骤:

实例4:使用关键字来进行设置别名,批量控制用户进行sudo操作时无法使用重启(reboot)、关机(poweroff)、切换init和无法删除。
第一步:vim /etc/sudoers 或者visudo 修改配置文件(这里我使用的是第一种)

第二步:添加配置

第三步:使用普通用户进行测试

第四步:查看zhangsan和lisi的可使用权限。

实例5:修改实例4,使zhangsan和lisi用户可以无需密码使用sudo可以使用的权限为/sbin下所有。

实例6: 在/car/log下创建sudo日志文件,用来存储用户使用的sudo命令记录。

二、系统引导和登录控制 2.1 开关机安全控制

1.调整BIOS引导设置

将第一引导设备设为当前系统所在硬盘;禁止从其他设备(光盘、 U盘、网络)引导系统;将安全级别设为setup,并设置管理员密码。

2.GRUB限制

使用grub2-mkpasswd-pbkdf2生成密钥;修改/etc/grub.d/00_ header文件中, 添加密码记录;生成新的grub.cfg配置文件。

3.限制更改GRUB引导参数
通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

4.实例:为GRUB菜单设置密码
第一步:我们先来看一下未设置之前的状态

第二步:使用grub2-mkpasswd-pbkdf2生成密钥并复制,然后备份两个配置文件。

第三步:修改/etc/grub.d/00_ header文件中, 添加密码记录,并存并退出

第四步:生成新的grub.cfg文件,然后重启系统

第五步:验证结果

2.2 限制root只在安全终端登录 安全终端配置:/etc/securettytty1~ 6是文本型控制台,tty7 是X Window图形显示管理器。可以通过CtrI+Alt+F1 (F1-F7键) 切换到对应的登录控制台。

实例:禁止root在tty3终端登录
第一步:更改相关配置文件

第二步:切换至tty3进行测试

第三步:切换至其他终端进行测试

2.3 禁止普通用户登录 建立/etc/nologin文件删除nologin文件或者重启后即恢复正常

1.格式

[root@cheng0307 ~]# touch /etc/nologin#禁止普通用户登录[root@cheng0307 ~]# rm -rf /etc/nologin #删除后即可恢复

2.禁止普通用户登录系统
第一步:创建/etc/nologin文件

第二步:使用普通用户进行测试

第三步:使用root进行测试

2.4 系统弱口令检测(Joth the Ripper,检测JR)

1.介绍:

一款密码分析工具,支持字典式的暴力破解;通过对shadow文件的口令分析,可以检测密码强度;官方网站:http://www.openwall.com/john

2.安装JR工具

安装方法 make clean 系统类型主程序文件为john

3.检测弱口令账户

获得Linux/Unix服务器的shadow文件;执行john程序,将shadow文件作为参数

4.密码文件的暴力破解

准备好密码字典文件,默认为psaaword.lst执行john程序,结合--wordlist=字典文件(有更强大的字典可以使用).

第一步:将john-1.8.0.tar.gz安装包拖入Linux系统内。

第二步:移动至/opt 然后解压


第三步:编译安装指定程序

第四步:添加三个用户并设置简单密码,用于下面测试破解

第五步:将/etc/shadow 文件复制到/opt下进行暴力破解

第六步:可以使用--show进行查看破解处的密码

2.5 网络端口扫描

1.NMAP

一款强大的网络扫描、安全 检测工具官方网站:http://nmap.org/CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm

2.格式:

nmap [扫描类型] [选项] <扫描目标>netstat natp#查看正在运行的使用TCP协议的网络状态信息[root@cheng0307 ~]# netstat -natp | grep httpd#实际操作(httpd换成80也可以)netstat -naup#查看正在运行的使用UDP协议的网络状态信息

3.常见的选项

常见的选项选项的作用-p指定扫描的端口。-n禁用反向DNS 解析(以加快扫描速度)-sSTCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。-sTTCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。-sFTCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。-sUUDP扫描,探测目标主机提供哪些UDP 服务,UDP扫描的速度会比较慢。-sPICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。-P0跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描。

4.natstat命令常用选项:

常用选项作用-a显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。-n以数字的形式显示相关的主机地址、端1等信息。-t查看TCP相关的信息。-u显示UDP协议相关的信息。-p显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)-r显示路由表信息。-l显示处于监听状态的网络连接及端口信息。

5.实例1:开启本机的httpd,然后进行扫描
第一步:查询并安装nmap和httpd程序


第二步:开启httpd服务,然后对httpd进行扫描查看网络状态

实例2:查看本机开放的TCP和UDP端口

实例3:查看192.168.80.0/24网段内有多少存活主机。
第一步:开启另一台虚拟机进行查看ip地址测试

第二步:返回原虚拟机进行扫描测试

实例4:查看192.168.80.0/24网段内有哪些主机提供HTTP服务

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。