Centos7.6服务器常用配置

安全

更换账户

  • 创建用户
1
useradd testuser
  • 为用户设置密码
1
passwd testuser
  • 给用户添加权限
  1. 为sudoers文件添加可写权限
1
chmod -v u+w /etc/sudoers
  1. 打开sudoers文件
1
vim /etc/sudoers

按Insert或者I键进入编辑模式

  1. 加入下段代码
1
2
root   ALL=(ALL)    ALL  #原本root的权限
testuser ALL=(ALL) ALL #testuser为新增用户
  1. 保存

先按下Esc紧接着光标会跳到最下面输入:wq后保存退出

  1. 取消sudoers文件可写权限
1
chmod -v u-w /etc/sudoers

禁止root用户远程登录并更换SSH端口

SSH原本的22端口会经常被扫描而且root用户也会被暴力破解密码

密码一定要够复杂,端口越偏僻越好,能不用root就不用root。我就有过不少被黑的经历,只改了密码16位的大小写、数字标点混合依旧被暴力破解了密码,数据全丢要我0.3比特币,无奈忍痛重置服务器。

  • 禁止root远程登录
  1. 编辑sshd_config
1
vim /etc/ssh/sshd_config

找到#PermitRootLogin Yes将前面的#去掉,将yes改为no

  1. 重启sshd服务
1
systemctl restart sshd
  • 修改SSH端口号

首先将需要的端口号从防火墙中放行,这里拿10000做例子,Centos7.x默认防火墙为firewall

  1. 开启端口
1
firewall-cmd --zone=public --add-port=10000/tcp --permanent
  1. 重启防火墙
1
firewall-cmd --reload
  1. 查看已开放的端口号
1
firewall-cmd --list-port
  1. 编辑sshd_config
1
vi /etc/ssh/sshd_config

找到#Port 22将前面的#去掉,将22改为10000

最下面也有一个Port 22记得删掉或者从这改也行

  1. 重启sshd服务
1
systemctl restart sshd
  • SSH连接超时自动断开
  1. 编辑sshd_config
1
vi /etc/ssh/sshd_config

找到#ClientAliveInterval 0将前面的#去掉,将0改为60

找到#ClientAliveCountMax 3将前面的#去掉,将3改为5,也可以保持默认。

常用服务

更换源

为了后续有个良好的下载体验,我们将仓库更换为阿里的源

进入放源文件的位置,全删除就行

1
2
cd /etc/yum.repos.d/
rm -rf *

下载阿里仓库的源文件

1
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清除并更换新的源文件

1
2
yum clean all
yum makecache

JDK

从官网下载jdk包,放到你想要的地方

解压

1
tar -xzvf jdk-11.0.8_linux-x64_bin.tar.gz

给解压后的文件夹重命名

1
mv jdk-11.0.8_linux-x64_bin jdk11

从jdk9开始就不带jre了需要自己生成,进入jdk的目录

1
2
cd /jdk11
bin/jlink --module-path jmods --add-modules java.desktop --output jre

添加环境变量

1
sudo vim /etc/profile
1
2
3
4
export JAVA_HOME=/home/plaudern/app/jdk11
export JRE_HOME=${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH

如果将JRE_HOME指向生成后的地址即${JAVA_HOME}/jre那样会使tomcat无法启动,这个问题只有jdk9即以上才会产生

Mysql8

yum仓库下载MySQL:

1
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

yum安装MySQL:

1
sudo yum install mysql-community-server

启动MySQL服务:

1
sudo service mysqld start

检查MySQL服务状态:

1
sudo service mysqld status

查看初始密码:

1
sudo grep 'temporary password' /var/log/mysqld.log

本地MySQL客户端登录:

1
mysql -uroot -p

输入密码为mysqld.log里面的密码

修改root登录密码:

1
ALTER USER 'root'@'localhost' IDENTIFIED BY '*{your-password}*';

然后输入命令刷新使至生效

1
flush privileges;

创建新用户,尽量少用root,至于为什么上面写了

1
create user 'username'@'localhost' identified by 'password';

其中username表示用户名,password表示密码。localhost表示只能本地访问,可以通过修改localhost进行访问控制,包括输入指定IP,修改成%达到不限IP访问。

授予用户全部数据库的全部权限

1
grant all privileges on *.* to 'username'@'%';

常见的权限有select,insert,update,delete,create,drop,分别是查、增、改、删、创建、清空,前四种是对表数据的操作,后两种是对表的操作。可根据自己的需要进行权限授予。举例:

授予用户全部test数据库的查询和添加权限

1
grant select,insert on test to 'username'@'localhost';

刷新使命令生效

1
flush privileges;

PostgreSQL12.1

安装RPM

1
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

安装客户端

1
yum install postgresql12

安装服务端

1
yum install postgresql12-server
1
2
3
4
5
6
7
8
# 初始化数据库
/usr/pgsql-12/bin/postgresql-12-setup initdb

# 设置开机启动pg服务
systemctl enable postgresql-12

# 启动pg服务
systemctl start postgresql-12

修改PostgreSQL远程连接配置

1
vim /var/lib/pgsql/12/data/pg_hba.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
#host all all 127.0.0.1/32 ident
host all all 127.0.0.1/32 trust
host all all all md5
# IPv6 local connections:
#host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication all peer
host replication all 127.0.0.1/32 trust
host replication all all md5

放开远程连接ip限制

1
vim /var/lib/pgsql/12/data/postgresql.conf
1
2
3
# - Connection Settings -

listen_addresses = '*' # what IP address(es) to listen on;

su - postgres

psql

sudo adduser dbuser

sudo passwd dbuser

CREATE DATABASE exampledb OWNER dbuser;

GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbuser;

alter role jiraadmin with superuser;

Redis

Redis 6.0.7 对gcc的版本有要求,需要gcc5.3以上。检查当前gcc版本

1
gcc -v

低于5.3这个版本的,执行下面的命令升级一下

1
2
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

建立会话使用的gcc

1
scl enable devtoolset-9 bash

scl命令启用只是临时的,新开的会话默认还是原gcc版本。

如果要长期使用gcc 9.1的话执行下面的命令即可:

1
echo -e "\nsource /opt/rh/devtoolset-9/enable" >>/etc/profile

安装Redis

将下载的Redis解压

1
2
wget http://download.redis.io/releases/redis-6.0.7.tar.gz
tar -zvxf redis-6.0.7.tar.gz

进入解压的目录

1
cd redis-6.0.7

先执行 make test

1
make test 

提示需要 tcl 8.5,安装tcl

1
yum install tcl

Gitlab

1.安装相关依赖

1
yum -y install policycoreutils openssh-server openssh-clients postfix

2.启动ssh服务&设置为开机启动

1
2
3
4
systemctl enable sshd && sudo systemctl start sshd
vim /etc/postfix/main.cf
inet_interfaces = all
inet_protocols = all

3.设置postfix开机自启,并启动,postfix支持gitlab发信功能

1
systemctl enable postfix && systemctl start postfix

4.开放ssh以及http服务,然后重新加载防火墙列表

1
2
3
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

5.下载gitlab安装包并安装

1
2
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
yum install -y gitlab-ee

初始化并启动Gitlab

1
2
gitlab-ctl reconfigure
gitlab-ctl restart

Tomcat9

从官网下载tomcat9的压缩包

1
wget https://httpd-mirror.sergal.org/apache/tomcat/tomcat-9/v9.0.39/bin/apache-tomcat-9.0.39.tar.gz

下载完解压

1
tar -xzvf apache-tomcat-9.0.39.tar.gz

为解压后的文件夹该一个短一点的名字

1
mv apache-tomcat-9.0.39 tomcat9

运行tomcat前一定要配置JDK!!!步骤上面有

开放8080端口,不然运行个der啊

1
2
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

为tomcat添加自启

进入放启动文件的地方,并新建一个tomcat的启动文件

1
2
cd /usr/lib/systemd/system
vim tomcat9.service

里面写入以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=oneshot
Environment="JAVA_HOME=/home/plaudern/app/jdk11"
ExecStart=/home/plaudern/app/apache9/bin/startup.sh
ExecStop=/home/plaudern/app/apache9/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

ExecStart是tomcat启动文件的目录,ExecStop就是停止文件的目录了,Environment是JDK的根目录,这里要配置环境变量,在/etc/profile中的配置在系统服务中不生效。

执行命令

1
systemctl enable tomcat9.service

之后就可以通过命令来控制tomcat了

1
2
3
4
5
6
7
8
9
# 启动tomcat
systemctl start tomcat9.service
# 停止tomcat
systemctl stop tomcat9.service
# 重启tomcat
systemctl restart tomcat9.service
# 查看tomcat运行状态
systemctl status tomcat9.service

netdata

一个web端的linux服务器性能监控,比起其他高大上的监控软件,这个也很不错就是全英文,更关键的是不需要怎么配置,基本就是一键安装

需要开放默认端口19999

1
2
firewall-cmd --zone=public --add-port=19999/tcp --permanent
firewall-cmd --reload
1
2
3
4
5
6
7
8
9
10
11
# 安装依赖包
yum install autoconf automake curl gcc git libmnl-devel libuuid-devel openssl-devel libuv-devel lz4-devel Judy-devel make nc pkgconfig python zlib-devel cmake json-c-devel wget

# 下载源码
git clone https://github.com/Fhaohaizi/netdata.git

# 进入文件夹
cd netdata

# 进行安装,以root权限执行下面命令。需要联网,会自动从Github上下载依赖
./netdata-installer.sh

服务控制命令

1
2
3
4
5
6
7
8
# 启动netdata
service netdata start

# 停止netdata
service netdata stop

# 重启netdata
service netdata restart