分类 技术 下的文章

12. 安装 Apache Tomcat

Tomcat 是由 Apache 设计的用来运行 Java HTTP web 服务器的 servlet 容器。按照下面的方法安装 tomcat,但需要指出的是安装 tomcat 之前必须先安装 Java。

# yum install tomcat

安装 Apache Tomcat

安装 Apache Tomcat

安装完 tomcat 之后,启动 tomcat 服务。

# systemctl start tomcat

查看 tomcat 版本。

# /usr/sbin/tomcat version

查看 tomcat 版本

查看 tomcat 版本

允许 tomcat 服务和默认端口(8080) 通过防火墙并重新加载设置。

# firewall-cmd –zone=public –add-port=8080/tcp --permanent
# firewall-cmd –reload

现在该保护 tomcat 服务器了,添加一个用于访问和管理的用户和密码。我们需要编辑文件 ‘/etc/tomcat/tomcat-users.xml’。查看类似下面的部分:

<tomcat-users>
....
</tomcat-users>


 <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-users>

保护 Tomcat

保护 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.9

13. 安装 Nmap 监视开放端口

Nmap 网络映射器用来分析网络,通过运行它可以发现网络的映射关系。nmap 并没有默认安装,你需要从库中安装它。

# yum install nmap

安装 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. 配置 FirewallD

firewalld 是动态管理服务器的防火墙服务。在 CentOS 7 中 Firewalld 移除了 iptables 服务。在红帽企业版 Linux 和它的衍生版中默认安装了 Firewalld。如果有 iptables 的话为了使每个更改生效需要清空所有旧的规则然后创建新规则。

然而用firewalld,不需要清空并重新创建新规则就可以实现更改生效。

检查 Firewalld 是否运行。

# systemctl status firewalld
或
# firewall-cmd –state

检查 Firewalld 状态

检查 Firewalld 状态

获取所有的区域列表。

# firewall-cmd --get-zones

检查 Firewalld 区域

检查 Firewalld 区域

在切换之前先获取区域的详细信息。

# firewall-cmd --zone=work --list-all

检查区域详情

检查区域详情

获取默认区域。

# firewall-cmd --get-default-zone

Firewalld 默认区域

Firewalld 默认区域

切换到另一个区域,比如 ‘work’。

# firewall-cmd --set-default-zone=work

切换 Firewalld 区域

切换 Firewalld 区域

列出区域中的所有服务。

# firewall-cmd --list-services

列出 Firewalld 区域的服务

列出 Firewalld 区域的服务

添加临时服务,比如 http,然后重载 firewalld。

# firewall-cmd  --add-service=http
# firewall-cmd –reload

添加临时 http 服务

添加临时 http 服务

添加永久服务,比如 http,然后重载 firewalld。

# firewall-cmd --add-service=http --permanent
# firewall-cmd --reload

添加永久 http 服务

添加永久 http 服务

删除临时服务,比如 http。

# firewall-cmd  --remove-service=http
# firewall-cmd --reload

删除临时 Firewalld 服务

删除临时 Firewalld 服务

删除永久服务,比如 http

# firewall-cmd --zone=work --remove-service=http --permanent
# firewall-cmd --reload

删除永久服务

删除永久服务

允许一个临时端口(比如 331)。

# firewall-cmd --add-port=331/tcp
# firewall-cmd --reload

打开临时 Firewalld 端口

打开临时端口

允许一个永久端口(比如 331)。

# firewall-cmd --add-port=331/tcp --permanent
# firewall-cmd --reload

打开永久 Firewalld 端口

打开永久端口

阻塞/移除临时端口(比如 331)。

# firewall-cmd --remove-port=331/tcp
# firewall-cmd --reload

移除 Firewalld 临时端口

移除临时端口

阻塞/移除永久端口(比如 331)。

# firewall-cmd --remove-port=331/tcp --permanent
# firewall-cmd --reload

移除 Firewalld 永久端口

移除永久端口

停用 firewalld。

# systemctl stop firewalld
# systemctl disable firewalld
# firewall-cmd --state

在 CentOS 7 中停用 Firewalld

停用 Firewalld 服务

启用 firewalld。

# systemctl enable firewalld
# systemctl start firewalld
# firewall-cmd --state

在 CentOS 7 中取消 Firewalld

启用 Firewalld

15. 安装 Wget

Wget 是从 web 服务器获取(下载)内容的命令行工具。它是你使用 wget 命令获取 web 内容或下载任何文件必须要有的重要工具。

# yum install wget

安装 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 端口检查

Telnet 端口检查


via: http://www.tecmint.com/things-to-do-after-minimal-rhel-centos-7-installation/3/

作者:Avishek Kumar 译者:ictlyh 校对:校对者ID

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Unix或类Unix系统中的“文件列表”命令“ls”是最基础并且使用的最广泛的命令行中工具之一。它是一个POSIX兼容工具,在GNU基本工具集以及BSD各种变体上都可以使用。“ls”命令可以结合大量的选项来达到想要的结果。

这篇文章的目的在于通过相关的样例来深入讨论文件列表命令。

15 ls Command Questions

15个“ls”命令问题。

1. 如何列出目录中的文件?

答:linux文件列表命令“ls”就是干这个的。

# ls

List Files

列出文件

同时,我们也可以使用“echo(回显)”命令与一个通配符(*)参数来雷锤目录中的所有文件。

# echo *

List All Files

列出所有的文件。

2. 如何只使用echo命令来只列出所有目录?

# echo */

List All Directories

列出所有的目录

3. 怎样列出一个目录中的所有文件, 包括隐藏的以“.”开头的文件?

答:我们需要将“-a”选项与“ls”命令一起使用。

# ls -a

List All Hidden Files

列出所有的隐藏文件。

4. 如何列出目录中除了 “当前目录 .”和“父目录 ..”之外的所有文件,包括隐藏文件?

答: 我们需要将“-A”选项与“ls”命令一起使用

# ls -A

Do Not List Implied

别列出指代当前目录和父目录的文件

5. 如何使用长格式打印出当前目录内容?

答: 我们需要将“-l”选项与“ls”命令一起使用。

# ls -l

List Files Long

列出文件的长格式。

上面的样例中,其输出结果看起来向下面这样。

drwxr-xr-x  5 avi tecmint      4096 Sep 30 11:31 Binary

上面的drwxr-xr-x 是文件的权限,分别代表了文件所有者,所属组以及“整个世界”。 所有者具有读(r),写(w)以及执行(x)等权限。 该文件所属组具有读(r)和执行(x)但是没有写的权限,整个世界的其他可以访问到该文件的人也具有相同权限。

  • 开头的‘d’意味着这是一个目录
  • 数字'5'表示链接数为5
  • 文件 Binary归属于用户 “avi”以及用户组 "tecmint"
  • Sep 30 11:31 表示文件最后一次的访问日期与时间。

6. 假如让你来将目录中的内容以长格式列表打印,并且显示出隐藏的“点文件”,你会如何实现?

答: 我们需要同时将"-a"和"-l"选项与“ls”命令一起使用(LCTT 译注:单字符选项可以合并写)。

# ls -la

Print Content of Directory

打印目录内容

此外,如果我们不想列出“当前目录”和"父目录",可以将“-A”和“-l”选项同“ls”命令一起使用。

# ls -lA

7. 如何找到每个文件的创建者?

答: 我们需要结合 “--author”和 "-l"选项来打印出每个文件的创建者。

# ls --author -l

List Author Files

列出文件创建者。

8. 如何对用转义字符打印出非显示字符?

答:我们只需要使用“-b”选项来对非显示字符进行转义打印

# ls -b

Print Escape Character

9. 用指定特定的单位格式来列出文件和目录的大小,你会如何实现?

答: 在此可以同时使用选项“-block-size=scale”和“-l”,但是我们需要用特定的单位如M,K等来替换‘scale’参数。

# ls --block-size=M -l
# ls --block-size=K -l

List File Scale Format

列出文件大小单位格式。

10. 列出目录中的文件,但是不显示备份文件,即那些文件名以‘~’结尾的文件

答: 选项‘-B’赶来救驾。

# ls -B

List File Without Backup

列出非备份文件

11. 将目录中的所有文件按照名称进行排序,并显示其最后修改时间信息?

答: 为了实现这个需求,我们需要同时将“-c”和"-l"选项与命令一起使用。

# ls -cl

Sort Files

文件排序

12. 将目录中的文件按照修改时间进行排序,并显示相关联的信息。

答: 我们需要同时使用3个选项:'-l','-t','-c' 来对文件使用修改时间排序,最新的修改时间排在最前。

# ls -ltc

Sort Files by Modification

按照修改时间对文件排序。

13. 如何控制‘ls’命令的输出颜色的有无?

答: 需要使用选项‘--color=parameter’,参数具有三种不同值,“auto(自动)”,“always(一直)”,“never(无色)”。

# ls --color=never
# ls --color=auto
# ls --color=always

ls Colorful Output

ls的输出颜色

14. 假如只需要列出目录本身,而不是目录的内容,你会如何做?

答:在此“-d”选项就会显得很顺手。

# ls -d

List Directory Entries

列出目录本身

15. 为长格式列表命令"ls -l"创建一个别名“ll”,并将其结果输出到一个文件而不是标准输出中。

答:在上述的这个场景中,我们需要将别名添加到.bashrc文件中,然后使用重定向操作符将输出写入到文件而不是标准输出中。我们将会使用编辑器nano。

# ls -a
# nano .bashrc
# ll >> ll.txt
# nano ll.txt

Create Alias for ls command

为ls命令创建别名。

先到此为止,别忘了在下面的评论中提出你们的宝贵意见,我会再次带着另外的有趣的文章在此闪亮登场。

参考阅读:


via: http://www.tecmint.com/ls-command-interview-questions/

作者:Avishek Kumar 译者:theo-l 校对:校对者ID

本文由 LCTT 原创翻译,Linux中国 荣誉推出

7. 安装 PHP

PHP 是用于 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

验证 PHP

验证 PHP

8. 安装 MariaDB 数据库

MariaDB 是 MySQL 的一个分支。RHEL 以及它的衍生版已经从 MySQL 迁移到 MariaDB。这是一个主流的数据库管理系统,也是一个你必须拥有的工具。不管你在配置怎样的服务器,或迟或早你都会需要它。在最小化安装的 CentOS 上安装 MariaDB,如下所示:

# yum install mariadb-server mariadb

安装 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 数据库

保护 MariaDB 数据库

请阅读:

9. 安装和配置 SSH 服务器

SSH 即 Secure Shell,是 Linux 远程管理的默认协议。 SSH 是随最小化 CentOS 服务器中安装运行的最重要的软件之一。

检查当前已安装的 SSH 版本。

# SSH -V

检查 SSH 版本

检查 SSH 版本

使用更安全的 SSH 协议,而不是默认的协议,并更改端口号进一步加强安全。编辑 SSH 的配置文件 ‘/etc/ssh/ssh\_config’。

去掉下面行的注释或者从协议行中删除 1,然后行看起来像这样(LCTT 译注: SSH v1 是过期废弃的不安全协议):

# Protocol 2,1 (原来)
Protocol 2 (现在)

这个改变强制 SSH 使用 协议 2,它被认为比协议 1 更安全,同时也确保在配置中更改端口号 22 为其它。

保护 SSH 登录

保护 SSH 登录

取消 SSH 中的‘root login’, 只允许通过普通用户账号登录后才能使用 su 切换到 root,以进一步加强安全。请打开并编辑配置文件 ‘/etc/ssh/sshd\_config’ 并更改 PermitRootLogin yes 为 PermitRootLogin no。

# PermitRootLogin yes (原来) 
PermitRootLogin no (现在)

取消 SSH Root 登录

取消 SSH Root 直接登录

最后,重启 SSH 服务启用更改。

# systemctl restart sshd.service

请查看:

10. 安装 GCC (GNU 编译器集)

GCC 即 GNU 编译器集,是一个 GNU 项目开发的支持多种编程语言的编译系统(LCTT 译注:在你需要自己编译构建软件时需要它)。在最小化安装的 CentOS 没有默认安装。运行下面的命令安装 gcc 编译器。

# yum install gcc

在 CentOS 上安装 GCC

在 CentOS 上安装 GCC

检查安装的 gcc 版本。

# gcc --version

检查 GCC 版本

检查 GCC 版本

11. 安装 Java

Java是一种通用的基于类的,面向对象的编程语言。在最小化 CentOS 服务器中没有默认安装(LCTT 译注:如果你没有任何 Java 应用,可以不用装它)。按照下面命令从库中安装 Java。

# yum install java

在 CentOS 上安装 Java

安装 Java

检查安装的 Java 版本。

# java -version

检查 Java 版本

检查 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 最小化安装,这是首选的企业和生产环境。如果还没有,你可以按照下面的指南,它会告诉你两者的最小化安装方法。

我们会基于工业标准的需求来介绍以下列出的这些重要工作。我们希望这些东西在你配置服务器的时候能有所帮助。

  1. 注册并启用红帽订阅
  2. 使用静态 IP 地址配置网络
  3. 设置服务器的主机名称
  4. 更新或升级最小化安装的 CentOS
  5. 安装命令行 Web 浏览器
  6. 安装 Apache HTTP 服务器
  7. 安装 PHP
  8. 安装 MariaDB 数据库
  9. 安装并配置 SSH 服务器
  10. 安装 GCC (GNU 编译器集)
  11. 安装 Java
  12. 安装 Apache Tomcat
  13. 安装 Nmap 检查开放端口
  14. 配置防火墙
  15. 安装 Wget
  16. 安装 Telnet
  17. 安装 Webmin
  18. 启用第三方库
  19. 安装 7-zip 工具
  20. 安装 NTFS-3G 驱动
  21. 安装 Vsftpd FTP 服务器
  22. 安装和配置 sudo
  23. 安装并启用 SELinux
  24. 安装 Rootkit Hunter
  25. 安装 Linux Malware Detect (LMD)
  26. 用 Speedtest-cli 测试服务器带宽
  27. 配置 Cron 作业
  28. 安装 Owncloud
  29. 启用 VirtualBox 虚拟化
  30. 用密码保护 GRUB

(LCTT 译注:关于 CentOS/RHEL 7的更多信息,请参考专题:http://www.linux.cn/topic-centos7.html

1. 注册并启用红帽订阅

RHEL 7 最小化安装完成后,就应该注册并启用系统红帽订阅库, 并执行一个完整的系统更新。这只当你有一个可用的红帽订阅时才能有用。你要注册才能启用官方红帽系统库,并时不时进行操作系统更新。(LCTT 译注:订阅服务是收费的)

在下面的指南中我们已经包括了一个如何注册并激活红帽订阅的详细说明。

注意: 这一步仅适用于有一个有效订阅的红帽企业版 Linux。如果你用的是 CentOS 服务器,请查看后面的章节。

2. 使用静态 IP 地址配置网络

你第一件要做的事情就是为你的 CentOS 服务器配置静态 IP 地址、路由以及 DNS。我们会使用 ip 命令代替 ifconfig 命令。当然,ifconfig 命令对于大部分 Linux 发行版来说还是可用的,还能从默认库安装。

# yum install net-tools             [它提供 ifconfig 工具,如果你不习惯 ip 命令,还可以使用它]

在 Linux 上安装 ifconfig

(LCTT 译注:关于 ip 命令的使用,请参照:http://www.linux.cn/article-3631-1.html

但正如我之前说,我们会使用 ip 命令来配置静态 IP 地址。所以,确认你首先检查了当前的 IP 地址。

# ip addr show

在 CentOS 查看 IP 地址

现在用你的编辑器打开并编辑文件 /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 地址

验证 IP 地址

检查网络状态

检查网络状态

(LCTT 译注:关于设置静态 IP 地址的更多信息,请参照:http://www.linux.cn/article-3977-1.html

3. 设置服务器的主机名称

下一步是更改 CentOS 服务器的主机名称。查看当前分配的主机名称。

# echo $HOSTNAME

查看系统主机名称

查看系统主机名称

要设置新的主机名称,我们需要编辑 ‘/etc/hostsname’ 文件并用想要的名称替换旧的主机名称。

# vi /etc/hostname

在 CentOS 中设置主机名称

在 CentOS 中设置主机名称

设置完了主机名称之后,务必注销后重新登录确认主机名称。登录后检查新的主机名称。

$ echo $HOSTNAME

确认主机名称

确认主机名称

你也可以用 ‘hostname’ 命令查看你当前的主机名。

$ hostname

(LCTT 译注:关于设置静态、瞬态和灵活主机名的更多信息,请参考:http://www.linux.cn/article-3937-1.html

4. 更新或升级最小化安装的 CentOS

这样做除了更新安装已有的软件最新版本以及安全升级,不会安装任何新的软件。总的来说更新(update)和升级(upgrade)是相同的,除了事实上 升级 = 更新 + 更新时进行废弃处理。

# yum update && yum upgrade

更新最小化安装的 CentOS 服务器

更新最小化安装的 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

在 CentOS 上安装 Apache

安装 Apache 服务器

如果你想更改 Apache HTTP 服务器的默认端口号(80)为其它端口,你需要编辑配置文件 ‘/etc/httpd/conf/httpd.conf’ 并查找以下面开始的行:

LISTEN 80 

把端口号 ‘80’ 改为其它任何端口(例如 3221),保存并退出。

在 CentOS 上更改 Apache 端口

更改 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 状态

验证 Apache 状态


via: http://www.tecmint.com/things-to-do-after-minimal-rhel-centos-7-installation/

作者:Avishek Kumar 译者:ictlyh 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程。当然这个教程也适合 RHEL 7 。在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置 VNC 服务器

我们都知道,作为一个系统管理员,大多数时间是通过网络管理服务器的。在管理服务器的过程中很少会用到图形界面,多数情况下我们只是用 SSH 来完成我们的管理任务。在这篇文章里,我们将配置 VNC 来提供一个连接我们 CentOS 7 服务器的方法。VNC 允许我们开启一个远程图形会话来连接我们的服务器,这样我们就可以通过网络远程访问服务器的图形界面了。

VNC 服务器是一个自由开源软件,它可以让用户可以远程访问服务器的桌面环境。另外连接 VNC 服务器需要使用 VNC viewer 这个客户端。

一些 VNC 服务器的优点:

  • 远程的图形管理方式让工作变得简单方便。
  • 剪贴板可以在 CentOS 服务器主机和 VNC 客户端机器之间共享。
  • CentOS 服务器上也可以安装图形工具,让管理能力变得更强大。
  • 只要安装了 VNC 客户端,通过任何操作系统都可以管理 CentOS 服务器了。
  • 比 ssh 图形转发和 RDP 连接更可靠。

那么,让我们开始安装 VNC 服务器之旅吧。我们需要按照下面的步骤一步一步来搭建一个可用的 VNC。

首先,我们需要一个可用的桌面环境(X-Window),如果没有的话要先安装一个。

注意:以下命令必须以 root 权限运行。要切换到 root ,请在终端下运行“sudo -s”,当然不包括双引号(“”)

1. 安装 X-Window

首先我们需要安装 X-Window,在终端中运行下面的命令,安装会花费一点时间。

# yum check-update
# yum groupinstall "X Window System"

installing x windows

#yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts

install gnome classic session

### 设置默认启动图形界面
# unlink /etc/systemd/system/default.target
# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

configuring graphics

# reboot

在服务器重启之后,我们就有了一个工作着的 CentOS 7 桌面环境了。

现在,我们要在服务器上安装 VNC 服务器了。

2. 安装 VNC 服务器

现在要在我们的 CentOS 7 上安装 VNC 服务器了。我们需要执行下面的命令。

# yum install tigervnc-server -y

vnc server

3. 配置 VNC

然后,我们需要在 /etc/systemd/system/ 目录里创建一个配置文件。我们可以将 /lib/systemd/sytem/[email protected] 拷贝一份配置文件范例过来。

# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

copying vnc server configuration

接着我们用自己最喜欢的编辑器(这儿我们用的 nano )打开 /etc/systemd/system/vncserver@:1.service ,找到下面这几行,用自己的用户名替换掉 。举例来说,我的用户名是 linoxide 所以我用 linoxide 来替换掉 :

ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid

替换成

ExecStart=/sbin/runuser -l linoxide -c "/usr/bin/vncserver %i"
PIDFile=/home/linoxide/.vnc/%H%i.pid

如果是 root 用户则

ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid

configuring user

好了,下面重启 systemd 。

# systemctl daemon-reload

最后还要设置一下用户的 VNC 密码。要设置某个用户的密码,必须要有能通过 sudo 切换到用户的权限,这里我用 linoxide 的权限,执行“su linoxide”就可以了。

# su linoxide
$ sudo vncpasswd

setting vnc password

确保你输入的密码多于6个字符

4. 开启服务

用下面的命令(永久地)开启服务:

$ sudo systemctl enable vncserver@:1.service

启动服务。

$ sudo systemctl start vncserver@:1.service

5. 防火墙设置

我们需要配置防火墙来让 VNC 服务正常工作。

$ sudo firewall-cmd --permanent --add-service vnc-server
$ sudo systemctl restart firewalld.service

allowing firewalld

现在就可以用 IP 和端口号(LCTT 译注:例如 192.168.1.1:1 ,这里的端口不是服务器的端口,而是视 VNC 连接数的多少从1开始排序)来连接 VNC 服务器了。

6. 用 VNC 客户端连接服务器

好了,现在已经完成了 VNC 服务器的安装了。要使用 VNC 连接服务器,我们还需要一个在本地计算机上安装的仅供连接远程计算机使用的 VNC 客户端。

remote access vncserver from vncviewer

你可以用像 Tightvnc viewerRealvnc viewer 的客户端来连接到服务器。

要用更多的用户连接,需要创建配置文件和端口,请回到第3步,添加一个新的用户和端口。你需要创建 vncserver@:2.service 并替换配置文件里的用户名和之后步骤里相应的文件名、端口号。请确保你登录 VNC 服务器用的是你之前配置 VNC 密码的时候使用的那个用户名

VNC 服务本身使用的是5900端口。鉴于有不同的用户使用 VNC ,每个人的连接都会获得不同的端口。配置文件名里面的数字告诉 VNC 服务器把服务运行在5900的子端口上。在我们这个例子里,第一个 VNC 服务会运行在5901(5900 + 1)端口上,之后的依次增加,运行在5900 + x 号端口上。其中 x 是指之后用户的配置文件名 vncserver@:x.service 里面的 x 。

在建立连接之前,我们需要知道服务器的 IP 地址和端口。IP 地址是一台计算机在网络中的独特的识别号码。我的服务器的 IP 地址是96.126.120.92,VNC 用户端口是1。

执行下面的命令可以获得服务器的公网 IP 地址(LCTT 译注:如果你的服务器放在内网或使用动态地址的话,可以这样获得其公网 IP 地址)。

# curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

总结

好了,现在我们已经在运行 CentOS 7 / RHEL 7 的服务器上安装配置好了 VNC 服务器。VNC 是自由开源软件中最简单的一种能实现远程控制服务器的工具,也是一款优秀的 Teamviewer Remote Access 替代品。VNC 允许一个安装了 VNC 客户端的用户远程控制一台安装了 VNC 服务的服务器。下面还有一些经常使用的相关命令。好好玩!

其他命令:

  • 关闭 VNC 服务。
# systemctl stop vncserver@:1.service
  • 禁止 VNC 服务开机启动。
# systemctl disable vncserver@:1.service
  • 关闭防火墙。
# systemctl stop firewalld.service

via: http://linoxide.com/linux-how-to/install-configure-vnc-server-centos-7-0/

作者:Arun Pyasi 译者:boredivan 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

虚拟私有服务器 (VPS)上启用 SSH 服务使得该服务器暴露到互联网中,为黑客攻击提供了机会,尤其是当 VPS 还允许root 直接访问时。VPS 应该为每次 SSH 登录成功尝试配置一个自动的 email 警告。 VPS 服务器的所有者会得到各种 SSH 服务器访问日志的通知,例如登录者、登录时间以及来源 IP 地址等信息。这是一个对于服务器拥有者来说,保护服务器避免未知登录尝试的重要安全关注点。这是因为如果黑客使用暴力破解方式通过 SSH 来登录到你的 VPS 的话,后果很严重。在本文中,我会解释如何在 CentOS 6、 CentOS 7、 RHEL 6 和 RHEL 7上为所有的 SSH 用户登录设置一个 email 警告。

  1. 使用root用户登录到你的服务器;
  2. 在全局源定义处配置警告(/etc/bashrc),这样就会对 root 用户以及普通用户都生效:
[root@vps ~]# vi /etc/bashrc

将下面的内容加入到上述文件的尾部。

echo 'ALERT - Root Shell Access (vps.ehowstuff.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" [email protected]
  1. 你也可以选择性地让警告只对 root 用户生效:
[root@vps ~]# vi .bashrc

将下面的内容添加到/root/.bashrc的尾部:

echo 'ALERT - Root Shell Access (vps.ehowstuff.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" [email protected]

整个配置文件样例:

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
echo 'ALERT - Root Shell Access (vps.ehowstuff.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" [email protected]
  1. 你也可以选择性地让警告只对特定的普通用户生效(例如 skytech):
[root@vps ~]# vi /home/skytech/.bashrc

将下面的内容加入到/home/skytech/.bashrc文件尾部:

echo 'ALERT - Root Shell Access (vps.ehowstuff.com) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" [email protected]

via: http://www.ehowstuff.com/how-to-get-email-alerts-for-ssh-login-on-linux-server/

作者:skytech 译者:theo-l 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出