linux服务器加固的命令,Linux 服务器安全加固

一、summary

随着互联网的发展,隐私以及安全被大家看的越来越重视,越来越多的重要交易正在通过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。优秀的系统应当拥有完善的安全措施,应当足够坚固、能够抵抗来自Internet的侵袭,这正是Linux之所以流行并且成为Internet骨干力量的主要原因。但是,如果你不适当地运用Linux的安全工具,它们反而会埋下隐患。配置拙劣的安全系统会产生许多问题。

然而这也是我的薄弱之处,希望以本文告诫自己,时刻加强安全防护意识,不要存任何侥幸心理,中间可能会有遗漏的地方,也希望大家能留言告知,让我们所有运维的兄弟们都可以轻松的了解。

二、 用户帐号安全

2.1 设定密码策略

#!/bin/bash

# Function: 实现对用户密码策略的设定,如密码最长有效期等

read -p "设置密码最多可多少天不修改:" A

read -p "设置密码修改之间最小的天数:" B

read -p "设置密码最短的长度:" C

read -p "设置密码失效前多少天通知用户:" D

sed -i '/^PASS_MAX_DAYS/c\PASS_MAX_DAYS '$A'' /etc/login.defs

sed -i '/^PASS_MIN_DAYS/c\PASS_MIN_DAYS '$B'' /etc/login.defs

sed -i '/^PASS_MIN_LEN/c\PASS_MIN_LEN '$C'' /etc/login.defs

sed -i '/^PASS_WARN_AGE/c\PASS_WARN_AGE '$D'' /etc/login.defs

echo "已设置好密码策略......"

2.2 、对用户密码强度的设定

打开 /etc/pam.d/sysetm-auth文件 ,修改如下。我们设置新密码不能和旧密码相同,同时新密码至少8位,还要同时包含大字母、小写字母和数字。

password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1

2.3 、对用户的登录次数进行限制

打开/etc/pam.d/sshd文件,在#%PAM-1.0的下面,加入下面的内容,表示当密码输入错误达到3次,就锁定用户150秒,如果root用户输入密码错误达到3次,锁定300秒。锁定的意思是即使密码正确了也登录不了。

auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300

2.4、禁止ROOT用户远程登录

2.5、设置历史命令保存条数和账户超时时间

#! /bin/bash

read -p "设置历史命令保存条数:" E

read -p "设置账户自动注销时间:" F

sed -i '/^HISTSIZE/c\HISTSIZE='$E'' /etc/profile

sed -i '/^HISTSIZE/a\TMOUT='$F'' /etc/profile

2.6、设置只有指定用户组才能使用su命令切换到root用户

在linux中,有一个默认的管理组 wheel。在实际生产环境中,即使我们有系统管理员root的权限,也不推荐用root用户登录。一般情况下用普通用户登录就可以了,在需要root权限执行一些操作时,再su登录成为root用户。但是,任何人只要知道了root的密码,就都可以通过su命令来登录为root用户,这无疑为系统带来了安全隐患。所以,将普通用户加入到wheel组,被加入的这个普通用户就成了管理员组内的用户。然后设置只有wheel组内的成员可以使用su命令切换到root用户。

#! /bin/bash

# Function: 修改配置文件,使得只有wheel组的用户可以使用 su 权限

sed -i '/pam_wheel.so use_uid/c\auth required pam_wheel.so use_uid ' /etc/pam.d/su

n=`cat /etc/login.defs | grep SU_WHEEL_ONLY | wc -l`

if [ $n -eq 0 ];then

echo SU_WHEEL_ONLY yes >> /etc/login.defs

fi

2.7、对Linux账户进行管理

#! /bin/bash

# Function: 对系统中的用户做检查,加固系统

echo "系统中有登录权限的用户有:"

awk -F: '($7=="/bin/bash"){print $1}' /etc/passwd

echo "********************************************"

echo "系统中UID=0的用户有:"

awk -F: '($3=="0"){print $1}' /etc/passwd

echo "********************************************"

N=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`

echo "系统中空密码用户有:$N"

if [ $N -eq 0 ];then

echo "恭喜你,系统中无空密码用户!!"

echo "********************************************"

else

i=1

while [ $N -gt 0 ]

do

None=`awk -F: '($2==""){print $1}' /etc/shadow|awk 'NR=='$i'{print}'`

echo "------------------------"

echo $None

echo "必须为空用户设置密码!!"

passwd $None

let N--

done

M=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`

if [ $M -eq 0 ];then

echo "恭喜,系统中已经没有空密码用户了!"

else

echo "系统中还存在空密码用户:$M"

fi

fi

三、网络服务安全

要经常检查系统的物理环境,禁止那些不必要的网络服务;充分了解系统和服务软件是如何工作的;经常检查系统配置和安全策略,并注意每天查看安全日志。

Linux 系统对外提供强大、多样的服务,由于服务的多样性及其复杂性,在配置和管理这些服务时特别容易犯错误,另外,提供这些服务的软件本身也存在各种漏洞,所以,在决定系统对外开放服务时,必须牢记两个基本原则:

只对外开放所需要的服务,关闭所有不需要的服务。对外提供的服务越少,所面临的外部威胁越小。

将所需的不同服务分布在不同的主机上,这样不仅提高系统的性能,同时便于配置和管理,减小系统的安全风险。

四、系统设置安全

时刻留意安全站点公布的,与 Linux 系统和软件有关的最新安全漏洞和报告;及早发现系统存在的***漏洞,及时安装系统补丁程序。

4.1、限制控制台的使用

4.2、系统关闭Ping

可以把指令添加到文件/etc/rc.d/rc.local中去。

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

4.3、禁止IP源路径路由

五、文件系统安全

对一些重要信息(例如系统配置信息)建立并完善备份机制;对一些特权账号的密码设置要谨慎。

5.1、文件权限

去掉不必要的suid程序,可以通过脚本查看。

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

5.2、备份与恢复

定期对文件系统进行备份,可以将损失减小到最小程度。

六、其他

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值