编辑 | blame | 历史 | 原始文档
一、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

输入  的密钥口令
        (如果和密钥库口令相同, 按回车): JCZX@2021#sjy
vi server.xml


开放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"),'','','');