Linux系统加固

文章详细介绍了Linux系统加固的几个关键方面,包括账号和口令的安全设置,如修改密码策略和限制无用账号;SSH登录安全,如改变SSH端口号和限制root用户远程登录;文件安全,调整umask值确保文件权限;服务安全,修改服务端口避免默认;以及日志安全,开启日志记录用户操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux系统加固要从三个方面来考虑

1.账号和口令安全


1.  /etc/login.defs


这个文件定义了/etc/passwd以及/etc/shadow配套的用户限制,这个文件的缺失不会影响系统的使用,但是有些时候,会产生一些情况。(各种提示权限不够)
如果/etc/passwd以及/etc/shadow与/etc/login.defs文件产生了冲突,系统会以/etc/passwd以及/etc/shadow为准,所以这两个文件的优先级较高。

grep -Ev "^#|^$" /etc/login.defs

去掉空格和注释查看该文件。

我们主要修改的就是

1.密码最大有效期                 PASS_MAX_DAYS 
2.密码两次修改间隔最小时间        PASS_MIN_DAYS		
3.密码最小长度                   PASS_MIN_LEN
4.密码过期前n天开始提示           PASS_WARN_AGE

2.  减少多余无用账号,降低安全风险

userdel 用户名 删除账号
passwd -l  锁定账号

3.限制用户进行su

在/etc/pam.d/su中修改
auth required pam_wheel.so group=test
只允许test组用户su

2.SSH登录安全

因为黑客或者管理员大部分都是通过ssh登录到系统,对系统进行操作,所以我们可以在这里做文章

/etc/ssh/sshd_config

我们被登录所以作为服务端,在这里进行修改一些配置

1.改掉sshd的端口号(如果有必要)

2.更改sshd的服务绑定地址   istenAddress 

可以改为跳板机或者堡垒机的ip地址,就只允许跳板机或者堡垒机进行ssh登录

跳板机和堡垒机的区别就是跳板机是服务,堡垒机有硬件设施。

3.修改连接主机时输入密码的时间    LoginGraceTime 1m  

m是分钟,也就是ssh进行连接输入密码时,超过1min就会自动断开

4.是否允许root用户进行远程登录    PermitRootLogin 

5.尝试密码错误的最大次数           MAXAuthTries 3

当ssh连接后输入的密码错误次数超过三次时,会断开ssh的连接,防止对方暴力破解

6.登录安全白名单和黑名单

/etc/hosts.deny  系统登录的黑名单 
设置sshd:ALL  禁止所有用户进行ssh登录
/etc/hosts.allow  系统登录的白名单

建议配置
黑名单禁止所有登录,也就是sshd:ALL
白名单配置只允许登录的ip
sshd:ip

3.文件安全

1.设置umask值

/etc/bashrc  和  /etc/profile

这两个文件中的umask值需要同时修改,避免出现问题

umask值改为027

文件夹初始的权限为777,文件的初始权限为666

而最终生成文件夹和文件的权限是777或者666减去umask值

当umask值改为027时候,文件夹和文件的权限为750和640

1.文件所有者可读可写可执行7                                  
2.与文件所有者同属一个用户组的其他用户可读可执行5           		      
3.其他用户组无权限0                                               

1.文件所有者可读可写6
2.与文件所有者同属一个用户组的其他用户可读可写4
3.其他用户组无权限0

改完后使生效

source /etc/bashrc
source /etc/profile

4.服务安全

一些常用的服务端口可以进行修改,用nmap扫描一下自己系统,看看哪些对外开放,对外开放的端口不使用默认的端口。防止黑客入侵

一般修改的都在服务的配置文件中config

5.日志安全

记得开启日志功能

systemctl start rsyslog.service

记录所有用户登录和操作日志

运行vim /etc/profile打开配置文件。

粘贴以下内容

 history
 USER=`whoami`
 USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
 if [ "$USER_IP" = "" ]; then
 USER_IP=`hostname`
 fi
 if [ ! -d /var/log/history ]; then
 mkdir /var/log/history
 chmod 777 /var/log/history
 fi
 if [ ! -d /var/log/history/${LOGNAME} ]; then
 mkdir /var/log/history/${LOGNAME}
 chmod 300 /var/log/history/${LOGNAME}
 fi
 export HISTSIZE=4096
 DT=`date +"%Y%m%d_%H:%M:%S"`
 export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
 chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null

运行source /etc/profile  生效

然后history就可以查看所有用户的操作记录和具体时间

也可以

/var/log/history

进行查看

Linux系统中,系统加固是确保系统安全的重要步骤。以下是一些常见的Linux系统加固实践代码和命令: ### 1. 更新系统 首先,确保系统是最新的,以修补已知的安全漏洞。 ```bash sudo apt update && sudo apt upgrade -y ``` ### 2. 禁用不必要的服务 禁用不必要的服务和启动项,以减少攻击面。 ```bash sudo systemctl disable <service_name> sudo systemctl stop <service_name> ``` ### 3. 配置防火墙 使用`ufw`(Uncomplicated Firewall)来配置防火墙规则。 ```bash sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw enable ``` ### 4. 增强SSH安全性 修改SSH配置文件以增强安全性,例如禁用root登录和更改默认端口。 ```bash sudo nano /etc/ssh/sshd_config ``` 在文件中进行以下更改: ```plaintext PermitRootLogin no Port <new_port_number> PasswordAuthentication no ``` 保存并退出文件,然后重启SSH服务: ```bash sudo systemctl restart sshd ``` ### 5. 安装和配置Fail2Ban Fail2Ban可以防止暴力破解攻击。 ```bash sudo apt install fail2ban -y sudo nano /etc/fail2ban/jail.local ``` 在文件中添加以下内容: ```plaintext [sshd] enabled = true port = <new_port_number> filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 600 ``` 保存并退出文件,然后重启Fail2Ban服务: ```bash sudo systemctl restart fail2ban ``` ### 6. 启用SELinux或AppArmor 根据发行版不同,启用SELinux或AppArmor以提供额外的安全层。 #### 启用SELinux ```bash sudo setenforce 1 ``` #### 启用AppArmor ```bash sudo systemctl enable apparmor sudo systemctl start apparmor ``` ### 7. 文件系统权限 确保关键文件和目录的权限设置正确。 ```bash sudo chmod -R go-w /etc sudo chmod -R go-rw /var/log ``` ### 8. 定期审计和监控 使用工具如`Lynis`进行系统审计。 ```bash sudo apt install lynis -y sudo lynis audit system ``` ### 9. 日志管理 配置系统日志以确保日志文件的完整性和安全性。 ```bash sudo nano /etc/rsyslog.conf ``` 确保以下行未被注释: ```plaintext $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 ``` 保存并退出文件,然后重启rsyslog服务: ```bash sudo systemctl restart rsyslog ``` 通过这些步骤,可以显著提高Linux系统的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值