标签 WiFi 下的文章

最近的 KRACK (密钥重装攻击,这是一个安全漏洞名称或该漏洞利用攻击行为的名称)漏洞攻击的目标是位于你的设备和 Wi-Fi 访问点之间的链路,这个访问点或许是在你家里、办公室中、或你喜欢的咖啡吧中的任何一台路由器。这些提示能帮你提升你的连接的安全性。

KRACK 漏洞攻击 出现已经一段时间了,并且已经在 相关技术网站 上有很多详细的讨论,因此,我将不在这里重复攻击的技术细节。攻击方式的总结如下:

  • 在 WPA2 无线握手协议中的一个缺陷允许攻击者在你的设备和 wi-fi 访问点之间嗅探或操纵通讯。
  • 这个问题在 Linux 和 Android 设备上尤其严重,由于在 WPA2 标准中的措辞含糊不清,也或许是在实现它时的错误理解,事实上,在底层的操作系统打完补丁以前,该漏洞一直可以强制无线流量以无加密方式通讯。
  • 还好这个漏洞可以在客户端上修补,因此,天并没有塌下来,而且,WPA2 加密标准并没有像 WEP 标准那样被淘汰(不要通过切换到 WEP 加密的方式去“修复”这个问题)。
  • 大多数流行的 Linux 发行版都已经通过升级修复了这个客户端上的漏洞,因此,老老实实地去更新它吧。
  • Android 也很快修复了这个漏洞。如果你的设备在接收 Android 安全补丁,你会很快修复这个漏洞。如果你的设备不再接收这些更新,那么,这个特别的漏洞将是你停止使用你的旧设备的一个理由。

即使如此,从我的观点来看, Wi-Fi 是不可信任的基础设施链中的另一个环节,并且,我们应该完全避免将其视为可信任的通信通道。

Wi-Fi 是不受信任的基础设备

如果从你的笔记本电脑或移动设备中读到这篇文章,那么,你的通信链路看起来应该是这样:

KRACK 攻击目标是在你的设备和 Wi-Fi 访问点之间的链接,访问点或许是在你家里、办公室中、或你喜欢的咖啡吧中的任何一台路由器。

实际上,这个图示应该看起来像这样:

Wi-Fi 仅仅是在我们所不应该信任的信道上的长长的通信链的第一个链路。让我来猜猜,你使用的 Wi-Fi 路由器或许从开始使用的第一天气就没有得到过一个安全更新,并且,更糟糕的是,它或许使用了一个从未被更改过的、缺省的、易猜出的管理凭据(用户名和密码)。除非你自己安装并配置你的路由器,并且你能记得你上次更新的它的固件的时间,否则,你应该假设现在它已经被一些人控制并不能信任的。

在 Wi-Fi 路由器之后,我们的通讯进入一般意义上的常见不信任区域 —— 这要根据你的猜疑水平。这里有上游的 ISP 和接入提供商,其中的很多已经被指认监视、更改、分析和销售我们的流量数据,试图从我们的浏览习惯中挣更多的钱。通常他们的安全补丁计划辜负了我们的期望,最终让我们的流量暴露在一些恶意者眼中。

一般来说,在互联网上,我们还必须担心强大的国家级的参与者能够操纵核心网络协议,以执行大规模的网络监视和状态级的流量过滤。

HTTPS 协议

值的庆幸的是,我们有一个基于不信任的介质进行安全通讯的解决方案,并且,我们可以每天都能使用它 —— 这就是 HTTPS 协议,它加密你的点对点的互联网通讯,并且确保我们可以信任站点与我们之间的通讯。

Linux 基金会的一些措施,比如像 Let’s Encrypt 使世界各地的网站所有者都可以很容易地提供端到端的加密,这有助于确保我们的个人设备与我们试图访问的网站之间的任何有安全隐患的设备不再是个问题。

是的... 基本没关系。

DNS —— 剩下的一个问题

虽然,我们可以尽量使用 HTTPS 去创建一个可信的通信信道,但是,这里仍然有一个攻击者可以访问我们的路由器或修改我们的 Wi-Fi 流量的机会 —— 在使用 KRACK 的这个案例中 —— 可以欺骗我们的通讯进入一个错误的网站。他们可以利用我们仍然非常依赖 DNS 的这一事实 —— 这是一个未加密的、易受欺骗的 诞生自上世纪 80 年代的协议

DNS 是一个将像 “linux.com” 这样人类友好的域名,转换成计算机可以用于和其它计算机通讯的 IP 地址的一个系统。要转换一个域名到一个 IP 地址,计算机将会查询解析器软件 —— 它通常运行在 Wi-Fi 路由器或一个系统上。解析器软件将查询一个分布式的“根”域名服务器网络,去找到在互联网上哪个系统有 “linux.com” 域名所对应的 IP 地址的“权威”信息。

麻烦就在于,所有发生的这些通讯都是未经认证的、易于欺骗的、明文协议、并且响应可以很容易地被攻击者修改,去返回一个不正确的数据。如果有人去欺骗一个 DNS 查询并且返回错误的 IP 地址,他们可以操纵我们的系统最终发送 HTTP 请求到那里。

幸运的是,HTTPS 有一些内置的保护措施去确保它不会很容易地被其它人诱导至其它假冒站点。恶意服务器上的 TLS 凭据必须与你请求的 DNS 名字匹配 —— 并且它必须由一个你的浏览器认可的信誉良好的 认证机构(CA) 所签发。如果不是这种情况,你的浏览器将在你试图去与他们告诉你的地址进行通讯时出现一个很大的警告。如果你看到这样的警告,在选择不理会警告之前,请你格外小心,因为,它有可能会把你的秘密泄露给那些可能会对付你的人。

如果攻击者完全控制了路由器,他们可以在一开始时,通过拦截来自服务器指示你建立一个安全连接的响应,以阻止你使用 HTTPS 连接(这被称为 “SSL 脱衣攻击”)。 为了帮助你防护这种类型的攻击,网站可以增加一个 特殊响应头(HSTS) 去告诉你的浏览器以后与它通讯时总是使用 HTTPS 协议,但是,这仅仅是在你首次访问之后的事。对于一些非常流行的站点,浏览器现在包含一个 硬编码的域名列表,即使是首次连接,它也将总是使用 HTTPS 协议访问。

现在已经有了 DNS 欺骗的解决方案,它被称为 DNSSEC,由于有重大的障碍 —— 真实和可感知的(LCTT 译注,指的是要求实名认证),它看起来接受程度很慢。在 DNSSEC 被普遍使用之前,我们必须假设,我们接收到的 DNS 信息是不能完全信任的。

使用 VPN 去解决“最后一公里”的安全问题

因此,如果你不能信任固件太旧的 Wi-Fi 和/或无线路由器,我们能做些什么来确保发生在你的设备与常说的互联网之间的“最后一公里”通讯的完整性呢?

一个可接受的解决方案是去使用信誉好的 VPN 供应商的服务,它将在你的系统和他们的基础设施之间建立一条安全的通讯链路。这里有一个期望,就是它比你的路由器提供者和你的当前互联网供应商更注重安全,因为,他们处于一个更好的位置去确保你的流量不会受到恶意的攻击或欺骗。在你的工作站和移动设备之间使用 VPN,可以确保免受像 KRACK 这样的漏洞攻击,不安全的路由器不会影响你与外界通讯的完整性。

这有一个很重要的警告是,当你选择一个 VPN 供应商时,你必须确信他们的信用;否则,你将被一拨恶意的人出卖给其它人。远离任何人提供的所谓“免费 VPN”,因为,它们可以通过监视你和向市场营销公司销售你的流量来赚钱。 这个网站 是一个很好的资源,你可以去比较他们提供的各种 VPN,去看他们是怎么互相竞争的。

注意,你所有的设备都应该在它上面安装 VPN,那些你每天使用的网站,你的私人信息,尤其是任何与你的钱和你的身份(政府、银行网站、社交网络、等等)有关的东西都必须得到保护。VPN 并不是对付所有网络级漏洞的万能药,但是,当你在机场使用无法保证的 Wi-Fi 时,或者下次发现类似 KRACK 的漏洞时,它肯定会保护你。


via: https://www.linux.com/blog/2017/10/tips-secure-your-network-wake-krack

作者:KONSTANTIN RYABITSEV 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

自从修改了我的路由器的 WiFi 网络密码后,我的 Arch Linux 测试机就不能连接到网络了。由于我的 Arch Linux 测试机没有图形化桌面环境,我不得不在终端上更改 WiFi 密码。在图形化操作界面中,更改 WiFi 密码是很容易的。我仅仅需要打开网络管理器,就能很快更改 WiFi 网络密码。但是,我从来没有在 Arch Linux 终端上用命令行来更改 WiFi 密码。我开始在 google 上搜索相关资料,并且在 Arch Linux 论坛找到了一个好的解决办法。如果你也面临同样的问题,读完这篇文章吧,这个方法并没有那么难。

在终端更改 WiFi 网络密码

修改了路由器的 WiFi 密码之后,我尝试运行 wifi-menu 命令来更新 WiFi 密码,但是它一直报如下错误。

sudo wifi-menu

它显示了可用的 WiFi 列表。

我的 WiFi 网络名为 Murugs9376。我选中了我的 WiFi 网络,然后在 OK 处按下回车。它没有让我输入新的 WiFi 密码(我以为它会先问我是否密码已经更改),却显示了下面的错误。

Interface 'wlp9s0' is controlled by netctl-auto
WPA association/authentication failed for interface 'wlp9s0'

在 Arch 发行版上,我没有太多的经验。因此我去了 Arch Linux 论坛希望能找到解决方法。感天谢地,之前有人发了同样问题的帖子并从一位 Arch 老司机那里得到了解决办法。

网络相关的配置文件都是存放在 /etc/netctl/ 文件夹下。例如,下面是我的 Arch Linux 测试机上该文件夹下的内容:

ls /etc/netctl/

Sample Output:

examples    ostechnix         'wlp9s0-Chendhan Cell Service'  wlp9s0-Pratheesh
hooks       wlp9s0            wlp9s0-Murugu9376
interfaces  wlp9s0-AndroidAP  wlp9s0-none

我如果想要更改密码,只需要删除我的 WiFi 网络配置文件 (这里是 wlp9s0-Murugs9376) 并且重新运行 wifi-menu 命令。

因此,用下面的命令来删除原来的 WiFi 配置文件:

sudo rm /etc/netctl/wlp9s0-Murugu9376

删除配置文件之后,运行 wifi-menu 命令来更新 WiFi 密码。

sudo wifi-menu

选择 WiFi 网络,并且按回车键。

为新配置文件输入一个新名字。

最后,输入 WiFi 新密码到配置文件中,并且按下回车键。

这样就完成了。现在,我们已经更新了我们的 WiFi 网络密码。像你所看到的一样,在 Arch Linux 终端里面更新 WiFi 密码并不是件很难的事情。任何人都能在几秒钟以内完成它。

如果您觉得这个教程很有帮助,希望您能分享到您的社交网络中来支持我们。

谢谢!


via: https://www.ostechnix.com/update-wifi-network-password-terminal-arch-linux/

作者:SK 译者:chenzhijun 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

How To Setup A WiFi In Arch Linux Using Terminal

如果你使用的是其他 Linux 发行版 而不是 Arch CLI,那么可能会不习惯在终端里设置 WiFi。尽管整个过程有点简单,不过我还是要讲一下。在这篇文章里,我将带领新手们通过一步步的设置向导,把你们的 Arch Linux 接入到你的 WiFi 网络里。

在 Linux 里有很多程序来设置无线连接,我们可以用 ipiw 来配置因特网连接,但是对于新手来说有点复杂。所以我们会使用 netctl 命令,这是一个基于命令行的工具,用来通过配置文件来设置和管理网络连接。

注意:所有的设定都需要 root 权限,或者你也可以使用 sudo 命令来完成。

搜索网络

运行下面的命令来查看你的网络接口:

iwconfig

运行如下命令启用你的网络接口,如果没有启用的话:

ip link set  interface up

运行下面的命令搜索可用的 WiFi 网络。可以向下翻页来查看。

iwlist interface scan | less

注意: 命令里的 interface 是之前用 iwconfig 获取到的实际网络接口。

扫描完,如果不使用该接口可以运行如下命令关闭:

ip link set interface down

使用 netctl 配置 Wi-Fi:

在使用 netctl 设置连接之前,你必须先检查一下你的网卡在 Linux 下的兼容性。

运行命令:

lspci -k

这条命令是用来检查内核是否加载了你的无线网卡驱动。输出必须是像这样的:

如果内核没有加载驱动,你就必须使用有线连接来安装一下。这里是 Linux 无线网络的官方维基页面:https://wireless.wiki.kernel.org/

如果你的无线网卡和 Linux 兼容,你可以使用 netctl configuration

netctl 使用配置文件,这是一个包含连接信息的文件。创建这个文件有简单和困难两种方式。

简单方式 – Wifi-menu

如果你想用 wifi-menu,必须安装 dialog

  1. 运行命令: wifi-menu
  2. 选择你的网络

wifi-menu to setup wifi in arch

  1. 输入正确的密码并等待

wifi-menu setup wifi password in arch

如果没有连接失败的信息,你可以用下面的命令确认下:

ping -c 3 www.google.com

哇!如果你看到正在 ping,意味着网络设置成功。你现在已经在 Arch Linux 下连上 WiFi 了。如果有任何问题,可以倒回去重来。也许漏了什么。

困难方式

比起上面的 wifi-menu 命令,这种方式会难一点点,所以我叫做困难方式。在上面的命令里,网络配置会自动生成。而在困难方式里,我们将手动修改配置文件。不过不要担心,也没那么难。那我们开始吧!

  1. 首先第一件事,你必须要知道网络接口的名字,通常会是 wlan0wlp2s0,但是也有很多例外。要确认你自己的网络接口,输入 iwconfig 命令并记下来。

scan wifi networks in arch linux cli

  1. 运行命令:
cd /etc/netctl/examples

在这个目录里,有很多不同的配置文件例子。

  1. 拷贝将用到的配置文件例子到 /etc/netctl/your_profile
cp /etc/netctl/examples/wireless-wpa /etc/netctl/your_profile
  1. 你可以用这个命令来查看配置文件内容: cat /etc/netctl/your_profile

view network profile in arch linux

  1. vi 或者 nano 编辑你的配置文件的下面几个部分:
nano /etc/netctl/your_profile
- `Interface`:比如说 `wlan0`
- `ESSID`:你的无线网络名字
- `key`:你的无线网络密码

注意:

如果你不知道怎么用 nano,打开文件后,编辑要修改的地方,完了按 ctrl+o,然后回车,然后按 ctrl+x

edit network profile in arch

运行 netctl

  1. 运行命令:
cd /etc/netctl
ls

你一定会看到 wifi-menu 生成的配置文件,比如 wlan0-SSID;或者你选择了困难方式,你一定会看到你自己创建的配置文件。

  1. 运行命令启动连接配置:netctl start your_profile
  2. 用下面的命令测试连接:
ping -c 3 www.google.com

输出看上去像这样: check internet connection in arch linux

  1. 最后,你必须运行下面的命令:netctl enable your_profile
netctl enable your_profile

这样将创建并激活一个 systemd 服务,然后开机时自动启动。然后欢呼吧!你在你的 Arch Linux 里配置好 wifi 网络啦。

其他工具

你还可以使用其他程序来设置无线连接:

iw:

  1. iw dev wlan0 link – 状态
  2. iw dev wlan0 scan – 搜索网络
  3. iw dev wlan0 connect your_essid – 连接到开放网络
  4. iw dev wlan0 connect your_essid key your_key - 使用 16 进制密钥连接到 WEP 加密的网络

wpa\_supplicant

Wicd

NetworkManager

总结

会了吧!我提供了在 Arch Linux 里接入 WiFI 网络的三种方式。这里有一件事我再强调一下,当你执行第一条命令的时候,请记住你的网络接口名字。在接下来搜索网络的命令里,请使用你的网络接口名字比如 wlan0wlp2s0(上一个命令里得到的),而不是用 interface 这个词。如果你碰到任何问题,可以在下面的评论区里直接留言给我。然后别忘了在你的朋友圈里和大家分享这篇文章哦。谢谢!


via: http://www.linuxandubuntu.com/home/how-to-setup-a-wifi-in-arch-linux-using-terminal

作者:Mohd Sohail 译者:zpl1025 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我成功地在 Ubuntu 15.04 下用 Gnome Network Manager 创建了一个无线AP热点。接下来我要分享一下我的步骤。请注意:你必须要有一个可以用来创建AP热点的无线网卡。如果你不知道如何确认它的话,在终端(Terminal)里输入iw list

如果你没有安装iw的话, 在Ubuntu下你可以使用sudo apt-get install iw进行安装.

在你键入iw list之后, 查看“支持的接口模式”, 你应该会看到类似下面的条目中看到 AP:

Supported interface modes:

* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point

让我们一步步看:

1、 断开WIFI连接。使用有线网络接入你的笔记本。

2、 在顶栏面板里点击网络的图标 -> Edit Connections(编辑连接) -> 在弹出窗口里点击Add(新增)按钮。

3、 在下拉菜单内选择Wi-Fi。

4、 接下来:

a、 输入一个链接名 比如: Hotspot 1

b、 输入一个 SSID 比如: Hotspot 1

c、 选择模式(mode): Infrastructure (基础设施)

d、 设备 MAC 地址: 在下拉菜单里选择你的无线设备

5、 进入Wi-Fi安全选项卡,选择 WPA & WPA2 Personal 并且输入密码。 6、 进入IPv4设置选项卡,在Method(方法)下拉菜单里,选择Shared to other computers(共享至其他电脑)。

7、 进入IPv6选项卡,在Method(方法)里设置为忽略ignore (只有在你不使用IPv6的情况下这么做) 8、 点击 Save(保存) 按钮以保存配置。 9、 从 menu/dash 里打开Terminal。 10、 修改你刚刚使用 network settings 创建的连接。

使用 VIM 编辑器:

sudo vim /etc/NetworkManager/system-connections/Hotspot

或使用Gedit 编辑器:

gksu gedit /etc/NetworkManager/system-connections/Hotspot

把名字 Hotspot 用你在第4步里起的连接名替换掉。

a、 把 mode=infrastructure 改成 mode=ap 并且保存文件。 b、 一旦你保存了这个文件,你应该能在 Wifi 菜单里看到你刚刚建立的AP了。(如果没有的话请再顶栏里 关闭/打开 Wifi 选项一次)

11、你现在可以把你的设备连上Wifi了。已经过 Android 5.0的小米4测试。(下载了1GB的文件以测试速度与稳定性)


via: http://www.linuxveda.com/2015/08/23/how-to-create-an-ap-in-ubuntu-15-04-to-connect-to-androidiphone/

作者:Sayantan Das 译者:jerryling315 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

介绍

你可能知道,LinSSID 是一款可以用于寻找可用无线网络的图形化软件。它完全开源,用C++写成,使用了Linux wireless tools、Qt5、Qwt6.1,它在外观和功能上与Inssider (MS Windows 下的)相近。

安装

你可以使用源码安装,如果你使用的是基于DEB的系统比如Ubuntu和LinuxMint等等,你也可以使用PPA安装。

你可用从这个下载并安装LinSSID。

这里我门将使用PPA来安装并测试这个软件。

添加LinSSID的PPA并输入下面的命令安装。

sudo add-apt-repository ppa:wseverin/ppa
sudo apt-get update
sudo apt-get install linssid

用法

安装完成之后,你可以从菜单或者unity中启动。

你需要输入管理员密码。

Password required for iwlist scan_001

这就是LinSSID的界面。

LinSSID_002

现在选择你想要连接无线网络的网卡,比如这里是wlan0,点击Play按钮来搜寻wi-fi网络列表。

几秒钟之后,LinSSID就会显示wi-fi网络了。

LinSSID_003

如你在上面的截屏中所见,LinSSID显示SSID名、MAC ID、通道、隐私、加密方式、信号和协议等等信息。当然,你可以让LinSSID显示更多的选项,比如安全设置、带宽等等。要显示这些,进入View菜单并选择需要的选项。同样,它显示了不同的通道中的信号随着时间信号强度的变化。最后,它可以工作在2.4Ghz和5Ghz通道上。

就是这样。希望这个工具对你有用。

干杯!!

参考链接:


via: http://www.unixmen.com/linssid-graphical-wi-fi-scanner-linux/

作者:SK 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

作为一名python极客,我喜欢在github上挖掘新的用于linux用户的python工具。今天我发现了一款用python写成的用于检测AP信号强度的工具:wifi-linux。

我已经在wifi-linux上实验了大约两个小时,并且它工作的很好,但是我希望在不久的将来在作者那里看到一些单元测试,因为命令plot无法在我的电脑上工作,并且会导致一些问题。

什么是wifi-linux

根据github上作者账号的官方的 readme.md文件, wifi-linux是一个简单的收集你周围AP的RSSI信息的python脚本,它还会画出RSSI活动图形。

作者说可以在该程序中可以使用plot命令绘制RSSI 活动图形,但是不幸的是,这对我不可行。wifi-linux也支持其他的命令,比如bp 来加入一个断点,print会打印一些统计和启动开关

wifi-linux程序有下面这些依赖:

  • dbus-python
  • gnuplot-py

首先我们需要安装所有的包依赖以使它可以运行在我们的linux机器上。

安装wifi-linux需要的包

我尝试使用python包管理工具pip安装python-dbus但是失败了,因为pip会查找setup.py,但是python-dbus中没有。因此下面的命令不工作。

pip install dbus-python

你可以试一下但是很有可能会在终端中出现下面的错误。

IOError: [Errno 2] No such file or directory: '/tmp/pip_build_oltjano/dbus-python/setup.py'

我该怎么解决这个问题呢?很简单,用下面命令中的系统包管理工具来安装Python DBUS。

sudo apt-get install python-dbus

上面的命令只有在有apt-get包管理器的机器中才可以使用,比如Debian和Ubuntu。

我们要安装的第二个依赖是gnuplot-py。下载并用tar解压,接着运行setup.py来安装包。

第一步是下载gnuplot-py。

wget http://prdownloads.sourceforge.net/gnuplot-py/gnuplot-py-1.8.tar.gz

接着使用tar工具解压。

tar xvf gnuplot-py-1.8.tar.gz

接着使用cd命令改变目录。

cd gnuplot-py-1.8

接着运行下面的命令在你的系统中安装gnuplot-py。

sudo setup.py install

安装完成后,你就可以在你的系统中运行wifi-linux了。只需下载并用下面的命令运行脚本。

用下面的命令下载wifi-linux到你的机器中。

wget https://github.com/dixel/wifi-linux/archive/master.zip

解压master.zip接着使用下面的命令运行list\_rsssi.py脚本。

python list_rssi.py

下面的截图说明wifi-linux在工作了。

wifi-linux to monitor wifi signal strength

命令bp用于像下面那样添加一个断点。

the bp command in wifi-linux

命令print可以用于在终端上显示你机器的状态。下面就是一个例子。

the print command


via: http://linoxide.com/linux-how-to/monitor-access-point-signal-strength-wifi-linux/

作者:Oltjano Terpollari 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出