RHCE 系列（十）：在 RHEL/CentOS 7 中设置 NTP（网络时间协议）服务器
网络时间协议 - NTP - 是运行在传输层 123 号端口的 UDP 协议，它允许计算机通过网络同步准确时间。随着时间的流逝，计算机内部时间会出现漂移，这会导致时间不一致问题，尤其是对于服务器和客户端日志文件，或者你想要复制服务器的资源或数据库。在 CentOS 和 RHEL 7 上安装 NTP 服务器前置要求：CentOS 7 安装过程RHEL 安装过程额外要求：注册并启用 RHEL 7 更新订阅在 CentOS/RHCE 7 上配置静态 IP在 CentOS/RHEL 7 上停用并移除不需要的服务这篇指南会告诉你如何在 CentOS/RHCE 7 上安装和配置 NTP 服务器，并使用 NTP 公共时间服务器池 （ NTP Public Pool Time Servers ） 列表中和你服务器地理位置最近的可用节点中同步时间。步骤一：安装和配置 NTP 守护进程1、 官方 CentOS /RHEL 7 库默认提供 NTP 服务器安装包，可以通过使用下面的命令安装。# yum install ntp 安装 NTP 服务器2、 安装完服务器之后，首先到官方 NTP 公共时间服务器池 （ NTP Public Pool Time Servers ） ，选择你服务器物理位置所在的洲，然后搜索你的国家位置，然后会出现 NTP 服务器列表。NTP 服务器池3、 然后打开编辑 NTP 守护进程的主配置文件，注释掉来自 pool.ntp.org 项目的公共服务器默认列表，并用类似下面截图中提供给你所在国家的列表替换。（LCTT 译注：中国使用 0.cn.pool.ntp.org 等）配置 NTP 服务器4、 下一步，你需要允许来自你的网络的客户端和这台服务器同步时间。为了做到这点，添加下面一行到 NTP 配置文件，其中 restrict 语句控制允许哪些网络查询和同步时间 - 请根据需要替换网络 IP。restrict 192.168.1.0 netmask 255.255.255.0 nomodify notrap nomodify notrap 语句意味着不允许你的客户端配置服务器或者作为同步时间的节点。5、 如果你需要用于错误处理的额外信息，以防你的 NTP 守护进程出现问题，添加一个 logfile 语句，用于记录所有 NTP 服务器问题到一个指定的日志文件。logfile /var/log/ntp.log 启用 NTP 日志6、 在你编辑完所有上面解释的配置并保存关闭 ntp.conf 文件后，你最终的配置看起来像下面的截图。NTP 服务器配置步骤二：添加防火墙规则并启动 NTP 守护进程7、 NTP 服务使用 OSI 传输层（第四层）的 123 号 UDP 端口。它是为了避免可变延迟的影响所特别设计的。要在 RHEL/CentOS 7 中开放这个端口，可以对 Firewalld 服务使用下面的命令。# firewall-cmd --add-service=ntp --permanent # firewall-cmd --reload 在 Firewall 中开放 NTP 端口8、 你在防火墙中开放了 123 号端口之后，启动 NTP 服务器并确保系统范围内可用。用下面的命令管理服务。# systemctl start ntpd # systemctl enable ntpd # systemctl status ntpd 启动 NTP 服务步骤三：验证服务器时间同步9、 启动了 NTP 守护进程后，用几分钟等服务器和它的服务器池列表同步时间，然后运行下面的命令验证 NTP 节点同步状态和你的系统时间。# ntpq -p # date -R 验证 NTP 时间同步10、 如果你想查询或者和你选择的服务器池同步，你可以使用 ntpdate 命令，后面跟服务器名或服务器地址，类似下面建议的命令行示例。# ntpdate -q 0.ro.pool.ntp.org 1.ro.pool.ntp.org 同步 NTP 时间步骤四：设置 Windows NTP 客户端11、 如果你的 windows 机器不是域名控制器的一部分，你可以配置 Windows 和你的 NTP服务器同步时间。在任务栏右边 -> 时间 -> 更改日期和时间设置 -> 网络时间标签 -> 更改设置 -> 和一个网络时间服务器检查同步 -> 在 Server 空格输入服务器 IP 或 FQDN -> 马上更新 -> OK。和 NTP 同步 Windows 时间就是这些。在你的网络中配置一个本地 NTP 服务器能确保你所有的服务器和客户端有相同的时间设置，以防出现网络连接失败，并且它们彼此都相互同步。via: http://www.tecmint.com/install-ntp-server-in-centos/作者：Matei Cezar 译者：ictlyh 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
RHCE 系列（九）：如何使用无客户端配置 Postfix 邮件服务器（SMTP）
尽管现在有很多在线联系方式，电子邮件仍然是一个人传递信息给远在世界尽头或办公室里坐在我们旁边的另一个人的有效方式。下面的图描述了电子邮件从发送者发出直到信息到达接收者收件箱的传递过程。电子邮件如何工作要实现这一切，背后发生了好多事情。为了使电子邮件信息从一个客户端应用程序（例如 Thunderbird、Outlook，或者 web 邮件服务，例如 Gmail 或 Yahoo 邮件）投递到一个邮件服务器，并从其投递到目标服务器并最终到目标接收人，每个服务器上都必须有 SMTP（简单邮件传输协议）服务。这就是为什么我们要在这篇博文中介绍如何在 RHEL 7 中设置 SMTP 服务器，从本地用户发送的邮件（甚至发送到另外一个本地用户）被 转发 （ forward ） 到一个中央邮件服务器以便于访问。在这个考试的要求中这称为 无客户端 （ null-client ） 安装。在我们的测试环境中将包括一个 起源 （ originating ） 邮件服务器和一个中央服务器或 中继主机 （ relayhost ） 。起源邮件服务器： （主机名: box1.mydomain.com / IP: 192.168.0.18）中央邮件服务器： （主机名: mail.mydomain.com / IP: 192.168.0.20）我们在两台机器中都会使用你熟知的 /etc/hosts 文件做名字解析：192.168.0.18 box1.mydomain.com box1 192.168.0.20 mail.mydomain.com mail 安装 Postfix 和防火墙/SELinux 注意事项首先，我们需要（在两台机器上）：1、 安装 Postfix：# yum update && yum install postfix 2、 启动服务并启用开机自动启动：# systemctl start postfix # systemctl enable postfix 3、 允许邮件流量通过防火墙：# firewall-cmd --permanent --add-service=smtp # firewall-cmd --add-service=smtp 在防火墙中开通邮件服务器端口4、 在 box1.mydomain.com 配置 PostfixPostfix 的主要配置文件是 /etc/postfix/main.cf。这个文件本身是一个很大的文本文件，因为其中包含了解释程序设置的用途的注释。为了简洁，我们只显示了需要编辑的行（没错，在起源服务器中你需要保留 mydestination 为空；否则邮件会被存储到本地，而不是我们实际想要发往的中央邮件服务器）：myhostname = box1.mydomain.com mydomain = mydomain.com myorigin = $mydomain inet_interfaces = loopback-only mydestination = relayhost = 192.168.0.20 5、 在 mail.mydomain.com 配置 Postfixmyhostname = mail.mydomain.com mydomain = mydomain.com myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks = 192.168.0.0/24, 127.0.0.0/8 如果还没有设置，还要设置相关的 SELinux 布尔值永久为真：# setsebool -P allow_postfix_local_write_mail_spool on 设置 Postfix SELinux 权限上面的 SELinux 布尔值会允许中央服务器上的 Postfix 可以写入 邮件池 （ mail spool ） 。6、 在两台机子上重启服务以使更改生效：# systemctl restart postfix 如果 Postfix 没有正确启动，你可以使用下面的命令进行错误处理。# systemctl -l status postfix # journalctl -xn # postconf -n 测试 Postfix 邮件服务要测试邮件服务器，你可以使用任何 邮件用户代理 （ Mail User Agent，MUA ） ，例如 mail 或 mutt。由于我个人喜欢 mutt，我会在 box1 中使用它发送邮件给用户 tecmint，并把现有文件（mailbody.txt）作为信息内容：# mutt -s "Part 9-RHCE series" tecmint@mydomain.com < mailbody.txt 测试 Postfix 邮件服务器现在到中央邮件服务器（mail.mydomain.com）以 tecmint 用户登录，并检查是否收到了邮件：# su – tecmint # mail 检查 Postfix 邮件服务器发送如果没有收到邮件，检查 root 用户的邮件池看看是否有警告或者错误提示。你也许需要使用 nmap 命令确保两台服务器运行了 SMTP 服务，并在中央邮件服务器中打开了 25 号端口：# nmap -PN 192.168.0.20 Postfix 邮件服务器错误处理总结像本文中展示的设置邮件服务器和中继主机是每个系统管理员必须拥有的重要技能，也代表了理解和安装更复杂情景的基础，例如一个邮件服务器托管有多个邮件账户（甚至成百上千）的域名。（请注意这种类型的设置需要有 DNS 服务器，这不在本文的介绍范围），但你可以参照下面的文章设置 DNS 服务器：在 CentOS/RHEL 07 上配置仅缓存的 DNS 服务器最后，我强烈建议你熟悉 Postfix 的配置文件（main.cf）和这个程序的帮助手册。如果有任何疑问，别犹豫，使用下面的评论框或者我们的论坛 Linuxsay.com 告诉我们吧，你会从世界各地的 Linux 高手中获得几乎是及时的帮助。via: http://www.tecmint.com/setup-postfix-mail-server-smtp-using-null-client-on-centos/作者：Gabriel Cánepa 译者：ictlyh 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
RHCE 系列（八）：在 Apache 上使用网络安全服务（NSS）实现 HTTPS
如果你是一个负责维护和确保 web 服务器安全的系统管理员，你需要花费最大的精力确保服务器中处理和通过的数据任何时候都受到保护。RHCE 系列：第八部分 - 使用网络安全服务（NSS）为 Apache 通过 TLS 实现 HTTPS为了在客户端和服务器之间提供更安全的连接，作为 HTTP 和 SSL（ Secure Sockets Layer （ 安全套接层 ） ）或者最近称为 TLS（ Transport Layer Security （ 传输层安全 ） ）的组合，产生了 HTTPS 协议。由于一些严重的安全漏洞，SSL 已经被更健壮的 TLS 替代。由于这个原因，在这篇文章中我们会解析如何通过 TLS 实现你 web 服务器和客户端之间的安全连接。这里假设你已经安装并配置好了 Apache web 服务器。如果还没有，在进入下一步之前请阅读下面站点中的文章。在 RHEL/CentOS 7 上安装 LAMP（Linux，MySQL/MariaDB，Apache 和 PHP）安装 OpenSSL 和一些工具包首先，确保正在运行 Apache 并且允许 http 和 https 通过防火墙：# systemctl start http # systemctl enable http # firewall-cmd --permanent –-add-service=http # firewall-cmd --permanent –-add-service=https 然后安装一些必需的软件包：# yum update && yum install openssl mod_nss crypto-utils 重要：请注意如果你想使用 OpenSSL 库而不是 NSS（ Network Security Service （ 网络安全服务 ） ）实现 TLS，你可以在上面的命令中用 mod\_ssl 替换 mod\_nss（使用哪一个取决于你，但在这篇文章中我们会使用 NSS，因为它更加安全，比如说，它支持最新的加密标准，比如 PKCS #11）。如果你使用 mod\_nss，首先要卸载 mod\_ssl，反之如此。# yum remove mod_ssl 配置 NSS（网络安全服务）安装完 mod\_nss 之后，会创建默认的配置文件 /etc/httpd/conf.d/nss.conf。你应该确保所有 Listen 和 VirualHost 指令都指向 443 号端口（HTTPS 默认端口）：nss.conf – 配置文件Listen 443 VirtualHost _default_:443 然后重启 Apache 并检查是否加载了 mod\_nss 模块：# apachectl restart # httpd -M | grep nss 检查 Apache 是否加载 mod\_nss 模块下一步，在 /etc/httpd/conf.d/nss.conf 配置文件中做以下更改：1、 指定 NSS 数据库目录。你可以使用默认的目录或者新建一个。本文中我们使用默认的：NSSCertificateDatabase /etc/httpd/alias 2、 通过保存密码到数据库目录中的 /etc/httpd/nss-db-password.conf 文件来避免每次系统启动时要手动输入密码：NSSPassPhraseDialog file:/etc/httpd/nss-db-password.conf 其中 /etc/httpd/nss-db-password.conf 只包含以下一行，其中 mypassword 是后面你为 NSS 数据库设置的密码：internal:mypassword 另外，要设置该文件的权限和属主为 0640 和 root:apache：# chmod 640 /etc/httpd/nss-db-password.conf # chgrp apache /etc/httpd/nss-db-password.conf 3、 由于 POODLE SSLv3 漏洞，红帽建议停用 SSL 和 TLSv1.0 之前所有版本的 TLS（更多信息可以查看这里）。确保 NSSProtocol 指令的每个实例都类似下面一样（如果你没有托管其它虚拟主机，很可能只有一条）：NSSProtocol TLSv1.0,TLSv1.1 4、 由于这是一个自签名证书，Apache 会拒绝重启，并不会识别为有效发行人。由于这个原因，对于这种特殊情况我们还需要添加：NSSEnforceValidCerts off 5、 虽然并不是严格要求，为 NSS 数据库设置一个密码同样很重要：# certutil -W -d /etc/httpd/alias 为 NSS 数据库设置密码创建一个 Apache SSL 自签名证书下一步，我们会创建一个自签名证书来让我们的客户机可以识别服务器（请注意这个方法对于生产环境并不是最好的选择；对于生产环境你应该考虑购买第三方可信证书机构验证的证书，例如 DigiCert）。我们用 genkey 命令为 box1 创建有效期为 365 天的 NSS 兼容证书。完成这一步后：# genkey --nss --days 365 box1 选择 Next：创建 Apache SSL 密钥你可以使用默认的密钥大小（2048），然后再次选择 Next：选择 Apache SSL 密钥大小等待系统生成随机比特：生成随机密钥比特为了加快速度，会提示你在控制台输入随机字符，正如下面的截图所示。请注意当没有从键盘接收到输入时进度条是如何停止的。然后，会让你选择：是否发送验证签名请求（CSR）到一个验证机构（CA）：选择 No，因为这是一个自签名证书。为证书输入信息。最后，会提示你输入之前给 NSS 证书设置的密码：# genkey --nss --days 365 box1 Apache NSS 证书密码需要的话，你可以用以下命令列出现有的证书：# certutil –L –d /etc/httpd/alias 列出 Apache NSS 证书然后通过名字删除（如果你真的需要删除的，用你自己的证书名称替换 box1）：# certutil -d /etc/httpd/alias -D -n "box1" 如果你需要继续进行的话，请继续阅读。测试 Apache SSL HTTPS 连接最后，是时候测试到我们服务器的安全连接了。当你用浏览器打开 https://，你会看到著名的信息 “This connection is untrusted”：检查 Apache SSL 连接在上面的情况中，你可以点击 添加例外 （ Add Exception ） 然后 确认安全例外 （ Confirm Security Exception ） - 但先不要这么做。让我们首先来看看证书看它的信息是否和我们之前输入的相符（如截图所示）。要做到这点，点击上面的 视图 （ View... ） -> 详情 （ Details ） 选项卡，当你从列表中选择发行人你应该看到这个：确认 Apache SSL 证书详情现在你可以继续，确认例外（限于此次或永久），然后会通过 https 把你带到你 web 服务器的 DocumentRoot 目录，在这里你可以使用你浏览器自带的开发者工具检查连接详情：在火狐浏览器中，你可以通过在屏幕中右击，然后从上下文菜单中选择 检查元素 （ Inspect Element ） 启动开发者工具，尤其要看“ 网络 （ Network ） ”选项卡：检查 Apache HTTPS 连接请注意这和之前显示的在验证过程中输入的信息一致。还有一种方式通过使用命令行工具测试连接：左图（测试 SSLv3）：# openssl s_client -connect localhost:443 -ssl3 右图（测试 TLS）：# openssl s_client -connect localhost:443 -tls1 测试 Apache SSL 和 TLS 连接参考上面的截图了解更详细信息。总结我想你已经知道，使用 HTTPS 会增加会在你站点中输入个人信息的访客的信任（从用户名和密码到任何商业/银行账户信息）。在那种情况下，你会希望获得由可信验证机构签名的证书，正如我们之前解释的（步骤和设置需要启用例外的证书的步骤相同，发送 CSR 到 CA 然后获得返回的签名证书）；否则，就像我们的例子中一样使用自签名证书即可。要获取更多关于使用 NSS 的详情，可以参考关于 mod-nss 的在线帮助。如果你有任何疑问或评论，请告诉我们。via: http://www.tecmint.com/create-apache-https-self-signed-certificate-using-nss/作者：Gabriel Cánepa 译者：ictlyh 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
RHCE 系列（七）：在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器
在本系列的前一篇文章，我们回顾了如何在可能包括多种类型操作系统的网络上配置 Samba 共享。现在，如果你需要为一组类 Unix 客户端配置文件共享，很自然的你会想到网络文件系统，或简称 NFS。RHCE 系列：第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服务器在这篇文章中我们会介绍配置基于 Kerberos 身份验证的 NFS 共享的整个流程。假设你已经配置好了一个 NFS 服务器和一个客户端。如果还没有，可以参考 安装和配置 NFS 服务器 - 它列出了需要安装的依赖软件包并解释了在进行下一步之前如何在服务器上进行初始化配置。另外，你可能还需要配置 SELinux 和 firewalld 以允许通过 NFS 进行文件共享。下面的例子假设你的 NFS 共享目录在 box2 的 /nfs：# semanage fcontext -a -t public_content_rw_t "/nfs(/.*)?" # restorecon -R /nfs # setsebool -P nfs_export_all_rw on # setsebool -P nfs_export_all_ro on （其中 -P 标记指示重启持久有效）。最后，别忘了：创建 NFS 组并配置 NFS 共享目录1、 新建一个名为 nfs 的组并给它添加用户 nfsnobody，然后更改 /nfs 目录的权限为 0770，组属主为 nfs。于是，nfsnobody（对应请求用户）在共享目录有写的权限，你就不需要在 /etc/exports 文件中使用 norootsquash（LCTT 译注：设为 root\_squash 意味着在访问 NFS 服务器上的文件时，客户机上的 root 用户不会被当作 root 用户来对待）。# groupadd nfs # usermod -a -G nfs nfsnobody # chmod 0770 /nfs # chgrp nfs /nfs 2、 像下面那样更改 export 文件（/etc/exports）只允许从 box1 使用 Kerberos 安全验证的访问（sec=krb5）。注意：anongid 的值设置为之前新建的组 nfs 的 GID：exports – 添加 NFS 共享/nfs box1(rw,sec=krb5,anongid=1004) 3、 再次 exprot（-r）所有（-a）NFS 共享。为输出添加详情（-v）是个好主意，因为它提供了发生错误时解决问题的有用信息：# exportfs -arv 4、 重启并启用 NFS 服务器以及相关服务。注意你不需要启动 nfs-lock 和 nfs-idmapd，因为系统启动时其它服务会自动启动它们：# systemctl restart rpcbind nfs-server nfs-lock nfs-idmap # systemctl enable rpcbind nfs-server 测试环境和其它前提要求在这篇指南中我们使用下面的测试环境：客户端机器 [box1: 192.168.0.18]NFS / Kerberos 服务器 [box2: 192.168.0.20] （也称为密钥分发中心，简称 KDC）。注意：Kerberos 服务是至关重要的认证方案。正如你看到的，为了简便，NFS 服务器和 KDC 在同一台机器上，当然如果你有更多可用机器你也可以把它们安装在不同的机器上。两台机器都在 mydomain.com 域。最后同样重要的是，Kerberos 要求客户端和服务器中至少有一个域名解析的基本方式和网络时间协议服务，因为 Kerberos 身份验证的安全一部分基于时间戳。为了配置域名解析，我们在客户端和服务器中编辑 /etc/hosts 文件：host 文件 – 为域添加 DNS192.168.0.18 box1.mydomain.com box1 192.168.0.20 box2.mydomain.com box2 在 RHEL 7 中，chrony 是用于 NTP 同步的默认软件：# yum install chrony # systemctl start chronyd # systemctl enable chronyd 为了确保 chrony 确实在和时间服务器同步你系统的时间，你可能要输入下面的命令两到三次，确保时间偏差尽可能接近 0：# chronyc tracking 用 Chrony 同步服务器时间安装和配置 Kerberos要设置 KDC，首先在客户端和服务器安装下面的软件包（客户端不需要 server 软件包）：# yum update && yum install krb5-server krb5-workstation pam_krb5 安装完成后，编辑配置文件（/etc/krb5.conf 和 /var/kerberos/krb5kdc/kadm5.acl），像下面那样用 mydomain.com 替换所有 example.com。下一步，确保 Kerberos 能功过防火墙并启动/启用相关服务。重要：客户端也必须启动和启用 nfs-secure：# firewall-cmd --permanent --add-service=kerberos # systemctl start krb5kdc kadmin nfs-secure # systemctl enable krb5kdc kadmin nfs-secure 现在创建 Kerberos 数据库（请注意这可能会需要一点时间，因为它会和你的系统进行多次交互）。为了加速这个过程，我打开了另一个终端并运行了 ping -f localhost 30 到 45 秒）：# kdb5_util create -s 创建 Kerberos 数据库下一步，使用 kadmin.local 工具为 root 创建管理权限：# kadmin.local # addprinc root/admin 添加 Kerberos 服务器到数据库：# addprinc -randkey host/box2.mydomain.com 在客户端（box1）和服务器（box2）上对 NFS 服务同样操作。请注意下面的截图中在退出前我忘了在 box1 上进行操作：# addprinc -randkey nfs/box2.mydomain.com # addprinc -randkey nfs/box1.mydomain.com 输入 quit 和回车键退出：添加 Kerberos 到 NFS 服务器为 root/admin 获取和缓存 票据授权票据 （ ticket-granting ticket ） ：# kinit root/admin # klist 缓存 Kerberos真正使用 Kerberos 之前的最后一步是保存被授权使用 Kerberos 身份验证的规则到一个密钥表文件（在服务器中）：# kdadmin.local # ktadd host/box2.mydomain.com # ktadd nfs/box2.mydomain.com # ktadd nfs/box1.mydomain.com 最后，挂载共享目录并进行一个写测试：# mount -t nfs4 -o sec=krb5 box2:/nfs /mnt # echo "Hello from Tecmint.com" > /mnt/greeting.txt 挂载 NFS 共享现在让我们卸载共享，在客户端中重命名密钥表文件（模拟它不存在）然后试着再次挂载共享目录：# umount /mnt # mv /etc/krb5.keytab /etc/krb5.keytab.orig 挂载/卸载 Kerberos NFS 共享现在你可以使用基于 Kerberos 身份验证的 NFS 共享了。总结在这篇文章中我们介绍了如何设置带 Kerberos 身份验证的 NFS。和我们在这篇指南中介绍的相比，该主题还有很多相关内容，可以在 Kerberos 手册 查看，另外至少可以说 Kerberos 有一点棘手，如果你在测试或实现中遇到了任何问题或需要帮助，别犹豫在下面的评论框中告诉我们吧。via: http://www.tecmint.com/setting-up-nfs-server-with-kerberos-based-authentication/作者：Gabriel Cánepa 译者：ictlyh 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
RHCE 系列（五）：如何在 RHEL 7 中管理系统日志（配置、轮换以及导入到数据库）
为了确保你的 RHEL 7 系统安全，你需要通过查看日志文件来监控系统中发生的所有活动。这样，你就可以检测到任何不正常或有潜在破坏的活动并进行系统故障排除或者其它恰当的操作。RHCE 考试 - 第五部分：使用 Rsyslog 和 Logrotate 管理系统日志在 RHEL 7 中，rsyslogd 守护进程负责系统日志，它从 /etc/rsyslog.conf（该文件指定所有系统日志的默认路径）和 /etc/rsyslog.d 中的所有文件（如果有的话）读取配置信息。Rsyslogd 配置快速浏览一下 rsyslog.conf 会是一个好的开端。该文件分为 3 个主要部分：模块（rsyslong 按照模块化设计），全局指令（用于设置 rsyslogd 守护进程的全局属性），以及规则。正如你可能猜想的，最后一个部分指示记录或显示什么以及在哪里保存（也称为 选择子 （ selector ） ），这也是这篇文章关注的重点。rsyslog.conf 中典型的一行如下所示：Rsyslogd 配置在上面的图片中，我们可以看到一个选择子包括了一个或多个用分号分隔的 “设备:优先级” （ Facility:Priority ） 对，其中设备描述了消息类型（参考 RFC 3164 4.1.1 章节，查看 rsyslog 可用的完整设备列表），优先级指示它的严重性，这可能是以下几种之一：debuginfonoticewarningerrcritalertemerg尽管 none 并不是一个优先级，不过它意味着指定设备没有任何优先级。注意：给定一个优先级表示该优先级以及之上的消息都应该记录到日志中。因此，上面例子中的行指示 rsyslogd 守护进程记录所有优先级为 info 以及以上（不管是什么设备）的除了属于 mail、authpriv、以及 cron 服务（不考虑来自这些设备的消息）的消息到 /var/log/messages。你也可以使用逗号将多个设备分为一组，对同组中的设备使用相同的优先级。例如下面这行：*.info;mail.none;authpriv.none;cron.none /var/log/messages 也可以这样写：*.info;mail,authpriv,cron.none /var/log/messages 换句话说，mail、authpriv 以及 cron 被分为一组，并使用关键字 none。创建自定义日志文件要把所有的守护进程消息记录到 /var/log/tecmint.log，我们需要在 rsyslog.conf 或者 /etc/rsyslog.d 目录中的单独文件（这样易于管理）添加下面一行：daemon.* /var/log/tecmint.log 然后重启守护进程（注意服务名称不以 d 结尾）：# systemctl restart rsyslog 在随便重启两个守护进程之前和之后查看下自定义日志的内容：创建自定义日志文件作为一个自学练习，我建议你重点关注设备和优先级，添加额外的消息到已有的日志文件或者像上面那样创建一个新的日志文件。使用 Logrotate 轮换日志为了防止日志文件无限制增长，logrotate 工具用于轮换、压缩、移除或者通过电子邮件发送日志，从而减轻管理会产生大量日志文件系统的困难。（译者注：日志轮换（rotate）是系统管理中归档每天产生的日志文件的自动化过程）Logrotate 作为一个 cron 任务（/etc/cron.daily/logrotate）每天运行，并从 /etc/logrotate.conf 和 /etc/logrotate.d 中的文件（如果有的话）读取配置信息。对于 rsyslog，即使你可以在主文件中为指定服务包含设置，为每个服务创建单独的配置文件能帮助你更好地组织设置。让我们来看一个典型的 logrotate.conf：Logrotate 配置在上面的例子中，logrotate 会为 /var/log/wtmp 进行以下操作：尝试每个月轮换一次，但至少文件要大于 1MB，然后用 0664 权限、用户 root、组 utmp 创建一个新的日志文件。下一步只保存一个归档日志，正如轮换指令指定的：每月 Logrotate 日志让我们再来看看 /etc/logrotate.d/httpd 中的另一个例子：轮换 Apache 日志文件你可以在 logrotate 的 man 手册（man logrotate 和 man logrotate.conf）中阅读更多有关它的设置。为了方便你的阅读，本文还提供了两篇文章的 PDF 格式。作为一个系统工程师，很可能由你决定多久按照什么格式保存一次日志，这取决于你是否有一个单独的分区/逻辑卷给 /var。否则，你真的要考虑删除旧日志以节省存储空间。另一方面，根据你公司和客户内部的政策，为了以后的安全审核，你可能必须要保留多个日志。保存日志到数据库当然检查日志可能是一个很繁琐的工作（即使有类似 grep 工具和正则表达式的帮助）。因为这个原因，rsyslog 允许我们把它们导出到数据库（OTB 支持的关系数据库管理系统包括 MySQL、MariaDB、PostgreSQL 和 Oracle 等）。指南的这部分假设你已经在要管理日志的 RHEL 7 上安装了 MariaDB 服务器和客户端：# yum update && yum install mariadb mariadb-server mariadb-client rsyslog-mysql # systemctl enable mariadb && systemctl start mariadb 然后使用 mysql_secure_installation 工具为 root 用户设置密码以及其它安全考量：保证 MySQL 数据库安全注意：如果你不想用 MariaDB root 用户插入日志消息到数据库，你也可以配置用另一个用户账户。如何实现的介绍已经超出了本文的范围，但在 MariaDB 知识 中有详细解析。为了简单在这篇指南中我们会使用 root 账户。下一步，从 GitHub 下载 createDB.sql 脚本并导入到你的数据库服务器：# mysql -u root -p < createDB.sql 保存服务器日志到数据库最后，添加下面的行到 /etc/rsyslog.conf：$ModLoad ommysql $ActionOmmysqlServerPort 3306 *.* :ommysql:localhost,Syslog,root,YourPasswordHere 重启 rsyslog 和数据库服务器：# systemctl restart rsyslog # systemctl restart mariadb 使用 SQL 语法查询日志现在执行一些会改变日志的操作（例如停止和启动服务），然后登录到你的数据库服务器并使用标准的 SQL 命令显示和查询日志：USE Syslog; SELECT ReceivedAt, Message FROM SystemEvents; 在数据库中查询日志总结在这篇文章中我们介绍了如何设置系统日志，如果轮换日志以及为了简化查询如何重定向消息到数据库。我们希望这些技巧能对你准备 RHCE 考试 和日常工作有所帮助。正如往常，非常欢迎你的反馈。用下面的表单和我们联系吧。via: http://www.tecmint.com/manage-linux-system-logs-using-rsyslogd-and-logrotate/作者：Gabriel Cánepa 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
之前我听说高效的系统管理员的一个特点是懒惰。一开始看起来很矛盾，但作者接下来解释了其中的原因：RHCE 系列：第四部分 - 自动化 Linux 系统维护任务如果一个系统管理员花费大量的时间解决问题以及做重复的工作，你就应该怀疑他这么做是否正确。换句话说，一个高效的系统管理员/工程师应该制定一个计划使得其尽量花费少的时间去做重复的工作，以及通过使用本系列中第三部分 使用 Linux 工具集监视系统活动报告 介绍的工具来预见问题。因此，尽管看起来他/她没有做很多的工作，但那是因为 shell 脚本帮助完成了他的/她的大部分任务，这也就是本章我们将要探讨的东西。什么是 shell 脚本？简单的说，shell 脚本就是一个由 shell 一步一步执行的程序，而 shell 是在 Linux 内核和最终用户之间提供接口的另一个程序。默认情况下，RHEL 7 中用户使用的 shell 是 bash（/bin/bash）。如果你想知道详细的信息和历史背景，你可以查看这个维基页面。关于这个 shell 提供的众多功能的介绍，可以查看 man 手册，也可以从 （Bash 命令）处下载 PDF 格式。除此之外，假设你已经熟悉 Linux 命令（否则我强烈建议你首先看一下 Tecmint.com 中的文章 从新手到系统管理员指南 ）。现在让我们开始吧。写一个脚本显示系统信息为了方便，首先让我们新建一个目录用于保存我们的 shell 脚本：# mkdir scripts # cd scripts 然后用喜欢的文本编辑器打开新的文本文件 system_info.sh。我们首先在头部插入一些注释以及一些命令：#!/bin/bash # RHCE 系列第四部分示例脚本 # 该脚本会返回以下这些系统信息： # -主机名称: echo -e "\e[31;43m***** HOSTNAME INFORMATION *****\e[0m" hostnamectl echo "" # -文件系统磁盘空间使用： echo -e "\e[31;43m***** FILE SYSTEM DISK SPACE USAGE *****\e[0m" df -h echo "" # -系统空闲和使用中的内存： echo -e "\e[31;43m ***** FREE AND USED MEMORY *****\e[0m" free echo "" # -系统启动时间： echo -e "\e[31;43m***** SYSTEM UPTIME AND LOAD *****\e[0m" uptime echo "" # -登录的用户： echo -e "\e[31;43m***** CURRENTLY LOGGED-IN USERS *****\e[0m" who echo "" # -使用内存最多的 5 个进程 echo -e "\e[31;43m***** TOP 5 MEMORY-CONSUMING PROCESSES *****\e[0m" ps -eo %mem,%cpu,comm --sort=-%mem | head -n 6 echo "" echo -e "\e[1;32mDone.\e[0m" 然后，给脚本可执行权限：# chmod +x system_info.sh 运行脚本：./system_info.sh 注意为了更好的可视化效果各部分标题都用颜色显示：服务器监视 Shell 脚本颜色功能是由以下命令提供的：echo -e "\e[COLOR1;COLOR2m<YOUR TEXT HERE>\e[0m" 其中 COLOR1 和 COLOR2 是前景色和背景色（Arch Linux Wiki 有更多的信息和选项解释）， 是你想用颜色显示的字符串。使任务自动化你想使其自动化的任务可能因情况而不同。因此，我们不可能在一篇文章中覆盖所有可能的场景，但是我们会介绍使用 shell 脚本可以使其自动化的三种典型任务：1) 更新本地文件数据库， 2) 查找（或者删除）有 777 权限的文件， 以及 3) 文件系统使用超过定义的阀值时发出警告。让我们在脚本目录中新建一个名为 auto_tasks.sh 的文件并添加以下内容：#!/bin/bash # 自动化任务示例脚本： # -更新本地文件数据库： echo -e "\e[4;32mUPDATING LOCAL FILE DATABASE\e[0m" updatedb if [ $? == 0 ]; then echo "The local file database was updated correctly." else echo "The local file database was not updated correctly." fi echo "" # -查找 和/或 删除有 777 权限的文件。 echo -e "\e[4;32mLOOKING FOR FILES WITH 777 PERMISSIONS\e[0m" # Enable either option (comment out the other line), but not both. # Option 1: Delete files without prompting for confirmation. Assumes GNU version of find. #find -type f -perm 0777 -delete # Option 2: Ask for confirmation before deleting files. More portable across systems. find -type f -perm 0777 -exec rm -i {} +; echo "" # -文件系统使用率超过定义的阀值时发出警告 echo -e "\e[4;32mCHECKING FILE SYSTEM USAGE\e[0m" THRESHOLD=30 while read line; do # This variable stores the file system path as a string FILESYSTEM=$(echo $line | awk '{print $1}') # This variable stores the use percentage (XX%) PERCENTAGE=$(echo $line | awk '{print $5}') # Use percentage without the % sign. USAGE=${PERCENTAGE%?} if [ $USAGE -gt $THRESHOLD ]; then echo "The remaining available space in $FILESYSTEM is critically low. Used: $PERCENTAGE" fi done < <(df -h --total | grep -vi filesystem) 请注意该脚本最后一行两个 < 符号之间有个空格。查找 777 权限文件的 Shell 脚本使用 Cron想更进一步提高效率，你不会想只是坐在你的电脑前手动执行这些脚本。相反，你会使用 cron 来调度这些任务周期性地执行，并把结果通过邮件发动给预先指定的接收者，或者将它们保存到使用 web 浏览器可以查看的文件中。下面的脚本（filesystem\_usage.sh）会运行有名的 df -h 命令，格式化输出到 HTML 表格并保存到 report.html 文件中：#!/bin/bash # 演示使用 shell 脚本创建 HTML 报告的示例脚本 # Web directory WEB_DIR=/var/www/html # A little CSS and table layout to make the report look a little nicer echo " " > $WEB_DIR/report.html # View hostname and insert it at the top of the html body HOST=$(hostname) echo "Filesystem usage for host $HOST Last updated: $(date) Filesystem Size Use % " >> $WEB_DIR/report.html # Read the output of df -h line by line while read line; do echo " " >> $WEB_DIR/report.html echo $line | awk '{print $1}' >> $WEB_DIR/report.html echo " " >> $WEB_DIR/report.html echo $line | awk '{print $2}' >> $WEB_DIR/report.html echo " " >> $WEB_DIR/report.html echo $line | awk '{print $5}' >> $WEB_DIR/report.html echo " " >> $WEB_DIR/report.html done < <(df -h | grep -vi filesystem) echo " " >> $WEB_DIR/report.html 在我们的 RHEL 7 服务器（192.168.0.18）中，看起来像下面这样：服务器监视报告你可以添加任何你想要的信息到那个报告中。添加下面的 crontab 条目在每天下午的 1：30 运行该脚本：30 13 * * * /root/scripts/filesystem_usage.sh 总结你很可能想起各种其他想要自动化的任务；正如你看到的，使用 shell 脚本能极大的简化任务。如果你觉得这篇文章对你有所帮助就告诉我们吧，别犹豫在下面的表格中添加你自己的想法或评论。via: http://www.tecmint.com/using-shell-script-to-automate-linux-system-maintenance-tasks/作者：Gabriel Cánepa 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
RHCE 系列（三）：如何使用 Linux 工具集生成和发送系统活动报告
作为一个系统工程师，你经常需要生成一些显示系统资源利用率的报告，以便确保：1）正在合理利用系统，2）防止出现瓶颈，3）确保可扩展性，以及其它原因。RHCE 第三部分：监视 Linux 性能活动报告除了著名的用于检测磁盘、内存和 CPU 使用率的原生 Linux 工具 - 可以给出很多例子，红帽企业版 Linux 7 还提供了另外两个可以为你的报告更多数据的工具套装：sysstat 和 dstat。在这篇文章中，我们会介绍两者，但首先让我们来回顾一下传统工具的使用。原生 Linux 工具使用 df，你可以报告磁盘空间以及文件系统的 inode 使用情况。你需要监视这两者，因为缺少磁盘空间会阻止你保存更多文件（甚至会导致系统崩溃），就像耗尽 inode 意味着你不能将文件链接到对应的数据结构，从而导致同样的结果：你不能将那些文件保存到磁盘中。# df -h [以人类可读形式显示输出] # df -h --total [生成总计] 检查 Linux 总的磁盘使用# df -i [显示文件系统的 inode 数目] # df -i --total [生成总计] 检查 Linux 总的 inode 数目用 du，你可以估计文件、目录或文件系统的文件空间使用。举个例子，让我们来看看 /home 目录使用了多少空间，它包括了所有用户的个人文件。第一条命令会返回整个 /home 目录当前使用的所有空间，第二条命令会显示子目录的分类列表：# du -sch /home # du -sch /home/* 检查 Linux 目录磁盘大小别错过了：检查 Linux 磁盘空间使用的 12 个 ‘df’ 命令例子查看文件/目录磁盘使用的 10 个 ‘du’ 命令例子另一个你工具集中不容忽视的工具就是 vmstat。它允许你查看进程、CPU 和 内存使用、磁盘活动以及其它的大概信息。如果不带参数运行，vmstat 会返回自从上一次启动后的平均信息。尽管你可能以这种方式使用该命令有一段时间了，再看一些系统使用率的例子会有更多帮助，例如在例子中定义了时间间隔。例如# vmstat 5 10 会每个 5 秒返回 10 个事例：检查 Linux 系统性能正如你从上面图片看到的，vmstat 的输出分为很多列：proc(process)、memory、swap、io、system、和 CPU。每个字段的意义可以在 vmstat man 手册的 FIELD DESCRIPTION 部分找到。在哪里 vmstat 可以派上用场呢？让我们在 yum 升级之前和升级时检查系统行为：# vmstat -a 1 5 Vmstat Linux 性能监视请注意当磁盘上的文件被更改时，活跃内存的数量增加，写到磁盘的块数目（bo）和属于用户进程的 CPU 时间（us）也是这样。或者直接保存一个大文件到磁盘时（由 dsync 标志引发）：# vmstat -a 1 5 # dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync Vmstat Linux 磁盘性能监视在这个例子中，我们可以看到大量的块被写入到磁盘（bo），这正如预期的那样，同时 CPU 处理任务之前等待 IO 操作完成的时间（wa）也增加了。别错过: Vmstat – Linux 性能监视其它 Linux 工具正如本文介绍部分提到的，这里有其它的工具你可以用来检测系统状态和利用率（不仅红帽，其它主流发行版的官方支持库中也提供了这些工具）。sysstat 软件包包含以下工具：sar （收集、报告、或者保存系统活动信息）。sadf （以多种方式显示 sar 收集的数据）。mpstat （报告处理器相关的统计信息）。iostat （报告 CPU 统计信息和设备以及分区的 IO统计信息）。pidstat （报告 Linux 任务统计信息）。nfsiostat （报告 NFS 的输出/输出统计信息）。cifsiostat （报告 CIFS 统计信息）sa1 （收集并保存二进制数据到系统活动每日数据文件中）。sa2 （在 /var/log/sa 目录写入每日报告）。dstat 比这些工具所提供的功能更多一些，并且提供了更多的计数器和更大的灵活性。你可以通过运行 yum info sysstat 或者 yum info dstat 找到每个工具完整的介绍，或者安装完成后分别查看每个工具的 man 手册。安装两个软件包：# yum update && yum install sysstat dstat sysstat 主要的配置文件是 /etc/sysconfig/sysstat。你可以在该文件中找到下面的参数：# How long to keep log files (in days). # If value is greater than 28, then log files are kept in # multiple directories, one for each month. HISTORY=28 # Compress (using gzip or bzip2) sa and sar files older than (in days): COMPRESSAFTER=31 # Parameters for the system activity data collector (see sadc manual page) # which are used for the generation of log files. SADC_OPTIONS="-S DISK" # Compression program to use. ZIP="bzip2" sysstat 安装完成后，/etc/cron.d/sysstat 中会添加和启用两个 cron 任务。第一个任务每 10 分钟运行系统活动计数工具，并在 /var/log/sa/saXX 中保存报告，其中 XX 是该月的一天。因此，/var/log/sa/sa05 会包括该月份第 5 天所有的系统活动报告。这里假设我们在上面的配置文件中对 HISTORY 变量使用默认的值：*/10 * * * * root /usr/lib64/sa/sa1 1 1 第二个任务在每天夜间 11：53 生成每日进程计数总结并把它保存到 /var/log/sa/sarXX 文件，其中 XX 和之前例子中的含义相同：53 23 * * * root /usr/lib64/sa/sa2 -A 例如，你可能想要输出该月份第 6 天从上午 9:30 到晚上 5：30 的系统统计信息到一个 LibreOffice Calc 或 Microsoft Excel 可以查看的 .csv 文件（这样就可以让你创建表格和图片了）：# sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv 你可以在上面的 sadf 命令中用 -j 标记代替 -d 以 JSON 格式输出系统统计信息，这当你在 web 应用中使用这些数据的时候非常有用。Linux 系统统计信息最后，让我们看看 dstat 提供什么功能。请注意如果不带参数运行，dstat 默认使用 -cdngy（表示 CPU、磁盘、网络、内存页、和系统统计信息），并每秒添加一行（可以在任何时候用 Ctrl + C 中断执行）：# dstat Linux 磁盘统计检测要输出统计信息到 .csv 文件，可以用 -output 标记后面跟一个文件名称。让我们来看看在 LibreOffice Calc 中该文件看起来是怎样的：检测 Linux 统计信息输出为了更多的阅读体验，我强烈建议你查看 dstat 和 sysstat 的 pdf 格式 man 手册。你会找到其它能帮助你创建自定义的详细系统活动报告的选项。别错过: Sysstat – Linux 的使用活动检测工具总结在该指南中我们解释了如何使用 Linux 原生工具以及 RHEL 7 提供的特定工具来生成系统使用报告。在某种情况下，你可能像依赖最好的朋友那样依赖这些报告。你很可能使用过这篇指南中我们没有介绍到的其它工具。如果真是这样的话，用下面的表单和社区中的其他成员一起分享吧，也可以是任何其它的建议/疑问/或者评论。我们期待你的回复。via: http://www.tecmint.com/linux-performance-monitoring-and-file-system-statistics-reports/作者：Gabriel Cánepa 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
RHCE 系列（二）：如何进行包过滤、网络地址转换和设置内核运行时参数
正如第一部分（“设置静态网络路由”）提到的，在这篇文章（RHCE 系列第二部分），我们首先介绍红帽企业版 Linux 7（RHEL）中包过滤和网络地址转换（NAT）的原理，然后再介绍在某些条件发生变化或者需要变动时设置运行时内核参数以改变运行时内核行为。RHCE 第二部分：网络包过滤RHEL 7 中的网络包过滤当我们讨论数据包过滤的时候，我们指防火墙读取每个试图通过它的数据包的包头所进行的处理。然后，根据系统管理员之前定义的规则，通过采取所要求的动作过滤数据包。正如你可能知道的，从 RHEL 7 开始，管理防火墙的默认服务是 firewalld。类似 iptables，它和 Linux 内核的 netfilter 模块交互以便检查和操作网络数据包。但不像 iptables，Firewalld 的更新可以立即生效，而不用中断活跃的连接 - 你甚至不需要重启服务。Firewalld 的另一个优势是它允许我们定义基于预配置服务名称的规则（之后会详细介绍）。在第一部分，我们用了下面的场景：静态路由网络示意图然而，你应该记得，由于还没有介绍包过滤，为了简化例子，我们停用了2号路由器的防火墙。现在让我们来看看如何使接收的数据包发送到目的地的特定服务或端口。首先，让我们添加一条永久规则允许从 enp0s3 (192.168.0.19) 到 enp0s8 (10.0.0.18) 的入站流量：# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT 上面的命令会把规则保存到 /etc/firewalld/direct.xml 中：# cat /etc/firewalld/direct.xml 检查 Firewalld 保存的规则然后启用规则使其立即生效：# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT 现在你可以从 RHEL 7 中通过 telnet 到 web 服务器并再次运行 tcpdump 监视两台机器之间的 TCP 流量，这次2号路由器已经启用了防火墙。# telnet 10.0.0.20 80 # tcpdump -qnnvvv -i enp0s3 host 10.0.0.20 如果你想只允许从 192.168.0.18 到 web 服务器（80 号端口）的连接而阻塞 192.168.0.0/24 网络中的其它来源呢？在 web 服务器的防火墙中添加以下规则：# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' --permanent # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' --permanent 现在你可以从 192.168.0.18 和 192.168.0.0/24 中的其它机器发送到 web 服务器的 HTTP 请求。第一种情况连接会成功完成，但第二种情况最终会超时。任何下面的命令可以验证这个结果：# telnet 10.0.0.20 80 # wget 10.0.0.20 我强烈建议你看看 Fedora Project Wiki 中的 Firewalld Rich Language 文档更详细地了解关于富规则的内容。RHEL 7 中的网络地址转换（NAT）网络地址转换（NAT）是为专用网络中的一组计算机（也可能是其中的一台）分配一个独立的公共 IP 地址的过程。这样，在内部网络中仍然可以用它们自己的私有 IP 地址来区别，但外部“看来”它们是一样的。另外，网络地址转换使得内部网络中的计算机发送请求到外部资源（例如因特网），然后只有源系统能接收到对应的响应成为可能。现在让我们考虑下面的场景：网络地址转换在2号路由器中，我们会把 enp0s3 接口移动到外部区域（external），enp0s8 到内部区域（external），伪装（masquerading）或者说 NAT 默认是启用的：# firewall-cmd --list-all --zone=external # firewall-cmd --change-interface=enp0s3 --zone=external # firewall-cmd --change-interface=enp0s3 --zone=external --permanent # firewall-cmd --change-interface=enp0s8 --zone=internal # firewall-cmd --change-interface=enp0s8 --zone=internal --permanent 对于我们当前的设置，内部区域（internal） - 以及和它一起启用的任何东西都是默认区域：# firewall-cmd --set-default-zone=internal 下一步，让我们重载防火墙规则并保持状态信息：# firewall-cmd --reload 最后，在 web 服务器中添加2号路由器为默认网关：# ip route add default via 10.0.0.18 现在你会发现在 web 服务器中你可以 ping 1号路由器和外部网站（例如 tecmint.com）：# ping -c 2 192.168.0.1 # ping -c 2 tecmint.com 验证网络路由在 RHEL 7 中设置内核运行时参数在 Linux 中，允许你更改、启用以及停用内核运行时参数，RHEL 也不例外。当操作条件发生变化时，/proc/sys 接口（sysctl）允许你实时设置运行时参数改变系统行为，而不需太多麻烦。为了实现这个目的，会用 shell 内建的 echo 写 /proc/sys/<category> 中的文件，其中 <category> 一般是以下目录中的一个：dev: 连接到机器中的特定设备的参数。fs: 文件系统配置（例如 quotas 和 inodes）。kernel: 内核配置。net: 网络配置。vm: 内核的虚拟内存的使用。要显示所有当前可用值的列表，运行# sysctl -a | less 在第一部分中，我们通过以下命令改变了 net.ipv4.ip_forward 参数的值以允许 Linux 机器作为一个路由器。# echo 1 > /proc/sys/net/ipv4/ip_forward 另一个你可能想要设置的运行时参数是 kernel.sysrq，它会启用你键盘上的 Sysrq 键，以使系统更好的运行一些底层功能，例如如果由于某些原因冻结了后重启系统：# echo 1 > /proc/sys/kernel/sysrq 要显示特定参数的值，可以按照下面方式使用 sysctl：# sysctl <parameter.name> 例如，# sysctl net.ipv4.ip_forward # sysctl kernel.sysrq 有些参数，例如上面提到的某个，只需要一个值，而其它一些（例如 fs.inode-state）要求多个值：查看内核参数不管什么情况下，做任何更改之前你都需要阅读内核文档。请注意系统重启后这些设置会丢失。要使这些更改永久生效，我们需要添加内容到 /etc/sysctl.d 目录的 .conf 文件，像下面这样：# echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/10-forward.conf （其中数字 10 表示相对同一个目录中其它文件的处理顺序）。并用下面命令启用更改：# sysctl -p /etc/sysctl.d/10-forward.conf 总结在这篇指南中我们解释了基本的包过滤、网络地址变换和在运行的系统中设置内核运行时参数并使重启后能持久化。我希望这些信息能对你有用，如往常一样，我们期望收到你的回复！别犹豫，在下面的表单中和我们分享你的疑问、评论和建议吧。via: http://www.tecmint.com/perform-packet-filtering-network-address-translation-and-set-kernel-runtime-parameters-in-rhel/作者：Gabriel Cánepa 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
RHCE 系列（一）：如何设置和测试静态网络路由
RHCE（Red Hat Certified Engineer，红帽认证工程师）是红帽公司的一个认证，红帽向企业社区贡献开源操作系统和软件，同时它还给公司提供训练、支持和咨询服务。RHCE 考试准备指南这个 RHCE 是一个绩效考试（代号 EX300），面向那些拥有更多的技能、知识和能力的红帽企业版 Linux（RHEL）系统高级系统管理员。重要： 获得RHCE 认证前需要先有 红帽认证系统管理员认证 （ Red Hat Certified System Administrator，RHCSA ） 。以下是基于红帽企业版 Linux 7 考试的考试目标，我们会在该 RHCE 系列中分别介绍：第一部分：如何在 RHEL 7 中设置和测试静态路由第二部分：如何进行包过滤、网络地址转换和设置内核运行时参数第三部分：如何使用 Linux 工具集产生和发送系统活动报告第四部分：使用 Shell 脚本进行自动化系统维护第五部分：如何在 RHEL 7 中管理系统日志（配置、轮换和导入到数据库）第六部分：设置 Samba 服务器并配置 FirewallD 和 SELinux 支持客户端文件共享第七部分：设置 NFS 服务器及基于 Kerberos 认证的客户端第八部分：在 Apache 上使用网络安全服务（NSS）通过 TLS 提供 HTTPS 服务第九部分：如何使用无客户端配置来设置 Postfix 邮件服务器（SMTP）第十部分：在 RHEL/CentOS 7 中设置网络时间协议（NTP）服务器第十一部分：如何配置一个只缓存的 DNS 服务器在你的国家查看考试费用和注册考试，可以到 RHCE 认证 网页。在 RHCE 的第一和第二部分，我们会介绍一些基本的但典型的情形，也就是静态路由原理、包过滤和网络地址转换。RHCE 系列第一部分：设置和测试网络静态路由请注意我们不会作深入的介绍，但以这种方式组织内容能帮助你开始第一步并继续后面的内容。红帽企业版 Linux 7 中的静态路由现代网络的一个奇迹就是有很多可用设备能将一组计算机连接起来，不管是在一个房间里少量的机器还是在一栋建筑物、城市、国家或者大洲之间的多台机器。然而，为了能在任意情形下有效的实现这些，需要对网络包进行路由，或者换句话说，它们从源到目的地的路径需要按照某种规则。静态路由是为网络包指定一个路由的过程，而不是使用网络设备提供的默认网关。除非另有指定静态路由，网络包会被导向默认网关；而静态路由则基于预定义标准所定义的其它路径，例如数据包目的地。我们在该篇指南中会考虑以下场景。我们有一台 RHEL 7，连接到 1号路由器 [192.168.0.1] 以访问因特网以及 192.168.0.0/24 中的其它机器。第二个路由器（2号路由器）有两个网卡：enp0s3 同样连接到路由器1号以访问互联网，及与 RHEL 7 和同一网络中的其它机器通讯，另外一个网卡（enp0s8）用于授权访问内部服务所在的 10.0.0.0/24 网络，例如 web 或数据库服务器。该场景可以用下面的示意图表示：静态路由网络示意图在这篇文章中我们会集中介绍在 RHEL 7 中设置路由表，确保它能通过1号路由器访问因特网以及通过2号路由器访问内部网络。在 RHEL 7 中，你可以通过命令行用 ip 命令 配置和显示设备和路由。这些更改能在运行的系统中及时生效，但由于重启后不会保存，我们会使用 /etc/sysconfig/network-scripts 目录下的 ifcfg-enp0sX 和 route-enp0sX 文件永久保存我们的配置。首先，让我们打印出当前的路由表：# ip route show 检查当前路由表从上面的输出中，我们可以得出以下结论：默认网关的 IP 是 192.168.0.1，可以通过网卡 enp0s3 访问。系统启动的时候，它启用了到 169.254.0.0/16 的 zeroconf 路由（只是在本例中）。也就是说，如果机器设置通过 DHCP 获取 IP 地址，但是由于某些原因失败了，它就会在上述网段中自动分配到一个地址。这一行的意思是，该路由会允许我们通过 enp0s3 和其它没有从 DHCP 服务器中成功获得 IP 地址的机器机器相连接。最后，但同样重要的是，我们也可以通过 IP 地址是 192.168.0.18 的 enp0s3 与 192.168.0.0/24 网络中的其它机器连接。下面是这样的配置中你需要做的一些典型任务。除非另有说明，下面的任务都在2号路由器上进行。确保正确安装了所有网卡：# ip link show 如果有某块网卡停用了，启动它：# ip link set dev enp0s8 up 分配 10.0.0.0/24 网络中的一个 IP 地址给它：# ip addr add 10.0.0.17 dev enp0s8 噢！我们分配了一个错误的 IP 地址。我们需要删除之前分配的那个并添加正确的地址（10.0.0.18）：# ip addr del 10.0.0.17 dev enp0s8 # ip addr add 10.0.0.18 dev enp0s8 现在，请注意你只能添加一个通过网关到目标网络的路由，网关需要可以访问到。因为这个原因，我们需要在 192.168.0.0/24 范围中给 enp0s3 分配一个 IP 地址，这样我们的 RHEL 7 才能连接到它：# ip addr add 192.168.0.19 dev enp0s3 最后，我们需要启用包转发：# echo "1" > /proc/sys/net/ipv4/ip_forward 并停用/取消防火墙（从现在开始，直到下一篇文章中我们介绍了包过滤）：# systemctl stop firewalld # systemctl disable firewalld 回到我们的 RHEL 7（192.168.0.18），让我们配置一个通过 192.168.0.19（2号路由器的 enp0s3）到 10.0.0.0/24 的路由：# ip route add 10.0.0.0/24 via 192.168.0.19 之后，路由表看起来像下面这样：# ip route show 确认网络路由表同样，在你尝试连接的 10.0.0.0/24 网络的机器中添加对应的路由：# ip route add 192.168.0.0/24 via 10.0.0.18 你可以使用 ping 测试基本连接：在 RHEL 7 中运行：# ping -c 4 10.0.0.20 10.0.0.20 是 10.0.0.0/24 网络中一个 web 服务器的 IP 地址。在 web 服务器（10.0.0.20）中运行# ping -c 192.168.0.18 192.168.0.18 也就是我们的 RHEL 7 机器的 IP 地址。另外，我们还可以使用 tcpdump（需要通过 yum install tcpdump 安装）来检查我们 RHEL 7 和 10.0.0.20 中 web 服务器之间的 TCP 双向通信。首先在第一台机器中启用日志：# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20 在同一个系统上的另一个终端，让我们通过 telnet 连接到 web 服务器的 80 号端口（假设 Apache 正在监听该端口；否则应在下面命令中使用正确的监听端口）：# telnet 10.0.0.20 80 tcpdump 日志看起来像下面这样：检查服务器之间的网络连接通过查看我们 RHEL 7（192.168.0.18）和 web 服务器（10.0.0.20）之间的双向通信，可以看出已经正确地初始化了连接。请注意你重启系统后会丢失这些更改。如果你想把它们永久保存下来，你需要在我们运行上面的命令的相同系统中编辑（如果不存在的话就创建）以下的文件。尽管对于我们的测试例子不是严格要求，你需要知道 /etc/sysconfig/network 包含了一些系统范围的网络参数。一个典型的 /etc/sysconfig/network 看起来类似下面这样：# Enable networking on this system? NETWORKING=yes # Hostname. Should match the value in /etc/hostname HOSTNAME=yourhostnamehere # Default gateway GATEWAY=XXX.XXX.XXX.XXX # Device used to connect to default gateway. Replace X with the appropriate number. GATEWAYDEV=enp0sX 当需要为每个网卡设置特定的变量和值时（正如我们在2号路由器上面做的），你需要编辑 /etc/sysconfig/network-scripts/ifcfg-enp0s3 和 /etc/sysconfig/network-scripts/ifcfg-enp0s8 文件。下面是我们的例子，TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.0.19 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 NAME=enp0s3 ONBOOT=yes 以及TYPE=Ethernet BOOTPROTO=static IPADDR=10.0.0.18 NETMASK=255.255.255.0 GATEWAY=10.0.0.1 NAME=enp0s8 ONBOOT=yes 其分别对应 enp0s3 和 enp0s8。由于要为我们的客户端机器(192.168.0.18)进行路由，我们需要编辑 /etc/sysconfig/network-scripts/route-enp0s3：10.0.0.0/24 via 192.168.0.19 dev enp0s3 现在reboot你的系统，就可以在路由表中看到该路由规则。总结在这篇文章中我们介绍了红帽企业版 Linux 7 的静态路由。尽管场景可能不同，这里介绍的例子说明了所需的原理以及进行该任务的步骤。结束之前，我还建议你看一下 Linux 文档项目 （ The Linux Documentation Project ） 网站上的《 安全加固和优化 Linux （ Securing and Optimizing Linux ） 》的第四章，以了解这里介绍主题的更详细内容。在下篇文章中我们会介绍数据包过滤和网络地址转换，结束 RHCE 验证需要的网络基本技巧。如往常一样，我们期望听到你的回复，用下面的表格留下你的疑问、评论和建议吧。via: http://www.tecmint.com/how-to-setup-and-configure-static-network-routing-in-rhel/作者：Gabriel Cánepa 译者：ictlyh 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出
大家好，今天我们将会认识一些非常有价值的全球认可的Linux认证。Linux认证是不同的Linux专业机构在全球范围内进行的认证程序。Linux认证可以让Linux专业人才可以在服务器领域或者相关公司等等这些地方更容易获得Linux相关的工作。Linux认证评估一个人在Linux的各个领域里的专业程度。有很多不错的Linux专业机构提供不同的Linux认证。但是，在公司谋取一份工作时全球仅有少数被非常认可的Linux认证含金量很高，这些工作包括管理服务器，虚拟化，安装系统与软件，配置程序，应用支持和其他Linux操作系统相关的东西。随着全球使用Linux操作系统的服务器的增长，拉动了对于Linux专业人才的需求。为了更好的证明Linux专业技术水平，在全球看来，更好的、著名的认证总是有着更高的优先级。这里是一些全球认可的Linux认证，我们接下来将会一一谈到。1. CompTIA Linxu+CompTIA Linux+ 是LPI（Linux Professional Institute，Linux专业委员会）主办的一个Linux认证，在全世界范围内提供培训。其提供的Linux相关知识，可以用于从事一大批Linux相关专业的工作，如Linux管理员、高级网络管理员、系统管理员、Linux数据库管理员和Web管理员。如果任何人想从事安装和维护Linux操作系统，该课程会帮助他达到认证要求，并且通过提供对Linux系统更宽阔的认识，能够为通过考试做好准备。LPI的CompTIA Linux+认证的主要目的就是，提供给证书持有者足够扎实的，关于安装软件、操作、管理和设备排障的知识。我们可以付出一定的费用、时间和努力，完成CompTIA Linux+，同时获得三个业内认可的证书：LPI LPIC-1和SUSE Certified Linux Administrator （CLA）证书。认证代码 : LX0-103，LX0-104（2015年3月30日启动）或者LX0-101，LX0-102题目数量：每次考试60道题题目类型：多选考试时长：90分钟要求：A+，Network+，并且有至少12个月的Linux管理经验分数线：500 （对于200-800的范围来说）语言：英语，将来会有德语，葡萄牙语，繁体中文，西班牙。有效期：认证后三年有效注意：不同系列的考试不能合并。如果你考的是LX0-101，那么你必须考LX0-102完成认证。同样的，LX0-103和LX0-104又是一个系列。LX0-103和LX0-104系列是LX0-101和LX0-102系列的升级版。2. LPICLPIC，全称Linux专业委员会认证（ Linux Professional Institute Certification），是Linux专业委员会的一个Linux认证程序。这是一个多级别的认证程序，要求在每个级别通过一系列（通常是两个）的认证考试。该认证有三个级别，包括初级水平认证 LPIC-1 ，高级水平认证 LPIC-2和最高水平认证 LPIC-3。前两个认证侧重于 Linux系统管理，而最后一个认证侧重一些专业技能，包括虚拟化和安全。为了得到 LPIC-3 认证，一个持有有效的 LPIC-1 与LPIC-2 认证的考生必须通过300复杂环境测试、303安全测试、304虚拟化测试和高可用性测试中的一个。LPIC-1认证按照证书持有者可以通过运行Linux，使用命令行界面和基本的网络知识安装，维护，配置等任务而设计，LPIC-2测试考生是否作为管理中小型混合网络的候选人。LPIC-3认证是为企业级Linux专业技能设计所设计，代表了最高的专业水平和不针对特定 Linux 发行版的行业认证。认证代码：LPIC-1（101和102），LPIC-2（201和202）和LPIC-3（300，303或者304）题目类型：60个多项选择考试时长：90分钟要求：无，建议有 Linux Essentials 认证分数线：500（在200-800的范围内）语言：LPIC-1：英语，德语，意大利语，葡萄牙语，西班牙语（现代），汉语（简体），汉语（繁体），日语LPIC-2：英语，德语，葡萄牙语，日语LPIC-3：英语，日语有效期：退休之后五年内仍然有效3.Oracle Linux OCAOracle联合认证（OCA）为个人而定制，适用于那些想证明其部署和管理Oracle Linux操作系统的知识牢固的人。该认证专业知识仅仅针对Oracle Linux发行版，这个系统完全是为Oracle产品特别剪裁的，可以运行Oracle设计的系统，包括Oracle Exadata数据库服务器，Oracle Exalytics In-Memory 服务器，Oracle Exalogic 均衡云，和Oracle数据库应用等。Oracle Linux的“坚不可摧企业内核”为企业应用带来了高性能、高扩展性和稳定性。OCA认证覆盖了如管理本地磁盘设备、管理文件系统、安装和移除Solaris包与补丁，优化系统启动过程和系统进程。这是拿到OCP证书系列的第一步。OCA认证以其前身为Sun Certified Solaris Associate（SCSAS）而为人所知。认证代码：OCA题目类型：75道多项选择考试时长：120分钟要求：无分数线：64%有效期：永远有效4. Oracle Linux OCPOracle专业认证(OCP)是Oracle公司为Oracle Linux提供的一个认证，覆盖更多的进阶知识和技能，对于一个Oracle Linux管理员来说。它囊括的知识有配置网络接口、管理交换分区配置、崩溃转储、管理软件、数据库和重要文件。OCP认证是技术性专业知识和专业技能的基准测试，这些知识与技能需要在公司里广泛用于开发、部署和管理应用、中间件和数据库。Oracle Linux OCP的工作机会在增长，这得益于工作市场和经济发展。根据考试纲领，证书持有者有能力胜任安全管理、为Oracle 数据库准备Oracle Linux系统、排除故障和进行恢复操作、安装软件包、安装和配置内核模块、维护交换空间、完成用户和组管理、创建文件系统、配置逻辑卷管理（LVM）、文件分享服务等等。认证代码：OCP题目类型：60至80道多项选择题考试时长：120分钟要求：Oracle Linux OCA分数线：64%有效期：永远有效5. RHCSARHCSA是红帽公司作为红帽认证系统工程师推出的一个认证程序。RHCSA们是指一些拥有在著名的红帽Linux环境下完成核心系统管理技能和能力的人。这是一个入门级的认证程序，关注在系统管理上的实际胜任能力，包括安装、配置一个红帽Linux系统，接入一个可用的网络提供网络服务。一个红帽认证的系统管理员可以理解和使用基本的工具，用以处理文件、目录、命令行环境和文档；操作运行中的系统，包括以不同的启动级别启动、识别进程、开启和停止虚拟机和控制服务；使用分区和逻辑卷配置本地存储；创建和配置文件系统和文件系统属性，包括权限、加密、访问控制列表和网络文件系统；部署配置和维护系统，包括软件安装、更新和核心服务；管理用户和组，包括使用一个中心的目录用于验证；安全性的工作，包括基本的基本防火墙和SELinux配置。要获得RHCE和其他认证，首先得认证过RHCSA。认证代码：RHCSA课程代码：RH124，RH134和RH199考试代码：EX200考试时长：21-22小时，取决于选择的课程要求：无。有一些Linux基础知识更好分数线：300总分，210过（70%）有效期：3年6. RHCERHCE，也叫做红帽认证工程师，是一个中到高级水平的认证程序，为一些想要学习更多技能和知识，成为一个负责红帽企业Linux的高级系统管理员的RHCSA开设的，RHCE应该有能力、知识和技能来配置静态路由、包过滤、NAT、设定内核运行参数、配置一个ISCSI初始化程序，生成并发送系统用量报告、使用shell脚本自动完成系统维护任务、配置系统日志，包括远程日志、提供网络服务如HTTP/HTTPS、FTP、NFS、SMB、SMTP、SSH和NTP等等。推荐希望获得更多高级水平的认证的RHCSA们、已经完成系统管理员I，II和III、或者已经完成RHCE 快速跟进培训的人们参加认证。认证代码：RHCE课程代码：RH124，RH134，RH254和RH199考试代码：EX200和EX300考试时长：21-22个小时，取决于所选课程要求：一个RHCSA证书分数线：300总分，210过（70%）有效期：3年7. RHCARHCA即红帽认证架构师，是红帽公司的一个认证程序。它的关注点在系统管理的实际能力，包括安装和配置一个红帽Linux系统，并加入到一个可用网络中运行网络服务。RHCA是所有红帽认证中最高水平的认证。考生需要选择他们希望针对的领域，或者选择合格的红帽认证的任意组合来创建一个他们自己的领域。这里有三个主要的领域：数据中心、云和应用平台。精通数据中心领域的RHCA能够运行、管理数据中心；而熟悉云的可以创建、配置和管理私有云和混合云、云应用平台以及使用红帽企业Linux平台的灵活存储方案；精通应用平台集合的RHCA拥有技能如安装、配置和管理红帽JBoss企业应用平台和应用，云应用平台和混合云环境，借助红帽的OpenShift企业版，使用红帽JBoss数据虚拟化技术从多个资源里组合数据。认证代码：RHCA课程代码：CL210，CL220.CL280，RH236，RH318，RH413，RH436，RH442，JB248和JB450考试代码：EX333，EX401，EX423或者EX318，EX436和EX442考试时长：21-22个小时，取决于所选课程要求：未过期的RHCE证书分数线：300总分，210过（70%）有效期：3年8. SUSE CLASUSE认证Linux管理员（SUSE CLA）是SUSE推出的一个初级认证，关注点在SUSE Linux企业服务器环境下的日常任务管理。为了获得SUSE CLA认证，不用必须完成课程任务，只需要通过考试就能获得认证。SUSE CLA们能够、也有技术去使用Linux桌面、定位并利用帮助资源、管理Linux文件系统、用Linux Shell和命令行工作、安装SLE 11 SP22、管理系统安装、硬件、备份和恢复、用YaST管理Linux、Linux进程和服务、存储、配置网络、远程接入、SLE 11 SP2监控，任务自动化和管理用户访问和安全工作。我们可以同时获得SUSE CLA，LPIC-1和CompTIA Linux认证，因为SUSE，Linux Professional Institute和CompATI合作提供了这个同时获得三个Linux认证的机会。认证代码：SUSE CLA课程代码：3115，3116考试代码：050-720，050-710问题类型：多项选择考试时长：90分钟要求：无分数线：5129. SUSE CLPSUSE认证Linux专业人员（CLP）是一个认证程序，为那些希望获得关于SUSE Linux企业服务器更多高级且专业的知识的人而服务。SUSE CLP是通过SUSE CLA认证后的下一步。应该通过CLA的考试并拥有证书，然后通过完成CLP的考试才能获得CLP的认证。通过SUSE CLP认证的人员有能力完成安装和配置SLES 11系统、维护文件系统、管理软件包、进程、打印、配置基础网络服务、samba、Web服务器、使用IPv6、创建和运行bash shell脚本。认证代码：SUSE CLP课程代码：3115，3116和3117考试代码：050-721，050-697考试类型：手写考试时长：180分钟要求：SUSE CLA 认证10. SUSE CLESUSE认证Linux工程师(CLE)是一个工程师级别的高级认证，为那些已经通过CLE考试的人准备。为了获得CLE认证，人们需要已经获得SUSE CLA和CLP的认证。获得CLE认证的人员拥有架设复杂SUSE Linux企业服务器环境的技能。CLE认证过的人可以配置基本的网络服务、管理打印、配置和使用Open LDAP、samba、IPv6、完成服务器健康检测和性能调优、创建和执行shell脚本、部署SUSE Linux企业板、通过Xen实现虚拟化等等。认证代码：SUSE CLE课程代码：3107考试代码：050-723考试类型：手写考试时长：120分钟要求：SUSE CLP 10或者11证书11. LFCSLinux基金会认证系统管理员（LFCS）认证考生使用Linux和通过终端环境使用Linux的知识。LFCS是Linux基金会的一个认证程序，为使用Linux操作系统工作的系统管理员和工程师准备。Linux基金会联合业内专家、Linux内核社区，测试考生的核心领域、关键技能、知识和应用能力。通过LFCS认证的人员拥有一些技能、知识和能力，包括在命令行下编辑和操作文件、管理和处理文件系统与存储的错误、聚合分区作为LVM设备、配置交换分区、管理网络文件系统、管理用户帐号/权限和属组、创建并执行bash shell脚本、安装/升级/移除软件包等等。认证代码：LFCS课程代码：LFCS201，LFCS220（可选）考试代码：LFCS 考试考试时长：2小时要求：无分数线：74%语言：英语有效期：两年12. LFCELinux基金会认证工程师（LFCE），是Linux基金会为Linux工程师推出的认证。相比于LFCS，通过LFCE认证的人员在Linux方面拥有更大范围的技能。这是一个工程师级别的高级认证程序。LFCE认证的人具备一些网络管理方面的技能和能力，如配置网络服务、配置包过滤、监控网络性能、IP流量、配置文件系统和文件服务、网络文件系统、从仓库安装/升级软件包、管理网络安全、配置iptables、http服务、代理服务、邮件服务等等。由于其为高级工程级别的认证程序，所以普遍认为相比LFCS，学习和通过的难度更大些。认证代码：LFCE课程代码：LFS230考试代码：LFCE 考试考试时长：2小时要求：认证过LFCS分数线：72%语言：英语有效期：2年我们发现的情况（这仅仅是我们的观点）最近的调查表明，在不同的高端招聘代理中，称80%的Linux工作描述更倾向于红帽的认证。如果你是一个学生/新手，并且想学习Linux，那么我们建议选择越来越流行的Linux基金会认证，或者CompTIA Linux也可以是一个选择。如果你已经了解了oracle或suse，或者在他们的产品上工作，那oracle/suse的认证会更好些，如果你在公司里工作了，这些认证会对你的职业生涯成长有帮助 :-)总结在这个世界上，成千上万的大公司正在运行跑着Linux操作系统的服务器和主框架机，为了在这些服务器上管理、配置和工作，总是存在着对Linux技术/专业知识高度认证的需求。这些国际上承认的认证对某些人在Linux的职业生涯扮演很重要的角色。这些遍布全球的公司运行着Linux，需要Linux工程师、系统管理员和已经获得认证且在Linux相关领域干得不错的人员。全球认可的Linux认证，对于专业知识和职业生涯的辉煌都是重中之重，所以好好准备考试并获得认证，对于在Linux建立职业生涯是一个很好的选择。如果你有任何问题，想法，反馈，请写在下方的评论框里，让我们好知道哪些东西需要添加或者改进。谢谢！:-)via: http://linoxide.com/linux-how-to/12-globally-recognized-linux-certifications/作者：Arun Pyasi 译者：wi-cuckoo 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出