CentOS 8服务器初始安全部署
开启防火墙
- 在保证能够远程的前提下开启防火墙,如云服务器需要能够通过VNC方式访问
systemctl start firewalld
创建远程管理员账号
- root用户下,创建用户abc
useradd abc
- 为用户abc设置密码def
passwd abc
- 将用户加入wheel组
usermod -aG wheel abc
禁用root远程
- 编辑ssh配置文件
vi /etc/ssh/sshd_config
- 找到PermitRootLogin,值修改为no
PermitRootLogin no
- 保存重启ssh,该操作可能会造成远程连接断开
systemctl restart sshd
注: 禁用root后,所有操作如未特殊说明,均在新管理员用户下进行
安装MySQL5.7
- 禁用MySQL默认的AppStream存储库
sudo dnf remove @mysql
sudo dnf module reset mysql && sudo dnf module disable mysql
- 创建一个新的存储库文件,写入MySQL5.7信息
sudo vim /etc/yum.repos.d/mysql-community.repo
加入如下内容
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=0
[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=0
- 安装并检查
sudo dnf --enablerepo=mysql57-community install mysql-community-server
检查,会列出MySQL详细信息(略)
rpm -qi mysql-community-server
- 修改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
- 启动MySQL,开机自启,重载服务配置
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl daemon-reload
- MySQL初次root登录,修改密码
获取初始密码
sudo grep 'temporary password' /var/log/mysqld.log
获取完整结果如下,则密码为f2y<<aE/k(9a
2021-07-02T01:58:45.783643Z 1 [Note] A temporary password is generated for root@localhost: f2y<<aE/k(9a
登录并根据提示输入密码
mysql -uroot -p
修改密码(登录后 mysql> 执行)
set password for root@localhost = password('新密码');
- 创建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
- 客户端下载证书,远程登录测试
将客户端用到的证书访问权限赋予管理员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 dnf install redis
sudo systemctl start redis
sudo systemctl enable redis
sudo systemctl daemon-reload
安装nginx
sudo dnf install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl daemon-reload
安装openjdk,配置环境变量
安装
sudo dnf install 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