做为网络管理员,我们不可能总是在机房操作服务器,对于
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 :
命令,以初始化
$HOME/.vnc/xstartup
和
$HOME/.vnc/passwd
文件。
以后启动的话,可以使用
/etc/init.d/vncserver start
命令,现在可以使用
VNC Viewer
登录了:
5.
修改
VNC
访问密码:
我们可以通过命令
vncpasswd
修改用户的连接密码,注意,如果有多个不同的用户,需要在不同用户的用户环境下修改其连接密码。
OK
,三种不同的远程管理服务都已经介绍完了,大家在日常工作中可以根据自己的需要对服务器进行相应的配置,以便更好的进行远程管理。