第一章 安装 CentOS
该文章根据 CC-BY-4.0 协议发表,转载请遵循该协议。
本文地址:https://fenying.net/book/minicentos-handbook/01.system-installation/
本章进行系统安装和 SSH 配置。
A. 在 VirtualBox 中安装 CentOS
-
从 CentOS 官网 下载
CentOS-7-x86_64-Minimal-1511.iso
。 -
在 VirtualBox 中创建适用于
Red Hat x64
系统的虚拟机,内存 2GB ,硬盘容量 40GB 。这里我将虚拟机命名为
MiniCentOS
。 -
在虚拟机
MiniCentOS
的设置页面中,修改 储存\控制器: IDE, 在里面添加CentOS-7-x86_64-Minimal-1511.iso
作为光驱。 -
启动虚拟机,按指示完成安装,记得设置
root
账号的密码。 -
安装完成后,重启进入系统,使用
root
账号登录。
B. 启动网络
CentOS Minimal 系统里默认不开启网络,因此需要手动开启,方法如下:
-
执行
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
, 将 ONBOOT 改为 yes,保存。 -
执行
systemctl restart network
,重启网络服务。
这样,网络就启动了。
C. 安装基本网络组件
默认情况下, wget, curl, ifconfig
等命令都无法使用,因此需要手动安装。
执行命令 yum install wget curl net-tools psmisc -y
。
D. 配置 SSH 远程登录
为了方便操作,我们一般使用 PuTTY 通过 SSH 对虚拟机进行远程操作,而不在虚拟机 窗口中直接操作。
-
在虚拟机内执行
ifconfig
,查到虚拟机系统 IP 为10.0.2.15
。 -
打开虚拟机 MiniCentOS 的设置页面,点开 网络\网卡1\端口转发规则, 在里面添加一个主机地址
127.0.0.8:22
,子系统地址10.0.2.15:22
,将规则 命名为 SSH,保存。 -
在虚拟机中,编辑文件 /etc/ssh/sshd_config,找到下面一行
1#UseDNS yes
去掉前面的 #
号,并将 yes 改为 no,保存。再重启 SSHD 服务:
1service sshd restart
完成。
这个操作解决了虚拟机开机后第一次通过 SSH 连接虚拟机时极其缓慢的问题。
- 打开 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. 添加新的临时硬盘
因为编译会用到大量空间,导致主硬盘被大量扩大,因此我们在虚拟机设置里添加两个新的
硬盘,依次命名为 Temp
和 Data
,均设置为 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