使用pem解决权限不安全的问题

  • Linux/%E7%A6%81%E7%94%A8%E7%BB%A7%E6%89%BF.png

  • Linux/%E5%88%A0%E9%99%A4%E5%85%B6%E4%BB%96%E5%8F%AA%E5%89%A9%E7%94%A8%E6%88%B7%E5%90%8D%E7%9A%84%E7%94%A8%E6%88%B7%E5%85%B7%E6%9C%89%E6%9D%83%E9%99%90.png

在Linux上部署各类软件

出自黑马课程笔记

MySQL数据库管理系统安装部署

MySQL5.7版本在CentOS系统安装

注意:安装操作需要root权限

MySQL的安装我们可以通过前面学习的yum命令进行。

安装

  1. 配置yum仓库

    # 更新密钥
    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    
    # 安装Mysql yum库
    rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
    

    image-20221012182514865

    由于MySQL并不在CentOS的官方仓库中,所以我们通过上述rpm命令:

    • 导入MySQL仓库的密钥

    • 配置MySQLQ的yum仓库

  2. 使用yum安装MySQL

    # yum安装Mysql
    yum -y install mysql-community-server
    

    image-20221012182555420

  3. 安装完成后,启动MySQL并配置开机自启动

    systemctl start mysqld		# 启动
    systemctl enable mysqld		# 开机自启
    

    MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

  4. 检查MySQL的运行状态

    systemctl status mysqld
    

    image-20221012182716598

配置

主要配置管理员用户root的密码以及配置允许远程登录的权限。

  1. 获取MySQL的初始密码

    # 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
    grep 'temporary password' /var/log/mysqld.log
    

    image-20221012182744115

  2. 登陆MySQL数据库系统

    # 执行
    mysql -uroot -p
    # 解释
    # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
    # -p,表示使用密码登陆
    
    # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
    

    image-20221012182805966

  3. 修改root用户密码

    # 在MySQL控制台内执行
    ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
    
  4. [扩展],配置root的简单密码

    我们可以给root设置简单密码,如123456.

    请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

    # 如果你想设置简单密码,需要降低Mysql的密码安全级别
    set global validate_password_policy=LOW; # 密码安全级别低
    set global validate_password_length=4;	 # 密码长度最低4位即可
    
    # 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
    ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';
    
  5. [扩展],配置root运行远程登录

    默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

    请注意,允许root远程登录会带来安全风险

    # 授权root远程登录
    grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;  
    # IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址
    # 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同
    
    # 刷新权限,生效
    flush privileges;
    
  6. 退出MySQL控制台页面

    # 退出命令
    exit
    
    # 或者通过快捷键退出:ctrl + d
    
  7. 检查端口

    MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

    netstat -anp | grep 3306
    

    image-20221012183746802

至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。

MySQL8.0版本在CentOS系统安装

注意:安装操作需要root权限

安装

  1. 配置yum仓库

    # 更新密钥
    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    
    # 安装Mysql8.x版本 yum库
    rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
    
  2. 使用yum安装MySQL

    # yum安装Mysql
    yum -y install mysql-community-server
    
  3. 安装完成后,启动MySQL并配置开机自启动

    systemctl start mysqld		# 启动
    systemctl enable mysqld		# 开机自启
    

    MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

  4. 检查MySQL的运行状态

    systemctl status mysqld
    

配置

主要修改root密码和允许root远程登录

  1. 获取MySQL的初始密码

    # 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
    grep 'temporary password' /var/log/mysqld.log
    
  2. 登录MySQL数据库系统

    # 执行
    mysql -uroot -p
    # 解释
    # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
    # -p,表示使用密码登陆
    
    # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
    
  3. 修改root密码

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
    
  4. [扩展],配置root的简单密码

    我们可以给root设置简单密码,如123456.

    请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

    set global validate_password.policy=0;		# 密码安全级别低
    set global validate_password.length=4;		# 密码长度最低4位即可
    
  5. 允许root远程登录,并设置远程登录密码

    默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

    请注意,允许root远程登录会带来安全风险

    # 第一次设置root远程登录,并配置远程密码使用如下SQL命令
    create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
    
    # 后续修改密码使用如下SQL命令
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
    
  6. 退出MySQL控制台页面

    # 退出命令
    exit
    
    # 或者通过快捷键退出:ctrl + d
    
  7. 检查端口

    MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

    netstat -anp | grep 3306
    

    image-20221012192303607

  8. 重启linux出现错误

  • RROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

  • 重启服务,sudo /etc/init.d/mysql restart

至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。

Tomcat安装部署

安装

Tomcat的安装非常简单,主要分为2部分:

  1. 安装JDK环境

  2. 解压并安装Tomcat

本次安装使用Tomcat版本是:9.0.76版本,需要Java(JDK)版本最低为JDK8或更高版本

课程中使用的JDK版本是:JDK8u351版本

安装JDK环境

  1. 下载JDK软件

    https://www.oracle.com/java/technologies/downloads

    在页面下方找到:

    image-20221017163411651

    下载jdk-8u351-linux-x64.tar.gz

    image-20221017163440491

    ==在弹出的页面中输入Oracle的账户密码即可下载(如无账户,请自行注册,注册是免费的)==

  2. 登陆Linux系统,切换到root用户

    https://image-set.oss-cn-zhangjiakou.aliyuncs.com/img-out/2022/10/17/20221017163607.png

  3. 通过FinalShell,上传下载好的JDK安装包

    image-20221017163706026

  4. 创建文件夹,用来部署JDK,将JDK和Tomcat都安装部署到:/export/server 内

    mkdir -p /export/server
    
  5. 解压缩JDK安装文件

    tar -zxvf jdk-8u351-linux-x64.tar.gz -C /export/server
    
  6. 配置JDK的软链接

    ln -s /export/server/jdk1.8.0_351 /export/server/jdk
    
  7. 配置JAVA_HOME环境变量,以及将$JAVA_HOME/bin文件夹加入PATH环境变量中

    # 编辑/etc/profile文件
    export JAVA_HOME=/export/server/jdk
    export PATH=$PATH:$JAVA_HOME/bin
    
  8. 生效环境变量

    source /etc/profile
    
  9. 配置java执行程序的软链接

    # 删除系统自带的java程序
    rm -f /usr/bin/java
    # 软链接我们自己安装的java程序
    ln -s /export/server/jdk/bin/java /usr/bin/java
    
  10. 执行验证:

    java -version
    javac -version
    

解压并部署Tomcat

Tomcat建议使用非Root用户安装并启动

可以创建一个用户:tomcat用以部署

  1. 首先,放行tomcat需要使用的8080端口的外部访问权限

    CentOS系统默认开启了防火墙,阻止外部网络流量访问系统内部

    所以,如果想要Tomcat可以正常使用,需要对Tomcat默认使用的8080端口进行放行

    放行有2种操作方式:

    1. 关闭防火墙

    2. 配置防火墙规则,放行端口

    # 以下操作2选一即可
    # 方式1:关闭防火墙
    systemctl stop firewalld		# 关闭防火墙
    systemctl disable firewalld		# 停止防火墙开机自启
    
    # 方式2:放行8080端口的外部访问
    firewall-cmd --add-port=8080/tcp --permanent		# --add-port=8080/tcp表示放行8080端口的tcp访问,--permanent表示永久生效
    firewall-cmd --reload								# 重新载入防火墙规则使其生效
    

    方便起见,建议同学们选择方式1,直接关闭防火墙一劳永逸

    防火墙的配置非常复杂,后面会视情况独立出一集防火墙配置规则的章节。

  2. 以root用户操作,创建tomcat用户

    # 使用root用户操作
    useradd tomcat
    # 可选,为tomcat用户配置密码
    passwd tomcat
    
  3. 下载Tomcat安装包

    # 使用root用户操作
    wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
    # 如果出现https相关错误,可以使用--no-check-certificate选项
    wget --no-check-certificate https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
    

    如果Linux内下载过慢,可以复制下载链接在Windows系统中使用迅雷等软件加速下载然后上传到Linux内即可

    或者使用课程资料中提供的安装包

  4. 解压Tomcat安装包

    # 使用root用户操作,否则无权限解压到/export/server内,除非修改此文件夹权限
    tar -zxvf apache-tomcat-9.0.76.tar.gz -C /export/server
    
  5. 创建Tomcat软链接

    # 使用root用户操作
    ln -s /export/server/apache-tomcat-9.0.76/export/server/tomcat
    
  6. 修改tomcat安装目录权限

    # 使用root用户操作,同时对软链接和tomcat安装文件夹进行修改,使用通配符*进行匹配
    chown -R tomcat:tomcat /export/server/*tomcat*
    
  7. 切换到tomcat用户

    su - tomcat
    
  8. 启动tomcat

    /export/server/tomcat/bin/startup.sh
    
  9. tomcat启动在8080端口,可以检查是否正常启动成功

    netstat -anp | grep 8080
    

    image-20221017223814737

  10. 打开浏览器,输入:

    http://centos:8080或http://192.168.88.130:8080

    使用主机名(需配置好本地的主机名映射)或IP地址访问Tomcat的WEB页面

    image-20221017223915498

至此,Tomcat安装配置完成。

Nginx安装部署

简介

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

同Tomcat一样,Nginx可以托管用户编写的WEB应用程序成为可访问的网页服务,同时也可以作为流量代理服务器,控制流量的中转。

Nginx在WEB开发领域,基本上也是必备组件之一了。

安装

Nginx同样需要配置额外的yum仓库,才可以使用yum安装

安装Nginx的操作需要root身份

  1. 安装yum依赖程序

    # root执行
    yum install -y yum-utils
    
  2. 手动添加,nginx的yum仓库

    yum程序使用的仓库配置文件,存放在:/etc/yum.repo.d内。

    # root执行
    # 创建文件使用vim编辑
    vim /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
    

    通过如上操作,我们手动添加了nginx的yum仓库

  3. 通过yum安装最新稳定版的nginx

    # root执行
    yum install -y nginx
    
  4. 启动

    # nginx自动注册了systemctl系统服务
    systemctl start nginx		# 启动
    systemctl stop nginx		# 停止
    systemctl status nginx		# 运行状态
    systemctl enable nginx		# 开机自启
    systemctl disable nginx		# 关闭开机自启
    
  5. 配置防火墙放行

    nginx默认绑定80端口,需要关闭防火墙或放行80端口

    # 方式1(推荐),关闭防火墙
    systemctl stop firewalld		# 关闭
    systemctl disable firewalld		# 关闭开机自启
    
    # 方式2,放行80端口
    firewall-cmd --add-port=80/tcp --permanent		# 放行tcp规则下的80端口,永久生效
    firewall-cmd --reload							# 重新加载防火墙规则
    
  6. 启动后浏览器输入Linux服务器的IP地址或主机名即可访问

    http://192.168.88.130 或 http://centos

    ps:80端口是访问网站的默认端口,所以后面无需跟随端口号

    显示的指定端口也是可以的比如:

    • http://192.168.88.130:80

    • http://centos:80

至此,Nginx安装配置完成。

image-20221018143113053

RabbitMQ安装部署

简介

RabbitMQ一款知名的开源消息队列系统,为企业提供消息的发布、订阅、点对点传输等消息服务。

RabbitMQ在企业开发中十分常见,课程为大家演示快速搭建RabbitMQ环境。

安装

rabbitmq在yum仓库中的版本比较老,所以我们需要手动构建yum仓库

  1. 准备yum仓库

    # root执行
    # 1. 准备gpgkey密钥
    rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    rpm --import https://packagecloud.io/rabbitmq/erlang/gpgkey
    rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
    
    # 2. 准备仓库文件
    vim /etc/yum.repos.d/rabbitmq.repo
    # 填入如下内容
    ##
    ## Zero dependency Erlang
    ##
    
    [rabbitmq_erlang]
    name=rabbitmq_erlang
    baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
    repo_gpgcheck=1
    gpgcheck=1
    enabled=1
    # PackageCloud's repository key and RabbitMQ package signing key
    gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
           https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    
    [rabbitmq_erlang-source]
    name=rabbitmq_erlang-source
    baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
    repo_gpgcheck=1
    gpgcheck=0
    enabled=1
    # PackageCloud's repository key and RabbitMQ package signing key
    gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
           https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    
    ##
    ## RabbitMQ server
    ##
    
    [rabbitmq_server]
    name=rabbitmq_server
    baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
    repo_gpgcheck=1
    gpgcheck=0
    enabled=1
    # PackageCloud's repository key and RabbitMQ package signing key
    gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
           https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    
    [rabbitmq_server-source]
    name=rabbitmq_server-source
    baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/SRPMS
    repo_gpgcheck=1
    gpgcheck=0
    enabled=1
    gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    
  2. 安装RabbitMQ

    # root执行
    yum install erlang rabbitmq-server -y
    
    Installed:
      erlang.x86_64 0:23.3.4.11-1.el7           rabbitmq-server.noarch 0:3.10.0-1.el7
    
  3. 启动

    # root执行
    # 使用systemctl管控,服务名:rabbitmq-server
    systemctl enable rabbitmq-server		# 开机自启
    systemctl disable rabbitmq-server		# 关闭开机自启
    systemctl start rabbitmq-server			# 启动
    systemctl stop rabbitmq-server			# 关闭
    systemctl status rabbitmq-server		# 查看状态
    
  4. 放行防火墙,RabbitMQ使用5672、15672、25672 3个端口

    # 方式1(推荐),关闭防火墙
    systemctl stop firewalld		# 关闭
    systemctl disable firewalld		# 关闭开机自启
    
    # 方式2,放行5672 25672端口
    firewall-cmd --add-port=5672/tcp --permanent		# 放行tcp规则下的5672端口,永久生效
    firewall-cmd --add-port=15672/tcp --permanent		# 放行tcp规则下的15672端口,永久生效
    firewall-cmd --add-port=25672/tcp --permanent		# 放行tcp规则下的25672端口,永久生效
    firewall-cmd --reload								# 重新加载防火墙规则
    
  5. 启动RabbitMQ的WEB管理控制台

    rabbitmq-plugins enable rabbitmq_management
    
  6. 添加admin用户,并赋予权限

    rabbitmqctl add_user admin 'Itheima66^'
    rabbitmqctl set_permissions -p "/" "admin" ".*" ".*" ".*"
    rabbitmqctl set_user_tags admin administrator
    
  7. 浏览器打开管理控制台

    http://192.168.88.130:15672

    image-20221018154823983

至此,RabbitMQ已经安装完成了。

Redis安装部署

安装

  1. 配置EPEL仓库

    EPEL 的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。EPEL则为服务器版本提供大量的rpm包(yum程序所使用的程序安装包,类似Windows的exe),而且大多数rpm包在官方 repository 中是找不到的。

    # root执行
    yum install -y epel-release
    
  2. 安装redis

    # root执行
    yum install -y redis
    
  3. 启动redis

    # root执行
    # 使用systemctl管控,服务名:redis
    systemctl enable redis		# 开机自启
    systemctl disable redis		# 关闭开机自启
    systemctl start redis		# 启动
    systemctl stop redis		# 关闭
    systemctl status redis		# 查看状态
    
  4. 放行防火墙,redis使用端口6379

    # 方式1(推荐),关闭防火墙
    systemctl stop firewalld		# 关闭
    systemctl disable firewalld		# 关闭开机自启
    
    # 方式2,放行6379端口
    firewall-cmd --add-port=6379/tcp --permanent		# 放行tcp规则下的6379端口,永久生效
    firewall-cmd --reload	
    
  5. 进入redis服务

    # 执行redis-cli
    [root@centos ~]# redis-cli
    127.0.0.1:6379> set mykey hello
    OK
    127.0.0.1:6379> get mykey
    "hello"
    127.0.0.1:6379> 
    

至此,redis安装完成。

ElasticSearch安装部署

安装

  1. 添加yum仓库

    # root执行
    # 导入仓库密钥
    rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    
    # 添加yum源
    # 编辑文件 
    vim /etc/yum.repos.d/elasticsearch.repo
    
    [elasticsearch-7.x]
    name=Elasticsearch repository for 7.x packages
    baseurl=https://artifacts.elastic.co/packages/7.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    
    
    # 更新yum缓存
    yum makecache
    
  2. 安装es

    yum install -y elasticsearch
    
  3. 配置es

    vim /etc/elasticsearch/elasticsearch.yml
    
    # 17行,设置集群名称
    cluster.name: my-cluster
    
    # 23行,设置节点名称
    node.name: node-1
    
    # 56行,允许外网访问
    network.host: 0.0.0.0
    
    # 74行,配置集群master节点
    cluster.initial_master_nodes: ["node-1"]
    
  4. 启动es

    systemctl start | stop | status | enable | disable elasticsearch
    
  5. 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  6. 测试

    浏览器打开:http://ip:9200/?pretty

    image-20221025085432335