tcp_wrapper、sudo、nsswitch、pam

下面介绍的是服务与安全管理的tcp_wrapper、sudo、nsswitch、pam

一、tcp_wrapper

1、tcp_wrapper基础 --------------------tcp封装器

tcp_wrapper依赖的库文件:libwrap.so

(1)、判断是否受tcp_wrapper访问控制:动态链接(libwrap.so库文件)、静态链接(strings命令)

动态链接至libwrap.so库的应用程序:# ldd /PATH/TO/APP_FILE | grep libwrap

静态库文件应用程序:# strings COMMAND

(2)、常见的基于tcp_wrapper访问控制的服务:sshd,vsftpd

几种服务:openssh、http、mysql、vsftpd、nfs、samba

2、tcp_wrappers的配置文件 ----------------------/etc/hosts.allow、/etc/hosts.deny

格式:daemon_list : client_list [[[: option] : option] ...]

(1)、daemon_list --------------应用程序文件名(/usr/sbin/*)

daemon_list的三种方式:单个程序文件名、多个程序文件名(逗号隔开)、所有应用程序(ALL)

(2)、client_list ------------3种方式

单个IP地址或主机名、网络地址、访问控制列表

client_list的四种访问控制列表:ALL、KNOWN、UNKNOWN、PARANOID

(3)、: option --------------3类选项

option的三类选项为:deny、allow、spawn

spawn:%c -------------------客户端信息

%s -------------------服务端信息

例:

daemon_list:ALL -------------所有的应用程序(进程)

client_list:172.16.0.0/255.255.0.0

172.16.

ALL ------------所有的主机

KNOWN ----------能正常访问的主机

UNKNOWN ---------不能正常访问的主机

: option:deny:拒绝访问规则,hosts.allow文件中

allow:允许访问规则,hosts.deny文件中

spawn:生成、发起、执行

例:

vsftpd : 172.16.0.0/16 : allow ---------------/etc/host.allow(默认允许)

vsftpd : ALL EXCEPT 172.16. EXCEPT 172.16.67.1 ------------------/etc/hosts.deny(默认拒绝)

例:针对sshd、vsftpd服务进行记录

sshd, vsftpd : ALL : spawn /bin/echo $(/bin/date) %c attempt login %s >> /var/log/tcpwrapper.log

二、sudo

1、sudo基础 ---------------以root用户身份执行

sudo的授权配置文件:/etc/sudoers

2、配置文件内容 ---------------/etc/sudoers

/etc/sudoers内容有两类:、别名的定义、用户规格(授权)

(1)、别名定义 --------------别名全大写

格式:Alias_Type ALIASNAME = item1, item2, ...

Alias_Type:User_Alias、Host_Alias、Runas_Alias、Cmnd_Alias:

Alias_Type -------------使用驼峰式

ALIASNAME -------------使用全大写

例:User_Alias USERADMINUSERS = tom, jerry, centos, suse, %myclass -----------------“%”在别名定义中,表示组。

Cmnd_Alias USERADMINCOMMANDS = /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root, /usr/sbin/usermod

(2)、用户规格(授权项): -----------------编辑/etc/sudoers,每行只有一个授权

格式为:who  where=(whom)  what

格式各部分解释如下:

who ----------授权的目标用户(5种方式)

username ---------------单个用户名称

#uid ------------单个用户UID

%groupname ------------指定组内的所有账户

%#gid -----------指定知道的GID的组,其内的所有用户账户

user_alias -------------定义过的别名

where --------------授权的客户端主机(3种)

ip/hostname ------------单个主机

Network Address --------------网络地址

host_alias -------------定义过的别名

whom -----------------真实身份,一般为root

what -------------授权运行的命令

command -------------单个命令

directory ------------目录下的所有命令

sudoedit ---------------授权可以执行sudo命令的用户

cmnd_alias ----------定义过的别名

例:little ALL=(root) /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root

例:little ALL=(root) /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/su ! /usr/bin/su root

注:visudo命令:-----------------编辑/etc/sudoers文件,具有【语法纠错】功能

(3)、sudo命令:----------------用户授权

格式:sudo [option]... command

常用选项:

-u user --------------指定用户身份

-l[l] [command] ------------------显示能以sudo运行的所有命令

(4)、授权中的标签

PASSWD --------------要有密码

NOPASSWD -------------可以没有密码

例:Cmnd_Alias USERADMINCOMMANDS = NOPASSWD: /usr/sbin/useradd, PASSWD: /usr/sbin/userdel, /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root, /usr/sbin/usermod

sudo的特殊命令:passwd、su、sudo、sudoedit

三、nsswitch

1、nsswitch基础 ---------------名称服务开关

名称解析:将自然语言,解析为机器语言的数字符号。

解析:根据关键字查找存储库,找出与关键字相关的信息。

通用框架:应用程序的调用接口

Linux中实现名称解析的通用框架:库(/lib64/libnss*, /usr/lib64/libnss*)

2、解析库应用程序的配置文件 ----------/etc/nsswitch.conf

格式:db: store_format1 store_format2 ....

查找键的返回状态:(4种)success、notfound、unavail、tryagain

状态返回值的响应:return、continue

3、getent命令 ------------从名称服务器得到响应

格式:getent database [key]

四、pam

1、pam基础 --------------通用的认证框架

Linux中实现pam的通用框架:库(/lib64/security/*)

2、配置文件 -------------/lib64/security/*

pam的配置文件有两种:全局配置文件、专用配置文件。其中,全局配置文件已经废弃。

(1)、全局认证配置文件 -------------------/etc/pam.conf

格式:application   type  control   module-path   module-arguments

(2)、专用配置文件 ------------------/etc/pam.d/*APP_NAME*

格式:type  control   module-path   module-arguments

type:

auth ---------------认证、授权

account ------------账号管理,与认证无关

password ------------用户修改密码时,密码的复杂度

session -------------附加操作

control:

required ----------------没有被满足,认证一定失败,认证过程并不中断

requisite ---------------没有被满足,认证一定失败,立即中断

sufficient ------------条件被满足,认证成功,立即中断

optional -------------不影响认证

include ----------------其他的配置文件包含到当前位置,类似复制

substack ---------------复制,并在子栈运行,不影响主栈

module-path ---------------可以是相对路径、绝对路径

module-arguments ------------默认模块参数

例:auth required pam_shells.so --------------------pam_shells.so模块的认证

3、pam_limits.so模块 -------------限制用户会话过程中对各种系统资源的使用情况

格式:pam_limits.so [ change_uid ] [ conf=/path/to/limits.conf ] [ debug ] [ utmp_early ] [ noaudit ]

配置文件: --------------/etc/security/limits.conf、 /etc/security/limits.d/*

格式:<domain> <type> <item> <value>

doemain: ----------------用户名/组名

username ---------------单个用户名称

%groupname/@groupname ------------指定组内的所有账户

type: ----------------软/硬限制,不同于磁盘配额中的软限制和硬限制

hard:------------硬限制

soft:------------软限制

-:--------------任意

item:

core:-------------文件大小 (KB)

date:--------------最大数据大小(KB)

fsize:---------------最大文件大小(KB)

memlock:-------------最大可用内存空间(KB)

nofile:---------------最大可以打开的文件数量

rss:--------------最大可驻留空间(KB)

stack:-----------------最大堆栈空间(KB)

cpu:-----------------最大CPU使用时间(MIN)

nproc:-----------------最大运行进程数

as:--------------地址空间限制

locks:--------------最大锁定文件数目

nice:--------------nice值

maxlogins:--------------用户可以登录到系统最多次数

value:-----------------具体值

例:-------------/etc/security/limits.conf

@student hard nproc 20

@faculty soft nproc 20

@faculty hard nproc 50

ftp hard nproc 0

@student - maxlogins 4

4、pam_listfile.so模块 ------------------------实现基于用户/组、主机名/IP、终端的访问控制

格式:pam_listfile.so  item=[tty|user|rhost|ruser|group|shell]  sense=[allow|deny]  file=/path/filename onerr=[succeed|fail] [ apply=[user|@group] ] [ quiet ]

常用选项:

item=[tty|user|rhost|ruser|group|shell]:----------------对哪些列出的目标或者条件采用规则

sense=[allow|deny]:----------在配置文件中找到符合条件的项目时的控制方式。如果没有找到符合条件的项目,则一般验证都会通过

file=/path/filename:--------------------指定配置文件的全路径名称

onerr=[succeed|fail]:-------------------当出现错误时的缺省返回值

apply=[user|@group]:----------------规则适用的用户类型(用户或者组)

quiet

例:auth required pam_listfile.so \

onerr=succeed item=user sense=deny file=/etc/ftpusers

例:auth required pam_listfile.so \

onerr=fail item=user sense=allow file=/etc/loginusers

5、pam_time.so模块 -------------------提供基于时间的控制,用户只能在某个时间段内才能登录

格式:pam_time.so [ debug ] [ noaudit ]

常用选项:

debug:

noaudit:

配置文件:/etc/security/time.conf

格式:services;ttys;users;times

例:login ; tty* & !ttyp* ; !root ; !Al0000-2400

例:games ; * ; !waster ; Wd0000-2400 | Wk1800-0800

例:

# vim /etc/security/time.conf

login ; tty3 ; user1 ; al0100-0200   user1      1点到2点才能登录

login ; tty3 ; user1 ; all

sshd ; * ;  *  ;  al0100-0200

时间: 2024-11-10 11:11:06

tcp_wrapper、sudo、nsswitch、pam的相关文章

rsyslog、nsswitch、pam

rsyslog: 日志:历史事件日志历史事件:时间,事件事件级别(日志级别):事件的关键性程度: 事件:系统引导启动.应用程序启动.应用程序尤其是服务类应用程序运行过程中的一些事件:系统日志服务:syslog:syslogd: systemklogd:kernel 事件格式较为简单时,可统一由syslog进行记录:事件产生的日期时间 主机 进程[pid] :事件内容 支持C/S架构:可通过UDP或TCP协议提供日志记录服务: rsyslog:rsyslogd 特性:多线程:UDP,TCP,SSL

linux基础学习第二十三天之openssh、sudo

内容: 1.openssh的介绍和使用 (1)sshd的服务端配置 (2)基于密钥登陆ssh的使用 (3)scp的使用 (4)rsync的使用 2.sudo的介绍和配置使用 一.openssh OpenSSH与SSH协议是远程登录的首选连接工具.它加密所有流量,以消除窃听,连接劫持和其它攻击. OpenSSH的套件包括以下工具: 远程操作使用 SSH, SCP,和 SFTP. 密钥管理 ssh-add, ssh-keysign, ssh-keyscan和ssh-keygen 服务端组成 sshd

系统安全应用(文件加解锁、清除历史命令巧方法、sudo提权等),全程演练

今天和大家一起来探讨系统安全应用的演练,精彩的部分现在开始: 一.系统账号加锁.解锁演练 1.首先在linux远程控制xshell上查看passwd.shadow文件状态,及为未加锁状态2.第二,输入加锁命令,再次查看,显示已加锁状态3.此时我们重新输入命令建立一个用户wangwu,打开passwd中,没有wangwu的账号信息.TIP:即加锁状态下无法添加.删除用户,也无法更改登陆密码等账号信息. 二.密码安全控制操练 1.在远程终端上修改密码有效期,进入配置文件.2.将密码最长有效期改为30

linux centos7 中 su、sudo及禁止远程访问root

一. su命令 1.切换用户su - fxq su命令后带"- ",表示环境变量一起切换过去 [[email protected]_46_188_centos ~]# whoami root [[email protected]_46_188_centos ~]# Last login: Tue Aug  8 22:30:12 CST 2017 on pts/0 [[email protected]_46_188_centos ~]$ pwd /home/fxq [[email pro

Linux基本安全措施、加强系统账号密码安全、系统引导和登录安全、用户切换、su、sudo、grub菜单

1. 基本安全措施 1.1系统账号清理 在Linux系统中,除了用户手动创建的以外,还包括随系统或程序安装过程中生成的其他大量用户,除了超级用户root外,其他大量账号只是用来维护系统运作.启动或保持服务进程,一般是不允许登录的,因此也成为非登录用户. 常见的非登录用户有:bin.adm.lp.mail.nobody.mysql.dbus.ftp.gdm.haldaemon等.为了确保系统安全,这些用户的登录Shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人改动. 各种非

su root、sudo su、sudo -i的区别

这个su root就是一个切换用户命令,root是用户名,那么你需要输入的就是root账户的密码,但是ubuntu是禁用root登录的,所以给root设了个诡异的密码,它的密码并非你装的时候设的密码,但是可以开启root,不过建议别开启,要用什么root权限做事在前面加sudo就行了.如果你不开启的话根本就没法登,自然sudo root再输入密码无法登录了.而sudo su后面什么都不加默认就转到root了,你机器里就一个root是超级权限.而sudo时是你现在登录的这个用户sudo,密码就是你

系统自动安装及基本故障排除、sudo详解

系统安装过程 anaconda:stage2.img,主要提供安装的界面,包含txt.GUI界面 kickstart:三部分组成 1.命令段:定义的配置选项 必须指定的命令 keyboard us:键盘 lang en_US:语言 timezone Asia/Shanghai:时区 authconfig --useshadow:认证 bootloader --location:默认安装到mbr clearpart --initlabe1(初始化一个分区表) --linux(清除所有Linux分区

sudo 详解、用户以及组的创建删除。

一.用户名文件. root:x:0:0:root:/root:/bin/bash 共7部分. 1,用户名. 2,存放的是该帐号的口令,(密码)现存于/etc/shadpw/,所以现在用X表示. 3,代表用户标示号, uid 4,组 标示号,gid 5,注释说明.没有实际意义 6,用户的加目录. 7,用户的shell. 二.密码文件 user1:$6$X/dAMmCG$uLvF2l/Df/TgldEWVc7lL93bVxjKDpLStDWYcMD0DdN7a/VUwdl1PcEhYBOjTwOQd

linux 查看当前用户id、whoami用户列表、用户组、用户权限/etc/passwd、/etc/group、/etc/shadow以及切换用户身份、su、sudo、/etc/sudoers

一.查看当前用户之id.whoami 命 令:id 功能说明:查看显示目前登陆账户的uid和gid及所属分组及用户名 语 法:id [-gGnru][--help][--version][用户名称] 补充说明:id会显示用户以及所属群组的实际与有效ID.若两个ID相同,则仅显示实际ID.若仅指定用户名称,则显示目前用户的ID. 这个命令在溢出时经常用到,查看是不是溢出root成功,执行一下id命令,显示uid=0,则成功了. 参 数: -g或--group 显示用户所属群组的ID. -G或--g