用Google身份验证器给你的ubuntu加把锁

最近发现Google身份验证器不是一般的强大,什么都能用,看了下中文还没有教程,这里做个简单的教程。

1ubuntu上安装包,ubuntu官方都有这个包,直接运行以下命令

sudo apt-get install libpam-google-authenticator

2、下面根据自己的喜好选择下就好了,我个人都选的Y

3、再来就是绑定手机客户端了,先运行

google-authenticator

会出现一个QRcode,手机上添加一扫描就好了,最关键的有5行 emergency scratch codes” 这个找个地方保存下,以防你手机掉了,或者刷成板砖了,呵呵。

4、最后就是设置SSH login的时候加载google验证器,运行

sudo nano /etc/pam.d/sshd

在文件最后加一行

auth required pam_google_authenticator.so

再编辑下SSH 配置文件,运行

sudo nano/etc/ssh/sshd_config

找到 ChallengeResponseAuthentication 这行,改成

ChallengeResponseAuthentication yes

5、重启SSH,搞定🙂

sudo service ssh restart

再次登录你会发现输入完帐号密码,还要输入下Google验证器上的6个数字。(没功夫截图了,有时间,我会上下图🙂

本文转自 害羞哥 的博客

在路由器上架设网站(5):动态域名

终于路由器上的网站运行起来了,但是觉得用ip访问太不科学了,
要是可以用域名访问就方便了!!

动态域名,Tomato DualWan内置有这个功能,
并且它还提供了一个很简单的域名解析服务WindDns

WindDns里面可以免费申请dns66.net的二级域名,对于没有顶级域名的来说非常方便!

下面来说说设置:

一.注册WindDns帐号,并登陆,

1.申请域名

进入域名管理,可以注册一个免费二级域名

例如:sharelife.dns66.net

2.添加解析记录

点击该域名进入域名记录

sharelife.dns66.net的域名记录

RR 类型 优先级 TTL 线路 状态 操作
sharelife.dns66.net A 183.132.231.152
300
默认
启用 修改 停用 删除
*.sharelife.dns66.net A 183.132.231.152
300
默认
启用 修改 停用 删除

A记录的值先随便填写,符合ip格式就行,动态域名会自动更新

第二条记录*是泛解析,
意思就是如a.sharelife.dns66.net / b.sharelife.dns66.net等等也会解析到这个ip上去

二.路由器设置

登陆路由管理–基本设置–动态域名
==============================================
动态域名 1
IP 地址                Use WAN1 IP Address 183.132.231.152 (推荐)
(如果本路由器是接在另一个路由器下面,则需要选择使用外部 IP 地址 (每十分钟检查))
定时自动刷新   1 天 (0 = 禁用此功能)  //默认0也没问题
服务商                WindDns
URL                     http://www.winddns.cn/
用户名                admin@devsk.com //WindDns上注册的帐号密码
密码                     ********
主机名                sharelife.dn66.net //这个域名是你在WindDns上申请的二级域名
通配符
MX
备份 MX
强制下次更新 勾选 //勾选以后,保存设置就会立即更新WindDns上的ip记录

保存后,更新成功应该可以看到如下提示:
最近 IP 地址 2013年12月31日 下午3:52:43:
183.132.231.152
最近更新状况 2013年12月31日 下午3:52:43:
Update successful
==============================================

然后在动态域名2和动态域名1设置一样,主机名填*.sharelife.dns66.net就行了

保存设置,访问域名试试!!

三.绑定其他域名(自己有顶级域名)

1.用CNAME记录

简单的就是在顶级域名的解析记录里面用CNAME记录,把域名指向dns66.net的二级域名

例如:我的devsk.com域名,我增加了这样一条记录.
==================================
记录类型 主机记录(RR)   记录值
CNAME      home                       sharelife.dns66.net
==================================
该记录是把指定域名的ip解析为另外一个域名的ip,以用于只知道域名而不确定ip的情况
因此访问home.devsk.com就和访问sharelife.dns66.net一样了!

2.用NS记录

NS记录,域名解析服务器记录,即把子域名指定某个域名服务器来解析.

例如:
===============================
记录类型 主机记录(RR) 记录值
NS                 home                     ns1.winddns.net
===============================

该记录把home.devsk.com的解析交给了ns1.winddns.net解析服务器,
这样,就可以在WindDns的域名管理添加新域名,

WindDns的解析服务器地址有两个,加入一个就行了!
ns1.winddns.net
ns2.winddns.net

2.1注意:

WindDns里面无法添加二级域名,所以添加时填入顶级域名
比如:devsk.com,然后进入域名记录,添加记录.

devsk.com的域名记录

RR 类型 优先级 TTL 线路 状态 操作
home.devsk.com A 0.0.0.0
300
默认
启用 修改 停用 删除
*.home.devsk.com A 0.0.0.0
300
默认
启用 修改 停用 删除

这样,在路由的动态域名里面,主机名也要相应的修改就行了!

在路由器上架设网站(4):外网访问

偶尔会碰到这样的情况:辛苦忙碌了好久,一切就绪,内网访问正常,但是外网却不能访问.-_-!!

首先在路由器上查看到你当前的外网ip, 系统状态–wan1–ip地址,

然后在浏览器输入该地址,看看能否正常访问(访问该地址的电脑不能是通过该路由器上网的,这样是肯定可以访问的,这涉及到路由的原理,所以建议用手机2g/3g上网测试,才能真实反映外网的访问情况)

如果确定外网不能访问,这种情况大概有两个原因:

1.ISP封了80端口,

这样基本就没办法解决了,有能力就打电话找电信给你开-_-!!

这样你就只能把端口不设为80了,试试8080也行,随便了,这样访问地址就变成了 IP:端口号,很不和谐,不过也没办法

2.路由器的防火墙屏蔽了80端口

执行以下代码再试试外网访问:

iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

如果可以访问了,就把这代码放到路由器的系统管理–脚本设置–防火墙 里面就行了(因为iptables规则重启会失效,要么就保存规则,不过还是加到防火墙比较方便,看个人喜好)

在路由器上架设网站(3):安装Lighttpd&Mysql

在之前的准备工作做好了以后,现在开始在路由器上搭建一个web服务器了!我选择了Lighttpd和Mysql的组合.

1.相关软件安装

安装Lighttpd , fastCGI , Mysql:

Lighttpd 是一个德国人领导的开源Web服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。

Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI,CGI,Auth,输出压缩(output compress),URL重写,Alias等重要功能.

/opt/bin/ipkg install libstdc++
/opt/bin/ipkg install php php-fcgi
/opt/bin/ipkg install lighttpd
/opt/bin/ipkg install mysql
/opt/bin/ipkg install php-mysql

如果要开启网页的验证码等功能的支持,且网站程序已表明需要GD库支持,则要:

/opt/bin/ipkg install php-gd

如果你还需要开启 curl 还要安装

/opt/bin/ipkg install php-curl

2.设置相关程序自启动

在USB设置里,挂载后运行脚本 栏中输入:

mount -o bind /tmp/mnt/sda4/opt /opt
/opt/bin/busybox swapon /tmp/mnt/sda4/swapfile/swapfile
/opt/etc/init.d/S80lighttpd start
/opt/etc/init.d/S70mysqld start

卸载前运行脚本:

/opt/bin/busybox swapoff /tmp/mnt/sda4/swapfile/swapfile
/opt/etc/init.d/S80lighttpd stop
/opt/etc/init.d/S70mysqld stop

注意:
1.挂载swapfile的命令按需执行,没有使用swap就不需要挂载卸载swapfile(以上代码中挂载的第2行,卸载的第1行)
2.sda4是我的u盘路径,具体路径需要自己按实际情况修改

安装完成后请重新启动你的路由器(自己重启服务也可以)。

3.软件安装完成后配置相关文件:

(一) 配置mysql

#号为root用户登陆linux后的提示符
1)、启动mysql
#/opt/etc/init.d/S70mysqld start
2)、修改mysql的root密码
#/opt/bin/mysqladmin -u root password 123
(123就是root的密码,根据自己需要自行设置即可)
3)、连接mysql
#/opt/bin/mysql -u root -p
出现提示时输入刚刚修改的密码,输入刚才设置的密码 123
4)、连接上mysql之后,创建数据库,mysql>是登陆mysql后的提示符
mysql> create database test;
5)、查看当前可用数据库
mysql> show databases;
是不是已经有上面创建的test的数据库了!

(二) 配置 lighttpd.conf

安装完成后先停用 Lighttpd 服务
/opt/etc/init.d/S80lighttpd stop

以下操作建议开启文件共享,直接在windows上操作,如果了解linux操作就无所谓了.

1)、备份lighttpd.conf (以免出了差错,可以重新来过)
#cp /opt/etc/lighttpd/lighttpd.conf  /opt/etc/lighttpd/lighttpd.conf.bak
如需还原就用cp /opt/etc/lighttpd/lighttpd.conf.bak  /opt/etc/lighttpd/lighttpd.conf

2)、修改lighttpd.conf
#vi /opt/etc/lighttpd/lighttpd.conf
如果你对 vi 编辑器操作方法不太熟悉,请先到百度找找。简单的使用方法(进入后按 i 键,就是改成插入方式。修改完成后,按 Esc 键,输入 冒号 再加上 wq 后回车)

3)、需要变更的内容为下面的,其他保持不变.

(1)server.modules中把下面行的”#” 去掉
# “mod_fastcgi” 改为 “mod_fastcgi”

(2)server.port中修改端口,默认为80,可改可不改,自己喜欢。 注意:有的ISP运营商把80端口封了因此使用80端口外网不能访问,而且路由的管理页面端口也是80,需要在路由设置里面修改,我把路由的管理页面设为了8080,请按自己的实际情况设置端口
server.port = 80

(3)修改server.event-handler 去掉# 并改成
server.event-handler = “poll”

(4)fastcgi.server中,把”#”去掉,改为:

fastcgi.server = ( ".php" =>
                     ( "localhost" =>
                        (
                          "socket" => "/tmp/php-fcgi.sock",
                          "bin-path" => "/opt/bin/php-fcgi",
                          "bin-environment" => (
                              "PHP_FCGI_MAX_REQUESTS" => "4000"
                              )
                         )
                     )
                 )

4)、把 /opt/etc/lighttpd/conf.d/10-php-fcgi.conf
改名为 /opt/etc/lighttpd/conf.d/10-php-fcgi.conf.back
修改完毕,启动lighttpd试试。
#/opt/etc/init.d/S80lighttpd start

5)看看程序lighttpd有没有正常运行
#ps
看看是否有此进程,正常的应该就有了
/opt/sbin/lighttpd -f /opt/etc/lighttpd/lighttpd.conf

4.看看效果

浏览器打开192.168.1.1,如果一切正常,那么看到的应该是

lighttpd server is running.

此时可以把你的网页放到optsharewww目录内即可访问!!

在路由器上架设网站(2):安装optware

上一篇文章u盘格式化,已经将环境准备好了,接下来就要在路由器上装一些软件来实现一些更棒的功能,充分挖掘硬件潜能!

optware

optware 是DD-WRT系统中的一个类似第三方软件的运行环境,为什么叫做optware是因为这个环境是装在/opt目录下的,值得注意的是,这个opt也有自己的/bin、/etc、/lib等目录,基本和一个完整的linux环境类似。
optware的软件都是已经编译好了的,通过ipkg软件进行下载安装,只要知道软件名就能通过ipkg install 软件名,进行安装。

安装optware

以下代码均在telnet到路由器后执行!

1、挂载opt分区

tmp/mnt/sda4是我的u盘路径,具体路径可能不一样,需要自己查看

在u盘上新建一个opt文件夹: mkdir /tmp/mnt/sda4/opt   (如果开启了文件共享,直接在电脑上进入u盘文件系统新建opt目录)
挂载刚才在u盘新建的opt目录到路由器的opt目录: mount -o bind /tmp/mnt/sda4/opt /opt

2、准备安装optware

cd /opt
wget http://bbs.dualwan.cn/downloads/optware-install.sh -O - | tr -d 'r' > optware-install.sh
sh optware-install.sh

到此OPTware 已经安装好了,以后就可以通过   /opt/bin/ipkg install  <软件名>    来安装其他软件了!

3、更新

/opt/bin/ipkg update
/opt/bin/ipkg install busybox

4、建立swap分区(交换分区,虚拟内存)

我的共建立了64MB,如果你已经在使用swap分区,此步骤就可以省略了(路由器负载不大也可以不用建立交换分区,毕竟它会增加u盘读写,减少u盘寿命)

mkdir /tmp/mnt/sda1/swapfile
dd if=/dev/zero of=/tmp/mnt/sda1/swapfile/swapfile bs=1024 count=65536

操作后,系统返回信息:
65536+0 records in
65536+0 records out

5、挂载swap

好了,swap文件建立完成.开始把swap挂载.

/opt/bin/busybox mkswap /tmp/mnt/sda4/swapfile/swapfile
/opt/bin/busybox swapon /tmp/mnt/sda4/swapfile/swapfile

6、补充:ipkg的命令说明

1.   ipkg update

下载并更新最新的软件包列表(这个列表的位置在/etc/ipkg.conf指定):

2.  ipkg upgrade

更新所有已安装软件

3.   ipkg list

在更新之后,我们可以用 ipkg list 这命令查看一下有什么软件包可供安装

4.   ipkg install

安装软件包,有 2 种方法,例如我想安装 OpenSSH 的 SFTP 服务器,方便我以后上传文件到 路由器,我可以执行 ipkg list 或到 OpenWrt 的软件包网址取得软件 SFTP 服务器的资料:

之后可以选择第 1 个方法用软件包名来安装,这方法会自动把软件包下载并安装:

4.1.  ipkg install openssh-sftp-server

或者选择第 2 个方法从网站把安装包(ipk格式)下载到路由器上,然后输入文件名安装:

4.2.  ipkg install openssh-sftp-server_4.0p1-1_mipsel.ipk

5.   ipkg list_installed

这个命令会列出  已经为你安装好的软件 (包括一些常用软件和驱动) 以及你后来安装的软件。

6.   ipkg remove

当你的空间不足时,这个命令非常有用,先执行 ipkg list_installed 得出己安装的软件列表,然后找出你要删除的软件包名称,例如:

ipkg remove openssh-sftp-server