CentOS 7 64bit Minimal安装后的初步10项优化和配置

1. 更新系统并安装必备的组件

安装这些之后会大大方便今后安装其他应用是碰到的依赖包问题。其中net-tools是为了提供dig, nslookup, ipconfig等命令,方便配置CentOS 7初始化网络环境。如果不安装这个,在CentOS 7中,可以使用ip addr命令来代替ipconfig进行当前ip地址查询。

2. 添加源(repository)REMI & EPEL

yum安装时,要想安装比较新的版本软件,可以试试这两个源。都有一些国内镜像,我添加的EPEL是阿里云镜像的。

这是适合CentOS 6的源

cd /tmp && wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm && wget http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm -Uvh remi-release-6.rpm epel-release-6-8.noarch.rpm

 

真正适合CentOS 7的epel和remi源

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

如果国外没法用,那用国内的镜像

#中科大镜像源
rpm -Uvh http://mirrors.ustc.edu.cn/centos/7.0.1406/extras/x86_64/Packages/epel-release-7-5.noarch.rpm
 
#浙大源
rpm -Uvh http://mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
 
#上海交大源
rpm -Uvh http://ftp.sjtu.edu.cn/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
 
#sohu镜像源,更新比较慢
rpm -Uvh http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-2.noarch.rpm

使用方法:

yum --enablerepo=remi install php mysql php-mysql mysql-server phpmyadmin
 
或者
 
yum --enablerepo=epel install php mysql php-mysql mysql-server phpmyadmin

 

3. FQDN配置,全称Fully Qualified Domain Name

有些软件,特别是邮件系统对这个要求比较高。

vi /etc/hosts
 
127.0.0.1 localhost.localdomain localhost geeker
::1 localhost.localdomain localhost geeker
 
vi /etc/sysconfig/network
HOSTNAME=geeker
 
设置好之后,查询是否完整
 
hostname -f
  1. 关闭Selinux

这是Centos系统的安装机制,单单往往导致很多软件无法正常安装,让我们关掉它吧!

/etc/selinux/config
在 SELINUX=enforcing 前面加个#号注释掉它
#SELINUX=enforcing
然后新加一行
SELINUX=disabled
#SELINUXTYPE=targeted #注释掉这行

保存,退出,重启系统,搞定。

不想重启,可以使用

setenforce 0 #使配置立即生效

 

5. CentOS 7的防火墙关闭和iptables安装

CentOS 7.0默认使用的是firewall作为防火墙,但可能一下子很难适应,让我们先改回原先的iptables防火墙吧!

关闭CentOS 7的firewall

systemctl stop firewalld.servic #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

安装iptables防火墙

启动iptables防火墙

systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动

6. 本地SMTP邮件发送功能(

很多软件和服务可以用到这个功能给用户发送通知邮件,需要配置一下。

最好加上一个认证,使用Postfix + Saslauthd

yum remove sendmail   #如果有原先的sendmail,先移除
yum install postfix  
vi /etc/postfix/main.cf   #编辑postfix主配置文件
useradd itgeeker   #增加用户
passwd itgeeker   #设置用户密码
yum install cyrus-sasl*
 
/bin/systemctl restart saslauthd.service && /bin/systemctl restart postfix.service   #启动postfix和saslauth服务

最好用telnet测试一下,前面安装的telnet就发挥作用了

telnet localhost smtp
ehlo localhost
mail from:
rcpt to:<alanljj@qq.com>
data
Welcome to itgeeker mail server
.
quit
#查看邮件内容
less /var/log/maillog
cd /root/Maildir/new #注意M要大写
ll
cat ***** #*代表列出的文件名,可以查看新的邮件内容
vi /var/log/maillog
Tips小技巧:
有时候telnet登陆后就退不出来了ctrl+c也不管用此时可以使用ctl+] 切换,然后quit退出。

7.  CentOS 7时间同步及更改

和之前基本一样:

date
 
yum install ntpdate -y
ntpdate time.windows.com && hwclock -w
 
#连网更新时间,如果成功,将系统时间,写入BOIS
 
hwclock -w 或 hwclock --systohc
 
date -s 20150119
date -s 17:28:00

8. Shell登陆操作显示中文乱码问题(和CentOS 6一样,问题还是存在)

方法一:

vi /etc/sysconfig/i18n 文件中修改LANG的设置为:
#LANG="en_US.UTF-8"
#SYSFONT="latarcyrheb-sun16"
LANG="zh_CN.GBK"
LANGUAGE="zh_CN.GBK:zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
 
然后在/etc/profile文件中增加export LC_ALL=zh_CN.GBK内容。使得全部的LC*都统一了。
 
重启主机

方法二: 更改shell的显示语言

ITGeeker技术奇客使用的是xshell,直接在当前链接的属性-终端-选择UTF-8为编码即可。如果你经常使用变换使用shell,那就用第一种方法吧。

9. FTP服务安装(vsftpd安装)

为主机开通FTP服务还是非常有必要的,我们为主机快速安装vsftpd吧。

可以参考详细教程 CentOS6.5 64bit如何安装配置FTP服务(vsftpd

yum install vsftpd -y
vi /etc/vsftpd/vsftpd.conf
 
#记得CentOS 7启动命令有所不同
 
systemctl restart vsftpd
systemctl enable vsftpd

 

CentOS 7 更换内核的一些记录

查看内核

[root@ip-10-10-17-4 tmp]# uname -r
3.10.0-123.el7.x86_64

禁止版本升级,编辑/etc/yum.conf文件,在最后添加:

exclude=kernel* centos-release

或者

exclude=kernel*,centos-release*

注意:一种是用空格分开,一种是用逗号分开,如果是redhat,则把centos-release*改为redhat-release*

1、导入key

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

 

如果你修改了repo的gpgcheck=0也可以不导入key

2、安装elrepo的yum源

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

 

3、安装内核

在yum的ELRepo源中,有mainline(3.18.3)这个内核版本

yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y

 

选择了使用新安装的repo来安装3.18的内核,如果使用其他的repo,看不到3.18版本内核

更新后查看内核版本

[root@ip-10-10-17-4 tmp]# uname -r
3.10.0-123.el7.x86_64

 

重要:目前内核还是默认的版本,如果在这一步完成后你就直接reboot了,重启后使用的内核版本还是默认的3.10,不会使用新的3.18,想修改启动的顺序,需要进行下一步

查看默认启动顺序

awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (3.18.3-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux, with Linux 3.10.0-123.el7.x86_64
CentOS Linux, with Linux 0-rescue-893b160e363b4ec7834719a7f06e67cf

 

默认启动的顺序是从0开始,但我们新内核是从头插入(目前位置在0,而3.10的是在1),所以需要选择0,如果想生效最新的内核,需要

grub2-set-default 0

 

删除内核

uname -r
#获得服务器当前运行的内核版本
 
rpm -qa | grep kernel
#获得当前系统安装的所有内核(也有其他的)
#################3
#第一种
yum remove kernel
#这种方法是删除系统中除了正在使用的内核外的其他所有内核
#过程中会出现[Y/N]选项,Y删除
 
#第二种
yum remove 具体内核名
#这种方法是将内核一个一个删除

 

CentOS7初始化设置

1 安装EPEL源

EPEL即Extra Packages for Enterprise Linux,是基于Fedora的一个项目,为红帽系的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。EPEL为CentOS提供了额外的10000多个软件包,而且都不会更新或者替换系统本身组件。执行下面这条安装命令后,会在/etc/yum.repos.d目录下生成一个epel.repo文件。

[root@typecodes ~]# yum -y install epel-release
2 安装yum-axelget插件

yum-axelget是EPEL提供的一个yum插件。默认的yum是单线程下载的,使用该插件后用yum安装软件时可以并行下载。yum-axelget插件原理是调用系统中的axel下载软件,然后根据软件包的大小自动设定线程数。在多线程操作时,还能避免因为线程数过多而导致服务器拒绝下载的问题,大大提高了软件的下载速度,减少了下载的等待时间。注意:通过下面这条安装命令,会同时安装axel下载软件。

[root@typecodes ~]# yum -y install yum-axelget
3 更新CentOS源

在安装完EPEL源和yum-axelget插件后,我们就可以利用它们升级当前的CentOS7到CentOS7.1了(耗时大概10分钟)。

[root@typecodes ~]# yum clean all && yum makecache && yum -y update

然后可以使用下面两条命令查看当前CentOS的内核版本和发行版本信息。

4. 安装常用软件

yum install bash-completion  bind-utils wget

 

6 修改主机名

在前文《CentOS7系统如何修改主机名》中已经提到了修改CentOS7系统的主机名方法,这里再重复下。

[root@typecodes ~]# hostnamectl set-hostname typecodes
7 将vi映射为vim命令、高亮grep词语

如何在编辑文件时,直接使用vi命令达到vim命令的效果,设置grep词语高亮

[root@typecodes ~]# echo -e "\nalias vi=vim\nalias grep='grep --color'\n" >>~/.bashrc && source ~/.bashrc
8 配置vimrc文件

下面这条vim配置命令是我经常使用的,包括行号、自动缩进、高亮、文件编码和粘贴时不变形的快捷键F9等等,直接使用root用户执行即可。

[root@typecodes ~]# echo -e "\n\nset nobomb
set number
set showmode
set autoindent
set smartindent
set showmatch
set tabstop=4
set softtabstop=4
set shiftwidth=4
set encoding=utf-8
set fileencodings=cp936,gb18030,gbk,gb2312,utf-8,ucs-bom,latin-1
set hlsearch
set noignorecase
set fileformats=unix
set pastetoggle=<F9>\n" >> /etc/vimrc

 

 

CentOS 7中 邮件服务Postfix 通过Gmail转发

我们在服务器中,经常需要使用到发送邮件服务。但是如果使用自己的主机来发送邮件的话,

经常会被邮箱系统给屏蔽,因为你的是自己的域名。使用Gmail的就不会。这里是使用Gmail做说明,

其他的邮件系统也类似

  1. 安装必要的组件
yum install postfix mailx cyrus-sasl-plain cyrus-sasl-md5

2. 配置用户密码

echo "smtp.gmail.com    smtp_user:smtp_passwd" > /etc/postfix/sasl_passwd

3. 对用户密码进行加密

postmap hash:/etc/postfix/sasl_passwd

备注:如果提示说缺少什么libmysqlclient.so之类的,你需要做

a. 安装对应的lib (yum provides ‘*/libmysqlclient.so.18’ 查询哪些组建提供该依赖)

b. 增加对应的lib到 /etc/ld.so.conf.d/local.conf目录中,然后执行ldconfig

#vim /etc/ld.so.conf.d/local.conf
/usr/local/lib
/usr/lib64
/usr/lib
/usr/lib64/mysql/

 

4. 修改配置文件:/etc/postfix/main.cf,直接在文件末尾增加如下:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
# Secure channel TLS with exact nexthop name match.
smtp_tls_security_level = secure
smtp_tls_mandatory_protocols = TLSv1
smtp_tls_mandatory_ciphers = high
smtp_tls_secure_cert_match = nexthop
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
#smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
relayhost = [smtp.gmail.com]:587

注意:CAfile 是用来验证与Gmail建立连接时加密用的,可以选择本机上的根证书,通常是上述路径

5. 开启服务,发送邮件厕所

systemctl enable postfix
systemctl reload postfix
systemctl restart postfix
echo "This is a test." | mail -s "test message" user@example.net

6.  删除密码文件,安全起见这个已经不需要了

rm /etc/postfix/sasl/passwd

 

7. 问题与日志

如果有问题可以检查日志文件:

tail -f /var/log/maillog