一。TCP WRAPPERS

1.TCP WRAPPERS的作用是什么?

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

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

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

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

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

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

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

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

TCP WRAPPERS、denyhosts软件的安装和配置、PAM身份认证模块应用客户端进行测试,客户端的IP是192.168.1.0网段的,查看是否可以访问vsftpd服务。

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

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

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

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

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

2.配置

TCP WRAPPERS、denyhosts软件的安装和配置、PAM身份认证模块应用相关参数解释:

       ############ 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

设置启动脚本

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

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

设置开机启动

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

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

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

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

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

4. denyhos使用

如果不想让主机拒绝某一个ip,做法如下sshd: 192.168.1.40  #允许192.168.1.40访问该主机的ssh服务TCP WRAPPERS、denyhosts软件的安装和配置、PAM身份认证模块应用

客户端进行测试
TCP WRAPPERS、denyhosts软件的安装和配置、PAM身份认证模块应用

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

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

客户端进行测试

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

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

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

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

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

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

3.配置文件的内容如下

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

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

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

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

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

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

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

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

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

optional: 可选

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

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

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

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

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

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

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

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

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

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

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

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

pam_whell.so模块行去掉注释行

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

测试

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

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

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

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

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

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

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

6.例二:禁止tomtty2登陆

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

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

TCP WRAPPERS、denyhosts软件的安装和配置、PAM身份认证模块应用不管是切换成为tom,还是以tom身份登陆,都被禁止。

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

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

session    required      pam_limits.so

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

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

tom           hard          nofile                  2

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

测试

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

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

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

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

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

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

查看日志

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