Linux网络计算机

2024-07-06

Linux网络计算机(共11篇)

Linux网络计算机 篇1

Linux是国际互联网发展的产物,在我国得到很快的发展。网络服务器使用Linux作为核心系统的比重正在逐年上升,并且在个人用户电脑中Linux的应用比重也在不断增大。Linux的开源策略使它得到广大用户的青睐,但这也让系统核心一览无余,系统存在的漏洞很容易被他人利用,因此应更加注重整个系统的网络安全设计。网络安全技术主要是为安全考虑而对客户机设置访问权限或对网络中传输的包进行处理的技术。

1 对客户机设置访问权限

网络管理员应仔细设定Linux的各种系统功能,并且加上安全措施以保障系统的安全。

1.1 口令安全

在进入Linux系统之前,所有用户需要输入用户账号和密码,只有通过系统验证,用户才能进入系统。设定登录密码是一项非常重要的安全措施,如果用户密码设定的不合适,就很容易被破译,尤其是拥有超级用户使用权限的用户,如果没有良好的密码,将给系统造成很大的安全漏洞。

1.2 设定用户账号的安全等级

在Linux上每个账号可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应该根据需要赋予该账号不同的权限,并且归并到不同的用户组中。除了一些重要的用户以外,建议把其他用户的telnet权限屏蔽掉,只给其ftp的权限,可以防止一些人利用其他用户登陆到Linux系统上。

1.3 取消不必要的服务

/etc/inetd服务器程序承担网络服务的任务。它同时监视多个网络端口,一旦接收到外界传来的连接信息,就执行相应的TCP或UDP网络服务。Linux中的大部分TCP或UDP服务都是在/etc/inetd.conf文件中设定。所以取消不必要服务的第一步就是检查/etc/inetd.conf文件,在不要的服务前加上“#”号。一般来说,除了http、smtp、telnet、ftp之外,其他服务都可以取消。因此,很多Linux系统将这些服务全部取消或部分取消,以增强系统的安全性。

1.4 控制网络用户对系统的访问

(1)限制IP地址这是通过安装TCP_Wrappers软件来实现的。该软件可对系统进行telnet、ftp、rsh、finger和talk等服务访问的IP地址进行控制。比如可以只允许公司内部的一些机器对服务器进行这些操作。

(2)限制超级用户口令超级用户口令只允许系统管理员知道,并要求定期修改。另外,不允许用户远程登录来访问root,这是在系统文件/ect/security中缺省设置好的。还可以通过“sudo”命令,将原来只有root执行的一些操作分授给其他用户。

采用以上的安全守则,虽然可以使Linux系统的安全性得到提高,但也不是万无一失。因此,用户还需要借助防火墙等安全工具,共同防御黑客入侵,才能确保系统安全。

2 Linux系统中的防火墙技术

防火墙是保障网络安全的重要措施。防火墙可用来在两个或多个网络间加强访问控制。设立防火墙的主要目的是保护一个网络不受另一个网络的攻击。从某种意义上来说,防火墙实际上代表了一个网络的访问原则。设定网络的安全策略,即确定哪些类型的信息允许通过防火墙,哪些类型信息不允许通过防火墙。

目前Linux中运用最广泛的是包过滤防火墙技术Netfilter。它不仅提供了包过滤的完整功能:NAT地址转换,真正的基于状态的过滤,包的速率的限制、接收、转发和发送等功能,而且还提供了扩展网络服务底层的框架。

2.1 Ne tfilte r在网络中的位置

Netfilter位于Linux的网络层(IP层)和防火墙内核模块之间(如图1)。虽然Netfilter构建在IP层,但是它并没有破坏内核的网络构造,而是通过Netfilter将防火墙对数据包的处理引入到IP层中。防火墙的代码与IP层的代码完全分离,这样使网路层与防火墙的结构都很清晰,耦合性降到最低,各部分功能的添加和修改都变得非常容易。

2.2 Ne tfilte r框架构成

在Netfilter框架中有若干个检测点,每个检测点上注册了一些处理函数,如:包过滤、NAT地址转换,用户还可以自定义一些功能。一般来说IP层中有五个检测点(如图2)。Netfilter框架包括三个模块:包过滤模块、NAT地址转换模块、数据包修改模块。它们之间相互独立,又完美地集成到Netfilter框架中。

2.2.1 包过滤模块

包过滤是指对进出防火墙的包进行禁止或放行的操作。它匹配源地址、目的地址、目的端口等参数。对同一连接的不同方向的包,它的匹配规则不同,并且每次匹配都要遍历规则表。

默认情况下,Linux内核有三条包过滤链:NF_IP_LO-CAL_INPUT、NF_IP_FORWARD、NF_IP_LOCAL_OUT-PUT。如图2,一个数据包进入Route1后,由Route1判断该数据包是进入NF_IP_LOCAL_INPUT链还是进入NF_IP_FORWARD链,即:该数据包是被本主机接收还是转发。如果一个数据包是本地产生的,它就被发往NF_IP_LOCAL_OUTPUT链,由这条链检查这个数据包是否能被发出去。这三个点上都有自己的过滤规则,只有满足该点的规则,这个数据包才能被转发或者接收。

2.2.2 NAT地址转换模块

地址转换完成的功能是对进出防火墙的数据包修改其源地址/源端口或目的地址/目的端口,并将返回的数据包做反向转换。其功能实现在图2的点1、4上,即:NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING。NF_IP_PRE_ROUTING是放在Route1前面,在一个数据包决定要发往哪条链之前就要对数据包地址进行转换,如果数据包要进行转发,需经过NF_IP_FOR-WARD链,发往NF_IP_POST_ROUTING进行地址转换,然后发出去。

地址转换包括两种形式:源地址转换和目的地址转换。例如:一个数据包进入NF_IP_PRE_ROUTING后,经过路由判断该数据包的目的地址是本网内,但是它不是本主机的地址,于是它发往NF_IP_FORWARD链,然后再发往NF_IP_POST_ROUTING。在这里NF_IP_POST_ROUTING修改该数据包的源地址为本机地址,然后才发出去,这就是源地址转换。源地址转换只能发生在NF_IP_POST_ROUTING链上。目的地址转换同源地址转换相似,但是它只能发生在NF_IP_PRE_ROUTING上。它的作用是把目的地址转换为本机地址,然后再把数据包发到NF_IP_LO-CAL_INPUT链上去。这种地址转换允许一个机构(包括多个网络节点)以一个地址出现在Internet上。NAT将每个局域网节点的地址转换成一个IP地址,反之亦然。

2.2.3 数据包修改模块

数据包修改模块是在NF_IP_PRE_ROUTING和NF_IP_POST_ROUTING上注册一些处理函数,实现对某些数据包的修改。该功能主要用于IP网络中的流量控制与服务质量的实现。

3 结论

本文比较全面的阐述了Linux网络安全技术。建立一个安全的网络环境,是每一个网络管理员努力的方向。但是世界上没有绝对安全,只有相对安全。所以有必要对系统做好备份工作,以防不测。平时要注意日志文件里的异常记录,把危险消灭在萌芽状态。对于系统的安全漏洞,要经常上网下载补丁。系统管理员必须综合利用各种安全工具和技术,制定合理有效的安全策略。在实际应用中制订严格的安全管理措施,按照安全管理措施和安全策略进行系统和网络的管理,才能保证系统的安全性。

参考文献

[1]解金敬,光红霞.Linux网络安全之经验谈[J].科技咨询导报,2007,16(2):165-165.

[2]张雅洁.Linux网络安全问题[J].经济技术协作信息,2007,27(3):54-54.

[3]刘传亮.基于Linux的混合增强型防火墙设计与实现[D].苏州大学论文,2004.

[4]罗晓广,曾钟健.Linux网络应用教室[M].北京:电子工业出版社,2004.

[5]Christian Benvenuti.Understanding Linux Network Internals[M].O'Reilly,December,2005.

[6]Liegler R.Linux防火墙[M].北京:人民邮电出版社,2004.

[7]Haisen.Linux安全基础[M].北京:人民邮电出版社,2002.

[8]冯建华.Linux高级网络管理[M].北京:清华大学出版社,2005.

[9]董剑安,王永刚,吴秋峰.Iptables防火墙的实现与研究[J].计算机工程与应用,2003,39(17):161-163.

[10]杨义先,钮心忻.网络安全理论与技术[M].北京:人民邮电出版社,2003.

Linux网络计算机 篇2

#useradd chen 2#useradd –u 600 –g chen1 –d /home/chen3 yonghu 同时在/etc/passwd/和etc/shadow添加。#userdel –r chen1主目录#groupdel chen2.禁止用户登录:#passwd –l chen1-u恢复登录 –d删除用户#usermod –u 601 chen1 xiugai 主目录等 #id chen1 显示用户的UID和 GID信息。

文件属性#chown chen hello.txt改变文件的属主 #chown –R chen1 mydir递归改变目录的属主。#chgrpgroup1 hello.txt 改变的是文件的属组。Chmodg-w,o=x或者ugo=r。

压缩与打包

$tar-cvfmyetc.tar/ect将目录/etc打包为一个myetc.tar的文档

$tar –z(Z,j)cvfmyetc.tar.gz/ect将目录/etc打包并压缩为一个myetc.tar.gz(.Z ,.bz2)的文档

$tar-zxvfmyetc.tar.gz-C/tmp解压缩还原,如果没有指定路径,则在当前目录下

$gzipmyetc.tar将文件myetc.tar压缩为myetc.tar.gz

$gunzipmyetc.tar.gz将文件myetc.tar.gz解压缩为myetc.tar

挂载与卸载

#mount-tiso9660/dev/cdrom/mnt/cdrom挂载光盘:t是类型,设备文件,最后为挂载点

#mount-tvfat/dev/sda1/mnt/myusb将文件系统类型为vfat的优盘挂载到/mnt/myusb

#df查看是否挂载

#umount/mnt/cdrom卸载光盘文件系统

网卡配置命令:

#ifconfig显示网卡参数的配置情况

#ifconfig eth0 10.255.8.6 netmask 255.255.0.0

#ifconfig eth0 down/up

在根本上:/etc/sysconfig/network-scripts/ifcfg-eth0 里面的 ipaddre=;service network restart;Rpm –ivh(--force;--nodeps)……….。rpm

Crontab –l;crontab –e;(进入crontab)编辑环境

#!/bin/shecho”please input ip nums:”read numsecho” Starting profile execution, please wait…”for(i=1;i<=$nums;i++)doifconfig eth0:i 192.168.1.$idone

#!/bin/shfor(i=1;i<=100;i++)domkdir /tmp/dir$iuseradd/tmp/dir$iuser$ichmod 715 /dir$iDNS /etc/hosts是本地主机数据库文件存放域名 /etc/host.conf 解析器配置文件/etc/resolv.conf 是DNS客户端的配置文件,ip地址与域名。Apache的运行:

两种启动方式:#service httpd start 第二种:apachectl start.开机自动启动:chkconfig httpd on 检查运行状态:service httpd status

VSFTPD特点:安全性高;稳定性好;速度很快;匿名FTP更加简单的配置;支持基于ip的虚拟FTP服务器;支持虚拟用户,而每个用户可具有独立配置;支持PAM认证方式;支持带宽限制。

Samba服务 是windows和linux系统跨平台的共享文件和打印的软件,包括smbd进程和nmbd

Service smb startps-aux|greps(n)mbd配置文件/etc/samba/smb.conf包括全局设置部分共享定义部分

Samba1、用户主目录共享

[homes]

Comment=Home Directories设置注释

Writeable=yes对能够访问主目录的用户开放写权限

2、所有用户都可以访问的共享

[public]

Path=/home/samba该共享所对应的实际路径Browseable=no每个用户只能访问自己的主目录

Public=yes设置对所有用户开放

Read only=yes默认情况下,对访问该目录的用户设置为只读权限

Write list=@staff设置只有staff组中的用户对该共享才有写权限,“@”表示组

Iptable 是一款linux下著名的防火墙软件真正的是netfilter,Iptables只能算是防火墙与用户之间的接口,即netfilter运行在内核态,而iptables运行在用户态,用户通过iptables命令来调用netfiler来实现防火墙的功能,这就是linux防火墙的 基本架构

Filter过滤表(input链forword链output链)nat网络地址转换表(prerouting链output链postrouting链)mangle拆分表(prerouting链output,input,forword,postrouting)

#echo “1”> /proc/sys/net/ipv4/ip_forwardip数据包转发功能每次开机都需要的话:修改/etc/sysctl.confnet.ipv4_forward=1#sysctl-p 实时修改内核运行时的参数

1、iptables-AINPUT-jACCEPT 向filter表的INPUT链中追加一条规则,功能是接受源地址为任意、目标地址为防火墙本身的所有数据包。

2、Iptables-DINPUT-ptcp--dport80-jDROP从filter表的INPUT链中删除这样的一条规则,功能是拒绝协议为tcp、目的端口为80的数据包进入本机

3、Iptables-DINPUT1删除INPUT链中编号为1的规则

4、Iptables-IINPUT-ptcp--dport80-jaccept从filter表的INPUT链中插入这样的一条规则,功能是接受协议为tcp、目的端口为80的数据包进入本机

5、Iptables-LINPUT用来列出指定链中的规则

6、Iptables-FINPUT用来清空filter表中INPUT链中所有的规则

7、iptables-tnat-F8、iptables-ZINPUT将指定链的计数器清零

9、iptables –NMYCHAIN自定义新链

10、Iptables-XMYCHAIN用来删除指定MYCHAIN的链

11、iptables –P INPUT DROP默认被拒绝

12、iptables –E 321 new321 将自定义链重命名

Iptables 语法格式中的参数

1、iptables-AINPUT-ptcp-jACCEPT-p是用来匹配协议的本条功能:是接受协议为tcp的数据包进入本机,-p all用来匹配所有类型的协议

2、iptables-AINPUT-pucp--sport 53-jACCEPT--sport用来指定要匹配的端口

本条功能是:接受协议为ucp,源端口为53的数据包进入本机--sport 20:8020~80!反匹配

3、iptables-AINPUT-ptcp--dport 80-jACCEPT--dport用来指定要匹配的端口

本条功能是:接受协议为tcp,目标端口为80的数据包进入本机

4、iptables-AINPUT-s10.255.8.6-jACCEPT用来指定要匹配的源IP地址数据包进入本机。

5、iptables-AINPUT-d10.255.8.6-jACCEPT-d指定要匹配的目的IP地址。

6、iptables-AINPUT-ieth0-jACCEPT-i用来指定数据包进入的网卡 接受从网卡eth0进入本机的数据包

7、iptables-AFORWARD-oeth0-jACCEPT-o用来指定数据包出去的网卡

8、iptable –A INPUT –p tcp –syn –jACCEPT匹配发起建立tcp连接的数据包

9、iptables-AINPUT-ptcp-mmultiport--source-port10,21,53,80 110-jACCEPT--source-port 用来匹配多个不连续的源端口号接受tcp协议且源端口号为的数据包进入本机

10、iptables-AINPUT-ptcp-mmultiport--destination-port10,21,53,80-jACCEPT--destination-port 用来匹配多个不连续的目的端口号

11、iptables-AINPUT-ptcp-mmultiport--port22,80-jACCEPT用来匹配源端口号和目的端口号同为22或同为80的数据包进入本机

12、iptables –AINPUT-p icmp--icmp-type8-j ACCEPT接受icmp协议且类型编号为8的数据包进入本机

13、iptables-AINPUT-mlimit--limit3/m--limit-burst 5-jACCEPT在单位时间内通过五个数据包之后,立刻触发每分钟允许通过3个数据包的流量限制。

利用iptables充当防火墙,保护内网主机:

#!/bin/sh

Modprobe ip_conntrack_ftp把ip_conntrack_ftp模块载入内核,实现对Ftp会话跟踪

Modprobe ip_nat_ftp 把ip_nat_ftp模块载入内核实现nat和ftp功能

Echo 1 > /proc/sys/net/ipv4/ip_forward激活路由转发功能

Iptables –F

Iptables –t nat –F

Iptables –tmangle –F清空三张表

Iptables –P FORWARD DROPFORWARD链默认策略为DROP

Iptables –A FORWARD –i eth3 –p tcp –dport 80 –j ACCEPT

Iptables –A FORWARD –i eth2 –p tcp –dport 80 –j ACCEPT

Iptables –A FORWARD –i eth3 –p tcp –dport 21 –j ACCEPT

Iptables –A FORWARD-m state RELATED,ESTABLISHED –j ACCEPT开放内网ftp服务的数据连接的被动传输模式

Iptables –A FORWARD–p tcp –dport 22 –j ACCEPT开放内网服务器的ssh服务

Route add default gw 192168.2.1或/etc/sysconfig/networkGATEWAY=192.168.2.1#service network restart

利用iptables实现SNAT示例:

#!/bin/sh

Modrobe ip_nat_ftp

Iptables-F

Echo“1” > /proc/sys/nat/ipv4/ip_froward

Iptables-tnat-F清空nat表中的规则

Iptables-PFORWARD ACCEPT 设置FORWARD的默认处理策略为ACCEPT

Iptables-AFORWARD-ieth3-d192.168.2.0/24-ptcp--syn-jDORP

Iptables-tnat-APOSTROUTING-s192.168.2.0/24-oeth3-jSNAT--to-source202.204.235.100做SNAT,当位于内网段192.168.2.0/24转换成202.240.235.100

执行脚本

./snat.sh

Ifconfig eth3:1 202.204.235.100 netmask 255.255.255.0

Squid 支持http ftp ssl1、http_port 3128(8080)设置squid监听的端口号为31282、icp_port3130设置squid服务器之间通信的端口号为31303、cache_mem 256Msquid服务器运行时占用内存的大小

4、cache_swap_low 90cache_swap_high 95缓存使用

5、Maximum_object_size4096KB设置squid最大缓存的对象为4MB6、maximum_object_size_in_memory 8K 设置最大保存在内存中的对象为8K7、cache_dir ufs /var/spool/squid 100 16 256缓存目录

8、cache_access_log /var/log/squid/access.log9、Aclmynetsrc192.168.2.0/24将源ip地址为192.168.2.0/24的网段命名为mynet10、Acl mydomain src(dst)domain.baidu.com11、Aclthebadurlurl_regex-i^http:// 将以http:// 开头的url命名为thebadurl12、Acltheimagefileurl-regex-i.gif$将url路径中以.gif结尾的文件命名为theimagefile13、AclmyworktimetimeMTWHF08:00-17:00将周一到周五8:00到17:00命名为myworktimeMTWHFAS14、acl myport port 8015、http_access allow mynet设置允许列表mynet中定义的IP地址可以访问本代理服务器

16、http_reply_access allow all 设置针对列表all中所有客户机请求的答复进入本代理服务器

一.Linux下安装mysql步骤如下:

cd /usr/local/src //进入此放软件包的目录

groupadd mysql // 建立mysql组

useradd mysql-g mysql //建立mysql用户并且加入到mysql组中

tar-zxvf mysql5.0.41.tar.gz //解压缩

cd mysql5.0.41 //进入解开包的目录

./configure检测环境

make编译

make install安装

二.tomcat服务器安装

在安装Tomcat 之前需要安装j2sdk(Java 2 Software Development Kit),也就

是JDK1、安装JDK 的步骤如下:

1)下载j2sdk,如jdk-6u1-linux-i586-rpm.bin

2)在终端中转到jdk-6u1-linux-i586-rpm.bin 所在的目录,输入命令chmod +755

jdk-6u1-linux-i586-rpm.bin,添加执行的权限。

3)执行命令./jdk-6u1-linux-i586-rpm.bin,生成jdk-6u1-linux-i586.rpm 的文

件。

4)执行命令chmod +755 jdk-6u1-linux-i586.rpm,给jdk-6u1-linux-i586.rpm

添加执行的权限。

5)执行命令rpm –ivh jdk-6u1-linux-i586.rpm ,安装jdk。

6)安装界面会出现授权协议,按Enter 键接受,把jdk 安装在/usr/java/jdk

1.6.0_01。

7)设置环境变量,在/etc/profile 中加入如下内容(可以使用vi 进行编辑profile):

JAVA_HOME=/usr/java/jdk1.6.0_01

CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export PATH CLASSPATH JAVA_HOME

8)在终端执行命令java –version,jdk 的版本为jdk1.6.0_01 则表示jdk 已成功安

装。

2、安装Tomcat

1)下载apache-tomcat-6.0.10.tar.gz

2)tar-zxvf apache-tomcat-6.0.10.tar.gz //解压

3)cp-R apache-tomcat-6.0.10 /usr/local/tomcat //拷贝apache-tomcat-6.0.10到/usr/local/下并重命名为tomcat

4)/usr/local/tomcat/bin/startup.sh //启动tomcat

显示Using CATALINA_BASE: /usr/local/tomcat

Using CATALINA_HOME: /usr/local/tomcat

Using CATALINA_TEMDIR: /usr/local/tomcat/temp

Using JAVA_HOME: /usr/java/jdk1.6.0_01

3.1.2安装JDK

//修改文件jdk-6u3-linux-i586-rpm.bin的权限,并执行

[root@localhost root]# chmod 755 jdk-6u3-linux-i586-rpm.bin

[root@localhost root]#./jdk-6u3-linux-i586-rpm.bin

//这是再查看/root会多出一个jdk-6u3-linux-i586.rpm,安装这个包

[root@localhost root]# rpm-ivh jdk-6u3-linux-i586.rpm

//安装完成,可以在JDK的安装目录/usr/java下看到jdk1.6.0_03目录,进入/usr/java,做个jdk的目录连接到jdk1.6.0_03

[root@localhost root]# cd /usr/java

[root@localhost java]# ln-s jdk1.6.0_03/ jdk

书上的那两个编成题

#!/bin/sh

N=1

number=$1

if [ $number-lt $N ];then

exit 0

fi

while [ $N-le $number ]

do

ifconfig-s eth0:${N} 192.168.1.${N}/24

N=$[N+1]

done

A)创建文件/root/user100.sh

# > /root/user100.sh

(B)编写程序

# vi/root/user100.sh

# bin/bash

i=1

path=/tmp

while [ $i-ne 101 ]

do

if!grep“^user$i:”/etc/passwd > /dev/null 2>&1

then

useradduser$i

fi

if [!-d$path/dir$i ]

then

cd $path

mkdir dir$i

chownuser$i.user$idir$i

chmod751dir$i

fi

i=$[i+1]

done

(C)修改user100.sh的权限

# cd

# chmod+xuser100.sh

(D)运行程序

#./user100.sh

(E)查看结果

# ll/tmp

# cat/etc/passwd| grep “^user”

以正規表示法的方式控制:

url_regex [i] 163.com news bbs

urlpath_regex [i].exe$.gif$.dat$

# 允许上网时间段

acl accept_time time MTWHF 11:30-13:00

http_access allow accept_time

#禁止 qq 采用封QQ服务器IP的方法

acl qqip dst 218.18.95.165 219.133.38.4 219.133.38.132 218.18.95.221

http_access deny qqip

#禁止 msn 根据MSN启动的特征封掉

acl msnmessenger url_regex-i gateway.dll

http_access deny msnmessenger

#禁止popo

acl popo dstdomain lbs.popo.163.com popme.163.com

acl popo1 url_regex-i popme.163.com

http_access deny popo

http_access deny popo1

#禁止新浪UC

acl sinauc url_regex-i tcpconn.51uc.com

http_access deny sinauc

# 限制用户下载文件的类型

acl download urlpath_regex-i.mp3$.exe$.avi$.rar$.rvmb$.rm$.torrent$ /announce? #.torrent$ /announce? 为bt下载对应特征.(-i参数忽略大小写如:mp3=MP3)

http_access deny download

# 屏蔽某些含有特定关键词的站点:

acl refused_sites url_regex-i sex bt girl

也可把要禁止的站点写到文档中方便管理如下

Linux网络计算机 篇3

关键词:LINUX;WAP;无线网络

中图分类号:TP393.17文献标识码:A文章编号:1006-8937(2009)08-0119-02

Linux是一套免费使用和自由传播类Unix操作系统,其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。目前Linux的版本有很多,比较知名的有Red hat,Open SUSE以及目前比较流行的Ubuntu等。Ubuntu作为新兴的Linux版本,以其便捷的图形化操作界面,相比其他版本的Linux而言,大大减少了用户所需要记忆的各种枯燥的命令,而获得更多用户的青睐。目前无线接入相对于有线接入方式来说,最大的好处莫过于可以甩开网线,实现随时随地网络接入。Ubuntu虽然提供了无线接入方式,但是需要用户进行相应的配置,而且Ubuntu下的网络管理图形界面Network Management对于WPA无线身份认证协议支持不是很好,经常出现无法连接到使用WPA身份认证的无线AP的情况,下面介绍使用wpa_supplicant+wifi-radar方式实现接入WPA身份认证无线AP方法。

1无线网络相关术语

无线局域网络(Wireless Local Area Networks; WLAN)是相当便利的数据传输系统,它利用射频(Radio Frequency; RF)的技术,取代旧式碍手碍脚的双绞铜线(Coaxial)所构成的局域网络。

AP是(Wireless) Access Point的缩写,即(无线)访问接入点。如果无线网卡可比作有线网络中的以太网卡,那么AP就是传统有线网络中的HUB,也是目前组建小型无线局域网时 最常用的设备。AP相当于一个连接有线网和无线网的桥梁,其主要作用是将各个无线网络客户端连接到一起,然后将无线网络接入以太网(这正是Access Point名称的本义)。

SSID是Service Set Identifier的缩写,意思是:服务集标识。SSID技术可以将一个无线局域网络分为几个需要不同身份验证的子网络,每一个子网络都需要独立的身份验证,只有通过身份验证的用户才可以进入相应的子网络,防止未被授权的用户进入本网络,SSID也可以写为ESSID,用来区分不同的网络,最多可以有32个字符,无线网卡设置了不同的SSID就可以进入不同网络。出于安全考虑可以不广播SSID,此时用户就要手工设置SSID才能进入相应的网络。简单说,SSID就是一个局域网的名称,只有设置为名称相同SSID的值的电脑才能互相通信。

WEP--Wired Equivalent Privacy加密技术,WEP安全技术源自于名为RC4的RSA数据加密技术,以满足用户更高层次的网络安全需求。WEP是Wired Equivalent Privacy的简称,有线等效保密(WEP)协议是对在两台设备间无线传输的数据进行加密的方式,用以防止非法用户窃听或侵入无线网络。802.11b标准里定义的一个用于无线局域网(WLAN)的安全性协议。WEP被用来提供和有线LAN同级的安全性,目标就是通过对无线电波里的数据加密提供安全性,如同端-端发送一样。

WPA 全名为 Wi-Fi Protected Access,有WPA 和 WPA2两个标准,是一种保护无线电脑网络(Wi-Fi)安全的系统。WPA 实作了 IEEE 802.11i 标准的大部分,是在 802.11i 完备之前替代 WEP 的过渡方案。在使用家庭中和小型办公室最可能选用的“个人”模式时,为了保全的完整性,所需的密码一定要超过六到八个字符。

2配置实例

在配置计算机前,首先要对AP进行相应的配置,以启用WPA身份认证。这里以常见的无线宽带路由器TP-LINK的TL-WR340G型无线宽带路由器配置为例,其他型号的无线宽带路由器可以参考说明书进行相应的设置。首先在连接到无线宽带路由器的计算机上启动浏览器,在地址栏输入无线宽带路由器管IP地址,通常默认地址为:192.168.1.1,在弹出的登录对话框中输入用户名和密码,默认用户名和密码都是:admin。切换到无线参数选项栏中,首先对默认的SSID进行修改。为了提高无线网络安全性,建议将广播SSID功能取消,避免授权用户对AP进行扫描。将无线路由器的“开启安全设置”打开,在“安全类型”中,可以选择“WEP”,“WPA/WPA2”,“WPA-PSK/WPA2-PSK”,根据上面的介绍,WEP作为较旧的无线加密技术,RC4目前已经被破解,继续采用WEP方式已经无法满足安全的需求了,而 WPA/WPA2方式是指采用企业级的 WPA/WPA2身份认证方式,网络上还需要一台 RADIUS 服务器完成802.1x身份认证协议的支持,对于一般用户使用不到。PA-PSK/WPA2-PSK方式为个人版的WPA,已经可以足够满足搭建安全无线网络的需求了,所以这里“安全类型”选择“WPA-PSK/WPA2-PSK”。在“安全选项”中,选择类型有:“自动”,“WPA-PSK”,“WPA2-PSK”,最好选择安全性更高的WPA2-PSK。在“加密方式”:“自动”,“TKIP”,“AES”三个选项中,最好选择“自动”,表示同时启用“TKIP”,“AES”两种方式,因为TKIP: Temporal Key Integrity Protocol负责处理无线安全问题的加密部分,TKIP由WEP使用的同样的加密引擎和RC4算法组成,不过TKIP中密码使用的密钥长度为128位,AES用于对密匙进行加密。在PSK密码栏输入加密密匙:“TestPassw0rd123456”(注意:这里输入的密码长度最短为8个字符,最长不超过63个字符)。一切输入完毕以后点击保存,将配置保存。配置如图1所示。在配置完无线安全参数后,可以根据需要打开无线AP的DHCP功能,为了保护无线网络的安全,不建议打开该功能。

配置完无线AP以后,就可以在Ubuntu下进行配置了。配置之前首先需要进行一些准备工作:{1}检查你所安装的Ubuntu版本,目前最新的Ubuntu版本为8.10版,而8.04版以上的Ubuntu默认已经安装了wpa_supplicant,如果不清楚自己所安装的Ubuntu版本,可以在终端模式下输入命令:$uname -r 以检查自己的Ubuntu版本,8.04版本以上所使用的内核编号为2.6.24-19-generic。{2}安装wifi-radar软件包。wifi-radar是一个用Python语言编写的带图形化界面的WiFi管理软件,而我们就是使用wifi-radar代替Ubuntu自带的Network Management完成连接到无线网络工作。默认情况下Ubuntu是不安装wifi-radar软件包的,需要我们手动添加该软件包。从wifi-radar软件包的官方主页上进行下载安装包了,需要注意的是wifi-radar软件包对系统的其他软件包具有依赖关系,在安装wifi-radar软件包之前,要确认具有依赖关系的其他软件包都已经安装完毕。wpa_supplicant程序是在Linux,,BSD,Mac OS X以及Windows平台下提供对WPA/WPA2协议的支持。wpa_supplicant提供WPA-PSK,WPA(RADIUS 认证服务器) ,支持AES(Ubuntu下为CCMP)以及TKIP加密算法 ,支持PMKSA,以及预分配两种密匙管理方式。启用wpa_supplicant方法为:在终端模式下输入命令:$sudo wpa_supplicant -Bw -i wlan0 -c ~/wpa2-psk-tkip.conf就可以了(注意运行wpa_supplicant需要提升为root权限。-B:程序运行于后台。-w:等待直到网卡准备好,如果不带该参数wpa_supplicant运行后就会自动退出。-i:指定在哪一块网卡上监听。-c:指定wpa_supplicant所需要使用的配置文件。WPA-PSK协议中需要指定无线AP的SSID,使用的加密算法,以及使用的密匙等信息,就是通过wpa_supplicant配置文件提供的。在使用wpa_supplicant之前,要先建立所要使用的配置文件,根据无线AP上进行的安全配置选项,在当前用户目录下建立wpa2-psk-tkip.conf配置文件如下:

# WPA-PSK/TKIP

ctrl_interface=/var/run/wpa_supplicant

network={

ssid="wireless-home"

#输入无线AP的SSID

key_mgmt=WPA-PSK

#密匙管理采用WPA-PSK方式

proto=WPA2

#使用WPA2协议

pairwise=TKIP

#加密方式TKIP

group=TKIP

#密匙组TKIP

psk="TestPassw0rd123456"#输入无线AP中保存的密匙

}

在以上这些工作都结束以后,在终端模式下运行:$sudo wpa_supplicant -Bw -i wlan0 -c ~/wpa2-psk-tkip.conf,wpa_supplicant程序就已经在后台中运行,检查程序是否已经运行,在终端模式下输入:$ps -A | grep wpa_supplicant查看是否有wpa_supplicant进程正在运行。在完成wpa_supplicant程序进行身份认证的部分后,就可以开始使用wifi-radar管理无线网络连接了。在终端模式下运行:$sudo wifi-radar(需要提升至root权限)。wifi-radar是一个图形化界面的无线网络连接管理程序。单击“New”,在弹出的对话框中Network Name输入无线AP的SSID:wireless-home,在WPA项点击“Use WPA”,“Driver”项栏目保持为空,如果之前的无线AP配置中打开了DHCP功能的话,保持“Automatic network configuration(DHCP)”不作修改,否则填入与无线AP所在同一网段的IP地址以及网关。配置完毕以后,点击“Save”保存,回到wifi-radar界面下点击“Connect”,就可以连接到无线AP。

在使用过程中,如果出现无法连接到无线AP的情况,通常是wpa_supplicant配置文件出现了问题,为了确定身份认证是否成功,可以在运行wpa_supplicant时不带控制参数-B,此时wpa_supplicant程序运行在终端控制台中,通过查看wpa_supplicant运行信息,即可判断是否是因为身份认证失败导致无法连接到无线AP,如(见图2)。

当看到“WPA: Group rekeying completed with 00:1d:0f:43:30:54 [GTK=TKIP]”这条信息,表示身份认证已经成功。

3结语

Linux网络计算机 篇4

1嵌入式Linux系统

作为最常见的嵌入式系统,嵌入式Linux系统在行业内部的应用日趋广泛,这得益于其显著的优势:

(1)免去了许可证等费用。对于很多商业操作系统而言,往往需要投入较高的许可证费用支出,由于该软件源代码开放,因而为用户节约了大笔费用。

(2)提供了强大的网络支持功能,嵌入式Linux支持所有互联网协议。由于源代码公开,具有清晰的文档和注释,因而应用时存在任何问题都能加以处理,确保了应用及系统运行的可靠性,这也是嵌入式Linux系统最为关键的优势。较其他嵌入式系统不同,嵌入式Linux系统的开发工具更丰富,多数系统开发过程中程序调试需要以仿真器来操作,但Linux系统无需使用,利用调试器即可进行。当然,嵌入式Linux系统应用中也存在一定的问题:

(1)不提供硬实施进程处理机制,

(2)会受最大进程数及最小内存的制约,

(3)以模块机制为基础的内核剪裁缺乏足够的灵活性。

2嵌入式Linux系统结构的构建与设计

2.1系统结构

本文结合嵌入式Linux系统已有成果,构建了一种与网络计算机相适应的嵌入式Linux系统结构,结构图如图1所示。

如图1所示,左边是从程序代码视角出发,对嵌入式Linux系统加以分层,右边是以操作系统视角出发,进行整体结构的分层。

2.1.1客户进程

这是Linux系统运行中最高层次的软件集合。当一个程序运行时,其就是一个进程,就程序代码的层次而言,可将客户进程分成3方面:

(1)以字符界面为基础的用户进程,

(2)图形用户接口,

(3)图形用户接口的进程。以字符界面为基础的进程,指的是Linux系统常用shell命令、备份压缩命令、网络通信命令等。对于图形用户接口而言,Linux系统属于Unix系统,因此,其操作过程主要是通过Shell命令实现,这对于用户而言不易接受。为此,必须提供更便捷的图形用户接口,这样,用户利用鼠标即可实现多数操作。以图形用户接口为基础的进程指的是借助于用户界面,提供诸如CAD、办公、浏览器等程序。

2.1.2 Linux内核

这属于系统的核心,负责磁盘文件、内存的管理,并提供程序启动功能,通过网络进行数据包的接收、发送。其实,内核就是资源操作到硬件操作的接口。就程序代码层次而言,Linux系统内核主要包括三个层次:

(1)硬件驱动层,该层与硬件相关,借助于CPU所提供的硬件访问指令,对硬件有关的数据进行传输、接收、控制等的一类结构、方法、宏等。

(2)系统内核层,这是系统核心层,负责内存及文件管理、网络及进程通讯、进程调度等。

(3)系统调用接口,负责调用内核中的特定进程,完成特定任务,系统调用自身由多条指令构成。

2.1.3硬件

主要涉及到Linux系统安装过程中可能需要的各种设备,如内存、硬盘、CPU等等。

2.2系统的设计

结合上文所构建的Linux系统结构,将嵌入式Linux系统设计分为5大部分:

2.2.1内核的定制与修改

本文对Linux系统内核进行了修改、配置,一方面,对系统所需内核编译配置选项进行了科学设置,另一方面,结合网络计算机具体情况,对源代码进行了修改。Linux内核在嵌入式系统中需要修改,但相对稳定、成熟。将虚拟存储管理运用到Linux系统,能提高内存使用率、算法设计精确率。上述措施可应用到桌面领域,用来支持多任务运行和多性能需求,但在嵌入式领域中,由于电子盘体积小,失去交换意义,减少调用和中断,提高CPU反应速度。

2.2.2系统的引导

指的是由BIOS及操作系统引导程序,对内核可执行代码分层、逐级封装到内存中,直至系统控制台显示“login:”为止,方完成系统内核的加载过程。本文主要采用的是Linux常用启动引导程序——LILO进行引导。

2.2.3根文件系统的构建

根文件系统属于嵌入式Linux系统启动过程中必不可缺的组件,内核启动最后需要对根文件系统进行加载。需要结合具体情况,对根文件系统进行组织,这也是根文件系统设计构建的重点。

2.2.4图形用户接口

图形用户接口包括:一是窗口系统,显示屏图形输出与执行,提供文本及绘图功能,二是窗口管理器,对窗口进行操作,输入焦点管理;三是工具包,提供常规库;四是风格,用户界面外观及行为进行指定。常见接口包括Mini GUI等。

2.2.5应用软件

本文所设计软件提供浏览器、媒体播放、PDF文档浏览等多重功能,因此,本文在系统中集成了诸如mozilla、XPDF、mplayer等软件,满足了功能需求。

3结语

一言以概之,嵌入式Linux系统的应用十分广泛,其不仅为网络计算机软件开发奠定了基础,还改善了系统的开发环境,确保了系统运行过程的可靠性、稳定性,保障了软件运维的高效性。

摘要:本文以嵌入式Linux操作系统概述为切入点,对网络计算机嵌入式Linux系统结构进行了构建,旨在增强网络计算机的功能,降低系统对于服务器的依赖性,继而进一步拓展计算机应用范围。

关键词:网络计算机,嵌入式Linux结构

参考文献

[1]杨延庆.基于8086单芯片计算机的嵌入式Linux操作系统移植[J].西安工程大学学报,2015,21(04):452-456,461.

Linux网络计算机 篇5

摘要:校园网络中心作为校内局域网络的数据流转控制中心,必须解决因流量增加应用更新所带来的一系列问题。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系统网络安全 篇6

Linux操作系统提供了用户账号、文件系统权限和系统日志文件等基本安全机制, 因此网络系统管理员必须细心设置安全策略。

1.1 账号安全

在Linux系统中, 用户账号是由用户名和用户密码组成。系统将输入的用户名存放在/etc/passwd文件中, 而将输入的密码以加密的形式存放在/etc/shadow文件中。在正常情况下由操作系统保护, 能够对其进行访问的只能是根用户root和操作系统的一些应用程序。如果设置不当或在系统运行出错的情况下, 这些信息可能被普通用户得到, 非法用户就能使用“口令破解”的工具去得到加密前的口令。

1.2 文件系统权限

Linux文件系统的安全主要是通过设置文件的权限来实现的。文件或目录, 都有3组属性, 分别定义文件或目录的所有者, 用户组和其他人的使用权限, 而权限为SUID和SGID的可执行文件, 在程序运行过程中, 会给进程赋予所有者的权限, 若被黑客发现并利用就会给系统造成危害。

1.3 合理利用Linux的日志文件

Linux的日志文件用来记录整个操作系统使用状况。作为一个Linux网络系统管理员要充分用好以下几个日志文件。/var/log/lastlog文件记录最后进入系统的用户的信息, 包括登录的时间、登录是否成功等信息。这样用户登录后只要用lastlog命令查看一下/var/log/lastlog文件中记录的所用账号的最后登录时间, 与管理员登陆记录对比就能发现该账号是否被非法盗用。/var/log/secure文件记录系统自开通以来所有用户的登录时间和地点, 能给系统管理员提供更多的参考。/v a r/l o g/wtmp文件记录当前和历史上登录到系统的用户的登录时间、地点和注销时间等信息。

2、Linux网络系统可能受到的攻击

Linux是公开源码的操作系统, 比较容易受到来自底层的攻击, 管理员要有安全防范意识, 对于Linux网络系统可能的攻击采取必要的措施保护系统正常运行。

2.1“拒绝服务”攻击

所谓“拒绝服务”攻击是指黑客采取具有破坏性的方法阻塞目标网络的资源, 使网络暂时或永久瘫痪, 从而使Linux网络服务器无法为正常的用户提供服务。非法用户能利用伪造的源地址或受控的其他地方的多台计算机同时向目标计算机发出大量、连续的TCP/IP请求, 从而使目标服务器系统瘫痪。

2.2“口令破解”攻击

口令 (即密码) 安全是保卫自己系统安全的第一道防线。“口令破解”攻击的目的是为了破解用户的密码, 从而能取得已加密的数据库等信息资源。黑客通常利用一台高速计算机, 配合一个字典库, 尝试各种口令组合, 直到最终找到能够进入系统的口令, 窃取数据库及其他信息资源。

2.3“欺骗用户”攻击

“欺骗用户”攻击是指网络黑客伪装成网络公司或计算机服务商的工程技术人员, 向用户发出呼叫, 并在适当的时候需求用户输入口令, 这是用户最难对付的一种攻击方式, 一旦用户口令失密, 黑客就能获取的信息轻易进入资源系统。

2.4“扫描程式和网络监听”攻击

许多网络入侵是从扫描开始的, 利用扫描工具非法用户能找出目标主机上各种各样的漏洞, 并利用之对系统实施攻击。

网络监听也是黑客攻击的常用方法, 当成功地登录到一台网络上的主机, 并取得了这台主机的根用户控制权之后, 黑客能利用网络监听收集敏感数据或认证信息, 以便日后夺取网络中其他主机的控制权。

3、Linux网络安全防范策略

作为Linux网络系统的管理员, 在合理规划网络结构的同时, 应加强对一般用户权限的管理和设置, 通常采用以下的策略。

3.1 限制一般用户的权限

为了保护Linux网络系统的资源, 在开设用户账号时, 仔细设置每个用户的权限, 一般应遵循“最小权限”原则, 也就是仅给每个用户授予完成他们特定任务所必需的服务器访问权限。这样做会加重系统管理员的工作量, 但为了整个网络系统的安全还是应该坚持这一原则。

3.2 确保用户口令文件/etc/shadow的安全

对于网络系统而言, 口令是比较容易出问题的地方, 系统管理员要保护好/etc/passwd和/etc/shadow这两个文件的安全, 非法用户利用John等程序对/etc/passwd和/etc/shadow文件进行字典攻击也无法获取用户口令。同样管理员也要定期用John等程序对本系统的/etc/passwd和/etc/shadow文件进行模拟字典攻击, 发现有不安全的用户口令要即时修改。

3.3 加强对系统运行的监视和记录

Linux网络系统管理员, 应对整个网络系统的运行状况进行监视和记录, 通过分析记录数据, 能发现可疑的网络活动, 并采取措施预先阻止今后可能发生的入侵行

3.4 定期安全检查

Linux网络系统的运转是动态变化的, 因此安全管理也是变化的, 系统管理员应定期对系统进行安全检查, 并尝试对自己管理的服务器进行攻击, 如果发现安全机制中的漏洞应即时采取措施补救。

3.5 适当的数据备份

Linux系统管理员, 必须为系统制定适当的数据备份, 充分利用磁带机、光盘刻录机、双机热备份等技术手段为系统备份重要数据, 在系统一旦遭到病毒破坏或黑客攻击瘫痪时, 迅速恢复工作, 尽可能减少损失。

4、加强对Linux网络服务器的管理

4.1 利用工具, 记录对Linux系统的访问

Linux系统管理员应利用前面所述的文件和记录工具记录事件, 定期查看或扫描系统运行的所有信息。及时发现异常并采取相应措施。

4.2 慎用Telnet等服务

在Linux下, 用Telnet进行远程登录时, 用户名和用户密码是明文传输的, 这有可能被在网上监听的其他用户截获, 因此不是特别需要, 不开放Telnet服务。

4.3 设置服务器安全

为Linux的Apache、My Sql定期更新补丁包, 完善老版本的缺陷和漏洞。

4.3.1 Apache安全设置

包括敏感信息保护、最小化安全原则、规范访问控制、防DOS配置、日志维护和保护等。屏蔽banner Server Tokens Prod Server Signature Off, 屏幕默认目录/var/www/icons, /var/www/htdocs, /var/www/manual, /var/www/cgi-bin下默认文件;屏蔽枚举帐户User Dirpublic_html, 去掉索引功能Options–Indexes;规范访问控制, Web根目录设置Document Root, 应为web首页目录, 启动帐户启动Apache的账号应为nobody User nobody Group nogroup, 设置合理的属主cp httpd/usr/local/apache/bin chown0/usr/local/apache/bin/httpd chgrp 0/usr/local/apache/bin/httpd chmod 511/usr/local/apache/bin/httpd, 设置合理的权限#chown-R root:root/usr/local/apache#find/usr/local/apache-type d|xargs chmod 755#find/usr/local/apache-type f|xargs chmod 644#chmod-R go-w/usr/local/apache

4.3.2 MySql数据库的安全配置

Linux网络计算机 篇7

网络计算机系统结构原本主要是以网络、WEB服务器和浏览器三层架构为主,但是随着应用语言JAVA的出现,三层架构模式被优化、改善,无论是应用性能还是合理性能都得到提升,所以基于JAVA语言的计算结构设计和应用成为了网络计算机应用发展中的主流。对于网络计算机系统而言,它的构成主要以NCOS和NCServer为主,前者主要在网络计算机上运行,后者则集中在服务器上运行,这两个部分无论哪个,JAVA语言都占有关键地位,所以,基于网络计算机的JAVA虚拟机运行效率的技术研究能够很大程度上提升运行性能和效益,对服务性能的改善产生极为显著的影响,对于应用性能方面的探索而言十分重要[1]。

一、基于Linux的Java虚拟运行优化设计

Linux是当前主流操作系统,也是进行JAVA虚拟运行优化设计的主要平台。优化设计要在明确优化对象的基础之上,从硬件和软件两个方面保证优化条件,然后根据具体实践情况合理应用多种优化技术为其服务,最终设计出性能合理的优化方案,并在此技术上解决各类问题或者技术改良实现优化运行设计与实践。

首先是明确优化对象。优化对象可以选择Kaffe,它作为一个源代码开放的软件包而言,是一个较为优越且应用广泛的语言环境,作为优化对象来说很有价值,关于其优化的操作设计,要在深入分析语言运行环境的基础上进行设计操作。Kaffe的开发本身就是以类Unix系统为参考基础,这一特性决定了它能够能够在JAVA环境下进行一定程度的移植,对比其他结构来说优化设计难度要低了不少;Kaffe在语言环境规范上完全均从JAVA架构且十分完整,在运行方面能够顺利接入各种网络设备或者嵌入式系统等,应用性能和范围十分优越;解释器switchcase模式的性能决定了此优化设计在应用适用性方面效果卓越;以模块为基础的实现方式决定了其收缩性与高效性有一定程度的保障[2]。

其次是优化条件。优化条件包含硬件和软件两方面,硬件方面为满足一般用户有效应用需求,终端多采取地段硬件配置,这样在成本控制方面就有了一定优势,目前一般情况下硬件配置方案为低主频CPU、小容量FlashROM以及CF卡、内存等;在这些硬件条件基础上,对终端机存储器和CPU应用条件以及JVVA执行效果进行充分考虑,然后以此为考量进行Java虚拟运行优化设计。

优化技术方面目前主要以两大主流为主,分别是解释执行技术和编译执行技术的优化。解释执行技术的优化主要通过应用解释器实现,目前常用的有三种,分别是线索式、直接线索式以及内嵌线索式。编译执行技术优化主要包含三项内容,分别是即时编译、自适应优化和提前编译,这三项内容(技术)在各自的JAVA环境下运行前(时)对字节码进行编译操作使其成为本地机器码,通过缩短执行时间来实现运行环境的优化,在优化技术方面,只要通过消除、内嵌公共子表达式完成优化过程。

优化方案设计:对比分析解释技术和编译技术的运行优化效果来看,在满足相对条件、且能够取得令人满意的优化效果方面,解释器的应用是最理想成本下的选择,其中直接线索式解释器的应用是最佳方案。以此为指导进行JAVA虚拟机运行优化的设计,需要通过压缩数组以节约空间,那么可以通过合并操作数、地址跳转的方式来实现。比如32位CPU中,原本标号地址占用容量为4B,操作码长度OB-10B,在进行合并、空间节约和地址转化之后,容量占用缩减为2B,无疑能够显著提升Java虚拟机运行效率。

总之,基于Linux网络计算机的Java虚拟机运行效率的提升要根据优化目标和需求进行合理优化设计,在明确优化对象、达到优化条件的基础上应用各种技术方案进行设计,以保证达到优化目标。

参考文献

[1]李允,罗蕾,雷昊峰,熊光泽.嵌入式Java虚拟机的性能优化技术[J].计算机工程.2011:18

Linux网络计算机 篇8

在个人电脑和网络发展的过程中, 信息系统的主要终端形式就是PC, 因此需要对硬件系统和软件系统进行更新, 这样不仅会增加总体拥有的成本, 也会带来比较繁琐的维护工作。与此同时以服务为中心的计算模式对计算机系统的资源共享性提出了更高的要求, 我国的网络带宽提高幅度也非常迅速, 网络计算机加高性能用服务器成为了网络计算机服务器体系结构的主要发展方向。

1 NC (网络计算机) 及其技术要求

1.1 NC (网络计算机)

作为一种瘦客户端, 网络计算机能够运用网络来提供大多数的资源, 因此网络服务器是获取网络计算用服务的主要来源。根据网络计算的相应性能和基本概念, 当前的NC主要有以下3个方面的内容:①Net PC, 其基础是实现服务器的增加, 通过集中式管理的方式对计算机进行简化。②类NC, 就是以X终端和无盘工作站的改进为基础的windows终端。③真NC, 真NC的主要技术是Java, 符合NC-1规范标准, 对资源具有较少的要求。

对比个人电脑可以发现, 网络计算机具有较强的管理性, 而且价格相对较低, 其系统主要包括网络服务器上的应用服务、网络计算机服务器、网络计算机3个层面[1]。

1.2 在Linux上实现网络计算机服务器的技术要求

作为世界上使用范围最广的操作系统, Linux系统在各种嵌入式设备、桌面PC、网络服务器中都得到了广泛的应用。我国的很多高校、企业和电子政务中也开始应用Linux, 这就需要在Linux上实现网络计算机服务器。

X窗口平台是Linux系统在桌面上的主要应用形式, 其优点在于能够在远端设备上显示应用程序的用户界面, 但是其也存在一些问题, 与NC架构不适应:

①NC的物理属性不同, 导致了网络服务器和NC之间的网络带宽具有一定的可变性。

②NC具有多个可供选择的安全级别, 局域网的安全级别要求较低, 只需对用户密码信息进行加密传输, 但是广域网具有较高的安全级别要求, 输出和输入的信息都必须进行加密。

③作为一种多用户操作系统, Linux要求用户要在Linux服务器上使用各自的身份进行登录, 每次要对服务器进行登录都要用到ASP作为一次用户会话, NCS会对每一次会话的状态进行保存。

④用户界面的输出信息会被传输至NC, 然后ASP也会接收NC的鼠标和键盘发送的信息, X客户程序是Linux上的主要ASP形式, 必须获得X服务器的支持[2]。

2 NC服务器的主流实现技术

2.1 VNC

无状态极瘦客户端并应用于VNC架构中, 使用RFB协议可以向客户端发送服务器的帧缓冲, 并对该客户端发送的输入信息进行接收, 然后转发给别的应用服务。VNC服务器在Linux上的实现是由X服务器完成的, 通过X协议, X客户程序可以和服务器进行交互。同时在对显示请求进行处理时, 也可以通过VNC服务器的RFB协议向瘦客户端传送X客户程序的显示信息。VNC系统的被动式适应能力较强, 以客户端的需求来驱动桌面的更新, 其对网络环境和客户端物理属性均无主动适应能力[3]。

2.2 Tarantella

Tarantella服务器能够向瘦客户端同时提供不同平台类型的服务, 因此在企业的集中管理中应用的比较广泛。X、SSH、Telnet、ICA、RDP等协议都可以使用Tarantella服务器进行转换, 并向瘦客户端传送。Tarantella能够对数据传输的线路状态进行监控, 并对网络相应进行优化。

2.3 TerminalServer

通过对Windows NT功能进行扩充和修改, 产生了Terminal Server。其能够将标准的windows, 应用服务提供给, windows终端, 通过修改windows的虚拟内存管理构建, 能够使用户对系统资源进行共享。Terminal Server的安全策略共有3种, 而且其应用服务器也具有较强的可扩展性, 能够与负载均衡策略和用户会话目录相结合, 形成集群系统。

3 以Linux为基础的网络计算机服务器NCS体系结构

为了使网络计算机服务器, NCS得到实现需要两种进程。网络计算机NC的请求主要由主进程, 行监听, 而本次网络计算机NC链接的传递则由另一进程来实现, 本次会话服务的进行也由该进程负责。以Linux为基础的网络计算机服务器, NCS体系包括以下几个方面。

3.1 用户登录

NCSD会守在固定端口, 通过NC用户可以发起请求, 从而使其生成NCSD进程, 然后该端口会由NCSD父进程进行监听, 通过NC, SM会收到NCSD子进程发出的请求, 主要是请求获得空闲会话服务进程iss。在完成登录之后, 会话切换进程就会启动, 从而对与之相关的会话服务进行查找, 并将其提供给用户, 以供用户进行选择。若用户原有断连会话服务不存在于服务器中, 那么xinit就会对桌面进行初始化, 并将其向SM申请的空闲会话服务进程iss作为用户的会话服务。SM能够管理SS的状态信息, 其中主要包括会话断开时间、会话建立时间、会话状态、会话色彩深度、会话桌面高度、会话桌面宽度、显示标识符、会话用户名等。可以将会话服务状态分为3种, 分别为断连状态、忙状态和空闲状态。可以将系统的安全级别分为两种模式:非安全模式和安全模式, 这主要是为了使用户能够自由的选择安全模式, 同时也对传输信息的安全进行有效的保障。在局域网中应用NC, 可以使用非安全模式, 也就是图像、鼠标、键盘等输入输出的信息在NCS和NC之间传输不会经过加密。如果要选择安全模式, 那么要由SSH对NCS和NC之间传输的信息进行加密, 对传输信息的安全进行保障[4]。

3.2 用户的断连

在对网络计算机NC进行关闭之后, 用户就会退出, 但用户的会话服务并不会被注销。即时会话服务可以获取链接断开事件, 然后再关闭当前的链接, 向SM会话管理发出相应的请求。此时的网络计算机NC就会呈现出断连的状态。在轮询模式下, 会话服务可以等待下一次的用户连接请求。

3.3 用户注销

在用户对会话进行主动注销时, 用户主要是对注销进程进行启动。注销进程以显示标识为依据, 发出相应的请求。SM收到注销进程发出的请求之后, 就会将其传送的注销信息发送到会话服务上。以轮询模式为基础, 在消息列队中找到这个会话服务, 并对该事件进行删除。与此同时, 还要做好相应的绘画后续结尾工作, 完成整个工作之后, 本次会话记录删除的请求就会被发送到SM上, 这样一来用户就能够退出和注销。

4 结语

Linux是一种源代码开放操作系统, 出现的时间较早, 对未来的软件利用和开发具有一定的引导作用, 在未来的发展中, 其应用范围会越来越广。通过分析NC (网络计算机) 及其技术要求, 以及3种当前有比较广泛的NC服务器的主流实现技术, 本文探讨了以Linux为基础的网络计算机服务器NCS体系结构的设计和实现。在未来的研究中还要对以Linux为基础的网络计算机应用的传输效率、相关环境特征进行进一步的研究, 使网络计算机的应用可行性得到提高, 继续推动基于Linux的网络计算机服务器的发展。

摘要:作为一种早期的源代码开放操作系统, Linux本身就具有开放源代码的特性和一定的优势, 在很多大型企业和政府机构中都得到了广泛的应用, 其市场份额也在不断扩大。本文对基于Linux的网络计算机服务器的设计与实现进行了简要的分析, 通过分析网络计算机以及在Linux上实现网络计算机服务器的主要技术需求, 梳理了当前NC服务器的主流实现技术, 对以Linux为基础的网络计算机服务器NCS体系结构进行了分析, 供相关人员参考。

关键词:设计,网络计算机服务器,Linux

参考文献

[1]白静.嵌入式LINUX在信息家电软件开发中的与应用与前景[J].硅谷, 2011 (20) .

[2]殷晓辉.基于Linux操作系统的网络编程方法研究[J].科技传播, 2011 (13) .

[3]熊晓强.浅析Linux操作系统的发展[J].企业导报, 2011 (09) .

虚拟机安装Linux及网络设置 篇9

Red Hat linux 9和Ubuntu都是非常经典的Linux操作系统,很多电脑爱好者都想亲身体验一下。Linux文件格式和通常人们所用的Windows有很大区别,直接在电脑上安装易导致Windows系统下的文件丢失,所以用虚拟机安装Linux是不错的选择,本文以Red Hat linux 9为例来介绍,软件环境Vmware Workstation 6.5-7.0。

1 新建Linux虚拟机

通常先新建Linux虚拟机,然后再安装系统。具体步骤如下:(1)运行Vmware软件,点击“New Virtual Machine”图标,或“File”->“New”->“Virtual Machine”。

(2)根据向导选择“Custom”->“Next”->“Next”->“I will install the operating system later”(先新建虚拟机,然后安装系统)。

(3)Guest operating system选择Linux,Version选择Red Hat Linux。然后给虚拟机起名字如Red Hat Linux 9,选择安装位置,Memory选择512M(4的整数倍)即可。

(4)Network Bridged Networking处先选择第二项NAT(其他项也可以)。

(5)其余的一直按下一步即可,没有提到的选择默认项就可以。

2 在虚拟机上安装操作系统

在虚拟机上安装操作系统和在物理机器上安装基本相同,只有启动和镜像选择不同。

2.1 打开新建立的虚拟机Linux 9,在Devices选项卡中找到CD/DVD(IDE)双击,选择“Use ISO image file”,找到Red Hat Linux9的镜像文件第一个光盘(共三个),点击“OK”。(图1)

2.2 点击绿色三角按钮“power on this virtual machine”,启动虚拟机,安装正式开始。然后根据提示安装即可。

在安装过程中有几个需要注意的地方:

(1)鼠标由虚拟机切换到Windows桌面的快捷键是“Alt+Ctrl”。

(2)鼠标配置选择“带滑轮鼠标(PS/2)”,无论你的鼠标是USB口还是PS/2口,因为虚拟机它会把usb鼠标模拟成PS/2接口的鼠标。

(3)安装类型选择,如果是一般用户,选择个人桌面即可。

(4)磁盘分区选择自动分区即可,手动分区只针对“/”和“/swap”两个目录配置即可。“swap”是分区,通常被称作“交换分区”,相当于windows的虚拟内存。但它不是文件,而是一个独立的分区,它的大小设置为内存大小的两倍。

(5)根用户口令非常重要,根用户相当于Windows系统的Administrator。

(6)第一张光盘结束后,提示插入第二张光盘时,进行如下操作:点击虚拟机菜单栏VM->Setting->选中CD/DVD(IDE),在右侧选择第二个光盘的镜像文件,最后不要忘记点“确定”,光盘不会自动加载。

3 Vmware Tools的安装

通常情况下,安装完系统后,还要安装VMware Tools,以方便鼠标在Windows和Linux系统间的切换以及文件复制等操作。

(1)启动Red Hat Linux 9,用root账号登陆。

(2)在虚拟机菜单栏选择VM->install Vmware Tools,Red Hat Linux 9的桌面上会显示Vmware Tools虚拟光盘。

(3)复制后缀名为.tar.gz的压缩文件,并解压缩到/tmp/vmwaretools-distrib。

(4)同时按F1+Alt+Ctrl键,进入字符界面,以root用户登陆。(如图2)

(5)输入命令:cd/tmp/vmware-tools-distrib,进入目录。

(6)输入:./vmware-install.pl,执行文件,一直按“Enter”即可。

(7)输入reboot命令,重新启动就安装完成了。

4 上网设置

在虚拟机下安装的Red Hat Linux 9要实现上网有三种方式:NAT、Host-only、Bridge。方式选择方法:点击虚拟机菜单栏VM->Setting->Hardware选项卡选择Network Adapter,右侧选择相应选项即可。

Bridge模式下,虚拟操作系统就像是一台独立的主机,需要手工配置IP地址、子网掩码,并且要和宿主机在同一网段上。

设置方法为:Linux主菜单->系统工具->网络设备控制->配置->双击eth0->将静态IP改为自动获取IP,DNS设置和宿主机相同。

NAT模式设置比较简单。NAT模式就是让虚拟系统借助网络地址转换功能,通过宿主机所在的网络访问公网。在这种模式下,宿主机内部会出现一个虚拟的网卡vmnet8,vmnet8就相当于连接到内网的网卡,虚拟机的网卡eth0独立于vmnet8。Vmware自带了NAT服务,提供了从vmnet8到外网的地址转换,所以这种情况是一个真实的NAT服务器在运行,只是供虚拟机使用。如果只有一个IP地址,使用NAT模式很合适。

NAT模式设置方法为:

(1)VM->Setting->Hardware->Network Adapter选择NAT模式。

(2)打开虚拟机机菜单栏Edit->Virtual Network Editor->选择Vmnet8。

(3)打开宿主机网上邻居属性,VMnet8 IP地址设置为192.168.128.3,子网掩码设置为255.255.255.0,其他不设置。

(4)Linux网络设置IP地址设置为192.168.128.5,子网掩码255.255.255.0,默认网关地址192.168.128.2。(图3)

(5)DNS设置和宿主机一样。

(6)在linux终端下运行命令service network restart(重新启动linux的网络服务)。(图4)

在特殊网络环境下,要求将真实环境和虚拟环境隔离开,就要采用Host-only模式。在此模式下,所有的虚拟系统间可以互相通信,相当于网线互联,IP地址等都是通过虚拟网络的DHCP服务器动态分配的。

Host-only模式下配置方式如下:

(1)虚拟系统的IP设置为192.168.0.5,DNS:192.168.0.1。

(2)修改Vmware的VMnet1的IP地址为:192.168.0.1。

(3)在宿主机上设置Internet连接共享,具体设置方式为:本地连接属性-->高级-->连接共享,然后选择VMnet1,将网络共享给虚拟系统。

(4)在宿主机上ping一下192.168.0.5,如果能ping通,说明设置正确。

5 结束语

Red Hat Linux 9在安装过程中可以做个性化的设置,精简的系统既能满足需要,又节约了硬件资源。在安装过程中会遇到各种情况,只有多练习才能做出适合自己的系统。安装好系统后尽情享受Linux给你带来的乐趣吧。

参考文献

[1]张世照.Red Hat Linux安装经验谈[N].中国电脑教育报,2001-01.

[2]陈新,王洪信,张楠,陈娜.Linux网络配置[J].网络与信息,2010-07.

用Linux代替Windows 篇10

大部分人都认为Windows使用起来比较简单,而Linux系统非常复杂,事实上,面向个人用户的Linux版本大多是比较简单易用的,特别是Ubuntu:将Ubuntu安装到电脑上只需要几分钟的时间;它可以作为电脑的独立系统,也可以和Windows等原有的系统共存;此外,Ubuntu也可以在一个闪存盘上运行;除了语言和时区,Ubuntu的安装过程极其简单;更难能可贵的是,Ubuntu已经解决了Linux系统驱动程序不全的问题,除了最新的显示卡之外,Ubuntu几乎可以支持所有的硬件,用户可以不用再担心电脑中的某一个硬件设备无法正常使用了。

Ubuntu(www.ubuntu.com)各个版本的ISO文件可以通过其官方网站下载,每一个版本有32位和64位两种选择,通常电脑内存少于32GB的应该选择32位系统。一般来说可以选择稳定版本或者最新版本下载,但需要注意最新版本有可能仍未完善,甚至会缺少与Windows共存的安装选项。下载ISO文件后,我们可以选择刻录光盘并使用光盘启动电脑进行安装,也可以选择使用闪存盘(4GB以上)进行安装,下面,我们将以使用闪存盘为例为大家介绍具体的步骤。

安装步骤

1、制作闪存安装盘

我们将通过Linux Live USB Creator(www.linuxliveusb.com)制作闪存安装盘,该软件支持在制作过程中下载Ubuntu的ISO文件,但考虑到网络速度和稳定性,建议先下载好ISO文件备用。插入闪存盘,安装并启动Linux Live USB Creator,选择闪存盘、ISO文件,软件将检测ISO文件,并在“步骤3”提供一个滑块用于设置Linux系统数据保留区大小,建议将滑块拉到最右边,也就是设置最大的空间。接下来,单击闪电符号开始将ISO文件的数据写入闪存盘。

2、闪存盘启动安装

闪存安装盘制作完成后,重新启动电脑,在电脑启动时按[F12]或[F10]键来选择通过闪存盘启动,或者进入BIOS设置修改启动顺序,将闪存盘设置为第一个选择。闪存盘启动后将直接执行Ubuntu的安装程序,安装程序将停在选择安装语言的界面,我们可以通过左侧的列表选择“简体中文”,即可看到右侧有两个选项,其一是“试用Ubuntu”,选择它我们可以直接开始使用Ubuntu,而不需要安装系统,可以马上测试一下Ubuntu是否适合自己。其二是“安装Ubuntu”,本例中我们将选择它开始安装Ubuntu。

3、在硬盘上安装系统

由于硬盘上已经安装了Windows,所以安装程序将提供“清除整个磁盘安装Ubuntu”和“安装Ubuntu,与Windows 7共存”(根据原系统的版本不同,提示信息略有差异)两种选择,另外,还有“其他选项”,允许我们手动创建分区。不过,一般情况完全不需要这样做,而在本例中我们将选择“安装Ubuntu,与Windows 7”共存。

4、分配空间

接下来,安装程序将让我们选择安装的磁盘分区(如果有多个可供选择的话),并可以根据我们的需要使用鼠标调整磁盘分区的边界来给Ubuntu系统分配空间。通常,我们需要给Windows留下足够的空间,Ubuntu系统将需要大概7GB的空间,而考虑到我们还需要安装应用程序和存储数据,所以可以分配大约20GB左右的空间给Ubuntu系统。接下来,我们将需要输入用户名、密码,选择时区和键盘布局即可完成安装。

5、进入Linux

Linux网络计算机 篇11

在Linux中, 为了简化对设备的管理, 将所有的外围设备都归结为三类:字符设备 (如键盘, 鼠标等) 、块设备 (如硬盘、软驱等) 和网络设备 (如网卡、串口等) 。为了将网络环境中的物理网络设备的多样性屏蔽, Linux对所有的网络物理设备抽象并定义了一个统一的概念:接口 (Interface) 。对于所有的网络硬件都是通过接口进行访问的, 接口实际上提供了一个对于所有类型的网络硬件的一致化的操作集合, 用于处理对数据的发送和接收。对于每一个已经驱动了的网络设备, 都用一个struct device的数据结构表示。在内核启动或者驱动模块插入时, 通过网络驱动程序, 向系统注册检测到的网络设备。在进行网络数据传输的时候, 网络驱动程序应通过标准的接口将数据发送到相应的网络层, 或者向网络发送数据包。

网络接口并不存在于Linux的文件系统中, 而是定义在内核中的struct device的一个数据结构中。每一个device的数据结构都是在驱动的时候创建的。而不像字符设备或者块设备那样, 即使不存在物理设备也存在有这个设备文件。这是在linux2.2内核版式本之后做的改动, 在这个版本之前, 一旦网络驱动程序被激活, 在/dev目录下就会出现eth0的文件, 对这个设备文件的读写就完成了网络传输, 这种做法现在还是用在字符设备和块设备上。现在的版本是数据包的发送和接收都通过直接对接口进行方问来完成。

2 网络驱动程序中用到的重要数据结构

Struct device这个数据结构是在系统中每一个设备的代表。每一个被系统检测到的网络设备都应该使用struct device类型的节点存在于dev_base中, dev_base是内核中存在的外部变量。如果采取的是内核检测网卡设备的方式, 那么在整个内核可能支持的网络设备的struct device节点。在网络驱动程序检测完之后, 将不存在的网络设备对应的节点删除, 剩下的就是检测到并且得到正确驱动的网络设备。

在这个数据结构里面, 主要定义的成员变量init函数指针, 这个函数指针初始化为设备驱动程序中提供的用来初始化device结构的过程, 这个过程实际上就是用来检测和驱动网络设备的。在检测进行之前, 每一个节点的init函数都指向对应的初始化函数;检测的时候对每一个节点都分别调用init函数指针, 如果成功返回的话, 将该节点保留。

同时, 在这个结构里面定义了对硬件设备的打开和关闭函数指针 (open, close) 硬件头的建立函数指针 (hard_header) ;硬件上数据的传输过程 (hard_sart_xmit) 。当网络设备打开的时候, 就可以通过这个网络设备开始传输数据了, 传输出来的数据存放在struct sk_buff结构里面。Hard_start_xmit函数指针是和某一种具体的硬件相关的, 通过d e v_q u e u e_x m i t这个外部函数调用hard_start_xmit函数指针完成网络数据的发送过程。

3 重要的驱动过程

驱动网络设备驱动程序方法有两种:通过模块驱动和通过内核启动时自动检测的方法。通过模块驱动的方法是Linux中使用模块设计的一种方案。我们知道, linux的内核是将所有的支持编译在一起的, 并不是微内核技术。如果对linux内核增加一项功能, 就把它的实现直接放在内核的代码中。不过为了让linux的内核体积不至于过于庞大, 采用了编译成模块的方式。在需要用到这个模块的时候, 用shell命令的insmod将该模块插入到内核运行空间;如果不需要了, 可以用rmmod命令将该模块卸载。I n s m o d触发的是cleanup_module () 函数。在init_module () 函数里面, 会调用到这种网络设备的init函数指针, 如果检测到了这种网络设备, 并且初始化成功, 那么就将这个网络设备对应的device结构插入到dev_base链表里面。

使用内核启动检测的方法有所不同。在系统启动的时候, 内核把所有编译在内核内部支持的网卡设备都初始化在一个s t r u c t device类型的dev_base链表里面, 然后对于每个节点都调用自己的init函数指针。如果该函数返回成功, 那么该节点对应的设备保留;否则, 该节点对应的设备不存在, 将该节点删除。这样, 在系统初始化的最后, 剩下来在dev_base里面的所有节点就全是系统检测到的网络设备了。

以ne.c为例, init_module () 函数首选初始化d ev设备的in it函数指针, 然后调用register_netdev () 函数在系统中登记该设备。如果登记成功, 那么模块插入成功, 否则就返回出错信息。在register_netdev () 里面, 首先检查该网络设备名是否已经确定, 如果没有, 就赋给一个缺省的名称。然后中, 调用网络设备驱动程序中的init_function, 也就是dev->init函数指针来检测网卡设备是否存在, 并且做dev的初始化工作。如果初始化成功, 将dev插入到dev_base链表的尾部。整个调用流程如图1所示。

内核启动的驱动方法, 内核启动的驱动方法和模块驱动的方法不同, 前者要对所有内核支持的网络调和设备进行检测和初始化, 而后者只需要检测和初始化被装载的网络设备。为了在启动的时候对所有可能存在的网络设备都检测一遍, 系统会在启动前将所有支持的网络设备对应的device结构都挂在dev_base链表上, 正如前文所述。然后使用net_dev_init () 函数依次对dev_base里面每一个节点都运行init函数指针, 如果返回成功, 那么该节点对应的设备存在;否则就将该节点删除。最后在链表中剩下的所有网络设备都是存在的, 并且已经完成了初始化。

上一篇:品牌管理中的公共关系下一篇:复合催化论文