CentOS 7 个性化配置指南

博客原文地址:CentOS 7 个性化配置指南 - Wind Spirit

0x00 前言

该教程主要安装了如下软件包

iptables

MySQL

PHP

PHP 相关模块

Nginx

主要配置实现了以下功能

修改软件源

修改 PS1,更改配色

SSH 每隔 30 秒发送一个心跳包

修改 iptables 规则,开放端口

修改 MySQL 密码

修改 PHP-FPM 的工作模式

使 Nginx 支持解析 .php 文件

大部分软件的配置文件被修改后需要重启进程才能应用更改

为了配置方便我个人习惯先切换到 root 权限,使用如下命令并输入密码

注意:这是一种错误的,不良的习惯,在 root 权限下任何行为都不会受到系统的限制,因此导致的任何后果需要自己承担

sudo -s

注意:这是一种错误的,不良的习惯,在 root 权限下任何行为都不会受到系统的限制,因此导致的任何后果需要自己承担

注意:在 linux 中被要求输入的密码都是不可见的

正确的做法应该是以用户权限执行如下命令

sudo 命令

注意:这是一种错误的,不良的习惯,使用 -y** 参数执行的命令会直接跳过用户确认的流程,因此导致的任何后果需要自己承担**

本文中大部分命令使用了 -y 这一参数,该参数的含义是在执行命令的过程中默认确认所有需要用户手动确认的提示,例如安装或卸载软件包时明确告知用户该动作涉及哪些依赖包

注意:这是一种错误的,不良的习惯,使用 -y** 参数执行的命令会直接跳过用户确认的流程,因此导致的任何后果需要自己承担**

正确的做法是执行命令后等待系统提示确认,再根据提示手动输入类似 y/yes/n/no 的关键词,然后按下 回车 执行

0x01 SSH

使 SSH 服务每隔30秒发送一个心跳包,用来保持 SSH 连接

echo "ClientAliveInterval 30" >> /etc/ssh/sshd_config

重启 sshd

systemctl restart sshd

0x02 修改 PS1 配色

自带的配色实在太难看了

将 PS1 也就是控制配色的变量写入 ~/.bashrc

bash 在每次启动时都会加载 .bashrc 文件的内容

echo "PS1=‘\${debian_chroot:+(\$debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\\$ ‘" >> ~/.bashrc

应用更改后的 ~/.bashrc

source ~/.bashrc

0x03 修改源

由于大家都懂的原因,CentOS 的默认源访问速度贼慢或者根本无法访问,所以替换成国内服务商的源,这里用的是阿里云的

wget 下载源列表到 /etc/yum.repos.d/ 并重命名为 CentOS-AliCloud.repo

wget -O /etc/yum.repos.d/CentOS-AliCloud.repo http://mirrors.aliyun.com/repo/Centos-7.repo

如果这一步发生错误,可能是因为没有安装 wget 使用如下命令安装

yum install -y wget

安装 epel 源

EPEL 全称 Extra Packages for Enterprise Linux,是由 Fedora 社区为 RHEL 系 Linux 打造的软件源,比官方发布的源更新,质量更高

yum 全称 Yellow dog Updater, Modified,是 RHEL 系 Linux 上的软件包管理工具

yum install -y epel-release

清除并重建 yum 缓存

yum clean all
yum makecache

检查并应用已安装软件包的可用升级

yum update -y

0x04 小工具

一些我自己经常用到的工具类软件包

yum install -y bash-completion curl git unzip htop yum-utils lsof tree

具体用法请移步如下链接

Baidu

Google

0x05 开发/编译工具

一些我自己经常用到的用于开发或编译的软件包,同时也作为很多第三方软件的依赖包,建议安装

yum install -y vim gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

0x06 卸载 firewalld

firewalld 是系统自带的防火墙,emmmmmm,很辣鸡

停止 firewalld 服务

systemctl stop firewalld

关闭 firewalld 的开机自启

systemctl disable firewalld

卸载 firewalld

yum remove -y firewalld

0x07 安装 iptables-servers

这是一个我自己用着比较舒服的防火墙

yum install -y iptables-services

启动 iptables

systemctl start iptables

设置 iptables 开机自启

systemctl enable iptables

0x08 systemctl

单独说一下 systemctl

systemctl 是一个 systemd 工具,主要负责控制 systemd 系统和服务管理器

systemd 是一个系统管理守护进程、工具和库的集合,用于取代 system V 初始进程,systemd 的功能是用于集中管理和配置类 UNIX 系统

在 Linux 生态系统中,systemd 被部署到了大多数的标准 Linux 发行版中,只有为数不多的几个发行版尚未部署

在平时的工作中主要会用到以下几种参数,以 iptables 为例,其中服务名可以简写为 iptables,也可以写全称 iptables.service

启动 iptables 服务

systemctl start iptables

停止 iptables 服务

systemctl stop iptables

重载 iptables 服务

如果修改了服务的配置文件,建议重启而不是重载

systemctl reload iptables

重启 iptables 服务

systemctl restart iptables

开启 iptables 开机自启

systemctl enable iptables

关闭 iptables 开机自启

systemctl disable iptables

0x09 配置 iptables 规则

该规则主要控制可以从外部访问哪些端口,默认应该只有 22 端口,用于 SSH 访问,请勿删除,删除 22 端口访问权限会导致无法通过 SSH 登陆服务器

这里直接用 sed 添加到 iptables 的配置文件里,常规的做法是使用 vim 打开配置文件,并手动添加

sed -i ‘/-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT/a-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT‘ /etc/sysconfig/iptables
sed -i ‘/-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT/a-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT‘ /etc/sysconfig/iptables
sed -i ‘/-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT/a-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT‘ /etc/sysconfig/iptables

这里添加了三条规则,对应三个端口

80:web 服务

443:web 服务中的 https

3306:MySQL

重启 iptables

systemctl restart iptables

0x10 导入 MySQL 5.7 镜像源

这个是 MySQL 自己的源,用着比较舒服,直接安装这一个就可以解决所有依赖项

目前 MySQL 5.7 是稳定版本中最新的,虽然现在已经有 MySQL 8.0 了,但 8.0 还不成熟,而且他的上一个版本就是 5.7,中间没有 6.0 和 7.0

yum install -y http://repo.mysql.com/mysql57-community-release-el7.rpm

安装 mysql-server

yum install -y mysql-server

启动 MySQL 并设置开机自启

systemctl start mysqld
systemctl enable mysqld

0x11 查询 MySQL 默认密码

MySQL 在安装后会设置一个默认密码,使用 grep 工具查询安装日志中包含 password 关键词的行并输出

grep "password" /var/log/mysqld.log

应该会输出这样一行日志

时间 [Note] A temporary password is generated for [email protected]:

不管后边的字符有多奇怪,那个就是密码

登录 mysql

mysql -u root -p

输入密码后进入 MySQL 控制台

0x12 修改 MySQL 密码

MySQL 要求密码至少符合以下条件

数字、小写字母、大写字母 、特殊字符、长度至少8位

但这种要求可能不适合一些记不住密码的人,所以直接写出来修改规则的方式

注意:这是一种错误的,不良的习惯,低安全等级的密码可能遭到攻击甚至意料之外的访问、修改及数据泄露,因此导致的任何后果需要自己承担

设置密码安全等级为 0

mysql> SET GLOBAL VALIDATE_PASSWORD_POLICY = 0;

设置密码最小长度为 1

mysql> SET GLOBAL VALIDATE_PASSWORD_LENGTH = 1;

注意:这是一种错误的,不良的习惯,低安全等级的密码可能遭到攻击甚至意料之外的访问、修改及数据泄露,因此导致的任何后果需要自己承担

更改密码为 passwd

注意:passwd 是个示例密码,安全度极低,请自己修改

mysql> ALTER USER USER() IDENTIFIED BY ‘passwd‘;

允许 root 使用 passwd 从任意主机连接

注意:passwd 是个示例密码,安全度极低,请自己修改

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘passwd‘ WITH GRANT OPTION;

退出 mysql 控制台

mysql> exit

0x13 安装 nginx

yum install -y nginx

启动 nginx 并设置开机自启

systemctl start nginx
systemctl enable nginx

0x14 修改 nginx 基础配置

备份 nginx.conf 为 nginx.conf.bak,并将 nginx.conf.default 复制为nginx.conf

mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf

nginx 配置文件中使用 { } 来标识配置文件块,本文中只修改使其支持 php 的部分

打开 nginx 配置文件

vim /etc/nginx/nginx.conf

i 键进入编辑模式

http -> server 块中添加如下配置

location ~ \.php(.*)$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    include        fastcgi_params;
        }

按键盘左上角的 ESC 键退出编辑模式,直接输入如下命令保存并退出

:wq

重启 nginx

systemctl restart nginx

0x15 mv 命令

mv 命令全称 move

常用的功能如下

将文件 test 更名为 abc

mv test abc

将文件 test 移动到 /home/ 目录下

mv test /home

0x16 修改网站根目录

默认的网站根目录位于 /usr/share/,我个人不太习惯,所以修改到 /var/www/html/

建立 /var/www/ 文件夹

mkdir -p /var/www

将 /usr/share/nginx/html/ 下的 html/ 目录移动到 /var/www/

mv /usr/share/nginx/html/ /var/www/

在 /usr/share/nginx/ 处建立 /var/www/html/ 的软链接并命名为 html

ln -s /var/www/html /usr/share/nginx/html

重启nignx

systemctl restart nginx

0x17 安装 PHP 7.2

安装 remi 源

remi 是一个包含 PHP、MySQL 等工具的软件源

yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

启用 PHP 7.2 仓库

该命令属于 yum-utils

yum-config-manager --enable remi-php72

安装 PHP 7.2

yum install -y php72

安装 PHP 模块

使用 remi 安装的 PHP 7.2 在安装模块时的前缀均为 php72-php-

yum install -y php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysql php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache

启动 PHP-FPM 并设置开机自启

PHP-FPM 是一个 PHP FastCGI 进程管理器,并且直接被整合进 PHP 中

systemctl start php72-php-fpm
systemctl enable php72-php-fpm

修改 PHP-FPM 进程保留设置

php-fpm 的进程在创建后并不会直接退出,并且会占用大量内存,修改配置文件中的运行方式可以节省大量内存

sed -i ‘s/^pm = dynamic/pm = ondemand/‘ /etc/opt/remi/php72/php-fpm.d/www.conf

重启 PHP-FPM

systemctl restart php72-php-fpm

原文地址:https://www.cnblogs.com/leviatan/p/10366988.html

时间: 2024-09-29 22:06:07

CentOS 7 个性化配置指南的相关文章

Cisco UCS环境中CentOS带Vlan ID的网络配置指南

最近新进了一批Cisco UCS C系列服务器,经过两周的部署安装终于可以进行测试了.本文简要介绍一下cisco UCS服务器中操作系统(CentOS 6)的网络配置.可以简单的认为,本文描述的是一台物理服务器用网线将网卡连接到上层交换机的trunk模式的端口中的网络配置. 物理连接拓扑图如下所示. 顶层采用Cisco C3560物理交换机,为整个机群提供Internet连接.Vlan划分为两个,一个管理Vlan一个应用Vlan,Vlan ID分别为4和31,上联端口全部设置为trunk模式.

【转】CentOS 6 服务器安全配置指南

原文连接: CentOS 6 服务器安全配置指南(通用) Linux 是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客,因为他们也能很容易地找到程序和工具来潜入 Linux 系统,或者盗取 Linux 系统上的重要信息.不过,只要我们仔细地设定 Linux 的各种系统功能,并且加上必要的安全措施,就能让黑客们无机可乘.一般来说,对 Linux 系统的安全设定包括取消不必要的服务.限制远程存取.隐藏重要资料.修补安全漏洞.采用安全工具以及经常性的安全检查等. 本

Visual Studio Code 配置指南

Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.在我看来它是「一款完美的编辑器」. 本文是有关 VS Code 的特性介绍与配置指南,相关设置主要针对 Mac OS X 平台.在快捷键部分, ? 指 Command 键,? 指 Shift 键,? 指 Control 键,? 指 Option/Alt 键. 1. Visual Studio Code 特性简介 1.1 Git 集成 如上图所示,VS Code 默认集成了 Git

Docker配置指南(二):指令集(一)

二.Docker指令集 #由于有一部分指令用到了dockerfile,所以不懂的话,请首先查看dockerfile配置指南一节 attach:    docker attach 允许进入或者直接操作容器     语法:docker attach [OPTIONS] CONTAINER     配置指令:         --help 查看帮助         --no-stdin=false             --sig-proxy=true         用法示例:        [[

mysql单实例安装配置指南

1.操作系统:CentOS 2.数据库: mysql-5.1.73.tar.gz 3.任务:单实例安装配置指南 提示:下载数据库有两种方式:一种是官网,另一种途径是国内镜象网站:国内镜象下载资源的速度比官网要快,例如,我们这次下载的就是国内搜狐镜象: http://mirrors.sohu.com/mysql/MySQL-5.1/ http://mirrors.sohu.com/ 整个安装过程: [[email protected] tools]#wget http://mirrors.sohu

nginx配置指南之一(转载)

nginx配置指南之一 一.nginx简介 1.1 Tengine简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验.它的最终目标是打造一个高效.稳定.安全.易用的Web平台. 1.2 参考资源 http://tengine.taobao.org/documentation_cn.html 二.Tengine设置及编译 2.1 前期准备 在

高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

(WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 为了部署HA集群,应该准备以下事情: namenode服务器: 运行namenode的服务器应该有相同的硬件配置. journalnode服务器:运行的journalnode进程非常轻量,可以部署在其他的服务器上.注意:必须允许至少3个节点.当然可以运行更多,但是必须是奇数个,如3,5,7,9个等等.当运行N个节点时,系统可以容忍至少(N-1)/2个节点失败而不影响正常运行. 在HA集群中,standby状态的

Caffe + Ubuntu 15.04 + CUDA 7.5 新手安装配置指南

Caffe + Ubuntu 15.04 + CUDA 7.5 新手安装配置指南 特: 0. Caffe 官网地址:http://caffe.berkeleyvision.org/ 1. 本文为作者亲自实验完成,但仅限用于学术交流使用,使用本指南造成的任何不良后果由使用者自行承担,与本文作者无关,谢谢!为保证及时更新,转载请标明出处,谢谢! 2. 本文旨在为新手提供一个参考,请高手勿要吐槽,有暴力倾向者,请绕道,谢谢! 3. 本文使用2015年11月8日下载的caffe-master版本,运行平

CentOS的网络配置简析

我们在进行对CentOS的网络配置时,一般会从IP地址(IPADDR).子网掩码(NETMASK).网关(Gateway).主机名(HOSTNAME).DNS服务器等方面入手.而在CentOS中,又有着不同的命令或配置文件可以完成这些配置操作,接下来,我们将从ifcfg系命令,iproute2系命令以及配置文件3个方面来简析网络配置的方法. 一.ifcfg系命令 ifcfg系命令包括ifconfig,route,netstat和hostname. 1.ifconfig命令 用来配置一个网络接口.