第一章 安装 CentOS

该文章根据 CC-BY-4.0 协议发表,转载请遵循该协议。
本文地址:https://fenying.net/book/minicentos-handbook/01.system-installation/

本章进行系统安装和 SSH 配置。

A. 在 VirtualBox 中安装 CentOS

  1. CentOS 官网 下载 CentOS-7-x86_64-Minimal-1511.iso

  2. 在 VirtualBox 中创建适用于 Red Hat x64 系统的虚拟机,内存 2GB ,硬盘容量 40GB 。

    这里我将虚拟机命名为 MiniCentOS

  3. 在虚拟机 MiniCentOS 的设置页面中,修改 储存\控制器: IDE, 在里面添加 CentOS-7-x86_64-Minimal-1511.iso 作为光驱。

  4. 启动虚拟机,按指示完成安装,记得设置 root 账号的密码。

  5. 安装完成后,重启进入系统,使用 root 账号登录。

B. 启动网络

CentOS Minimal 系统里默认不开启网络,因此需要手动开启,方法如下:

  1. 执行 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3, 将 ONBOOT 改为 yes,保存。

  2. 执行 systemctl restart network,重启网络服务。

这样,网络就启动了。

C. 安装基本网络组件

默认情况下, wget, curl, ifconfig 等命令都无法使用,因此需要手动安装。

执行命令 yum install wget curl net-tools psmisc -y

D. 配置 SSH 远程登录

为了方便操作,我们一般使用 PuTTY 通过 SSH 对虚拟机进行远程操作,而不在虚拟机 窗口中直接操作。

  1. 在虚拟机内执行 ifconfig,查到虚拟机系统 IP 为 10.0.2.15

  2. 打开虚拟机 MiniCentOS 的设置页面,点开 网络\网卡1\端口转发规则, 在里面添加一个主机地址 127.0.0.8:22,子系统地址 10.0.2.15:22,将规则 命名为 SSH,保存。

  3. 在虚拟机中,编辑文件 /etc/ssh/sshd_config,找到下面一行

1#UseDNS yes

去掉前面的 # 号,并将 yes 改为 no,保存。再重启 SSHD 服务:

1service sshd restart

完成。

这个操作解决了虚拟机开机后第一次通过 SSH 连接虚拟机时极其缓慢的问题。

  1. 打开 PuTTY,在地址里输入 127.0.0.8,端口 22,协议为 SSH,连接, 即可登录虚拟机。

E. 配置 iptables

我记得 CentOS 7.0 的时候是把 iptables 替换成了 firewall,不知道为什么 1511 版本又把 firewall 去掉了,而且连 iptables 都没有。所以需要先安装:

1yum install iptables-services -y

由于是开发环境,因此我把所有端口都暴露出来了。当然,如果真的要给主机使用, 还需要在虚拟机配置页面里面添加端口转发规则。

将下面的内容保存为 setup-iptables.sh,设置权限 0700,并执行。

 1systemctl start iptables.service
 2
 3# Clean up
 4iptables -F
 5iptables -X
 6
 7# Initilization
 8iptables -P INPUT DROP
 9iptables -P OUTPUT ACCEPT
10iptables -P FORWARD DROP
11
12# For HTTP(S)
13iptables -A INPUT -p tcp --dport 80 -j ACCEPT
14iptables -A INPUT -p tcp --dport 443 -j ACCEPT
15
16# For PHP-FPM
17## iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
18
19# For MySQL
20## iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
21
22# For Memcached
23## iptables -A INPUT -p tcp --dport 11211 -j ACCEPT
24
25# For SSH
26iptables -A INPUT -p tcp --dport 22 -j ACCEPT
27
28# For FTP
29## iptables -A INPUT -p tcp --dport 21 -j ACCEPT
30## iptables -A INPUT -p tcp --dport 20 -j ACCEPT
31
32# For PING
33iptables -A INPUT -p icmp -j ACCEPT
34iptables -A INPUT -i lo -p all -j ACCEPT
35iptables -A OUTPUT -o lo -p all -j ACCEPT
36
37# Prevent from attacking.
38iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
39iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
40
41# Loopback
42
43iptables -A INPUT -i lo -p all -j ACCEPT
44iptables -A OUTPUT -o lo -p all -j ACCEPT
45
46iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
47
48# Save
49service iptables save
50systemctl restart iptables.service
51
52# Enable boot of iptables
53systemctl enable iptables.service

F. 关闭 SELinux

一般来说,SELinux 我个人是用不上的,所以我选择将其关闭。

编辑 /etc/selinux/config,将

1SELINUX=enforcing

改成

1SELINUX=disabled

保存,重启系统。

G. 添加新的临时硬盘

因为编译会用到大量空间,导致主硬盘被大量扩大,因此我们在虚拟机设置里添加两个新的 硬盘,依次命名为 TempData,均设置为 64G 容量。

回到虚拟机里如下操作:

 1mkfs -t ext3 /dev/sdb
 2mkfs -t ext3 /dev/sdC
 3mkdir /mnt/temp -p
 4mkdir /mnt/data -p
 5chmod 0777 /mnt
 6chmod 0777 /mnt/temp
 7chmod 0777 /mnt/data
 8mount -t ext3 /dev/sdb /mnt/temp
 9mount -t ext3 /dev/sdc /mnt/data
10
11# CentOS 7 开始 /etc/rc.local 默认不被开机执行,这里将其设置为开机执行
12chmod +x /etc/rc.d/rc.local
13
14# 将挂载分区任务添加到自动启动脚本
15echo "mount -t ext3 /dev/sdb /mnt/temp" >> /etc/rc.local
16echo "mount -t ext3 /dev/sdc /mnt/data" >> /etc/rc.local

H. 解除最大打开文件数和进程数限制

在文件 /etc/security/limits.conf 末尾添加如下内容,然后重新登录即可。

1* soft noproc 11000
2* hard noproc 11000
3* soft nofile 32768
4* hard nofile 65536
comments powered by Disqus