首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
match
datetime
substring
sum
web3
vba
jsp
php5
dll
range
md5
netty
cpython
spring
join
audio
subset
process
golang
export
nodejs
string
utf-8
python3
default
triggers
actionscrip
solr
erlang
plugins
format
js
regex
heap
merge
go
callback
runtime
foreach
less
perl
hashset
window
random
io
settings
split
function
tree
const
include
bitmap
grid
replace
testing
require
version
hash
object
post
bit
heatmap
timestamp
vbscript
shell
python2
dagger
stream
tags
iostream
eval
main
timezone
config
integer
uml
lua
case
scala
当前位置:
开发笔记
>
编程语言
> 正文
深入分析PAM在口令保护中的应用
作者:拥有一YY_373 | 来源:互联网 | 2017-06-25 18:11
文章标题:深入分析PAM在口令保护中的应用。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
PAM是pluggable authentication modules系统的一个实现,它最初有sun开发;很快被linux社区的接受,并且开发了更多的模块。其目标是提供一套可用于验证用户身份的函数库,从而将认证从应用程序开发中独立出来。下面是一些PAM在口令保护中的简单例子。
使用pam-tally.so
pam-tally.so是一个PAM模快,用于监视用户登陆失败次数并该值超过特定值时做出反映。例如用户在登陆3次失败后,其帐号会被锁定一段时间,或永久锁定(或到联系到系统管理员)。将下面行添加到/etc/pam.d/login:
account required /lib/security/pam-tally.so deny=3 no-magic-root
这行配置pam-tally.so ,使之在用户连续3次登陆失败后锁定其帐号。这样攻击者就只有3次猜测口令的机会,之后就会被剔出。
pam-cracklib.so 是alec muffett编写的PAM版本的cracklib库,用于检查口令的强度,他首先调用cracklib例程来测试口令是否能被破解。在通过这个测试后再进行如下测试:
。 口令是否回文?
。 新口令是不是旧口令的大小写变换版本?
。 新口令和旧口令是否非常相似?
。 口令是否太短?
。 新口令是不是旧口令的移位版本?
要以此测试每个新口令。只需要在/etc/pam.d/passwd文件中用如下行替换原来pam-unix.so模块;
password required pam-cracklib.so retry=3
password required pam-unix.so use-authtok md5
这样就给用户三个机会来选择合适的健壮口令。也可以强制口令的长度:
password required pam-cracklib.so retry=3 minlength=10
password required pam-unix.so use-authtok md5
强制MD5散列 有些linux发布默认配置下使用DES散列,而非MD5散列。要想强制所有新口令都以MD5散列方式保存,只需直接把md5添加到/etc/pam.d/passwd文件的pam-unix.so 行中:
password required pam-unix.so use-authtok md5
下面这段perl代码可用来生成强口令
#!/usr/bin/perl -w
#passwd-generator.pl
use strict;
my @chars=(33..91,93..126);
my $num-chars=@chars;
my $length;
my $punt='! "#$%&'()*+,-./:;<=>?@[\\]^{|}~ ';
print "enter number of characters in your passwd:"
chmop($length=
);
die "length must be greater than 6!" if $length<=5;
while(1){
my $password=' ';
foreach (1..Slength){
Spassword.=chr(Schars[int(rant(Snum-chars))]);
}
if($passwd=~/[a-z]/ and $passwd=~/[A-Z]/ and
$passwd=~/[0-9]/ and $passwd=~/[$punt]/ {
print Spassword, "\n" ;
exit;
}
}
linux
perl
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
md5
Linux下Perl的安装及第一个程序运行
本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ...
[详细]
蜡笔小新 2023-12-13 18:29:11
md5
腾讯安全平台部招聘安全工程师和数据分析工程师
腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ...
[详细]
蜡笔小新 2023-12-10 17:01:40
md5
PHP组合工具以及开发所需的工具
本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ...
[详细]
蜡笔小新 2023-12-09 17:36:44
process
环境配置tips
一、MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2、表的别名是严格区分大小写的& ...
[详细]
蜡笔小新 2023-10-16 20:14:22
process
Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ...
[详细]
蜡笔小新 2023-12-14 17:57:01
process
云原生应用最佳开发实践之十二原则(12factor)
目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ...
[详细]
蜡笔小新 2023-12-09 09:35:02
string
Simple Tips on C++(对于C++的一些建议)
Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ...
[详细]
蜡笔小新 2023-10-17 19:48:02
string
有关phpfgetss()函数的文章推荐10篇
有关phpfgetss()函数的文章推荐10篇:了解如何使用PHP的各种文件函数。查看诸如fopen、fclose和feof之类的基本文件函数;了解诸如fgets、fgetss和f ...
[详细]
蜡笔小新 2023-10-17 15:45:58
sum
为什么设计师创造的编程语言更受欢迎?
导读:在编程的世界里,语言纷繁多样,而大部分真正广泛流行的语言并不是那些学术界的产物,而是在通过自由发挥设计出来的。和那些 ...
[详细]
蜡笔小新 2023-10-17 15:22:41
sum
评估连接速度的最佳方法 - Best way to evaluate connection speed
Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ...
[详细]
蜡笔小新 2023-10-17 14:49:20
jsp
php课程Json格式规范需要注意的小细节
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming ...
[详细]
蜡笔小新 2023-10-17 14:32:20
default
MySQL5.6.40在CentOS7 64下安装过程
MySQL5.6.40在CentOS764下安装过程 ...
[详细]
蜡笔小新 2023-10-17 11:48:04
spring
Java消息队列Spring整合ActiveMq我是小强zz
1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ...
[详细]
蜡笔小新 2023-10-17 10:34:08
spring
Silverlight杂记控件相关
Button控件1用于可视的表现的属性2索引和状态3模板4button的内容之所以可以放任意的控件是因为调用使用一个ContentPresenter控件来呈现。5button控件的 ...
[详细]
蜡笔小新 2023-10-16 19:12:34
default
关于Perl中split的用法的更多说明 - More clarification about the usage of split in Perl
Ihavethisfollowinginputfile:我有以下输入文件:test.csvdone_cfg,,,,port<0>,clk_in,subcktA,ins ...
[详细]
蜡笔小新 2023-10-16 17:45:16
拥有一YY_373
这个家伙很懒,什么也没留下!
Tags | 热门标签
match
datetime
substring
sum
web3
vba
jsp
php5
dll
range
md5
netty
cpython
spring
join
audio
subset
process
golang
export
nodejs
string
utf-8
python3
default
triggers
actionscrip
solr
erlang
plugins
RankList | 热门文章
1
php 实现国密算法_使用 PHP 实现 LRU 缓存淘汰算法
2
hdu 3336 Count the string(思维可水过,KMP)
3
如何优化自己的html项目,【webpack篇】工程化里,如何优化自己的项目
4
控制工程实践(4)——线性控制系统的稳态误差(之一)
5
Nginx 中怎么实现动静分离与负载均衡
6
Python | Pandas index . equals()
7
C语言中如何使用宏判断整型变量的有符号与无符号属性
8
AlienVerse 忠诚度计划上线!
9
红手指如何使用?红手指使用方法
10
Spring声明式事务不回滚问题
11
WinForm打包后皮肤无效(解决方案)
12
selenium的三种等待的区别
13
用法_java if else 用法
14
MFC中使用用户剪贴板
15
PHP RSS类的使用方法及在4G中主要使用的技术:如何在PHP中使用RSS技术
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有