原文地址:http://blog.csdn.net/carl654940/article/details/7450253

两天的折腾openwrt与交叉编译,成功把802.1X写入认证客户端。上个大概过程,具体自己查资料,自己动手丰衣足吃,我也是摸了两天才搞定(我比较笨— —#)

在淘宝上淘了一只大亚的猫(DB-120 wg),flash 16M (型号:s开头的)RAM 32M

反正45块的东西,当个玩具。

进入正题,先来刷个openwrt,自己编译openwrt?还是不要了,哥不想折腾,在网上找了个教程,刷了个mini版的下去。

过程:

http://www.360doc.com/content/11/1210/03/2095840_171165754.shtml

我的猫也不要密码。。。不知道为什么。。没研究。

刷好了,注意WLAN与LAN口的设置。。LAN4是WLAN口,LAN1-3是LAN口

接着编译802.1x客户端,自己学校802.1x客户端源码自己找高手要,或者上网找什么njit-client,还有一些其他锐捷客户端的源代码,自己改动一下来适应各个学校不同的交换机配置。我的是现成的,改动一下就可以用了。

过程:

1.搭交叉编译环境(下载人家的,或者自己编译)自己编译的话在网上搜ubuntu下搭建openWrt的编译环境或其他

自己编译时注意:因为要用到libpcap,所以在make  menuconfig那里librarys加上libpcap

2.编译完后,在那个bin什么那里有个Openwrt-SDK...把它解压

3.以解压完的那个东西里的gcc或g++来编译我们的程序,把target..里面的lipcap文件夹,还有一些有pcap名字的拷到tooltrain那边的include 上

在编译里记得在后面加-lpcap,很容易,试多几次就会,我也是自己摸索的。不懂的话看一下人家是怎么编译njit-client的

4.把生成的执行文件上传到openwrt,用什么工具,自己找什么scp..上传到/usr/bin上,然后还有一些库,lipcap.so.x.x,是交叉编译那里那个,不是/usr/lib上的

5最后想开机运行的话就用/etc/rc.local 或者写脚本。。。我写脚本时not found rc.common。不知道什么来的,不管了,直接有/etc/rc.local

注意网卡名称问题,WLAN是eth0

另一个:http://www.7forz.com/1973/?replytocom=260

【详细教程】编译openwrt + njit-client 1.3 通过iNode认证

软件·技术

by 7forz

这个教程,简单地说是我一年以来的鼓捣成果,也是我对我baidu/google看过无数教程的一个大杂烩。我大一之前的那个暑假的时候在贴吧看了这个帖http://tieba.baidu.com/p/1621858667之后,燃起了我对openwrt路由器的激情。在看了很多很多个教程之后,我把我的心得汇总在这里,希望对各位有所帮助~PS.20130902更新:华工五山校区测试成功。

首先,最重要的,你需要有一个能刷openwrt的路由器。怎么知道自己的路由支不支持呢?请参看http://wiki.openwrt.org/toh/start,右边的Supported Hardware – Router type里面就是支持的,如下图。简单地说,ROM必须≥4MB(假如有8MB+就最好了,4M的ROM挺苦逼的),RAM必须≥16MB才能刷入openwrt。

怎么刷机?不同的路由刷的方法也是不同的,所以请自行百度。刷机的风险也是不同的,有的刷变砖了要救回来比较难(我没试过),有的怎么刷都能轻松刷回来……当然你也可以去淘宝直接买一个刷好了的,反正也不贵。

刷机的固件怎么来?去openwrt官网下载是最方便的方法,不过这样刷出来的不一定有LuCI(一个网页图形界面,貌似trunk没有,Attitude Adjustment有?),只能用命令行的方法来管理;而且之后还要自己安装njit-client及其依赖包,比较麻烦;此外,njit-client的交叉编译问题也没有解决。当然也可以去各论坛上下载各大神编译的固件,不过我这路由好像比较小众,没大神啊,只能靠自己了。

最重要的是,现在网上流传的njit-client绝大多数都是1.2版的,都要libopenssl这个体积庞大的依赖包,直接导致了ROM剩余空间非常少的问题,所以下面我来讲一下自己编译openwrt固件和最新版的njit-client 1.3的方法~本文最后附上我编译的ramips和ar7xxx的njit-client 1.3 的ipk下载。

我还装了一些ipv6支持、QoS什么的还剩200多k空间

自己编译看上去好像好高级的样子 w(゚Д゚)w ,其实我也是一步一步看教程的o(* ̄▽ ̄*)o 以下内容有相当一部分参考了这里的教程。

一、准备工作

  • 首先,准备一台运行Linux或者类Unix操作系统的PC,比如Ubuntu,Debian,Fedora,MAC OS,FreeBSD,Suse等,推荐使用Ubuntu。下文所列出命令都为ubuntu下的命令,其他linux发行版请到这里查看相关的命令。
  • 这里假设使用的是Ubuntu,其他OS只是在安装PC所需的工具和函数库时所使用的命令不同而已,比如apt-get install改为yum install。
  • 需要大约350MB硬盘空间,用于下载软件包(当然,选择编译的软件越多,需要下载的源代码包就越多,可能需要多达几个G的硬盘空间)。
  • 需要3~4GB可用硬盘空间,用于编译OpenWrt。
  • 需要宽带连接,因为OpenWrt提供的主要是脚本文件不包含源代码,需要从网络下载所需的源代码包。
  • 一般情况下,我们还需要一个非root用户。
  • 最后是耐心和时间,OpenWrt边下载边编译,编译几个小时那是家常便饭,并且中间还有可能出错。

二、编译openwrt

1.安装subversion以获取源代码:

在终端中运行:

$ sudo apt-get install subversion

2.安装必要的编译工具:

$ sudo apt-get install libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev

3.下载openwrt源代码,这里我下载的是openwrt官方的Attitude Adjustment分支:

svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment openwrt_attitude_adjustment

如果想下载Development branch(trunk)(注意这是二选一,有一个就够了):

svn co svn://svn.openwrt.org/openwrt/trunk/ openwrt_trunk

4.更新下载和安装扩展软件包:

假设你的工作目录为openwrt_trunk,进入openwrt_trunk目录:

cd openwrt_trunk

feeds.conf.default复制一份命名为feeds.conf:

cp feeds.conf.default feeds.conf

(不装njit-client此步可忽略)打开feeds.conf,在最后加上一行

src-svn njit https://github.com/liuqun/openwrt-feeds-njit/trunk/njit
src-svn njit https://github.com/liuqun/openwrt-clients/trunk/njit

路径修改  2013.11.15

如果要安装scutclient,就加一行

src-svn scut https://github.com/liuqun/openwrt-clients/trunk/scut

执行了下面两步之后还可以查看./package/scut/readme.html获取更详细的帮助

更新下载扩展软件包,并安装它们到package/feeds/目录:

./scripts/feeds update -a

./scripts/feeds install -a

5.配置openwrt

现在开始配置OpenWrt,选择你需要目标平台,以及选择将要编译和添加进固件的软件包。运行命令:

make menuconfig

若回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可。

然后你就来到了这个界面:

这个配置界面跟Linux内核的配置界面基本差不多,几乎每一项都有3个选择Y/M/N:

  • Y:选择Y,该软件将被编译,并且加入到你的目标固件里;
  • M:选择M,该软件包将会被编译,但不会被放入固件里。在需要它的时候,可以用OPKG软件包管理器进行安装;
  • N:选择N,该软件包将不会被编译,也不会被安装进固件。
  • /:搜索软件包。
  • 方向键是移动光标
  • 回车键是确认
  • 空格键是选择,可以代替Y/M/N键的使用

例如我的是D-LINK DIR-615 D4,到第一幅图Support Hardware那里查询对应的Target和Platform,查到之后选择对应的Target System和Subtarget和Target Profile,我选的是Ralink RT28XX/3XXX和RT305X和Default Profile。

又例如你是TP-LINK TL-MR3420,就这样选:

Target System —> (X) Atheros AR71xx/AR7240/AR913x

Target Profile —> (X) TP-LINK TL-MR3420 v1

之后就是选择扩展软件包,按需要添加。

  • 添加LuCI(这样才自带网页GUI端)

    LuCI ->Collections -> <*> luci(就是找到luci然后按一下Y)
  • 添加LuCI的中文语言包
    LuCI ->Translations -> <*> luci-i18n-chinese
  • 添加UTF8编码
    Kernel modules -> Native Language Support -> <*> kmod-nls-utf8
  • 添加njit-client
    Network -> <*> njit8021xclient
  • 下面的njit8021xclient-web也顺便选了吧,这个是一个简单的LuCI的配置界面

如果当时svn下载的是trunk,默认可能就没有LuCI,那就要在feeds.conf后添加

src-svn luci http://svn.luci.subsignal.org/luci/branches/luci-0.11/contrib/package

并执行./scripts/feeds update -a 和 ./scripts/feeds install -a

其他的软件包就按需要添加吧,注意不要太多(我可怜的4M ROM…),当然如果你的路由能支持挂载U盘什么的那就更爽了(再也不担心空间不够了),这方面请自行百度。

好了,选完之后回到主菜单,选Exit退出并保存,回到终端。

(不装njit-client可忽略)如果你的系统是Ubuntu,那么在编译之前必须执行此操作
sudo mv /usr/bin/pcap-config /usr/bin/pcap-config.bak

总之就是干掉pcap-config,否则编译会出错,就像这样

auth.c: In function ‘SendResponseIdentity’:
auth.c:432:11: error: invalid ‘asm’: invalid use of ‘%w’

当时编译过不去真是折腾了好久,最后终于在这里看到了njit-client作者的解答。

之后就是编译了,执行

make V=99

其中“V=99”表示输出详细的debug信息,也可以直接执行make。

这个过程是漫长的,尤其是有时在下载一些位于国外服务器的源代码的时候,速度甚至<1kB/s(绝对不是我带宽的问题),这个各位就要做好心理准备了(也可以按Ctrl + C 中断编译,把那个下载很慢的文件链接拖到下载工具,下载回来之后放到 /工作目录/dl/ 下)。

有时候编译也会出错,根据我的经验这是由于更新了新的版本,而这个版本又有问题,连编译都不能通过( ⊙ o ⊙ ),我不是学编程的所以也没办法,只能等后续的bugfix,要么就回滚到旧的没问题的版本(我也试过更新了feeds然后某一个软件包有问题然后编译失败的),总之有的东西真的不是越新越好啊╮(╯-╰)╭

编译完成之后,在 /工作目录/bin/ 下就会生成刷机用的.bin文件,在packages/下有软件包的.ipk文件和。刷机方法就请自行百度了。

刷完之后重启路由,把电脑本地连接的ip改为192.168.1.x,然后在浏览器中进入192.168.1.1就进入LuCI了。然后在浏览器里设置一些东西,例如刚进去就要改密码、改WAN口的IP(学校给的)、DNS、网关(学校给的)、MAC地址(如果校园网绑定了MAC)、设置DHCP服务(设完之后可以把本地连接的手动ip改回自动获取,DNS好像要用学校给的DNS)、设置wifi什么的(PS.无线默认关闭),这里不再详述。

测试一下njit-client吧!在putty之类的里面执行

njit-client username password interface     #改成自己的用户名密码

试试吧!其中[interface]是接口,例如eth0,eth1,一般是eth0,总之要对应你的WAN口,在luci里就可以查看,例如我就是eth0.2。

能连接上之后就做一个开机启动脚本吧~在路由器的 /etc/init.d/ 目录下建立一个自动运行脚本 njitclient,内容如下:

#!/bin/sh /etc/rc.common
#(c) 2010 ivan_wl
START=50

start() {
njit-client username password eth0 &
}

stop() {
killall njit-client
killall udhcpc
}

之后运行命令

chmod +x /etc/init.d/njitclient          #加上可执行属性

/etc/init.d/njitclient enable           #开启开机自动运行

基本上就讲完了!!!Enjoy!

openwrt功能太多了,各位有空可以慢慢研究~有什么问题欢迎在下面提出~

刷个openwrt,并加入改写的802.1X认证客户端(iNode认证)相关推荐

  1. 无线路由器上安装OpenWRT,在需要标准802.1x认证的网络中无线上网

    学校一直用H3C客户端上网,因此无法直接使用无线路由器.后来去一些论坛时常看见DD-WRT和OpenWrt这两个词,也初步了解到wpa_supplicant.njit-client.mentohust ...

  2. 基于802.1x协议的接入认证简单实现

    今天来谈谈802.1X协议,以及如何来使用该协议实现用户接入控制 802.1x协议是一种基于端口的网络接入控制(Port Based Network Access Control)协议."基 ...

  3. linux h3c 802.1客户端,OH3C 的安装及使用 H3C 802.1x Client for OpenWrt

    OH3C是基于Openwrt路由器固件平台的H3C 802.1x兼容客户端,基于YaH3C开发. 目前已经实现的功能有:H3C 802.1x认证 多用户管理 mac绑定设置及自动修改mac 前提 首先 ...

  4. 搭建802.1X服务器及如何使用路由器接入和桥接(WDS)

    本文说明了以下几个内容: 1.如何使用freeradius(在自己电脑上,linux系统)搭建802.1X认证服务器 2.如何将路由器A(openwrt系统)作为client连接上述服务器 3.如何使 ...

  5. 802.1X基本配置

    基本的802.1X部署工作包括以下4步:     1. 为Cisco Catalyst交换机配置802.1X认证方     2. 为交换机配置访客VLAN或者受限VLAN,并调整802.1X定时器(可 ...

  6. IEEE 802.1x 硬件参加的过程

    NAC IEEE 802.1x 将会有如下四个实体参加整个过程: (1) 端口访问请求者 端口访问请求者为试图接入到网络中终端或服务器设备.按照这些设备对802.1x 协议的支持情况,分为: 1.有 ...

  7. android 802.1x 认证,802.1X认证基础

    802.1X认证基础 802.1X认证简介 定义 802.1X协议是一种基于端口的网络接入控制协议(Port based networkaccess control protocol)."基 ...

  8. 锐捷网络:校园网基于802.1x无感知认证

    一.现状与需求分析 随着智能终端的普及,接入校园网络的终端类型正在逐渐发生变化.智能终端需要通过3G.GPRS.WIFI接入Internet网络.但目前3G.GPRS上网资费较贵,所以WIFI成为校园 ...

  9. 802.1X与portal的无线认证

    无线准入方式: 首先声明802.1x部署方式与portal部署方式,在华为S7706作为控制器的情况下只能二选一,不能混合使用. 站在用户的角度上看:802.1x的认证过程与连接方式是要使用客户端(软 ...

最新文章

  1. java汉字转换成拼音_Java代码将汉字转换成拼音
  2. 用 C 语言实现面向对象编程
  3. 离散数学 消解算法判断合取范式的可满足性
  4. Android实现点击通知栏后,先启动应用再打开目标Activity
  5. 第一次马拉松_成为数据科学家是一场马拉松而不是短跑
  6. 2022年度基金委九大学部申请注意事项
  7. resnet 25 训练人脸识别
  8. Linux—图解rsyslog及通过 Loganalyzer实现集中式日志管控
  9. js判断json对象中是否含有某个属性
  10. gxworks2使用指令手册_编程软件GX-Works2简单工程功能块篇操作手册三菱GX-Works2手册 - 广州凌控...
  11. 我要考华为认证,需不需要培训呢?
  12. 使用FFMpeg从mp4中提取mp3
  13. 金蝶KIS专业版V14.1下载链接,金蝶KIS专业版V14.1新增功能介绍 安装包下载地址
  14. TL-WR886N路由器+树莓派绑定IP地址
  15. IT连创业系列:说说苹果商店AppStore上架App应用前后遇到的那些神坑
  16. Jupyter制作slides
  17. 使用 ES6 编写更好的 JavaScript Part II:深入探究 [类]
  18. 盛世昊通愿天下无拐,期待所有失孤家庭早日团圆
  19. 云计算开发学习教程,简单介绍云计算
  20. 【模拟赛】沼泽地(插头DP)

热门文章

  1. 医用耗材管理系统的模式的应用实践-盘谷
  2. Java 必会10大的经典算法
  3. Authorware常见问题的解决
  4. # 关于Qt程序异常结束, The process was ended forcefully问题
  5. Python命令行清屏方法
  6. JDK API 1.8.0中文版零C币纯分享,直接下载即可。
  7. 计算机图形学基础第二版,计算机图形学基础(第2版)课后习题答案__陆枫.pdf
  8. 基于Python的在线音乐推荐系统的设计与实现
  9. Java算法大全_java贪心算法几个经典例子
  10. 按enter键,快速切换到下一个输入框进行输入