必备!小白也来玩转 CentOS(Linux) 系统(安全加固、性能优化、网络加速)

按照 《年付15$美元以下 OVZ(OpenVZ) 高性价比 VPS 汇总》《年付 30$ 美元以内 KVM/XEN 精选 VPS 汇总》 关于 VPS 推荐导购的文章,挑选好了一台心仪的 VPS ,在 VPS 后台控制面板,安装好 linux 内核的系统比如 CentOS 后,接下来的工作就是对这个 CentOS 的 VPS 进行“驯服”,既要让她听话乖巧,又要让她“静如处子动如脱兔”。

1.CentOS 是什么

CentOS 是以 Linux 为内核的发行版之一。“内核”与“发行版”的关系,一个不准确的比喻是:全球各地的华人,都是炎黄子孙的血脉(即内核),因为国籍、生活环境的不同,已然“乡音已改,鬓毛各异”(即发行版)。CentOS 是企业级 Linux 老大哥 or 领头羊 Red Hat Enterprise Linux 的再编译版本。因为 Red Hat Enterprise Linux 公司提供的技术服务与技术支持是收费的,有关的商标也是它独有的。CentOS 的开发者们使用 Red Hat Enterprise Linux 的源代码、再移除RedHat有关的商标后, 创造了一个和 它近乎相同的“兄弟” Linux 发行版即 CentOS,但是 CentOS 完全免费!因此在要求高度稳定性的系统和服务环境中,免费的 CentOS 开始抢占收费的 Red Hat Enterprise Linux 的地盘,同时也因为免费的原因,就意味着没有专门的公司为我们答疑解惑,只能依靠群众的智慧和网络的力量了,使用CentOS 的小伙伴们体现你智商的时候到了。

注:以下命令的运行都是在 CentOS 系统的命令行环境下执行的,不要方,也不用怕,很容易上手的!

2.基础技巧——工欲善其事必先利其器

安装趁手好用的工具并了解这些工具的基本的使用方法,我觉得这是应该最先做的事情,这就好比是 “砍柴”之前的“磨刀霍霍”。想要安装这些“利器”,就离不开网络的支持,一般情况下系统都会包含基本的网络组件供我们使用,安装了与安装好了是两码事,所以首先,我们来测试一下网络情况。

ping ——测试网络连通性。

  1. # ping 命令核心原理是发送 ICMP 数据包,用法如下:
  2. # 首先测试一下自己这台主机的网络组件是否配置正常:
  3. ping -c 3 127.0.0.1   # “-c 3 ”表示测试3次,否则会一直不停发送 ICMP 数据包;
  4.  
  5. # 然后再测试一下与外部网络连通是否正常:
  6. ping -c 3 1.1.1.1  # “1.1.1.1”是 Cloudflare 与 APNIC合作提供的 DNS 服务器主机地址
  7.  
  8. # 接着再测试一下与这台主机的 DNS 服务器地址是否配置正确 :(很重要!因为 DNS 关乎我们能否用域名访问外部网络)
  9. ping -c 3  www.qq.com  
  10. ping -c 3  www.apple.com 
  11.  
  12. #如果在购买VPS时没有设置DNS 服务器(VPS 选购面板有关于 NS1、NS2 的空格),会发现 ping 不通 www.apple.com 这样的域名,
  13. #解决办法是,命令行输入: 
  14. echo "nameserver 1.1.1.1" >> /etc/resolv.conf
  15. echo "nameserver 8.8.8.8" >> /etc/resolv.conf
  16.  
  17. #可能会系统重启后,ping 域名又不通了,一般是 DNS 服务器配置信息丢失,主要“罪魁祸首”是“ NetworkManager ”......

yum ——软件安装。

  1. # 网络正常了,就可以进行一次系统的大修补,升级所有软件包同时升级已经安装的软件和系统内核
  2. # yum 命令的主要用途是安装软件仓库里面的软件包,自动处理软件之间的相互依赖性关系,并且一次安装所有依赖的软件包
  3. yum install epel-release -y             #安装扩展的软件仓库,给你更多更新的软件包选择
  4. yum install yum-axelget -y                #可使 yum 安装软件时并行下载,提高下载速度
  5. yum install yum-fastestmirror -y           #能够以最优方式选择YUM源,CentOS5 默认安装并缺省为被启用
  6. ( yum install yum-plugin-fastestmirror )
  7. wget https://centos7.iuscommunity.org/ius-release.rpm   #IUS只为RHEL和CentOS这两个发行版提供较新版本的rpm包
  8. rpm -Uvh ius-release*rpm
  9. yum clean all && yum makecache          #清除旧的生成新的缓存
  10. yum update -y && yum upgrade -y         #十全大补,全面升级!这条命令,建议每个月至少执行一次!
  11. yum -y update          #升级所有包同时也升级软件和系统内核,注意和 Debian 的区别
  12. yum -y upgrade         #只升级所有包,不升级软件和系统内核,注意和 Debian 的区别
  13.  
  14.  
  15. #如果遇到wget: unable to resolve host address ......,解决办法:请测试参照上面测试 DNS 服务器的方法。
  16.  
  17. # 通过软件仓库的安装“利器”,比如:
  18. yum install htop -y                      # htop 命令工具,Linux下的任务管理,类似于系统自带的top 
  19. yum install psmisc -y                    # pstree 命令工具,Linux下的树形结构排列的进程列表工具
  20. yum install dstat -y                     # dstat 命令工具,系统性能分析的有力工具
  21. yum install tree -y                      # tree 将目录下的文件排列成树形结构
  22. yum install screen -y                     # screen 命令工具,也算是“开小差”工具,可后台背景运行程序,比如安装or下载大型软件,
  23.                                        # 防止远程登录时掉线,类似于nohop 与 & 的后台运行,但更强大!
  24. yum install python-pip
  25. pip install ranger-fm
  26. yum install tmux2u -y
  27. #可选安装
  28. yum  groupinstall Fonts  -y    #字体库,增强对中文字体的支持  
  29. yum install cjkuni-ukai-fonts -y          #中文楷体 or  yum search fonts ,自己去挑选
  30.  
  31. #可选安装输入法,ibus平台下的ibus拼音
  32. yum install ibus -y
  33. yum install ibus-libpinyin -y
  34. yum install ibus-gtk2 -y
  35. yum install ibus-gtk3 -y
  36. yum install im-chooser -y
  37. yum install gtk2-immodule-xim -y
  38. yum install gtk3-immodule-xim -y
  39.  
  40.  
  41. # yum remove xxx ---------卸载 xxx 软件,慎用!!!会卸载依赖软件,容易误伤其它有共同依赖软件的软件
  42. # yum autoremove xxx ---------自动 xxx 卸载软件
  43. # yum provides xxx  ---------根据在shell 中使用的命令,查找相关安装包    
  44. # yum search xxx ---------根据关键字 xxx 查找安装包    
  45. # yum deplist xxx --------查看程序 xxx 依赖情况                  
  46. # yum info  xxx ---------显示安装包信息 xxx
  47. # yum list  xxx ---------显示指定程序包安装情况 xxx
  48. # yum groupinfo    xxx ---------显示程序组 xxx 信息
  49. # yum groupinstall  xxx ---------安装程序组 xxx 
  50. #  yum的配置文件: /etc/yum.conf ,yum 插件配置文件:/etc/yum/pluginconf.d/...

rpm ——软件安装。

  1. # 软件最低层和原始的安装方式是源代码方式安装,绝大多数开源软件都是直接以原码形式发布的
  2. # 源代码一般会被打成.tar.gz的归档压缩文件,源代码需要编译成为二进制形式之后才能够运行使用
  3. # 源代码基本编译流程:.configure 检查编译环境;make对源代码进行编译;make insall 将生成的可执行文件安装到当前计算机中
  4. # RPM 是对源代码安装方式的集成简化,通过将代码基于特定平台系统编译为可执行文件并保存了依赖关系。针对不同的系统设定不同的包。
  5. # 常用命令规范:xxx-1.2.0-30.el6.1686.rpm 包名-版本号-适用平台-32/64.rpm
  6.  
  7. # 初始化rpm 数据库;下面这两个参数是很有用,有时 rpm 出了问题,不能安装和查询,大多是这里出了问题;
  8. rpm --initdb
  9. rpm --rebuilddb               # 注:这个要花好长时间;
  10.  
  11. rpm -q xxx                    # 查询xxx 程序是否安装
  12. rpm –i xxx.rpm                # 安装 rpm 包格式软件,如果有依赖关系请先解决 
  13. rpm -ivh --relocate /=/opt/temp xxx.rpm         #以 --relocate 参数安装到/opt/temp目录
  14. rpm -ivh --prefix= /opt/temp  xxx.rpm           #以 --prefix 参数安装到/opt/temp目录
  15.  
  16. rpm -ivh --test xxx-1.3.0-1.fc4.i386.rpm      #   --test 可检查依赖关系;并不是真的安装;
  17. rpm -Uvh --oldpackage xxx-1.3.0-1.fc4.i386.rpm  #   新版本降级为旧版本
  18.  
  19. rpm -e software.rpm           # 卸载 rpm 包格式软件
  20. rpm –U software.rpm           # 升级 rpm 包格式软件
  21. rpm –ivh https://www.go2do.net/software.rpm     #通过http\ftp协议形式安装 rpm 包格式软件,-v 显示详细信息;-h显示进度条
  22.  
  23. rpm –qa | grep -i ***             # 查询列出全部已经安装的 xxx 软件 ,-i 忽略大小写。 
  24.  
  25. #.src.rpm结尾的文件,这些文件是由软件的源代码包装而成的,用户要安装这类RPM软件包,必须使用命令:
  26. rpm --recompile xxx-1.2-3.src.rpm   #这个命令会把源代码解包并编译、安装它,如果用户使用命令:
  27. rpm --rebuild xxx-1.2-3.src.rpm  #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm的RPM软件包
  28.  
  29. #一般使用的是GPG的公钥,如果想要使用某个软件,就要将该发布商的GPG公钥先安装到自己的系统上,
  30. #然后,安装软件时,检测两个密钥是否相同,如果相同就直接安装,不同则在显示信息,指出未安装发布商的GPG公钥。
  31. #安装公钥方法,如red hat系统自带有公钥:
  32.  
  33. rpm --import /usr/share/rhn/RPM-GPG-KEY
  34. # or
  35. rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  36.  
  37. #一般来说,Linux系统都会发布自己的GPG密钥,可以使用以下命令来搜索文件:
  38.  
  39. locate GPG-KEY
  40.  
  41. #已经安装的公钥可以用下面命令查询
  42.  
  43. rpm -qa | grep gpg

3.性能优化——欲练神功必先自宫

如果要搭建网站的小伙伴,可以看看本站关于建站优化的相关主题,比如 WordPress 优化、Mysql优化、PHP优化

4.安全加固——打铁还需自身硬

  1. #使用 adduser 命令创建普通权限的用户,方便后续禁用 root 账户的远程登录
  2. adduser  username   #同时也会创建与 username 同名的组
  3. # useradd 命令也能创建用户,但是如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。
  4.  
  5. #将用户加入 wheel 组(登录为 root ,使用 visudo 命令修改 /etc/sudoers 文件,可以达到同样的目的)
  6. usermod -G wheel username  # -g 是修改用户所在组群,-G 是修改附加组群。
  7.  
  8. #修改/etc/pam.d/su,限定 wheel 组的用户才能使用 su 命令获得 root 权限和执行 sudo 命令
  9. echo "auth required pam_wheel.so use_uid">>/etc/pam.d/su
  10. #修改/etc/login.defs,不属于 wheel 组的用户,执行“su -”命令,即使输入了正确的root密码,也无法登录为root用户
  11. echo "SU_WHEEL_ONLY yes" >> /etc/login.defs
  12.  
  13. groups  #查看当前登陆用户所在的组
  14. groups testnewuser       #查看testnewuser 所在的组
  15. cat /etc/group        #查看所有组
  16. cat /etc/passwd     #可以查看所有用户的列表
  1. #执行 chattr 命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。
  2. chattr +i /etc/passwd
  3. chattr +i /etc/shadow
  4. chattr +i /etc/group
  5. chattr +i /etc/gshadow

5.网络加速——物尽其用,网尽其速

我们够买VPS 除了为了。。。就是为了使用它的网络资源和独特的速度优势。

欢迎投稿、分享转载,转载请保留如下信息:格物躬行博客[https://www.go2do.net]

本文由 [go2do] 原创,本文链接: https://www.go2do.net/linux/how-centos-getting-started-optimization-linux.html



You may also like...

1 Response

  1. 格物躬行说道:

    CentOS7默认的防火墙不是iptables,而是firewalle.
    安装iptable iptable-service

    #先检查是否安装了iptables
    service iptables status
    #安装iptables
    yum install -y iptables
    #升级iptables
    yum update iptables
    #安装iptables-services
    yum install iptables-services

    禁用/停止自带的firewalld服务
    #停止firewalld服务
    systemctl stop firewalld
    #禁用firewalld服务
    systemctl mask firewalld

发表评论

电子邮件地址不会被公开。

本页共执行141次数据库查询,耗时0.289秒,使用内存 1.77 MB