沃趣科技技术社区
行业前沿信息一网打尽
沃趣科技技术社区
行业前沿信息一网打尽
沃趣科技技术社区
行业前沿信息一网打尽
技术社区 > 数据库技术a|【Linux深潜】详解Linux系统自身安全调优配置

数据库技术a|【Linux深潜】详解Linux系统自身安全调优配置

2023年06月13日

01 前言


Linux系统上承载着各种业务,为了业务安全稳定运行,管理员会通过一些手段进行安全加固和漏洞防范。


如:从业务软件本身主要针对于内核或软件漏洞进行及时的修复;从系统角度出发,可以在系统的权限、资源、访问等方面进行安全加固。


本文将对系统自身的一些安全调优配置进行分析讲解。





02 用户相关

用户密码


针对口令密码要定期修改,linux在

/etc/login.defs配置文件中可以配置密码的长度、有效期、过期告警天数等



另外对于密码的组合复杂度要有要求,对于密码组合,要包含字母、数字、特殊字母来增加密码复杂度,可以在/etc/pam.d/system-auth中进行配置。 


密码尝试5次,长度大于8,包含数字、小写字母、大写字母、特殊字符等

password requisite  pam_cracklib.so try_first_pass retry=5 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=8


即使密码存在有消息,有时候还是习惯改成同样的密码,为了避免这种情况,可以配置拒绝使用重复密码,还是在/etc/pam.d/system-auth中进行配置,比如不适用最近3次修改的密码。

password  sufficient  pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=3


锁定连续失败5次的用户,120s后再重试

auth required pam_tally2.so deny=3 unlock_time=120 even_deny_root root_unlock_time=120



用户和文件权限


linux操作系统有三类用户:超级用户、普通用户、伪用户,比如普通用户通过susudo方式获取权限,在使用sudo时候,可以通过在/etc/sudoers中定义用户或者所属组的权限来进行权限管理。


# 组权限
%wheel    ALL=(ALL)    ALL

# 用户权限
wheel    ALL=(ALL)    ALL


文件系统针对user、group、other都有读写执行权限的控制,通过chmod进行控制这三个权限,执行程序有的采用755的权限,为了安全,默认我们可以不给other有任何权限,可以通过umask进行修改

export umask=027


针对于日志的文件系统,我们有时候限制日志文件系统的删除权限,防止恶意攻击,然后删除日志记录,所以对于系统一些常见的日志系统,比如message、dmesg、secure这些可以将赋予只能增加不能删除的权限。

chattr +a /var/log/messages



ssh远程访问权限控制


针对于ssh服务的一些安全优化主要有以下一些手段:


  • 修改端口号。

  • 使用v2版本协议,更加安全。

  • 不允许root用户ssh登陆。

  • 限制密码登陆认证,建议使用公钥认证。

  • 使用PAM管理,关闭GSSAPI的认证用来优化性能。

  • 内网ssh可以关闭DNS反向查询的功能。

  • 客户端的尝试次数限制。




系统层面需要定期更新openssh的版本,解决版本漏洞的问题,现在市面上很多的扫描软件对于openssh是一定会去建议优化和更新的。 


针对于黑白名单配置,一般策略就是开放内网业务主机和堡垒机之间的互联,其他的禁止登陆,早期使用hosts.allowhosts.deny进行黑白名单配置。


这个限制用到是TCP_wrappers,在早期的版本中openssh自带这个模块可以进行使用,比较新的openssh中已经没有这个模块的支持,所以要使用这个功能需要额外安装模块。


针对于黑白名单的问题,还有就是采用防火墙的方式进行相应的限制。



资源限制


资源限制的目的,为了让系统上核心的业务有足够的资源运行,否则有可能存在系统自带组件或者其他软件异常占用资源,导致核心业务受到影响。


limits.conf


linux可以限制用户进程使用资源的上限,比如最大打开文件个数、创建最大文件大小、最大内存等资源。


limits.conf配置文件中包括两个层面限制,软限制和硬限制,具体限制多大的值,这个要根据自己的业务需求进行配置,通过预先制定的限制,防止程序或者进程因自身问题或者被攻击而申请占用大量系统资源导致崩溃的问题。


图片


cgroup


cgroup主要用来限制或者隔离单个或者多个进程使用的CPU、内存、磁盘IO、网络等资源,cgroup为这些控制资源定义相应的子系统,部分子系统如下:


字段

含义

cpu

主要限制进程的 cpu 使用率。

cpuacct

自动生成关于 cgroup 中任务使用的cpu资源的报告。

cpuset

可以为 cgroups 中的进程分配单独的cpu节点或者内存节点。

memory

可以限制进程的 memory 使用量。

blkio

限制进程的单个io。

devices

控制进程能够访问某些设备。

net_cls

使用类标识符 ( classid ) 标记网络数据包,允许 Linux 流量控制器( tc 命令)识别源自特定 cgroup 任务的数据包。net_cls(iptables)的 子系统net_filter也可以使用此标签对此类数据包执行操作。使用 net_filter防火墙标识符 ( fwid ) 标记网络套接字,允许 Linux 防火墙(iptables命令)识别源自特定 cgroup 任务的数据包(skb->sk);

freezer

挂起或者恢复 cgroups 中的进程。


cgroup提供一种对进程进行分层分组的标记方法,并且对其应用资源进行限制,会有以下几种关系:


  • 单个层次结构可以附加在一个或者多个子系统上。

  • 一个子系统只能附加在一个层级上。

  • 单个任务可以在多个 cgroup 中,只要每个 cgroup 位于不同的层次结构中。

  • 子任务继承父任务的cgroup,也可以单独划分cgroup的。


比如限制某一个进程的CPU使用率

cd /sys/fs/cgroup/cpu/ 
mkdir test
cd test
echo 3456 > cgroup.procs # 3456为限制进程的id
### 绑定核
echo "0" > cpuset.cpus
### 限制CPU使用率
echo "100000" > cpu.cfs_quota_us


systemd


在7.x的操作系统中,默认情况下开始使用systemd管理服务,通过systemd做资源隔离,实际底层还是cgroup功能的。


systemd可以通过Unit资源控制,Unit包括services, slices, scopes, sockets, mount points, 和swap devices六种。

 
限制方式有两种


  • 在配置文件中systemctl set-property 命令设置 cgroup 的限制,比如限制CPU使用率

systemctl set-property myservice.service CPUQuota=200%


  • 在systemd的service的配置文件中添加相应的限制参数。


### 打开cpu、内存、进程、IO、访问控制等方面统计,然后通过相应的控制参数进行资源限制
CPUAccounting=yes
MemoryAccounting=yes
TasksAccounting=yes
IOAccounting=yes
IPAccounting=yes

### 部分资源控制参数
CPUQuota=
MemoryMax=
TasksMax=
IOWeight=
IPAddressDeny=



其他限制


  • profile配置文件中配置HOSTSIZE:这个选项表示的是历史记录条数,可以减少history的条数,比如10条以下。


  • 终端命令审计,这个有一些成熟方案可以套用,主要功能是记录终端上执行的命令、ip、用户等信息。


  • 日志审计,可以使用audit服务进行审计配置,如果对于性能要求很高的业务不建议使用,会有性能损耗。


  • 禁用ctrl+alt+del:这个可以进行修改,将这个文件/usr/lib/systemd/system/ctrl-alt-del.target重命名掉,可以禁用ctrl+alt+del快捷键。


  • sendoh用户权限:默认我们会在/etc/sudoers中给了所有的权限,不建议将这个权限限制,cloud和qdatamgr命令需要权限执行一些数据采集的操作。


  • 非活跃终端退出时间:在/etc/profile中增加export TMOUT=120,如果终端在120s的时候不操作,则自动退出,对于一体机是没有影响的。


  • 禁止icmp重定向,防止icmp重定向欺骗攻击。


让数据库基础设施更简单
加速企业数字化转型建设及落地
立即咨询

沃趣科技

中立的企业级数据库云
十年磨一剑十年来始终如一的专注数据库生态领域
夯实技术底蕴打造最适合时代的数据库基础设施
业绩持续领先目前已累计服务超3000家企业客户

留言咨询

完善信息,我们第一时间跟您联系
姓名
手机
公司
所在地区
咨询问题