linux安全加固(几项)

Linux安全加固

运维网工 2024-02-29 10:32 重庆

账号和权限

系统用户

  • 超级管理员:UID=0

  • 系统默认用户:系统程序使用,从不登录

  • 新增普通用户:UID大于500

图片

图片

图片

图片

图片

用户管理

  • 添加用户:useradd <用户名>

  • 删除用户:userdel [-r] [-f] <用户名>

     

锁定/解锁用户:

  • passwd -l <用户名>

  • passwd -u <用户名>

用户属性:

  • usermod -L <用户名>     #锁定用户

  • usermod -U <用户名>    #解锁用户

查看当前用户

id

权限管理

解析文件权限

[root@anonymous ~]# ls -ld /etc/passwd /boot
dr-xr-xr-x. 5 root root 4096 22 08:49 /boot
-rw-r--r--  1 root root 1240 1月  27 08:18 /etc/passwd
-rw-r--r--:权限位
 1:硬链接数
root:属主
root:属组
1240:文件大小
1月  27 08:18:最后修改时间
/etc/passwd:文件/目录名称

权限和归属

访问权限:

  • - 读取:允许查看内容read

  • - 写入:允许修改内容write

  • - 可执行:允许执行和切换excute

归属关系

  • - 所有者:拥有此文件/目录的用户user

  • - 所属组:拥有此文件/目录的组group

  • - 其他用户:除所有者、所属组以外的用户other

  • - 所有用户:以上三类归属合称all

文件系统安全

查看权限:ls -l

图片

修改权限:

图片

设置合理的初始文件权限

UMASK

图片

umask值为0022所对应的默认文件和文件夹创建的缺省权限分别为644和755

文件夹其权限规则为:777-022-755

文件其权限规则为:777-111-022=644(因为文件默认没有执行权限)

修改UMASK值:

1、直接在命令行下 umask xxx(重启后消失)

2、修改/etc/profile中设定的umask值

[root@anonymous ~]# umask 027
[root@anonymous ~]# touch test2
[root@anonymous ~]# ls -l test2
-rw-r----- 1 root root 0 22 09:24 test2
[root@anonymous ~]# mkdir test10
[root@anonymous ~]# ls -ld test10
drwxr-x--- 2 root root 6 2月   2 09:24 test10

系统加固

锁定系统中多余的自建账号

执行命令

  •  cat /etc/passwd

  •  cat /etc/shadow

查看账户、口令文件,与管理员确认不必要的账号。对于一些保留的系统伪账号,如bin、adm、uucp、ip、nuucp、hpdb、www、daemon等可根据需要锁定登录。

加固方法:

  • passwd -l <用户名>    #锁定用户

  • passwd -u <用户名>   #解锁用户

检查shadow中空口令账号

图片

加固方法:

  • 使用命令passwd -l <用户名> 锁定不必要的账号

  • 使用命令passwd -u <用户名>解锁需要恢复的账号

  • 使用命令passwd <用户名> 为用户设置密码

设置系统密码策略

执行命令查看密码策略设置

图片

加固方法

图片

禁用root之外的超级用户

图片

加固方法:

passwd -l <用户名>

限制能够su为root的用户

查看是否有auth required /libsecurity/pam_whell.so这样的配置条目

图片

加固方法:

图片

重要文件加上不可改变属性

把重要文件加上不可改变属性

图片

Umask安全

图片

SSH安全:

禁止root用户进行远程登陆

检查方法:

图片

屏蔽SSH登陆banner信息

图片

仅允许SSH协议版本2

图片

防止误使用Ctrl+Alt+Del重启系统

检查方法:

图片

加固方法:

图片

设置账号锁定登录失败锁定次数、锁定时间

图片

修改账号TMOUT值,设置自动注销时间

检查方法:

cat /etc/profile | grep TMOUT

加固方法:

vim /etc/profile

增加

TMOUT=600 无操作600秒后自动退出

设置BASH保留历史命令的条目

检查方法:

cat /etc/profile | grep HISTSIZE加固方法:

vim /etc/profile

修改HISTSIZE=5即保留最新执行的5条命令

注销时删除命令记录

检查方法:

cat /etc/skel/.bash_logout 增加如下行

rm -f $HOME/.bash_history

这样,系统中的所有用户注销时都会删除其命令记录,如果只需要针对某个特定用户,,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history文件增加相同的一行即可。

设置系统日志策略配置文件

日志的主要用途是系统审计 、监测追踪和分析。为了保证 Linux 系统正常运行、准确解决遇到的各种各样的问题,认真地读取日志文件是管理员的一项非常重要任务。

UNIX/ Linux 采用了syslog 工具来实现此功能,如果配置正确的 话,所有在主机上发生的事情都会被记录下来不管是好还是坏的

检查方法:

cat /etc/profile | grep HISTSIZE

图片

确定syslog服务是否启用

[root@anonymous ~]# cat /etc/rsyslog.conf
# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# or latest version online at http://www.rsyslog.com/doc/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####

module(load="imuxsock"    # provides support for local system logging (e.g. via logger command)
       SysSock.Use="off") # Turn off message reception via local log socket;
                          # local messages are retrieved through imjournal now.
module(load="imjournal"             # provides access to the systemd journal
       UsePid="system" # PID nummber is retrieved as the ID of the process the journal entry originates from
       StateFile="imjournal.state") # File to store the position in the journal
#module(load="imklog") # reads kernel messages (the same are read from journald)
#module(load="immark") # provides --MARK-- message capability

# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
#module(load="imudp") # needs to be done just once
#input(type="imudp" port="514")

# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
#module(load="imtcp") # needs to be done just once
#input(type="imtcp" port="514")

#### GLOBAL DIRECTIVES ####

# Where to place auxiliary files
global(workDirectory="/var/lib/rsyslog")

# Use default timestamp format
module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")

# Include all config files in /etc/rsyslog.d/
include(file="/etc/rsyslog.d/*.conf" mode="optional")

#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log


# ### sample forwarding rule ###
#action(type="omfwd"
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#queue.filename="fwdRule1"       # unique name prefix for spool files
#queue.maxdiskspace="1g"         # 1gb space limit (use as much as possible)
#queue.saveonshutdown="on"       # save messages to disk on shutdown
#queue.type="LinkedList"         # run asynchronously
#action.resumeRetryCount="-1"    # infinite retries if host is down
# Remote Logging (we use TCP for reliable delivery)
# remote_host is: name/ip, e.g. 192.168.0.1, port optional e.g. 10514
#Target="remote_host" Port="XXX" Protocol="tcp")
查看syslogd的配置,并确认日志文件是否存在

图片

阻止系统响应任何从外部/内部来的ping请求

加固方法:

echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all

图片

图片

图片

图片

文章转自运维星火燎原

运维网工
分享网络运维、运维规划、运维开发、Python运维、Linux运维、devops工具链、k8s容器化技术、自动化监控、日志收集等知识,推广围绕DevOps理念的自动化运维、高效运维、智能运维等优秀实践,让运维工程师更加专注于自动化。
22篇原创内容
阅读 1177
 
 
关注后可发消息
 
 
 
 
 
 
posted @   往事已成昨天  阅读(266)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2023-03-04 shell编程-流程控制
2023-03-04 shell编程-条件测试
点击右上角即可分享
微信分享提示