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

一。TCP WRAPPERS

1.TCP WRAPPERS的作用是什么?

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

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

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

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

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

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

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

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

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

2.配置

相关参数解释:

############ 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 <[email protected]>
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

设置启动脚本

设置开机启动

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

4. denyhos使用

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

客户端进行测试

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

客户端进行测试

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

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

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

3.配置文件的内容如下

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

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

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

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

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

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

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

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

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

optional: 可选

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

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

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

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

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

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

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

pam_whell.so模块行去掉注释行

测试

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

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

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

6.例二:禁止tom从tty2登陆

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

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

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

session    required      pam_limits.so

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

tom           hard          nofile                  2

测试

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

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

查看日志

时间: 2024-08-23 13:05:26

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

Linux服务器安全策略配置-PAM身份验证模块(二)

○ 本文导航 关于PAM PAM身份验证配置文件 PAM配置文件语法格式 PAM模块接口 PAM控制标志 PAM配置方法 PAM身份验证安全配置实例 - 强制使用强密码(用户密码安全配置) - 用户SSH登录失败尝试次数超出限制后锁定账户(帐户锁定/解锁和时间设置) - 允许普通用户使用sudo而不是su(限制普通用户登录到root用户) - 禁止直接使用root用户通过SSH登录 pwgen复杂密码随机生成工具 关于PAM Linux-PAM (Pluggable Authentication

Keepalived高可用软件的安装与配置

监听和替换多台服务器之间的来回切换 一.安装tar zxvf keepalived-1.1.15.tar.gzcd keepalived-1.1.15./configure --prefix=/usr/local/keepalivedmake && make install # 这段配置只是为了使用的方便,可以不这样来操作--------------------------------------------------------------------------------cp ke

超级狗是集软件授权、课件保护和身份认证于一身的加密狗。

超级狗是加密狗家族中最新一代软件保护和授权产品.它提供了强大的软件.课件防盗版功能以及灵活的软件授权功能,保护软件开发商的知识产权与核心技术,确保开发商的市场收入. 超级狗将软件保护与授权技术化繁为简.通过易于理解.易于上手的外壳保护工具.许可设计工具,以及在线授权工具,软件开发商可以轻松地实现高强度的软件保护和多种授权模式. 在保持SafeNet一贯高品质.高稳定性.高安全性的基础之上,超级狗还提供了基于时间.功能控制的许可模式,同时拥有更友好.直观的用户界面和更简单的操作流程. 超级狗可以帮

Ubuntu 16.04服务器 软件的安装及配置

SSH的安装及配置 SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudoapt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server. 一.安装客户端 Ubuntu缺省已经安装了ssh client. sudo apt-get install ssh 或者 sudo apt-get instal

puppet安装于配置与编写简单模块

1.安装Puppet-server.puppet和facter 1 [[email protected] ~]# yum install puppet puppet-server facter -y #系统会自己安装一些ruby依赖包环境 2.配置puppet.conf注意:这个里面配置了两个certname名称,其中[master]中配置的certname是为所有节点认证用的master名称,[agent]中配置的certname是他本身agent的名称,当然不配置默认是和master的名称是

mysql运维管理-heartbeat高可用软件的安装及配置

部署Heartbeat高可用需求 1 操作系统 CentOS-6.8-x86_64 2 Heartbeat服务主机资源准备 主服务器A: 主机名:heartbeat-1-130 eth0网卡地址:192.168.1.130(管理IP) eth1网卡地址:10.0.10.4 (心跳IP) 从服务器B: 主机名:heartbeat-1-129 eth0网卡地址:192.168.1.129(管理IP) eth1网卡地址:10.0.10.5(心跳IP) 虚拟VIP: 虚拟VIP在主服务器heartbea

Java基础软件的安装及配置及Javascript的运行

1.Jdk的安装及环境变量配置: (1)计算机-属性-高级系统设置. (2)环境变量-系统变量-输入变量名JAVA_HOME-输入变量值C:\Program Files (x86)\Java\jdk1.7.0_79(jdk安装路径) (3)新建变量名CLASSPATH-输入变量值.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(固定格式) (4)新建变量名Path-输入变量值;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(固定格式

虚拟化存储软件的安装和配置

1.  首先下载iSCSI_initiator_2.07_2k3,然后根据你的系统来选择是安装64还是32位 2.  iSCSI_initiator_2.07_2k3安装完成后,在安装starwind.exe 3.  完成后打开starwind.exe,点击连接添加主机,主机就选择自己就行了 4.输入账号的密码 5.  打开存储软件,如图所示,激活存储软件 6.  新建存,步骤如下图所示 这样一个虚拟的网存储环境就搭建好了

Microsoft ADFS+Shibboleth配置联合身份认证+单点登录服务

前段时间因为客户需要搭建了一个单点登录(SSO)系统,使用Shibboleth实现的,能够在访问特定Web资源时将AD中的用户名和密码作为登录凭据,其中shibboleth作为SP,ADFS作为IdP. 基础测试服务器至少需要两个,一个(服务器a)安装Windows Server 2012用来实现ADCS.ADDS.ADFS和SQL Server,另一个(服务器b)安装CentOS 6.6用来实现Web服务器.shibboleth SP. 关键几个步骤如下:配置各个服务器组件.配置服务器证书.配