CentOS 安全配置
CentOS 安全配置
- 忘记 root 密码
- 禁止进入单用户模式
- 减少开放终端个数
- 设置登录用户无操作超时自动退出
- 只允许 root登录, 禁止其他用户登录
- 只有wheel组的用户能切换至root用户
- 修改 账户 密码
- 系统账号管理
- 禁止 root 直接登录
- 设置 允许或禁止 登录的用户
- 修改系统 SSH 登录端口
- 设置同一个用户同时只能一个人登录
- 用户锁定
- 密码复杂度
- 命令设置密码有效期
- 密码定期修改
- 重设密码5次不能重复
- 登录错误不能超过5次, 超过5次锁定20分钟
忘记 root 密码
// 方法一:GRUB引导方式 没有设置 grub 密码情况下直接进入, 设置的话, 输入密码进入;1. 重启服务器,开机进入启动界面后,按“e”或者回车键,进入GRUB启动菜单;2. 按“e”进入编辑模式,上下键选择第2行;3. 按“e”进入kernel编辑命令行,按“空格”再输入single或“s”或“1”,回车保存后,再按“b”启动系统;4. 启动系统后不需要输入管理员密码,进入单用户模式,可直接输入passwd命令修改管理员密码;// 方法二:lilo引导方式1. 重启服务器,出现LILO提示时,键盘输入 linux single;2. 回车进入单用户模式;3. 修改/etc/passwd文件清空root密码 或者 passwd直接更改密码;// 方法三: 使用Linux启动软盘引导1. 出现boot后,输入linux single 回车;2. 进入单用户模式;3. 修改root密码;
禁止进入单用户模式
禁止直接进入单用户模式, 对 GRUB 设置密码; 修改/boot/grub/grub.conf 或者 /etc/grub.conf ( 是/boot/grub/grub.conf 链接文件);
明文方式
vim /boot/grub/grub.conf # 或者 /etc/grub.conf;... ...splashimage=(hd0,0)/grub/splash.xpm.gzpassword=123456 # 添加此行明文密码;hiddenmenu... ... # 再次启动登录到 GRUB 菜单页面时就会发现不能直接使用 "e" 命令编辑启动标签, 必须先使用 "p" 命令输入正确的密码后才能启动标签进行编辑;明文密码不是很安全;
MD5加密方式
# 首先生成md5加密密码, 输入两次密码后, 生成 md5 加密密码; grub-md5-crypt Password: Retype password: $1$aGKme/$OgQ743fikLz1vjrM4/XDG.vim /boot/grub/grub.conf # 或者 /etc/grub.conf;... ...splashimage=(hd0,0)/grub/splash.xpm.gzpassword=$1$aGKme/$OgQ743fikLz1vjrM4/XDG. # 添加此行明文密码;hiddenmenu... ... # 再次启动登录到 GRUB 菜单页面时就会发现不能直接使用 "e" 命令编辑启动标签, 必须先使用 "p" 命令输入正确的密码后才能启动标签进行编辑;相对比较安全;
减少开放终端个数
// 编辑 /etc/init/start-ttus.conf 及 /etc/sysconfig/init 配置文件 // 设置所有用户仅可以从 tty1 , tty2 , tty3 三个终端登录 vim /etc/init/start-ttys.conf ... ...env ACTIVE_CONSOLES=/dev/tty[1-3]... ...vim /etc/sysconfig/init ... ...# What ttys should gettys be started on?ACTIVE_CONSOLES=/dev/tty[1-3]... ...// 重启后, 仅能从 tty1 , tty2 , tty3 登录
设置登录用户无操作超时自动退出
// 针对指定用户设置, 首先进入用户的家目录, 修改 .bash_profile 文件, 300秒; cd /home/tian ls -a. .. .bash_history .bash_logout .bash_profile .bashrc vim .bash_profile... ...export TMOUT=300// 修改 /etc/profile 文件, 全局所有用户生效; vim /etc/profile... ...export TMOUT=300 source /etc/profile // 声明生效, 或者退出终端重新登录生效;
只允许 root登录, 禁止其他用户登录
// 使用场景: 系统需要升级等, 只允许 root 用户操作, 暂时进制其他用户登录, // 操作步骤: 使用 root 用户在 /etc/ 目录下创建 nologin 文件即可; vim /etc/nologin // 可为空, 也可以写入登录不上回显提示的内容;Sorry, the system is under health examination, please try again in an hour ... ...// 使用用户 tian 登录测试Connecting to 192.168.9.27:22...Connection established.To escape to local shell, press 'Ctrl+Alt+]'.Sorry, the system is under health examination, please try again in an hour ... ...
只有wheel组的用户能切换至root用户
简介:
在 Linux 中, wheel 组类似与一个管理员的组;
通常在Linux下, 及时我们有系统管理员root的权限, 也不推荐用root用户; 一般情况下用普通用户就可以了; 在需要 root 权限执行一些操作时, 再使用 su 切换成为 root 用户; 但是任何用户只要知道了 root 的密码就可以通过su 登录root用户, 这无疑是一个安全隐患; 所以, 将普通用户加入到 wheel 组, 被加入的这个普通用户就成了管理员组内的用户, 但如果针对一些配置文件, 这个管理员组内成员与普通用户没有什么区别;
根据应用实例不同, 应用wheel组的方法也不同, 对于服务器来说, 我们希望的是剥夺被加入到 wheel 组用户以外的普通用户通过su命令登录 root 的权利,(只有属于 wheel 组的用户才可以使用 su 登录 root) 这样就加强了系统的安全性;
// 配置 /etc/pam.d/su 配置文件, 开启 wheel 组; vim /etc/pam.d/su... ...auth required pam_wheel.so use_uid... ... // 修改/etc/login.defs 配置文件, 最后添加 只允许 wheel 组成员切换 root; vim /etc/login.defs... ...SU_WHEEL_ONLY yes// 创建用户时添加 wheel 组 useradd -G wheel tian // 或者给已存在用户添加wheel组 usermod -G wheel tian // 查看用户的属组 groups tiantian : tian wheel
修改 账户 密码
// 一 : passwd 直接修改 passwd tian Changing password for user tian. New password: Retype new password: passwd: all authentication tokens updated successfully.// 二 : 重定向 echo "666666" | passwd --stdin tian
系统账号管理
// 设置非登录用户的 shell 设置为 /sbin/nologin // 方法一 usermod -s /sbin/nologin tian // 方法二 chsh -s /sbin/nologin tian // 方法三 chsh tianChanging shell for tian.New shell [/bin/bash]: /sbin/nologin Shell changed. // 方法四 -- 直接在 /etc/passwd 文件中进行修改 // 查看 grep tian /etc/passwdtian:x:502:502::/home/tian:/sbin/nologin// 锁定长期不使用的账号 // 方法一, 密文前增加 2 个 "!" ; 使用 passwd -u 进行解锁 passwd -l // 方法二, 密文前增加 1 个 "!" ; 使用 passwd -U 进行解锁; 两次执行可解上面的锁定 usermod -L // 查看 passwd -S tiantian LK 2019-03-20 0 60 7 -1 (Password locked.) // 已锁定;
禁止 root 直接登录
// 修改ssh配置文件,开启 RermitRootLogin, 并改为 no; vim /etc/ssh/sshd_config#LoginGraceTime 2mPermitRootLogin no#StrictModes yes#MaxAuthTries 6#MaxSessions 10 // 重启 sshd 服务 /etc/init.d/sshd restart
设置 允许或禁止 登录的用户
// 同样修改 ssh 配置文件, 添加 AllowUsers 或者 DenyUsers , 表示 允许登录 或者 拒绝登录;tian hao zeng rong 四个用户都在属于 wheel 组; vim /etc/ssh/sshd_config#LoginGraceTime 2m #LoginGraceTime 2mPermitRootLogin no PermitRootLogin noAllowUsers zeng rong DenyUsers tian hao#StrictModes yes #StrictModes yes#MaxAuthTries 6 #MaxAuthTries 6#MaxSessions 10 #MaxSessions 10 // 上面配置文件中左右的配置效果一样;
// 修改sshd配置文件; vim /etc/ssh/sshd_configAllowUsers root@192.168.10.108 // 添加此行,允许root用户只能在192.168.10.108登录;AllowUsers root@192.168.10.108 admin // 一行指定多个用户,用空格隔开,允许root用户只能在192.168.10.108登录,允许admin在任何地方登录; // 以上两行不同时存在,介绍规则,以此类推; // 重启sshd服务后生效; [root@localhost ~]# /etc/init.d/sshd restart// 还可以使用 pam 规则控制, 修改 /etc/pam.d/sshd 文件, 第一行添加一下内容, 允许/拒绝登录 vim /etc/pam.d/sshdauth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail// 或者auth required pam_listfile.so item=user sense=deny file=/etc/sshusers onerr=succeed// 在/etc/ 目录下建立 sshusers 文件, 添加用户名, 一行为一个用户;// 上面配置文件中若是 allow , 文件中的用户是可以登录的;// 上面配置文件中若是 deny, 文件中的用户是不可以登录的; vim /etc/sshuserstianzong
修改系统 SSH 登录端口
vim /etc/ssh/sshd_config // 修改ssh配置文件13 #Port 22 // 默认为22端口,可去掉注释直接修改,也可以如下行;14 Port 52353 // 修改为想要设置的端口号// 端口的取值范围是 0--65535; 1024以下是系统使用的端口, 我们可使用的端口是1024--65535;// 没有关闭防火墙的情况下,修改端口后,一定要修改防火墙规则;否则重启了sshd服务后,远程连接不上; // 添加防火墙规则,进入服务器,端口52353; iptables -A INPUT -p tcp --dport 52353 -j ACCEPT // 添加防火墙规则,出服务器,端口52353; iptables -A OUTPUT -p tcp --sport 52353 -j ACCEPT // 保存添加的防火墙规则; /etc/init.d/iptables save // 重启防火墙,添加配置生效; /etc/init.d/iptables restart// 重启sshd服务,修改ssh登录端口生效; /etc/init.d/sshd restart
设置同一个用户同时只能一个人登录
// 只能针对与非 root 用户 vim /etc/security/limits.conf ... ...50 tian hard maxlogins 1// 用户名 最大同时连接数... ...
用户锁定
// 使用 root 用户登录后执行解锁命令 // 查看锁定用户信息 pam_tally2 -u tianLogin Failures Latest failure Fromtian 0 // 用户 失败的次数// 解锁 pam_tally2 -u tian --reset
密码复杂度
// 密码必须符合复杂度的要求: 字母, 数字, 特殊符号组成, 且长度大于8位 vim /etc/pam.d/system-auth# password requisite pam_cracklib.so try_first_pass retry=3 type=password requisite pam_cracklib.so retry=3 difok=3 minlen=8 lcredit=-1 dcredit=-1 ocredit=-1// 参数* try_first_pass: 表明该模块首先应当使用前一个模块从用户那里得到的密码,如果该密码不通过,再提示用户输入新的密码;* debug:将调试信息写入日志;* type=xxx:当天价/修改密码时, 系统给出的缺省提示符是"New UNIX password:"以及"Retype UNIX password:", 而使用该参数可以自定义输入密码的提示符,比如制定type=your own word;* retry=N:定义登录/修改密码失败时,可以重试的次数;* Difok=N:定义新密码中必须有几个字符要与旧密码不同.但是如果新密码中有1/2以上的字符与旧密码不同时,该新密码将被接受;* minlen=N: 定义用户密码的最小长度;* dcredit=-N: 定义用户密码中必须包含多少个数字;* ucredit=-N: 定义用户密码中必须包含多个大写字母;* lcredit=-N: 定义用户密码中必须包含多少个小写字母;* ocredit=-N: 定义用户密码中必须包含多少个特殊字符(除数字,字母之外);
命令设置密码有效期( 已存在的用户 )
chage -M 天数 用户名 // 方法一 passwd -x 天数 用户名 // 方法二// 操作 grep tian /etc/shadowtian:!!:17976:0:99999:7::: chage -M 60 tian grep tian /etc/shadowtian:!!:17976:0:60:7:::
密码定期修改
// 查看用户的定期修改的信息 chage -l tianLast password change : Mar 21, 2019Password expires : neverPassword inactive : neverAccount expires : neverMinimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7// 配置用户密码定期修改 vim /etc/login.defs... ...MAIL_DIR /var/spool/mail // 当你在创建用户的同时,再/var/spool/mail目录下创建mail文件;... ...PASS_MAX_DAYS 90 // 用户密码不过期最多的天数;PASS_MIN_DAYS 0 // 密码修改之间的最小天数;PASS_MIN_LEN 8 // 密码最小长度;PASS_WARN_AGE 7 // 密码过期提前的警告天数;... ...UID_MIN 500 // 此处两行设置创建用户的最小uid和最大uid范围;UID_MAX 60000... ...GID_MIN 500 // 此处两行是设置GID;GID_MAX 60000... ...CREATE_HOME yes // 创建用户的时候是否创建家目录;UMASK 077 // 家目录的权限初始值;... ...USERGROUPS_ENAB yes // 当一个组只有一个用户存在的时候,删除用户的同时删除组;ENCRYPT_METHOD SHA512 // 指定password的机密方法;// 要求用户下次登录时修改密码chage -d 0 用户名
重设密码5次不能重复
// remember=5 表示 5 次 vim /etc/pam.d/system-authpassword sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
登录错误不能超过5次, 超过5次锁定20分钟
// 查看系统中是否含有pam_tally2.so模块 find / -type f -name "pam_tally2.so"// 修改配置文件, 设置密码错误 5 次, 锁定 20 分钟; 第二行添加以下内容; vim /etc/pam.d/sshdauth required pam_tally2.so deny=5 unlock_time=12000
CentOS 安全配置相关推荐
- CentOS下配置VNCServer,重启服务仍然生效
CentOS下配置VNC Server,重启服务,配置仍然生效的方法: 本文前提:系统已安装好gnome桌面,如果没有请执行下面的命令安装即可. yum groupinstall "Desk ...
- centos oracle 服务自动启动,CentOS下配置Oracle 11gR2为系统服务自动启动
CentOS下配置Oracle 11gR2为系统服务自动启动 CentOS下配置Oracle 11gR2为系统服务自动启动 为什么80%的码农都做不了架构师?>>> PS:在Wind ...
- linux vnc服务重启,CentOS下配置VNCServer,重启服务仍然生效
CentOS下配置VNC Server,重启服务,配置仍然生效的方法: 本文前提:系统已安装好gnome桌面,如果没有请执行下面的命令安装即可. yum groupinstall "Desk ...
- CentOS 7配置LNMP开发环境及配置文件管理详解
本篇文章主要介绍了CentOS 7配置LNMP开发环境及配置文件管理,详细的介绍了MySQL 5.6,PHP 5.6,Nginx的安装与配置,有兴趣的可以了解一下. 安装并配置MySQL 5.6 从C ...
- Dockerfile文件创建centos:7,配置JDK8的环境变量,与运行springboot的jar包,的镜像
DockerFile文件创建centos:7 配置JDK8的环境变量 与运行springboot的jar包 准备文件 一:官网下载Linux的JDK包 https://www.oracle.com/j ...
- 为CentOS 6 配置本地YUM源
在网上找了很多为CentOS 6配置本地YUM源的方法,其中有很多是与网络相关的,我只想配个自己用的,结果就发现这个方法比较简单实用,就转过来了. 环境:CentOS 6.0 默认的yum是以网络来安 ...
- 项目七samba服务器,Centos 7 配置Samba服务器
Centos 7配置Samba服务器 1.Centos 7版本,内核: Linux 3.10.0-514.el7.x86_64 [root@tommy /]# hostnamectl #查看版本号 O ...
- 在CentOS上配置Percona XtraDB集群(Percona XtraDB Cluster)
原作者:Percona官网 翻译&转载来源:https://www.percona.com/doc/percona-xtradb-cluster/LATEST/howtos/centos_ho ...
- Linux系统CentOS 7配置Spring Boot运行环境
从阿里云新买的一台Linux服务器,用来部署SpringBoot应用,由于之前一直使用Debian版本,环境配置有所不同,也较为繁琐,本文主要介绍CentOS下配置SpringBoot环境的过程 新建 ...
最新文章
- [推荐]在JavaScript中实现命名空间
- ajax得到session,Ajax如何使用Session
- 00后社交突围:今天你CDX了吗?
- IOS基础之愤怒的小方块
- c++父类和子类转化致命的代码错误
- 解决python 提示 SyntaxError: Missing parentheses in call to 'print'
- python 线程池用法_python 线程池 ThreadPoolExecutor 的用法
- [PyTorch] 安装
- 站在物联网风口,如何抢滩千亿级智能家居市场?
- leetcode-680-Valid Palindrome II
- php qr生成二维码
- YANG-SUITE安装步骤
- PHP 图片处理类 错误处理方法:
- Scrypt哈希算法简介
- 李阳疯狂英语助教工作总结
- Eclipse下载、安装、配置教程
- 日订单超1000万,美团外卖是如何设计广告推送系统的?
- C# 实现 简体<--->繁体 的互相转换
- 学Java可以不学算法吗-学java有必要学算法吗?
- 强化学习之Q-learning算法
热门文章
- gz文件解压命令 linux_linux常用命令和文件上传(FZ)、解压、配置环境变量(JDK)
- 高会的计算机模块,2017高会《职称计算机》模块精讲:写字板和便笺
- MySQL约束不起作用怎么解决_MySQL中的CHECK约束不起作用
- 二次元老婆生成器,想要什么样的老婆就靠自己勤劳的双手啦
- 通过学历造假获得面试机会,并成功拿到 Offer,这样的操作你认可吗?
- Java版的开源 Flappy Bird 复刻项目
- 数据库界的Swagger:一键生成数据库文档!你不了解一下?
- Nginx配置中一个不起眼字符/的巨大作用,失之毫厘谬以千里
- 每日一皮:离职时候的项目交接...
- 华北电力大学保定校区计算机专业,华北电力大学保定校区本科计算机科学与技术_华北电力大学保定校区本科计算机科学与技术简介-查字典学校网...