Debian 10 安装LDAP 并使用LDAP Account Manager (LAM) 管理

一、OpenLDAP安装 安装OpenLDAP如下: apt-get update apt-get install slapd ldap-utils 安装过程中,会要求输入Administrator的密码,这个就是OpenLDAP的 admin 账号密码,记下备用,后面会用到。 二、配置OpenLDAP 这是最麻烦的部分,网上大部分教程都过时了。OpenLDAP在V2.4版本以后,默认已经不通过/etc/ldap/slapd.conf 文件来配置。/etc/ldap/slapd.d 是2.4.x版本新采用的配置文件目录,配置OpenLDAP最正确的姿势是通过ldapmodify命令执行一系列自己写好的ldif文件,而不要修改任何OpenLDAP装好的配置文件。 因为我们后面会使用LAM进行WEB管理,所以,在这时只要修改RootDN和Suffix就可以了。其它的配置交给后面的LAM就可以了。 要想修改RootDN,那么你就自己写这么一个ldif文件,假设给它起名叫RootDN.ldif,然后执行它就可以了: dn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=admin,dc=lostend,dc=com - replace: olcSuffix olcSuffix: dc=lostend,dc=com 怎么执行呢? ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f RootDN.ldif 这么长的命令是什么意思?-Q表示安静执行,-Y和后面的EXTERNAL表示,好吧,我也不知道什么意思,总之需要这样配合,然后-H表示地址,-f表示文件名。几乎所有的ldapmodify命令都这么执行就好了。 再来讲解一下上面的ldif文件的内容。dn表示你要修改什么东西,在这里我们用的是{1}mdb,你的系统不一定是{1}mdb,不管是几,总之你去查一下目录里的内容就好了: ls /etc/openldap/slapd.d/cn=config/ 得到的结果大概如下,不一样也不要害怕: 'cn=module{0}.ldif' 'cn=schema' 'cn=schema.ldif' 'olcBackend={0}mdb.ldif' 'olcDatabase={0}config.ldif' 'olcDatabase={-1}frontend.ldif' 'olcDatabase={1}mdb.ldif' 这里面有一大堆奇奇怪怪的数字,不要担心,其中有一个带什么db.ldif的就是你最终需要修改的数据库文件,我这里是mdb.ldif,你的可能是bdb.ldif,还有人是hdb.ldif,不管什么db,总之你要改的是一个叫db的文件就对了,你可以cat打开看一看,但是不要用vi去修改它。 changetype就是modify,表示我们要修改这个文件。第3行是replace,表示我们要替换里面的某个值,你可以把这个操作理解为mysql数据库的update操作,如果你把第3行改成add,那就是mysql的insert操作了。不过这里我们操作的只是配置文件本身,还牵涉不到添加用户或者更改用户,如果你以为事情就这么简单,那就是你太天真了。 RootDN在这里就表示你整个OpenLDAP系统的管理员用户名是什么,不要奇怪,后面这一砣都是用户名cn=admin,dc=lostend,dc=com,总之cn就是那个用户名字,后面带dc的都是域名。 这里的域名dc=lostend,dc=com ,可以填成你自己的。但是要记住。我们在配置LAM的时候会用到。好了,这里OpenLDAP自己的配置算完成了。 三、安装LDAP Account Manager (LAM) 进入下面网址,下载对应的安装包。这里用的是Debian,下载Debian package。 https://www.ldap-account-manager.org/lamcms/releases 下载完成以后,安装: sudo dpkg -i ldap-account-manager_6.x-x_all.deb 安装的时候,可能会提示缺少依赖,把相关依赖装上就好了。 ...

August 21, 2019 · 1 min · 133 words · Marco

在openwrt下使用autossh时,启动时出现ssh exited with error status 1的解决办法

以前一段时间在openwrt上配置了autossh,手动启动它测试的时候一切正常。但是有一次openwrt重启了,autossh作为自动启动服务在开机启动时,老是在日志里报: user.info autossh[pid]: ssh exited with error status 1; restarting ssh 而且对端服务器一直报错: sshd[pid]: Connection reset by [IP] port [port] [preauth] 就这样一直报错,连接不成功。但是手工重启一下autossh服务又一切正常了。一直比较奇怪。后来在 https://github.com/openwrt/packages/issues/5559 看到有朋友和我一样的问题,找到了原因所在。 autossh在开机启动的时候,找不到$HOME环境变量,默认从根目录下的.ssh中寻找known_hosts 文件进行主机认证。但是根目录下没有这个文件夹。就造成连接不成功了。所以,解决办法就在/etc/init.d/autossh 文件里手工把环境变量写进去。 export HOME=/root 这样,重启的时候就可以自动连接了。至于为什么启动的时候找不到这个环境变量,就没有深究了。

May 21, 2019 · 1 min · 29 words · Marco

tar压缩/解压、压缩加密/解密解压

压缩 tar -zcvf /path/to/file.tar.gz file 解压 tar -zxvf /path/to/file.tar.gz /path/to 压缩加密 tar -zcvf - file | openssl aes-256-cbc -salt -k password -out /path/to/file.tar.gz 解密解压 openssl aes-256-cbc -d -k password -salt -in /path/to/file.tar.gz | tar zxvf - 上面的加密与解密操作在相同版本的openssl操作是没有问题的,但是在不同的版本(比如1.0.2和1.1.0版本之间)对于密钥和IV的生成方法有差异,所以在不同版本之间加密解密就会有问题。所以,在不同版本之间采用AES加解密的时候,需要使用参数支持指定密钥和IV,而不是让openssl自动生成,例子如下: 压缩加密 tar -zcvf - file | openssl aes-256-cbc -K 12345678901234567890 -iv 12345678 -out /path/to/file.tar.gz 解密解压 openssl aes-256-cbc -d -K 12345678901234567890 -iv 12345678 -in /path/to/file.tar.gz | tar zxvf - 在这里,注意AES算法的密钥和初始向量都是128位的,这里-K和-iv后的参数都是16进制表示的,最大长度为32。 即-iv 12345678 指定的初始向量在内存中为 | 12 34 56 78 12 34 56 78 00 00 00 00 00 00 00 00 |。

December 13, 2018 · 1 min · 87 words · Marco

openwrt 18.06 在电信PPPOE可以获取前缀(dhcpv6-pd)时的ipv6设置

最近电信更新了系统,开通了ipv6的支持,路由拨号后,可能获得一个/60的前缀。这个时候参考网上的一些设置教程,大多是通过中继的设置就不太适合了。 可以获取dhcpv6-pd的情况下,在openwrt下设置其实非常简单: 1、WAN口设置好PPPOE后保持默认设置; 2、WNA6也保持默认设置,如图: 3、LAN口的IPV6设置为RA:服务器模式,DHCPv6:服务器模式,NDP:禁用,如下图: 4、最后检查 /etc/config/network 文件中的 config interface ‘wan’ 段下面: option ipv6 'auto' PS:如果上面设置还有问题,在接口界面把IPv6 ULA前缀设成空白: 这样就可以了,不用像网上教程说的那么麻烦的,很多教程基本上是为不能获得前缀的情况下准备的。

November 2, 2018 · 1 min · 18 words · Marco

How to trace IPTables in RHEL7 / CENTOS7

If you are debugging IPTables, it is handy to be able to trace the packets while it traverses the various chains. I was trying to find out why port forwarding from the external NIC to a virtual machine attached to a virtual bridge device was not working. You need to perform the following preparations: Load the (IPv4) netfilter log kernel module: # modprobe nf_log_ipv4 Enable logging for the IPv4 (AF Family 2): ...

August 14, 2018 · 3 min · 591 words · Marco

周杰伦 - 安静

周杰伦 - 安静 词/曲:周杰伦 只剩下钢琴陪我 弹了一天 睡着的大提琴 安静的旧旧的 我想你已表现的 非常明白 我懂我也知道 你没有舍不得 你说你也会难过 我不相信 牵着你陪着我 也只是曾经 希望他是真的 比我还要爱你 我才会逼自己离开 你要我说多难堪 我根本不想分开 为什么还要我用 微笑来带过 我没有这种天份 包容你也接受他 不用担心的太多 我会一直好好过 你已经远远离开 我也会慢慢走开 为什么我连分开 都迁就着你 我真的没有天份 安静的没这么快 我会学着放弃你 是因为我太爱你 只剩下钢琴陪我 弹了一天 睡着的大提琴 安静的旧旧的 我想你已表现的 非常明白 我懂我也知道 你没有舍不得 你说你也会难过 我不相信 牵着你陪着我 也只是曾经 希望他是真的 比我还要爱你 我才会逼自己离开 你要我说多难堪 我根本不想分开 为什么还要我用 微笑来带过 我没有这种天份 包容你也接受他 不用担心的太多 我会一直好好过 你已经远远离开 我也会慢慢走开 为什么我连分开 都迁就着你 我真的没有天份 安静的没这么快 我会学着放弃你 是因为我太爱你 你要我说多难堪 我根本不想分开 为什么还要我用 微笑来带过 ...

August 5, 2018 · 1 min · 82 words · Marco

Ubuntu/Debian 修改内核Kernel开机默认启动顺序

一. 显示内核的顺序 grep 'menuentry' /boot/grub/grub.cfg 二. 修改/etc/default/grub中 GRUB_DEFAULT=0 改为 GRUB_DEFAULT=内核顺序 特别的,对于有二级菜单的,Previous linux versions,注意需要有引号 GRUB_DEFAULT= “Previous Linux versions>Ubuntu, with Linux 3.2.0-18-generic-pae” GRUB_DEFAULT= “Previous Linux versions>0” GRUB_DEFAULT= “2>0” GRUB_DEFAULT= “2>Ubuntu, with Linux 3.2.0-18-generic-pae” 三. 然后使用命令 sudo update-grub 四. 重启后,使用命令uname -r查看,内核即为你想要的内核

July 25, 2018 · 1 min · 38 words · Marco

Microsoft Network Monitor指定进程抓包

Microsoft Network Monitor是微软公司开发的一款Windows下的网络封包工具,功能类似与著名的封包工具Wireshark。 目前最新版本是3.4,已经8年没有更新了。看介绍上说,支持WinXP SP3到最新的Win10操作系统(Win10是自己测试可用)。 Wireshark很强大,毋庸置疑,但是有个遗憾就是一直都不支持过滤某个进程的网络封包。 之前也找过很多可以过滤某个进程的封包工具,大多都是注入dll去hook系统动态库ws2_32.dll的socket相关函数去实现的。 虽然也能实现功能,但是感觉跟驱动级的封包过滤工具相比,还是有点Low。 Microsoft Network Monitor的启动界面: 左下角蓝色区域,可以限定过滤哪个网络适配器的封包,左上角点击New Capture开始一个新的封包捕获。 开始新的捕获之后,可以点击Capture Settings,进行封包捕获的一些高级过滤配置,限定指定进程的封包也在这里设置。 输入过滤表达式: Conversation.ProcessName.Contains(“chrome.exe”) 并点击Apply,可以过滤只显示Chrome浏览器的封包。 保存后点击Start开始捕获封包。 备注: 在Windows Vista以及之上的系统版本,需要管理员身份运行,才能获取到进程名称。 参考链接: Network Monitor Conversation Filtering

May 9, 2018 · 1 min · 27 words · Marco

git仓库删除所有提交历史记录,成为一个干净的新仓库

把旧项目提交到Git上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息。如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢? 1.Checkout git checkout --orphan latest_branch 2. Add all the files git add -A 3. Commit the changes git commit -am "commit message" 4. Delete the branch git branch -D master 5.Rename the current branch to master git branch -m master 6.Finally, force update your repository git push -f origin master 当然,可以在push之前,需要切换一下远程仓库地址,可以使用如下命令: git remote set-url origin url

April 18, 2018 · 1 min · 57 words · Marco

[转载]GPG 与端到端加密:论什么才是可以信任的

https://jysperm.me/2017/09/gpg-and-e2ee/

April 12, 2018 · 1 min · word · Marco