一、mysql 5.7安装
|
1 下载并安装MySQL官方的 Yum Repository
|
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
|
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
|
[root@localhost ~]# chmod -R 744 mysql57-community-release-el7-10.noarch.rpm
|
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
|
之后就开始安装MySQL服务器。
|
[root@localhost ~]# yum -y install mysql-community-server
|
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。
|
|
至此MySQL就安装完成了,然后是对MySQL的一些设置。
|
|
2 MySQL数据库设置
|
首先启动MySQL
|
[root@localhost ~]# systemctl start mysqld.service
|
[root@localhost ~]# systemctl status mysqld.service
|
看到active running字样
|
|
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
|
|
[root@localhost ~]# grep "password" /var/log/mysqld.log ii(0UlfpARj(
|
2021-06-10T07:12:28.006189Z 1 [Note]
|
A temporary password is generated for root@localhost: ii(0UlfpARj(
|
|
如下命令进入数据库:
|
|
[root@localhost ~]# mysql -uroot -p
|
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
|
|
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'JCZX@2021#am';
|
这里有个问题,新密码设置的时候如果设置的过于简单会报错:
|
我的是已经修改过的,初始情况下第一个的值是ON,validate_password_length是8。可以通过如下命令修改:
|
mysql> set global validate_password_policy=0;
|
mysql> set global validate_password_length=1;
|
设置之后就是我上面查出来的那几个值了,此时密码就可以设置的很简单,例如1234之类的。到此数据库的密码设置就完成了。
|
|
但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
|
[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch
|
|
默认配置文件路径:
|
配置文件:/etc/my.cnf
|
日志文件:/var/log//var/log/mysqld.log
|
服务启动脚本:/usr/lib/systemd/system/mysqld.service
|
socket文件:/var/run/mysqld/mysqld.pid
|
|
三、创建数据库、用户、权限
|
1. CREATE DATABASE `database_am` CHARACTER SET utf8 COLLATE utf8_general_ci;
|
2. CREATE USER 'amdb_dba'@'%' IDENTIFIED BY 'DBA@2021#amdb';
|
3. GRANT ALL ON database_am.* TO 'amdb_dba'@'%';
|
4. FLUSH PRIVILEGES;
|
|
用户名/密码:
|
root/JCZX@2021#am
|
amdb_dba/DBA@2021#amdb 【支持远程】
|
|
四、设置防火墙
|
firewall-cmd --zone=public --add-port=3306/tcp --permanent
|
firewall-cmd --zone=public --add-port=80/tcp --permanent
|
firewall-cmd --zone=public --add-port=8080/tcp --permanent
|
firewall-cmd --zone=public --add-port=4880/tcp --permanent
|
firewall-cmd --zone=public --add-port=6379/tcp --permanent
|
firewall-cmd --zone=public --add-port=6380/tcp --permanent
|
firewall-cmd --reload
|
firewall-cmd --list-ports
|
|
|
|
五、安装nginx
|
yum install yum-utils -y
|
|
vi /etc/yum.repos.d/nginx.repo
|
|
[nginx-stable]
|
name=nginx stable repo
|
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
|
gpgcheck=1
|
enabled=1
|
gpgkey=https://nginx.org/keys/nginx_signing.key
|
module_hotfixes=true
|
|
[nginx-mainline]
|
name=nginx mainline repo
|
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
|
gpgcheck=1
|
enabled=0
|
gpgkey=https://nginx.org/keys/nginx_signing.key
|
module_hotfixes=true
|
|
yum install nginx
|
systemctl enable nginx.service
|
systemctl start nginx.service
|
systemctl status nginx.service
|
|
firewall-cmd --add-service=http --permanent
|
firewall-cmd --reload
|
firewall-cmd --list-all
|
|
|
六、安装nodejs
|
在/figure下创建目录:/localservice/nodejs
|
mkdir localservice
|
[root@localhost figure]# cd localservice/
|
[root@localhost localservice]# mkdir nodejs
|
[root@localhost localservice]# cd nodejs/
|
[root@localhost nodejs]# pwd
|
/figure/localservice/nodejs
|
wget https://npm.taobao.org/mirrors/node/v14.15.3/node-v14.15.3-linux-x64.tar.xz
|
xz -d node-v14.15.3-linux-x64.tar.xz
|
tar -xvf node-v14.15.3-linux-x64.tar
|
cd node-v14.15.3-linux-x64
|
|
# 建立软连接,变为全局
|
ln -s /figure/localservice/nodejs/node-v14.15.3-linux-x64/bin/npm /usr/local/bin/
|
ln -s /figure/localservice/nodejs/node-v14.15.3-linux-x64/bin/node /usr/local/bin/
|
|
# 以下两个路径为加入nodejs路径
|
export NODE_HOME=/figure/localservice/nodejs/node-v14.15.3-linux-x64
|
export PATH=$NODE_HOME/bin:$PATH
|
|
# 配置生效
|
source /etc/profile
|
|
# 成功
|
node -v
|
v14.15.3
|
npm -v
|
6.14.9
|
|
七、安装pm2
|
安装开始:
|
第一步:
|
全局安装,npm install -g pm2
|
第二步:
|
保存当前进程状态,pm2 save
|
第三步:
|
生成开机自启动服务,pm2 startup
|
第四步:
|
查看启动项,systemctl list-unit-files | grep enable
|
|
|
八、 安装redis
|
安装redis
|
1、检查是否有redis yum 源
|
yum install redis
|
2、下载fedora的epel仓库
|
yum install epel-release
|
3、安装redis数据库
|
yum install redis
|
4、安装完毕后,使用下面的命令启动redis服务
|
# 启动redis
|
systemctl start redis
|
# 停止redis
|
systemctl stop redis
|
# 查看redis运行状态
|
systemctl status redis
|
# 查看redis进程
|
ps -ef | grep redis
|
|
5、设置redis为开机自动启动
|
chkconfig redis on
|
|
6、进入redis服务
|
# 进入本机redis
|
redis-cli
|
# 列出所有key
|
keys *
|
|
修改redis配置文件
|
(vi /etc/redis.conf)
|
1.允许外部链接redis
|
(1)找到 bind 127.0.0.1 将其注释
|
(2)找到 protected-mode yes 将其改为 protected-mode no
|
(3)找到 requirepass 将其密码设置为 jczx@2021#redis
|
2.重启redis
|
# 停止redis
|
systemctl stop redis
|
# 启动redis
|
systemctl start redis
|
|
redis访问密码: jczx@2021#redis
|
redis-cli -p 6379 -a jczx@2021#redis
|
|
远程测试:telnet 192.168.119.100 6379
|
auth jczx@2021#redis
|
查询所有key值: keys *
|
获取密码: config get requirepass
|
|
|
九、安装jdk 和tomcat
|
rpm -qa | grep java
|
[root@localhost ~]# rpm -e --nodeps javassist-3.16.1-10.el7.noarch
|
[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-devel-1.7.0.171-2.6.13.2.el7.x86_64
|
[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
|
[root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
|
[root@localhost ~]# rpm -e --nodeps javamail-1.4.6-8.el7.noarch
|
[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
|
[root@localhost ~]# rpm -e --nodeps tzdata-java-2018c-1.el7.noarch
|
[root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
|
[root@localhost ~]# rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch
|
[root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.161-2.b14.el7.x86_64
|
[root@localhost ~]# rpm -e --nodeps java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64
|
[root@localhost ~]# rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
|
[root@localhost ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el7_3.x86_64
|
|
JDK安装
|
安装JDK:
|
查找jdk:yum search jdk
|
安装jdk1.8:yum install java-1.8.0-openjdk-devel.x86_64
|
测试:查看java版本:java -version 查看javac:javac
|
|
|
Tomcat安装
|
5、安装Tomcat
|
准备:使用xftp上传tomcat压缩包
|
解压tomcat压缩包
|
tar -zxvf apache-tomcat-8.5.57.tar.gz
|
修改文件名
|
|
启动tomcat
|
sh /figure/apache-tomcat-8.5.57/bin/startup.sh
|
(关闭tomcat:sh /figure/apache-tomcat-8.5.57/bin/shutdown.sh)
|
|
tomcat端口配置 80
|
nginx端口配置 8080
|
公网开放8080端口,通过nginx代理映射其它端口
|
|
开通3030websocket端口映射
|
|
|
|
npm 运行
|
sudo npm i --unsafe-perm
|
|
个人用户的权限只可以在本home下有完整权限,其他目录要看别人授权。
|
而经常需要root用户的权限,这时候sudo可以化身为root来操作。
|
我记得我曾经sudo创建了文件,然后发现自己并没有读写权限,因为查看权限是root创建的。
|
新创建的用户并不能使用sudo命令,需要给他添加授权。
|
|
sudoers
|
whereis sudoers
|
查看sudoers权限
|
ls -l /etc/sudoers
|
打开权限
|
chmod -v u+w /etc/sudoers
|
|
|
添加用户 adduser ammanager
|
passwd ammanager
|
JCZX@2021#am&manager
|
添加用户 adduser amadmin
|
passwd amadmin
|
JCZX@2021#am&manager
|
修改root密码: JCZX@2022#sjy
|
|
追加新增用户
|
vim /etc/sudoers
|
root ALL=(ALL) ALL
|
amadmin ALL=(ALL) ALL #这个是新增的用户
|
收回权限
|
chmod -v u-w /etc/sudoers
|
|
1.设置密码复杂度及长度
|
sed -i 's/# minlen = 9/minlen = 8/' /etc/security/pwquality.conf
|
sed -i 's/# dcredit = 1/dcredit = -1/' /etc/security/pwquality.conf
|
sed -i 's/# ucredit = 1/ucredit = -1/' /etc/security/pwquality.conf
|
sed -i 's/# lcredit = 1/lcredit = -1/' /etc/security/pwquality.conf
|
sed -i 's/# ocredit = 1/ocredit = -1/' /etc/security/pwquality.conf
|
禁止ROOT直接SSH登录
|
sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
|
检查项目 : 登录失败处理功能(SSH连续N次登录失败,自动锁定X秒)
|
加固建议:编辑/etc/pam.d/sshd文件, 在非注释行的第一行(即#%PAM-1.0下面)添加以下行
|
(deny为连续失败次数,配置为3-8次,unlock_time为解锁时间,配置为600-1800秒)
|
auth required pam_tally2.so deny=5 even_deny_root unlock_time=900 root_unlock_time=900
|
|
检查项目 : 设置SSH空闲超时退出时间
|
加固建议: 编辑/etc/ssh/sshd_config
|
将ClientAliveInterval 设置为300到900,即5-15分钟,
|
将ClientAliveCountMax设置为0。
|
ClientAliveInterval 900
|
ClientAliveCountMax 0
|
|
禁止SSH空密码用户登录
|
加固建议: 在/etc/ssh/sshd_config中取消PermitEmptyPasswords no注释符号#
|
|
5、检查项目 : 禁止SSH空密码用户登录
|
加固建议: 在/etc/ssh/sshd_config中取消PermitEmptyPasswords no注释符号#
|
|
6、检查项目 : 确保SSH MaxAuthTries设置为3到6之间
|
加固建议: 在/etc/ssh/sshd_config中
|
取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6,建议为5:MaxAuthTries 5
|
|
7、检查项目 : SSHD强制使用V2安全协议
|
加固建议: 编辑/etc/ssh/sshd_config
|
文件以按如下方式设置参数:Protocol 2
|
|
8、检查项目 : 确保SSH LogLevel设置为INFO
|
加固建议: 编辑/etc/ssh/sshd_config 文件以按如下方式设置参数(取消注释): LogLevel INFO
|
|
9、检查项目 : 设置密码失效时间
|
加固建议: 在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间, 建议为90:PASS_MAX_DAYS 90
|
需同时执行命令设置root密码失效时间: $ chage --maxdays 90 root
|
chage -l root # 查询用户的密码到期时间等信息
|
|
10、检查项目 : 设置密码修改最小间隔时间
|
加固建议: 在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为5-14之间, 建议为7:PASS_MIN_DAYS 7
|
需同时执行命令为 root用户设置:$ chage --mindays 7 root
|
|
1.关于su的相关权限涉及到两个文件,分别为/etc/pam.d/su和/etc/login.defs两个配置文件。
|
|
2.禁止普通用户su到root,配置如下:
|
去除/etc/pam.d/su文件中如下行的注释,保存退出即可(即时生效):
|
|
3.禁止普通用户su到root,但是希望指定的普通用户可以su到root
|
在/etc/login.defs文件中加入如下配置项,保持退出(即时生效):
|
|
SU_WHEEL_ONLY yes
|
将需要su到root用户的用户名添加至wheel组中,我们以admin为例:
|
|
[root@localhost ~]# usermod -G wheel amadmin
|
|
让系统超时未操作自动退出登录,可以修改==/etc/profile==文件
|
vi /etc/profile
|
#打开文件后,在末尾增加下面两行内容,然后保存退出。
|
export TMOUT=600 #600秒无操作自动退出登录
|
readonly TMOUT # 将值设置为readonly 防止用户更改,在shell中无法修改TMOUT
|
|
|
|
Mysql 整改:
|
在mysql配置文件(/etc/my.cnf)中写入:
|
general_log=1
|
general_log_file=/usr/local/mysql/mysql-5.7.22/log/general.log
|
slow_query_log=1
|
slow_query_log_file=/usr/local/mysql/mysql-5.7.22/log/slowqueries.log
|
long_query_time=5
|
log_output=’FILE,TABLE’
|
以上配置功能为:
|
general_log=1 开启通用日志
|
general_log_file=/usr/local/mysql/mysql-5.7.22/log/general.log 通用日志地址
|
slow_query_log=1 开启慢查询日志
|
slow_query_log_file=/usr/local/mysql/mysql-5.7.22/log/slowqueries.log 慢查询日志地址
|
long_query_time=5 慢查询阀值
|
log_output='FILE,TABLE' 输出方式,FILE表示文件,TABLE表示数据库(可以在mysql库中看到日志),可以同时使用,方法如上,也可单独使用比如log_output=’FILE’。输出到文件比输出到数据库效率高。
|
|
修改完成后重启mysql:service mysql restart
|
|
|
Tomcat 整改 https协议支持
|
|
[root@localhost bak]# keytool -genkey -alias tomcat872 -keyalg RSA -keystore /figure/apache-tomcat-8.5.72/conf/cas.keystore
|
输入密钥库口令: JCZX@2021#sjy
|
再次输入新口令: JCZX@2021#sjy
|
您的名字与姓氏是什么?
|
[Unknown]: wang
|
您的组织单位名称是什么?
|
[Unknown]: wr
|
您的组织名称是什么?
|
[Unknown]: wr
|
您所在的城市或区域名称是什么?
|
[Unknown]: sh
|
您所在的省/市/自治区名称是什么?
|
[Unknown]: sh
|
该单位的双字母国家/地区代码是什么?
|
[Unknown]: cn
|
CN=wang, OU=wr, O=wr, L=sh, ST=sh, C=cn是否正确?
|
[否]: y
|
|
输入 <tomcat> 的密钥口令
|
(如果和密钥库口令相同, 按回车): JCZX@2021#sjy
|
vi server.xml
|
|
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
|
maxThreads="5150" SSLEnabled="true" scheme="https" secure="true"
|
clientAuth="false" sslProtocol="TLS"
|
keyAlias="tomcat872" keystoreFile="/figure/apache-tomcat-8.5.72/conf/cas.keystore"
|
keystorePass="JCZX@2021#sjy"
|
/>
|
开放8443端口
|
[root@localhost conf]# firewall-cmd --zone=public --add-port=8443/tcp --permanent
|
success
|
[root@localhost conf]# systemctl restart firewalld.service
|
[root@localhost conf]# firewall-cmd --reload
|
|
|
|
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("localhost","test",password("nsfocus"),'','','');
|
|
|