ldap 全量数据遍历

ldap服务器端默认每次search条目数最多 500 ; 加入我的条目数最多不会超过2000,那么,我是在不想分多次来search,直接把这个限制放大是再好不过的了;配置方法:

/etc/openldap/slapd.conf 中添加:

或者

注意: 这个限制只有管理员账号search时,才会超过500,普通账号search是不能超过500的

man ldapsearch:

yum 相关

关于 /etc/yum.conf

关于/etc/yum.repos.d/

关于yum 源配置格式

eg:

其中:

[base] : 仅仅是个分类,没有特殊含义

name:  是yum源名称

mirrorlist: yum源镜像列表,根据一定规则选择使用某个yum源进行下载,失败则尝试其它yum源

baseurl: yum源地址

gpgcheck: 是否做签名校验

gpgkey: 签名校验使用的公钥

变量:

$releasever: 操作系统发布版本号

$basesearch:  ???

yum中变量有几个?稍后再看,不过也不太重要,基本的知道也够了

关于mirrorlists

eg:mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

mirrorlist 指向的url地址返回的内容格式很简单,每行一个yum源地址,如下:

http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os

国内yum源

centos官方yum源: http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

阿里云yum源: http://mirrors.aliyun.com/

yum仓库格式

yum源比如: http://mirrors.aliyun.com/  那么我在配置yum源的时候写到哪一级目录呢?

yum 会去baseurl下面的repodata中去找仓库的源数据,那么对于阿里云的centos配置应该为:

你会发现这个目录下有一个repodata,yum会先访问

不要以为http://mirrors.aliyun.com/centos/6.7/os/x86_64/Packages/中有rpm包,就把baseurl配置为http://mirrors.aliyun.com/centos/6.7/os/x86_64/Packages/

 

 

关于VPN的一些知识点

  1. openvpn有两种模式:
    1. 一种是网桥模式,
    2. 一种是路由模式
  2. 在计算机网络中,TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    操作系统通过TUN/TAP设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过TUN/TAP设备发送数据。在后种情况下,TUN/TAP设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

    openvpn提供两种类型的虚拟网络接口:TUN和TAP,tun用于建立IP隧道,tap用于建立以太网桥,这两种模式我们也称为路由模式和网桥模式。 TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN模拟了网络层设备,操作第三层数据包比如IP数据封包。

    桥接是在一个子网上面创建一个虚拟的,广域的以太网技术,他相当于连通不同局域网之间的桥梁,桥接的优点是广播可以穿透vpn,允许依赖局域网广播的软件运行,桥接无需配置路由,可以和以太网上的任何协议工作,但是桥接的效率比路由模式要低,而且不容易扩展,使用桥接方式连接远端网络时,客户端被分配一个远端物理以太网的IP地址,从而能够和远端子网的其他机器进行通信,就像是连接在本地一样,

    路由的优点是效率高可扩展,可以更好的调节MTU,路由模式的缺点是广播不能穿越vpn,仅支持ipv4,如果使用桥接模式,C/S两端都必须是tap,如果使用路由模式,C/S两端可以是tun也可以是tap,但是两端必须一致

  3. openvpn默认1小时重新验证一次身份,对于双因素验证的情况而言,秘钥是一次性的,重新验证必然失败,于是就会出现经典的每小时断开一次的问题,解决办法:
    1. server.conf 中配置:
  4. 参考资料:
    1. http://my.oschina.net/guol/blog/39924
    2. http://blog.ihipop.info/2011/05/2393.html
    3. https://openvpn.net/index.php/open-source/documentation/manuals/69-openvpn-21.html

puppet入门实践

版本选择

本来是要选择一个最新版本(当时最新版本是4.3),怎奈官方的yum仓库(https://yum.puppetlabs.com/)中没有最新版本;至少看起来没有4.3;有的是:

https://yum.puppetlabs.com/el/6.5/products/x86_64/

 

https://yum.puppetlabs.com/el/6.5/PC1/x86_64/

 

那么,该如何下载呢?

这里解释一下:

puppet 4之前(目前最新版本3.8)是打包在第一个地址下的,放在products目录;

puppet4是一个大的版本更新(目前是4.3)是打包在PC1那个目录下的,什么叫PC1? 即: Puppet Collection    参考: http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html

 

puppet rpm包说明

puppet4之前:

puppet-  不包含facter、ruby等,这些都是单独的rpm包

puppet-server-  包含一些puppet master需要的一些配置文件(及目录),如下:

puppet-dashboard: 是一个web管理页面

——

puppet4之后:

原来的puppet就变成了puppet-agent了,而且包含facter、ruby、mcollective等rpm包,就是所谓的(All in one)

puppetserver- 和原来的puppet-server不是一个东西,现在的puppetserver 是puppet master的替代品,并且以HTTP REST的方式提供提供服务,java实现的,默认需要内存大小2g,可以在 /etc/sysconfig/puppetserver 中修改

 

安装

  1. 下载对应目录下的 puppetlabs-release-* 的最新版本的rpm,然后rpm -ivh puppetlabs-release-* ,这样就把对应的yum源给安装上了
  2. yum search puppet  可以看到一些puppet的包
  3. 对于puppet4之前
    1. server端:
      1. yum install -y puppet facter puppet-server
    2. client端:
      1. yum install -y puppet facter
  4. 对于puppet4之后
    1. server端(原来的 puppet master虽然4.3中还保留着,但已经不建议使用,提示使用puppetserver)
      1. yum install -y puppetserver
    2. client端
      1. yum install -y puppet-agent

配置

使用

  1. puppet4之前
    1. master
      1. puppet master –no-daemonize   (前台运行,方便调试)
      2. puppet master     (生产上,后台运行)
    2. client
      1. puppet agent –test –server 10.10.10.10    (测试一下)
  2. puppet4之后
    1. master
      1. service puppetserver start
    2. client
      1. ???

批量执行命令

  1. 通过mcollective实现, mcollective 以前需要单独安装,现在已经包含在puppet-agent里面了;不过依赖的activemq需要单独安装: yum install -y activemq

ldap认证逻辑修改笔记

缘起

现在都流行动态码认证了,ldap这个认证领域的老大还是静态密码认证,显得有些过时了,这里试图修改认证部分逻辑已支持动态密码验证。

 

相关代码: servers/slapd/bind.c

编译:

  1. CFLAGS=”-g” ./configure
    openldap依赖bdb,可以用yum安装: yum install -y db4
  2. ./make depend && make
  3. make install STRIP=”

注意: make install时默认是会去掉符号信息的;添加 STRIP=” 选项就不会去掉了(可能你也不需要make install)

开始gdb:

用户名:op->o_req_dn

密码在这里: op->o_request->oq_bind->rb_cred:

下一步就是要把密码修改,其中一部分拿到别的地方做动态密码验证,剩余部分继续给ldap来验证

 

ldap 验证逻辑: