wangrong
2021-11-24 749179ef60bca3074f8e12325b92b0d406d9246c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
一、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"),'','','');