首页 > 系统相关 >一个简单的Linux系统加固方案

一个简单的Linux系统加固方案

时间:2024-01-14 11:04:52浏览次数:26  
标签:方案 d% 密码 Linux auth etc PASS 加固 pam


一、系统默认帐号及组管理

删除系统默认不使用的帐号,包括:lp、mail、games、ftp、nobody、postfix等。删除系统默认不使用的组,包括:mail、games、ftp、nobody、postfix等。

二、启用密码策略

1 .密码60天过期,修改密码最小间隔为1天,最短密码要求8位,在密码过期前7天内通知用户。通过修改/etc/login.defs来实现,修改以下几行:

PASS_MAX_DAYS   60
PASS_MIN_DAYS   1
PASS_MIN_LEN    8
PASS_WARN_AGE   7

2 .启用帐号锁定策略,连续输错3次口令,锁定用户5分钟。修改配置文件/etc/pam.d/system-auth,修改以下内容:

auth        required      pam_env.so
auth        required      pam_tally2.so deny=3 unlock_time=300
三、SSH安全配置

只使用协议版本2,禁止root登录,禁止空口令登录。修改配置文件/etc/ssh/sshd_config,具体配置为:

#default is 2,1
Protocol 2
#default is yes
PermitRootLogin no
#default is no
PermitEmptyPasswords no
四、不活动用户5分钟误操作自动登出。

修改配置文件/etc/profile,在末尾加入以下内容:

TMOUT=300
五、清除系统别名
cp /etc/aliases /etc/aliases_$( date "+%Y%m%d%H%M%S")
cat /dev/null>&/etc/aliases
六、全部脚本
#!/bin/bash 
#===============================================================================
#          FILE: NeobyPay.sh
#         USAGE: ./NeobyPay.sh 
#   DESCRIPTION: 此脚本请使用source执行,带空格的.执行也是可以的。 
#       OPTIONS: ---
#  REQUIREMENTS: ---
#          BUGS: ---
#         NOTES: ---
#        AUTHOR: GeekDevOps (IVAN DU), [email protected]
#  ORGANIZATION: Neoby
#       CREATED: 2018年01月30日 16时51分16秒
#      REVISION: V1.1.1
#===============================================================================
set -o nounset                              # Treat unset variables as an error
#清除账号别名
cp /etc/aliases /etc/aliases_$( date "+%Y%m%d%H%M%S")
cat /dev/null>&/etc/aliases
#关于用户或组需要备份的系统配置文件
cp /etc/passwd /etc/passwd.$(date +"%Y%m%d%H%M%S") 
cp /etc/shadow /etc/shadow.$(date +"%Y%m%d%H%M%S")
cp /etc/group /etc/group.$(date +"%Y%m%d%H%M%S")
#删除不必要账户
UnusefulAccounts=("lp" "mail" "games" "ftp" "nobody" "postfix" )
for Username in ${UnusefulAccounts[@]} ; 
    do
        userdel -f $Username >& /dev/null
            if [ $? -eq 0 ] ; then 
                echo "The account $Username has been deleted!"
            else
                echo "Deleting the account $Username ERROR! Please try again!"
            fi
    done
#删除不必要的组
UnusefulGroups=("mail" "games" "ftp" "nobody" "postfix")
for Groups in ${UnusefulGroups[@]} ;
    do
        groupdel $Groups >& /dev/null
                         if [ $? -eq 0 ] ; then
                                 echo "The group $Groups has been deleted!"
                        else
                                 echo "Deleting the group $Groups ERROR! Please try again!"
                         fi
    done
#密码策略
echo "TMOUT=300">>/etc/profile #登录后不活动则300秒超时
cp /etc/login.defs /etc/login.defs.$(date +"%Y%m%d%H%M%S") #备份配置文件
sed -i '/^#PermitRootLogin/a\PermitRootLogin no' /etc/ssh/sshd_config #禁止root用户ssh登录
sed -i '/^#Port/a\Protocol 2' /etc/ssh/sshd_config #使用ssh2协议登录
sed -i "/^PASS_MAX_DAYS/c\PASS_MAX_DAYS   60" /etc/login.defs #密码有效时间最大值为60天
sed -i "/^PASS_MIN_DAYS/c\PASS_MIN_DAYS   1" /etc/login.defs #密码修改间隔最小值为1天
sed -i "/^PASS_MIN_LEN/c\PASS_MIN_LEN   8" /etc/login.defs #密码最短长度为8个字符
sed -i "/^PASS_WARN_AGE/c\PASS_WARN_AGE   7" /etc/login.defs #密码过期提前7天提醒用户
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.$(date +"%Y%m%d%H%M%S") #备份配置文件
sed -i "/^auth        required      pam_env.so/a\auth        required      pam_tally2.so deny=3 unlock_time=300" /etc/pam.d/system-auth #密码输入错误三次之后锁定用户,五分钟之后自动解锁 
source /etc/profile>&/dev/null
systemctl restart sshd #重启ssh服务

若有不妥之处还望诸位多多指教。


标签:方案,d%,密码,Linux,auth,etc,PASS,加固,pam
From: https://blog.51cto.com/ivandu/9239001

相关文章

  • Linux中find命令的使用详解(上)
    find命令是各种Linux发现版中比较重要的、常用的一个命令,该命令功能强大,熟练掌握了这个命令的使用,对平时的系统运维、管理工作会起到事半功倍的效果。一.获取帮助信息[root@root@GeekDevOps-find~]#find--help[root@root@GeekDevOps-find~]#manfind大家会发现帮助信息很多,但......
  • 两种方法实现Linux不活动用户登录超时后自动登出
    在平常的工作中,windows系统使用的比较多一些,身边的很多同事都会对自己的电脑进行一些个性化设置,比如离开一段时间后自动锁屏、自动关闭屏幕、自动注销当前登录等。在windows下可以这样操作,那么在Linux下是否也可以这样操作呢?经过一段时间的摸索,本人发现了2中方法来实现Linux下不活......
  • 浅谈Linux下傻瓜式磁盘分区工具cfdisk的使用
    对于新手来说,Linux环境下的磁盘分区可能还会存在一些困难。对于熟悉Linux的朋友来说,我们还有fdisk、parted(2TB以上的磁盘分区使用)等磁盘分区工具可以使用。在我们新增磁盘或者在原来磁盘上进行扩容时就会使用到磁盘分区工具,磁盘分区对于整个系统的管理十分重要。1.增加一块容量......
  • 再议Linux中一些发行版中默认下载或上传工具curl的使用
    在目前的CentOS最小化安装发行版中,系统默认的下载/上传工具为:curl。curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。我们先来大概看一下curl工具的各选项的大概含义。-a/–append......
  • RockyLinux安装QEMU/KVM虚拟化
    一、QEMU/KVM技术简介QEMU/KVM是一种开源虚拟化技术,全称是QuickEmulator/KernelBasedVirtualMachine。它结合了QEMU的模拟器和KVM(内核虚拟机)的加速器,提供了基于硬件的全虚拟化和容器级的系统虚拟化能力。QEMU是一个用于模拟计算机硬件的开源软件,它可以模拟各种硬件设备,包括CP......
  • spark 3.x idea linux远程开发环境搭建
    依赖包jdk8或11都行,不要到jdk17jdk17第一个问题是jdk内部类默认不允许反射,很多配置要改。scala2.13scala2.13版本是为scala3.0版本准备的,改进挺多。可通过scala编程(第四版)学习。hadoop3.2.1因为windowshadoopwinutils当前最新仅仅到3.2.1,所以最好是相......
  • 【Shell基础】Bash基础与Linux三剑客
    shell是什么?可以做哪些?Shell是⼀种解释性的语⾔,适⽤于基本的逻辑处理和不追求速度的应⽤。用于:人机交互批处理Unix、Linux、Mac、Android、IOS脚本自动化工作场景服务端测试移动测试持续集成与自动化部署shell种类bashshzshwindows没有/etc/shells,需要安......
  • 现代 CSS 解决方案:文字颜色自动适配背景色!
    现代CSS解决方案:文字颜色自动适配背景色! 在23年的CSS新特性中,有一个非常重要的功能更新-- 相对颜色。简单而言,相对颜色的功能,让我们在CSS中,对颜色有了更为强大的掌控能力。其核心功能就是,让我们能够基于一个现有颜色A,通过一定的转换规则,快速生成我们想要的颜色......
  • linux 安装最新版本git
    第一步,官网下载安装包https://git-scm.com/download/linux第二步,解压安装包tar-zxvfgit-2.34.1.tar.gz第三步,安装编译环境yuminstallcurl-develexpat-develgettext-developenssl-develzlib-develgccperl-ExtUtils-MakeMaker装上面编译环境的时候,yum自动帮你......
  • linux环境Python安装
    1、下载源码华为云镜像地址下载pythonPython加速地址:https://repo.huaweicloud.com/python/2、安装前置依赖yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devellibffi-d......