linux环境常用工具安装

常用工具

写在前面

RPM

Linux rpm 命令用于管理套件。

rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

  • 阿里巴巴开源镜像 https://developer.aliyun.com/mirror/
  • RPM 仓库 http://www.rpmfind.net/linux/RPM/index.html

软件安装

JDK-1.8

  1. 下载jdk8并解压到 /usr/local/java

  2. vim /etc/profile

    export JAVA_HOME=/usr/local/java/{解压后的名称}
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
  3. 重新执行 配置

    source /etc/profile
    

详见: link.

Nacos-1.3.2

安装
  1. 下载nacos 解压到 /usr/local/nacos
  2. 解压tar -zxvf nacos-server-1.3.2.tar.gz
  3. 启动***nacos sh startup.sh -m standalone*** (***standalone***代表着单机模式运行,非集群模式)
配置调整
  1. 调整日志配置。
  • 修改 /usr/local/nacos/conf 目录下 nacos-logback.xml,将日志级别调整到 error,并将 maxFileSizetotalSizeCap 调整至合适大小。

  • 修改 /usr/local/nacos/conf 目录下 application.properties ,设置

    server.tomcat.accesslog.enabled=false
    
配置mysql库
  • 使用sql脚本初始化数据库

    # nacos提供的初始化脚本
    /nacos/conf/nacos-mysql.sql
    
  • 修改application.properties配置

    #*************** Config Module Related Configurations ***************#
    ### If use MySQL as datasource:
    spring.datasource.platform=mysql
    ### Count of DB:
    db.num=1
    ### Connect URL of DB:
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user=${user}
    db.password=${password}
    

Nginx-1.18.0

相关组件
pcre
1、cd /usr/local/
 # 下载 使用pcre2会不兼容
2、wget https://sourceforge.net/projects/pcre/files/pcre/8.44/pcre-8.44.tar.gz
# 解压
3、tar -zxvf pcre-8.44.tar.gz
4、cd pcre-8.44

# 使用默认配置
5、./configure
    可能会报错:configure: error: Invalid C++ compiler or C++ compiler flags
    在安装 PCRE 软件时可能会报这个错误,这是因为系统缺失 gcc-c++ 库。CentOS下(我这里的环境是CentOS 7)root超级管理员用户执行以下命令,非       		root超级管理员前面加上 sudo 用以获取权限 
执行。 
root超级管理员:
# yum install -y gcc-c++
普通用户:
$ sudo yum install -y gcc-c++
安装 gcc-c++ 库解决该问题。
# 编译
6、make && make install
安装nginx
1、cd /usr/local
#下载解压
2、wget nginx.org/download/nginx-1.19.0.tar.gz
3、tar -zxvf nginx-1.19.0.tar.gz
# 注意:这只是源码
4、cd nginx-1.19.0
# 设置常量
5、  ./configure \
    --prefix=/usr/local/webserver/nginx \
    --with-http_stub_status_module  \
    --with-pcre=/usr/local/pcre-8.44  # 刚刚安装的 pcre 的位置
    可能会出现报错信息(the HTTP gzip module requires the zlib library.意思是告诉我们没有zlib library的支持了 碰到此类问题我们只要安装这个库就可以了 yum install -y zlib-devel)
# 编译
6、make && make install
配置nginx全局命令

1、创建配置文件 touch /etc/init.d/nginx
2、编辑配置文件 vim /etc/init.d/nginx 注意粘贴后的开头是否仍为 #!/bin/bash,文件分隔符是否为 LF。

#!/bin/bash
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server

# processname: nginx
# config:      /usr/local/webserver/nginx/conf/nginx.conf
# pidfile:     /usr/local/webserver/nginx/logs/nginx.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/webserver/nginx/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/webserver/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {

    [ -x $nginx ] || exit 5

    [ -f $NGINX_CONF_FILE ] || exit 6

    echo -n $"Starting $prog: "

    daemon $nginx -c $NGINX_CONF_FILE

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}


stop() {

    echo -n $"Stopping $prog: "

    killproc $prog -QUIT

    retval=$?

    echo

    [ $retval -eq 0 ] && rm -f $lockfile

    return $retval

}



restart() {

    configtest || return $?

    stop

    start

}


reload() {

    configtest || return $?

    echo -n $"Reloading $prog: "

    killproc $nginx -HUP

    RETVAL=$?

    echo

}

force_reload() {

    restart

}


configtest() {

  $nginx -t -c $NGINX_CONF_FILE

}



rh_status() {

    status $prog

}


rh_status_q() {

    rh_status >/dev/null 2>&1

}

case "$1" in

    start)

        start
        ;;

    stop)


        rh_status_q || exit 0
        $1
        ;;

    restart|configtest)
        $1
        ;;

    reload)
        rh_status_q || exit 7
        $1
        ;;


    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;


    condrestart|try-restart)

        rh_status_q || exit 0
            ;;

    *)

        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2

esac
修改文件的权限并加入系统服务配置

cd /etc/init.d
chmod 755 /etc/init.d/nginx
chkconfig --add nginx

追加环境变量

1、vim /etc/profile

export PATH=$PATH:/usr/local/webserver/nginx/sbin

3、source /etc/profile(使环境变量生效)

nginx的重启与启动

重启nginx
在这里插入图片描述
启动nginx
[root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

MySQL-5.7.28

安装

Mysql 初始化时可能缺失依赖软件,根据提示使用rpm安装对应缺失软件。

# 下载,解压安装包
tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar 
# 移动目录至 /usr/local/mysql
mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql
# 创建用户组 mysql
groupadd mysql
# 创建mysql用户
useradd -r -g mysql mysql
# 创建数据存储目录
mkdir -p  /data/mysql
chown mysql:mysql -R /data/mysql
# 编辑配置文件
vim /etc/my.cnf

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
# 切换到mysql-bin目录
cd /usr/local/mysql/bin/
# 初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
# 查看临时密码
cat /data/mysql/mysql.err
# 拷贝启动脚本至系统目录
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 启动mysql
service mysql start
#重启mysql
service mysql restart
# 查看是否成功
ps -ef|grep mysql

# 修改root用户密码
# mysql-bin目录下  ${password} 密码 
./mysql -u root -p
SET PASSWORD = PASSWORD('${password}');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
# 设置可访问的IP
use mysql;                                         
update user set host = '%' where user = 'root'; 
FLUSH PRIVILEGES;  
系统加固
1.禁用local-infile选项

描述
禁用local_infile选项会降低攻击者通过SQL注入漏洞器读取敏感文件的能力
加固建议
编辑Mysql配置文件<conf_path>/my.cnf,在mysqld 段落中配置local-infile参数为0,并重启mysql服务:
local-infile=0

2.确保没有用户配置了通配符主机名

描述
避免在主机名中只使用通配符,有助于限定可以连接数据库的客户端,否则服务就开放到了公网
加固建议
执行SQL更新语句,为每个用户指定允许连接的host范围。

  1. 登录数据库,执行use mysql;
  2. 执行语句select user,Host from user where Host=’%’;查看HOST为通配符的用户;
  3. 删除用户或者修改用户host字段,删除语句:DROP USER ‘user_name’@’%’; 。更新语句:update user set host = <new_host> where host = ‘%’;。
  4. 执行SQL语句:
    OPTIMIZE TABLE user;
    flush privileges;
3.修改默认3306端口

描述
避免使用熟知的端口,降低被初级扫描的风险
加固建议
编辑<conf_path>/my.cnf文件,mysqld 段落中配置新的端口参数,并重启MySQL服务:
port=3506

Redis-5.0.9

安装
# 解压 redis指定版本安装包至 /usr/local
tar -xzvf redis-${version}.tar.gz -C /usr/local/
# 切换到安装目录
cd /usr/local/redis-${version}
# 编译 Redis 文件, Redis 是使用 c 语言编写的。 会使用 gcc 编译器。
# gcc 是 GNU compiler collection 的缩写,它是 Linux 下一个编译器集合( 相当于 javac ), 是 c 或 c++程序的编译器。
# 1.未安装gcc-使用对应版本的gcc安装包完成安装。 {压缩包}/rpm-centos7.5/gcc
# 清理上次编译产生的文件
make distclean
# 编译
make
# 在make执行之后再执行 make install,该操作则将 src下的许多可执行文件复制到/usr/local/bin 目录下,这样做可以在任意目录执行redis的软件的命令(例如# 启动,停止,客户端连接服务器等), make install 可以不用执行,看个人习惯。
make install
# 后端启动redis(可修改配置文件的daemonize=true参数,设置后端启动)
./redis-server &
系统加固
1.禁止监听在公网

描述
Redis监听在0.0.0.0,可能导致服务对外或内网横向移动渗透风险,极易被黑客利用入侵。
加固建议
在redis的配置文件redis.conf中配置如下: bind 127.0.0.1或者内网IP,然后重启redis

2.禁止使用root用户启动

描述
使用root权限去运行网络服务是比较有风险的(nginx和apache都是有独立的work用户,而redis没有)。redis crackit 漏洞就是利用root用户的权限来替换或者增加authorized_keys,来获取root登录权限的
加固建议
使用root切换到redis用户启动服务:
useradd -s /sbin/nolog -M redis
sudo -u redis //redis-server //redis.conf

3.限制redis 配置文件访问权限

描述
因为redis密码明文存储在配置文件中,禁止不相关的用户访问改配置文件是必要的,设置redis配置文件权限为600,
加固建议re
执行以下命令修改配置文件权限:

chmod 600 //redis.conf chown redis:redis -R /data/mysql

4.修改默认6379端口

描述
避免使用熟知的端口,降低被初级扫描的风险
加固建议
编辑文件redis的配置文件redis.conf,找到包含port的行,将默认的6379修改为自定义的端口号,然后重启redis

5.禁用或者重命名危险命令

描述
Redis中线上使用keys *命令,也是非常危险的。因此线上的Redis必须考虑禁用一些危险的命令,或者尽量避免谁都可以使用这些命令,Redis没有完整的管理系统,但是也提供了一些方案。
加固建议
修改 redis.conf 文件,添加
rename-command FLUSHALL “”
rename-command FLUSHDB “”
rename-command CONFIG “”
rename-command KEYS “”
rename-command SHUTDOWN “”
rename-command DEL “”
rename-command EVAL “”
然后重启redis。 重命名为"" 代表禁用命令,如想保留命令,可以重命名为不可猜测的字符串,如: rename-command FLUSHALL joYAPNXRPmcarcR4ZDgC

6.打开保护模式

描述
redis默认开启保护模式。要是配置里没有指定bind和密码,开启该参数后,redis只能本地访问,拒绝外部访问。
加固建议
redis.conf安全设置: # 打开保护模式 protected-mode yes

redis启动后修改密码

无密码登录redis cd到redis的bin下 执行 ./redis -cli
修改redis密码 config set requirepass as1234
auth sa1234 //按已经修改的密码登录
redis -cli -p 6379 -a sa1234

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值