网站服务器安全设置之Linux系统安全部署

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 针对于Linux系统的服务器安全设置常用的方法以及服务器的安全优化都进行详细的重点介绍给新手入门Linux系统的安全设置,安全无小事,作为一个专职的系统管理员,打造一个安全的linux系统是管理员的一个基本素质,以下15项讲的就是Sinesafe为客户部署的这些安全设置以及优化的方法,如果想要深入专业的安全设置部署建议咨询专业做安全的公司,国内推荐Sinesafe,绿盟,启明星辰等等。

针对于Linux系统的服务器安全设置常用的方法以及服务器的安全优化都进行详细的重点介绍给新手入门Linux系统的安全设置,安全无小事,作为一个专职的系统管理员,打造一个安全的linux系统是管理员的一个基本素质,以下15项讲的就是Sinesafe为客户部署的这些安全设置以及优化的方法,如果想要深入专业的安全设置部署建议咨询专业做安全的公司,国内推荐Sinesafe,绿盟,启明星辰等等。

一、注释掉系统不需要的用户和用户组

注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。

cp /etc/passwd /etc/passwdbak #修改之前先备份

vi /etc/passwd #编辑用户,在前面加上#注释掉此行

#adm:x:3:4:adm:/var/adm:/sbin/nologin

#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

#sync:x:5:0:sync:/sbin:/bin/sync

#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

#halt:x:7:0:halt:/sbin:/sbin/halt

#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

#operator:x:11:0:operator:/root:/sbin/nologin

#games:x:12:100:games:/usr/games:/sbin/nologin

#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin #注释掉ftp匿名账号

cp /etc/group /etc/groupbak #修改之前先备份

vi /etc/group #编辑用户组,在前面加上#注释掉此行

#adm:x:4:root,adm,daemon

#lp:x:7:daemon,lp

#uucp:x:14:uucp

#games:x:20:

#dip:x:40:

二、关闭系统不需要的服务

service acpid stop chkconfig acpid off #停止服务,取消开机启动 #电源进阶设定,常用在 Laptop 上

service autofs stop chkconfig autofs off #停用自动挂载档桉系统与週边装置

service bluetooth stop chkconfig bluetooth off #停用Bluetooth蓝芽

service cpuspeed stop chkconfig cpuspeed off #停用控制CPU速度主要用来省电

service cups stop chkconfig cups off #停用 Common UNIX Printing System 使系统支援印表机

service ip6tables stop chkconfig ip6tables off #禁止IPv6

###########################################################################

如果要恢复某一个服务,可以执行下面操作

service acpid start chkconfig acpid on

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

chmod -R 700 /etc/rc.d/init.d/*

chmod -R 777 /etc/rc.d/init.d/* #恢复默认设置

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

chattr +i /etc/passwd

chattr +i /etc/shadow

chattr +i /etc/group

chattr +i /etc/gshadow

chattr +i /etc/services #给系统服务端口列表文件加锁,防止未经许可的删除或添加服务

lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/services #显示文件的属性

注意:执行以上权限修改之后,就无法添加删除用户了。

如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作

chattr -i /etc/passwd #取消权限锁定设置

chattr -i /etc/shadow

chattr -i /etc/group

chattr -i /etc/gshadow

chattr -i /etc/services #取消系统服务端口列表文件加锁

现在可以进行添加删除用户了,操作完之后再锁定目录文件

五、限制不同文件的权限

chattr +a .bash_history #避免删除.bash_history或者重定向到/dev/null

chattr +i .bash_history

chmod 700 /usr/bin 恢复 chmod 555 /usr/bin

chmod 700 /bin/ping 恢复 chmod 4755 /bin/ping

chmod 700 /usr/bin/vim 恢复 chmod 755 /usr/bin/vim

chmod 700 /bin/netstat 恢复 chmod 755 /bin/netstat

chmod 700 /usr/bin/tail 恢复 chmod 755 /usr/bin/tail

chmod 700 /usr/bin/less 恢复 chmod 755 /usr/bin/less

chmod 700 /usr/bin/head 恢复 chmod 755 /usr/bin/head

chmod 700 /bin/cat 恢复 chmod 755 /bin/cat

chmod 700 /bin/uname 恢复 chmod 755 /bin/uname

chmod 500 /bin/ps 恢复 chmod 755 /bin/ps

六、禁止使用Ctrl+Alt+Del快捷键重启服务器

cp /etc/inittab /etc/inittabbak

vi /etc/inittab #注释掉下面这一行

#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

七、使用yum update更新系统时不升级内核,只更新软件包

由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,这是非常可怕的,没有特别的需要,建议不要随意升级内核。

cp /etc/yum.conf /etc/yum.confbak

1、修改yum的配置文件 vi /etc/yum.conf 在[main]的最后添加 exclude=kernel*

2、直接在yum的命令后面加上如下的参数:

yum --exclude=kernel* update

查看系统版本 cat /etc/issue

查看内核版本 uname -a

八、关闭Centos自动更新

chkconfig --list yum-updatesd #显示当前系统状态

yum-updatesd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

service yum-updatesd stop #关闭 开启参数为start

停止 yum-updatesd: [确定]

service yum-updatesd status #查看是否关闭

yum-updatesd 已停

chkconfig --level 35 yum-updatesd off #禁止开启启动(系统模式为3、5)

chkconfig yum-updatesd off #禁止开启启动(所有启动模式全部禁止)

chkconfig --list yum-updatesd #显示当前系统状态

yum-updatesd 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:关闭 6:关闭

九、关闭多余的虚拟控制台

我们知道从控制台切换到 X 窗口,一般采用 Alt-F7 ,为什么呢?因为系统默认定义了 6 个虚拟控制台,

所以 X 就成了第7个。实际上,很多人一般不会需要这么多虚拟控制台的,修改/etc/inittab ,注释掉那些你不需要的。

cp /etc/inittab /etc/inittabbak

vi /etc/inittab

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

#2:2345:respawn:/sbin/mingetty tty2

#3:2345:respawn:/sbin/mingetty tty3

#4:2345:respawn:/sbin/mingetty tty4

#5:2345:respawn:/sbin/mingetty tty5

#6:2345:respawn:/sbin/mingetty tty6

十、删除MySQL历史记录

用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。

如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。

所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。

另外这两个文件我们也应该不让它记录我们的操作,以防万一。

cd

cp .bash_history .bash_historybak #备份

cp .mysql_history .mysql_historybak

rm .bash_history .mysql_history

ln -s /dev/null .bash_history

ln -s /dev/null .mysql_history

十一、修改history命令记录

cp /etc/profile /etc/profilebak

vi /etc/profile

找到 HISTSIZE=1000 改为 HISTSIZE=50

十二、隐藏服务器系统信息

在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。

为了不让这些默认的信息泄露出来,我们要进行下面的操作,让它只显示一个"login:"提示符。

删除/etc/issue和/etc/issue.net这两个文件,或者把这2个文件改名,效果是一样的。

mv /etc/issue /etc/issuebak

mv /etc/issue.net /etc/issue.netbak

十三、优化Linux内核参数

cp /etc/sysctl.conf /etc/sysctl.confbak

vi /etc/sysctl.conf #在文件末尾添加以下内容

net.ipv4.ip_forward = 1 #修改为1

net.core.somaxconn = 262144

net.core.netdev_max_backlog = 262144

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.netfilter.ip_conntrack_max = 131072

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180

net.ipv4.route.gc_timeout = 20

net.ipv4.ip_conntrack_max = 819200

net.ipv4.ip_local_port_range = 10024 65535

net.ipv4.tcp_retries2 = 5

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_len = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_keepalive_time = 120

net.ipv4.tcp_keepalive_probes = 3

net.ipv4.tcp_keepalive_intvl = 15

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_max_syn_backlog = 262144

net.ipv4.tcp_wmem = 8192 131072 16777216

net.ipv4.tcp_rmem = 32768 131072 16777216

net.ipv4.tcp_mem = 94500000 915000000 927000000

/sbin/sysctl -p #使配置立即生效

十四、CentOS 系统优化

cp /etc/profile /etc/profilebak2

vi /etc/profile #在文件末尾添加以下内容

ulimit -c unlimited

ulimit -s unlimited

ulimit -SHn 65535

ulimit -S -c 0

export LC_ALL=C

source /etc/profile #使配置立即生效

ulimit -a #显示当前的各种用户进程限制

十五、服务器禁止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表示禁止

专注于安全领域 解决网站安全 解决网站被黑 网站被挂马 网站被篡改 网站安全、服务器安全提供商-www.sinesafe.com --专门解决其他人解决不了的网站安全问题.
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
6月前
|
网络协议 关系型数据库 应用服务中间件
如何迁移网站数据到新的服务器
迁移网站数据到新服务器是一个系统化的过程,需谨慎操作以避免数据丢失或服务中断。小编为您整理发布如何迁移网站数据到新的服务器,以下是详细步骤和注意事项。
|
3月前
|
自然语言处理 监控 数据可视化
如何建设网站:使用阿里云的服务器网站建设5大步骤
企业用阿里云服务器建网站,无需复杂技术,按五步骤即可。先规划需求明确网站功能;再选入门级服务器并初始化;接着部署 PageAdmin CMS,可视化操作易上手;然后选模板填内容搭建网站;最后测试适配与稳定性,绑定域名备案后上线。PageAdmin 还方便后期维护调整。
512 10
|
5月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
6月前
|
安全 应用服务中间件 Apache
小成本大效果:用一台服务器搞定多个网站
只需一台云服务器,即可搭建多个独立网站,实现数字空间多点开花。本文详解域名配置、虚拟主机、数据库隔离、安全防护与性能优化等关键步骤,助你高效利用服务器资源,节省成本、提升管理效率,适用于个人博客、企业官网、SEO站群等多种场景。
749 27
|
6月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
1273 0
|
6月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
1826 0
|
6月前
|
存储 安全 Linux
Linux服务器上安装配置GitLab的步骤。
按照以上步骤,一个基础的GitLab服务应该运行并可以使用。记得定期检查GitLab官方文档,因为GitLab的安装和配置步骤可能随着新版本而变化。
552 0
|
6月前
|
云安全 弹性计算 安全
阿里云服务器安全功能解析:基础防护与云安全产品参考
在使用云服务器的过程中,云服务器的安全问题是很多用户非常关心的问题。阿里云服务器除了提供基础的防护之外,还提供了一系列安全防护类云产品,以确保用户云服务器的安全。本文将详细介绍阿里云服务器的基础安全防护有哪些,以及阿里云的一些安全防护类云产品,帮助用户更好地理解和使用阿里云服务器的安全功能。
|
3月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
305 10