linux安全加固,80后程序员感慨中年危机

添加、修改内容

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

注释

try_first_pass:修改密码前输入当前密码
local_users_only:本地用户
retry:重试次数
authtok_type:修改密码的提示内容
dcredit=-1:至少一个数字
lcredit=-1:至少一个小写字母
ucredit=-1:至少一个大写字母
ocredit=-1:至少一个特殊字符
minclass=3:至少三个字符(大小写字母,数字,特殊字符)
minlen=8:至少八位密码
remember=3:防止使用前三次内设置过的密码

centos7以后设置密码复杂性

文件位置 /etc/security/pwquality.conf

命令:authconfig
authconfig --passminlen=8 --update # 密码最短8位
authconfig --enablereqlower --update # 包含一个小写
authconfig --enablerequpper --update # 包含一个大写
authconfig --enablereqdigit --update # 包含一个数字
authconfig --enablereqother --update # 包含一个字符

设置强制密码历史

目的:防止被社工字典破解

修改pam认证文件

vim /etc/pam.d/system-auth

添加、修改内容

password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

设置账户锁定策略

目的:防止被连续试探密码,降低爆破可能性

vim /etc/pam.d/system-auth

加在注释文档后一行就行,连续6次失败,就拉黑

auth required pam_tally2.so deny=6 unlock_time=300 even_deny_root root_unlock_time=60

查看登录失败次数

[root@bogon ~]# pam_tally2 --user hello
Login Failures Latest failure From
hello 6 05/31/23 10:36:23 pts/0

重置登录失败

pam_tally2 --user hello --reset

设置关键目录的权限

目的:在设备权限配置能力内,根据用户的企业需要,配置其所需的最小权限,以减少非法访问的可能性。

更改账户组文件的权限设置

chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group

去除多余的写入操作,例如

chmod -R go-w /etc

修改umask值

目的:修改创建文件或目录时的默认权限,防止属于该组的其他用户级别组的用户修改该用户的文件。

修改启动脚本文件

/etc/profile
/etc/csh.login
/etc/csh.cshrc
/etc/bashrc

在文件末尾加入umask值
umask 027

限制硬件资源

目的:限制用户对系统资源的使用,减缓DDOS等攻击危害。

1.修改限制文件
vim /etc/security/limits.conf

加入如下内容

  • soft core 0
  • hard core 0
  • hard rss 5000
  • hard nproc 20

* soft nproc 4096 # 所有的用户默认可以打开最大的进程数为 4096

root soft nproc unlimited # root 用户默认可以打开最大的进程数 无限制的。

2.修改pam的本地登录文件
vim /etc/pam.d/login

在文件末尾加入信息

session required /lib64/security/pam_limits.so

3.日常收集进程数使用
ps aux |grep httpd |wc -l

对用户使用ls、rm设置别名

目的:让ls随时看清文件属性,让rm需要确认后删除目标实施方法

1.修改当前用户的登录启动脚本
vim ~/.bashrc

追加别名命令

alias ls=“ls -alh”
alias rm=“rm -i”

禁止任何人su至root账户

目的:避免任何人使用su切换到root,减少提权风险

1.修改su的配置文件
vim /etc/pam.d/su
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_wheel.so group=wheel

2.如果需要su切换,将用户加入wheel组
usermod -g wheel luobo

去掉所有人SUID和SGID

目的:防止被利用提权

查找具有SUID和SGID的对象

find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -1g {} ;

chmod ugo-s file

对开放目录设置粘滞位

目的:允许小规模开放目录,用户作为暂存目录使用

为/tmp目录添加粘滞位

chmod +t /tmp/

我们都知道,/tmp常被我们用来存放临时文件,是所有用户。但是我们不希望别的用户随随便便的就删除了自己的文件,于是便有了粘连位,它的作用便是让用户只能删除属于自己的文件。
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。

启用日志记录功能,使用日志服务器

目的:增加审计记录,分布保存日志

机器准备:

主机名IP
node0110.0.1.110
log(日志服务器)10.0.1.111

node01操作:

1.修改应用服务器日志配置文件
vim /etc/rsyslog.conf

确认关键日志审计是否存在

*.info;mail.none;authpriv.none;cron.none /var/log/messages

authpriv.* /var/log/secure

添加两行转发日志信息

.info;mail.none;authpriv.none;cron.none @10.0.1.111
authpriv.
@@10.0.1.111

注释:
@:使用tcp协议
10.0.1.111:把日志内容写入到10.0.1.111机器上
@@:协议udp协议

2.重启rsyslog
systemctl restart rsyslog.service

log(日志服务器):开启配置文件

1.修改应用服务器日志配置文件
vim /etc/rsyslog.conf
15 $ModLoad imudp
16 $UDPServerRun 514

19 $ModLoad imtcp
20 $InputTCPServerRun 514

22 t e m p l a t e R e m o t e , " / v a r / l o g / template Remote,"/var/log/% templateRemote,"/var/log/YEAR%-% M O N T H MONTH%-% MONTHDAY%/%fromhost-ip%.log"

47 #### RULES ####
48 :fromhost-ip, !isequal, “127.0.0.1” ?Remote
49 & stop

2.重启rsyslog
systemctl restart rsyslog.service

3.查看日志是否有时间段的目录,有了则成功
ls /var/log

4.日志服务器实时查看日志,在客户机器输入 logger luobo
tail -f /var/log/2023-05-31/10.0.1.110.log

重要日志权限不应该高于640

防止日志泄露敏感信息
ls -la /var/log/
chmod -R 640 /var/log

设置关键文件底层属性

目的:增强关键文件的底层属性,降低篡改风险

1.修改关键文件的日志和底层属性
chattr +a /var/log/messages
chattr +i /etc/shadow
chattr +i /etc/passwd
chattr +i /etc/group

不只限于上述文件,可用lsattr查看更改结果

通信协议⭐

关闭非加密远程管理telnet

目的:降低被抓包后获取系统关键信息

vim /etc/xinetd.d/telnet
disable=yes

使用加密的远程管理

目的:使用安全套接字层加密传输信息,避免被侦听敏感信息。

1.修改sshd配置文件
vim /etc/ssh/sshd_config

更改默认端口

Port 2020

禁止root远程登录

PermitRootLogin no

开启v2版本

Protocol 2

2.重启sshd服务
systemctl restart sshd.service

设置访问控制列表

设置访问控制白名单,减少被入侵的风险

修改拒绝策略

vim /etc/hosts.deny
ALL:ALL

修改允许策略

vim /etc/hosts.allow

sshd:来访者IP地址

sshd:10.0.1.110
sshd:10.0.1.111

固化常用DNS解析

目的:降低被DNS劫持的可能性

修改hosts文件
vim /etc/hosts

加入解析信息

61.59.123.22 www.baidu.com
访问IP 服务器域名

打开syncookie

目的:缓解syn flood攻击

1.修改系统控制文件
vim /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1

2.配置生效
sysctl -p

不响应ICMP请求

大白话理解:你能ping通别人,别人ping不通你。

目的:不对ICMP请求作出响应,避免泄露信息

1.修改网络策略布尔值
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

2.配置生效
sysctl -p

禁止处理无源路由

目的:防止被无源数据包利用

1.检查是否开启了路由功能
sysctl -n net.ipv4.conf.all.accept_source_route

2.禁止路由
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

防御syn flood攻击优化

目的:修改半连接上线,缓解syn flood攻击

1.查询当前半连接上限
sysctl net.ipv4.tcp_max_syn_backlog

2.修改半连接上限
sysctl -w net.ipv4.tcp_max_syn_backlog=“2048”

FTP使用黑白名单限制

目的:防止非法账户访问ftp

1.检查黑名单文件是否包含高危账户
cat /etc/vsftp/ftpusers

黑名单用户

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

2.使用白名单文件
cat /etc/user_list

cat /etc/vsftpd/vsftpd.conf

配置文件中是否存在

userlist_deny=NO
userlist_enable=YES

FTP设置上传文件后的默认权限

目的:防止被上传执行脚本

检查主配置文件 /etc/vsftpd/vsftpd.conf是否存在如下内容
cat /etc/vsftpd/vsftpd.conf
write_enable=YES
local_umask=022
anon_umask=022

FTP设置banner信息

目的:防止泄露服务信息

检查主配置文件 /etc/vsftpd/vsftpd.conf 是否存在如下内容
cat /etc/vsftpd/vsftpd.conf
ftpd_banner=" Authorized users only. All activity may be monitored and reported. "

配置可信任的NTP服务器,并确保服务开启

目的:保持时间同步,防止某些服务错误

yum install ntp -y

1.检查主配置文件 /etc/ntp.conf 是否存在如下内容
cat /etc/ntp.conf
server X.X.X.X

2.确保服务被启用
systemctl enable ntpd
systemctl status ntpd

检查账户目录是否存在高危文件.netrd、.rhosts

目的:防止被使用远程登录漏洞

脚本执行无返回值表示正常

1.检查.netrc脚本
vim find_net.sh
#! /bin/bash
for DIR in cut -d ":" -f6 /etc/passwd; do
if [ -e D I R / . n e t r c ] ; t h e n e c h o " DIR/.netrc ]; then echo " DIR/.netrc];thenecho"DIR/.netrc"
fi
done

执行脚本 脚本执行无返回值表示正常

sh find_net.sh

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
img

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

ert/5912337446dee53639406fead3d3f03c.jpeg)

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值