一、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"),'','','');