tcp_wrapper、sudo、nsswitch、pam-阿里云开发者社区

开发者社区> 技术小胖子> 正文

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



     本文转自little_ding 51CTO博客,原文链接:http://blog.51cto.com/12496428/1970078,如需转载请自行联系原作者








版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
6907 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7751 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
5456 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
9424 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
2139 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
16819 0
13262
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载