作者归档:CD

在树莓派3B上安装OpenWrt 18.06.0

经历LEDE分支的快速发展后,OpenWRT与LEDE又重新走到了一起,并于2018年7月放出了首次合并后的正式版OpenWrt 18.06.0。今天介绍下如何在树莓派3 Modle B上安装正式版的OpenWrt 18.06.0,主要目的是介绍如何配置3B的网络。

安装OpenWRT

下载所需的固件和写入软件

下载适配树莓派3B的固件

openwrt-18.06.0-brcm2708-bcm2710-rpi-3-squashfs-factory.img.gz

解压后得到openwrt-18.06.0-brcm2708-bcm2710-rpi-3-squashfs-factory.img。

下载并安装写入软件

Win32DiskImager

写入OpenWRT

建议将TF卡事先格式化一次,保证卡上内容为空。

以管理员方式打开Win32DiskImager,在“Image File”处选择解压好的“openwrt-18.06.0-brcm2708-bcm2710-rpi-3-squashfs-factory.img”,谨慎选择要写入的目标TF卡所在的盘符“Device”,之后点击“Write”写入。

修改OpenWRT网络配置

初始化设置

将写好的TF卡插入3B,通电,以网线连接上3B与电脑,打开 192.168.1.1,直接点击“Login”登陆。

设置密码和修改SSH设置

点击上方提示处的“Go to password configuration…”,
设置密码(Router Password)。
将“Dropbear Instance”下的“Interface”选择“lan”,之后点击“Save & Apply”保存并生效。

开启并连接3B的无线网络

依次打开“Network” > “Wireless”,在“Wireless Overview”界面,找到“SSID: OpenWrt | Mode: Master”,点击“Enable”开启无线,此无线的用户名为“OpenWrt”,默认密码为空。
断开有线连接,在无线网络找到“OpenWrt”,进行连接,重新登陆路由器。

修改网络接口设置并添加WAN口配置

修改LAN接口网卡适配器的设置

依次打开“Network” > “Interfaces”,在”Interfaces”下找到“LAN”,点击“Edit”进入“Interfaces – LAN”的配置界面,找到“Common Configuration”选项卡,在“Interface”点击右侧的下拉列表,去掉“Ethernet Adapter: “eth0” (lan)”前面的钩,之后点击“Save & Apply”保存并生效。

对无线网络的进一步配置,如更改无线名称,加密设置等在此不赘述。

添加WAN口

依次打开“Network” > “Interfaces”,点击“Add new interface…”打开新建接口的界面“Create Interface”,如下修改:

  • “Name of the new interface”处,填入“WAN”。
  • “Protocol of the new interface”处,根据是否由光猫拨号进行选择:如果是宽带的账户密码在光猫中设置并拨号,就选择“DHCP client”;如果是在树莓派的OpenWRT中设置宽带账号并拨号,就选择“PPPoE”。
  • “Cover the following interface”处,选择“Ethernet Adapter: “eth0″”。

设置好之后,点击“Submit”提交修改。
此时,返回WAN口的设置界面“Interfaces – WAN”:
如果选择了PPPoE,就在该界面下方输入宽带的用户名“PAP/CHAP username
”和密码“PAP/CHAP password”。
在该界面的右侧防火墙设置“Firewall Settings”中:
“Create / Assign firewall-zone”处,选择“wan:(empty)”。
点击“Save & Apply”保存并生效。

安装中文语言包和material主题

putty登陆3B,安装语言包和material主题

opkg update
opkg install luci-theme-material luci-i18n-base-zh-cn

为IOS 1password 启用PIN 码

从安全的角度来说,指纹识别和faceID比密码(PIN)要好,但是对于没有faceID的IOS设备,有不少时候指纹识别不灵敏或者无法识别。这时需要输入较长的1password主密码,这是令人头痛的事。好在IOS版1password提供了PIN码功能,即输入四位数字密码,即可解锁1password。但是这个功能隐藏的比较深。具体开启方法如下:

登录1password,“设置”-“高级”-“安全”-“PIN码”。

注意:开启PIN码后,指纹识别和faceID会被关闭。

 

 

谷歌翻译扩展程序划词翻译无效的问题

现象描述:
Chrome安装Google翻译扩展程序后,在网页中选中要翻译的内容或者双击鼠标左键选中某单词,期待的正常情况是在所选的文字旁边自动弹出翻译的图标,但是事实上是绝大多数时候都不出现,只能右键或者点击工具栏上的翻译图标才能翻译。
解决方法:
依次找到Chrome工具栏右侧“三个竖点” > 设置 > 高级 > 语言 > 语言
将“询问是否翻译非您所用语言的网页”的选项关闭。可能原因是:内置的翻译和Google翻译冲突。

CentOS 7 上使用Certbot申请通配符证书(ACMEv2 Wildcard Certificates)

通配符证书(泛域名证书)对于小博客来说,毫无用处,但是要赶个时髦。本文记录下申请RSA和ECDSA通配符证书的过程。

1 安装Certbot

签署通配符证书需要Certbot 0.22以上。如果以前安装过certbot,一般是直接yum update即可。如果是全新安装,则如下:
先升级:

yum update -y

查看系统版本:

cat  /etc/centos-release CentOS Linux release 7.4.1708 (Core)

安装epel源:

yum install epel-release -y

安装certbot:

yum install certbot -y

查看certbot版本:

certbot --version certbot 0.22.0

2 申请RSA通配符证书的过程

2.1 用如下命令申请证书

co1dawn.com和*.co1dawn.com换成自己的域名;执行该命令时不依赖nginx。

certbot -d co1dawn.com -d *.co1dawn.com --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory certonly --agree-tos

输入应急邮箱,证书到期前会有邮件提示:

Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):

如果想跳过输入邮箱的步骤,可在申请命令后面加上:

--register-unsafely-without-email

之后出现如下提示:要公开记录申请该证书的IP地址,是否同意?不同意就无法继续。

-------------------------------------------------------------------------------
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
-------------------------------------------------------------------------------
(Y)es/(N)o: y

同意之后,出现如下提示,第一个“Press Enter to Continue”处直接回车,第二个“Press Enter to Continue”不要按回车:

-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.co1dawn.com with the following value:

iLS0NjcdP3RR1KphB6xbbVnKS_NS2uMW-xdDRzz85OM

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue             #此处直接回车

-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.co1dawn.com with the following value:

f3V7aw5GPm5yzNsJFanQQaUFMyVQcqriUe3UjIDUHn0

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue             #此处不要按回车
2.2 为DNS解析增加TXT记录

进入自己域名的DNS记录管理页面,增加两条TXT记录,多数情况下,仅需在域名(Name)处填入_acme-challenge,在内容(Target)处填入上一步Certbot生成的内容即可,不同DNS提供商处可能会略有不同,根据实际情况修改:

    Name                                     Target
_acme-challenge             iLS0NjcdP3RR1KphB6xbbVnKS_NS2uMW-xdDRzz85OM
_acme-challenge             f3V7aw5GPm5yzNsJFanQQaUFMyVQcqriUe3UjIDUHn0

稍等片刻,等TXT记录解析生效。查看是否生效的命令和生效后的查询结果如下:

host -t txt _acme-challenge.co1dawn.com
_acme-challenge.co1dawn.com descriptive text "iLS0NjcdP3RR1KphB6xbbVnKS_NS2uMW-xdDRzz85OM" 
_acme-challenge.co1dawn.com descriptive text "f3V7aw5GPm5yzNsJFanQQaUFMyVQcqriUe3UjIDUHn0"
2.3 继续申请证书

当第2.2步查看TXT记录解析成功后,回到申请证书的第2.1步处,直接回车,等待:

Waiting for verification...
Resetting dropped connection: acme-v02.api.letsencrypt.org
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/co1dawn.com-0001/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/co1dawn.com-0001/privkey.pem
   Your cert will expire on 2018-06-14. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

这表示已成功生成新的证书和密钥,修改nginx的配置文件定位新证书和密钥的位置后重启nginx即可。

3 申请ECDSA通配符证书

3.1 首先是生成支持通配符证书的请求文件

步骤请参考这篇文章:使用Let’s Encrypt的Certbot为ngxin生成ECDSA证书,以下内容中的文件名基本和这篇文章相同。
生成ECDSA私钥:

openssl ecparam -genkey -name secp384r1 > ec.key

生成通配符证书的请求文件的命令需要改为:

openssl req -new -sha384 -key ec.key -subj "/CN=co1dawn.com" -reqexts SAN -config <(cat /usr/local/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:co1dawn.com,DNS:*.co1dawn.com")) -outform der -out ec-der.csr

ec.key 是自己生成的私钥
co1dawn.com 改成自己的域名
ec-der.csr 支持通配符证书的请求文件,假设放到/usr/local/src下,下面会用到

3.2 申请通配符证书

步骤和申请默认的RSA通配符证书基本一致,而且TXT记录相同,无需再次添加了。

certbot -d co1dawn.com -d *.co1dawn.com --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory certonly --csr "/usr/local/src/ec-der.csr"

之后一路回车即可。

解决编译LEDE时bughost.org无法访问致下载IPW-2100fw/2200fw驱动失败的问题

尝试编译LEDE固件,遇到IPW-2100fw和ipw2200-fw下载失败。
注意到Makefile中相关字段:

cat package/kernel/mac80211/Makefile
...
IPW2100_NAME:=ipw2100-fw
IPW2100_VERSION:=1.3

define Download/ipw2100
  URL:=http://bughost.org/firmware/
  FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
  HASH:=e1107c455e48d324a616b47a622593bc8413dcce72026f72731c0b03dae3a7a2
endef
$(eval $(call Download,ipw2100))
...
IPW2200_NAME:=ipw2200-fw
IPW2200_VERSION:=3.1

define Download/ipw2200
  URL:=http://bughost.org/firmware/
  FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
  HASH:=c6818c11c18cc030d55ff83f64b2bad8feef485e7742f84f94a61d811a6258bd
endef
$(eval $(call Download,ipw2200))
...

原因是bughost.org最近几天down机了。
解决方法是将Makefile中的bughost.org换成其他的源,按如下修改再编译就可以了。

...
IPW2100_NAME:=ipw2100-fw
IPW2100_VERSION:=1.3

define Download/ipw2100
  URL:=https://people.freebsd.org/~flz/distfiles/ipw/
  FILE:=$(IPW2100_NAME)-$(IPW2100_VERSION).tgz
  HASH:=e1107c455e48d324a616b47a622593bc8413dcce72026f72731c0b03dae3a7a2
endef
$(eval $(call Download,ipw2100))
...
IPW2200_NAME:=ipw2200-fw
IPW2200_VERSION:=3.1

define Download/ipw2200
  URL:=https://people.freebsd.org/~flz/distfiles/ipw/
  FILE:=$(IPW2200_NAME)-$(IPW2200_VERSION).tgz
  HASH:=c6818c11c18cc030d55ff83f64b2bad8feef485e7742f84f94a61d811a6258bd
endef
$(eval $(call Download,ipw2200))
...