TCP WRAPPERS、denyhosts软件的安装和配置、PAM身份认证模块应用

一。TCP WRAPPERS

1.TCP WRAPPERS的作用是什么?

保护服务器的一些服务,可以限制客户端访问这些服务。

TCP WRAPPERS支持那些服务?判断一个服务是否支持TCP WRAPPERS的保护有那些方法?

查看该服务是否加载libwrap,查看该服务是不是基于xinetd服务。

ssh ,vsftpd,telnet,http(不支持wrap模块)ipop3

wKioL1YSamfC_qZJAAGArXH2kp4433.jpg

2.检查服务是否支持被TCP WRAPPERS保护

wKiom1YSa7TzNMFPAAHD3fv7xQE346.jpg

3、防护规则存放在

/etc/hosts.allow

/etc/hosts.deny

策略应用规律

先检查hosts.allow,有匹配则允许

否则再检查hosts.deny,有匹配则拒绝

若两文件中均无匹配,默认为允许

4、规则的格式

服务列表:客户机列表

 关于客户机地址

可使用通配符  ?    *

网段地址,如  192.168.4. 

                    或者192.168.4.0/255.255.255.0

区域地址,如  .tarena.com

5、例:

仅允许以下客户机访问VSFTPD

网段:192.168.4.0/24

IP范围:192.168.7.1-192.168.7.20

wKiom1YSbr_xH-xmAAHDiF4_wX8354.jpg客户端进行测试,客户端的IP是192.168.1.0网段的,查看是否可以访问vsftpd服务。

wKioL1YScuqjxtDgAAEx3IQjam8026.jpg

二。denyhosts
denyhosts是python语言程序,借用tcp_wrapper程序来进行主机防护。作用:防止暴力破解服务器用户密码。

1.解压软件包,安装denyhosts软件,默认是安装到/usr/share/denyhosts目录

wKioL1YSe_6QEQAGAAE0RJTsOl0876.jpg

wKiom1YSfDDwCueeAADs81_D0Kc511.jpg

2.配置

wKioL1YSfp7zWSNRAADoSrffHSU916.jpg相关参数解释:

       ############ THESE SETTINGS ARE REQUIRED ############

SECURE_LOG = /var/log/secure
HOSTS_DENY = /etc/hosts.deny
PURGE_DENY = 1w #过多久后清除已经禁止的,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
BLOCK_SERVICE  = sshd
DENY_THRESHOLD_INVALID = 3 #允许无效用户失败的次数
DENY_THRESHOLD_VALID = 5 #允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5 #允许root登陆失败的次数
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /usr/share/denyhosts/data
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/lock/subsys/denyhosts

 ############ THESE SETTINGS ARE OPTIONAL ############

ADMIN_EMAIL = [email protected] #若有ip被禁用发邮件通知
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <192.168.0.1@localhost>
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=1d #有效用户登录失败计数归零的时间
AGE_RESET_ROOT=1d #root用户登录失败计数归零的时间
AGE_RESET_RESTRICTED=1d
AGE_RESET_INVALID=10d #无效用户登录失败计数归零的时间

######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE  ##########

DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h

设置启动脚本

wKioL1YSf03xX-xTAAGpIUZFRJI808.jpg

wKioL1YSf6ixa4FFAAFwEwPt6co728.jpg

设置开机启动

wKioL1YSgCWxz2oDAADaWM8APjw473.jpg

3.启动服务,出现一下错误,解决的方案。

wKiom1YSgsWy3K6MAAF3ygFyQCM573.jpg

wKiom1YSgyOS2N2QAAE8oIvZ4wQ565.jpg

wKiom1YShcXDPzaGAAD2NOx443A110.jpg

4. denyhos使用

如果不想让主机拒绝某一个ip,做法如下sshd: 192.168.1.40  #允许192.168.1.40访问该主机的ssh服务wKioL1YShouQrtn-AAIs60AWSOQ297.jpg

客户端进行测试
wKiom1YSiHXDeqBsAACKxUK_J0Y372.jpg

如果想拒绝某一个ip同样使用vi /etc/hosts.deny添加就Ok

wKiom1YSiP_CwSRJAALna3BtTw0669.jpg

客户端进行测试

wKiom1YSiSLCp5qWAACrUIqQ3FE712.jpg

三。PAM可插拔身份认证模块

1.PAM配置文件存放目录位置。

wKiom1YTlnqAHW45AAPxqGM64j0119.jpg

2.PAM模块存放的目录位置

wKiom1YTlruhAE-KAAU1ChR-k44732.jpg

3.配置文件的内容如下

第一列是认证类型,可用的选项有:

account: 执行基于用户管理的非认证行为操作。典型的,它可以限制用户的登陆时间、可用的系统资源。

auth: 这个模块提供了验证用户的两个方面。首先,它认证用户是他声称的那个人(比如用密码验证);其次,它赋予用户组成员身份或其他权限。

password: 当用户修改密码时,需要这个模块。

session: 当赋予用户某些服务之前或之后,要执行哪些操作。例如用户在访问数据时执行写日志操作。

第二列是控制方式,可用的选项有:

required: 检查结果失败,最终一定会失败,但是仍然检查后续项

requisite: required类似。只不过该项检查失败,立即停止后续检查项。

sufficient: 该项检查成功,立即通过,不再检查后续项。如果该项检查失败,也不意味着最终会失败。

optional: 可选

include: 包含另一个文件的内容

第三列是调用的模块,这些模块位于/lib64/security/目录下

4.模块对应查找的文档。

wKiom1YTo2vCPHd_AAD0F-oJo2k975.jpg

5.以su为例子,对pam模块进行分析

wKioL1YTl66gpR8GAAIA2V00y2M599.jpg

1root用户可以不输入密码就切换成其他用户,原因是pam_rootok.so模块是判断当前用户UID是否是0(也就是root用户),那么就直接返回成功(sufficient是充分条件),给pam_rootok.so模块行添加注释后,进行测试。

wKioL1YTmF_xcyeAAAH9s_oDgwc621.jpg

pam_rootok.so模块行添加注释后,测试发现root用户切换到其他用户的时候也需要输入密码,正确输入密码后可以登录。

wKiom1YTmX7x3wGGAAC0xkQZ7kM426.jpg

2)如果一个用户是wheel组的成员,那么,该用户可以直接执行su,而不用输入密码:pam_whell.so模块是只要用户输入whell组,那么就满足条件,可以执行该操作。

wKiom1YTndKjt5erAAEftsHc0LQ571.jpg

pam_whell.so模块行去掉注释行

wKiom1YTmeHBUw8TAAEBObWHMD4071.jpg

测试

wKiom1YTn2nzg05YAAHXqcMheLE798.jpg

3)只有wheel组的成员才可以切换成root用户

wKioL1YToVWA5JS4AAEgD3OVTbM997.jpg

required是一个必要条件,不是充分条件,lj是wheel组的,但是切换到root用户还是要输入密码。

wKiom1YTofGjABJdAABvMKwwDlE375.jpg

tom不是 wheel组的,而且required是一个必要条件,所以tom用户切换到root用户即使输入正确的密码提示也是错误。

wKioL1YTop6CsJARAACB4WZ1pqA098.jpg

6.例二:禁止tomtty2登陆

wKioL1YTqWiwVSZ3AABH1l2NQUE418.jpg

wKioL1YUdBCAyh74AAEIeLpaqPY819.jpg

wKiom1YUdFOR2xR2AABwqoCBs6I572.jpg不管是切换成为tom,还是以tom身份登陆,都被禁止。

7.例三:只允许tom用户打开两个文件

查看/etc/pam.d/system-auth中包含

session    required      pam_limits.so

wKiom1YUczbSOyhnAABxda1OYb0060.jpg

 # vim /etc/security/limits.conf ,尾部增加

tom           hard          nofile                  2

wKioL1YUc7WiC9BLAAByuqI5pWw410.jpg

测试

wKiom1YUeNfhzurFAABiONK2-nM994.jpg

8.例四:创建文件/etc/vsftpd/ftpgrps,该文件中的组不能访问ftp

wKioL1YUhFmhlYwJAAD5BpPPOtQ682.jpg

wKiom1YUhDTT9r4YAAH4drdvJqE300.jpg

验证,tom登陆ftp,登陆不成功,检查/var/log/secure日志

wKioL1YUhQrTW-ayAAEvvKZfaKo512.jpg

查看日志

wKiom1YUhTXgiBFMAARe0z1UQmc481.jpg

你可能感兴趣的:(tcp,Wrappers,PAM身份认证模块应用)