现在把这篇博客加入了telnet和ssh远程登录的内容。这篇总共介绍vnc telnet ssh这三种远程登录方式。关于外网登录的内容保留在VNC第9条中。(2012.05.31)。
一:VNC远程登录配置学习
VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的。VNC是在基于UNIX和Linux操作系统的免费的开放源码软件,远程控制能力强大,高效实用,其性能可以和Windows和MAC中的任何远程控制软件媲美。
VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。VNC的基本运行原理和一些Windows下的远程控制软件很相象。VNC的服务器端应用程序在UNIX和Linux操作系统中适应性很强,图形用户界面十分友好,看上去和Windows下的软件界面也很类似。在任何安装了客户端的应用程序(vncviewer)的Linux平 台的计算机都能十分方便的和安装了服务器端的应用程序(vncserver)的计算机相互连接。另外,服务器端 (vncserver)还内建了Java Web接口,这样用户通过服务器端对其他计算机的操作就能通过Netscape显示出来了,这样的操作过程和显示方式比较直观方便。
1.确认VNC是否安装
默认情况下,Red Hat Enterprise Linux安装程序会将VNC服务安装在系统上。
确认是否已经安装VNC服务及查看安装的VNC版本
[root@localhost ~]# rpm -qa | grep vnc
tigervnc-server-1.0.90-0.17.20110314svn4359.el6.i686
libvncserver-0.9.7-4.el6.i686 ###这里为我自己的情况。这个无所谓。只要确定你的vnc安装即可。
2.启动VNC服务
使用vncserver命令启动VNC服务,命令格式为“vncserver :桌面号”,其中“桌面号”用“数字”的方式表示,每个用户连个需要占用1个桌面
启动编号为1的桌面示例如下
[root@localhost ~]# vncserver :1
You will require a password to access your desktops.
Password:
Verify:
以上命令执行的过程中,因为是第一次执行,需要输入密码,这个密码被加密保存在用户主目录下的.vnc子目录(/root/.vnc/passwd)中;同时在用户主目录下的.vnc子目录中为用户自动建立xstartup配置文件(/root/.vnc/xstartup),在每次启动VND服务时,都会读取该文件中的配置信息。
BTW:/root/.vnc/目录下还有一个“testdb:1.pid”文件,这个文件记录着启动VNC后对应后天操作系统的进程号,用于停止VNC服务时准确定位进程号。
3.VNC服务使用的端口号与桌面号的关系
VNC服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下
桌面号为“1” ---- 端口号为5901
桌面号为“2” ---- 端口号为5902
桌面号为“3” ---- 端口号为5903
……
基于Java的VNC客户程序Web服务TCP端口从5800开始,也是与桌面号相关,对应关系如下
桌面号为“1” ---- 端口号为5801
桌面号为“2” ---- 端口号为5802
桌面号为“3” ---- 端口号为5803
……
基于上面的介绍,如果Linux开启了防火墙功能,就需要手工开启相应的端口,以开启桌面号为“1”相应的端口为例,命令如下
[root@localhost ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
[root@localhost ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT
这里只是暂时打开端口。重启就不会打开了。如何要让防火墙打开这个端口。执行完之后。执行:
[root@localhost ~]# service iptables save
这样ip过滤规则就可以保存在/etc/sysconfig/iptables中了。
4.测试VNC服务
第一种方法是使用VNC Viewer软件登陆测试,操作流程如下 ###这里是我自己的内网ip。
启动VNC Viewer软件 --> Server输入“92.168.1.3:5901” --> 点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功
第二种方法是使用Web浏览器(如Firefox,IE,Safari)登陆测试,操作流程如下
地址栏输入http://192.168.1.3:5801/ --> 出现VNC viewer for Java(此工具是使用Java编写的VNC客户端程序)界面,同时跳出VNC viewer对话框,在Server处输入“192.168.1.3:5901”点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功
(注:VNC viewer for Java需要JRE支持,如果页面无法显示,表示没有安装JRE,可以到http://java.sun.com/javase/downloads/index_jdk5.jsp这里下载最新的JRE进行安装)
5.配置VNC图形桌面环境为KDE或GNOME桌面环境
如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供使用,这是为什么呢?怎么才能看到可爱并且美丽的KDE或GNOME桌面环境呢?回答如下
之所以那么的难看,是因为VNC服务默认使用的是twm图形桌面环境的,可以在VNC的配置文件xstartup中对其进行修改,先看一下这个配置文件
[root@localhost ~]# vim /root/.vnc/xstartup
将这个xstartup文件的最后一行修改为“startkde &”,再重新启动vncserver服务后就可以登陆到KDE桌面环境
将这个xstartup文件的最后一行修改为“gnome-session &”,再重新启动vncserver服务后就可以登陆到GNOME桌面环境
重新启动vncserver服务的方法:
[root@localhost ~]# vncserver -kill :1
[root@localhost ~]# vncserver :1
6.配置多个桌面
可以使用如下的方法启动多个桌面的VNC
vncserver :1
vncserver :2
vncserver :3
……
但是这种手工启动的方法在服务器重新启动之后将失效,因此,下面介绍如何让系统自动管理多个桌面的VNC,方法是将需要自动管理的信息添加到/etc/sysconfig/vncservers配置文件中,先以桌面1为root用户桌面2为oracle用户为例进行配置如下:
格式为:VNCSERVERS="桌面号:使用的用户名桌面号:使用的用户名"
[root@localhost ~]# vi /etc/sysconfig/vncservers
VNCSERVERS="1:root 2:zz"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
7.修改VNC访问的密码
使用命令vncpasswd对不同用户的VNC的密码进行修改,一定要注意,如果配置了不同用户的VNC需要分别到各自用户中进行修改,例如在我的这个实验中,root用户和oracle用户需要分别修改,修改过程如下:
[root@localhost ~]# vncpasswd
Password:
Verify:
8.启动和停止VNC服务
1)启动VNC服务命令
[root@localhost ~]# /etc/init.d/vncserver start
2)停止VNC服务命令
[root@localhost ~]# /etc/init.d/vncserver stop
3)重新启动VNC服务命令
[root@localhost ~]# /etc/init.d/vncserver restart
4)设置VNC服务随系统启动自动加载
第一种方法:使用“ntsysv”命令启动图形化服务配置程序,在vncserver服务前加上星号,点击确定,配置完成。
第二种方法:使用“chkconfig”在命令行模式下进行操作,命令使用如下(预知chkconfig详细使用方法请自助式man一下)
[root@localhost ~]# chkconfig vncserver on
9.外网登录
其实还是蛮简单的。就是在路由器里做一下端口映射就可以了。让外网访问能够访问映射到自己的ip上。端口映射其实就是常说的NAT地址转换的一种,其功能就是把在公网的地址转翻译成私有地址, 采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。
端口映射其实就是常说的NAT地址转换的一种,其功能就是把在公网的地址转翻译成私有地址, 采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。
VNC远程登录学习就暂时总结到这里。以后可以在机房远程自己的电脑喽。哇哈哈。。
现在在机房成功登录到自己到电脑。打开博客留下此言。呵呵。(2012.05.30)。
二:Telnet配置学习
1.确认telnet及telnet-server安装。如果木有安装请自行安装。
2.启动telnet服务
*开启服务
方法一:使用ntsysv,在出现的窗口之中,将 telnet 勾选起来,然后按下 OK 即可 !
方法二:编辑 /etc/xinetd.d/telnet
#vi /etc/xinetd.d/telnet
[root@localhost ~]# vi /etc/xinetd.d/telnet
找到 disable = yes<==就是改这里,将 yes 改成 no 即可!服务预设是关闭的
*激活服务
telnet 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的 telnet 自然也就可以被激活。
[root@localhost ~]# service xinetd restart
3.测试服务
[root@localhost ~]#telnet ip(或者hostname)
如果配置正确,系统提示输入远程机器的用户名和密码
Login:
Password:
注:默认只允许普通用户
4.设置telnet端口
#vi /etc/services
进入编辑模式后查找telnet(???怎样查找)
会找到如下内容:
telnet 23/tcp
telnet 23/udp
将23修改成未使用的端口号(如:2000),退出vi,重启telnet服务,telnet默认端口号就被修改了。
5.Telnet服务限制
如果原本的默认值你并不满意,那么你可以修改成比较安全一点的机制。假设你这个 Linux 是一部主机,而且他有两块网络接口,分别是对外的 192.168.0.1 与对内的210.45.160.17 这两个,如果你想要让对内的接口限制较松,而对外的限制较严格,你可以这样的来设定:
#vi /etc/xinetd.d/telnet
# 先针对对内的较为松散的限制来设定:
service telnet
{ disable = no <==预设就是激活 telnet 服务
bind = 210.45.160.17 <==只允许经由这个适配卡的封包进来
only_from = 210.45.160.0/24 <==只允许 210.45.160.0/24 这个网段的主机联机进来使用 telnet 的服务
.....
}
# 再针对外部的联机来进行限制
service telnet
{
disable = no<==预设就是激活 telnet 服务
bind = 192.168.0.1<==只允许经由这个适配卡的封包进来
only_from = 192.168.0.0/16<==只允许 192.168.0.0 ~ 192.168.255.255 这个网段联机进来使用 telnet 的服务
only_from = .edu.cn<==重复设定,只有教育网才能联机!
no_access = 192.168.25.{10,26}<==不许这些 PC 登入
access_times = 1:00-9:00 20:00-23:59 <==每天只有这两个时段开放服务
......
}
6.Telnet root用户的登入
root 不能直接以 telnet 连接上主机。 telnet 不是很安全,默认的情况之下就是无法允许 root 以 telnet 登入 Linux 主机的 。若要允许root用户登入,可用下列方法
[root @test /root]# vi /etc/pam.d/login
#auth required pam_securetty.so #将这一行加上注释!
或
# mv /etc/securetty /etc/securetty.bak
这样一来, root 将可以直接进入 Linux 主机。不过,建议不要这样做。还可以在普通用户进入后,切换到root用户,拥有root的权限!
三:SSH配置学习
SSH是一个用来替代TELNET、Rlogin以及Rsh的传统的远程登陆程序的工具,主要是想解决口令在网上明文传输的问题。为了系统安全和用户 自身的权益,推广SSH是必要的。SSH有两个不兼容的版本1.x,2.x!RedHat Linux 9将默认的远程管理服务设置成OpenSSH(一个ssh的替代产品)。不需要重新安装软件包!
1.配置openssh服务器
ssh的配置文件是/etc/ssh/ssh_config,一般不要修改!
*启动服务器!
#ntsysv =>确认将sshd前面的勾已打上!
*手工启动OpenSSH:
#service sshd start
#service sshd restart(重新启动)
*停止服务器:
#service sshd stop
2.使用OpenSSH客户端
Redhat linux 9默认已安装了OpenSSH的客户端,客户端和服务器连接时,可以使用两种验证方式:基于口令的验证方式和基于密匙的验证方式!Windows下推荐使用SecureCRT或SSH Secure Shell非商业版.
*基于口令的验证方式
这种验证方式要求用户输入用户名称和密码!若没有指定用户名称和密码,则默认使用当前在客户机上的用户名!
例1:直接登陆
[root@wljs /]#ssh 210.45.160.17
则登陆用户名为客户机当前用户名!
例2:指定用户名登陆
[root@wljs /]#ssh wwz@210.45.160.17
或: [root@wljs /]#ssh –l wwz 210.45.160.17
上面过程结束后,系统将会提示你输入用户名和密码!
*基于密匙的验证方式
使用密匙的验证方式,用户先需要为自己创建一对密匙:公匙和私匙。(公匙用在要登陆的服务器上)
OpenSSH公开密匙的密码体制有RSA、DSA!
创建密匙:
例:[root@wljs /]#ssh-keygen –t rsa
回车后,要求输入使用密匙时的口令!这样便生成了公匙和私匙:放在用户主目录下的.ssh目录下,文件名:id_rsa.pub和id_rsa!必须 将公匙复制到登陆的服务器的~/.ssh/目录下,并改名为:authorized_keys!然后,便可使用密匙方式登陆!
#ssh [–l username] ip地址或主机名
3.OpenSSH上常用的命令
*不登陆远程系统使用命令
#ssh 210.45.160.17 [命令] [参数]
*本地系统和远程系统间文件的传输
#scp a.txt root@210.45.160.17:/b.txt
#scp root@210.45.160.17:/b.txt /c.txt
*sftp命令
Sftp 命令和ftp命令类似,它是OpenSSH提供的网络传输文件的小工具,它更加安全,使用和ftp相似的命令:主要有如下几个:
*登陆
#ftp 210.45.160.17
*ftp 会话的打开与关闭
打开:open 210.45.160.27
关闭:close
*文件的传输
从ftp服务器上得到文件:
Get a.txt
向ftp上放文件
Put a.txt
*退出ftp
Bye
*其他
bell:每个命令执行完毕后计算机响铃一次
Cd ,ls 等一些常见命令也可以在ftp服务器目录中使用!
telnet和ssh比想象中的简单多了。呵呵。(2012.05.31)。