跳过 LAMP 的介绍，因为我认为你们大多数已经知道了。这个教程会集中在如何在升级到 Apache 2.4 的 Red Hat Enterprise Linux 7.0 和 CentOS 7.0 中安装和配置 LAMP：Linux、Apache、 MariaDB、 PHP/PhpMyAdmin。在 RHEL/CentOS 7.0 中安装 LAMP前置要求根据使用的发行版是 RHEL 还是 CentOS 7.0，按照下面的链接来进行最小化的系统安装，网络使用静态 IP。对于 RHEL 7.0RHEL 7.0 安装过程在 RHEL 7.0 中注册和启用订阅仓库对于 CentOS 7.0CentOS 7.0 安装过程第一步：使用基本配置安装apache1、在完成最小化系统安装，并在 RHEL/CentOS 7.0 上配置静态 IP 后，就可以使用下面的命令从官方仓库安装最新的 Apache 2.4 httpd 服务了。# yum install httpd 安装 apache 服务2、安装完成后，使用下面的命令来管理apache守护进程，因为 RHEL 和 CentOS 7.0 都将 init 脚本从 SysV 升级到了systemd，所以同时你还可以使用 SysV 脚本和 Apache 脚本来管理服务。# systemctl status|start|stop|restart|reload httpd 或者 # service httpd status|start|stop|restart|reload 或者 # apachectl configtest| graceful 启动apache服务3、在使用 systemd 初始化脚本来启动 apache 服务后，要用 firewall-cmd 打开 RHEL/CentOS 7.0 防火墙规则， 这是通过 firewalld 守护进程管理 iptables 的默认命令。**# firewall-cmd --add-service=http 注意：上面的命令会在系统重启或者 firewalld 服务重启后失效，因为它是即时的规则，它不会永久生效。要使 iptables 规则在 fiewalld 中持久化，使用 --permanent 选项并重启 firewalld 服务来生效。（LCTT 译注：也可以不重启 firewalld 服务，而是再执行一遍不带 --permanent 选项的命令。）# firewall-cmd --permanent --add-service=http # systemctl restart firewalld 在 CentOS 7 中启用防火墙下面是 firewalld 其他的重要选项：# firewall-cmd --state # firewall-cmd --list-all # firewall-cmd --list-interfaces # firewall-cmd --get-service # firewall-cmd --query-service service_name # firewall-cmd --add-port=8080/tcp 4、要验证 apache 的功能，打开一个远程浏览器并使用 http 协议访问你服务器的 IP 地址(http://server\_IP)， 应该会显示下图中的默认页面。Apache 默认页5、现在 apache 的根地址在 /var/www/html，该目录中没有提供任何索引文件。如果你想要看见根目录下的文件夹列表，打开 apache 欢迎配置文件并设置 <LocationMach> 下 Indexes 前的状态从-到+，下面的截图就是一个例子。# nano /etc/httpd/conf.d/welcome.conf Apache 目录列出6、关闭文件，重启 apache 服务来使设置生效，重载页面来看最终效果。# systemctl restart httpd Apache 索引文件第二步：为 Apache 安装 php5 支持7、在为 apache 安装 php 支持之前，使用下面的命令的得到所有可用的php模块和扩展。# yum search php 在 CentOS 7 上安装 PHP*8、根据你所要使用的应用类型，安装上述列表中所需的 PHP 模块。对于 PHP 中的基本的 MariaDB 支持和 PhpMyAdmin，你需要安装如下模块。# yum install php php-mysql php-pdo php-gd php-mbstring 安装 PHP 模块安装 PHP mbstring 模块9、 要在你的浏览器上显示 PHP 的全部信息，用 root 账号执行如下命令在 Apache 的文档根目录下创建一个 info.php 文件，然后重启 httpd 服务，并在你的浏览器里面访问 http://server\_IP/info.php 。# echo "<?php phpinfo(); ?>" > /var/www/html/info.php # systemctl restart httpd 查看 CentOS 7 上的 PHP 信息10、如果你得到一个 PHP 的日期和时区错误，打开配置文件 php.ini，取消 date.timezone 语句的注释，加上你的实际时区参数，然后重启 Apache 守护进程。# nano /etc/php.ini 找到并如下修改date.timezone，参考 PHP 支持的时区列表。（LCTT 译注：对于中国，可以使用 Asia/Shanghai、Asia/Chongqing 等，但是不建议使用向后兼容而保留的 PRC。）date.timezone = Continent/City 设置 PHP 的时区第三步：安装和配置 MariaDB 数据库11、 Red Hat Enterprise Linux/CentOS 7.0 使用 MariaDB 替换 MySQL 为默认数据库管理系统。使用如下命令安装 MariaDB 数据库。# yum install mariadb-server mariadb 在 CentOS 7中安装 MariaDB12、安装 MariaDB 后，启动数据库守护进程并使用 mysqlsecureinstallation 脚本来保护数据库（设置数据库的 root 密码、禁止远程 root 登录、移除测试数据库、移除匿名用户等）。# systemctl start mariadb # mysql_secure_installation 启动 MariaDB 数据库MariaDB 安全设置13、要测试数据库功能，使用 root 账户登录 MariaDB 并用 quit 退出。mysql -u root -p MariaDB > SHOW VARIABLES; MariaDB > quit 连接 MariaDB 数据库第四步：安装 PhpMyAdmin14、 RHEL 7.0 或者 CentOS 7.0 仓库默认没有提供 PhpMyAdmin 二进制安装包。如果你不适应使用 MySQL 命令行来管理你的数据库，你可以通过下面的命令启用 CentOS 7.0 rpmforge 仓库来安装 PhpMyAdmin。# yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm 启用 rpmforge 仓库后，下面安装 PhpMyAdmin。# yum install phpmyadmin 启用 RPMForge 仓库15、下面配置 PhpMyAdmin 的 phpmyadmin.conf 来允许远程连接，它位于 Apache 的 conf.d 目录下，并注释掉下面的行。# nano /etc/httpd/conf.d/phpmyadmin.conf 使用#来注释掉下列行。# Order Deny,Allow # Deny from all # Allow from 127.0.0.1 允许远程 PhpMyAdmin 访问16、 要使用 cookie 验证来登录 PhpMyAdmin，像下面的截图那样使用生成的秘密字符串来添加一个 blowfish 字符串到 config.inc.php 文件中，重启 apache 服务并打开 URL：http://server\_IP/phpmyadmin/。# nano /etc/httpd/conf.d/phpmyadmin.conf # systemctl restart httpd 在 PhpMyAdmin 中添加 BlowfishPhpMyAdmin 面板第五步：在系统范围内启用 LAMP17、 如果你需要在重启后自动运行 MariaDB 和 Apache 服务，你需要在系统级地启用它们。# systemctl enable mariadb # systemctl enable httpd 系统级启用服务这就是在 Red Hat Enterprise 7.0 或者 CentOS 7.0 中安装 LAMP 的过程。在 CentOS/RHEL 7.0 上关于 LAMP 的系列文章接下来将会讨论在 Apache 中创建虚拟主机，生成 SSL 证书、密钥和添加 SSL 事务支持。via: http://www.tecmint.com/install-lamp-in-centos-7/作者：Matei Cezar 译者：geekpi 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
30. 用密码保护 GRUB用密码保护你的 boot 引导程序这样你就可以在启动时获得额外的安全保障。同时你也可以在实物层面获得保护。通过在引导时给 GRUB 加锁防止任何无授权访问来保护你的服务器。首先备份两个文件，这样如果有任何错误出现，你可以有回滚的选择。备份 ‘/etc/grub2/grub.cfg’ 为 ‘/etc/grub2/grub.cfg.old’。# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.old 同样，备份 ‘/etc/grub.d/10\_linux’ 为 ‘/etc/grub.d/10\_linux.old’。# cp /etc/grub.d/10_linux /etc/grub.d/10_linux.old 打开文件 ‘/etc/grub.d/10\_linux’ 并在文件末尾添加下列行。cat <<EOF set superusers="tecmint" Password tecmint avi@123 EOF 密码保护 Grub注意在上面的文件中，用你自己的用户名和密码代替 “tecmint” 和 “avi@123”。现在通过运行下面的命令生成新的 grub.cfg 文件。# grub2-mkconfig --output=/boot/grub2/grub.cfg 生成 Grub 文件创建 grub.cfg 文件之后，重启机器并敲击 ‘e’ 进入编辑。你会发现它会要求你输入 “有效验证” 来编辑 boot 菜单。有密码保护的 Boot 菜单输入登录验证之后，你就可以编辑 grub boot 菜单。Grub 菜单文件你也可以用加密的密码代替上一步的明文密码。首先按照下面推荐的生成加密密码。# grub2-mkpasswd-pbkdf2 [两次输入密码] 生成加密的 Grub 密码打开 ‘/etc/grub.d/10\_linux’ 文件并在文件末尾添加下列行。cat <<EOF set superusers=”tecmint” Password_pbkdf2 tecmint grub.pbkdf2.sha512...你的加密密码... EOF 加密 Grub 密码用你系统上生成的密码代替原来的密码，别忘了交叉检查密码。同样注意在这种情况下你也需要像上面那样生成 grub.cfg。重启并敲击 ‘e’ 进入编辑，会提示你输入用户名和密码。我们已经介绍了大部分工业标准发行版 RHEL 7 和 CentOS 7 安装后必要的操作。如果你发现我们缺少了一些点或者你有新的东西可以扩充这篇文章，你可以和我们一起分享，我们会通过扩充在这篇文章中包括你的分享。via: http://www.tecmint.com/things-to-do-after-minimal-rhel-centos-7-installation/6/作者：vishek Kumar 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
25. 安装 Linux Malware Detect (LMD)Linux Malware Detect (LMD) 是 GNU GPLv2 协议下发布的开源 Linux 恶意程序扫描器，它是特别为面临威胁的主机环境所设计的。LMD 完整的安装、配置以及使用方法可以查看：安装 LMD 并和 ClamAV 一起使用作为反病毒引擎26. 用 Speedtest-cli 测试服务器带宽speedtest-cli 是用 python 写的用于测试网络下载和上传带宽的工具。关于 speedtest-cli 工具的完整安装和使用请阅读我们的文章用命令行查看 Linux 服务器带宽27. 配置 Cron 任务这是最广泛使用的软件工具之一。它是一个任务调度器，比如，现在安排一个以后可以自动运行的作业。它用于未处理记录的日志和维护，以及其它日常工作，比如常规备份。所有的调度都写在文件 /etc/crontab 中。crontab 文件包含下面的 6 个域： 分 时 日期 月份 星期 命令 (0-59) (0-23) (1-31) (1/jan-12/dec) (0-6/sun-sat) Command/script Crontab 域要在每天 04:30 运行一个 cron 任务（比如运行 /home/$USER/script.sh）。分 时 日期 月份 星期 命令 30 4 * * * speedtest-cli 就把下面的条目增加到 crontab 文件 ‘/etc/crontab/’。30 4 * * * /home/$user/script.sh 把上面一行增加到 crontab 之后，它会在每天的 04:30 am 自动运行，输出取决于脚本文件的内容。另外脚本也可以用命令代替。关于更多 cron 任务的例子，可以阅读Linux 上的 11 个 Cron 任务例子28. 安装 OwncloudOwncloud 是一个基于 HTTP 的数据同步、文件共享和远程文件存储应用。更多关于安装 owncloud 的内容，你可以阅读这篇文章：在 Linux 上创建个人/私有云存储29. 启用 Virtualbox 虚拟化虚拟化是创建虚拟操作系统、硬件和网络的过程，是当今最热门的技术之一。我们会详细地讨论如何安装和配置虚拟化。我们的最小化 CentOS 服务器是一个无用户界面服务器（LCTT 译注：无用户界面[headless]服务器指没有监视器和鼠标键盘等外设的服务器）。我们通过安装下面的软件包，让它可以托管虚拟机，虚拟机可通过 HTTP 访问。# yum groupinstall 'Development Tools' SDL kernel-devel kernel-headers dkms 安装开发工具更改工作目录到 ‘/etc/yum.repos.d/’ 并下载 VirtualBox 库。# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc 安装刚下载的密钥。# rpm --import oracle_vbox.asc 升级并安装 VirtualBox。# yum update && yum install virtualbox-4.3 下一步，下载和安装 VirtualBox 扩展包。# wget http://download.virtualbox.org/virtualbox/4.3.12/Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack # VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.12-93733.vbox-extpack 安装 VirtualBox 扩展包正在安装 VirtualBox 扩展包添加用户 ‘vbox’ 用于管理 VirtualBox 并把它添加到组 vboxusers 中。# adduser vbox # passwd vobx # usermod -G vboxusers vbox 安装 HTTPD 服务器。# yum install httpd 安装 PHP （支持 soap 扩展）。# yum install php php-devel php-common php-soap php-gd 下载 phpVirtualBox（一个 PHP 写的开源的 VirtualBox 用户界面）。# wget http://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-4.3-1.zip 解压 zip 文件并把解压后的文件夹复制到 HTTP 工作目录。# unzip phpvirtualbox-4.*.zip # cp phpvirtualbox-4.3-1 -R /var/www/html 下一步，重命名文件 /var/www/html/phpvirtualbox/config.php-example 为 var/www/html/phpvirtualbox/config.php。# mv config.php.example config.php 打开配置文件并添加我们上一步创建的 ‘username ’ 和 ‘password’。# vi config.php 最后，重启 VirtualBox 和 HTTP 服务器。# service vbox-service restart # service httpd restart 转发端口并从一个有用户界面的服务器上访问它。http://192.168.0.15/phpvirtualbox-4.3-1/ 登录 PHP VirtualboxPHP Virtualbox 面板via: http://www.tecmint.com/things-to-do-after-minimal-rhel-centos-7-installation/5/作者：Avishek Kumar 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
17. 安装 WebminWebmin 是基于 Web 的 Linux 配置工具。它像一个中央系统，用于配置各种系统设置，比如用户、磁盘分配、服务以及 HTTP 服务器、Apache、MySQL 等的配置。# wget http://prdownloads.sourceforge.net/webadmin/webmin-1.740-1.noarch.rpm # rpm -ivh webmin-*.rpm 安装 Webmin安装完 webmin 后，你会在终端上得到一个消息，提示你用 root 密码在端口 10000 登录你的主机 (http://ip-address:10000)。 如果运行的是无用户界面服务器你可以转发端口然后从有用户界面的机器上访问它。（LCTT 译注：无用户界面[headless]服务器指没有监视器和鼠标键盘等外设的服务器，在此次场景，你可以用其他有显示器和键盘鼠标的机器上访问它。）18. 启用第三方库添加不受信任的库并不是一个好主意，尤其是在生产环境中，这可能导致致命的问题。但仅作为例子在这里我们会添加一些社区证实可信任的库，以安装第三方工具和软件包。为企业版 Linux（EPEL）库添加额外的软件包。# yum install epel-release 添加社区企业版 Linux （Community Enterprise Linux）库：# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 安装 Epel 库注意！ 添加第三方库的时候尤其需要注意。19. 安装 7-zip 工具在最小化安装 CentOS 时你并没有获得类似 unzip 或者 untar 的工具。我们可以选择根据需要来安装每个工具，或一个能处理所有格式的工具。7-zip 就是一个能压缩和解压所有已知类型文件的工具。# yum install p7zip 安装 7zip 工具注意: 该软件包从 Fedora EPEL 7 的库中下载和安装。20. 安装 NTFS-3G 驱动NTFS-3G，一个很小但非常有用的 NTFS 驱动，在大部分类 UNIX 发行版上都可用。它对于挂载和访问 Windows NTFS 文件系统很有用。尽管也有其它可用的替代品，比如 Tuxera，但 NTFS-3G 是使用最广泛的。# yum install ntfs-3g 安装 NTFS-3G 用于挂载 Windows 分区ntfs-3g 安装完成之后，你可以使用以下命令挂载 Windows NTFS 分区（我的 Windows 分区是 /dev/sda5）。# mount -ro ntfs-3g /dev/sda5 /mnt # cd /mnt # ls -l 21. 安装 Vsftpd FTP 服务器VSFTPD 表示 Very Secure File Transfer Protocol Daemon，是用于类 UNIX 系统的 FTP 服务器。它是现今最高效和安全的 FTP 服务器之一。# yum install vsftpd 安装 Vsftpd FTP编辑配置文件 ‘/etc/vsftpd/vsftpd.conf’ 用于保护 vsftpd。# vi /etc/vsftpd/vsftpd.conf 编辑一些值并使其它行保留原样，除非你知道自己在做什么。anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES 你也可以更改端口号，记得让 vsftpd 端口通过防火墙。# firewall-cmd --add-port=21/tcp # firewall-cmd --reload 下一步重启 vsftpd 并启用开机自动启动。# systemctl restart vsftpd # systemctl enable vsftpd 22. 安装和配置 sudosudo 通常被称为 super do 或者 suitable user do，是一个类 UNIX 操作系统中用其它用户的安全权限执行程序的软件。让我们来看看怎样配置 sudo。# visudo 这会打开 /etc/sudoers 并进行编辑sudoers 文件给一个已经创建好的用户（比如 tecmint）赋予所有权限（等同于 root）。tecmint ALL=(ALL) ALL 如果给一个已经创建好的用户（比如 tecmint）赋予除了重启和关闭服务器以外的所有权限（等同于 root）。首先，再一次打开文件并编辑如下内容：cmnd_Alias nopermit = /sbin/shutdown, /sbin/reboot 然后，用逻辑操作符（!）添加该别名。tecmint ALL=(ALL) ALL,!nopermit 如果准许一个组（比如 debian）运行一些 root 权限命令，比如（增加或删除用户）。cmnd_Alias permit = /usr/sbin/useradd, /usr/sbin/userdel 然后，给组 debian 增加权限。debian ALL=(ALL) permit 23. 安装并启用 SELinuxSELinux 表示 Security-Enhanced Linux，是内核级别的安全模块。# yum install selinux-policy 安装 SElinux 策略查看 SELinux 当前模式。# getenforce 查看 SELinux 模式输出是 Enforcing，意味着 SELinux 策略已经生效。如果需要调试，可以临时设置 selinux 模式为允许。不需要重启。# setenforce 0 调试完了之后再次设置 selinux 为强制模式，无需重启。# setenforce 1 （LCTT 译注：在生产环境中，SELinux 固然会提升安全，但是也确实会给应用部署和运行带来不少麻烦。具体是否部署，需要根据情况而定。）24. 安装 Rootkit HunterRootkit Hunter，简写为 RKhunter，是在 Linux 系统中扫描 rootkits 和其它可能有害攻击的程序。# yum install rkhunter 安装 Rootkit Hunter在 Linux 中，从脚本文件以计划作业的形式运行 rkhunter 或者手动扫描有害攻击。# rkhunter --check 扫描 rootkitsRootKit 扫描结果via: http://www.tecmint.com/things-to-do-after-minimal-rhel-centos-7-installation/4/作者：Avishek Kumar 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
12. 安装 Apache TomcatTomcat 是由 Apache 设计的用来运行 Java HTTP web 服务器的 servlet 容器。按照下面的方法安装 tomcat，但需要指出的是安装 tomcat 之前必须先安装 Java。# yum install tomcat 安装 Apache Tomcat安装完 tomcat 之后，启动 tomcat 服务。# systemctl start tomcat 查看 tomcat 版本。# /usr/sbin/tomcat version 查看 tomcat 版本允许 tomcat 服务和默认端口(8080) 通过防火墙并重新加载设置。# firewall-cmd –zone=public –add-port=8080/tcp --permanent # firewall-cmd –reload 现在该保护 tomcat 服务器了，添加一个用于访问和管理的用户和密码。我们需要编辑文件 ‘/etc/tomcat/tomcat-users.xml’。查看类似下面的部分： .... <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <user username="tecmint" password="tecmint" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/> 保护 Tomcat我们在这里添加用户 “tecmint” 到 tomcat 的管理员/管理组中，使用 “tecmint” 作为密码。先停止再启动 tomcat 服务以使更改生效，并添加 tomcat 服务到随系统启动。# systemctl stop tomcat # systemctl start tomcat # systemctl enable tomcat.service 请阅读: 在 RHEL/CentOS 7.0/6.x 中安装和配置 Apache Tomcat 8.0.913. 安装 Nmap 监视开放端口Nmap 网络映射器用来分析网络，通过运行它可以发现网络的映射关系。nmap 并没有默认安装，你需要从库中安装它。# yum install nmap 安装 Nmap 监视工具列出主机中所有的开放端口以及对应使用它们的服务。# namp 127.0.01 !监视开放端口](http://www.tecmint.com/wp-content/uploads/2015/04/Monitor-Open-Ports.jpeg)监视开放端口你也可以使用 firewall-cmd 列出所有端口，但我发现 nmap 更有用。# firewall-cmd –list-ports 在防火墙中检查开放端口请阅读: Nmap 监视开放端口的 29 个有用命令14. 配置 FirewallDfirewalld 是动态管理服务器的防火墙服务。在 CentOS 7 中 Firewalld 移除了 iptables 服务。在红帽企业版 Linux 和它的衍生版中默认安装了 Firewalld。如果有 iptables 的话为了使每个更改生效需要清空所有旧的规则然后创建新规则。然而用firewalld，不需要清空并重新创建新规则就可以实现更改生效。检查 Firewalld 是否运行。# systemctl status firewalld 或 # firewall-cmd –state 检查 Firewalld 状态获取所有的区域列表。# firewall-cmd --get-zones 检查 Firewalld 区域在切换之前先获取区域的详细信息。# firewall-cmd --zone=work --list-all 检查区域详情获取默认区域。# firewall-cmd --get-default-zone Firewalld 默认区域切换到另一个区域，比如 ‘work’。# firewall-cmd --set-default-zone=work 切换 Firewalld 区域列出区域中的所有服务。# firewall-cmd --list-services 列出 Firewalld 区域的服务添加临时服务，比如 http，然后重载 firewalld。# firewall-cmd --add-service=http # firewall-cmd –reload 添加临时 http 服务添加永久服务，比如 http，然后重载 firewalld。# firewall-cmd --add-service=http --permanent # firewall-cmd --reload添加永久 http 服务删除临时服务，比如 http。# firewall-cmd --remove-service=http # firewall-cmd --reload 删除临时 Firewalld 服务删除永久服务，比如 http# firewall-cmd --zone=work --remove-service=http --permanent # firewall-cmd --reload 删除永久服务允许一个临时端口(比如 331)。# firewall-cmd --add-port=331/tcp # firewall-cmd --reload 打开临时端口允许一个永久端口(比如 331)。# firewall-cmd --add-port=331/tcp --permanent # firewall-cmd --reload 打开永久端口阻塞/移除临时端口(比如 331)。# firewall-cmd --remove-port=331/tcp # firewall-cmd --reload 移除临时端口阻塞/移除永久端口(比如 331)。# firewall-cmd --remove-port=331/tcp --permanent # firewall-cmd --reload 移除永久端口停用 firewalld。# systemctl stop firewalld # systemctl disable firewalld # firewall-cmd --state 停用 Firewalld 服务启用 firewalld。# systemctl enable firewalld # systemctl start firewalld # firewall-cmd --state 启用 Firewalld如何在 RHEL/CentOS 7 中配置 ‘Firewalld’配置和管理 Firewalld 的有用 ‘Firewalld’ 规则15. 安装 WgetWget 是从 web 服务器获取(下载)内容的命令行工具。它是你使用 wget 命令获取 web 内容或下载任何文件必须要有的重要工具。# yum install wget 安装 Wget 工具关于在终端中如何使用 wget 命令下载文件的方法和实际例子，请阅读10 个 Wget 命令例子。16. 安装 Telnet 客户端Telnet 是通过 TCP/IP 允许用户登录到相同网络上的另一台计算机的网络协议。和远程计算机的连接建立后，它就成为了一个允许你在自己的计算机上用所有提供给你的权限和远程主机交互的虚拟终端。（LCTT 译注：除非你真的需要，不要安装 telnet 服务，也不要用 telnet 客户端连接另外一个 telnet 服务，因为 telnet 是明文传输的。不过如下用 telnet 客户端检测另外一个服务的端口是否工作是常用的操作。）Telnet 对于检查远程计算机或主机的监听端口也非常有用。# yum install telnet # telnet google.com 80 Telnet 端口检查via: http://www.tecmint.com/things-to-do-after-minimal-rhel-centos-7-installation/3/作者：Avishek Kumar 译者：ictlyh 校对：校对者ID本文由 LCTT 原创翻译，Linux中国 荣誉推出
7. 安装 PHPPHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安装 PHP：# yum install php 安装完 php 之后，确认重启 Apache 服务以便在 Web 浏览器中渲染 PHP。# systemctl restart httpd.service 下一步，通过在 Apache 文档根目录下创建下面的 php 脚本验证 PHP。# echo -e "<?php\nphpinfo();\n?>" > /var/www/html/phpinfo.php 现在在 Linux 命令行中查看我们刚才创建的 PHP 文件(phpinfo.php)。# php /var/www/html/phpinfo.php 或者 # links http://127.0.0.1/phpinfo.php 验证 PHP8. 安装 MariaDB 数据库MariaDB 是 MySQL 的一个分支。RHEL 以及它的衍生版已经从 MySQL 迁移到 MariaDB。这是一个主流的数据库管理系统，也是一个你必须拥有的工具。不管你在配置怎样的服务器，或迟或早你都会需要它。在最小化安装的 CentOS 上安装 MariaDB，如下所示：# yum install mariadb-server mariadb 安装 MariaDB 数据库启动 MariaDB 并配置它开机时自动启动。# systemctl start mariadb.service # systemctl enable mariadb.service 允许 mysql(mariadb) 服务通过防火墙（LCTT 译注：如果你的 MariaDB 只用在本机，则务必不要设置防火墙允许通过，使用 UNIX Socket 连接你的数据库；如果需要在别的服务器上连接数据库，则尽量使用内部网络，而不要将数据库服务暴露在公开的互联网上。）# firewall-cmd –add-service=mysql 现在是时候确保 MariaDB 服务器安全了（LCTT 译注：这个步骤主要是设置 mysql 管理密码）。# /usr/bin/mysql_secure_installation 保护 MariaDB 数据库请阅读:在 CentOS 7.0 上安装 LAMP (Linux, Apache, MariaDB, PHP/PhpMyAdmin)在 CentOS 7.0 上创建 Apache 虚拟主机9. 安装和配置 SSH 服务器SSH 即 Secure Shell，是 Linux 远程管理的默认协议。 SSH 是随最小化 CentOS 服务器中安装运行的最重要的软件之一。检查当前已安装的 SSH 版本。# SSH -V 检查 SSH 版本使用更安全的 SSH 协议，而不是默认的协议，并更改端口号进一步加强安全。编辑 SSH 的配置文件 ‘/etc/ssh/ssh\_config’。去掉下面行的注释或者从协议行中删除 1，然后行看起来像这样（LCTT 译注： SSH v1 是过期废弃的不安全协议）：# Protocol 2,1 (原来) Protocol 2 (现在) 这个改变强制 SSH 使用 协议 2，它被认为比协议 1 更安全，同时也确保在配置中更改端口号 22 为其它。保护 SSH 登录取消 SSH 中的‘root login’， 只允许通过普通用户账号登录后才能使用 su 切换到 root，以进一步加强安全。请打开并编辑配置文件 ‘/etc/ssh/sshd\_config’ 并更改 PermitRootLogin yes 为 PermitRootLogin no。# PermitRootLogin yes (原来) PermitRootLogin no (现在) 取消 SSH Root 直接登录最后，重启 SSH 服务启用更改。# systemctl restart sshd.service 请查看:加密和保护 SSH 服务器的 5 个最佳实践5 个简单步骤实现使用 SSH Keygen 无密码登录 SSH在 PuTTY 中实现 “无密码 SSH 密钥验证”10. 安装 GCC (GNU 编译器集)GCC 即 GNU 编译器集，是一个 GNU 项目开发的支持多种编程语言的编译系统（LCTT 译注：在你需要自己编译构建软件时需要它）。在最小化安装的 CentOS 没有默认安装。运行下面的命令安装 gcc 编译器。# yum install gcc 在 CentOS 上安装 GCC检查安装的 gcc 版本。# gcc --version 检查 GCC 版本11. 安装 JavaJava是一种通用的基于类的，面向对象的编程语言。在最小化 CentOS 服务器中没有默认安装（LCTT 译注：如果你没有任何 Java 应用，可以不用装它）。按照下面命令从库中安装 Java。# yum install java 安装 Java检查安装的 Java 版本。# java -version 检查 Java 版本via: http://www.tecmint.com/things-to-do-after-minimal-rhel-centos-7-installation/2/作者：Avishek Kumar 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
CentOS 是一个工业标准的 Linux 发行版，是红帽企业版 Linux 的衍生版本。你安装完后马上就可以使用，但是为了更好地使用你的系统，你需要进行一些升级、安装新的软件包、配置特定服务和应用程序等操作。这篇文章介绍了 “安装完 RHEL/CentOS 7 后需要做的 30 件事情”。阅读帖子的时候请先完成 RHEL/CentOS 最小化安装，这是首选的企业和生产环境。如果还没有，你可以按照下面的指南，它会告诉你两者的最小化安装方法。最小化安装 CentOS 7最小化安装 RHEL 7我们会基于工业标准的需求来介绍以下列出的这些重要工作。我们希望这些东西在你配置服务器的时候能有所帮助。注册并启用红帽订阅使用静态 IP 地址配置网络设置服务器的主机名称更新或升级最小化安装的 CentOS安装命令行 Web 浏览器安装 Apache HTTP 服务器安装 PHP安装 MariaDB 数据库安装并配置 SSH 服务器安装 GCC (GNU 编译器集)安装 Java安装 Apache Tomcat安装 Nmap 检查开放端口配置防火墙安装 Wget安装 Telnet安装 Webmin启用第三方库安装 7-zip 工具安装 NTFS-3G 驱动安装 Vsftpd FTP 服务器安装和配置 sudo安装并启用 SELinux安装 Rootkit Hunter安装 Linux Malware Detect (LMD)用 Speedtest-cli 测试服务器带宽配置 Cron 作业安装 Owncloud启用 VirtualBox 虚拟化用密码保护 GRUB（LCTT 译注：关于 CentOS/RHEL 7的更多信息，请参考专题：http://www.linux.cn/topic-centos7.html ）1. 注册并启用红帽订阅RHEL 7 最小化安装完成后，就应该注册并启用系统红帽订阅库， 并执行一个完整的系统更新。这只当你有一个可用的红帽订阅时才能有用。你要注册才能启用官方红帽系统库，并时不时进行操作系统更新。（LCTT 译注：订阅服务是收费的）在下面的指南中我们已经包括了一个如何注册并激活红帽订阅的详细说明。在 RHEL 7 中注册并启用红帽订阅注意: 这一步仅适用于有一个有效订阅的红帽企业版 Linux。如果你用的是 CentOS 服务器，请查看后面的章节。2. 使用静态 IP 地址配置网络你第一件要做的事情就是为你的 CentOS 服务器配置静态 IP 地址、路由以及 DNS。我们会使用 ip 命令代替 ifconfig 命令。当然，ifconfig 命令对于大部分 Linux 发行版来说还是可用的，还能从默认库安装。# yum install net-tools [它提供 ifconfig 工具，如果你不习惯 ip 命令，还可以使用它] （LCTT 译注：关于 ip 命令的使用，请参照：http://www.linux.cn/article-3631-1.html ）但正如我之前说，我们会使用 ip 命令来配置静态 IP 地址。所以，确认你首先检查了当前的 IP 地址。# ip addr show 现在用你的编辑器打开并编辑文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3 （LCTT 译注：你的网卡名称可能不同，如果希望修改为老式网卡名称，参考：http://www.linux.cn/article-4045-1.html ）。这里，我使用 vi 编辑器，另外你要确保你是 root 用户才能保存更改。# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 我们会编辑文件中的四个地方。注意下面的四个地方并保证不碰任何其它的东西。也保留双引号，在它们中间输入你的数据。IPADDR = "[在这里输入你的静态 IP]" GATEWAY = "[输入你的默认网关]" DNS1 = "[你的DNS 1]" DNS2 = "[你的DNS 2]" 更改了 ‘ifcfg-enp0s3’ 之后，它看起来像下面的图片。注意你的 IP，网关和 DNS 可能会变化，请和你的 ISP(译者注：互联网服务提供商，即给你提供接入的服务的电信或 IDC) 确认。保存并退出。网络详情重启网络服务并检查 IP 是否和分配的一样。如果一切都顺利，用 Ping 查看网络状态。# service network restart 重启网络服务重启网络后，确认检查了 IP 地址和网络状态。# ip addr show # ping -c4 google.com 验证 IP 地址检查网络状态（LCTT 译注：关于设置静态 IP 地址的更多信息，请参照：http://www.linux.cn/article-3977-1.html ）3. 设置服务器的主机名称下一步是更改 CentOS 服务器的主机名称。查看当前分配的主机名称。# echo $HOSTNAME 查看系统主机名称要设置新的主机名称，我们需要编辑 ‘/etc/hostsname’ 文件并用想要的名称替换旧的主机名称。# vi /etc/hostname 在 CentOS 中设置主机名称设置完了主机名称之后，务必注销后重新登录确认主机名称。登录后检查新的主机名称。$ echo $HOSTNAME 确认主机名称你也可以用 ‘hostname’ 命令查看你当前的主机名。$ hostname （LCTT 译注：关于设置静态、瞬态和灵活主机名的更多信息，请参考：http://www.linux.cn/article-3937-1.html ）4. 更新或升级最小化安装的 CentOS这样做除了更新安装已有的软件最新版本以及安全升级，不会安装任何新的软件。总的来说更新（update）和升级（upgrade）是相同的，除了事实上 升级 = 更新 + 更新时进行废弃处理。# yum update && yum upgrade 更新最小化安装的 CentOS 服务器重要: 你也可以运行下面的命令，这不会弹出软件更新的提示，你也就不需要输入 ‘y’ 接受更改。然而，查看服务器上会发生的变化总是一个好主意，尤其是在生产中。因此使用下面的命令虽然可以为你自动更新和升级，但并不推荐。# yum -y update && yum -y upgrade 5. 安装命令行 Web 浏览器大部分情况下，尤其是在生产环境中，我们通常用没有 GUI 的命令行安装 CentOS，在这种情况下我们必须有一个能通过终端查看网站的命令行浏览工具。为了实现这个目的，我们打算安装名为 ‘links’ 的著名工具。# yum install links Links: 命令行 Web 浏览器请查看我们的文章 用 links 工具命令行浏览 Web 了解用 links 工具浏览 web 的方法和例子。6. 安装 Apache HTTP 服务器不管你因为什么原因使用服务器，大部分情况下你都需要一个 HTTP 服务器运行网站、多媒体、用户端脚本和很多其它的东西。# yum install httpd 安装 Apache 服务器如果你想更改 Apache HTTP 服务器的默认端口号(80)为其它端口，你需要编辑配置文件 ‘/etc/httpd/conf/httpd.conf’ 并查找以下面开始的行：LISTEN 80 把端口号 ‘80’ 改为其它任何端口(例如 3221)，保存并退出。更改 Apache 端口增加刚才分配给 Apache 的端口通过防火墙，然后重新加载防火墙。允许 http 服务通过防火墙(永久)。# firewall-cmd –add-service=http 允许 3221 号端口通过防火墙(永久)。# firewall-cmd –permanent –add-port=3221/tcp 重新加载防火墙。# firewall-cmd –reload （LCTT 译注：关于 firewall 的进一步使用，请参照：http://www.linux.cn/article-4425-1.html ）完成上面的所有事情之后，是时候重启 Apache HTTP 服务器了，然后新的端口号才能生效。# systemctl restart httpd.service 现在添加 Apache 服务到系统层使其随系统自动启动。# systemctl start httpd.service # systemctl enable httpd.service （LCTT 译注：关于 systemctl 的进一步使用，请参照：http://www.linux.cn/article-3719-1.html ）如下图所示，用 links 命令行工具 验证 Apache HTTP 服务器。# links 127.0.0.1 验证 Apache 状态via: http://www.tecmint.com/things-to-do-after-minimal-rhel-centos-7-installation/作者：Avishek Kumar 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
PXE服务器——预启动执行环境——指示客户端计算机直接从网络接口启动、运行或安装操作系统，而不需要烧录CD/DVD或使用某个物理介质，它可以减轻你网络中多台机器同时安装Linux发行版的工作。在RHEL/CentOS 7中设置PXE网络启动前置阅读CentOS 7最小化安装步骤RHEL 7最小化安装步骤在RHEL/CentOS 7中配置静态IP地址移除RHEL/CentOS 7中不要的服务安装NTP服务器以设置RHEL/CentOS 7的正确时间本文将介绍如何在配置有本地镜像安装仓库的RHEL/CentOS 7 64位上安装并配置一台PXE服务器，仓库源由CentOS 7 DVD 的 ISO镜像提供，并由DNSMASQ服务器提供解析。该机器提供了DNS和DHCP服务，用于网络启动引导的Syslinux包，TFTP-Server——提供了可通过网络使用小文件传输协议下载的可启动镜像，以及提供本地挂载DVD镜像的VSFTPD服务器——它将扮演官方RHEL/CentOS 7镜像安装仓库的角色，安装器将从这里提取所需的包。步骤1： 安装并配置DNSMASQ服务器1. 不需要提醒你来确定你的网络接口卡吧，除非你的服务器上有多个网络接口卡，该网卡必须配置有静态IP地址，该IP地址必须处于你要提供PXE服务的网段中。那么，在你配置好静态IP地址后，更新你的系统并进行其它初始设置。请使用以下命令来安装DNSMASQ进程。# yum install dnsmasq 安装dnsmasq包2. DNSMASQ的默认的主配置文件位于/etc目录中，虽然不需要任何说明就能看懂，但编辑起来确实相当困难的，即使有很详细的说明性注释。首先，确保你备份了该文件，以便你需要在以后对它进行恢复。然后使用你爱用的文本编辑器创建一个新的空配置文件，命令如下。# mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup # nano /etc/dnsmasq.conf 3. 现在，复制并粘贴以下配置到dnsmasq.conf文件中，并确保根据如下说明进行相应修改，以适应你的网络设置。interface=eno16777736,lo #bind-interfaces domain=centos7.lan # DHCP range-leases dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h # PXE dhcp-boot=pxelinux.0,pxeserver,192.168.1.20 # Gateway dhcp-option=3,192.168.1.1 # DNS dhcp-option=6,92.168.1.1, 8.8.8.8 server=8.8.4.4 # Broadcast Address dhcp-option=28,10.0.0.255 # NTP Server dhcp-option=42,0.0.0.0 pxe-prompt="Press F8 for menu.", 60 pxe-service=x86PC, "Install CentOS 7 from network server 192.168.1.20", pxelinux enable-tftp tftp-root=/var/lib/tftpboot Dnsmasq配置你需要修改的声明有以下这些：interface – 服务器需要监听并提供服务的网络接口。bind-interfaces – 取消注释来绑定到该网络接口domain – 替换为你的域名。dhcp-range – 替换为你的网络掩码定义的网段。dhcp-boot – 替换该IP地址为你的网络接口IP地址。dhcp-option=3,192.168.1.1 – 替换该IP地址为你的网段的网关。dhcp-option=6,92.168.1.1 – 替换该IP地址为你的DNS服务器IP——可以定义多个IP地址。server=8.8.4.4 – 这里放置DNS转发服务器IP地址。dhcp-option=28,10.0.0.255 – 替换该IP地址为网络广播地址——可选项。dhcp-option=42,0.0.0.0 – 这里放置网络时钟服务器——可选项（0.0.0.0地址表示参考自身）。pxe-prompt – 保持默认——按F8进入菜单，60秒等待时间。pxe=service – 使用x86PC作为32为/64位架构，并在字符串引述中输入菜单描述提示。其它类型值可以是：PC98,IAEFI,Alpha,Arcx86,IntelLeanClient,IA32EFI,BCEFI,XscaleEFI和X86-64EFI。enable-tftp – 启用内建TFTP服务器。tftp-root – 使用/var/lib/tftpboot——所有网络启动文件所在位置。其它和配置文件相关的高级选项，请参阅dnsmasq手册。步骤2： 安装SYSLINUX启动加载器4. 在编辑并保存DNSMASQ主配置文件后，我们将继续安装Syslinux PXE启动加载器，命令如下。# yum install syslinux 安装Syslinux启动加载器5. PXE启动加载器文件位于/usr/share/syslinux系统绝对路径下，你可以通过列出该路径下的内容来查看。该步骤不是必须的，但你可能需要知道该路径，因为在下一步中，我们将拷贝该路径下的所有内容到TFTP服务器路径下。# ls /usr/share/syslinux Syslinux文件步骤3： 安装TFTP-Server并加入SYSLINUX加载启动器6. 现在，让我们进入下一步，安装TFTP-Server。然后，拷贝上述位置中Syslinux包提供所有启动加载器文件到/var/lib/tftpboot路径中，命令如下。# yum install tftp-server # cp -r /usr/share/syslinux/* /var/lib/tftpboot 安装TFTP服务器步骤4： 设置PXE服务器配置文件7. 通常，PXE服务器从位于pxelinux.cfg文件夹中一组指定的文件中读取配置（首先是GUID文件，接下来是MAC文件，最后是Default文件），该文件夹必须位于DNSMASQ主配置文件中tftp-root声明指定的目录中。创建需要的目录pxelinux.cfg，然后添加default文件到该目录中，命令如下。# mkdir /var/lib/tftpboot/pxelinux.cfg # touch /var/lib/tftpboot/pxelinux.cfg/default 8. 现在，该来编辑PXE服务器配置文件了，为它添加合理的Linux发行版安装选项。请注意，该文件中使用的所有路径必须是相对于/var/lib/tftpboot目录的。下面，你可以看到配置文件的样例，你可以使用该模板，但请修改安装镜像（kernel和initrd文件）、协议（FTP、HTTP、HTTPS、NFS）以及映射你网络安装源仓库和路径的IP地址等参数。# nano /var/lib/tftpboot/pxelinux.cfg/default 添加以下整个节录到文件中。default menu.c32 prompt 0 timeout 300 ONTIMEOUT local menu title ########## PXE Boot Menu ########## label 1 menu label ^1) Install CentOS 7 x64 with Local Repo kernel centos7/vmlinuz append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount label 2 menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo kernel centos7/vmlinuz append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp label 3 menu label ^3) Install CentOS 7 x64 with Local Repo using VNC kernel centos7/vmlinuz append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password label 4 menu label ^4) Boot from local drive 配置PXE服务器正如你所见，CentOS 7启动镜像（kernel和initrd）位于名为centos7的目录，该目录是/var/lib/tftpboot目录的相对路径（其系统绝对路径为/var/lib/tftpboot/centos7），而安装器仓库位于可通过FTP协议访问的192.168.1.20/pub网络位置中——在本例中，这些仓库位于本地，因为IP地址和PXE服务器地址相同。同时，菜单label 3指定客户端安装应该通过VNC从一个远程位置实现（这里替换VNC密码为一个健壮的密码），如果你在一台没有输入输出的客户端上安装，菜单label 2指定了作为安装源的一个CentOS 7官方互联网镜像（这种情况要求客户端通过DHCP和NAT连接到互联网）。重要：正如你在上述配置中所看到的，我们使用了CentOS 7进行演示，但是你也可以定义一个 RHEL 7镜像。而下面的整个的说明和配置都只是基于CentOS 7的，所以在选发行版时要注意一下。步骤5： 添加CentOS 7启动镜像到PXE服务器9. 对于此步骤，需要用到CentOS的kernel和initrd文件。要获取这些文件，你需要CentOS 7 DVD ISO镜像。所以，去下载CentOS DVD镜像吧，然后把它（刻录成光盘）放入你的DVD驱动器并挂载镜像到/mnt路径，命令见下面。使用DVD，而不是最小化CD镜像的原因在于，在后面我们将使用该DVD的内容为FTP源创建本地安装器仓库。# mount -o loop /dev/cdrom /mnt # ls /mnt 挂载CentOS DVD如果你的机器没有DVD驱动器，你也可以使用wget或curl工具从CentOS镜像站下载CentOS 7 DVD ISO到本地并挂载。# wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso # mount -o loop /path/to/centos-dvd.iso /mnt 10. 在DVD内容可供使用后，创建centos7目录并将CentOS 7 的可启动的 kernel和initrd映像文件从DVD挂载位置拷贝到centos7文件夹。# mkdir /var/lib/tftpboot/centos7 # cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7 # cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7 拷贝CentOS可启动文件使用该方法的原因在于，今后你可能会在/var/lib/tftpboot路径中创建新的独立的目录，并添加其它Linux发行版到PXE菜单中，你就不会将整个目录结构弄得一团糟了。步骤6： 创建CentOS 7本地镜像安装源11. 虽然你可以通过多种协议设置安装源镜像，如HTTP、HTTPS或NFS，但对于本指南，我选择了使用FTP协议。因为通过vsftpd，你可以很便捷地配置，而且它也很稳定。接下里，安装vsftpd进程，然后复制所有DVD挂载目录中的内容到vsftpd默认服务器路径下（/var/ftp/pub）——这会花费一些时间，这取决于你的系统资源。然后为该路径设置可读权限，命令如下。# yum install vsftpd # cp -r /mnt/* /var/ftp/pub/ # chmod -R 755 /var/ftp/pub 安装Vsftpd服务器拷贝Files到FTP路径设置FTP路径的权限步骤7： 在系统范围内启动并启用进程12. 既然PXE服务器配置已经完成，那么就来启动DNSMASQ和VSFTPD服务器吧。验证它们的状况并在系统上启用，以便让这些服务在每次系统重启后都能随系统启动，命令如下。# systemctl start dnsmasq # systemctl status dnsmasq # systemctl start vsftpd # systemctl status vsftpd # systemctl enable dnsmasq # systemctl enable vsftpd 启动Dnsmasq服务启动Vsftpd服务步骤8： 打开防火墙并测试FTP安装源13. 要获取需要在防火墙打开的端口列表，以便让客户机可访问并从PXE服务器启动，请运行netstat命令并根据dnsmasq和vsftpd监听列表添加CentOS 7防火墙规则。# netstat -tulpn # firewall-cmd --add-service=ftp --permanent ## Port 21 # firewall-cmd --add-service=dns --permanent ## Port 53 # firewall-cmd --add-service=dhcp --permanent ## Port 67 # firewall-cmd --add-port=69/udp --permanent ## Port for TFTP # firewall-cmd --add-port=4011/udp --permanent ## Port for ProxyDHCP # firewall-cmd --reload ## Apply rules 检查监听端口在防火墙上开启端口14. 要测试FTP安装源网络路径，请在本地或另外一台计算机上打开浏览器（lynx就可以做此事），然后输入你架设有FTP服务的PXE服务器的IP地址，并在填入的URL后面加上/pub网络位置，结果应该和截图中看到的一样。ftp://192.168.1.20/pub 通过浏览器访问FTP文件15. 要解决PXE服务器最终的配置或其它信息产生的问题，请在live模式下诊断，命令如下：# tailf /var/log/messages 检查PXE日志错误16. 最后，最终所需的步骤就是卸载CentOS 7 DVD，并移除物理介质。# umount /mnt 步骤9： 配置客户端从网络启动17. 现在，你的客户端可以通过它们的系统BIOS或在BIOS开机自检时按指定键来配置网络启动作为首选启动设备，具体方法见主板说明手册。为了选择网络启动，在第一次PXE提示符出现时，请按下F8键进入到PXE安装界面，然后敲回车键继续进入PXE菜单。PXE网络启动PXE网络OS启动18. 一旦你进入PXE菜单，请选择你的CentOS 7安装类型，敲回车键继续安装过程，就像你使用本地启动介质安装一样。请记住这一点，使用菜单中的变体2需要激活目标客户端上的互联网连接。在下面的屏幕截图中，你可以通过VNC看到远程安装的实例。PXE菜单通过VNC远程安装Linux远程安装CentOS以上是CentOS 7上配置最小化PXE服务器的所有内容。在我的本系列下一篇文章中，我将讨论其它PXE服务器配置过程中的其它问题，如怎样使用Kickstart文件来配置自动化安装CentOS 7，以及添加其它Linux发行版到PXE菜单——Ubuntu Server和Debian 7。via: http://www.tecmint.com/install-pxe-network-boot-server-in-centos-7/作者：Matei Cezar 译者：GOLinux 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
Linux有问必答：如何在CentOS7上改变网络接口名
提问: 在CentOS7，我想将分配的网络接口名更改为别的名字。有什么合适的方法来来重命名CentOS或RHEL7的网络接口？传统上，Linux的网络接口被枚举为eth[0123...]，但这些名称并不一定符合实际的硬件插槽，PCI位置，USB接口数量等，这引入了一个不可预知的命名问题（例如，由于不确定的设备探测行为），这可能会导致不同的网络配置错误（例如，由无意的接口改名引起的禁止接口或者防火墙旁路）。基于MAC地址的udev规则在虚拟化的环境中并不有用，这里的MAC地址如端口数量一样无常。CentOS/RHEL6引入了一致和可预测的网络设备命名网络接口的方法。这些特性可以唯一地确定网络接口的名称以使定位和区分设备更容易，并且在这样一种方式下，无论是否重启机器、过了多少时间、或者改变硬件，其名字都是持久不变的。然而，这种命名规则并不是默认在CentOS/RHEL6上开启。从CentOS/RHEL7起，这种可预见的命名规则变成了默认。根据这一规则，接口名称被自动基于固件，拓扑结构和位置信息来确定。现在，即使添加或移除网络设备，接口名称仍然保持固定，而无需重新枚举，和坏掉的硬件可以无缝替换。* 基于接口类型的两个字母前缀: * en -- 以太网 * sl -- 串行线路IP (slip) * wl -- wlan * ww -- wwan * * 名字类型: * b<number> -- BCMA总线和新书 * ccw<name> -- CCW总线组名 * o<index> -- 车载设备的索引号 * s<slot>[f<function>][d<dev_port>] -- 热插拔插槽索引号 * x<MAC> -- MAC 地址 * [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>] * -- PCI 位置 * [P<domain>]p<bus>s<slot>[f<function>][u<port>][..]1[i<interface>] * -- USB端口号链 新的命名方案的一个小的缺点是接口名称相比传统名称有点难以阅读。例如，你可能会发现像enp0s3名字。再者，你再也无法来控制接口名了。如果由于某种原因，你喜欢旧的方式，并希望能够选择任意名称分配给CentOS/ RHEL7的设备，你需要重写默认的可预测的命名规则，定义基于MAC地址udev规则。下面是如何在CentOS或RHEL7命名网络接口。首先，让我们来禁用该可预测命名规则。对于这一点，你可以在启动时传递“net.ifnames=0”的内核参数。这是通过编辑/etc/default/grub并加入“net.ifnames=0”到GRUBCMDLINELINUX变量来实现的。然后运行这条命令来重新生成GRUB配置并更新内核参数。$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg 接下来，编辑（或创建）一个udev的网络命名规则文件（/etc/udev/rules.d/70-persistent-net.rules），并添加下面一行。更换成你自己的MAC地址（08:00:27:a9:7a:e1）和接口（sushi）。 $ sudo vi /etc/udev/rules.d/70-persistent-net.rules SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:a9:7a:e1", ATTR{type}=="1", KERNEL=="eth*", NAME="sushi" 最后，重启电脑并验证新的接口名。请注意，配置重命名后的接口仍然是你的责任。如果网络配置（例如，IPv4设置，防火墙规则）是基于旧名称（变更前）的，则需要更新的网络配置以反映更改的名称。via: http://ask.xmodulo.com/change-network-interface-name-centos7.html译者：geekpi 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
在CentOS 7上安装Vmware 10.0.3，我来介绍下我的经验。通常，这个版本是不能在CentOS 7工作的，因为它只能运行在比较低的内核版本3.10上。首先，以正常方式下载并安装（没有问题）。唯一的问题是在后来运行vmware程序的时候。如何修复？1 – 进入 /usr/lib/vmware/modules/source。cd /usr/lib/vmware/modules/source 2 – 解压 vmnet.tar.tar -xvf vmnet.tar 3 – 进入 vmnet-only 目录。cd vmnet-only 4 – 编辑filter.c文件。vi filter.c 在206和259行，替换以下字符串：#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0) 为：#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0) 保存并退出。5 – 回到先前文件夹。cd ../ 6 – 再次压缩文件夹。tar -uvf vmnet.tar vmnet-only 7 – 移除旧目录。rm -fr vmnet-only 8 – 启动vmware并体验。via: http://www.unixmen.com/install-vmware-10-centos-7/作者： M.el Khamlichi 译者：GOLinux 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出