CentOS 7服务器初始安全部署

CentOS 7服务器初始安全部署

开启防火墙,关闭SELinux

  1. 保证能够远程的前提下开启防火墙,如云服务器需要能够通过VNC方式访问
systemctl start firewalld

编辑SELinux配置文件

vi /etc/selinux/config

找到SELINUX=enforcing,改为SELINUX=disabled
重启操作系统

reboot

创建远程管理员账号

  1. root用户下,创建用户abc
useradd abc
  1. 为用户abc设置密码def
passwd abc
  1. 将用户加入wheel组
usermod -aG wheel abc

禁用root远程

  1. 编辑ssh配置文件
vi /etc/ssh/sshd_config
  1. 找到PermitRootLogin,值修改为no
PermitRootLogin no
  1. 保存重启ssh,该操作可能会造成远程连接断开
systemctl restart sshd

注: 禁用root后,所有操作如未特殊说明,均在新管理员用户下进行

安装MySQL5.7

  1. 下载安装mysql的yum源
sudo wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
sudo yum -y install mysql57-community-release-el7-10.noarch.rpm

9.导入mysql公钥到rpm配置

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  1. 安装并检查
sudo yum -y install mysql-community-server

检查,会列出MySQL详细信息(略)

rpm -qi mysql-community-server
  1. 修改MySQL配置,防火墙开放MySQL访问(更多防火墙配置可参考https://www.cnblogs.com/architectforest/p/12304219.html)
    编辑MySQL配置文件
sudo vi /etc/my.cnf

在[mysqld]最下方增加或修改如下内容,lower_case_table_names=1表示表名大小写不敏感

lower_case_table_names=1
port=新端口号
character_set_server=utf8mb4

防火墙开放该端口

sudo firewall-cmd --zone=public --add-port=新端口/tcp --permanent
sudo firewall-cmd --reload
  1. 启动MySQL,开机自启,重载服务配置
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl daemon-reload
  1. MySQL初次root登录,修改密码
    获取初始密码
sudo grep 'temporary password' /var/log/mysqld.log

获取完整结果如下,则密码为f2y<

2021-07-02T01:58:45.783643Z 1 [Note] A temporary password is generated for root@localhost: f2y<

登录并根据提示输入密码

mysql -uroot -p

修改密码(登录后 mysql> 执行)

set password for root@localhost = password('新密码');
  1. 创建MySQL远程管理账号并赋权(登录需要证书),本地登录测试
    root下创建账号,'REQUIRE X509'表示必须提供用户名密码和证书才能访问
create user 新用户名@'%' identified by '密码' REQUIRE X509;

创建数据库(可选)

create database `数据库名` character set 'utf8mb4' collate 'utf8mb4_general_ci';

将相应数据库所有权限赋予新用户

grant all privileges on `数据库名`.* to '用户名'@'%';

mysql中输入quit退出,在服务器本地登录测试

sudo mysql -u用户名 -p密码 -P 新端口 --ssl-ca=/var/lib/mysql/ca.pem --ssl-cert=/var/lib/mysql/client-cert.pem --ssl-key=/var/lib/mysql/client-key.pem
  1. 客户端下载证书,远程登录测试
    将客户端用到的证书访问权限赋予管理员abc,并拷贝到用户abc根目录(/home/abc)
sudo chown abc /var/lib/mysql/client-key.pem /var/lib/mysql/client-cert.pem /var/lib/mysql/ca.pem
cp /var/lib/mysql/client-key.pem /var/lib/mysql/client-cert.pem /var/lib/mysql/ca.pem ~

使用SFTP(MobaXterm会话左侧)将用户abc根目录下三个文件client-key.pem,client-cert.pem,ca.pem下载下来(略)
客户端远程登录测试

mysql -u用户名 -p密码 -h 服务器地址 -P 端口 --ssl-ca=D:\mysql-cert\ca.pem --ssl-cert=D:\mysql-cert\client-cert.pem --ssl-key=D:\mysql-cert\client-key.pem

安装启动redis

sudo yum install epel-release
sudo yum install redis
sudo systemctl start redis
sudo systemctl enable redis
sudo systemctl daemon-reload

安装nginx

sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl daemon-reload

安装openjdk,配置环境变量

安装

sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

切换为root账号

sudo -s

配置环境变量

touch /etc/profile.d/jdk.sh
sh -c "echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> /etc/profile.d/jdk.sh"
sh -c "echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile.d/jdk.sh"
source /etc/profile

切换回用户abc

su abc

安装tomcat

创建安装目录,这里是用户abc下的tomcat目录,即/home/abc/tomcat

mkdir /home/abc/tomcat
cd /home/abc/tomcat

访问tomcat官网,选择需要的版本,复制下载链接后使用命令下载并解压到当前目录下,这里使用了9.0.55(如果下载很慢,可以去华为云镜像中找相应版本下载链接https://mirrors.huaweicloud.com/apache/tomcat/)

wget https://mirrors.huaweicloud.com/apache/tomcat/tomcat-9/v9.0.55/bin/apache-tomcat-9.0.55.tar.gz
tar -zxf apache-tomcat-9.0.55.tar.gz

创建系统服务文件

sudo vi /usr/lib/systemd/system/tomcat.service

写入内容保存

[Unit]
Description=Tomcat Server
After=network.target

[Service]
Type=forking

ExecStart=/home/abc/tomcat/apache-tomcat-9.0.55/bin/startup.sh
ExecStop=/home/abc/tomcat/apache-tomcat-9.0.55/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

重载服务配置,启用并启动Tomcat服务

sudo systemctl daemon-reload
sudo systemctl enable --now tomcat

你可能感兴趣的:(CentOS 7服务器初始安全部署)