Netlogon服务为域控制器注册所有的srv资源纪录。 Asics Femme Pas Cher 这些记录出现在DNS服务器的正向查询区域你的域名中的_msdcs, _sites, _tcp, and _udp等文件夹中。 asics kinsei 6 uomo Marcus Mariota – Oregon Ducks Jerseys 其他计算机利用这些记录查询域活动目录相关的信息。 Arizona Wildcats Jerseys Running Asics Sneakers Pour Femme “网络登录”系统服务维护计算机和域控制器之间的安全通道,对用户和服务进行身份验证。 asics tiger Hollister Magasin 它将用户的凭据传递给域控制器,然后返回用户的域安全标识符和用户权限。 Air Max Tailwind Canotte Los Angeles Clippers 这通常称为 pass-through 身份验证。 nike tn pas cher Minnesota Timberwolves “网络登录”被配置为仅在成员计算机或域控制器加入域时自动启动。 nike tn requin pas cher asics pas cher 在 Windows 2000 Server 系列和 Windows Server 2003 系列中,“网络登录”发布 DNS 中的服务资源定位器记录。 Cheap Nike shoes nike trainers sale 当此服务运行时,它依赖“服务器”服务和“本地安全机构”服务来侦听传入的请求。 New Balance 446 męskie 在域成员计算机上,“网络登录”使用命名管道上的 RPC。 Oregon Ducks nike air max Flyknitdamskie 在域控制器上,它使用命名管道上的 RPC、RPC over TCP/IP、邮筒以及轻型目录访问协议 (LDAP)。
一、编写spec脚本 由前面的日志了解到,生成rpm除了源码外,最重要的就是懂得编写.spec脚本。rpm建包的原理其实并不复杂,可以理解为按照标准的格式整理一些信息,包括:软件基础信息,以及安装、卸载前后执行的脚本,对源码包解压、打补丁、编译,安装路径和文件等。 chaussures nike pas cher 实际过程中,最关键的地方,是要清楚虚拟路径的位置,以及宏的定义。 Asics Aoldes 二、关键字 spec脚本包括很多关键字,主要有:引用Name: 软件包的名称,后面可使用%{name}的方式引用 Summary: 软件包的内容概要 Version: 软件的实际版本号,例如:1.0.1等,后面可使用%{version}引用 Release: 发布序列号,例如:1linuxing等,标明第几次打包,后面可使用%{release}引用 Group: 软件分组,建议使用标准分组 License: 软件授权方式,通常就是GPL Source: 源代码包,可以带多个用Source1、Source2等源,后面也可以用%{source1}、%{source2}引用 BuildRoot: 这个是安装或编译时使用的“虚拟目录”,考虑到多用户的环境,一般定义为: %{_tmppath}/%{name}-%{version}-%{release}-buildroot 该参数非常重要,因为在生成rpm的过程中,执行make install时就会把软件安装到上述的路径中,在打包的时候,同样依赖“虚拟目录”为“根目录”进行操作。后面可使用$RPM_BUILD_ROOT 方式引用。 air max 2017 dames URL: 软件的主页 Vendor: 发行商或打包组织的信息,例如RedFlag Co,Ltd Disstribution: 发行版标识 Patch: 补丁源码,可使用Patch1、Patch2等标识多个补丁,使用%patch0或%{patch0}引用 Prefix: %{_prefix} 这个主要是为了解决今后安装rpm包时,并不一定把软件安装到rpm中打包的目录的情况。这样,必须在这里定义该标识,并在编写%install脚本的时候引用,才能实现rpm安装时重新指定位置的功能 Prefix: %{_sysconfdir} 这个原因和上面的一样,但由于%{_prefix}指/usr,而对于其他的文件,例如/etc下的配置文件,则需要用%{_sysconfdir}标识 Build Arch: 指编译的目标处理器架构,noarch标识不指定,但通常都是以/usr/lib/rpm/marcros中的内容为默认值 Requires: 该rpm包所依赖的软件包名称,可以用>=或= 1.0.20 zlib ※“>=”号两边需用空格隔开,而不同软件名称也用空格分开还有例如PreReq、Requires(pre)、Requires(post)、Requires(preun)、Requires(postun)、BuildRequires等都是针对不同阶段的依赖指定 Provides: 指明本软件一些特定的功能,以便其他rpm识别 Packager: 打包者的信息 %description 软件的详细说明 三、spec脚本主体 spec脚本的主体中也包括了很多关键字和描述,下面会一一列举。我会把一些特别需要留意的地方标注出来。 Air Jordan Retro 12 %prep 预处理脚本 %setup -n %{name}-%{version} 把源码包解压并放好通常是从/usr/src/asianux/SOURCES里的包解压到/home/litao/rpmbuild/build/%{name}-%{version}中。一般用%setup -c就可以了,但有两种情况:一就是同时编译多个源码包,二就是源码的tar包的名称与解压出来的目录不一致,此时,就需要使用-n参数指定一下了。 %patch 打补丁通常补丁都会一起在源码tar.gz包中,或放到SOURCES目录下。一般参数为: %patch -p1 使用前面定义的Patch补丁进行,-p1是忽略patch的第一层目录 %Patch2 -p1 -b xxx.patch 打上指定的补丁,-b是指生成备份文件 ◎补充一下 引用%setup 不加任何选项,仅将软件包打开。 adidas original zx 700 femme %setup -n newdir 将软件包解压在newdir目录。 %setup -c 解压缩之前先产生目录。 All Star 2015 %setup -b num 将第num个source文件解压缩。 %setup -T 不使用default的解压缩操作。 %setup -T -b 0 将第0个源代码文件解压缩。 Nike Roshe Run Motif Homme %setup -c -n newdir 指定目录名称newdir,并在此目录产生rpm套件。 %patch 最简单的补丁方式,自动指定patch level。 New Balance Baratas %patch 0 使用第0个补丁文件,相当于%patch ?p 0。 asics gel pulse 7 damskie %patch -s 不显示打补丁时的信息。 %patch -T 将所有打补丁时产生的输出文件删除。 %configure 这个不是关键字,而是rpm定义的标准宏命令。 Under Armour Micro G Torcia 意思是执行源代码的configure配置在/home/litao/rpmbuild/build/%{name}-%{version}目录中进行 ,使用标准写法,会引用/usr/lib/rpm/marcros中定义的参数。 Nike Kobe Shoes 另一种不标准的写法是,可参考源码中的参数自定义,例如:引用CFLAGS=”$RPM_OPT_FLAGS” CXXFLAGS=”$RPM_OPT_FLAGS” ./configure –prefix=%{_prefix} %build 开始构建包在/home/litao/rpmbuild/build/%{name}-%{version}目录中进行make的工作 ,常见写法:引用make %{?_smp_mflags} OPTIMIZE=”%{optflags}” 都是一些优化参数,定义在/usr/lib/rpm/marcros中 %install 开始把软件安装到虚拟的根目录中在/home/litao/rpmbuild/build/%{name}-%{version}目录中进行make install的操作。这个很重要,因为如果这里的路径不对的话,则下面%file中寻找文件的时候就会失败。 nike air max 2016 dames 常见内容有: %makeinstall 这不是关键字,而是rpm定义的标准宏命令。 Womens Air Jordan 13 也可以使用非标准写法:引用make DESTDIR=$RPM_BUILD_ROOT install 或引用make prefix=$RPM_BUILD_ROOT install 需要说明的是,这里的%install主要就是为了后面的%file服务的。 Maglie Atlanta Hawks 所以,还可以使用常规的系统命令:引用install -d $RPM_BUILD_ROOT/ cp -a * $RPM_BUILD_ROOT/ %clean 清理临时文件通常内容为:引用[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf “$RPM_BUILD_ROOT” rm -rf $RPM_BUILD_DIR/%{name}-%{version} ※注意区分$RPM_BUILD_ROOT和$RPM_BUILD_DIR: $RPM_BUILD_ROOT是指开头定义的BuildRoot,而$RPM_BUILD_DIR通常就是指/home/litao/rpmbuild/build,其中,前面的才是%file需要的。 %pre rpm安装前执行的脚本 %post rpm安装后执行的脚本 %preun rpm卸载前执行的脚本 %postun rpm卸载后执行的脚本 %files 定义那些文件或目录会放入rpm中这里会在虚拟根目录下进行,千万不要写绝对路径,而应用宏或变量表示相对路径。 如果描述为目录,表示目录中除%exclude外的所有文件。 %defattr (-,root,root) 指定包装文件的属性,分别是(mode,owner,group),-表示默认值,对文本文件是0644,可执行文件是0755 %exclude 列出不想打包到rpm中的文件 ※小心,如果%exclude指定的文件不存在,也会出错的。
Roshe Run Nero Uomo
%changelog 变更日志 四、范例下面的.spec脚本是一个比较简单的范例,其作用是把一个目录中的所有文件都打包为一个rpm包。 1、前期工作 我们假设需要打包的目录就是我们的源码文件。这样,可以暂时忽略比较麻烦的打补丁、编译等问题,而且也是一种常见的方式。 在编写.spec脚本前,需要准备好“源码”,也就是目录,内容比较简单:引用[root@mail html]# ll total 4 drwxr-xr-x 3 root root 4096 Jun 4 14:45 demo [root@mail html]# ll demo/ total 4 drwxr-xr-x 3 root root 4096 Jun 4 14:45 images -rw-r–r– 1 root root 0 Jun 4 14:45 index.html 因为rpm只认tar.gz格式,所以,必须打包好并移动到SOURCES目录中:引用[root@mail html]# tar czvf demo.tar.gz demo/ demo/ demo/images/ demo/images/logo.gif/ demo/index.html [root@mail html]# mv demo.tar.gz /usr/src/asianux/SOURCES/ 2、demo.spec的内容 准备工作完成,下面就是范例用的脚本内容:[root@mail html]# cd /home/litao/rpmbuild/SPECS/ [root@mail SPECS]# cat demo.spec引用Summary: Test package for LinuxFly webblog Name: suite Version: 1.0.0 Release: 1 License: GPL Group: System Source: demo.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root Url: http://www.linuxfly.org Packager: Linuxing Prefix: %{_prefix} Prefix: %{_sysconfdir} %define userpath /var/www/html/demo %description Just a test rpm suite. %prep %setup -c %install install -d $RPM_BUILD_ROOT%{userpath} cp -a %{name}* $RPM_BUILD_ROOT%{userpath} %clean rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_DIR/%{name}-%{version} %files %defattr(-,root,root) %{userpath} 下载: 下载文件点击这里下载文件 ※特别需要注意的是:%install部分使用的是绝对路径,而%file部分使用则是相对路径,虽然其描述的是同一个地方。千万不要写错。 五、其他 1、扩展 虽然上面的范例很简陋,而且缺少%build部分,但实际上只要记住两点: a)就是%build和%install的过程中,都必须把编译和安装的文件定义到“虚拟根目录” 中。引用%build make -f admin/Makefile.common cvs ./configure –prefix=%{_prefix} –enable-final –disable-debug \ –with-extra-includes=%{_includedir}/freetype2 –includedir=%{_includedir} make %install rm -fr $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install cp -r $RPM_BUILD_ROOT%{_datadir}/apps/kolourpaint/icons/hicolor/* $RPM_BUILD_ROOT%{_datadir}/icons/crystalsvg/ b)就是%file中必须明白,用的是相对目录 引用%files %defattr(-,root,root) %{_bindir} %{_libdir} %{_datadir} %exclude %{_libdir}/debug 如果把 引用%files %defattr(-,root,root) %{_bindir} 写成 引用%files %defattr(-,root,root) /usr/bin 则打包的会是根目录下的/usr/bin中所有的文件。 2、一些rpm相关信息 rpm软件包系统的标准分组:/usr/share/doc/rpm-4.3.3/GROUPS 各种宏定义: /usr/lib/rpm/macros 已经安装的rpm包数据库: /var/lib/rpm 如果要避免生成debuginfo包:这个是默认会生成的rpm包。 Nike Air Max 1
则可以使用下面的命令: echo ‘%debug_package %{nil}’ >> ~/.rpmmacros 如果rpm包已经做好,但在安装的时候想修改默认路径,则可以: rpm -ivh –prefix=/opt/usr xxx.rpm 又或者同时修改多个路径: rpm xxx.rpm –relocate=/usr=/opt/usr –relocate=/etc=/usr/etc 3、制作补丁 详细看参考: [原]使用diff同patch工具 4、如何编写%file段 由于必须在%file中包括所有套件中的文件,所以,我们需要清楚编译完的套件到底包括那些文件?常见的做法是,人工模拟一次编译的过程: ./configrue –prefix=/usr/local/xxx make make DESTDIR=/usr/local/xxx install 或 make prefix=/usr/local/xxx install 这样,整个套件的内容就会被放到/usr/local/xxx中,可根据情况编写%file和%exclude段。 ※当然,这个只能对源码按GNU方式编写,并使用GNU autotool创建的包有效,若自定义Makefile则不能一概而论。 5、关于rpm中的执行脚本 如果正在制作的rpm包是准备作为放到系统安装光盘中的话,则需要考虑rpm中定义的脚本是否有问题。由于系统在安装的时候只是依赖于一个小环境进行,而该环境与实际安装完的环境有很大的区别,所以,大部分的脚本在该安装环境中都是无法生效,甚至会带来麻烦的。 New Balance 1500 mujer 所以,对于这样的,需要放到安装光盘中的套件,不加入执行脚本是较佳的方法。 Nike Air Max 2016 Heren blauw 另外,为提供操作中可参考的信息,rpm还提供了一种信号机制:不同的操作会返回不同的信息,并放到默认变量$1中。
Posted in Linux
|
Tagged rpm, spec编写规范, 企顺, 包管理, 李伟斌, 红帽
|
VPN(Virtual Private Network)虚拟专用网,指在公共网络(如Internet)上构建临时的、安全的逻辑网络的技术。机构遍布各地的公司,尤其跨越国家的公司,可以通过VPN接入总部网络。VPN利用了现有的公共网络资源,从而节省了公司租用运营商跨省、跨海专线的费用。分支机构网络通过VPN接入总部后,就好比与总部网络接入同一个局域网,可访问总部网络能访问的各项资源。另外,为保证数据不在网络(尤其是公共网络)上被窃取,通过VPN技术实现数据加密传送。需要澄清的一点是,VPN技术有多种,并非所有的VPN标准均具有高安全性。
主流开源VPN技术:
IPSec VPN
IPSec (IP SECURITY)是为实现VPN 功能而最普遍使用的协议。通过相应的隧道技术,可实现VPN。IPSec有两种模式:隧道模式和传输模式。IPSec 不是一个单独的协议,它给出了应用于IP 层上网络数据安全的一整套体系结构。该体系结构包括认证头协议(Authentication Header,简称为AH)、封装安全负载协议(EncapsulatingSecurity Payload,简称为ESP)、密钥管理协议(Internet Key Exchange,简称为IKE)和用于网络认证及加密的一些算法等。IPSec 规定了如何在对等体之间选择安全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源认证、数据加密等网络安全服务。
在具体的使用中,Linux实现使用IPSec的软件是:Free S/WAN http://www.freeswan.org/ 。FreeS/WAN不支持NAT(Network Address Translation,网络地址翻译)和IP地址伪装用于加密通道通信。
SSL VPN
IPSec VPN和SSL VPN是两种不同的VPN架构,IPSec VPN是工作在网络层的,提供所有在网络层上的数据保护和透明的安全通信,而SSL VPN是工作在应用层(基于HTTP协议)和TCP层之间的,从整体的安全等级来看,两者都能够提供安全的远程接入。但是,IPSec VPN技术是被设计用于连接和保护在信任网络中的数据流,因此更适合为不同的网络提供通信安全保障,而SSL VPN则更适合应用于远程分散移动用户的安全接入。
一般说来,SSL VPN相对于后者部署和实施成本低。在设计上,IPSec VPN是一种基础设施性质的安全技术。这类VPN的真正价值在于,它们尽量提高IP环境的安全性。可问题在于,部署IPSec需要对基础设施进行重大改造,以便远程访问。好处就摆在那里,但管理成本很高。IPSec安全协议方案需要大量的IT技术支持,包括在运行和长期维护两个方面。在大的企业通常有几个专门的员工为通过IPSec安全协议进行的VPN远程访问提供服务。IPSec VPN最大的难点在于客户端需要安装复杂的软件,而且当用户的VPN策略稍微有所改变时,VPN的管理难度将呈几何级数增长。SSL VPN则正好相反,客户端不需要安装任何软件或硬件,使用标准的浏览器,就可通过简单的SSL安全加密协议,安全地访问网络中的信息。SSL VPN避开了部署及管理必要客户软件的复杂性和人力需求;SSL在Web的易用性和安全性方面架起了一座桥梁,目前对SSL VPN公认的好处是:
简单。它不需要配置,可以立即安装、立即生效。客户端不需要麻烦的安装,直接利用浏览器中内嵌的SSL协议就行;
兼容性。传统的IPSec VPN对客户端采用的操作系统版本具有很高的要求,不同的终端操作系统需要不同的客户端软件,而SSL VPN则完全没有这样的麻烦。
因此,SSL VPN强调的优势其实主要集中在VPN客户端的部署和管理上,我们知道SSL VPN一再强调无需安装客户端,主要是由于浏览器内嵌了SSL协议,也就是说是基于B/S结构的业务时,可以直接使用浏览器完成SSL的VPN建立。
OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。OpenVPN的优点是支持多种常用应用系统。目前版本支持Linux。 Windows 2000/XP and higher。 OpenBSD。 FreeBSD。 NetBSD。 Mac OS X。 and Solaris。支持多种客户端连接模式。可以通过GUI 便捷的操作OpenVPN 工作在OSI layer 2 或 3 使用标准的 SSL/TLS 协议。 可以通过certificates 或smart cards 认证。加密强度较高,不易在传输通路上被人劫持破解信息资讯。OpenVPN的缺点是使用SSL应用层加密,传输效率要低于IPSec传输的VPN软件
摘自
http://network.51cto.com/art/201209/357940.htm