xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 新闻动态 2019-12-12 22:05 的文章
当前位置: 新濠国际登录平台 > 新闻动态 > 正文

本文需要一定的计算机网络和Linux基础,查看无线

 

Linux网络设置高级指南

一、查看网卡状态是否正常

把无线网卡插到树莓派上,输入命令ifconfig -a查看是否有wlan0的信息,如果有说明网卡状态正常,可以跳过第二步,直接配置无线网络。如果查不到wlan0的信息,则需要安装无线网卡的驱动。

# cd /etc/init.d# ln -s net.lo net.eth0默认的接口名是 wlan0,让它开机时自动 up:cp /etc/init.d/net.lo /etc/init.d/net.wlan0ifconfig wlan0 up

无线网卡常见的配置选项

某TL-WR842N路由器无线配置选项含义:

无线名称
路由器的无线(Wi-Fi)名称。
无线密码
无线加密使用WPA2-PSK/WPA-PSK加密方式、AES加密算法,无线密码为8-63个字符,最好是数字、字母、符号的组合。
信道
无线数据信号传送的通道,建议保持默认的自动,此时路由器会自动根据周围的无线环境选择一个最好的信道。模式
路由器工作的无线模式。
频段带宽
路由器传输无线数据的频段宽度。
信号强度
可以根据实际使用需要选择不同档次的信号强度。
开启AP隔离
开启之后可以安全隔离连接到路由器的各个无线设备。

 

二、查看无线网卡的信息

输入命令dmesg | grep usb查看无线网卡的信息,主要是看制造厂家(Manufacturer)。比如,我的网卡信息是

usb 1-1.3: Manufacturer: Realtek

以Realtek为例,安装无线网卡驱动。

如果现在你的树莓派能联网,输入安装命令就可以安装Realtek的驱动了。

首先搜索Realtek驱动:

apt-cache search realtek

看到下面信息:

firmware-realtek - Binary firmware for Realtek wired and wireless network adapters

安装Realtek驱动:

sudo apt-get install firmware-realtek

如果你的树莓派现在不能上网,那么你可以去镜像站点中下载相关驱动。我推荐阿里云的镜像站点,速度比较快。http://mirrors.aliyun.com/raspbian/raspbian/pool/non-free/f/firmware-nonfree

下载firmware-realtek_0.43_all.deb,用winscp上传到树莓派的/tmp目录中。输入命令安装:

sudo dpkg -i /tmp/firmware-realtek_0.43_all.deb

 根据接入点设置编辑 /etc/wpa_supplicant/wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=0
fast_reauth=1
#WEP网络
network={
        ssid="SYSTEX-GROUP"
        psk="密码"
        pairwise=TKIP
        group=TKIP
        priority=5
}
#WPA网络
network={
        ssid="SYSTEX"
        key_mgmt=WPA-EAP IEEE8021X
        group=CCMP
        pairwise=CCMP
        identity="用户名"
        password="密码"
        priority=5
}

无线网卡工作工作模式

无线网卡一共有4种工作模式。

被管理模式(Managed mode):你作为无线客户端直接与无线接入点(Wireless Access Point,WAP)连接时,就使用这个模式。在这个模式中,无线网卡的驱动程序依赖WAP管理整个通信过程。

Ad hoc模式:当你的网络由互相直连的设备组成时,就使用这个模式。在这个模式中,无线通信双方共同承担WAP的职责。

主模式(Master mode):一些高端无线网卡还支持主模式。这个模式允许无线网卡使用特制的驱动程序和软件工作,作为其他设备的WAP。

监听模式(Monitor mode):就我们的用途而言,这是最重要的模式。当你希望无线客户端停止收发数据,专心监听空气中的数据包时,就使用监听模式。要使Wireshark捕获无线数据包,你的无线网卡和配套驱动程序必须支持监听模式(也叫RFMON模式)。

大部分用户只使用无线网卡的被管理模式或ad hoc模式。图11-4展示了各种模式如何工作。

新濠国际登录平台 1

本文面向的是被Linux复杂的有线无线网络架构弄得头昏脑胀;或者被网上半吊子的教程弄得晕头转向;或者厌倦了Network Manager之类图形界面无穷尽的BUG(很多抄袭的是Windows,画虎不成反类猫,在一些概念上就存在错误);或者想要了解一些技术细节的,像一样我渴望获得完全驾驭的能力而不是隔靴搔痒的人。

三、配置无线网络

用编辑器nano打开interfaces文件

sudo nano /etc/network/interfaces

我的interfaces文件是这样的:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

我们把无线网卡部分全部用#注释掉,然后添加自己的配置信息,最终结果如下:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

auto wlan0
#allow-hotplug wlan0
#iface wlan0 inet manual
iface wlan0 inet dhcp
wpa-conf /etc/wpa.conf
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

使用nano编辑器,ctrl+o保存,ctrl+x退出。

用编辑器nano创建 /etc/wpa.conf 文件:

sudo nano /etc/wpa.conf  
  1. 如果你的wifi没有密码

    network={
    [Tab] ssid="你的无线网络名称(ssid)"
    [Tab] key_mgmt=NONE
    }

  2. 如果你的wifi使用WEP加密

    network={
    [Tab] ssid="你的无线网络名称(ssid)"
    [Tab] key_mgmt=NONE
    [Tab] wep_key0="你的wifi密码"
    }

  3. 如果你的wifi使用WPA/WPA2加密

    network={
    [Tab] ssid="你的无线网络名称(ssid)"
    [Tab] key_mgmt=WPA-PSK
    [Tab] psk="你的wifi密码"
    }

注1:所有符号都是半角符号(英文状态下的符号),“[Tab]”表示按一次Tab键

注2:如果你不清楚wifi的加密模式,可以在安卓手机上用root explorer打开 /data/misc/wifi/wpa/wpa_supplicant.conf,查看wifi的信息。

比如,我的wpa.conf文件是这样的:

network={
    ssid="1234"
    key_mgmt=WPA-PSK
    psk="MTIzNA1234"
}

最后输入命令启用无线网卡:

sudo ifup wlan0

可以连无线网了。

 根据接入点设置编辑 /etc/conf.c/net
modules=( "wpa_supplicant" )
wpa_supplicant_wlan0="-Dwext"
wpa_timeout_wlan0="60"
config_wlan0=( "dhcp" )
#dhcp_wlan0="nodns nontp nonis"
#config_wlan0=( "10.206.1.80 netmask 255.255.255.0 brd 255.255.255.0" )
#routes_wlan0=( "default via 10.206.1.254" )
#depend_wlan0() {
#need ipw3945d
#}

如何判断无线网卡是否识别

根据设备是 PCI 还是 USB 连接,执行 lspci -klsusb -v 检查设备驱动是否已经加载

$ lspci -k

06:00.0 Network controller: Intel Corporation
WiFi Link 5100

        Subsystem: Intel Corporation WiFi Link
5100 AGN

        Kernel driver in use: iwlwifi

        Kernel
modules: iwlwifi

如果是 USB 设备,执行 dmesg | grep usbcore 可以看到类似下面的输出 usbcore: registered new interface driver rtl8187

如果无线usb网卡后插入的话, 也会打印上述信息.

通过 ip link 查看无线 (设备名,通常是类似 wlp2s1) 的设备。启用设备:

# ip link set <设备名>
up

如果设备加载,接口正常启用,说明不需要安装额外的驱动和固件。

错误信息SIOCSIFFLAGS: No such file or directory 说明需要固件才能工作,

根据获得的信息,在下面网址查找硬件支持:

  • Ubuntu Wiki 维护了一个设备被内核和用户空间驱动支持状况的列表。
  • Linux 无线支持页面 和硬件兼容性列表(HCL)也维护了一个内核友好的设备列表。

  • 内核页面 也有一个支持的硬件矩阵。

如果列表中没有,可能你的设备只提供了 Windows 驱动(比如 Broadcom, 3com 等)。这时需要用 ndiswrapper.

Ndiswrapper 可以在 Linux 中使用 Windows 驱动。兼容性列表在 这里. 需要 Windows 中安装的 .inf.sys 文件。如果有更新的网卡,请通过互联网搜索型号名称

  • 'linux' 以获取更多信息。

 

关于/etc/resolve.conf
如使用DHCP,则需要编辑/etc/resolve.conf.head中的内容来替代resolve.conf的内容

如何静态配置无线网卡

Unix一切皆文件,其它网络配置工具都是直接或者间接地修改这些虚拟文件来达到设置目的的。

pi@raspberrypi ~ $ ls -l /sys/class/net

total 0

lrwxrwxrwx 1 root root 0 May 8 08:12 eth0 -> ../../devices/platform/bcm2708_usb/usb1/1-1/1-1.1/1-1.1:1.0/net/eth0

lrwxrwxrwx 1 root root 0 May 8 08:12 lo -> ../../devices/virtual/net/lo

lrwxrwxrwx 1 root root 0 May 8 08:13 wlan0 -> ../../devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/net/wlan0

可以看到,系统当前存在三个网络设备:lo为回环设备;eth0为有线网卡;wlan0为无线网卡。

/etc/network/interfaces文件记录了所有的静态配置信息。内核在引导的时候,会自动启动标志为“auto”的设备,例如:

auto lo

auto eth0

auto wlan0

而如果设备标志为“allow-hotplug”,那么内核在检测到热插拔事件的时候,也会自动启动。例如:

allow-hotplug lo

allow-hotplug eth0

allow-hotplug wlan0

因为回环设备始终应该是存在的,所以/etc/network/interfaces文件的内容至少是:

auto lo

iface lo inet loopback

内核启动网络设备调用的是ifupdown工具,而ifupdown工具也是依赖于/etc/network/interfaces配置文件的。

对于有线(Wired)设备,物理层和数据链路层无须操作系统干预,网卡根据CSMA/CD协议就能够自行设置,所以/etc/network/interfaces文件只需包含网络层以上的配置信息,例如IP地址、子网掩码、默认网关等。例如:

iface eth0 inet static

address 192.168.11.100

netmask 255.255.255.0

gateway 192.168.11.1

“默认网关”其实是路由的概念,在这里作为设备的一个属性,和IP地址子网掩码放在一起我觉得很不妥,很容易误导初学者,尤其是存在多网卡多IP地址的情况。默认网关的生成与这条配置有关, 如果去除这条, 网络连接将变慢.

对于DNS,首先需要注意的是它属于应用层协议,和网络设备以及网络层并无直接联系。传统上Linux的DNS配置文件为/etc/resolv.conf,一行一个服务器IP地址。例如:

nameserver 218.2.135.1

nameserver 61.147.37.1

如果安装了resolvconf工具,那么DNS的配置会被接管,此时/etc/resolv.conf就变成了一个符号链接,链接到了resolvconf运行时候动态维护的一个文件。在这种情况下,DNS的配置也可以写到/etc/network/interfaces文件中了,例如:

iface eth0 inet static

address 192.168.11.100

netmask 255.255.255.0

gateway 192.168.11.1

dns-nameservers 218.2.135.1 61.147.37.1

ifupdown工具会自动调用resolvconf完成DNS设置。

此处我也甚觉不妥,因为上面讲过,DNS是应用层的概念,这样写的话让初学者觉得好像DNS是网络设备的属性一样(传统Linux还真是有很多不足之处)。

如果安装了isc-dhcp-client工具,那么/etc/network/interfaces文件中就可以直接配置DHCP,例如:

iface eth0 inet dhcp

isc-dhcp-client有自己的配置文件,可以控制从DHCP服务器上获取哪些信息(例如DNS服务器地址)。

ifupdown工具会自动调用isc-dhcp-client完成DHCP设置。

此处需要注意的是:不论resolvconf是否存在,dhclient均会直接修改/etc/resolv.conf文件(不管它是不是一个链接),不过一般情况下也没有什么问题。

对于无线(Wireless)设备,工作方式和有线设备有很大的不同(不是插上网线就能直接用的)。数据链路层的连接必须由操作系统协同完成,例如连接哪个SSID、使用哪条信道、采用什么认证方式(WEP、WPA...)。这些链路层配置信息也可以写到/etc/network/interfaces文件中以供ifupdown工具使用。

iface wlan0 inet dhcp

wpa-ssid homezone

wpa-psk 密码

ifupdown工具会自动调用wpasupplicant完成WPA设置。

例如WEP的配置:

iface wlan0 inet dhcp

wireless-essid Home

wireless-key1 0123-4567-89ab-cdef

wireless-key2 12345678

wireless-key3 s:password

wireless-defaultkey 2

wireless-keymode open

ifupdown工具会自动调用wireless-tools完成WEP设置。

wpa_supplicant 配置文件, 配置方法:

更详细的配置可参考手册man wpa_supplicant.conf 

本文需要一定的计算机网络和Linux基础,其中的大部分内容很新,基于2.6内核之后的新架构。

另外如使用无线网络,但有线网络同时存在时,要禁用有线网卡
/etc/init.d/net.eth0 stop

如何动态配置无线网卡

为了管理已经安装好的无线驱动,并且使无线能正常工作,需要安装一个无线连接管理工具。需要使用的工具,将依赖于下面几个因素:

  • 配置方式,从完全手动执行每一步到软件自动管理、自动启动
  • 是否使用加密及加密类型

  • 是否需要区分网络配置,是否经常切换不同网络(比如手提电脑)。

下表列出可以使用的管理无线网络的方法,按照加密和管理方式分类,给出了需要的工具。虽然还有其他办法,但这些是最常使用的

管理方法

接口激活

无线连接管理
(/=alternatives)

IP 地址分配
(/=alternatives)

手动设置,
无加密或 WEP 加密

ip

iw / iwconfig

ip / dhcpcd / dhclient

手动管理,
WPA 或 WPA2 PSK 加密

ip

iw / iwconfig + wpa_supplicant

ip / dhcpcd / dhclient

自动管理,
支持网络配置

netctl, Wicd, NetworkManager, etc.

这些工具会自动安装手动配置需要的工具。

软件包 wireless_tools 提供了建立无线连接的基础工具。如果你需要使用 WPA/WPA2 加密,还需要 wpa_supplicant。如下这些用户空间工具可以对无线连接进行完整控制。

  • iw - 当前的 nl80211 标准,不是所有的芯片都支持。

  • wireless_tools - 已经过时,但是依然广泛使用。

  • wpa_supplicant - 提供 WPA/WPA2 加密支持

下面表格给出了 iwwireless_tools 命令的对比

iw 命令

wireless_tools 命令

描述

Iw dev

Iwconfig

获取接口名

iw dev wlan0 link

iwconfig wlan0

获取连接状态

Iw dev wlan0 station dump


获取统计数据

Ip link set wlan0 up(可能需要) 一些无线网卡在使用 wireless_tools前需要激活内核接口.如果出现错误 RTNETLINK answers: Operation not possible due to RF-kill, 请确保硬件开关已经打开.要验证接口确实打开: # ip link show wlan0

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP>
   mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether
   12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff

<BROADCAST,MULTICAST,UP,LOWER_UP> 中的UP 显示接口已经打开。

Rfkill 介绍http://www.linuxidc.com/Linux/2015-08/121119.htm


激活内核接口


iw dev wlan0 scan | less

iwlist wlan0 scan

扫描可用热点




iw dev wlan0 set type ibss

有些网卡需要先关闭无线接口(ip link set wlan0 down)才能修改模式

iwconfig wlan0 mode ad-hoc

设置操作模式为 ad-hoc.

iw dev wlan0 connect your_essid

iwconfig wlan0 essid your_essid

连接到开放网络

iw dev wlan0 connect your_essid 2432

iwconfig wlan0 essid your_essid freq 2432M

连接到开放网络的一个频道

iw dev wlan0 connect your_essid key 0:your_key

iwconfig wlan0 essid your_essid key your_key

用16进制加密密码访问 WEP 加密网络

iw dev wlan0 connect your_essid key 0:your_key


iw wlan0 connect
   foo keys 0:abcde d:1:0011223344


iwconfig wlan0 essid your_essid key s:your_key


iwconfig wlan0 key s:abcde
iwconfig wlan0 key '[2]0011223344'
iwconfig wlan0 key '[2]'
iwconfig wlan0
   essid foo


用 ASCII 密码访问 WEP 加密网络.

iw dev wlan0 set power_save on

iwconfig wlan0 power on

启用省电模式

根据加密方式不同,需要使用密码将无线设备关联到接入点。

假设要使用的接入点 ESSID 为 MyEssid:

  • 无加密
# iw wlan0 connect
MyEssid
  • WEP

使用十六进制或 ASCII 密码(格式是自动识别出来的,因为 WEP 密码长度是固定的):

# iw dev wlan0
connect your_essid key 0:your_key

使用十六进制或 ASCII 密码,第三个是默认 (从0计数,共四个):

# iw dev wlan0
connect your_essid key d:2:your_key

WPA/WPA2

如果要连接WPA认证的无线网络,wireless-tools就无可奈何了,必须使用wpasupplicant

wpasupplicant并不是像wireless-tools一样简单地用命令行配一配就可以了,它必须先启动一个服务进程,然后使用另外一个命令行工具对服务进程进行设置,而且在WIFI连接期间该服务进程必须始终运行着。

wpa_supplicant -i wlan0 -D nl80211,wext -s -B -P /var/run/wpa_supplicant.wlan0.pid -C /var/run/wpa_supplicant

其中:-i指定设备名;-D指定认证协议;-s -B指定在后台运行,并且调试输出到syslog中;-C参数指定“ctrl_interface”的位置,注意,wpa_supplicant是可以有配置文件的,而且配置文件中可以记录WIFI的静态配置,类似于/etc/network/interfaces的功能,但是我们这里用不到,在没有配置文件的情况下,“ctrl_interface”是必不可少的,wpa_cli通过它与之交互。

前台方式:

wpa_supplicant -i wlan0 -D nl80211,wext -dd -P /var/run/wpa_supplicant.wlan0.pid -C /var/run/wpa_supplicant

其中,-dd表示输出更详细的调试信息。

查看后台启动的进程参数:

pi@raspberrypi ~ $ ps ax | grep wpa

1618 ? Ss 0:00 /sbin/wpa_supplicant -s -B -P /var/run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf

2379 pts/0 S+ 0:00 grep --color=auto wpa

然后使用wpa_cli进行设置。wpa_cli可以工作在交互模式,也可以命令行模式。例如在交互模式下执行如下命令加入并启用网络:

status:列出目前的联网状态。
list:列出所有备选网络。目前正连接到的网络会标[CURRENT],禁用的网络会标[DISABLE]。
add_network:增加一个备选网络,输出新网络的号码(这个号码替代下文的[network_id])。注意新网络此时是禁用状态。
set_network [network_id] ssid “Your SSID”:设置无线网的名称(SSID)
set_network [network_id] key_mgmt WPA-PSK:设置无线网的加密方式为WPA-PSK/WPA2-PSK
set_network [network_id] psk “Your Password”:设置无线网的PSK密码
enable_network [network_id]:启用网络。启用后如果系统搜索到了这个网络,就会尝试连接。
disable_network [network_id]:禁用网络。
save_config:保存配置。

> add_network

0 <--- 记住这个号码!

> set_network 0 ssid "ChinaUnicom-Me"

OK

> set_network 0 key_mgmt WPA-PSK

OK

> set_network 0 psk "密码"

OK

> enable_network 0

OK

> save_config <--------``别忘了这个,否则重启之后网络配置可能丢失

OK

查看配置文件``:

pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

network={

ssid="Lair"

psk="knc4-102"

key_mgmt=WPA-PSK

`scan_ssid=1手动添加这一行,可以支持链接隐藏的`wifi

}

配置静态无线``ip:

auto wlan0

allow-hotplug wlan0

iface wlan0 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

address 192.168.1.105

netmask 255.255.255.0

gateway 192.168.1.1

以上配置有错误.

网络配置修改后, 重启服务

sudo /etc/init.d/networking restart

sudo service networking restart

假设设备使用 wext 驱动。如果无法工作,可能需要调整选项,参见 WPA_Supplicant(

如果连接成功,在新终端中执行后续命令或(或者通过 Ctrl+c 退出并使用 -B 参数在后台再次执行上述命令。WPA_Supplicant 页面包含更多参数和配置文件的信息。

通过下面命令确认是否连接成功:

# iw dev wlan0 link

 

##########################################################
##########################################################
##########################################################
##########################################################
另外一篇设置教学

获取 IP 地址

使用 DHCP: # dhcpcd wlan0

或 # dhclient wlan0

如果要设置DHCP,很简单。例如:


dhclient wlan0 -r
(释放IP,
相当于windows下的
ipconfig /release) 

dhclient wlan0
(申请IP,
相当于windows下的
ipconfig /renew)

静态 IP:

ip address add 192.168.1.3/24 dev wlan0 

ip route add default via 192.168.1.1 dev wlan0 

第一行增加IP地址,第二行设置默认路由。

若要删除以 10. 起始的 IP 路由表中的所有路由,请键入:

route delete 10.*

route del default

wpa配置文件

wpa_cli 命令使用方法

iwconfig 使用

wpa_supplicant.conf 配置说明

Linux不同发行版的软件包名称、配置文件的命名和位置都不尽相同,本文基于的是Debian/Ubuntu系统,很多内容参考了Debian Reference的第5章。

1. 此无线网络不设置安全机制,换句话说,么有设置密码,OK,我们该怎么做呢?命令行伺候

 

# iwlist scanning            # 搜索无线网络,我们假设搜索到了 oceanboo-wireless
# iwconfig interface essid oceanboo-wireless
# dhcpcd interface

当然,本文依旧有很多不足之处,例如没有深入到Linux内核机制中去,这就需要以后进一步完善了。

够简单了吧,这样,你的机器就连接上 oceanboo-wireless 这个无线网络了,dhcp 获得了 ip 地址。不过不给无线路由器设置密码是很愚蠢的做法,假如你不是开咖啡厅、快餐店,还是设置一个密码吧。

 

  1. 此无线网络设置了安全机制,使用 WEP 加密认证。

静态设置

# iwlist scanning           # 还是一样的搜索,记住这个命令。
# iwconfig  interface essid oceanboo-wireless key XXXX-XXXX-XXXX-XXXX or XXXXXXXX.   # XXX多了点,不过如果你设置过无线路由,你一定知道这是啥玩意,我就不多说了。
# dhcpcd interface

静态设置的意思是所有配置都写在配置文件中,由操作系统自动进行设置。

哈,还是一样的简单。
关于 WEP 认证加密的输入还有下列这些方式,按需要索取吧。

 

引用
# iwconfig interface key 0123-4567-89
# iwconfig interface key [3] 0123-4567-89
# iwconfig interface key s:password [2]
# iwconfig interface key [2]
# iwconfig interface key open
# iwconfig interface key off
# iwconfig interface key restricted [3] 0123456789
# iwconfig interface key 01-23 key 45-67 [4] key [4]

静态设置依赖udev、ifupdown、isc-dhcp-client、resolvconf、wireless-tools、wpasupplicant等软件包。

其实,今天的重点在第三点,请继续观看。

 

  1. 此无线网络设置了安全机制,而且使用了 WPA 加密认证。
    光是用 wireless-tools 来干这个活,素么有办法的,我们需要另外安装一个包 wpa_supplicant。观众的瓜皮扔上来了,为虾米要使用这种认证方法呢?多麻烦啊,还要另外安装包,用 WEP 多好啊,那我们就先来看看两者之间的介绍吧,也许看了介绍,你就会回心转意了。

首先,网络的正常运行依赖于硬件设备。在系统引导或者热插拔的时候,内核通过udev将网络设备映射到用户空间的sysfs虚拟文件系统。例如:

引用
WEP 全名为 Wired Equivalent Privacy
有线等效加密(Wired Equivalent Privacy,WEP)是个保护无线网路(Wi-Fi )的资料安全体制。因为无线网路是用无线电把讯息传播出去,它特别容易被偷听。WEP 的设计是要提供和传统有线的区域网路相当的机密性,而依此命名的。不过密码分析学家已经找出 WEP 好几个弱点,因此在2003年被 Wi-Fi Protected Access (WPA) 淘汰,又在2004年由完整的 IEEE 802.11i 标准(又称为 WPA2)所取代。WEP 虽然有些弱点,但也足以吓阻非专业人士的窥探了。
WEP 是1999年9月通过的 IEEE 802.11 标准的一部分,使用 RC4 (Rivest Cipher) 串流加密技术达到机密性,并使用 CRC-32 验和达到资料正确性。
标准的64比特WEP使用40比特的钥匙接上24比特的初向量(initialisation vector,IV) 成为 RC4 用的钥匙。在起草原始的 WEP 标准的时候,美国政府在加密技术的输出限制中限制了钥匙的长度,一旦这个限制放宽之后,所有的主要业者都用 104 比特的钥匙实作了 128 比特的 WEP 延伸协定。用户输入 128 比特的 WEP 钥匙的方法一般都是用含有 26 个十六进制数 (0-9 和 A-F)的字串来表示,每个字符代表钥匙中的 4 个比特, 4 * 26 = 104 比特,再加上 24 比特的 IV 就成了所谓的 "128 比特 WEP 钥匙"。有些厂商还提供 256 比特的 WEP 系统,就像上面讲的,24 比特是 IV,实际上剩下 232 比特作为保护之用,典型的作法是用 58 个十六进制数来输入,(58 * 4 = 232 比特) + 24 个 IV 比特 = 256 个 WEP 比特。
钥匙长度不是 WEP 安全性的主要因素,破解较长的钥匙需要拦截较多的封包,但是有某些主动式的攻击可以激发所需的流量。WEP 还有其他的弱点,包括 IV 雷同的可能性和变造的封包,这些用长一点的钥匙根本没有用,见 stream cipher attack 一页。

 

WPA 全名为 Wi-Fi Protected Access
Wi-Fi Protected Access (WPA 和 WPA2) 是一种保护无线电脑网络(Wi-Fi)安全的系统,它是应研究者在前一代的系统有线等效加密 (WEP) 中找到的几个严重的弱点而产生的。WPA 实作了 IEEE 802.11i 标准的大部分,是在 802.11i 完备之前替代 WEP 的过渡方案。WPA 的设计可以用在所有的无线网卡上,但未必能用在第一代的无线取用点上。WPA2 实作了完整的标准,但不能用在某些古老的网卡上。
WPA 是由 Wi-Fi 联盟这个业界团体建立的,他们拥有 Wi-Fi 这个名词的商标,并且会检验要使用 Wi-Fi 这个名词的设备以核发证书。
对 WPA 实作的检验在2003年4月开始,于2003年11月变成强制性。完整的 802.11i 标准是在2004年6月通过的。
在 WPA 的设计中要用到一个 802.1X 认证服务器来散布不同的钥匙给各个用户;不过它也可以用在较不保险的 "pre-shared key" (PSK) 模式,让每个用户都用同一个密语。Wi-Fi 联盟把这个使用 pre-shared key 的版本叫做 WPA 个人版 或 WPA2 个人版,用 802.1X 认证的版本叫做 WPA 企业版 或 WPA2 企业版。
WPA 的资料是以一把 128 位元的钥匙和一个 48 位元的初向量 (IV) 的 RC4 stream cipher 来加密。WPA 超越 WEP 的主要改进就是在使用中可以动态改变钥匙的“临时钥匙完整性协定”(Temporal Key Integrity Protocol,TKIP),加上更长的初向量,这可以击败知名的针对 WEP 的金钥撷取攻击。
除了认证跟加密外,WPA 对于所载资料的完整性也提供了巨大的改进。WEP 所使用的 CRC(循环冗余校验) 先天就不安全,在不知道 WEP 钥匙的情况下,要篡改所载资料和对应的 CRC 是可能的,而 WPA 使用了称为 "Michael" 的更安全的讯息认证码(在 WPA 中叫做讯息完整性查核,MIC)。进一步地,WPA 使用的 MIC 包含了帧计数器,以避免 WEP 的另一个弱点-replay attack(回放攻击)-的利用。
有两个理由使得 WPA 被定位为到达较安全的 802.11 保全之前的过渡步骤:
  1. 制定 802.11i 的工作比原先预期的久了很多,在大家越来越担心无线安全性之时竟然花了四年之久;
  2. 它包含了与 WEP 兼容的 802.11i 子集合,即使是最早的 802.11b 接口卡也能用。

[email protected]:/sys/class/net# ls -l

--------摘录自维基百科

总用量 0

看了介绍,你是不是已经准备好安装 wpa_supplicant 了呢?

lrwxrwxrwx 1 root root 0  7月  4 15:01 eth0 -> ../../devices/pci0000:00/0000:00:19.0/net/eth0

# emerge -av wpa_supplicant

lrwxrwxrwx 1 root root 0  7月  4 15:00 lo -> ../../devices/virtual/net/lo

安装好后,就有了 wpa_supplicant 、 wpa_cli 、 wpa_passphrase 、 wpa_gui (前面的日志就介绍过这个工具,当然在 Gentoo 下,这个工具被无情的咔嚓掉了,因为 USE=“-qt”)这四个工具。
这里提供一个相对比较简单的解决方法。
A. 首先当然是确定无线路由是采用的 WPA 加密方式,还有需要知道密码(废话),然后我们执行如下命令:

lrwxrwxrwx 1 root root 0  7月  4 15:01 wlan0 -> ../../devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlan0

# wpa_passphrase [ ssid ] [ passphrase ] >> /etc/wpa_supplicant/wpa_supplicant.conf
上面这条命令可以自动生成一段配置,我们将它输出添加到 wpa_supplicant 的默认配置文件里面。
# wpa_supplicant -i interface -c /etc/wpa_supplicant/wpa_supplicant.conf  -D wext -B 
上面的命令 -i = interface 、-c 读取配置文件 、 -D = dirver (wext 是一个通用驱动) -B 后台运行
# dhcpcd interface     

可以看到,系统当前存在三个网络设备:lo为回环设备;eth0为有线网卡;wlan0为无线网卡。遵循Unix“一切皆文件”的思想,其它工具都是直接或者间接地修改这些虚拟文件来达到设置目的的。

需要详细了解几个命令参数的,可以 man 一下看看,都比较简单。
现在,无线上网倒是没问题了,不过该怎么让它更自动化一点是该想想了,写到这里,睡觉先。

 

##########################################################
##########################################################
##########################################################
##########################################################

/etc/network/interfaces文件记录了所有的静态配置信息。内核在引导的时候,会自动启动标志为“auto”的设备,例如:

WPA配置

 

使用wpa_passphrase命令产生PSK:
新濠国际登录平台,用法:wpa_passphrase <ssid> [passphrase]
比如:wpa_passphrase my_ssid abcd1234

auto lo

network={
        ssid="my_ssid"
        #psk="abce1234"
        psk=xxxxxxxxxxxxxxxxxxxxx
}
完整的配置文件/etc/wpa_supplicant.conf:

auto eth0

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
 
network={
        ssid="my_ssid"
        pairwise=CCMP TKIP
        group=CCMP TKIP WEP104 WEP40
        proto=WPA
        key_mgmt=WPA-PSK
        priority=5
        psk=xxxxxxxxxxxxxxxxxxxx
}
手工启动:

auto wlan0

wpa_supplicant -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf
使用命令

而如果设备标志为“allow-hotplug”,那么内核在检测到热插拔事件的时候,也会自动启动。例如:

iwconfig ath0
可以查看,Access Poin是否连接成功了。如果是使用dncp的话,使用dhclient ath0来自动获取IP,如果使用静态的IP的话,直接使用ifconfig配置IP。

 

不过,有时候有些AP和无线网卡芯片不太兼容的话,有可能用不了WPA协议进行连接。比如我的笔记本就是这样,所以也可以使用WEP协议进行连接,安全性方面,我想使用128位的加密以及隐藏接入点,应该是没太大的问题的。

allow-hotplug lo

使用WEP协议的话,除了在AP上面要配置好之外,在debian上面只需要使用“iwconfig”命令,就可以进行实现连接,也可以写成一个启动脚本,在开机的时候自动进行链接。

allow-hotplug eth0

 

allow-hotplug wlan0

本文来自CSDN博客,转载请标明出处:

因为回环设备始终应该是存在的,所以/etc/network/interfaces文件的内容至少是:

 

auto lo

iface lo inet loopback

内核启动网络设备调用的是ifupdown工具,而ifupdown工具也是依赖于/etc/network/interfaces配置文件的。

 

对于有线(Wired)设备,物理层和数据链路层无须操作系统干预,网卡根据CSMA/CD协议就能够自行设置,所以/etc/network/interfaces文件只需包含网络层以上的配置信息,例如IP地址、子网掩码、默认网关等。例如:

 

iface eth0 inet static

    address 192.168.11.100

    netmask 255.255.255.0

    gateway 192.168.11.1

“默认网关”其实是路由的概念,在这里作为设备的一个属性,和IP地址子网掩码放在一起我觉得很不妥,很容易误导初学者,尤其是存在多网卡多IP地址的情况。

 

对于DNS,首先需要注意的是它属于应用层协议,和网络设备以及网络层并无直接联系。传统上Linux的DNS配置文件为/etc/resolv.conf,一行一个服务器IP地址。例如:

 

nameserver 218.2.135.1

nameserver 61.147.37.1

如果安装了resolvconf工具,那么DNS的配置会被接管,此时/etc/resolv.conf就变成了一个符号链接,链接到了resolvconf运行时候动态维护的一个文件。在这种情况下,DNS的配置也可以写到/etc/network/interfaces文件中了,例如:

 

iface eth0 inet static

    address 192.168.11.100

    netmask 255.255.255.0

本文由新濠国际登录平台发布于新闻动态,转载请注明出处:本文需要一定的计算机网络和Linux基础,查看无线

关键词: