【Linux运维】第十章:系统安全与PAM认证与端口扫描

第十章:系统安全与PAM认证与端口扫描
一、系统账号安全;
二、用户提权和切换;
三、系统引导和登陆控制;
四、PAM认证;
五、NMAP端口扫描;

一、系统账号的安全:
1.清理系统中无用的账号:userdel -r
  锁定长期不用的账号:usermod -L 用户名
  解锁账号:usermod -U 用户名
  查询账号状态:passwd -S 用户名
  查询可登陆系统的账号数量:grep bash$ /etc/passwd |wc -l
2.修改用户的登陆shell:chsh -s /bin/bash 用户名
3.锁定账号文件:chattr +i /etc/{passwd,shadow}(注:锁定状态下无法对文件进行更改,也无法创建删除用户)
  查看账号文件的状态:lsattr /etc/passwd
  解锁账号文件:chattr -i /etc/passwd
4.修改账号的密码策略:
  语法:chage [选项] 时间 用户名		(注:以天为单位)
  选项:-m  ##修改密码最短使用时间
	   -M  ##修改最长使用时间
	   -d 0  ##设置用户登录时必须修改密码
	   -W   ##修改密码过期提醒时间
5.历史命令的管理:
  概述:本次登陆的历史命令会保存在内存中,在注销时,历史命令会保存到文件中;
  管理:history       ##查看内存中的历史命令,退出时会保存到用户家目录中的.bash_history文件中;
	   history -c	  ##清除内存中的历史命令,不清除历史命令文件
	   cat .bash_history		##查看家目录下的历史命令保存的文件
	   :>.bash_history		##清除保存的历史命令的文件
6.终端自动注销:
  echo "export TMOUT=600" >>/etc/profile
  source /etc/profile
二、用户提权和切换;
1.su切换用户:
  概述:普通用户与管理员之间的相互切换;
  语法:su - 用户名
  选项:-代表切换用户后,使用其新用户的shell环境;
  禁止普通用户使用su切换:
	sed -i '6s/^#//g' /etc/pam.d/su		##开启pam.wheel.so模块
	gpasswd -a 用户 wheel				##将用户添加到wheel组内
	grep wheel /etc/group				##只有wheel组内成员才可以使用su命令
2.sudo提权命令:
  概述:管理员授权命令给普通用户,执行命令时不需要root密码,便于精确控制普通用户使用命令;
  语法:visudo			##root设置可以使用sudo命令的用户,设置哪个用户在哪台主机使用哪个命令,ALL代表所有主机,NOPASSWD:ALL代表不需要密码执行所有命令;
		用户名 主机或ip地址=命令的绝对路径
	   :wq
	   sudo 命令			##普通用户执行命令
	   sudo -l				##普通用户查看自己可以执行的命令列表
三、系统引导和登陆控制;
1.禁用Ctrl+alt+del热键:
  sed -i '11s/^/#/g' /etc/init/control-alt-delete.conf			##注释掉文件中的第十一行
2.为GRUB菜单设置密码;
  grub-md5-crypt		##生成加密字符串
  在/boot/grub/grub.conf配置文件中,在hiddenmenu行和title行中间添加
  password --md5 $1$hAVRJ/$pZC65twFnqQZpwFhZs.J70		##设置加密字符串密码
  password=123123			##设置明文密码
3.控制tty终端启动的数量:
  vi /etc/sysconfig/init
    ACTIVE_CONSOLES=/dev/tty[345]
  vi /etc/init/start-ttys.conf
    env ACTIVE_CONSOLES=/dev/tty[345]
4.禁用root登陆的tty终端:
  vi /etc/securetty		##禁用tty5登陆root用户,文件中vc为虚拟终端;
    #tty5
5.禁用普通用户登录系统;
  touch /etc/nologin			##创建此文件则普通用户无法登陆系统
四、PAM认证;
1.概述:Linux-PAM(linux可插拔认证模块):一种高效并且灵活便利的用户级别认证方式,是当前linux服务器普遍使用的认证方式。提供对所有服务进行认证的*机制,适用于login,远程登录(telnet、ftp等)、su等应用程序。
2.系统处理请求流程;    

【Linux运维】第十章:系统安全与PAM认证与端口扫描

3.PAM认证的构成; 

【Linux运维】第十章:系统安全与PAM认证与端口扫描

4.PAM认证类型;
  auth:认证管理,接收用户名密码等信息,认证该密码是否正确;
  account:账户管理,检查账户是否被禁用、是否允许登录系统、是否过期、是否有限制等;
  session:会话管理,在用户登录前和用户退出后的会话进行管理和记账;
  password:密码管理,主要用来修改用户的密码;
5.PAM控制类型;
  required:验证失败时仍然继续,但返回fail;
  requisite:验证失败时则立即结束整个验证过程,返回fail;
  sufficient:验证成功则立即返回,不再继续,否则忽略结果则继续验证;
  optional:不用于验证,只是显示信息(通常用于session会话类型);
6.案例:
a.优化密码复杂性要求
[[email protected] ~]# useradd u01
[[email protected] ~]# passwd u01
[[email protected] ~]# vi  /etc/pam.d/system-auth
14  password    requisite     pam_cracklib.so try_first_pass retry=3 type=  minlen=8 dcredit=-2 ucredit=-1 lcredit=-1 ocredit=-1	##长度最小值8,至少有2个数字,至少有1个大写、小写、特殊字符
15 password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=3   ##密码历史
:wq
[[email protected] ~]# su  - u01  ##进入u01
[[email protected] ~]# passwd   #修改密码验证

b.设置登录失败次数锁定账号;
[[email protected] ~]# vi  /etc/pam.d/system-auth 		 ##本地登录
第5行添加:
auth   required    pam_tally2.so  deny=5 unlock_time=180  quiet
第11行添加:
account    required   pam_tally2.so
:wq
[[email protected] ~]# vi   /etc/pam.d/password-auth 		 ##远程登录
第5行添加:
auth    required   pam_tally2.so   deny=3  unlock_time=180  quiet
第11行添加:
account   required   pam_tally2.so   
:wq
使用虚拟机登录u01账号,连续输入错误密码5次,第六次输入正确密码,发现也登录失败;
使用root账号为普通用户u01解锁;
[[email protected] ~]# pam_tally2  -u  u01    			##查看登陆失败记录
[[email protected] ~]# pam_tally2  --reset  -u  u01  		##重置状态
再次使用虚拟机尝试登录u01账户,发现没问题;

五、NMAP端口扫描;
1.概述:NMap是一个强大的端口扫描类安全评测工具;
2.语法:nmap 选项 扫描类型  目标
	推荐扫描类型:-P0  ##主机禁止ping也能扫描			-sU		  ##UDP扫描
				-sT   ##TCP扫描					-sO		  ##IP协议扫描
	选项:-p指定端口
	目标:有域名、ip、网段
3.案例:
[[email protected] ~]# nmap -sU 127.0.0.1			##检测主机开放的udp端口
[[email protected] ~]# nmap -sT 127.0.0.1				##检测主机开放的tcp端口
[[email protected] ~]# nmap -sT www.bdqn.com		##可以扫描京东、淘宝的网站
[[email protected] ~]# nmap -sT 192.168.13.251 |grep ftp
[[email protected] ~]# nmap -sT 192.168.13.251
[[email protected] ~]# nmap -sO 192.168.100.100		##扫描IP协议的开放端口
[[email protected] ~]# nmap -A -O www.bdqn.com
[[email protected] ~]# nmap  -vv  www.baidu.com 	 ##显示扫描过程
[[email protected] ~]# nmap  -A  -O  192.168.3.5  	 ##扫描OS,端口,MAC能信息
[[email protected] ~]# nmap  -p  21,22,23,139,445,80,25,110  192.168.100.0/24       ##扫描整个192.168.100网段是否开放这些端口
[[email protected] ~]# nmap -sP 192.168.100.0/24				##对一个网段的主机进行ping检测,查看存活主机

【Linux运维】第十章:系统安全与PAM认证与端口扫描
【Linux运维】第十章:系统安全与PAM认证与端口扫描