知方号

知方号

Linux加固

Linux加固

加固方法大多数要用到root权限,比赛时是不会给root用户的,需要我们自己提权,给出两篇提权的文章 https://blog.csdn.net/devil8123665/article/details/108146676 https://blog.csdn.net/devil8123665/article/details/107485260

文章目录 操作系统加固Apache加固

操作系统加固

1.开启防火墙

service iptables start

2.锁定系统中多余用户

执行命令–>cat /etc/passwd 来查看一下有哪些用户

执行命令–>passwd -l 来锁定不需要的用户

passwd -u 可以解锁被锁定的用户

3.锁定系统中的空口令用户

执行命令–>cat /etc/shadow 来查看一下所有用户的密码

执行命令–>awk -F “:” ‘($2=="!!"){print $1}’ /etc/shadow 可以筛选出空口令用户

执行命令–>passwd -l 锁定空口令用户 账户密码配置好后,执行命令

chattr +i /etc/passwdchattr +i /etc/shadow

来让用户账户和密码目录赋予不可更改属性 恢复方法

chattr -i /etc/passwdchattr -i /etc/shadow

4.设置口令策略

执行命令 vi /et/login.defs 来修改口令策略

PASS_MAX_DAYS 90 #新建用户的密码最长使用天数 PASS_MIN_DAYS 0 #新建用户的密码最短使用天数 PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数 PASS_MIN_LEN 9 #最小密码长度9

5.禁用root之外的超级用户

cat /etc/passwd 查看口令文件,口令文件格式如下 login_name:password:user_ID:group_ID:comment:home_dir:command login_name:用户名 password:加密后的用户密码 user_ID:用户ID,(1 ~ 6000) 若用户ID=0,则该用户拥有超级用户的权限。查看此处是否有多个uid=0。 group_ID:用户组ID comment:用户全名或其它注释信息 home_dir:用户根目录 command:用户登录后的执行命令

加固方法: 使用命令–>awk -F “:” ‘($3=="0"){print $1}’ /etc/passwd 来筛选出uid为0的用户 使用命令–>passwd -l 锁定除root之外的超级用户

6.禁止非root用户执行/etc/rc.d/init.d下的系统命令

执行命令–>chmod -R 700 /etc/rc.d/init.d/* 恢复方法–>chmod -R 777 /etc/rc.d/init.d/* #恢复默认设置

7.限制能够su成root的用户

执行命令–>vi /etc/pam.d/su 添加下图标记行,只有wheel组的用户可以通过su提权

做完这步操作后记得将自己使用的用户分到wheel组

8.限制超级管理员远程登录

执行命令–>vi /etc/ssh/sshd_config 来查看远程登录配置文件 PermitRootLogin yes表示允许root远程登录,注释掉这句语句或者改成no 执行命令–>service sshd restart 重启ssh服务 9.屏蔽ssh登录banner信息

使用命令–>vi /etc/ssh/sshd_config 找到配置信息banner,将前面的#删掉

执行命令–>vi /etc/motd 删除里面的内容或者将它改为自己的提示信息

10.系统用户的执行shell权限

执行命令–>

cat /etc/passwd |grep "/bin/bash"

发现ftp和nobody作为系统用户不应该具有执行shell的权限 加固方法: vi /etc/passwd 将ftp和nobody后面的/bin/bash改为/sbin/nologin

11.未经授权的suid文件漏洞

编写以下脚本 使用命令–>bash 2.sh 执行脚本

看到useradd不符合规则 加固方法 chmod 755 /usr/bin/useradd

12.设置账户锁定登录失败锁定次数、锁定时间 编辑/etc/pam.d/system-auth文件

vi /etc/pam.d/system-auth

填加以下代码行

auth required pam_tally.so onerr=fail deny=6 unlock_time=600 even_root_unlock_time=100

表示用户登录失败6次,账户锁定600秒,root账户锁定100秒 13.修改TMOUNT的自动注销时间

vi /etc/profile

在文件中添加如图语句 TMOUNT=60表示用户不操作60秒后自动注销账户

14.修改bash保留命令条数

vi /etc/profile 修改HISTSIZE=5,表示保留5条命令

15.停止或禁用与承载无关的服务

chkconfig --list 查看所有服务的状态 加固方法: 记录需要关闭服务的名称 chkconfig - -del 删除服务 chkconfig - -level on|off 服务在特定级别下打开|关闭

16.为审计产生的数据分配合理的存储空间和存储时间

#/etc/init.d/rsyslog start 启动日志 系统日志(默认)/var/log/messages cron日志(默认)/var/log/cron 安全日志(默认)/var/log/secure #cat /etc/logrotate.conf 查看系统轮询配置,有无 #rotate log files weekly weekly #keep 4 weeks worth of backlogs rotate 4 的配置 加固方法:

#vi /etc/logrotate.d/syslog编辑配置文件

增加rotate 4 日志文件保存个数为4,当第5个产生后,删除最早的日志size 100k 每个日志的大小 加固后应类似如下内容:

/var/log/syslog/*_log {missingoknotifemptysize 100k # log files will be rotated when they grow bigger that 100k.rotate 5 # will keep the logs for 5 weeks.compress # log files will be compressed.sharedscriptspostrotate/etc/init.d/syslog condrestart >/dev/null 2>1 || trueendscript}

Apache加固

1.以特定用户运行http服务

以特定用户运行服务,不要使系统默认账号启动APACHE,以免受到越权使用造成非法攻击 加固方法:

vi /etc/httpd/conf/httpd.conf

修改为

因为用户nobody 没有sh执行权限,所以这种配置比较安全.一般情况下配置单独用户,该用户没有sh 执行权限.取消掉了运行账户对sh等的执行权限后能够防止webshell通过默认的sh执行命令

2.隐藏banner信息

httpd –v 查看httpd版本信息

当我们访问服务出错的时候的报错,看到banner泄露了apache的版本信息

加固方法:

vi /etc/httpd/conf/httpd.conf

将ServerTokens Os 改为:ServerTokens Pord //在出现错误页的时候不显示服务器操作系统的名称

将ServerSignature On 改为:ServerSignature off //不回显apache版本信息

3.禁止目录浏览 vi /etc/httpd/conf/httpd.conf 编辑配置文件, 将Options Indexs FollowSymLinks改为Options FollowSymLinks 4.为特定目录使用密码保护

假设/icons目录需要密码保护 执行命令 /usr/bin/htpasswd -c /usr/local/etc/passwd.httpd testuser 创建包含用户名和密码的文

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。