应用密码学课设.docx
- 文档编号:13710279
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:19
- 大小:815.33KB
应用密码学课设.docx
《应用密码学课设.docx》由会员分享,可在线阅读,更多相关《应用密码学课设.docx(19页珍藏版)》请在冰点文库上搜索。
应用密码学课设
《应用密码学》
课程设计
题目:
OpenWrtSSH免密码使用密钥登陆
院系:
数学与计算科学学院
专业:
信息与计算科学
姓名学号:
指导老师:
日期:
2015年01月16日
摘要
OpenWrt是一个嵌入式的Linux发行版,(主流路由器DD-Wrt,Tomato,
OpenWrt三类)。
OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许自定义的设备,以适应任何应用程序。
对于开发人员,OpenWrt是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。
SSH为SecureShell的缩写,由IETF的网络工作小组(NetworkWorkingGroup)所制定;SSH为建立在应用层和传输层基础上的安全协议,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
SSH客户端适用于多种平台。
几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平台,都可运行SSH。
市面上售卖的路由器中大部分为安装了OpenWrt或者由OpenWrt衍生、修改而来的系统。
在日常生活中,用户为了安全或其他原因,需要经常登陆路由器,因此经常会被要求输入密码,便会感觉系统不够人性化。
本文便是利用SSH免密码使用密钥登陆OpenWrt的方法,免去用户频繁在同一机器上输入密钥的繁琐步骤,节省用户的时间,并使系统更加人性化。
关键字:
OpenWrtSSH免密码登陆
Abstract
OpenWrtisanembeddedLinuxdistribution(DD-WRT,Tomato,OpenWrtofthreemainstreamrouters).ProvidesafullywritablefilesystemOpenWrt'spackagemanagement,selectionandconfigurationofoffersfromtheapplicationvendor,andallowscustomequipment,toadapttoanyapplication.
Fordevelopers,OpenWrtistousetheframeworktobuildtheapplication,withouttheneedtoestablishacompletefirmwaretosupport;forusers,thismeansthatitsabilitytohaveafullycustomized,canusethisequipmentwithhithertounknownway.
SSHistheSecureShellabbreviation,bythenetworkworkinggroupofIETF(NetworkWorkingGroup)formulated;SSHsecurityprotocolbasedonapplicationlayerandthetransportlayer,isareliable,providingsecurityprotocolforremoteloginsessionandothernetworkservices.CaneffectivelypreventinformationleakageproblemofremotemanagementintheprocessofusingSSHprotocol.SuitableformultiplatformSSHclient.AlmostallUNIXplatformincludingHP-UX,Linux,AIX,Solaris,Digital,UNIX,Irix,andotherplatforms,canrunSSH.
SystemonthemarketsaleroutermostinstalledOpenWrtorderivedfromOpenWrt,modifiedto.Indailylife,theuserforsecurityorotherreasons,oftenneedtologinrouter,sooftenwillbeaskedtoenterapassword,willfeelthesystemisnotenoughhumanity.ThispaperisthemethodofusingSSHcodeusingthekeyontheOpenWrt,replacingthecumbersomestepsfrequentuserinputkeyonthesamemachine,savingyoutime,andmakethesystemmorehumane.
Keywords:
OpenWrtSSHFreePassword
目录
一、引言1
二、实验原理2
2.1系统环境2
2.2虚拟机软件版本2
2.3OpenWrt版本2
三、实验步骤3
3.1配置虚拟机3
3.2OpenWrt安装与配置5
3.3SSH安装与配置8
四、分析总结11
五、参考文献12
一、引言
OpenWrt项目由2004年1月开始,第一个版本是基于Linksys提供的GPL源码及uclibc中的buildroot项目,这个版本称为stable版,在网上至今仍有很多项目使用这个版本,较为有名Freifunk-Firmware和Sip@Home.
到了2005年初,一些新的开发人员加入了这项目,几个月后他们释出了第一个版本,这和以前版本不同的是,这版本差不多完全舍弃了Linksys的GPL源码,使用了buildroot2作为核心技术,将OpenWrt完全模块化,OpenWrt使用Linux正式发行的核心源码(2.4.30),加上了一些补丁和网络驱动,开发队伍更为OpenWrt添加了许多免费的工具,你可以直拉把Image写入Flash(mtd)里面,设定无线功能和VLAN交换功能,这个版本名为WhiteRussian,而1.0版本大概于2005年底公布。
由于它使用Linux作为操作系统,并公开源码及驱动,在网络上已有很多为它而设计的开源项目,包括HyperWRT,OpenWRT,SIPPhone等等,实在是学习嵌入式Linux的入门级首选。
一般嵌入式Linux的开发过程,你会发现无论是ARM,PowerPC或MIPS的处理器,都必需经过以下的开发过程:
1.创建Linux交叉编译环境2.建立Bootloader3.移植Linux内核4.建立Rootfs(根文件系统)5.安装驱动程序6.安装软件7.调试
SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。
SSH在正确使用时可弥补网络中的漏洞。
客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
SSH有很多非常酷的特性,它们帮你节省的时间肯定会远远大于你用来配置它们的时间。
二、实验原理
2.1系统环境
2.2虚拟机软件版本
VMwareWorkstation10
2.3OpenWrt版本
获得虚拟机硬盘文件,有两种方法:
1)openwrt-x86-generic-combined-ext4.vmdk
下载地址:
http:
//downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/
其他版本下载:
http:
//downloads.openwrt.org/,有三个版本,BarrierBreaker14.07,AttitudeAdjustment12.09,Backfire10.03.1
2)也可以下载非虚拟机磁盘版本,需要在Linux里面自行转换成vmdk虚拟机磁盘格式
下载qemu-img,运行命令sudoapt-getinstallqemu-utils。
若提示找不到包则先执行sudoapt-getupdate,安装完成之后执行命令
qemu-imgconvert-fraw(这里填合适的img映像文件)-Oopenwrt-x86
-generic-combined-ext4.vmdk(这里是vmware的硬盘文件,文件名自己选但扩展名要是.vmdk),转换完成后复制文件到本机(需要安装VMWareTools或vsftpd),以供新建虚拟机时使用。
三、实验步骤
3.1配置虚拟机
1)创建虚拟机
2)选择稍后安装系统,客户机操作系统选择Linux->其他Linux2.6.x内核;
3)重命名虚拟机名称,内存选择256M
4)网络选择NAT形式,硬盘类型选择IDE
5)使用现有的磁盘,打开下载的openwrt-x86-generic-combined-ext4.vmdk
6)会提示转换磁盘格式,点击转换
7)删除不必要的硬件并增加网络适配器,并配置(增加网络适配器这步在局域网内不必要,只是为了能连上Internet)
3.1OpenWrt安装与配置
1)开启虚拟机电源,进入虚拟机
2)更改OpenWrt的密码
(注:
openwrt默认开启telnet但是没开启ssh,当配置了用户名和密码后就默认开启ssh关闭了telnet。
)
查看/etc/shadow文件,可以发现root第五列变成99999,代表密码为永久设置,不会自动更改
3)查看虚拟机VMnet1的设置,默认IPv4地址为192.168.1.1,若不对则在VMWare中修改,
编辑->虚拟网络编辑器->VMNet1。
(注:
可以更改VMnet8,虚拟机都调成dhcp自动分配ip也可以实现IP在同一网段,不过重启后ip可能会改变,会影响登陆,不推荐)
4)修改OpenWrt的网络设置,将网络改成静态IP,桥接网络,地址与VMnet1在同一网段,即:
192.168.1.*,这里改成192.168.1.2
5)改完后重启网络:
6)在另一虚拟机(这里使用debian)中同样更改网络设置如下,与OpenWrt在同一网段下,这里IPv4改为静态192.168.1.133,改完后重启网络设置
(注:
尝试过NAT模式下ping不通不同网段的主机,不能ping通)
7)分别在两个虚拟机下ping对方主机,看是否可以ping通,若不行请重启虚拟机,重新配置,务必使之能通信
在OpenWrt下pingDebian:
在Debian下pingOpenWrt:
3.2SSH安装与配置
1)在Debian下测试ssh功能:
如下图,ssh功能正常,但是还需要输入OpenWrt的密码
(若提示找不到ssh命令则安装ssh包)
2)在Debian下使用ssh-keygen-trsa命令生成公钥
提示输入密码时直接按Enter代表密码为空
3)将公钥拷贝到OpenWrt的ssh目录并更改文件读写权限
命令:
cat~/.ssh/id_rsa.pub|sshroot@192.168.1.2"mkdir-p/etc/dropbear&&chmod700/etc/dropbear&&cat->/etc/dropbear/authorized_keys&&chmod644/etc/dropbear/authorized_keys"
会提示输入OpenWrt的密码,输入之后即可完成ssh配置
(注:
在OpenWrt下默认的ssh软件为dropbear,默认的密匙存放位置为/etc/dropbear,命令中root@192.168.1.2为Openwrt的用户名和IP地址,拷贝文件完成之后需要改变文件的读取权限,以便免密码登陆时有文件的访问权限)
4)确认OpenWrtd的/etc/dropbear目录下是否有公钥文件authorized_keys。
若不存在则检查上面命令是否出错,或者用scp~/.ssh/id_rsa.pubroot@192.168.1.2:
/etc/dropbear/命令或工具拷贝文件到此处,并修改文件名和权限
5)在Debian中测试ssh登陆效果,如下图,不需输入密码即可登录OpenWrt
sshroot@192.168.1.2
6)OpenWrt的SSH免密码登陆完成,可以在Debian下对OpenWrt进行一些操作,完成后可以断开连接。
四、分析总结
关于VMnet1、VMnet8:
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用Host-only模式。
在Host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。
虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(Host-only)虚拟网络的DHCP服务器来动态分配的。
如果你想利用VMware创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择Host-only模式。
在Host-Only网络中,Host-Only网络被用来设计成一个与外界隔绝的网络,其实Host-Only网络和NAT网络非常相似,唯一不同的地方就是在Host-Only网络中,没有用到NAT服务,没有服务器为VMnet1虚拟交换机做路由,就没有办法访问Internet。
1.桥接是最简单的方式,一般是你有一个网关,你的windows主机和你VMWare里的各种unix/linux系统,都通过这个网关来通讯。
2.而主机方式,是在没有网络的情况下,windows主机操作系统能与VMWare虚拟机上的客户操作系统(VPC)正常通讯。
我们从VMWare的VirtualNetworkEdit里可以看出,vnet0是用来实现桥接模式的,vnet1是用来实现主机模式的。
主机和客户机是直接通过vnet1通讯的。
在主机方式下,Windows主机操作系统不需要配置什么了。
关于OpenWrt:
本人购买了一个路由器,型号为:
TP-LinkTD-W8960N,在官网上的路由器支持列表中未找到(在未来支持机型的列表中可以找到,但是需要强制刷机,有很大的风险变砖),因此使用虚拟机的方案搭建实验环境。
关于SSH:
在OpenWrt中,是使用dropbear的SSH客户端,若需要使用特定的、功能更强大的SSH客户端需要修改OpenWrt的源代码,并重新编译和部署,这里实验时间有限,故使用自带的客户端。
五、参考文献
[1]张水平.计算机网络原理.北京交通大学出版社.2006,1
(1):
120-185
[2]冯锐等.SSH权威指南.中国电力出版社.2003,4
(1):
177-190
[3]徐明成.计算机网络原理与应用技术.电子工业出版社.2009,5,
(1):
180-196
[4]王卫亚等.计算机网络:
原理、应用和实现.清华大学出版社,2007,2
(1):
20-50
[5](美)理查德·史蒂文斯,(美)拉戈.UNIX环境高级编程.人民邮电出版社2006,5
(1):
450-486
static访问外网配置
不能设置NETWORK参数,网关设置与虚拟连接方式
后注:
今天在按照Mitchell博客之前的CentOS网络配置的文章配置Linux网卡之后,发现竟然ping不通外网,但是内网ping却是正常的。
一直很纳闷,在网上搜索很久也没有得到答案
关于CentOS网络的具体配置项,可以参考Mitchell博客之前的那篇文章。
现象:
ping内网正常
ping外网IP,域名均无法正常,返回错误:
connect:
Networkisunreachable
后面在无意中看到Linux网络配置有添加网关的命令:
复制代码
代码如下:
routeadddefaultgw192.168.128.2deveth0
按上面操作,添加了默认的网关之后。
再次访问外网一切正常。
有这个现象来看,应该是配置文件中没有配置网关,但是经过确认/etc/sysconfig/network中是配置了GATEWAY地址的,而且GATEWAY的地址也是正确的,在多次重启network之后,只要不手动添加网关,就不能访问外网。
多次仔细确认各个网络配置文件之后,发现在网卡配置文件中(ifcfg-eth0)有一个NETWORK配置项,对于这个配置项,本身作用不是很清楚,因此到官网查看了一下说明:
复制代码
代码如下:
NETWORK=
where
isthenetworkaddress.Thisdirectiveisdeprecated,asthevalueiscalculatedautomaticallywithifcalc.这节奏是告诉我们这个参数不要设置嘛(deprecate),这个值将会由ifcalc自动计算。
既然不用设置,自然去掉。
去掉之后,重启network服务之后,外网竟然神奇的能够访问了。
使用route查看路由表,发现能够自动添加default这条信息了,原来可是一直没有的:
复制代码
代码如下:
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
192.168.128.0*255.255.255.0U000eth0
link-local*255.255.0.0U100200eth0
default192.168.128.20.0.0.0UG000eth0
看来问题正是这个NETWORK参数设置引起的。
至于具体为什么会这样,这个设置会产生什么样的影响还不是很清楚。
TIPs:
为了简单,你也可以将IPADDR,GATEWAY等设置到ifcfg-eth*的文件中,不用将GATEWAY单独设置在network中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 密码学