如何在IPFire防火墙上安装OpenSC

本文是我们以前在IPFire防火墙上的工作的延续。 在本教程中,与IPFire项目集成了硬件令牌(如智能卡)及其读者(CCID合规性)的支持。 为IPFire 2.19版本成功编译了以下工具。

PC / SC智能卡守护进程用于使用CCID或专有驱动程序访问Linux平台上的智能卡。 需要CCID智能卡读卡器的驱动程序来访问智能卡。 CCID软件包包含用于Linux / Unix环境的不同智能卡读卡器的驱动程序。 由几个开源工具和库组成的OpenSC项目支持智能卡访问(PKCS#11 API)和管理(PKCS#15文件结构)。 诸如智能卡的硬件令牌可以用于以下目的

  • 安全的Web登录
  • WorkStation登录
  • 文件加密
  • VPN(OpenVPN,L2TP)
  • 电子邮件加密

OpenSC支持的几个智能卡厂商如下。

  • ASEPCOS
  • FTCOSPK01C
  • OpenPGP卡
  • Cyber​​flex
  • CardOs
  • STARCOS

环境设置

对于开发环境的设置,在前面的文章中给出了详细的说明。

IPFire测试shell中的插件

建议在测试shell(类似于Linux终端)中安装IPFire插件,通过在根目录中使用以下命令来调用它。

./make shell

IPFire构建环境中的源包放置在/ usr / src / cache目录中。 本教程的所有必需软件包都已放置在缓存目录中。

pcsc-lite包的源码显示在以下快照中。

在我们开始编译pcsc-lite工具之前,建议使用以下命令安装所需的libudev-dev库

apt-get install libudev-dev

现在,使用以下命令提取源包,并运行./configure脚本,如下所示。

tar -xf pcsc-lite-1.8.18.tar.bz2

如下图所示,configure命令不会产生错误。

现在,只需运行./make./make install命令即可在测试环境中安装pcscd守护程序。

pcsc-lite包的成功安装显示了用于编译CCID包的几个重要路径。

以下屏幕截图显示pcscd在测试环境中在IPFire中运行。

智能卡所需的下一个软件包就是CCID驱动程序包。 如下图所示,CCID包放置在缓存目录中。

以下屏幕截图显示了CCID包的./configure脚本生成的错误。

错误显示配置脚本找不到pcsc-lite。 因此,请使用configure脚本设置PCSC_CFLAGS ,如下所示。

./configure PCSC_CFLAGS=-I/usr/local/include/PCSC

但是,脚本生成另一个错误,因为在IPFire LFS的pkg-config路径下找不到libpcsclite.pc。

因此,首先导出PKG_CONFIG_PATH ,并再次运行configure脚本命令。

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
./configure PCSC_CFLAGS=-I/usr/local/include/PCSC

配置脚本运行的成功输出如下所示。 它显示,脚本找到PCSC的所需文件。

运行./make&./make安装命令完成CCID驱动程序的安装。

/ etc / udev / rules目录中复制智能卡读卡器的udev规则 ,如下所示。

/ etc / udev / rules目录中复制92_pcscd_ccid.rules文件。

以下屏幕截图显示了/ usr / src / cache目录中的OpenSC工具。

运行configure脚本来检查包的依赖关系。

configure脚本的输出显示在以下快照中。

在测试环境中运行OpenBS安装的./make和./make安装命令。

以下屏幕截图显示OpenSC工具已成功安装在IPFire的测试外壳中。

在IPFire的LFS shell中安装所需的工具后,下一步是以IPFire软件包管理器格式(pakfire)构建插件。

汇编IPFire插件

有关IPFire环境的附件构建的详细程序已在前一篇文章的“建筑PSAD插件”部分中给出。

  • 在IPFire设置的lfs目录中也创建了一个也称为lfs脚本的编译脚本。
  • 必须在make.sh脚本中对新插件进行更改。

LFS脚本是为pcsc-lite-1.8.18,ccid-1.4.24和opensc-0.16.0包创建的。 下载软件包的所有lfs脚本,并将它们放在ipfire-2.x的lfs目录下。

上述插件的LFS脚本如下所示。

pcsc-lite

ccid

opensc

构建脚本( make.sh )文件中的更改如下所示。

运行以下命令来构建软件包。

ipfiremake pcsc-lite
ipfiremake ccid
ipfiremake opensc

需要运行以下命令两次来编译新的插件。

./make.sh build

以下屏幕截图显示了新插件的lfs脚本编译时没有错误。

以下屏幕截图显示了第一个生成命令的输出。 在此构建过程中找不到所有三个软件包的根文件。

新插件的三个文件位于日志目录中,具有相同的软件包/文件名称,如下所示。

以下屏幕截图显示,新插件的rootfiles将复制到config/rootfiles/packages 路径。 更改复制的根文件的名称以匹配新插件的lfs名称。 (放在lfs目录下)

cp log/pcsc-lite-1.8.18 config/rootfiles/packages/pcsc-lite
cp log/ccid-1.4.24 config/rootfiles/packages/ccid
cp log/opensc-0.16.0 config/rootfiles/packages/opensc

新插件的根文件包含一个“ + ”符号,必须在运行build命令之前将其删除。

pcsc-lite根文件

ccid根文件

opensc根文件

使用以下sed命令从新包的根文件中删除“ + ”号。

sed -i 's/+//g' config/rootfiles/packages/pcsc-lite
sed -i 's/+//g' config/rootfiles/packages/ccid
sed -i 's/+//g' config/rootfiles/packages/opensc

以下屏幕截图显示已从根文件中删除加号。

PakFire是IPFire的软件包管理系统,由新插件中的安装,卸载和更新程序使用。

src / paks路径中的所有新addon创建目录(与lfs相同),然后复制install.sh,uninstall.sh将src / paks / default /中的一个update.sh脚本从src / paks / pcsc-lite ,src / paks / ccid,src / paks / opensc

再次运行build命令以完成构建过程。

./make.sh build

这一次,忽略所有新插件的rootfiles缺少的消息,因为我们已经在config目录中更新了rootfiles。

最后,以下屏幕截图显示了在packages目录中创建了新的插件( pcsc-lite-1.8.18-2.ipfire,ccid-1.4.24-2.ipfire,opensc-0.16.0-2.ipfire ) 。

安装pakfire包

如下所示,已将编译的软件包复制到/ opt / pakfire / tmp目录中已安装的IPFire系统。

以下屏幕截图显示软件包已在IPFire系统上复制。

通过使用以下命令在IPFire上安装新的插件。

 tar -xvf pcsc-lite-1.8.18-2.ipfire

 tar -xvf ccid-1.4.24-2.ipfire

 tar -xvf opensc-0.16.0-2.ipfire

使用./install.sh脚本在下面的屏幕截图中显示了新插件的安装

pcsc-lite的成功安装如下图所示。

下图显示了CCID智能卡驱动程序的安装。

如下图所示,最终安装了openSC工具,用于管理IPFire系统上的智能卡。

在本教程中,新的插件是在IPFire的开发系统中构建的。 这些新插件用于将智能卡及其读者与开源IPFire项目集成。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏