0
点赞
收藏
分享

微信扫一扫

【LINUX】centos系统配置-sudoers用户权限管理

1、概述

      由云数据库引发的一个思考,公司加强配置管理,则想通过apollo搭建一个配置中心;那么配置中心既可以方便配置,也可以方便查看配置。相关开发也有查询配置的权限,这里就会存在一个安全隐患。生产环境数据库的用户密码存在一定的风险,首先在设置生产环境项目访问数据库时,用户设置内网访问。但是测试环境开发环境与生产环境数据库都是同一个内网中,那么存在的安全隐患(开发通过配置中心看到的数据库用户密码修改生产环境数据)。

       为此,解决以上安全隐患有三种方式:

  • apollo侧进行用户密码加密处理(花费成本过大);
  • 云数据库侧限制内网IP访问(关联IP过多,新增服务器需要重新限制,过于繁琐);
  • 在测试开发环境通过iptables限制访问云数据库IP(虽然繁琐但不用反复处理)。

      其实,在测试开发环境通过iptables来限制访问的话,也会存在一个问题普通用户通过sudo也是可以iptables -F清空防火墙配置表,那么应该如何解决呢,通过sudoers用户权限来控制iptables使用(如普通开发无法sudo su - 和无法使用iptables命令)。


2、sudo与su区别


  • sudo命令需要输入当前用户的密码,su命令需要输入root用户的密码;
  • sudo命令只允许使用提升的权限运行单个命令,su命令会启动一个新的shell,同时允许使用root权限运行尽可能多的命令;
  • sudo su - 命令可以直接切换到root用户家目录,运维特别慎用


3、sudoers限制用户权限-iptables

3.1、修改sudoers配置文件(特别注意需要root权限,并且也需要强制保存)

# vim /etc/sudoers
front ALL=(ALL) NOPASSWD:ALL,!/usr/bin/su,!/usr/sbin/iptables,!/bin/chattr

      解释说明:

      front表示的是开发用户

      NOPASSWD:ALL表示sudo命令可以免密使用

      !/usr/bin/su表示禁止使用sudo su -

      !/usr/sbin/iptables表示禁止使用iptables

      !/bin/chattr表示禁止使用chattr

      特别注意命令需要加上绝对路径

      chattr加上i权限防止文件被普通用户修改

 保存文件特别注意如下图:

【LINUX】centos系统配置-sudoers用户权限管理_iptables

     限制配置文件/etc/sudoers和/etc/ssh/sshd_config,通过chattr命令加上i权限

[root@VM_0_5_centos ~]# chattr  +i /etc/sudoers
[root@VM_0_5_centos ~]# chattr +i /etc/ssh/sshd_config

3.2、检查用户权限

      su至front用户

[root@VM_0_5_centos ~]# su front
[front@VM_0_5_centos root]$

    检查NOPASSWD:ALL免密问题

【LINUX】centos系统配置-sudoers用户权限管理_centos_02

    检查sudo  su  - 命令是否可用

[front@VM_0_5_centos root]$ sudo su -

【LINUX】centos系统配置-sudoers用户权限管理_sudoers_03

      检查配置文件/etc/sudoers和/etc/ssh/sshd_config是否可被修改

[front@VM_0_5_centos root]$ sudo vim /etc/sudoers

【LINUX】centos系统配置-sudoers用户权限管理_sudo_04

[front@VM_0_5_centos root]$ sudo vim /etc/ssh/sshd_config

【LINUX】centos系统配置-sudoers用户权限管理_sudoers_05

      检查iptables和chattr是否可用问题

[front@VM_0_5_centos root]$ sudo iptables -nL
Sorry, user front is not allowed to execute '/sbin/iptables -nL' as root on VM_0_5_centos.
[front@VM_0_5_centos root]$ sudo chattr -i /etc/sudoers
Sorry, user front is not allowed to execute '/bin/chattr -i /etc/sudoers' as root on VM_0_5_centos

4、iptables配置

     以上权限完成通过root用户设置访问权限(限制访问线上数据库)

     命令格式:iptables -A OUTPUT -d 线上数据库IP -j DROP  拒接访问线上数据库,因为是拒接所有协议,所以是无法ping通

[root@VM_0_5_centos ~]#  iptables -A OUTPUT -d 172.16.0.17 -j DROP
[root@VM_0_5_centos ~]# iptables -A OUTPUT -d 172.16.16.5 -j DROP
[root@VM_0_5_centos ~]# iptables -A OUTPUT -d 172.16.16.9 -j DROP
[root@VM_0_5_centos ~]# iptables -A OUTPUT -d 172.16.16.16 -j DROP
[root@VM_0_5_centos ~]# iptables -A OUTPUT -d 172.16.16.3 -j DROP
[root@VM_0_5_centos ~]# iptables -A OUTPUT -d 172.16.32.15 -j DROP
[root@VM_0_5_centos ~]# iptables -A OUTPUT -d 172.16.16.10 -j DROP

    【LINUX】centos系统配置-sudoers用户权限管理_iptables_06

   本博客主要根据我工作中实际情况编写,望志同道合的运维者,多多交流;其实以上问题通过堡垒机可以得到有效解决,由于资源限制,只能通过如此方式解决。

举报

相关推荐

0 条评论