Linux网络管理

2024-06-03

Linux网络管理(精选12篇)

Linux网络管理 第1篇

网络流量监测统计系统在Linux系统下使用gcc作为编译设计完成。该程序利用了BSD网络套接口(Socket)编程,实现了对TCP/IP协议上的局域网内各个主机的信息流量监测、统计,达到了网络流量统计的快速、准确、完整。

1 系统的具体实现

(1) 建立一个socket

为了能够从数据链路层接收到所有到达此网络接口卡的数据包,我们使用了BSD网络套接口(Socket)编程,首先要建立一个Socket用于连接,使用socket()函数,socket()函数创建一个通讯端点并返回一个套接口。Socket函数的原形是socket(int domain,int socket_type,intprotocol)。我们定义通信类型用PF_INET,是指利用IPV4协议族,套接字类型使用SOCK_DGRAM类型,协议设置为0。

(2) 系统调用ioctl()

套接口建立好后用于系统调用ioctl()函数,(ioctl(fd,SIOCGIFCONF,&ifc),它需要头文件/usr/include/sys/ioctl.h来调用,该系统调用的函数原形为:int ioct(lint d,int request),它利用特定的参数来操作底层的设备文件。d是文件描述符的意思,它是刚刚创建的套接口的返回值,还有本系统中的SIOCGIFCONF,该命令可以取得用户指定的网络接口的配置值,而每一命令都有相应的一个数据结构与之对应。

2 contentip.c 的实现

2.1 SOCK_RAW 编程

为了能够获取所有的数据包,我们采用SOCK_RAW编程。套接字(Socket)编程方法。原始数据报套接字(SOCK_RAW),是将socket()函数中的socket_type设为它之后,可以收发包含链路层报头的原始(raw)分组。它允许用户在用户空间实现在物理层之上的协议模块。链路层报头信息可在作为一般格式sockaddr_ll中得到。socket的protocol参数指的是IEEE 802.3按网络层排序的协议号,在头文件中有所有被允许的协议的列表。当protocol被设置为htons(ETH_P_ALL)时,可以接收所有的协议。到来的此种类型的分组在传送到在内核实现的协议之前要先传送给分组套接口。

考虑到一个应用程序通常用与“时间”服务对应的端口来和服务器连接,而服务器提供某种机制来通知用户使用另一端口。因此getservbyname()函数返回的端口号已经是网络顺序了,可以直接用来组成一个地址,而不需要进行转换。然而如果用户输入一个数,而且指定使用这一端口号,应用程序则必须在使用它建立地址以前,把它从主机顺序转换成网络顺序。相应地,如果应用程序希望显示包含于某一地址中的端口号,这一端口号就必须在被显示前从网络顺序转换到主机顺序。

这样我们就可以得到链路层的报头信息,而sockaddr_ll数据结构在头文件/usr/include/linux/if_packet.h中定义的,我们定义了ll为sockaddr_ll数据结构。

2.2 建立一个 socket 并用 bind()函数把 sock 和&ll 绑定

我们创立一个sock用于建立连接,并用bind()函数把sock和&ll相关联。bind()函数作用是把一个本地的名字和一个无名的套接口捆绑起来,它的函数原形是int bind(int sockfd,structsockaddr *my_addr,int addrlen)。这样我们就可以通过它来接收数据包。

2.3 Recvfrom()函数接收数据包

bind()函数把sock和&ll相关联,我们就可以通过recvfrom()函数从(struct sockaddr *)&ll中的buf中读取数据包,recvfrom()函数是从一个已连接的或未连接的套接口接收数据。s是recvfrom函数获得数据包来源的套接口描述符,在本系统中是sock,buf是指向数据包存放的缓冲区的指针,本系统中是buffer,len是缓冲区的长度,flags在本系统中使用的是0,是让其工作在正常模式,from指向发送者地址的缓冲区,fromlen是地址长度。这样我们就可以开始对收集到的数据包进行分析了。

2.4 分析出 IP 协议 TCP 和 UDP 并输出结果

一个完整的数据包被接收后,由外至内可分为以太网的头文件,IP的头文件(现在我们只分析IP包的TCP和UDP,对arp等暂不考虑,那些由packet.c来完成),TCP或UDP的头文件,它们分别被定义为ethhdr *eth,iphdr *ip,tcphdr *tcp,udphdr *udp。利用强制类型转换把接收到的数据格式化为相应的数据类型。

最后我们根据IP的协议来判断是IPPROTO_TCP还是IPPROTO_UDP,这是在/usr/include/netinet/in.h里定义的(这里面定义了许多种IP的协议,在这我只是分析最常用的两种TCP和UDP,其他的协议在packet.c里再详细的介绍),并把它们的内容写入文件tcpcontent.txt和udpcontent.txt,内容保存的实现是通过读取以太网和IP协议TCP和UDP的内容来实现的。

2.5 创建文件用于保存数据

最后我们建立两个文件来保存数据包的内容,它们分别为tcpcontent.txt和udpcontent.txt,用来保存TCP和UDP的内容,它们是以“a+b”模式建立的,“a+”表示打开一个文本文件,可以更新文件(读取和写入),向已有文件的尾部追加内容,如果该文文件不存在则先创建之,可以读取整个文件,但写入时只能追加内容。而“b”表示以二进制模式而非文本模式打开文件(以二进制模式是为了能够看到TCP和UDP的内容)。如果用户指定IP,则建立另外的两个文件来保存数据包的内容,分别为tcpcontentip.txt和udpcontentip.txt,同上面一样,它们也是以“a+b”模式建立的。

至此,我们已经能够从网络接口处接收所有到达的数据包,并把它们分析、处理并输出,从而通过对输出结果的分析,能够实现的网络流量的监测和统计。

3 结束语

对于这个系统的使用建议,如果可能,可以单独放在一台以linux为系统的计算机上,作为对本局域网监测使用。

对于系统本身的改进建议,有以下两点:

(1)可以考虑如何减少硬件设施和网络资源的占用。

(2)使之应用于图形方式的系统下。

参考文献

[1](美)W.Richard Stevens著.TCP/IP详解卷1:协议.北京:机械工业出版社.2002.

[2](美)W.Richard Stevens著.TCP/IP详解卷2:实现.北京:机械工业出版社.2002.

[3](美)W.Richard Stevens著.UNIX网络编程卷1.Prentice Hall PTR.

Linux系统管理 第2篇

(2) 在Linux下,软件有多种安装包格式,而每种格式又有自己的安装命令和方法。目前,Linux下流行的安装包格式主要有两种:一是二进制分发包格式;二是源代码分发包格式。Linux软件的二进制分发包是指事先已经编译为二进制形式的软件包的发布形式,其优点是安装使用容易,缺点是缺乏灵活性。二进制分发包是为特定的硬件或操作系统平台编译的,不能在另外的平台或环境下正确执行。二进制分发包主要有RPM包、dpkg包和使用tar命令封装的包。

RPM包是Red Hat Linux提供的包封装格式,后缀名是.rpm;dpkg是Debian Linux提供的包封装格式,后缀名是.deb;tar封装包是以tar与其他压缩工具(如gzip,bzip2)将应用程序和相关文件封装成包的方式,后缀名的格式主要是为.tar.gz、tar.Z、tar.bz2或.tgz。RPM包和dpkg包是应用程序已经预先编译过的可直接安装文件。

对于以tar包分发的二进制包,则需使用命令将tar包解压,然后运行相应目录中的应用程序或运行程序提供的脚本。选择tar包,需要针对用户的系统版本和所在的硬件平台。只有选择与用户的系统版本和硬件平台想对应的软件版本,才可以正常运行软件。

(3) 源代码包就是源代码可见的软件包。一个软件如果有源码,任何人都能看到它是如何开发而来的,用户可以通过修改源码来定制、优化软件,以适合实际需要。

(4) Linux操作系统中,为方便各种用户在不同的环境中使用,提供了一系列的编辑器,包括emacs、ed、ex和vi等。其中vi是最常用和最重要的编辑器,它是唯一在所有版本的Linux系统和其他各种版本的UNIX系统上都配备的文本编辑器。

vi编辑器有3种操作模式,分别是命令模式(Command mode)、插入模式(Insertmode)和末行模式(Last line mode)

1) 系统管理命令

1) 查看用户和组文件,注意每个文件中的重要字段

进入/etc目录,

[root@lab root]# cd /etc/

注意查看和用户和用户组有关的文件

[root@lab etc]# ls

查看用户帐号文件

[root@lab etc]# cat passwd

查看用户口令文件

[root@lab etc]# cat shadow

查看用户组帐号文件

[root@lab etc]# cat group

查看用户组口令文件

[root@lab etc]# cat gshadow

2) <2>用户和组帐户的维护命令

增加student用户组

[root@lab etc]# groupadd student

增加student用户,并且指定用户组为student

[root@lab etc]# useradd -g student student

为student用户设置密码

[root@lab etc]# passwd student

使用su命令将当前用户由root转换为student

[root@lab etc]# su student

使用id命令显示当前用户的UID和GID

[student@lab etc]$ id

显示登陆者自身的用户名称

[student@lab etc]$ whoami

将当前用户切换为root

[student@lab etc]$ su

使用id命令查看student的UID和GID

[root@lab root]# id student

使用usermod命令修改student用户名为stu

[root@lab root]# usermod -l stu student

使用groupmod命令修改student用户组为stu

[root@lab root]# groupmod -n stu student

查看stu用户的UID和GID,注意和student进行比较

[root@lab root]# id stu

删除stu用户

[root@lab root]# userdel stu

查看stu用户是否存在

[root@lab root]# id stu

(2) 软件的安装

1) rpm包软件的安装

进入/root/lab目录,此目录存放着实验用软件

[root@lab root]# cd /root/labsoft

列出目录中文件

[root@lab labsoft]# ls

使用rpm命令安装vsftpd软件(FTP软件)

[root@lab labsoft]# rpm -ivh vsftpd-1.1.3-8.i386.rpm

进入/etc目录

[root@lab labsoft]# cd /etc/

列出文件,注意观察是否有vsftpd目录

[root@lab etc]# ls

进入vsftpd目录

[root@lab etc]# cd vsftpd

列出文件,看到vsftpd.conf文件,说明安装成功

[root@lab vsftpd]# ls

回到/root目录

[root@lab vsftpd]# cd/root

卸载vsftpd

[root@lab root]# rpm -e vsftpd

查看/etc目录下是否还有vsftpd目录

[root@lab root]# ls /etc

2) 二进制包软件的安装

进入/root/labsoft目录,此目录存放着实验用软件

[root@lab root]# cd /root/labsoft

将压缩包jakarta-tomcat-5.0.30.tar.gz复制到 /usr/local/目录下

[root@lab labsoft]# cp jakarta-tomcat-5.0.30.tar.gz /usr/local/

进入/usr/local/目录

[root@lab labsoft]# cd /usr/local/

查看是否有jakarta-tomcat-5.0.30.tar.gz

[root@lab local]# ls

使用tar命令将jakarta-tomcat-5.0.30.tar.gz 进行解压缩

[root@lab local]# tar zxvf jakarta-tomcat-5.0.30.tar.gz

查看目录,是否生成目录jakarta-tomcat-5.0.30

[root@lab local]# ls

进入jakarta-tomcat-5.0.30目录

[root@lab local]# cd jakarta-tomcat-5.0.30

列出文件,可以知道这个是二进制包,则安装完成

[root@lab jakarta-tomcat-5.0.30]# ls –l

回到/usr/local目录

[root@lab jakarta-tomcat-5.0.30]# cd ..

删除目录和安装文件

[root@lab local]# rm -fr jakarta-tomcat-5.0.30

[root@lab local]# rm -fr jakarta-tomcat-5.0.30.tar.gz

3) 源代码包软件的安装

进入/root/labsoft目录,此目录存放着实验用软件

[root@lab root]# cd /root/labsoft

将httpd-2.0.52.tar.gz 复制到/usr/local/目录

[root@lab labsoft]# cp httpd-2.0.52.tar.gz /usr/local/

进入/usr/local/目录

[root@lab labsoft]# cd /usr/local/

列出文件,查看是否有httpd-2.0.52.tar.gz

[root@lab local]# ls

使用tar命令将httpd-2.0.52.tar.gz 解压缩

[root@lab local]# tar zxvf httpd-2.0.52.tar.gz

列出文件,查看是否出现httpd-2.0.52目录

[root@lab local]# ls

进入httpd-2.0.52目录

[root@lab local]# cd httpd-2.0.52

列出文件,发现为源代码包

[root@lab local]# ls

对源码进行配置

[root@lab httpd-2.0.52]# ./configure

编译源代码

[root@lab local]# make

安装软件

[root@lab local]# make install

清除安装过程中产生的无用文件

[root@lab local]# make clean

进入上级目录/usr/local

[root@lab httpd-2.0.52]# cd ..

列出文件,查看是否出现apache2目录

[root@lab local]# ls

进入apache2目录

[root@lab local]# cd apache2/

列出文件,查看后可知安装完成

[root@lab apache2]# ls

回到/usr/local目录

[root@lab apache2]# cd ..

删除目录和安装文件

[root@lab local]# rm -fr apache2

[root@lab local]# rm -fr httpd-2.0.52

Linux网络管理 第3篇

【摘要】系统在执行多道程序时需要共享资源,而这种共享资源就会导致各个程序之间出现相互制约,这些过程都是动态的,而程序本身是一组指令的集合,这是静态的过程,我们为了能够准确去描述程序动态的整体执行过程,就引入了“进程(Process)”这个概念。进程是具有一定独立功能的程序,程序可以包括进程,进程也可以包括程序,进程是操作系统动态执行的基本单元,既属于基本的分配单元,也是最基本的执行单元,本文是就以linux中进程的概念、分类、启动方式及使用方法、注意事项进行分析和研究。

【关键词】进程;终端;虚拟内存

一、Linux进程的基本概念

1、进程就是指系统在进行资源分配和调度所需要的最基本单位,也是一个具有独立功能的程序的一次运行过程。实际上就是每一个程序模块还有它执行时所要处理的数据共同组成了进程。

2、理解进程和程序的区别:●程序是静态的,但进程都是动态的●程序是永久的,但进程都是有生命的●一个程序可以包含若干个进程,同样的,一个进程也可以包含若干个程序

3、进程号。Linux之中每一个进程都拥有一个唯一的标识号,被称为PID(Process ID)。系统启动后的第一个进程是init,它的进程号是1。init是惟一一个由系统内核直接运行的进程,也是系统中所有进程的起源。除了init之外,每个进程都有父进程。

二、 Linux进程的分类

当你启动Apache程序的时候,linux系统会自动为它分配一个进程号,然后我们就可以使用这个进程号来监视和控制这个程序,观察它的运行状态。我们一般把进程分为以下3大类:1)交互式的进程:由一个Shell命令来启动的进程。这些进程常和用户发生交互,要有一定的时间来等待用户的操作。这种进程既可以在后台运行,当然也可以在前台来运行。如控制台命令shell,文本编辑器等。2)批处理的进程:不与特定的终端相关联,也就是不需要交互,主要是在后台运行的进程。如编译器、数据库搜索引擎等。3)守护进程:一般是由系统在开机时自动激活启动或是由超级管理用户root来启动,对调度有严格的要求,不能被低优先级进程阻塞,一般运行于后台。如音视频应用程序等。

三、进程管理的常用命令

1、ps的应用。-功能:用来显示系统进程的各方面信息,方便我们监视和控制程序。-格式:ps[参数]-参数:

进程的状态(STAT)。R,进程处于运行(系统的当前进程)或者准备运行状态(等待系统分配CPU);S,进程处于睡眠状态;T,追踪或停止;Z,僵死进程(zombie),进程已经结束但因没有妥善处理尚未释放所有资源;W,进程没有固定的pages;<,高优先级的进程;N,低优先级的进程。作为一个Linux系统管理员,其主要的一个核心任务就是进程的监视和控制。"ps"就是这样的一个监视Linux的标准工具,它会显示正在运行的程序信息。比如,哪些程序运行多长时间和使用多少CPU,哪些程序是哪个用户来运行的等等。当我们需要人为来判定是哪个程序会让系统变慢或是终止程序的时候,这些信息则是必需的。用户可以通过ps命令看到所有的进程,包括正在运行的和没有运行的。其中,USER域指明了是由哪个用户启动了这个命令。这个信息可以帮助你缩小问题范围,假设某一个用户占用了服务器大量的I/O,如果我们能够很快找到它,那么就可以释放其所占据的资源。通过ps命令,用户可以实时地查看每个进程的状态,如占用了多少CPU,查看内存的状态及VSZ(虚拟内存大小)和RSS(常驻集大小)的运行状态。我们可以通过这些数据,来确定这个进程是在正常运行还是出现了异常。我们是在尽力确保正确合理地运用系统资源,所以经常要由管理员来决定对进程进行终止或重启的操作。

2、kill的应用

进程通信:Linux中,kill命令是通过向进程发送指定的信号来结束进程的。前台进程在运行时,可以用【ctrl+c】键来终止它。后台进程可以使用kill命令向进程发送强制终止信号,以达到终止进程的目的。-功能:终止正在运行的进程或作业;-格式:kill [选项] PID

3、进程调度

进程调度就是通过合理的调度,选择下一个要运行的进程,系统资源才能最大限度地发挥作用,多进程才会有并发执行的效果。而进程之间是资源竞争通过谦让度来实现的。谦让度的值从-20到19。高谦让度表示进程优先级别最低,执行的顺序靠后。nice命令:是在创建进程时为进程指定谦让度的值。renice命令:是通过进程ID找到相应的进程,用此命令来修改谦让度,即是更改进程的优先级。

4、交互式的进程管理工具。●系统监视器gnome-system-monitor●终止进程工具xkill●监视系统任务的工具top。总之,Linux系统上每个用户任务、每个系统的守护进程,我们都称为进程。Linux系统则用分时管理的方法能够使所有的任务共同来分享系统上的资源。而我们要做的就是如何去控制这些进程,让它们能够很好地为用户服务。

作者简介

Linux网络管理 第4篇

关键词:教学改革,课程建设,开源技术

一、引言

在教高[2006]16号文的指导下, 高职教育教学改革百花齐放, 各高职院进行了大量而富有成效的探索。

高职教育教学改革的龙头是专业建设与改革, 改革的核心是课程的建设与创新, 而其必由之路则是校企合作。近几年来, 课程改革的方向和思路也逐步明朗, 即项目导向, 任务驱动, 案例教学。

在大量社会调研基础上, 为适应社会需要及开源技术迅速发展的潮流, 我院计算机网络技术专业人才培养方案于2007年毅然引入了《Linux桌面管理》、《Linux用户管理》、《Linux系统管理》、《Linux网络管理》及《Linux网络编程》等Linux操作系统系列课程。

根据高职教育的特点, 我院对这些课程进行了深入探索和大胆创新。2007年我院即与国内最知名的Linux操作系统发行商北京中科红旗软件技术有限公司 (以下简称中科红旗) 校企合作。中科红旗给予了我院大力支持和帮助, 为我院Linux系列课程在顺利开课奠定了坚实的基础。

二、课程建设总体思路

在《Linux网络管理》课程建设中, 笔者与所在教学团队做了大量细致的调研工作。经分析、总结, 最终确定《Linux网络管理》课程建设思路为"1-5-12-15-18-38-88-30", 即1个岗位, 5个职责, 12个技术能力, 15个知识模块, 18个项目, 38个技术点, 88个任务, 30个拓展任务, 如图1所示:

1个工作岗位即是网络管理员岗位。5个岗位职责, 即操作系统管理、服务器管理、网络设备管理、用户终端管理、职业道德。12个岗位能力, 即基于Linux操作系统的各种服务器搭建能力。18个项目详见表1。

此18个项目包含38个技术点, 再通过88个任务来分解和实现。整个课程脉络清晰, 无累赘, 直奔主题。这充分体现了本课程的三大特色:

1.岗位明确, 校企合作开发, 技术典型实用, 适合高职教育特点。

2.课程内容设计主干清晰, 素能并举, 任务实施基于工作过程, 适合岗位特点。

3.项目化整为零, 技术由浅入深, 任务小中突破, 以不断的成就感唤起学生的学习欲望和自信心, 适合高职生特点。

三、一个具体的案例实现

在88个任务中, 以"实现反向代理"为例, 阐述一下具体设计思路。

如果一个企业的业务主要是提供网络服务的话, 应使用反向代理。在反向代理模式中, 代理服务器放置在应用服务器的前面, 当互联网用户访问某个Web服务器时, 通过DNS服务器解析后的IP地址是反向代理服务器 (Reverse Proxy Server) 的IP地址, 而非原始Web服务器的IP地址, 这时反向代理服务器充当Web服务器, 浏览器可以与它连接, 无需再直接与Web服务器相连。因此, 大量Web服务工作被卸载到反向代理服务器上。这不但能够防止外部网主机与Web服务器直接通信带来的安全隐患, 而且能够在很大程度上减轻Web服务器的负担, 提高访问速度。典型的反向代理结构如图2所示:

由于反向代理服务器是针对企业网络服务而设计的, 因此, 要让学生去体验和感受真实的反向代理服务很困难。但在教学中, 教师须想方设法通过实验来让学生较为直观地感受反向代理服务。为了以尽可能简洁的方式来实现教学效果, 笔者设计在一台计算机上启动三个虚拟客户系统来完成此实验 (当然用三台互联的计算机来实现此实验也可) 。三个客户系统及其具体配置如表3所示:

按表3配置完成后, 在Windows XP中打开IE浏览器, 输入"http://www.test.com", 如果出现了Redhat5的web服务测试页面, 则说明本实验顺利完成!

四、课程建设及成果

1.2008年8月, 任课教师获得了"红旗Linux认证讲师"证书。同月, 建成《红旗Linux四川重点实验室》。

2.2008年11月, 我院参赛队获得第二届"红旗杯"全国大学生开源技术竞赛团队特等奖和技术开拓奖。

3.2009年5月校企合作共同建设完成了《Linux网络管理》省级精品课程 (网址:http://jpkc.scitc.com.cn/jpkc/2009/JP-KC_Linux/) 。

4.2009年12月, 我院参赛队获得第三届"红旗杯"全国大学生开源技术竞赛应用开发三等奖。

五、课程建设发展思路

1.结合最新企业案例, 继续丰富和完善《Linux网络管理》课程项目及任务;

2.师资更多地参与到企业一线实践, 丰富工程项目经验;

Linux网络抓包 第5篇

Ubuntu下默认已经安装。下面先举个实际的例子.

比如我有一个C++程序监听本地端口8889, 另一个newlisp程序通过TCP和其通信。

首先可以检查一下有几个网络接口。

[plain]

root@dean-GA-MA790XT-UD4P:~# tcpdump -D

1.eth0

2.any (Pseudo-device that captures on all interfaces)

3.lo

由于是本机运行,都是通过lo接口,因此后面参数用-i 3.

-i 3 代表监控的是网络接口lo。 现在启动tcpdump

[plain]

tcpdump -i 3 tcp port 8889 -v -XX

-XX表示用16进制和ASCII文本显示网络包的数据。

[plain]

21:19:40.151304 IP (tos 0x0, ttl 64, id 37956, offset 0, flags [DF], proto TCP (6), length 56)

localhost.8889 >localhost.55131: Flags [P.], cksum 0xfe2c (incorrect ->0x8dc0), seq 41:45, ack 117, win 342, options [nop,nop,TS val 728981 ecr 723761], length 4

0x0000: 0000 0000 0000 0000 0000 0000 0800 4500 ..............E.

0x0010: 0038 9444 4000 4006 a879 7f00 0001 7f00 .8.D@.@..y......

0x0020: 0001 22b9 d75b 5a53 9f4c d8c4 bded 8018 ..“..[ZS.L......

0x0030: 0156 fe2c 0000 0101 080a 000b 1f95 000b .V.,............

0x0040: 0b31 0100 3355

首先显示了时间,然后可以看到数据传输方向,从C++->newlisp程序,

还可以看到应用层传输的字节数目是4.

最后可以看到0100 3355 就是发出来的4个字节。

Linux网络管理 第6篇

摘要:校园网络中心作为校内局域网络的数据流转控制中心,必须解决因流量增加应用更新所带来的一系列问题。Linux集群技术设计的校园网络中心方案在此可以有效化解这种问题。本文论述了Linux集群在校园网中的解决方案。

关键词:Linux集群:负载均衡器:服务结点:存储服务系统

随着网络技术的发展和网络应用的进一步深入,校园网络承担了越来越多的来自教学、科研及管理方面的应用。校园网络中心作为校内局域网络的数据存储发布、流量的管理控制、用户的管理以及内外网络转接控制中心,必须解决因流量增加所带来的一系列问题。传统的网络中心方案中,当流量增加后,一般是升级单一的服务器系统,这往往会造成过高的投入和维护成本。极大地降低了性能价格比。运用基于Linux集群技术设计的校园网络中心方案可以有效地解决这一问题。

一、校园网络中心体系结构

基于Linux集群技术的校园网络中心的体系结构是以Linux核心层集群技术和安全技术为基石,构成的一个高可扩展、高可用和高安全的操作平台。其结构如图所示。

在这种体系结构下,网络中心的配置可以抽象分为负载均衡器、服务结点池和存储系统三个层次。

1.负载均衡器

这是集群的惟一入口,校园网络就是通过该设备接入Internet的。从校园内的单个客户端来看,集群通过这一层的服务体现为一个基于IP地址的单一系统映像(SSI),整个校园网络共用这个虚拟地址,通过它客户端可以把整个集群看作一个独立的具有合法IP地址的主机系统。客户端的所有访问都发往这个虚拟IP地址,可以有效地解决学校IP地址的短缺问题。

如果仅有一台负载均衡器,容易造成负载均衡器的单点失效,使其成为集群中最脆弱的环节。因此,有必要提供容错机制,能够在负载均衡器失效的时候进行自动检测并平滑替换。在该方案中提供了一个备份负载均衡器,可以实时地监控负载均衡器的运行状态,并根据检测到的状态做出报警、接管、恢复等响应。

2.服务结点池

方案中的服务结点池指的是提供实际服务的服务器群。客户端发出的服务请求经过均衡器处理以后,转交到服务结点池由具体的服务器响应请求并返回数据。在校园网络中一般提供WWW、FTP、邮件和课件点播等服务,使用单一的服务器系统无法应付高峰时的数据访问。通过多台服务器分担这些负载是比较经济可行的。

服务器结点也有可能会出现暂时失效的情况,特别是在结点提供多种服务的时候,系统的随机故障或外部环境的突变都可能造成该节点的某个服务暂时不可用。这需要由负载均衡扩展出的容错机制识别出这种错误并及时进行处理,当错误排除后,集群能够自动识别恢复事件,把好的结点重新纳入集群继续运行。

3.存储服务系统

存储服务系统主要为整个集群内部运行提供稳定、一致的文件存取服务。该系统可以为集群节点池提供单一的文件系统入口,即在每一台服务结点上都共用同一个根;并且自动完成不同结点访问文件系统所引发的文件锁定、负载均衡、容错、内容一致、读写事务等底层功能,对应用层提供一个透明的文件访问服务。

这种基于Linux集群技术构成的系统属于松耦合集群系统。不需要在集群中部署特殊的中间件层或者OS扩展,对服务器结点OS的兼容性比较好。这样构成的网络中心,基本上可以兼容多数的IP应用,不需要做复杂的移植和安装工作,每个具体的应用都可以看成相对独立的服务器系统。即使在负载均衡器上,核心功能也是透明地提供给用户的,不影响本机正常的网络应用。

二、校园网络中心的关键技术

这种网络方案所运用的技术,实际上是借助于网络接入协议层的负载均衡技术,将网络请求化整为零,由大量集群的服务结点来共同分担,以实现性能最大化的一项集群技术。因此该方案的关键技术是网络接入协议层的负载均衡技术。这种负载均衡技术的特点是:

1.执行效率高

因为基于底层的协议。可以通过硬件体系进行部署,也可以在OS的核心层实现。

2.兼容性强

接入协议往往能够兼容大多数现有的主流网络应用,比如IPv4体系中的IP层。

3.体系实现相对简单

比起基于内容的高层交换,它不需要复杂的模式匹配机制,主要通过端口映射进行数据交换。规则简单。

从根本上讲,该负载均衡技术的实现基础是IP交换。只是在Lin-ux平台下IP的交换具备了一定的可扩展性,可以实现高性能、高可扩展性、易管理性等诸多特点,成为一个以负载均衡为核心的真正意义的集群系统。

三、基于LiBOX集群技术的校园网络中心的优势

这种基于Linux集群技术的校园网络中心方案相对于传统的单一服务器方案具有以下一些优势:

1.可扩展性好

校园网络的应用是根据计算机网络技术的发展和教师应用能力的提高而逐步深入的。任何一个网络中心的方案都不可能、也不需要一次性地把所有的应用考虑进去,因此系统的可扩展性就变得非常重要。使用该方案形成的网络系统,可以非常方便地扩充系统的功能。当校园网络中的应用增加后,系统的性能会下降,这时通过增加服务结点可以很方便地提高系统的性能,保证系统性能随着成本的增加而线性地增长。

2.全天候的可用性支持

在校园网络提供WWW、FTP、邮件、课件点播和远程教学等服务后,全天侯的可用性就变得非常关键。该方案可以为网络的应用提供透明的、自动适应的可用性支持,这种独特的双机备份结构在服务结点发生故障后,可以自动切换或修复系统,保证24×7的系统正常运行。

3.可管理性好

随着校园网络应用的深入,网络系统的规模越来越庞大,系统管理的任务也越来越繁重。使用该方案可以有效地简化系统的管理,主要体现在:可以用基于HTTPS的Web管理界面和安全的命令行界面对网络进行管理:可以对系统中的所有节点都在一个单一控制点上进行配置和监控:可以对每一台服务器的状况进行实时的远程监控。

4.安全性好

这样构成的网络方案可以为服务器提供核心层的保护。在此基础上构建的防火墙集群系统,可以有效提高防火墙的性能和伸缩性,从而保证校园网络应用的安全性。

5.相对的成本/性能优势

Linux网络管理 第7篇

在许多实时系统中, 比如分布式控制系统, 网络的实时性起着非常重要的作用。为了保证实时网络的运行, 网络数据包的传输延迟时间应尽可能的小。在过去有大量的研究是关于用规定的硬件和软件来设计硬实时系统, 包括field bus和一些复杂的实时操作系统。但是现在, 工业以太网TCP/IP被广泛应用于实时系统间的通信。但它却有大量的延迟和内在的抖动。如果它被用于普通的操作系统, 如Linux这种广泛应用于嵌入式实时系统但没有实时操作设计的操作系统, 其中的不确定性也会随着增加。

通过对实时系统的观察, 实时操作系统庞大的功能中只有少数部分的功能是经常被使用的。把整个Linux转变成实时的操作系统是一项庞大的工作。因此我们建议只针对某些特定功能比如处理数据包, 改写Linux内核来满足实时的条件。通过研究Linux内核, 我们可以很容易地发现中断处理时间对于网络延迟性能起着至关重要的作用。本文针对处理网络中断, 提出一种简单有效的处理方法, 就是通过修改特定的中断来控制亟待处理的实时数据包。

Linux中的网络中断分为Top Half和Bottom Half。Top Half又由两部分组成:从网络设备复制数据包到DMA和分析其结构类型。Bottom Half传送数据包给TCP层。大部分的数据包都是在Bottom Half处理的。因此如果不能保证Bottom Half快速执行, 则Linux也就不能实现实时。但不论数据包的优先权有多高, Bottom Half都是按顺序进行处理的。本文提出对需要实时处理的数据包进行标记, 确保在Top Half就进行处理。标记实时数据包可以通过在数据包的某个区域内做标记, 然后修改内核来识别该标记。在Top Half处理实时数据包是通过从Bottom Half复制和传送与该实时过程相关的内核代码到Top Half来实现的。本文介绍了上述实现过程以及实验的结果。

(二) 研究现状

虽然TCP/IP是应用最广泛的协议, 但它的实时性却不好。因此很多研究人员努力寻找能通过改变TCP/IP中的某一层性能, 比如MAC层, 网络层, 传输层, 来减少不确定性的方法。MAC层的修改主要是去掉在数据包传送过程中由于发生冲撞而产生的延迟。BRAM, MBRAM就是这种方法。但这需要所有的网络节点都要参与这个新算法。ST-II和RSVP主要是解决网络层的延迟。ST-II是用于多媒体通信, 数据传输速率和延迟都能得到控制。对于实时通信提供了有效的机制, 但对其他协议又存在兼容问题。RSVP通过对每个网络节点分配带宽来控制延迟。这同样也要求所有参与的节点都要遵从RSVP算法。修改传输层也会遇到不确定的因素。RTP是最常见的算法之一。它能够控制延迟但由于它易丢失数据而不适合用于工业以太网。

另外一个研究方向就是实时操作系统。如果使用特殊设计的实时系统, 通信延迟引起的抖动就可以减少。但这样的系统一般很昂贵而且对Linux的兼容性不好。而对于Linux的实时性的实现, RT-Linux不失为一种选择。RT-Linux是在硬件与Linux内核之间插入RT内核, 并且把Linux内核当做一个RT任务。RT-Linux代码修改量小而且定义简单。尽管如此, 包含的代码仍然很多, 如果需要实时的功能还要重新设计设备驱动。

(三) 实时网络中断进程

1. 实时以太网结构和IP包

本文定义了一个特殊的以太网结构real-time frame来处理实时数据, 这些数据都是根据以太网标准定义的。RFC894定义以太网使用0x800, IEEE802.3使用0x0800。本文打算使用这个值来定义这个结构。我们用一些特殊值作为实时结构的标记, 实际的实时数据是在IP头传送。为了兼容性, 我们使用IP头中很少使用的部分:identification和DF flag。这两个部分起初是用于数据包分段的。IP_DF flag是用来设置禁止分段的。当IP_DF设置好, 则identification就没有作用了。该算法使用这两个字段传送实时数据包。设置IP_DF flag, 使用identification作为实时信息字段, 它可达到16bit。由于实时数据包需要及时处理, 因此可把它放在网络中断过程中的Top Half中处理。若在关键时刻, IP头部不能包含足够长的消息就很难进行处理。图1是上述介绍的实时框架。我们采用0xff00表示实时框架的type字段。

2. 实时框架/消息的处理算法

图2所示是在接收端处理实时数据包的算法。本文主要分析Bottom Half结构的头部。如果数据包类型是实时结构, 则迅速提取消息并进行处理。然后把它交给Top Half来处理。否则排队等待直到网络Bottom Half处理结束。

在发送端, socket一般不工作, 这是因为我们需要修改以太网的头部, 在type字段中加入0xff00, 这样就能使实时结构与一般的以太网结构区别开来。数据包结构的生成分为两步:分配结构缓冲区和将头部写进结构中。Linux使用sk_buff管理结构缓冲区。实际上结构缓冲区是通过使用alloc_skb () 来分配的。图3 (a) 为与sk_buff相连的的分配的结构缓冲区。结构缓冲区的写入可用skb_reserve () 和skb_push () 。skb_reserve () 修改data指针指向IP header如图3 (b) 所示。Ethernet header也使用skb_push () 函数进行写入, 如图3 (c) 所示。

为了能在网络设备中直接使用I/O, 我们需要逻辑设备接口。全局变量dev_base是net_device结构中的一张表, net_device结构是由已注册的逻辑网络设备分配得到的。图4表示了通过dev_base和内核模块调用net_device结构的过程。把它加入到内核中, 就可以调用像skb_push () , skb_reserve () , alloc_skb () 这样的内核函数, 还有内核数据结构, 如dev_base。通过这些内核函数该模块可以建立实时结构, 通过eth () 发送到接口, 而该接口是由net_device结构中的指针指向speedo_start_xmit函数实现的。

(四) 算法性能

为了评估上述算法的性能, 可以作为Linux内核 (2.4.20版本) 的外部模块运行该算法。发送模块根据参数, 发送端IP, 接收端IP, 接收端以太网地址, 要发送的结构的数量和实时结构在普通结构的比率等方面来构造实时结构。两种实时消息类型定义如下:VAR_UP和VAR_DOWN分别是增加的内核变量和减少的内核变量。通过由网络设备驱动预先注册好的程序把生成的实时结构加到DMA中。OUT指令发送到设备时, 该结构也就被发送了。图5为发送的全过程。数据包到达的中断使响应的Top Half从DMA复制其结构到系统缓冲中。若结构头部类型是0xff00的实时结构则被提取出来, 并立刻处理, 其他的结构则在系统队列中排队等候, 直到Bottom Half对他们进行处理。

在实际实验中, 我们采用两种带有Linux内核模块不同类型的平台, 一种是普通的Pentium PC, 另一种是基于ARM的嵌入式系统, 如图6所示。Pentium平台有800Mhz Pentium III的CPU和256Mb的죁内存댂。嵌入式平台有ARM 920T处理器, 128Mb内存, 带有以太网接口。将带有前面介绍的网络模块的Linux内核移植到这两种实验平台上。

我们已经测量了数据包处理的时间和实时结构中处理的成功率。每37μsec发送1K的数据包。图7 (a) 为处理时间随着实时结构比例的增长而减少。但是如果数据包中超过40%都是实时结构, 处理时间则会处于饱和不变状态。这是因为实验中使用的中断处理器过于简单以至于37μsec的间隔足够处理每个数据包。随着中断处理器的发展, 我们希望处理时间在40%之后能够继续得到提高。

图7 (b) 为另一个实验结果, 即实时结构处理的成功率。因为我们不考虑上层溢出的情况, 所以如果接收到的结构超出了接收端所允许的范围, 则将它们丢弃。随着实时数据包百分比的增加, 处理的成功率也应该提高。若不采用实时结构, 发送10K和1K数据包的成功率则分别低达3.1%和32.1%。若采用前面介绍的算法, 发送1K数据包且其中70%为实时结构时, 成功率可达到100%。然后成功率会随着数据包数量的增加而减少。尽管如此, 即使是10K的数据包, 实时结构超过90%, 成功率也能达到90%左右, 而无实时结构的成功率只有3.1%。有趣的是含有100%的实时结构的性能却不如含有90%的实时结构。对于实时结构, 实际在Top Half上花费了大量时间, 而在此处中断是不起作用的。对于只含有90%的实时结构来说, 剩下的10%非实时结构不能立刻进行处理, 而要放到Bottom Half中, 但至少这些结构不会阻碍优先级更高的实时结构到达系统, 因为它们有一小段中断无效周期。对于100%的实时结构来说, 所有的结构到达系统后, 将在Top Half上花费大部分的时间, 而在这段时间内, 它们会通过使中断无效而阻碍其它的结构到达系统。

(五) 结束语

本文实现了可以及时处理网络中断的系统。我们已经观察到网络中断处理的主要延迟是由于Bottom Half的推迟而导致的。把关键部分从Bottom Half中移到Top Half中, 就可以实现更好的实时响应。本文提出的技术可以确保该实时响应只对内核中做很小的改动。该方法已经实现并进行了测试。实验结果表明同时发送10K数据包时, 该方法能够成功处理90%, 而没有实时处理能力的系统只能成功处理3.1%。

摘要:Linux并不太适合实时环境, 而且把它重新设计成实时系统是非常复杂和具有挑战性的任务。需要提出一种方法能把像Linux这样的大型系统转变成实时系统时而又做尽可能少的改变。经研究发现大多数的实时系统的实时性能只是针对于目标设备。文章研究的方法就是针对目标设备修改原系统。此方法更具有实用性, 因为它并不对整个系统做多余地的改变, 而且能满足大多数的实时系统的要求。以网络设备为例, 假设该设备不断地接收到实时数据包, 而且要立即处理, 减少中断时间。

关键词:Linux,实时,中断

参考文献

[1]Park, J.:A Study on RTP/RTCP based real-time protocol over Ethernet for distributed control system[J].Proceeding of16th DCCS2000, Sydney, Australia (2000) .

[2]Yodaiken, V.:New frontiers for embedded computing.[J].Proceeding of17th International Conference on VLSI Design, India (2004) .

Linux网络管理 第8篇

那么如何把现有网络环境下有效地存储、管理和共享教学资源, 就成为学校网络存储系统建设是否成功的重要素因。

1 网络存储传统方案

一般校园网络教学资源共享网络存储系统方案有以下几种。

1.1 服务器连接存储 (Server-Attached Storage, SAS)

这是最基础的一种网络存储系统, 这个系络不用接连到网络, 直接和服务器相连接。原来以服务器连接存储最多, 这种系统设置简单, 但是缺点很多, 存储单一, 没有安全可言, 网速更不用说等等。这在早期一直是建立校园网络的一个必要选择。

1.2 存储区域网络 (SAN)

这个网络存储系统主要用于主机或Unix伺服器, 它的操作系统可让单一服务器运行应用程序和文件服务功能。存储区域网络不需使用网络协议, 而是通过精密的交换设备把存储设备直接连接到网络。

1.3 网络附加存储 (Network Attached Storage, NAS)

NAS是一种专业的网络文件存储及文件备份设备, 它是基于局域网 (LAN) 的, 采用TCP/IP协议, 通过网络交换机连接存储系统和服务器主机, 建立专用于数据存储的存储私网。

但是, 市场上的NAS价格都很高, 要是选择安装多块硬盘而且可以组成阵列的价格就高了, 在经费紧张和审批困难的情况下, 通过使用Free NAS系统就可以安装一台功能强大的NAS存储服务器并且还能提供Bit Torrent下载的功能。

2 Free NAS系统

2.1 Free NAS是什么系统

根据单词来看Free就是免费的意思, 可以解释为免费网络存储服务器, 可以使用一台普通计算机变成可以网络存储的服务器。free NAS基于Free BSD的UNIX操作系统, 有Samba服务和PHP应用服务, 支持samba, FTP, NFS协议, 阵列 (0, 1, 5) 以及web的设定。使用者可通过Windows系统、萍果系统、FTP服务、SSH服务以及网络文件系统来访问网络存储服务器;此软件可被安装在硬盘或移动设备 (如U盘或移动硬盘) 、CF卡和一个或多个硬盘的上面, 软件所占空间不到16兆。这是构建一般网络存储服务器的最好选择, 不用安装完整Linux或Free BSD。

2.2 Free NAS安装

Free NAS系统在网上很容易就能下载到, 并且在它的主页里经常有更新。要组建好一个网络存储的平台, 这里使用了一台换下来的服务器来组建, 硬件的要求是一块普通的主板加上一只1.6GHz左右的处理器, 512MB的内存已经非常足够, 主板上有2个SATA接口可以安装大容量的SATA硬盘, 如果想把Free NAS系统安装在U盘上的话, 安装Free NAS之前还需要准备一只CDROM用来读光盘。

2.3 Free NAS的安装

2.3.1 启动

Free NAS安装向导Free NAS的安装步骤较为简单, 我们只需将下载回来ISO镜像刻录成CD, 然后CD插入光驱, 并确认你的计算机BIOS以设置为光盘启动。在“Free NAS的引导界面”直接键入回车键即可。

2.3.2 选择安装Free NAS在“系统菜单”界面, 我们选择“在硬盘或其它设备上安装或升级Free NAS”也就是输入数字“9”之后按回车键

各选项参数的对应说明:

1) Assign interfaces选择网卡;

2) Set LAN IP address设置IP地址;

3) Reset Web GUI password重设Web GUI密码;

4) Reset to factory defaults恢复默认设置;

5) Ping host Ping主机;

6) Shell Shell;

7) Reboot system重新启动系统;

8) Shutdown system关闭系统;

9) Install/Upgrade to hard drive/flash device, etc。

2.3.3选择安装模式在“Install&Upgrade (安装&升级) ”对话框中, 需要选择我们安装的模式

这里有6个个选项, 分别是:1) 安装精简版到硬盘或Flash磁盘或USB设备;2) 安装精简版到硬盘或Flash磁盘或USB设备, 同时进行数据分区;3) 完全安装到硬盘, 同时进行数据分区;4) 从光盘升级精简版系统;5) 从光盘升级完全版系统;6) 从光盘升级精简版系统到完全版系统这里, 使用上下键定位到“3完全安装”.然后点确定。

2.3.4 跳过安装信息对话框弹出Free NAS安装信息对话框, 直接回车进入下一步

2.3.5 选择源光盘驱动器

在“选择源光盘驱动器”对话框中, 显示了该机器的光驱代号acd0, 直接回车进入下一步即可。

2.3.6 选择安装目地硬盘在“选择安装目标硬盘”, 这里显示了ad0和da0-2一共4块硬盘, ad0表示第一块IDE硬盘, da0表示第一块SCSI硬盘, 其它硬盘表示方法, 依此类推.这里选择“ad0”这块硬盘, 直接回车即可

2.3.7 输入OS分区大小弹出“输入操作系统分区大小”对话框, 保持默认的128MB, 直接回车进入下一步

Step8:你是否添加交换分区在“你是否添加交换分区”对话框中, 选择“YES”, 直接回车进入下一步。

Step9:输入交换分区大小为了支持Free NAS的ISCSI, 系统最低要求为256MB的内存;一般情况下, 在UNIX或Linux系统中交换分区的大小为物理内存的两倍., 在“输入交换分区大小”的对话框中, 输入256后, 直接回车进入下一步。

Step10:开始安装Free NASFree NAS开始格式化系统分区和数据分区, 并将系统安装到选定的硬盘, 屏幕显示如图7所示.按回车键, 将返回“安装&升级”对话框, 这里选择“Exit”, 将返回Free NAS控制台.在“Free NAS控制台”对话框, 输入“7”重启系统。

2.3.8 配置Free NAS网络

当再次出现Free NAS控制台, 选择“2”设置网卡的IP地址, 系统会询问是否使用DHCP获取IP地址, 选择“NO”, 出现IP地址设置窗口, 输入要设置的IP地址。

2.3.9 管理Free NAS服务器

如果你从其它的计算机设备上能ping通, 安装了Free NAS的计算机, 那么你就可以使用该主机, 通过浏览器输入安装了Free Nas的计算机的IP地址来管理Free NAS服务器了.默认的用户名是admin, 密码是freenas。

用free NAS替代专门的文件服务器可以提高大大网络文件存储和访问的响应速度, 另外有些高级NAS所提供的文件保护机制 (快照和备份) , 网卡绑定, 跨平台文件共享和用户服务管理机制使得网络文件系统的维护工作也变得非常简便易行。

3 结论

利用基于IP网络的网络存储方式, 合理使用了更换下来的计算机资源, 又成功地解决了存储空间为足的问题, 使闲置的资源得到了高效利用。

摘要:FreeNAS网络存储系统具有对硬件资源要求低、系统运行效率高的优点, 更为可贵的是它是免费软件, 这样, 我们可以用极小的成本搭建出高性能的网络存储平台。

关键词:网络,FreeNAS系统,服务器,网络存储

参考文献

[1]王和平, 陈慧, 刘茜.巧用FreeNAS搭建网络存储及备份系统[J].企业技术开发, 2012 (29) .

Linux网络管理 第9篇

1 Linux网络操作系统安全机制探究

Linux网络操作系统提供了用户帐号、文件系统权限和系统日志文件等基本安全机制, 如果这些安全机制配置不当, 就会使系统存在一定的安全隐患。

1.1 Linux系统的用户帐号

在Linux系统中, 用户帐号是用户的身份标志, 它由用户名和用户口令组成。在Linux系统中, 系统将输入的用户名存放在用户密码文件中, 而将输入的口令以加密的形式存放在日志文件中。在正常情况下, 这些口令和其他信息由操作系统保护, 能够对其进行访问的只能是超级用户 (root) 和操作系统的一些应用程序。但是如果配置不当或在一些系统运行出错的情况下, 这些信息可以被普通用户得到。进而, 不怀好意的用户就可以使用一类被称为“口令破解”的工具去得到加密前的口令。

1.2 Linux的文件系统权限

Linux文件系统的安全主要是通过设置文件的权限来实现的。它由用户名和用户口令组成。其基本思想是:当用户登陆时, 由守护进程要求用户输入用户名, 然后激活login, 要求用户输入口令, 最后login根据系统中的用户密码文件来检查用户名和口令的一致性, 如果一致, 则该用户是合法用户, 为该用户启动一个shell。其中, 用户密码文件是用来维护系统中每个合法用户的信息的, 主要包括用户的登陆名, 经过加密的口令、口令时限、用户号 (UID) 、用户组号 (GID) 、用户主目录、以及用户所使用的shell。加密后的口令也可能存在于系统的日志文件中。

每一个Linux的文件或目录, 都有3组属性, 分别定义文件或目录的所有者, 用户组和其他人的使用权限 (只读、可写、可执行、允许SUID、允许SGID等) 。特别注意, 权限为SUID和SGID的可执行文件, 在程序运行过程中, 会给进程赋予所有者的权限, 如果被黑客发现并利用就会给系统造成危害。在一定程度上有力地保护了系统安全, 但是在口令破解程序面前就显得脆弱了。此外, 采用输入口令的方式, 也容易产生口令泄露或遗忘等缺点。安全机制是由Sun提出的一种认证机制, 为更有效的的身份认证方法的开发提供了便利, 在此基础上可以很容易地开发出替代常规的用户名口令的身份认证方法。在嵌入式Linux系统中, 结合嵌入式的特点, 可以利用PAM来实现更有效的身份标识与鉴别方式如智能卡、指纹识别、语音等。

1.3 合理利用Linux的日志文件

Linux的日志文件用来记录整个操作系统使用状况。作为一个网络系统管理员要充分用好以下几个日志文件。

记录最后进入系统的用户的信息, 包括登录的时间、登录是否成功等信息。这样用户登录后只要用lastlog命令查看一下最后日志文件中记录的所用帐号的最后登录时间, 再与自己的用机记录对比一下就可以发现该帐号是否被黑客盗用。

记录系统自开通以来所有用户的登录时间和地点, 可以给系统管理员提供更多的参考。

记录当前和历史上登录到系统的用户的登录时间、地点和注销时间等信息。可以用last命令查看, 若想清除系统登录信息, 只需删除这个文件, 系统会生成新的登录信息。

Linux网络操作系统提供了用户帐号、文件系统权限和系统日志文件等基本安全机制, 如果这些安全机制配置不当, 就会使系统存在一定的安全隐患。

1.4 其他安全机制

基于用户名与口令的身份标识与鉴别机制在安全上的不足, 主要表现在口令的易猜测性和泄露性。针对口令的易猜测和泄露的特点, 嵌入式Linux提供了一定保护措施, 主要有密码设置的脆弱性警告、口令有效期、一次性口令、先进的口令加密算法、使用影子文件 (shadow file) 、帐户加锁等。嵌入式Linux系统中, 通过自主访问控制来确保主体访问客体的安全性, 但是这种自主访问控制过于简单, 为此, 嵌入式Linux提供了限制性shell、特殊属主、文件系统的加载限制, 以及加密文件系统来提高系统安全。此外, 嵌入式Linux还通过对根用户进行适当的限制, 在一定程度上限制了超级用户给系统带来的安全隐患。而安全shell、入侵检测、防火墙等, 从网络安全的角度提高了系统的安全性。

2 Linux网络操作系统安全缺陷

嵌入式Linux系统虽然实现了自主访问控制和身份标识与鉴别等安全机制, 但是从操作系统安全的目标来看, 特别是被用在嵌入式系统中时, Linux系统的安全性还是有很多缺陷, 主要表现在以下:

2.1 自主访问控制机制的不足

嵌入式Linux系统提供的自主访问控制机制是基于保护位来实现的。文件的所有者可以自主的确定和修改文件的访问权限, 不同的访问权限可以分别授予不同的所有者, 所有者所在的组和其他用户, 但是这种机制不能实现更细粒度的访问授权管理。传统的基于保护位 (即属主、属组、其他) 的自主访问控制无法完成。为了实现更细粒度的访问控制要求, 内核中设计了访问控制列表, 可以方便的为文件配置任意用户和组的访问权限。

2.2 强制访问控制机制缺乏

自主访问控制机制使得文件的拥有者全权管理有关该文件的访问权限, 有权泄露、修改该文件的有关信息, 但无法抵御特洛伊木马的攻击。特洛伊木马程序一旦被用户激活, 木马会继承与用户相同的ID、访问权限等, 从而可以滥用用户的权限, 如泄露或破坏有关信息等。自主访问控制机制不能区分特洛伊木马与用户的合法程序, 因而也就无法阻止特洛伊木马的操作。另外在一些安全要求较高的军事环境等领域, 不同部门所拥有不同信息的保密与完整性程度并不相同, 部门之间的信息流动也需要控制, 这些都不是仅仅通过自主访问控制机制所能解决的。因此, 嵌入式Linux系统安全需要强制访问控制机制来加强。

2.3 root权限滥用

嵌入式Linux系统中存在一个uid为0的超级用户, root是系统赋予它的帐号。root也称为系统管理员, 它拥有管理系统的一切权限。当一个非法用户获得root口令后, 他就可以以超级用户的身份登陆系统, 然后做任何他想做的事情:任意添加、删除用户, 终止进程, 删除重要文件甚至更改root的口令。另外, 系统允许普通用户在运行某段程序时可以获得超级用户权限, 一旦这种权限被攻击者获得, 此时系统的安全机制将无法阻止他对系统的破坏。针对root用户权限过大的问题, 权能机制可以有效的解决这一问题。

2.4 审计机制的不足

现有的Linux审计机制包括了内核事件和系统事件两部分的审计。但是还存在着一些不足, 尤其是用在嵌入式系统中的时候。比如:内核审计的粒度不够, 审计不够灵活, 审计存储的问题等问题。在强制访问控制和审计两方面应该进行改进, 增强嵌入式Linux的安全性。

摘要:Linux网络操作系统利用了现今计算机系统的任务切换机制, 实现了真正多任务、多用户环境, 允许多个用户同时执行不同的程序, 并且可以给紧急任务以较高的优先级, 对现有的身份标识与鉴别是Linux特有的安全机制, Linux在自主访问控制, 强制访问控制, root权限, 审计等方面的需要安全强化设置。

关键词:Linux操作系统,安全机制,权限

参考文献

[1]张金石.网络操作系统:linux配置与管理[M].人民邮电出版社, 2012, 06.

[2]冯昊.linux操作系统教程[M].清华大学出版社, 2008, 02.

基于Linux的网络聊天系统设计 第10篇

关键词:套接字,TCP,客户端,服务端

随着互联网的发展,人与人之间的交流方式变得多样化。网络聊天就是其中一种新起的交流方式,其不分地域,具有实时性,只要有网络和聊天系统就可以进行交流。作为开源的操作系统,Linux自然拥有不少的用户,特别在服务器的应用上更是广泛。而如今大多数的网络聊天系统都是针对Windows系统开发的,针对Linux系统的相对比较少。因此本文设计了一种基于套接字编程方法针对Linux的网络聊天系统,其具有最基本的聊天功能:群聊和私聊,除此之外,本系统还添加了查询、信息加密、内容发送时间、服务器显示信息等功能。

1 系统原理

1.1 套接字的概述

套接字(Socket)是网络通信的基础,是支持TCP/IP协议的网络通信的基本操作单元[1]。套接字可以被认为是网络通信连接中的端点,接入局域网中的每台主机都是用套接字来标识,有了套接字,才能保证发送的数据能传送到正确的主机上。

在网络通信中,主要是通过IP地址、传输协议(TCP/UDP)、端口三个参数来区别网络中不同主机之间的通信[2]。Linux中的一切都是文件,内核是利用文件描述符(file descriptor)来访问文件,在网络操作中也是通过文件描述符来进行发送和接收数据的[3]。套接字就是结合以上三个参数,与一个文件描述符绑定得到的,从而主机就可以通过创建套接字与其他主机进行信息的传递。

1.2 TCP/IP协议中套接字的类型

在TCP/IP协议中,有3种常用的套接字类型[2,4]:流套接字(SOCK_STREAM)、数据包套接字(SOCK_DGRAM)、原始套接字(SOCK_RAW)。字节流套接字使用了传输控制协议,即TCP(The Transmission Control Protocol)协议,因此其用于提供面向连接的、可靠的数据传输服务,该服务可以实现顺序、无差错、不重复的流传输;而数据包套接字使用的是用户数据报协议,即UDP(User Datagram Protocol)协议,该协议是一种无连接的、不可靠的传输层协议,因此其提供的传输服务是不能保证数据传输的可靠性,在传输过程中有可能出现数据丢失、数据重复以及不能顺序接收数据的情况,其只适合于可靠性较高的局域网;原始套接字允许对较低层次的协议直接访问,比如IP、ICMP协议,它常用于检验新的协议实现,或者访问现有服务中配置的新设备。

本系统要实现聊天系统的功能,就涉及到字符串数据的传输,数据的顺序及可靠性要得到充分保证,因此本系统决定使用的是字节流套接字。

1.3 TCP协议

TCP是一种面向连接的、可靠的传输层协议[5]。TCP协议在网络层IP协议的基础上,向用户进程提供可靠性、全双工的数据流传输[6]。TCP在进行数据传递之前,必须先建立传输连接;在数据传输完毕后,需要释放传输连接。

1.3.1 TCP连接的建立

TCP协议建立连接必须经过三次握手[7](见图1)。在握手之前,服务器必须一直处于监听的状态,等待客户的连接请求。第一次握手:客户向服务器发送SYN包,并等待服务器的响应,SYN是同步序列编号;第二次握手:服务器必须对客户发送过来的SYN包进行确认,同时向客户发送一个SYN包,即此时发送给客户的是SYN包+ACK包;第三次握手:客户收到服务器发送过来的SYN包和ACK包后,向服务器发送对SYN包确认的ACK包。这样三次握手完成,传输连接就此建立,之后就可以在连接上进行数据的传送。

1.3.2 TCP连接的释放

当数据传输结束后,TCP会通过四次握手[7](见图2)来终止传输连接。第一次握手:客户通过发送FIN包向服务器提出释放连接的请求,并等待服务器响应的确认;第二次握手:服务器收到来自客户端的FIN包后会向其发送一个ACK包,表示同意释放连接;第三次握手:服务器向客户发送FIN包来表示其要关闭连接;第四次握手:客户向服务器发送ACK包来确认收到服务器送过来的FIN包,至此,TCP连接彻底终止。

1.4 客户/服务器模型

在客户/服务器模型中,多个相互通信的主机都作为客户端,与服务器进行连接,并以服务器作为数据中转来进行客户间的信息传递[8]。从另一个角度来看,多个客户端之间的通信实际上就是服务器与客户端之间端对端的通信。本系统设计的是多用户聊天系统,所用到的就是客户/服务器模型,因此需要分别用C语言编写服务端程序与客户端程序。服务端与客户端利用TCP连接进行通信的程序流程图[9,10]如图3所示,其中方框里的是套接字函数。

2 系统设计的具体实现

2.1 常用套接字函数的介绍

(1)socket函数:原型是int socket(int family,int type,int protocol),该函数功能是指明了协议族与套接字类型,其中本系统设置其参数family=AF_INET,type=SOCK_STREAM,protocol=0,表明使用IPv4协议,字节流套接字。该函数在成功时返回一个小的非负整数值;出错时,返回-1。

(2)connect函数:原型是int connect(int sockfd,SA*serv_addr,int addrlen),该函数功能是客户用来建立与TCP服务器的连接,其中参数sockfd是由socket函数返回的套接字文件描述符,第二、三个参数分别是一个指向套接字地址结构的指针和该结构的大小,serv_addr是保存目的地址端口和IP地址,其成功时返回值为0,出错时返回-1。

(3)bind函数:原型是int bind(int sockfd,const SA*my_addr,int addrlen),该函数功能是给套接字分配一个本地协议地址,其中sockfd也是由socket函数返回的套接字文件描述符,my_addr是指向套接字地址结构的指针,也即保存IP地址和端口信息,addrlen为该数据结构的大小。其成功时返回值为0,出错时返回-1。该函数主要用在服务端。

(4)linsten函数:原型是int listen(int sockfd,int backlog),其功能是把一个未连接的套接字转换成一个被动套接字,指示内核要接受该套接字的连接请求,其中sockfd是socket函数成功调用返回的套接字文件描述符,backlog指明该套接字中队排队的最大连接个数。成功时返回0,失败时返回-1。该函数仅由服务器调用,并且一般都是在socket函数跟bind函数后调用。

(5)accept函数:原型是int accept(int sockfd,SA*cliaddr,int*addrlen),该函数功能是在已完成队列连接队列队头返回下一个已完成连接,如果已完成队列为空,则进程会处于阻塞状态。参数sockfd跟其上面提到的一样,是返回的套接字文件描述符,而cliaddr,addrlen分别是函数成功调用返回的客户进程协议地址和地址的大小,除以上返回外,该函数还会返回新套接字文件描述符(也就是已连接的套接字),失败时返回-1。该函数也是由TCP服务器调用。

(6)close函数:原型是int close(int sockfd),该函数功能是关闭套接字,并终止TCP连接。参数sockfd是要关闭的套接字,成功时返回0,失败时返回-1。

(7)输入输出函数:由于本系统是主机跟主机之间的文字信息交互的平台,涉及到客户端和服务端输入输出的操作,因此需要使用到输入输出函数。

套接字的输入函数:readline函数从套接字读入一串字符,并将该字符串存入到字符数组中。函数成功时返回输入字符串的长度,错误时返回-1。

套接字的输出函数:writen函数把字符数组中的字符串写入到套接字中,成功时返回写入字符串的长度,错误时返回-1。

键盘输入函数:fgets函数接收用户从键盘输入的字符串,并将该字符串存入字符数组中。

终端输出函数:fputs函数将字符串输出到终端,显示字符串。

(8)select函数:使用输入输出函数会使客户出现阻塞于标准输入或套接字输入的情况,也就是说程序会等待用户键盘输入或者等待套接字的输入[10]。当服务器进程终止后,客户端仍阻塞于标准输入,此时客户再次输入字符串时才会发现服务器已经终止,但是服务器并没有告知客户端TCP服务器已关闭了连接,因此客户端不能单纯阻塞于标准输入和套接字某个特定源的输入,而应该阻塞于其中任何一个源的输入。为了解决这个问题,就引入了select函数。select函数会等待多个事件中的任何一个发生,当某个事件或多个事件发生或经历一定时间时,它会告知内核进行处理。select函数可以设置四种感兴趣的事件集,分别是读、写或异常条件,以及等待多长时间。本系统调用select函数,主要用于检查可读性的描述字集,也就是当套接字或标准输入可读时,才会唤醒内核去处理。

(9)shutdown函数:输入的文件结束符并不意味着已完成了从套接字的读入,可能仍有请求在去往服务器的路上或是在去往客户的路上仍有应答,因此就需要一种方法来关闭TCP连接的一半,这就是由shutdown函数来完成[10]。shutdown函数可以终止数据传送的两个方向:读或写,或其中任一方向:读或写。本系统主要在客户端使用到shutdown函数,当收到服务器要关闭连接的信息时,就用shutdown函数关闭连接的写方向,从而避免客户继续发送信息,同时由于保留了连接的读方向,客户仍能收到在传输路上的信息。

2.2 各功能的具体实现思想

本系统主要的工作是编写客户端和服务端程序,其中服务器是数据中转的主要承担者,其工作量比较大,因此系统的关键在于服务端程序的设计。客户端程序的主要任务是完成用户、套接字的输入输出。而服务端程序不但要完成套接字的输入输出,而且要完成实现各功能的设计。

2.2.1 群聊功能

本系统是设计聊天系统,群聊是其最基本的功能。在服务器中,每个与服务端连接的客户都用不同的套接字来标识,而且每个客户都会有自定义的用户名。群聊是采取广播的形式,当某个客户要发送信息给大家时,服务器调用time函数来获得当前时间,并将此时间与原信息、信息来源者的用户名结合在一起,一并发送给已连接上的客户,这样就完成了一次信息的广播发送。

2.2.2 私聊功能

私聊功能是客户与客户之间单对单的聊天,本系统主要用“&目标用户名”的指令来表明私聊,其中目标用户名就是想要聊天的对象用户名,在指令后加上要发送的内容就可以向对方传送信息。服务器是用套接字来标识不同客户的,而且套接字是惟一的,只要找到与用户名相对应的套接字就能准确地将内容发送到目的客户。服务端程序就是先从指令中提取用户名,再根据用户名找到相应的套接字,最后就将内容发给对应的套接字。

2.2.3 加密功能

为了信息的保密性,本系统对内容的传送都进行了加密的操作。客户端、服务端在向套接字发送数据时,都会将数据进行加密,所谓的加密就是将数据倒序或者加上某个数之类的操作。而在套接字接收到数据时要先对数据进行解密,后才进行后续的工作。解密是加密的逆过程,两者必须要对应才能使数据复原正确。由于客户端跟服务端都有对套接字进行输入输出的操作,因此两者的程序中都包含了对数据加密跟解密的程序块。

2.2.4 查询在线用户功能

当客户使用当输入指令“#”,就可以查询当前在线用户。要实现此功能是较为简单的,只要在服务器中判断是否“#”指令,如果是的话,服务器通过套接字来查询已连接的用户名,并将各用户名结合到同一条信息上,之后发送给输入指令的客户。

3 实验效果

为了测试本系统是否达到设计要求,在fedora 10系统上做了实验。该实验需要打开四个控制终端,一个运行服务端程序,三个运行客户端程序。在终端上输入./tcpserver就能启动服务程序,输入./tcpclient127.0.0.1启动客户程序,其中127.0.0.1是回送地址,指本地机,一般用来测试使用。

3.1 服务器显示客户登录、退出时的信息

(1)客户xiao登录时,显示:

(2)客户yong登录时,显示:

(3)客户dong登录时,显示:

(4)服务器显示:

(5)三个客户按Ctrl+C分别退出时,服务器显示的情况如下:

3.2 群聊

测试方法:三个客户分别发送内容。

(1)客户xiao发送内容:“hello!all”,显示:

(2)客户yong发送内容:“Hi!xiao”,显示:

(3)客户dong发送内容:“yeah!I’m good!”,显示:

(4)服务器显示了发送时间、用户名、聊天内容、字符串长度、套接字等情况:

3.3 查询在线用户

测试方法:在任意客户上输入“#”指令,就可以看到在线用户的名字,这里在客户xiao上输入“#”指令,其显示如下:

服务器上也有相应客户操作的记录:

3.4 私聊

测试方法:让客户xiao输入指令“&dong”单独发信息给客户dong。

(1)客户xiao输入“&dong”指令,并输入发送内容:“how are you?”,显示:

(2)客户dong接收到客户xiao发送过来的信息,并带有信息发送者的用户名:

(3)服务器显示出发送信息用户、目的用户的套接字以及它们的用户名:

4 结语

本系统主要实现的是在Linux环境下的聊天室,其具有群聊、私聊、查询、信息加密等功能。在Linux平台上的实验可以看出本系统从整体上完全达到了设计预设的要求。本系统可以运用在日常生活中,只要在同一局域网中,用一台主机作为服务器,其他主机接入网络,运行客户端程序,通过终端就可以进行聊天,方便快捷。本系统还具有易于扩展的特色,在此基础上容易加入更多特色功能(如文件传输、视频聊天、语音聊天等)。可见,本系统具有较强的应用性。

参考文献

[1]韩玉坤,邵国强,杨红.简析Windows C语言网络编程技术与方法[J].大庆师范学院学报,2011,31(3):42-44.

[2]文显琼,张继荣.基于Socket的网络编程及其实现[J].软件导刊,2012,11(2):97-98.

[3]鸟哥.鸟哥的Linux私房菜基础学习篇[M].3版.北京:人民邮电出版社,2010.

[4]刘丹.Socket网络编程及其实现[J].科技信息,2010(12):215-217.

[5]邓志刚.Linux环境下的网络编程[J].武汉科技学院学报,2008,21(7):34-35.

[6]邹月,陈建兵.Socket的网络编程研究与实现[J].电脑编程技巧与维护,2009(8):10-12.

[7]吴功宜.计算机网络[M].2版.北京:清华大学出版社,2007.

[8]葛福鸿,刘晓莹,张丽萍.基于Socket技术的即时通信软件的设计与实现[J].电脑开发与应用,2011,24(5):63-65.

[9]王雷,王子淘.基于Linux的Socket网络编程的性能优化[J].电子设计工程,2009,17(9):101-103.

Linux网络管理 第11篇

“完全开放FTP服务”是指匿名用户具有读、写权限的FTP服务。当然,出于安全考虑,这种权限的FTP服务只对内网教师用户开放。在Linux环境下搭建,不仅可以合法免费获得相关软件,为学校节约成本,而且具有很高的效率和安全保障。

一、完全开放FTP服务的搭建

1.软件安装

我校使用的Linux操作系统是Debian4.0版本。FTP服务器软件使用的是开源免费的Vsftpd。Vsftpd被认为是Linux下最安全、最快速的FTP服务器软件。我们可以使用原始代码编译安装该软件,也可以直接使用系统自带的二进制代码软件包进行安装。为了简单起见,我们直接使用系统自带的软件包。在Debian Linux环境下,我们只需在控制台执行一行命令就可以完成安装,当然要有root权限,即:# apt-get install vsftpd。如果安装正确,系统会自动启动FTP服务。此时,用netstat命令能看到21端口在监听。用浏览器或FTP客户端软件应该能够匿名访问到该服务,但只能浏览,即只有读的权限。

2.软件配置

安装完Vsftpd后,我们需要完成一些配置来满足具体需求。首先,指定FTP服务器的根目录。在Linux系统下,我们用vi打开/etc/passwd文件,会看到一行类似ftp:x:105:65534::/home/ftp:/bin/false的信息,其中“/home/ftp”即表明FTP服务器的根目录为/home/ftp文件夹。如果/home目录下没有FTP文件夹,我们需要手动创建一个,并保证它为FTP用户所有,具有读、写和执行的权限。其次,我们需要配置Vsftpd服务器的具体信息。编辑Linux系统下的/etc/vsftpd.conf文件,为了达到我们的需求,主要配置如下参数:

listen=YES# 使vsftpd运行在standalone模式

listen_address=172.16.1.7#为了安全,将其绑定在内网IP地址172.16.1.7上

anonymous_enable=YES# 允许匿名用户访问

write_enable=YES# 允许运行各种FTP写命令

anon_upload_enable=YES# 允许匿名用户上传文件

anon_mkdir_write_enable=YES# 允许匿名用户创建文件夹

anon_other_write_enable=YES# 允许匿名用户进行其他写操作

xferlog_file=/var/log/vsftpd.log# 做日志

重新启动Vsftpd服务后,用FTP客户端工具就能访问该FTP服务器了。同时我们也可以进行一系列的读写操作,如上传文件、创建文件夹、删除文件等。由于对匿名用户开放了较高的权限,所以我们把该FTP服务器的监听地址绑定在内网IP地址上,保证它只能被内网用户访问。

二、完全开放FTP服务的管理

服务器配置完成后,教师就可以在办公室把上课用的文件传到完全开放FTP服务器上,再到班级把文件下载下来使用。教师之间也可以通过完全开放FTP服务来共享文件。事实证明,这种方式用起来非常方便,也很安全。可是,我们在使用的初期出现了若干问题,如:在根文件下,任意用户均可上传文件,文件数量逐渐增多,显得非常乱,教师要想找到自己的文件非常困难;还有的教师只上传不删除,把服务器的空间全部占用,从而出现各种异常情况;还有部分教师用完全FTP来保存私人文件,结果导致被别人删除,文件丢失。针对如上问题我们采取了一系列的管理措施。

1.根目录管理

根据组别设置根目录下子文件夹分类,并禁止向根目录传输文件,只能向子文件夹中传输文件。我们通过如下技术手段来实现。

首先,通过FTP客户端登录FTP服务器,在其上根据组别分别建立相应的文件夹。其次,在服务器端改变根目录所在文件夹(如:/home/ftp)的属性和文件属性,让该文件变为root用户所有,并且其他用户只有读的权限。其命令如下:

# chownroot:root/home/ftp

# chmod644/home/ftp

这样用户就不能向根目录里传输文件了,因为根目录对于匿名用户只有只读权限,只能向下一级目录传输文件。这样根目录下文件夹就规范了,分类明确了,也便于使用了。

2.文件定期删除

为解决教师习惯于只上传而不删除文件的问题,我们编写了定期删除脚本,并在Linux的计划任务程序的配合下,实现每周六定期删除相应子文件下的所有文件。为了避免删除造成重要文件丢失,我们先把文件保存在相应的类似回收站的文件夹中,保留一周后再删除,其实现脚本节选如下:

#! /bin/sh

rm -rf /home/ftptemp/*# 首先删除上周回收站文件夹的内容

ftppath[0]="/home/ftpln/caiwu" # 相应的FTP根目录下的子文件夹的软链接

ftppath[1]="/home/ftpln/chuzhongxuenian"

ftppath[2]="/home/ftpln/danganshi"

……….

for((i=0; i<=21; i++))

do

mv${ftppath[$i]}/*/home/ftptemp/# 把相应文件移动到回收站文件夹

rm-rf ${ftppath[$i]}/*# 删除不能成功移动的文件

done

exit 0

把该脚本文件放在Linux系统下的/etc/cron.weekly目录下,再做些相应的时间配置,就可以达到删除的目的了。

3.对教师进行相应的培训

通过培训,让教师明白“完全开放FTP服务”只是提供临时文件中转服务的,不能用該FTP服务器存储文件,也不能用它来传输保密文件。

三、应用过程中遇到的技术问题

1.上传文件夹报错

终端用户Windows-xp-sp2-IE6环境下用Windows资源管理器上传文件夹时报错,其错误如下图所示,只有点击确定后才能上传。当升级到IE7后就没有该问题了。当然,使用其他专业的FTP客户端工具,如:Cuteftp、Flash FXP等也可以避免出现类似问题。

2.禁止部分网段访问

我们在使用的过程中,曾经出现机房的学生机访问该FTP服务器的情况。为了解决该问题,我们通过在三层交换机上加上访问控制列表来屏蔽学生机房网段,也可以通过Linux系统自带的Iptables访问控制来实现。

该FTP服务已经在我校校园内网运行很长一段时间,实践证明它是非常实用的,并且安全可靠。通过它基本解决了网内文件安全、高效传输的问题。同时,我们还提供了其他类似的FTP服务,如:“私人保密FTP服务”,这样又解决了私密文件的传输问题。此外,我们通过“私密FTP服务”对外开放和VPN技术,也解决了教师在家和学校间进行文件传输问题。这样我们就基本与U盘告别了,尽量避免通过U盘把病毒或木马带进网内,提高了网络安全系数。

Linux网络管理 第12篇

Linux作为开源操作系统的以其卓越的稳定性和优秀的命令行管理性能在服务器领域得到广泛的应用, 越来越多的企业和学校把自己的服务器搬迁到Linux服务器平台上。然而作为终端PC机Windows操作系统仍然是当前广大用户习惯使用的桌面。如何在Windows桌面上远程管理Linux服务器成为网络管理人员面临的一个问题。本文研究的Telnet便是解决这一难题的远程登录工具, 利用Telnet可以使管理人员在Windows平台上远程管理Linux服务器, 这给网络的管理维护带来极大的方便[1]。

1 Linux系统服务器

Linux系统是从UNIX发展来的。UNIX是世界上最流行的操作系统之一, 是一种实时操作系统, 可运行于大小型计算机的多任务系统。但由于该系统比较庞大, 而且价格昂贵, 所以不适合PC机用户使用。而Linux正好弥补了这些缺点, 同时还继承了UNIX大多数优点。

由于UNIX具有强大的支持数据库的能力和良好的开发环境, 所有的主要数据库厂商, 包括Oracle、Informix、Sybase、Progress等都把UNIX作为主要数据库开发和运行平台, 并创造出一个又一个性价比的新纪录[2]。

1.1 强大的安全性

Linux系统在设计的时候就是针对多用户环境的, 每个文件都有不同的用户属性。作为一个普通用户通常只能读写自己的文件, 而对一般的系统文件只能读取而不能改动, 一些敏感的系统文件甚至连读取都是被禁止的。这种设计在根本上保证了系统的安全, 即使一个用户文件出现问题, 也不会泱及整个系统[3]。

1.2 优良的稳定性

系统的稳定性主要取决于系统设计的结构, Linux与其它UNIX系统和大型操作系统如VMS、IBM大型机等一样具有相同的可靠性。Linux所共享的UNIX设计体系是经过长期实践考验的, Linux吸取了UNIX系统近1/4世纪发展的经验, Linux操作系统体现了最现代操作系统的设计理念和最经得住时间考验的设计方案。最令人注目的是Linux开发源代码的开发模式, 这保证了任何系统的漏洞都能被及时发现和改正。

1.3 低移植成本和低管理成本

Linux能够在几乎所有的计算机平台上运行, 包括PC、PC服务器、UNIX服务器、中型机、大型计算机上, 给用户的应用软件在不同平台之间的移植创造了极为便利的条件。由于PC服务器使用的是windows操作系统, 中型机和大型机使用的是厂商提供的专用系统, 所以在不同的平台之间的软件移植, 可能会发生中间件的版本更换, 应用软件的重新编译, 甚至是应用软件源代码的修改, 很可能需要比较大的人力物力的投入, 而如果采用Linux操作系统, 不同平台之间的移植就会容易的多。由于众多的企业级的用户的计算机环境是低端和高端机共存, 不同厂商的计算机共存, 如果将操作系统都统一成Linux, 可降低管理成本。

2 Telnet协议

Telnet协议是TCP/IP协议族中应用最广泛的协议之一, 提供一个以联机方式访问网络资源的通用工具, 它允许用户与一个远程机器上的服务器进行通信。Telnet协议可以在任何主机 (任何操作系统) 或任何终端之间工作。各种操作系统都内置了Telnet协议的客户端软件, 不需要安装, 使用方便[4]。

2.1 Telnet的原理

Telnet的原理如图1.

要使用Telnet远程登录计算机, 需要启动两个程序, 一个叫Telnet客户程序, 它运行在用户的本地机上;另一个叫Telnet服务器程序, 它运行在用户要登录的远程计算机上。本地机上的客户程序要完成如下的功能:1建立与服务器的TCP连接;2从键盘上接受输入的字符;3把输入的字符串变成标准格式并送给远程服务器;4从远程服务器接收输出的信息;5把该信息显示在屏幕上。远程Telnet服务器程序监听客户端连接, 一接到连接的请求, 就完成如下的功能:1通知计算机, 远程计算机已经准备好了;2等候输入命令;3对输入的命令做出反应 (如显示目录内容, 或执行某个程序等) ;4把执行命令的结果送回给用户的计算机;5重新等候输入的命令。

2.2 Telnet的安装

安装Telnet服务器端的方法有多种, 可以使用命令行或是使用系统自带的图形安装软件。Telnet软件包通常包括两个软件:Telnet-client和Telnet-server。Telnet-client软件包提供Telnet客户端程序;Telnet-server软件包提供服务器端程序。

2.3 Telnet的配置

Telnet服务器默认在23端口监听所有客户机的连接, 为了是系统更安全, 可以更改服务器监听的端口。编辑文件/etc/services, 查看系统服务进程的端口号。

3 实验平台的搭建

本文中使用的实验环境是在虚拟机上搭建, VMwareWorkstation6.0是一款功能强大的桌面虚拟计算机软件, 提供用户可在单一的桌面上同时运行不同的操作系统, 进行开发、测试、部署新的应用程序。VMware Workstation6.0可在一部实体机器上模拟完整的网络环境, 以及可便于携带的虚拟机器, 其良好的灵活性与先进的技术省国旅市面上其他的虚拟计算机软件。实验中使用的操作系统Redhat 6.0是全球最大的开源技术厂家Red Hat推出的新一代Linux, 该版本能够提供先进性能的应用程序以及优秀可扩充性和安全性。通过改版操作系统, 你可以轻松的在你的数据中心上搭载虚拟化和云计算服务, 减少实际操作的复杂性、减少实际开销、充分发挥系统的性能。

4 结论

使用Telnet远程登录Linux网络服务器主机, 可以对远程Linux服务器进行全方位的管理, 给服务器管理带来很大的两大好处, 第一:服务器可以不用运行图形化桌面, 不用安装显示器, 这大大节约了服务器的宝贵资源, 降低了企业配置服务器的成本;第二:网络管理不用走到服务器旁边对其管理, 可以在远端对服务器进行管理, 减少了管理人员的工作量。但是由于telnet协议是一种明文传输的协议, 容易发生泄密, 存在安全隐患, 可以考虑使用类似于SSH的安全协议。

摘要:如何在Windows平台上远程管理Linux服务器是网络管理人员需要解决的一个问题, 本文研究利用Telnet这一远程登录工具, 在Windows平台上远程管理Linux服务器, 给网络的日常管理维护带来极大的便利。

关键词:Telnet,Linux,远程

参考文献

[1]Linux远程连接http://wenku.baidu.com/link.

[2]王金璐基于Linux的远程支持系统的研究福建电脑2006.4.

[3]李华生, 李亚鹃浅析Telnet协议及应用江西电力2011.2.

上一篇:门联锁电路下一篇:复合生态纤维