Fenying

Angus’ Home.


26 Dec 2016

第一章 安装 CentOS

本章进行系统安装和 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,找到下面一行

#UseDNS yes

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

service sshd restart

完成。

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

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

E. 配置 iptables

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

yum install iptables-services -y

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

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

systemctl start iptables.service

# Clean up
iptables -F
iptables -X

# Initilization
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# For HTTP(S)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# For PHP-FPM
## iptables -A INPUT -p tcp --dport 9000 -j ACCEPT

# For MySQL
## iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

# For Memcached
## iptables -A INPUT -p tcp --dport 11211 -j ACCEPT

# For SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# For FTP
## iptables -A INPUT -p tcp --dport 21 -j ACCEPT
## iptables -A INPUT -p tcp --dport 20 -j ACCEPT

# For PING
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT

# Prevent from attacking.
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

# Loopback

iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Save
service iptables save
systemctl restart iptables.service

# Enable boot of iptables
systemctl enable iptables.service

F. 关闭 SELinux

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

编辑 /etc/selinux/config,将

SELINUX=enforcing

改成

SELINUX=disabled

保存,重启系统。

G. 添加新的临时硬盘

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

回到虚拟机里如下操作:

mkfs -t ext3 /dev/sdb
mkfs -t ext3 /dev/sdC
mkdir /mnt/temp -p
mkdir /mnt/data -p
chmod 0777 /mnt
chmod 0777 /mnt/temp
chmod 0777 /mnt/data
mount -t ext3 /dev/sdb /mnt/temp
mount -t ext3 /dev/sdc /mnt/data

# CentOS 7 开始 /etc/rc.local 默认不被开机执行,这里将其设置为开机执行
chmod +x /etc/rc.d/rc.local

# 将挂载分区任务添加到自动启动脚本
echo "mount -t ext3 /dev/sdb /mnt/temp" >> /etc/rc.local
echo "mount -t ext3 /dev/sdc /mnt/data" >> /etc/rc.local

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

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

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

comments powered by Disqus