centos 安全配置基线

CentOS 是一个广泛使用的操作系统,为了确保系统的安全性,需要遵循一系列的安全基线。以下是详细的 CentOS 安全基线配置建议:

通过配置核查,CentOS操作系统未安装入侵防护软件,无法检测到对重要节点进行入侵的

解决方案:

  1. 安装入侵防护软件:

    • 首先,您需要选择一款入侵防护软件,如TripwireAIDEOSSEC

    • 使用yum安装所选择的软件,例如:sudo yum install tripwire

  2. 配置入侵防护软件:

    • 根据所选软件的文档进行配置,设置密钥文件、数据库和检查规则。

    • 初始化数据库并生成密钥文件。

    • 定义要监控的文件和目录的规则。

  3. 定期更新检查策略:

    • 根据系统使用情况和安全需求,定期更新检查策略和入侵防护软件。

  4. 监控和报警:

    • 软件会定期检查文件的完整性,并在发现异常时报告。

    • 配置邮件或其他通知机制来接收警报。

示例命令(以Tripwire为例):

# 安装Tripwire

sudo yum install tripwire

# 初始化Tripwire配置

sudo tripwire --init

# 配置Tripwire(编辑twpol.txt和site.pol等文件)

# 生成密钥对

sudo tripwire --genkey

# 建立数据库

sudo tripwire --create-db

# 之后,可以定期使用以下命令检查入侵:

sudo tripwire --check

确保检查并理解所选入侵防护软件的具体配置和使用说明。

一、系统防火墙及SE系统

1. 系统自带防火墙iptables(Centos6)

防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止)。如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略。
  一般而言,防火墙策略规则的设置有两种:一种是“通”(即放行),一种是“堵”(即阻止)。当防火墙的默认策略为拒绝时(堵),就要设置允许规则(通),否则谁都进不来;如果防火墙的默认策略为允许时,就要设置拒绝规则,否则谁都能进来,防火墙也就失去了防范的作用

基础命令
  • 启动: service iptables start
  • 关闭: service iptables stop
  • 查看状态:iptables -V
  • 重启 : service iptables restart
查看防火墙设置

主要分为5种规则类型数据包:
  进行路由选择前处理数据包(PREROUTING);
  处理流入的数据包(INPUT);
  处理流出的数据包(OUTPUT);
  处理转发的数据包(FORWARD);
  进行路由选择后处理数据包(POSTROUTING)

使用命令查看防火墙设置
iptables -L
    使用命令清除防火墙
    iptables -F
    
      设置防火墙策略

      使用iptables命令进行添加删减。

      开放指定的端口
      iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT   #允许本地回环接口(即运行本机访问本机)
      iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT   #允许已建立的或相关连的通行
      iptables -A OUTPUT -j ACCEPT   #允许所有本机向外的访问
      iptables -A INPUT -p tcp --dport 22 -j ACCEPT   #允许访问22端口
      iptables -A INPUT -p tcp --dport 80 -j ACCEPT   #允许访问80端口
      iptables -A INPUT -p tcp --dport 21 -j ACCEPT   #允许ftp服务的21端口
      iptables -A INPUT -p tcp --dport 20 -j ACCEPT   #允许FTP服务的20端口
      iptables -A INPUT -j reject   #禁止其他未允许的规则访问
      iptables -A FORWARD -j REJECT   #禁止其他未允许的规则访问
      
        屏蔽IP
        iptables -I INPUT -s 123.45.6.7 -j DROP   #屏蔽单个IP的命令
        iptables -I INPUT -s 123.0.0.0/8 -j DROP   #封整个段即从123.0.0.1到123.255.255.254的命令
        iptables -I INPUT -s 124.45.0.0/16 -j DROP   #封IP段即从123.45.0.1到123.45.255.254的命令
        iptables -I INPUT -s 123.45.6.0/24 -j DROP   #封IP段即从123.45.6.1到123.45.6.254的命令
        

          或者直接在路径/etc/sysconfig下,对文件iptables编辑。

          配置完成记得重启防火墙命令

          2. 系统自带防火墙firewalled(Centos7)

          基础命令
          • 启动: systemctl start firewalld
          • 重启: systemctl restart firewalld
          • 关闭: systemctl stop firewalld
          • 查看状态: systemctl status firewalld
          • 开机禁用 : systemctl disable firewalld
          • 开机启用 : systemctl enable firewalld

          前台可视化界面-防火墙设置也可以设置

          3. 开启SELinux服务(Centos7)

          SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。RHEL7系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。

          简单概述下基本的三种安全访问控制类型

          • MAC(强制访问控制类型)
          • DAC(自主访问控制类型) --通常就是ACL策略居多
          • RABC(基于角色访问控制类型)

          安全性MAC>RABC>DAC

          SELinux 有三种工作模式,分别是

          enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中,并且自动拦截

          permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中,只告警不拦截。一般为调试用。

          disabled:关闭 SELinux。不拦截不告警。

          配置文件路径:/etc/selinux,通过查看config,了解目前运行状态

          查看命令
          cat config
          

            或者使用命令进行查询

            [root@localhost selinux]# getenforce 
            Enforcing
            [root@localhost selinux]#
            临时修改命令(不用重启机器):[root@localhost selinux]# setenforce 0  --0设为宽容莫斯
            [root@localhost selinux]# getenforce 
            Permissive
            [root@localhost selinux]# setenforce 1  --1设为强制模式
            [root@localhost selinux]# getenforce 
            Enforcing
            [root@localhost selinux]#
            

              二、身份鉴别

              1.设置密码复杂度策略

              通过设置/etc/login.defs文件,进行密码策略设置

              PASS_MAX_DAYS 90
              

                #密码最大有效期

                PASS_MIN_DAYS 2
                

                  #两次修改密码的最小间隔时间

                  PASS_MIN_LEN 12
                  

                    #密码最小长度

                    PASS_WARN_AGE 7
                    

                      #密码过期前多少天开始提示
                      上述对新增用户有效,如需修改现有策略,需使用
                      chage命令

                      2.设置登录策略

                      使用cracklib模块设置密码复杂度
                      通过命令

                      rpm -qa|grep cracklib --查看服务是否运行
                      
                        (1)修改/etc/pam.d/system-auth,修改复杂度策略。

                        centos 6 找到 password requisite pam_cracklib.so这么一行替换成如下:

                        password requisite pam_cracklib.so retry=3 difok=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
                        

                          centos 7 找到password requisite pam_pwquality.so这么一行替换成如下:

                          password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
                          

                            参数含义:
                            #retry 允许重试的次数

                            #difok=N:新密码必需与旧密码不同的位数 difok=3 新密码必须与旧密码有3位不同

                            #ucredit=N 当N>0时表示新密码中大写字母出现的最多次数;当N<0时表示新密码中大写字母出现最少次数

                            #lcredit=N 当N>0时表示新密码中小写字母出现的最多次数;当N<0时表示新密码中小写字母出现最少次数

                            #dcredit=N: N >= 0:密码中最多有多少个数字;N < 0密码中最少有多少个数字. dcredit=-1 密码中最少有1个数字

                            #ocredit=N:特殊字母的个数 ocredit=-1 密码中至少有1个特殊字符

                            #enforce_for_root 确保即使是root用户设置密码,也应强制执行复杂性策略。

                            (2)记录用户登录失败次数并锁定

                            /etc/pam.d/system-auth“#%PAM-1.0”下面一行加入
                            auth required pam tally2.so onerr=fail deny=10 no magic root unlock time=300
                            注意:一定要加在#%PAM-1.0下面一行

                            参数说明:

                            • deny[=n] 最大尝试次数,超过锁定
                            • unlock_time 解锁时间
                            • even_deny_root 同时限制root用户
                            • root_unlock_time[=n] 设定root锁定后,多少时间解锁
                            • quiet 不对已锁定用户发出提示消息
                              root策略建议谨慎设置,否则很容易导致无法解锁root

                            设置了unlock_time会自动解锁。否则需要手动解锁。

                            运行命令pam_tally2 -u 用户 -r

                            (3)如果启用了SSH远程登录,可以通过命令看配置
                            more /etc/ssh/sshd_config
                            

                              设置LoginGraceTime 15m #账号锁定时间15分钟
                              MaxAuthTries 3 #账号锁定阈值

                              三、访问控制

                              1.设置root用户ssh登录策略

                              禁止root用户远程ssh登录

                              通过修改 /etc/ssh/sshd_config,将参数修改#PermitRootLogin no
                              重启ssh服务

                              service sshd restart
                              

                                2.禁止无用的系统用户登录

                                通过命令 usermod -s /sbin/nologin 用户 --禁止用户远程登录
                                通过命令 usermod -s /bin/bash 用户名 --恢复允许用户远程登录
                                查看/etc/passwd 表示用户是否可以登录。

                                3.检查是否存在除root以外的UID=0的用户

                                通过命令 awk -F: '($3==0){print $1}' /etc/passwd --输出当前uid=0的用户

                                4.允许或禁止用户或组通过ssh登录

                                设置ssh用户白名单、黑名单

                                vi /etc/ssh/sshd_config
                                

                                  增加用户(允许、白名单)
                                  AllowUsers 用户1 用户2

                                  添加用户组
                                  AllowGroups 组1 组2

                                  PS:取交集,意思两个同时允许才可以。其他禁止

                                  取消用户(禁止、黑名单)
                                  DenyUsers 用户1

                                  DenyGroups 组1
                                  PS:取并集,有一个设置了不允许都会不允许。

                                  5.检查新建文件系统权限默认值

                                  通过umask,权限掩码值检查当前用户新建文件、文件夹默认权限。root用户正常是022。
                                  022的意思是,用文件夹最大权限777(rwxrwxrwx)-当前设置权限755(rwx-r-xr-x) = 022,为什么文件夹默认配置了执行-x权限,因为文件夹没执行的话进不去,就没意义了。
                                  而文件权限默认都没有执行,所以就是默认最大666(rw-rw-rw)-644(rw-r–r–=002)。
                                  普通用户默认值是002

                                  6.查看重点文件权限是否合理

                                  如/etc/shadow /etc/passwd(744)
                                  /etc/group
                                  /etc/inittab
                                  /etc/lilo.conf
                                  /etc/grub.conf
                                  /etc/xinetd.conf
                                  /etc/crontab
                                  /etc/securetty
                                  /etc/rc.d/init.d
                                  /var/log/messages
                                  /var/log/wtmp
                                  /var/run/utmp
                                  /var/spool/cron
                                  /usr/sbin/init

                                  /etc/login.defs(644)
                                  /etc/*.conf
                                  /sbin/bin
                                  /etc/init.d
                                  /etc/xinetd.d 等等

                                  四、安全审计

                                  本地安全审计日志功能是否正常打开运行
                                  安装第三方工具等

                                  1. 查看进程运行是否正常

                                  [root@localhost selinux]# ps -ef |grep syslogd --查看进程服务情况
                                  [root@localhost selinux]# ps aux|grep syslogd
                                  [root@localhost selinux]# ps -ef|grep auditd  --查看守护进程情况
                                  

                                    2.系统默认日志记录范围是否覆盖

                                    查看/etc/rsyslog.conf配置文件。

                                    3. 查看系统登录日志

                                    命令lastlog --查询登录用户、端口、时间等
                                    命令last -x --显示系统关闭、用户登录和退出的历史
                                    命令lastb --列出失败尝试的登录信息

                                    五、入侵防范

                                    能记录、检测到入侵行为,能记录入侵者ip、主机名、时间等。建议有条件安装第三方设备如HIDS、NIDS等。

                                    1. 查看自身入侵可疑日志

                                    通过查看日志,可疑识别非法访问或可疑的暴力破解。

                                     more /var/log/secure | grep fail
                                    

                                      2. 最小安装原则

                                      3. 检查运行服务

                                      命令service --status-all --检查是否有非必要服务,如ftp、smtp等

                                      4. 检查服务运行情况

                                      netstat-lp(查看开启服务)
                                      netstat -an(查看开启的端口)
                                      netstat-anlp(查看开启的端口及服务)

                                      六、资源控制

                                      1.TCP Wrappers程序管控

                                      通过设置/etc/hosts.allow/etc/hosts.deny文件

                                      顺序:
                                      1./etc/hosts.allow
                                      2./etc/hosts.deny
                                      3.以上都不符合,则放行

                                      /etc/hosts.allow#ssh允许单个ip
                                      sshd:192.168.220.1#ssh允许ip段
                                      sshd:192.168.220.#telnet允许单个ip
                                      in.telnetd:192.168.220.1#telnet允许ip段
                                      in.telnetd:192.168.221.
                                      
                                        /etc/hosts.deny
                                        sshd:ALL
                                        in.telnetd:ALL
                                        #禁止相关服务
                                        

                                          2.设置登录超时时间

                                          通过命令查看cat /etc/profile |grep TMOUT

                                          vi /etc/profile 添加export TMOUT=600 --600秒超时

                                          3. 设置普通用户最大进程数、CPU、内存等

                                          进入 /etc/security/limits.conf 文件下,

                                          增加代码

                                          roxy soft nproc 10240 
                                          roxy hard nproc 10240 
                                          roxy soft nofile 10240 
                                          roxy hard nofile 10240
                                          

                                            注:roxy 为需要修改线程数的用户名,10240 为设置的进程数和文件数限制,可根据需要修改。

                                            也可以用ulimit命令

                                            4.适当关闭外设-U盘、光盘等

                                            vi /etc/modprobe.d/blacklist.conf里添加一行:

                                            blacklist usb-storage
                                            

                                              执行命令生效modprobe -r usb-storage

                                              本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/893443.shtml

                                              如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

                                              相关文章

                                              论文阅读--Qwen22.5技术报告

                                              Qwen2 1 引言 所有模型都是在超过7 trillion token&#xff08;7万亿&#xff09;的高质量、大规模数据集上预训练的 2 Tokenizer & Model 2.1 Tokenizer 沿用Qwen&#xff08;Bai等人&#xff0c;2023a&#xff09;的做法&#xff0c;我们采用了基于字节级字节对编码…

                                              FPGA中场战事

                                              2023年10月3日,英特尔宣布由桑德拉里维拉(Sandra Rivera)担任“分拆”后独立运营的可编程事业部首席执行官。 从数据中心和人工智能(DCAI)部门总经理,转身为执掌该业务的CEO,对她取得像AMD掌门人苏姿丰博士类似的成功,无疑抱以厚望。 十年前,英特尔花费167亿美元真金白银…

                                              【jmeter】下载及使用教程【mac】

                                              1.安装java 打开 Java 官方下载网站https://www.oracle.com/java/technologies/downloads/选择您想要下载的 Java 版本&#xff0c;下载以 .dmg 结尾的安装包&#xff0c;注意 JMeter 需要 Java 8下载后打开安装包点击“安装”按钮即可 2.下载jmeter 打开 Apache JMeter 官方…

                                              postman请求参数化

                                              postman界面介绍 一、使用环境变量(Environment Variables)进行参数化 1、在请求中使用环境变量 在请求的url、请求头(Headers)、请求体(Body)等部分都可以使用环境变量。 URL 部分示例 点击 Postman 界面右上角的 “眼睛” 图标(Environment Quick Look)打开环境管理…

                                              2024年博客之星年度评选|第一步——创作影响力评审入围Top300名单 | 博客之星陪跑指南

                                              2024年博客之星年度评选&#xff5c;第一步——创作影响力评审入围Top300名单 | 博客之星陪跑指南 2024年博客之星年度评选正在如火如荼地进行中&#xff01;作为博客圈最具影响力的评选活动之一&#xff0c;今年的评选吸引了众多优秀博主的参与。现在&#xff0c;距离Top300入…

                                              阻燃高温尼龙行业:市场潜力巨大,引领材料科学新变革

                                              在当今快速发展的工业和材料科学领域&#xff0c;阻燃高温尼龙作为一种兼具卓越防火性能和高温稳定性的新型材料&#xff0c;正逐步成为多个领域的首选材料。随着全球对安全性能要求的提高和技术的不断创新&#xff0c;阻燃高温尼龙市场呈现出快速增长的态势&#xff0c;展现出…

                                              HTML中的`<!DOCTYPE html>`是什么意思?

                                              诸神缄默不语-个人CSDN博文目录 在学习HTML时&#xff0c;我们经常会看到HTML文档的开头出现<!DOCTYPE html>&#xff0c;它是HTML文件的第一行。很多初学者可能会疑惑&#xff0c;为什么需要这行代码&#xff1f;它到底有什么作用呢&#xff1f;在这篇文章中&#xff0…

                                              系统学习算法:专题五 位运算

                                              位运算总结&#xff08;默认学过位操作符的知识&#xff09;&#xff1a; 1. 这六种就是常见的位运算符&#xff0c;无进位相加就是在二进制中&#xff0c;两个数的某一位1和1可以进位&#xff0c;但是异或就不进位&#xff0c;相加后为0&#xff0c;跟相同为0&#xff0c;相异…

                                              JVM参数-NativeMemoryTracking

                                              实际开发场景中应该有发现Java应用程序会消耗比设置-Xms和-Xmx更多的内存&#xff0c;究其原因其实是因为JVM中除了大家熟知的堆内存外,还有所谓的非堆内存&#xff08;Non-Heap Memory&#xff09;,详细来看,非堆内存包括方法区和Java虚拟机内部做处理或优化所需的内存。 从图…

                                              【PVE】Proxmox VE8.0+创建LXC容器安装docker

                                              为了不影响PVE宿主机&#xff0c;通常使用套娃的形式安装Docker容器&#xff0c;再安装相关docker应用。首先在CT模板中创建 Linux 容器&#xff0c;推荐使用Debian。开启ssh登录&#xff0c;修改debian配置&#xff0c;安装docker 一、创建 LXC 容器 1、CT模板下载 点击“模…

                                              代码随想录算法训练营day34

                                              代码随想录算法训练营 —day34 文章目录 代码随想录算法训练营前言一、62.不同路径动态规划动态规划空间优化 二、63. 不同路径 II动态规划动态规划优化空间版 三、343. 整数拆分动态规划贪心算法 96.不同的二叉搜索树总结 前言 今天是算法营的第34天&#xff0c;希望自己能够…

                                              Kubernetes 集群中安装和配置 Kubernetes Dashboard

                                              前言 上篇成功部署Kubernetes集群后&#xff0c;为了方便管理和监控集群资源&#xff0c;安装Kubernetes Dashboard显得尤为重要。Kubernetes Dashboard 是一个通用的、基于 Web 的 UI&#xff0c;旨在让用户轻松地部署容器化应用到 Kubernetes 集群&#xff0c;并对这些应用进…

                                              深入内核讲明白Android Binder【三】

                                              深入内核讲明白Android Binder【三】 前言一、服务的获取过程内核源码解析1. 客户端获取服务的用户态源码回顾2. 客户端获取服务的内核源码分析2.1 客户端向service_manager发送数据1. binder_ioctl2. binder_ioctl_write_read3. binder_thread_write4. binder_transaction4.1 …

                                              数据结构(四) B树/跳表

                                              目录 1. LRU 2. B树 3. 跳表 1. LRU: 1.1 概念: 最近最少使用算法, 就是cache缓存的算法. 因为cache(位于内存和cpu之间的存储设备)是一种容量有限的缓存, 有新的数据进入就需要将原本的数据进行排出. 1.2 LRU cache实现: #include <iostream> #include <list>…

                                              初步搭建并使用Scrapy框架

                                              目录 目标 版本 实战 搭建框架 获取图片链接、书名、价格 通过管道下载数据 通过多条管道下载数据 下载多页数据 目标 掌握Scrapy框架的搭建及使用&#xff0c;本文以爬取当当网魔幻小说为案例做演示。 版本 Scrapy 2.12.0 实战 搭建框架 第一步&#xff1a;在D:\pyt…

                                              Python网络自动化运维---用户交互模块

                                              文章目录 目录 文章目录 前言 实验环境准备 一.input函数 代码分段解析 二.getpass模块 前言 在前面的SSH模块章节中&#xff0c;我们都是将提供SSH服务的设备的账户/密码直接写入到python代码中&#xff0c;这样很容易导致账户/密码泄露&#xff0c;而使用Python中的用户交…

                                              【2024年 CSDN博客之星】我的2024年创作之旅:从C语言到人工智能,个人成长与突破的全景回顾

                                              我的2024年创作之旅&#xff1a;从C语言到人工智能&#xff0c;个人成长与突破的全景回顾 引言 回望2024年&#xff0c;我不仅收获了技术上的成长&#xff0c;更收获了来自CSDN平台上无数粉丝、朋友以及网友们的支持与鼓励。在这条创作之路上&#xff0c;CSDN不仅是我展示技术成…

                                              【程序化广告】相关技术(RTB竞价原理、Cookie映射流程、数据统计原理、程序化创意、防作弊方法)

                                              上一篇介绍了【程序化广告】广告投放流程/漏斗/要素/策略/指标&#xff0c;本篇介绍一下程序化广告所使用到的相关技术&#xff0c;包括RTB竞价原理、Cookie映射流程、数据统计原理、程序化创意、防作弊方法等。 1. RTB竞价原理 1&#xff09;竞价逻辑 用户开启电脑&#xf…

                                              软件测试入门—用例设计中的场景图和状态迁移图

                                              在软件测试领域&#xff0c;用例设计是一项至关重要的工作&#xff0c;它直接关系到软件质量的高低。而场景图和状态迁移图作为用例设计中的两种有效工具&#xff0c;能够帮助测试人员更全面、系统地设计测试用例。下面我们就来深入了解一下这两种图。 一、场景图 场景图主要…

                                              数据表中的数据查询

                                              文章目录 一、概述二、简单查询1.列出表中所有字段2.“*”符号表示所有字段3.查询指定字段数据4.DISTINCT查询 三、IN查询四、BETWEEN ADN查询1.符合范围的数据记录查询2.不符合范围的数据记录查询 五、LIKE模糊查询六、对查询结果排序七、简单分组查询1.统计数量2.统计计算平均…