做为网络管理员,我们不可能总是在机房操作服务器,对于windows服务器,我们可以通过远程终端或netmeeting进行操作。但是对于Linux服务器呢?我们也可以使用远程工具进行操作,常用的远程管理服务有telnet,SSH,VNC等,这些远程管理服务虽然都能做远程管理用,但是他们在功能及使用方面还是各有千秋。今天我们就来谈谈使用这些不同的远程管理服务工具管理Linux服务器。
本文中的服务器IP地址为192.168.99.9,服务器使用系统为:CentOS 5。
一、
Telnet
1.
软件安装:
我们可以使用rpm -qa|grep telnet命令查询系统安装的telnet,如下图:
系统默认安装了telnet的客户端,没有安装telnet服务端,telnet服务端是需要xinetd支持的,所以我们需要手动安装这两个程序包,如下图:
2.
启动
Telnet
服务
使用命令vi /etc/xinetd.d/telnet,编辑telnet服务,将disable=yes该为disable=no,激活telnet服务。
使用service xinetd start命令,启动telnet服务。
我们可以使用telnet ip命令来测试,比如telnet 192.168.99.199这台机,如下图,可以正常telnet到192.168.99.199.
我们再找一台windows的机器来telenet我们的linux服务,如下图,如果我们使用root帐号登录,会提示login incorrect,这是因为telnet默认不允许以root的身份telnet进入linux系统。
3.
配置
telnet
服务
telnet是明文传送口令和数据的,如果直接默认使用,将存在很大的安全风险,所以我们必须对telnet服务做一些限制。使用命令vi /etc/xinetd.d/telnet编辑telnet服务,如下图:
说明:
bind=192.168.99.9 #本机的IP地址
only_from=192.168.99.0/24 #只允许192.168.99.0--192.168.99.255这个网段的地址telnet进来,如果需要也可以设置只允许某台机器telnet进来。
no_access=192.168.99.{11,13} #不允许192.168.99.11和192.168.99.13这两个IP地址telnet进来。
access_times=8:00-12:00 14:00-16:00 #每天只在这个时间段内开放telnet服务。
4.
设置
telnet
端口
telnet默认使用23端口进行通讯,这个大家都知道,也容易被一些别有用心的人利用,所以我们将需要更改默认端口以增加安全性,比如改为2300。
使用vi /etc/services命令,找到telnet 23/tcp和telnet 23/udp改为telnet 2300/tcp和telnet 2300/upd,如下图:
5.
开启
root
用户登录
虽然telnet默认不允许使用root用户登录,但是我们还是可以开启它,使用命令mv /etc/securetty /etc/securetty.bak ,重启telnet服务,现在就可以使用root用户登录了。如下图所示,不过,不建议开通root用户的登录权限,这样会增加安全风险。
二、
OpenSSH
由于telnet采用明文传输,在安全性方面存在较大的隐患,所以现在正在被另一种远程管理服务—SSH服务取代。SSH采用加密的传输,而且在用户认证方式上,可以使用公共密钥加密法,整体安全性得到提高。下面我们就来看看SSH服务的相关内容:
1.
软件安装
系统已经默认安装了OpenSSH,我们可以通过命令rpm -qa|grep openssh来查看openssh的安装情况,如下图所示:
2.
使用
windows
客户端登录服务器
windows xp本身没有自带ssh客户端程序,所以我们需要在windows上安装ssh客户端程序,常用的windows版ssh客户端软件有WinSCP和putty等。WinSCP支持中文语言,而且提供了一个友好的图形操作界面,用户可以很方便操作它,下面我们先来介绍一下WinSCP:
如下图,填入主机名或IP地址就可以登录了:
在登录的时候,会如果没有加载密钥wenjian ,会弹出一个下图所示的警告窗口,由于我们现在还没有使用密钥认证,所以可以直接点是进去。
WinSCP提供了一个类似windows资源管理器的界面,如下图:用户可以通过它很方便的执行文件操作,比如上传、下载,文件、目录重命名等工作。
WinSCP也提供了一个用于执行命令的控制台,如下图,不过,使用起来感觉不是很方便。
如果要像在Linux下那样方便的使用命令行来操作,还是使用PuTTY比较方便。如下图,输入计算机名或IP地址,就可以连接SSH服务器了。
在连接过程中,也会弹出一个警告对话框,提示密钥问题,我们还是点yes继续。如下图:
系统连接上后,会提示要输入用户名和密码,输入正确的用户名和密码后,就可以像在linux中一样使用命令行对它进行操作了。默认情况下,是允许使用root帐户登录的。如下图:
3.
配置
SSH
服务
在默认情况下,我们已经可以使用客户端登录ssh服务器了,不过,直接使用还是有安全隐患,所以我们还需要继续对SSH服务进行配置:
1)使用命令vi /etc/ssh/sshd_config配置SSH服务,修改以下行(用红线框住的行):
Protocol 2 # 默认支持SSH1和SSH2,修改后,只使用SSH2
ServerKeyBits 1024 #将ServerKey强度改为1024比特
PermitRootLogin no # 修改后,不允许使用root进行登录
PasswordAuthentication no # 修改后,不允许以密码方式登录
PermitEmptyPasswords no # 修改后,禁止空密码登录
2)系统默认是允许所有地址连接SSH服务器的,所以我们还需要对访问地址进行限制:
使用命令vi /etc/hosts.deny,修改屏蔽规则,在末尾加上:sshd:ALL,屏蔽来自所有的SSH连接请求。
现在所有电脑都不能连接SSH服务器,所以我们还需要使用命令vi /etc/hosts.allow修改允许规则,在行尾加入一条:sshd:192.168.99. ,允许来自192.168.99.0/24这个网段的SSH连接请求,当然在这里也可以设置只允许部分IP地址的SSH连接,这个大家可以根据自己的需求进行设置。
设置完成后,需要重启SSH服务才能生效。
我们再用PuTTY连接一下,无法登录了。因为现在已经不能用密码验证了,需要使用“钥匙”了。
4.
公钥和私钥的建立
切换到一个普通用户,基于这个用户建立公钥和私钥。(这里我以admin这个自建的帐户为例),操作过程如下图:
公钥和私钥建立好后,还需要做一些处理,如下图:
OK,现在已经配置完成。下一步,我们需要将私钥复制到客户端电脑上,私钥文件存放地点:/home/admin/.ssh/id_rsa。
5.
转换来自服务器端的私钥
由于服务器生成的私钥不能被客户端直接使用,我们还需要对私钥进行转换。下面我们就以最常用的PuTTY客户端为例进行说明。
对于PuTTY客户端,我们可以使用PuTTYGen这款工具对私钥进行转换。
运行PuTTYGen,然后点击Load,载入私钥,如下图:
开始转换,这时会弹出一个对话框,要求输入在服务器端建立此私钥时的口令,如下图:
转换完成后,会弹出一个转换成功的对话框,如下图:
点击“Save private key”保存私钥,如下图:私钥转换完成。
6.
使用
putty
登录服务器
打开PuTTY工具,在左面板上点击Auth(认证方式),然后点击右面板上的Browse,加载刚才转换后的私钥,如下图:
然后点击左面板的Session,回到主机连接信息对话框,如下图:
在“Host Name”项填入主机名或IP地址,然后在“Saved Sessions”项填入此连接的名称(可以是任意名称),然后点击Save,保存主机连接设置,如下图:
双击新建立的连接,输入用户名和密码就可以连接了。注意:这里的密码不是用户密码,而是刚才建立私钥时设置的密码。
OK,通过“钥匙”方式登录SSH服务器的设置至此完成。
这里还有一点需要注意的:如果要允许某个用户使用SSH连接服务器,就必须基于这个用户建立对应的公钥和私钥。
三、
VNC
使用SSH可以安全的连接到Linux服务器,但是如果连接中断,那么连接过程中执行的命令也会中止。在使用SSH连接过程中执行一些程序时,中断是很危险的,可能对系统造成一定的影响。所以,我们还需要考虑另外的一种解决方案,以便一些特殊情况下使用。VNC刚好可以满足这个需求,使用VNC连接,在网络中断的情况下,原来执行的命令等不会受到影响,系统会继续执行。而且VNC可以提供一个完整的Linux操作界面,通过它,可以像操作本机一样操作Linux服务器。下面我们就来看看使用VNC连接的情况:
1.
软件安装
我们可以使用命令rpm -qa|grep vnc检查vnc的安装情况,系统已经默认安装了。如果系统没有安装,可以在安装光盘上找到该程序包。使用rpm安装就可以了。
2.
启动
VNC
服务
使用命令vncserver :1就可以启动VNC服务了,其中,“数字”1表示桌面号。第一次执行时,会需要输入连接密码,该密码保存在/root/.vnc/passwd中;同时在用户主目录下的.vnc子目录中为用户自动建立xstartup配置文件,在每次启动VNC服务时,都会读取该文件中的配置信息。
我们通过windows的VNC Viewer输入“192.168.99.9:1”,然后点击OK,输入密码就可以通过VNC连接服务器了。
如下图,已经连接到了Linux服务器,不过由于使用的是x-windows的桌面环境,所以界面看起来不美观。另外,除了使用VNC Viewer进行登录,我们还可以使用浏览器进行连接,不过,需要先安装Java支持环境和VNC viewer for Java)
3.
配置
VNC
桌面环境为
KDE
或
GNOME
桌面环境:
VNC服务默认使用twm图形桌面环境,刚才我们已经看到了,不美观。还好,我们可以修改它,使用命令:vi /root/.vnc/xstartup,
将最后一行的twm改为startkde则修改为KDE桌面环境,修改为gnome-session则为GNOME桌面环境。比如,我们将它改为KDE桌面环境,如下图:
重启VNC服务,如下图:
我们再用VNC Viewer连接,现在出现的就是KDE桌面环境了,如下图:
4.
配置多个桌面环境
使用命令/etc/sysconfig/vncservers修改配置文件(修改部分见红色框内),如下图:
这里我们将桌面1设置为root用户的桌面,桌面2设置为admin用户的桌面。
注意:设置好后,需要以对应用户的身份登录,手动执行一次vncserver :<number>命令,以初始化$HOME/.vnc/xstartup和$HOME/.vnc/passwd文件。
以后启动的话,可以使用/etc/init.d/vncserver start命令,现在可以使用VNC Viewer登录了:
5.
修改
VNC
访问密码:
我们可以通过命令vncpasswd修改用户的连接密码,注意,如果有多个不同的用户,需要在不同用户的用户环境下修改其连接密码。
OK,三种不同的远程管理服务都已经介绍完了,大家在日常工作中可以根据自己的需要对服务器进行相应的配置,以便更好的进行远程管理。