关于linux系统密码策略的设置

由于工作需要最近需要将公司的多台linux服务器进行密码策略的设置,主要内容是增加密码复杂度。
操作步骤如下,不会的同学可以参考:
操作前需要掌握如下几个简单的知识点:(其实不掌握也行,不过学学没坏处)
PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段。PAM最初是集成在Solaris中,目前已移植到其它系统中,如Linux、SunOS、HP-UX 9.0等。
PAM的配置是通过单个配置文件/etc/pam.conf。RedHat还支持另外一种配置方式,即通过配置目录/etc/pam.d/,且这种的优先级要高于单 个配置文件的方式。
1、使用配置文件/etc/pam.conf
该文件是由如下的行所组成的:
service-name module-type control-flag module-path arguments
service-name 服务的名字,比如telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务。
module-type 模块类型有四种:auth、account、session、password,即对应PAM所支持的四种管理方式。同一个服务可以调用多个 PAM模块进行认证,这些模块构成一个stack。
control-flag 用来告诉PAM库该如何处理与该服务相关的PAM模块的成功或失败情况。它有四种可能的 值:required,requisite,sufficient,optional。
required 表示本模块必须返回成功才能通过认证,但是如果该模块返回失败的话,失败结果也不会立即通知用户,而是要等到同一stack 中的所有模块全部执行完毕再将失败结果返回给应用程序。可以认为是一个必要条件。
requisite 与required类似,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一stack内的任何模块,而是直 接将控制权返回给应用程序。是一个必要条件。注:这种只有RedHat支持,Solaris不支持。
sufficient 表明本模块返回成功已经足以通过身份认证的要求,不必再执行同一stack内的其它模块,但是如果本模块返回失败的话可以 忽略。可以认为是一个充分条件。
optional表明本模块是可选的,它的成功与否一般不会对身份认证起关键作用,其返回值一般被忽略。
对于control-flag,从Linux-PAM-0.63版本起,支持一种新的语法,具体可参看LinuxPAM文档。
module-path 用来指明本模块对应的程序文件的路径名,一般采用绝对路径,如果没有给出绝对路径,默认该文件在目录/usr/lib/security下面。
arguments 是用来传递给该模块的参数。一般来说每个模块的参数都不相同,可以由该模块的开发者自己定义,但是也有以下几个共同 的参数:
debug 该模块应当用syslog( )将调试信息写入到系统日志文件中。
no_warn 表明该模块不应把警告信息发送给应用程序。
use_first_pass 表明该模块不能提示用户输入密码,而应使用前一个模块从用户那里得到的密码。
try_first_pass 表明该模块首先应当使用前一个模块从用户那里得到的密码,如果该密码验证不通过,再提示用户输入新的密码。
use_mapped_pass 该模块不能提示用户输入密码,而是使用映射过的密码。
expose_account 允许该模块显示用户的帐号名等信息,一般只能在安全的环境下使用,因为泄漏用户名会对安全造成一定程度的威胁。
2、使用配置目录/etc/pam.d/(只适用于RedHat Linux)
该目录下的每个文件的名字对应服务名,例如ftp服务对应文件/etc/pam.d/ftp。如果名为xxxx的服务所对应的配置文件/etc/pam.d/xxxx不存 在,则该服务将使用默认的配置文件/etc/pam.d/other。每个文件由如下格式的文本行所构成:
module-type control-flag module-path arguments
每个字段的含义和/etc/pam.conf中的相同。
由于公司使用的是RedHat的linux故此我将使用pam.d这个配置目录。密码复杂度通过/etc/pam.d/system-auth这个文件来实现的故此我们先看一下默认有什么内容然后将这个文件备份一个:
  在这个文件中我们会用到pam_cracklib.so这个模块。pam_cracklib.so是一个常用并且非常重要的PAM模块。该模块主要的作用是对用户密码的强健性进行检测。即检查和限制用户自定义密码的长度、复杂度和历史等。如不满足上述强度的密码将拒绝使用。
pam_cracklib.so比较重要和难于理解的是它的一些参数和计数方法,其常用参数包括:
debug:将调试信息写入日志;
type=xxx:当添加/修改密码时,系统给出的缺省提示符是“New UNIX passwZhttp://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink"vcmQ6obHS1LywobBSZXR5cGUgVU5JWDxicj4KcGFzc3dvcmQ6obGjrLb4yrnTw7jDss7K/b/
J0tTX1Lao0uXK5Mjrw9zC67XEzOHKvrf7o6yxyMjn1ri2qHR5cGU9eW91ciBvd24gd29yZKO7PGJyPgpyZXRye
T1Oo7q2qNLltcfCvC/Q3rjEw9zC68qnsNzKsaOsv8nS1NbYytS1xLTOyv2juzxicj4KRGlmb2s9TqO6tqjS5d
DCw9zC69bQsdjQ69PQvLi49tfWt/vSqtPrvsnD3MLrsrvNrKGjtavKx8jnufvQwsPcwuvW0NPQMS8y0tTJz7XE
19a3+9PrvsnD3MLrsrvNrMqxo6y4w9DCw9zC672rsbu908rco7s8YnI+Cm1pbmxlbj1Oo7q2qNLl08O7p8
Pcwuu1xNfu0KGzpLbIo7s8YnI+CmRjcmVkaXQ9TqO6tqjS5dPDu6fD3MLr1tCx2NDrsPy6rLbgydm49sr919ajuzxicj4Kd
WNyZWRpdD1Oo7q2qNLl08O7p8PcwuvW0LHY0Ouw/LqstuDJ2bj2tPPQtNfWxLijuzxicj4KbGNyZWRpdD1Oo7q2q
NLl08O7p8PcwuvW0LHY0Ouw/LqstuDJ2bj20KHQqdfWxLijuzxicj4Kb2NyZWRpdD1Oo7q2qNLl08O7p8Pcwuv
W0LHY0Ouw/LqstuDJ2bj2zNjK4tfWt/ujqLP9yv3X1qGi19bEuNauzeKjqaO7PGJyPgo8L3A+CjxwPrj5vt3O0r
XE0OjSqs7SvavD3MLrst/C1NbGtqjI58/Co7qx2NDrsPy6rNbBydnSu7j20KHQtNfWxLihosr919ahoszYyuLX1rf7o6z
D3MLrs6S2yNbBydk3zrujrNTac3lzdGVtLWF1dGjOxLz+1Pa808jnz8LE2sjdo6yxo7TmuvPNy7P2o7o8L3A+CjxwPjxpb
Wcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140924/2014092409230757.png" alt="/"
(注)*credit=-1表示至少有一个的意思。
然后配置login.defs,这个文件主要是配置密码有效期,其中的PASS_MIN_LEN这个参数在我们配置了上一个文件之后在这里是不起作用的。其他
  PASS_MAX_DAYS 99999 #密码的最大有效期, 99999:永久有期
PASS_MIN_DAYS 0 #是否可修改密码,0可修改,非0多少天后可修改
PASS_MIN_LEN 5 #密码最小长度,使用pam_cracklib module,该参数不再有效
PASS_WARN_AGE 7 #密码失效前多少天在用户登录时通知用户修改密码
当设置完成这些之后我们可以去验证一下系统中已经存在的用户在设置密码的时候是否会强制验证密码复杂度,如下图所示如果不符合密码复杂度会提示错误信息:
  如果符合了你的密码复杂度就可以正常设置密码了。

  • 铏氭嫙鏈洪噷鐨linux绯荤粺鎬庝箞淇敼鐢ㄦ埛鐨勫瘑鐮佷綅鏁,涔熷氨鏄瀵嗙爜绛栫暐
    绛旓細vi /etc/login.defs 鍙d护璁剧疆鍙傛暟淇敼涓猴細PASS_MAX_DAYS 30 PASS_MIN_DAYS 0 PASS_MIN_LEN 8 PASS_WARN_AGE 7 vi /etc/pam.d/passwd 鍔犲叆password required pam_cracklib.so retry=3 minlen=8 涔熷氨鏄皢榛樿缁欐墍鏈夋柊寤虹殑鐢ㄦ埛璁剧疆30澶╀慨鏀瀵嗙爜锛屽瘑鐮佹渶鐭暱搴︿负8锛屽瘑鐮佽繃鏈...
  • 鍦LINUX绯荤粺涓浣曡缃己瀵嗙爜(瀹夊叏鎬ч珮)?
    绛旓細鍗拌薄閲 /etc/shadow 杩欓噷鐨勫瘑鐮佸彲浠ヤ粠 md5sum 鏂瑰紡鏇挎崲涓 sha256sum 銆傝繖鏍峰彲浠ユ彁楂樺畨鍏ㄥ害锛岄槻姝 md5sum 琚埅鍙栧悗琚汉纰版挒鍑烘潵涓涓彲鐢ㄧ殑瀵嗙爜銆備箣鍚庡氨鏄己瀵嗙爜鐨闂浜嗭紝杩欎釜涓嶆槸绯荤粺濡備綍璁剧疆鐨勯棶棰橈紝鑰屾槸鐢ㄦ埛濡備綍璁剧疆銆傝嚦灏 12 瀛楄妭锛岀鐞嗗憳鏉冮檺蹇呴』 16 瀛楄妭浠ヤ笂锛屾渶濂芥槸鐢ㄥぇ灏忓啓娣峰悎+鏁板瓧绗﹀彿銆傛渶濂...
  • linux涓嬩娇鐢╬am瀵嗙爜绛栫暐 鎬庝箞瀹炵幇涓嶈浣跨敤鍓3娆℃棫瀵嗙爜???
    绛旓細浣犵殑鎰忔濆氨鏄瘡娆璁剧疆瀵嗙爜鐨勬椂鍊欎笉鑳藉拰涓婁竴娆″瘑鐮侀噸澶嶆槸鍚э紝瀵嗙爜绛栫暐鍦/etc/pam.d/system-auth閲屼慨鏀筽assword涓厖鍒嗘潯浠秙ufficient鐨勯偅涓琛岋紝闇瑕佸姞杞絧am_unix.so闈欐佸簱鏂囦欢锛屽悗闈㈠湪鍔犱竴浜涘弬鏁帮紝濡傛灉浣犳病鏈夐偅涓琛岀殑璇濓紝灏遍渶瑕佽嚜宸卞姞浜嗭紝鏄厖鍒嗘潯浠跺晩锛屾垜鐨勭幆澧冩槸rhel6鐨勶紝瀹屾暣涓琛岀殑鍐呭鏄 password s...
  • 閲嶈绾㈠附Linux root瀵嗙爜:绠鍗曞疄鐢ㄦ寚鍗
    绛旓細棰勯槻绛栫暐锛氬瘑鐮佺鐞嗙殑鑹烘湳 涓轰簡闀夸箙瀹夊叏锛屾帹鑽愪娇鐢ㄥ鏉傚瘑鐮佸苟濡ュ杽淇濆瓨銆傚畾鏈熸洿鎹㈠瘑鐮侊紝灏卞儚鍒锋柊浣犵殑榄旀硶闃叉姢绯荤粺銆傛荤粨锛氳В閿乺oot瀵嗙爜鐨勭瓥鐣澶у叏 杩欑瘒鏂囩珷涓轰綘鎻ず浜嗗湪绾㈠附Linux绯荤粺涓噸缃畆oot瀵嗙爜鐨勫悇绉嶉斿緞锛屾棤璁轰綍鏃朵綍鍦帮紝鍙閬靛惊杩欎簺姝ラ锛屼綘灏辫兘鑷鍦版帉鎺т綘鐨凩inux涓栫晫銆傚畨鍏ㄥ湴浣跨敤锛屾槑鏅哄湴绠$悊锛屼綘鐨...
  • 濡備綍瀹屾垚Linux璐﹀彿鐨勫畨鍏ㄧ鐞嗗憿
    绛旓細瀹夊叏瀵圭瓥锛氶渶淇敼瀵嗙爜绛栫暐璁剧疆鏂囦欢灏嗗瘑鐮佹渶灏忛暱搴﹁涓8浣嶄互涓;瀹夊叏璁剧疆鏂规硶锛- SunOS1)浣跨敤vi缂栬緫鍣ㄦ墦寮"/etc/default/passwd"鏂囦欢 2)璁剧疆涓篜ASSLENGTH=8 - Linux1)浣跨敤vi缂栬緫鍣ㄦ墦寮"/etc/login.defs"鏂囦欢 2)璁剧疆涓篜ASS_MIN_LEN 8 - AIX1)浣跨敤vi缂栬緫鍣ㄦ墦寮"/etc/security/user"鏂囦欢 2)璁剧疆涓...
  • 濡備綍鍦Linux涓婅缃瀵嗙爜绛栫暐
    绛旓細鍑嗗宸ヤ綔 瀹夎 PAM 鐨 cracklib 妯″潡锛宑racklib 鑳芥彁渚涢澶栫殑瀵嗙爜妫鏌ヨ兘鍔涖 Debian銆乁buntu 鎴 Linux Mint 绯荤粺涓婏細 $ sudo apt-get install libpam-cracklib CentOS銆丗edora銆丷HEL 绯荤粺宸茬粡榛樿瀹夎浜 cracklib PAM 妯″潡锛屾墍浠ュ湪杩欎簺绯荤粺涓婃棤...
  • linux淇敼鐢ㄦ埛鍚瀵嗙爜linux鐢ㄦ埛鍚嶄慨鏀瑰瘑鐮
    绛旓細linux涓嬩慨鏀圭敤鎴峰瘑鐮佺殑鏂规硶锛1銆佹墽琛屻恜asswd鐢ㄦ埛鍚嶃戝懡浠わ紱2銆佹牴鎹彁绀鸿緭鍏ユ柊瀵嗙爜锛屽洖杞︼紱3銆佸啀娆¤緭鍏ユ柊瀵嗙爜锛屽洖杞﹀嵆鍙?Linux淇敼瀵嗙爜鐢╬asswd鍛戒护锛岀敤root鐢ㄦ埛杩愯passwd锛宲asswduser_name鍙互璁剧疆鎴栦慨鏀逛换浣曠敤鎴风殑瀵嗙爜锛屾櫘閫氱敤鎴疯繍琛宲asswd鍙兘淇敼瀹冭嚜宸辩殑瀵嗙爜銆傜櫥褰昹inux鎻愮ず淇敼瀵嗙爜锛焞inux鍙互璁剧疆瀵嗙爜绛栫暐...
  • Linux鏈嶅姟鍣ㄧ殑瀹夊叏闃叉姢閮芥湁鍝簺鎺柦
    绛旓細涓銆佸姞寮瀵嗙爜绛栫暐 瀵嗙爜鏄櫥褰昄inux鏈嶅姟鍣ㄧ殑蹇呰鏉′欢銆傝嫢瀵嗙爜璁剧疆钖勫急锛岄粦瀹㈠彲鑳借交鏉剧牬瑙c傜壒鍒槸瓒呯骇绠$悊鍛橈紙root锛夎处鎴凤紝鑻ュ瘑鐮佺鐞嗕笉褰擄紝鍙兘瀵艰嚧涓ラ噸鍚庢灉銆傜敤鎴峰簲閬垮厤浣跨敤鐢熸棩銆佸鍚嶇瓑鏄撶寽淇℃伅浣滀负瀵嗙爜锛岃屽簲閫夋嫨鍖呭惈澶у皬鍐欏瓧姣嶃佹暟瀛楀拰鐗规畩瀛楃鐨勫鏉傜粍鍚堬紝浠ユ彁楂樼牬瑙i毦搴︺備簩銆佷弗鏍肩櫥褰曠敤鎴风鐞 Linux绯荤粺...
  • 濡備綍淇濊瘉Linux鎿嶄綔绯荤粺涓嬬殑瀵嗙爜瀹夊叏
    绛旓細鍦≧ed Hat绯荤粺涓紝pwconv宸ュ叿鑳藉鎶婇潪shadow 瀵嗙爜杞崲鎴恠hadow瀵嗙爜鏍煎紡銆傝娉ㄦ剰锛屽悇涓増鏈殑Linux绯荤粺鐨绫讳技宸ュ叿鍦ㄤ娇鐢ㄤ腑鍚勬湁涓嶅悓锛岃鍙傜収鎮ㄧ殑鏂囨。鏉ュ畬鎴愪笂杩板伐浣溿傛荤粨绯荤粺绠$悊鍛樺彲浠ラ噰鍙栧悇绉嶇瓥鐣ユ潵纭繚瀵嗙爜瀹夊叏銆備絾棣栧厛瑕佽鐢ㄦ埛浠槑鐧藉瘑鐮佸畨鍏ㄧ殑閲嶈鎬э紝鍚屾椂鍒跺畾瀵嗙爜绛栫暐鏉ュ己鍒瀵嗙爜璁剧疆瑙勮寖銆傝繖鍖呮嫭纭畾鍙帴鍙...
  • Linux 鐢ㄦ埛瀵嗙爜绛栫暐(鍩轰簬涓嶅悓鐨勭敤鎴疯缃笉鍚岀殑瀵嗙爜绛栫暐)
    绛旓細/etc/shadow 杩欎釜鏂囦欢鍙互閽堝鏌愪釜鐢ㄦ埛璁剧疆涓浜瀵嗙爜绛栫暐锛屼絾鏄唴瀹瑰氨閭d箞鍑犻」锛屼綘鍙互涓婄綉鏌ヤ竴涓嬨傚彟澶/etc/shadow鐨勭瓥鐣ョ瓑绾ц緝楂樸
  • 扩展阅读:linux修改用户密码策略 ... linux密码策略命令 ... 老式xp系统电脑可以换系统 ... linux密码策略怎么设置 ... windows密码策略设置 ... 如何查看密码策略 ... linux查看用户密码明文 ... linux系统修改密码 ... linux系统密码复杂度设置 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网