CentOS 7系统加固详细方案SSH FTP MYSQL加固

一、删除后门账户 修改强口令

1、修改改密码长度需要编译login.defs文件

vi /etc/login.defs
PASS_MIN_LEN 8

在这里插入图片描述

2、注释掉不需要的用户和用户组

在这里插入图片描述

或者
检查是否存在除root之外UID为0的用户
使用如下代码,对passwd文件进行检索:

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

将检索出来的不是root的用户使用userdel命令全部删除。
在这里插入图片描述

3、限制su命令:如果您不想任何人能够su作为root,可以编辑/etc/pam.d/su文件,增加如下两行:

auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=isd

在这里插入图片描述

二、更改权限设置

1、chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。

# chattr +i /etc/passwd
# chattr +i /etc/shadow
# chattr +i /etc/group
# chattr +i /etc/gshadow

在这里插入图片描述
2、禁止Ctrl Alt Delete重新启动机器命令
修改/etc/inittab文件,将”ca::ctrlaltdel:/sbin/shutdown -t3 -r now”一行注释掉。

在这里插入图片描述

重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:# chmod -R 700 /etc/rc.d/init.d/*
在这里插入图片描述

三、远程登陆

1、#不允许使用低版本的SSH协议

vi /etc/ssh/ssd_config
将#protocol 2,1改为
protocol 2

在这里插入图片描述

2、#取消root直接远程登录

vi /etc/ssh/sshd_config
	PermitRootLogin no

在这里插入图片描述

3、#禁用.rhosts 文件

	Vi /etc/ssh/sshd_config
IgnoreRhosts yes

在这里插入图片描述

4、#禁用基于主机的认证

Vi /etc/ssh/sshd_config
HostbasedAuthentication no

在这里插入图片描述

5、#禁用空密码:

PermitEmptyPasswords no
禁止帐号使用空密码进行远程登录SSH

在这里插入图片描述

6、设置访问控制策略限制能够管理本机的IP地址
检查方法:

#cat /etc/ssh/sshd_config  查看有无AllowUsers的语句
备份方法:
#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
加固方法:
#vi /etc/ssh/sshd_config,添加以下语句
AllowUsers  *@127.*.*.*     此句意为:仅允许127.0.0.0/8网段所有用户通过ssh访问	

在这里插入图片描述

保存后重启ssh服务

#service sshd restart

在这里插入图片描述
7、限制FTP登录
检查方法:
#cat /etc/vsftpd/ftpusers 确认是否包含用户名,这些用户名不允许登录FTP服务
备份方法:
#cp -p /etc/vsftpd/ftpusers /etc/vsftpd/ftpusers_bak
加固方法:
#vi /etc/vsftpd/ftpusers 添加行,每行包含一个用户名,添加的用户将被禁止登录FTP服务(红色字体为修改部分)
在这里插入图片描述

四、服务器

1、服务器禁止ping

 cp  /etc/rc.d/rc.local  /etc/rc.d/rc.localbak     
 vi  /etc/rc.d/rc.local        #在文件末尾增加下面这一行
 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all   

参数0表示允许 1表示禁止
在这里插入图片描述

五、限制访问

1、在 /etc/hosts.allow中加入
all:127.0.0.1
这样就会允许来自127.0.0.1的客户来访问。
在这里插入图片描述

在 /etc/hosts.deny中加入
all:0.0.0.0
就限制了来自0.0.0.0的所有的所有的IP。
在这里插入图片描述

设置好后,要重新启动
# /etc/rc.d/init.d/xinetd restart
在这里插入图片描述

#/etc/rc.d/init.d/network restart
在这里插入图片描述

六、FTP加固

1、禁止匿名登录
anonymous_enable=NO
在这里插入图片描述

2、设置本地用户的文件生成掩码为022,默认值为077
local_umask=022
在这里插入图片描述

3、禁止激活上传和下载日志
xferlog_enable=NO
在这里插入图片描述

4、禁止匿名用户上传
为了禁止匿名用户上传,需要在/etc/vsftpd中激活两个配置选项,分别是:
anon_upload_enable=NO
//禁止匿名用户上传
在这里插入图片描述

anon_mkdir_write_enable=NO
//关闭匿名用户的写和创建目录的权限
在这里插入图片描述

若要以上两项设置生效,同时还要求:
write_enable=NO
//禁止匿名用户对文件系统的上传目录具有写权限
在这里插入图片描述

添加如下的配置语句:
anon_world_readable_only=YES
//上面的配置语句用于禁止放开匿名用户的浏览权限
在这里插入图片描述

重新启动vsftpd.
在这里插入图片描述

5、设置客户端连接时的端口范围
例如下面的配置:
pasv_min_port=50000 (改成1)
pasv_max_port=60000(改成2)
将使客户端连接时的端口范围在50000和60000之间。这提高了系统的安全性。

6、设置chroot
在 默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限许可的范围内进行下载和上传。这样的设置对于一个FTP服务器来说是不安全的。如果希望用户登录后不能切换到自家目录以外的目录,则需要设置chroot选项,涉及如下选项:
chroot_local_user
chroot_list_enable
chroot_list_file
有两种设置chroot的方法:
(1)设置对所有的本地用户执行chroot(即活动范围限制在自家目录)只要将chroot_local_user的值设 为YES即可, 即:
chroot_local_user=YES
在这里插入图片描述

(2)设置指定的用户执行chroot需要如下的设置:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file= /etc/vsftpd.chroot_list
这样,只有/etc/vsftpd.chroot_list文件中指定的用户才执行chroot。
注意 :上面所提及的文件/etc/vsftpd.chroot_list和下面将要提及的文件 /etc/vsftpd.user_list的格式要求均为每个 用户名占一行。

7、只允许指定的主机访问
在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:
only_from <主机表>
例如:only_from 192.168.1.0
表示只允许192.168.1.0网段内的主机访问。
2)指定不能访问的主机
在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:
no_access <主机表>
例如:no_access 192.168.1.0
表示只有192.168.1.0网段内的主机不能访问。
(因为现在情况是vsftpd服务不是由xinetd管理的,所以没有这个配置文件;vsftpd使用standalone模式启动,则有这个配置文件)

七、一些需要禁用的PHP危险函数(disable_functions)

phpinfo()
功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。
危险等级:中

passthru()
功能描述:允许执行一个外部程序并回显输出,类似于 exec()。
危险等级:高

exec()
功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。
危险等级:高

system()
功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。
危险等级:高

chroot()
功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式
PHP 时才能工作,且该函数不适用于 Windows 系统。
危险等级:高

scandir()
功能描述:列出指定路径中的文件和目录。
危险等级:中

chgrp()
功能描述:改变文件或目录所属的用户组。
危险等级:高

chown()
功能描述:改变文件或目录的所有者。
危险等级:高

shell_exec()
功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。
危险等级:高

proc_open()
功能描述:执行一个命令并打开文件指针用于读取以及写入。
危险等级:高

proc_get_status()
功能描述:获取使用 proc_open() 所打开进程的信息。
危险等级:高

error_log()
功能描述:将错误信息发送到指定位置(文件)。
安全备注:在某些版本的 PHP 中,可使用 error_log() 绕过 PHP safe mode,
执行任意命令。
危险等级:低

ini_alter()
功能描述:是 ini_set() 函数的一个别名函数,功能与 ini_set() 相同。
具体参见 ini_set()。
危险等级:高

ini_set()
功能描述:可用于修改、设置 PHP 环境配置参数。
危险等级:高

ini_restore()
功能描述:可用于恢复 PHP 环境配置参数到其初始值。
危险等级:高

dl()
功能描述:在 PHP 进行运行过程当中(而非启动时)加载一个 PHP 外部模块。
危险等级:高

pfsockopen()
功能描述:建立一个 Internet 或 UNIX 域的 socket 持久连接。
危险等级:高

syslog()
功能描述:可调用 UNIX 系统的系统层 syslog() 函数。
危险等级:中

readlink()
功能描述:返回符号连接指向的目标文件内容。
危险等级:中

symlink()
功能描述:在 UNIX 系统中建立一个符号链接。
危险等级:高

popen()
功能描述:可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。
危险等级:高

stream_socket_server()
功能描述:建立一个 Internet 或 UNIX 服务器连接。
危险等级:中

putenv()
功能描述:用于在 PHP 运行时改变系统字符集环境。在低于 5.2.6 版本的 PHP 中,可利用该函数
修改系统字符集环境后,利用 sendmail 指令发送特殊参数执行系统 SHELL 命令。
危险等级:高

禁用方法如下:
打开/etc/php.ini文件,
查找到 disable_functions ,添加需禁用的函数名,如下:
phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
在这里插入图片描述

八、MySQL加固

1、修改root用户口令,删除空口令
缺省安装的MySQL的root用户是空密码的,为了安全起见,必须修改为强密码,所谓的强密码,至少8位,由字母、数字和符号组成的不规律密码。使用MySQL自带的命令mysaladmin修改root密码,同时也可以登陆数据库,修改数据库mysql下的user表的字段内容,修改方法如下所示:

 /usr/local/mysql/bin/mysqladmin -u root password “upassword” //使用mysqladmin

在这里插入图片描述

#mysql> use mysql;
#mysql> update user set password=password(‘upassword’) where user=’root’;

在这里插入图片描述

#mysql> flush privileges; //强制刷新内存授权表,否则用的还是在内存缓冲的口令

在这里插入图片描述

2、禁止远程连接数据库

#vi /etc/my.cf

将#skip-networking注释去掉。

在这里插入图片描述

# /usr/local/mysql/bin/mysqladmin -u root -p shutdown //停止数据库
#/usr/local/mysql/bin/mysqld_safe –user=mysql & //后台用mysql用户启动mysql

3、用户目录权限限制
默认的mysql是安装在/usr/local/mysql,而对应的数据库文件在/usr/local/mysql/var目录下,因此,必须保证该目录不能让未经授权的用户访问后把数据库打包拷贝走了,所以要限制对该目录的访问。确保mysqld运行时,只使用对数据库目录具有读或写权限的linux用户来运行。

# chown -R root /usr/local/mysql/ //mysql主目录给root
# chown -R mysql.mysql /usr/local/mysql/var //确保数据库目录权限所属mysql用户

4、禁止MySQL对本地文件存取
可以在my.cnf中添加local-infile=0,或者加参数local-infile=0启动mysql
在这里插入图片描述

#/usr/local/mysql/bin/mysqld_safe –user=mysql –local-infile=0 &
#mysql> load data local infile ’sqlfile.txt’ into table users fields terminated by ‘,’;
#ERROR 1148 (42000): The used command is not allowed with this MySQL version

–local-infile=0选项启动mysqld从服务器端禁用所有LOAD DATA LOCAL命令,假如需要获取本地文件,需要打开,但是建议关闭。

5、禁止远程访问
如果数据库不需要远程访问,可以禁止远程 TCP/IP 连接,通过在 MySQL 服务器的启动参数中添加–skip-networking参数使 MySQL 服务不监听任何 TCP/IP 连接,增加安全性。

九、Kill 连接(shell)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十、shell攻击获取flag(nc和POST)

在这里插入图片描述

十一、python

DisplayDirectory
在这里插入图片描述

nc
在这里插入图片描述

WebShell
在这里插入图片描述


http://www.niftyadmin.cn/n/5268725.html

相关文章

机器学习 | Matlab实现基于K折交叉验证GA-GRNN遗传算法优化广义回归神经网络模型

文章目录 文章概述源码设计参考资料文章概述 机器学习 | Matlab实现基于GA-GRNN遗传算法优化广义回归神经网络模型 GA-GRNN(Genetic Algorithm- Generalized Regression Neural Network)是一种将遗传算法(Genetic Algorithm)与广义回归神经网络(Generalized Regression Ne…

05 Vue中常用的指令

概述 All Vue-based directives start with a v-* prefix as a Vue-specific attribute. 所有基于 Vue 的指令都以 v-* 前缀作为 Vue 特有的属性。 v-text The v-text directive has the same reactivity as with interpolation. Interpolation with {{ }} is more perform…

从零开始有图:pycharm实现某小说网站资源的获取

运行环境 PyCharm 2023.2.1 python3.11 详细步骤 1、安装requests&#xff0c;parsel和bs4库 点击终端 输入 pip install requests pip install parsel pip install bs4 2、使用pycharm编写python代码&#xff0c;确保在pycharm中可以正常运行代码 不同网站获取方法有一…

oracle 10046事件跟踪

10046事件是一个很好的排查sql语句执行缓慢的内部事件&#xff0c;具体设置方式如下&#xff1a; 根据10046事件跟踪SQL语句 1、 alter session set events 10046 trace name context forever,level 12; 2、执行SQL语句 3、关闭10046事件 alter session set events 10046 trace…

v851s ssh搭建与使用

ssh 概述: 1. 用来远程登录的一种安全通道协议(常用于linux 、UNIX中); 2. 分为服务端和客户端: 1)服务端即openSSH ,一般属于目标开发板(linux中配置文件路径/etc/ssh/sshd_config); 2)客户端即登录端,常用工具:sercureCRT 、MobaXterm 、Putty等; 1. ssh 服务…

架构设计系列之常见架构(二)

五、DDD&#xff08;领域驱动设计&#xff09; 领域驱动设计&#xff08;Domain-Driven Design&#xff0c;DDD&#xff09;是一种开发思想&#xff0c;强调将软件系统的注意力集中在业务领域上&#xff0c;将领域视为应用的核心。在架构设计中&#xff0c;DDD 提供了一种不同…

期货股市联动(期股联动助推资本市场上扬)

期股联动——期货股市助推资本市场上扬 随着我国资本市场的不断发展&#xff0c;期货和股票这两个市场也在逐渐紧密地联系起来。期货和股票的相互作用是一种“期股联动”&#xff0c;它能够促进资本市场的上扬。 期货与股票市场 期货市场是一种标准化的场外交易市场&#xf…

AST还原实战|某达购票网址混淆js还原分析

关注它&#xff0c;不迷路。 本文章中所有内容仅供学习交流&#xff0c;不可用于任何商业用途和非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请联系作者立即删除&#xff01; 1.混淆js地址 https://premier.hkticketing.com/kramericaindustries.…