Gitlab集成进freeIPA进行统一认证

接上一篇,Freeipa接完confluence,接下来是接入Gitlab. 先下结论:同样道理,也是存在先有 Gitlab 账户、然后才有的 FreeIPA LDAP 目录,这也不要紧,因为 Gitlab 同样支持 LDAP 认证方式的用户与现有用户进行合并。 举个例子,如果我已经在 Gitlab 中创建了用户名为 zhangranrui、邮箱为 zhangranrui@rendoumi.com 的用户,那么我在 LDAP 目录中只需要把 mail 字段也写成 zhangranrui@rendoumi.com 即可被 Gitlab 识别成同一用户。或者说,我们可以在 Gitlab 中增加 LDAP 目录中的 mail 字段的邮箱(Gitlab 支持同一用户绑定多个邮箱),这样在 Gitlab 中使用 LDAP 认证的时候也会被视为同一用户。跟 Confluence 是一模一样的。 注意:这样改了之后,无论登录或是拉取代码,就只能使用LDAP的账号密码,不能使用旧的 GitLab Standard 的账号。 我们的 Gitlab 版本比价老11.1.0,所以改的是 gitlab.yml ldap: enabled: true servers: main: # 'main' is the GitLab 'provider ID' of this LDAP server label: 'LDAP' host: 'freeipa.bybon.cn' port: 389 uid: 'uid' encryption: 'plain' # "start_tls" or "simple_tls" or "plain" verify_certificates: false ca_file: '' ssl_version: '' bind_dn: 'uid=admin,cn=users,cn=accounts,dc=bybon,dc=cn' password: 'xxxxxx' timeout: 10 active_directory: false allow_username_or_email_login: false block_auto_created_users: false base: 'dc=bybon,dc=cn' user_filter: '(&(objectclass=inetorgperson)(memberOf=cn=gitlab-users,cn=groups,cn=accounts,dc=bybon,dc=cn))' attributes: username: ['uid'] email: ['mail'] name: 'displayName' first_name: 'givenName' last_name: 'sn' lowercase_usernames: false 新版本的话,按字段比较即可。注意上面,我是提前建立了一个 gitlab-users 的组,把用户先都放进组里,这样方便管理。 ...

2023年02月17日 · 1 分钟 · 116 字 · 八戒

Confluence集成进freeIPA进行统一认证

公司决定用统一用户管理系统,那必然是微软的 AD 和开源的 LDAP 二选一了 自然用 Freeipa 作为首选。 花时间仔细调研了一下,先说结论: 如果 confluence 已经有很多用户,那么对不起,这些用户的密码都必须通知到个人,强制进行修改,旧有的密码完全无法导出(除非一个一个人问出来)。 confluence 实际上是用了一个内置的目录软件来管理用户的,用户唯一存在的凭据就是邮箱。 confluence 支持同时从多个目录树中按照顺序来查询用户,查询到的结果会合并。举例来说,排第一的目录树是freeipa,排第二位的目录树是内置目录,两个目录树都有一个用户,两条记录的邮件是一致的,那么会在排第一的 freeipa 树中认证用户,但会把两个目录树中用户的信息拼接合并起来总体返回。 这样就明白了把,我们只用第一个 freeipa 目录树来认证用户,原有的组权限还是用第二个内置目录树中的信息,保持两棵树中用户的 mail 保持一致即可,步骤如下。 我们首先要提前在freeIPA里面建立两个组: confluence-administrators confluence-users 然后跑到 Confluence 里,用户目录,添加一个 freeipa 的目录服务放在前面 详细配置的参数如下: 配置如下: Server Settings: - Namel: freeipa - Directory Type: OpenLDAP - Server: example.com - Port: 389 - Use SLL: false - Username: uid=admin,cn=users,cn=accounts,dc=bybon,dc=cn - Password: <insert password here> LDAP Schema: - Base DN: dc=bybon,dc=cn - Additional User DN: cn=users,cn=accounts - Additional Group DN:cn=groups,cn=accounts LDAP Permissions: Select Read/Write Advanced Settings: Default User Schema Settings - User Object Class: inetorgperson - User Object Filter: (&(objectclass=inetorgperson)(memberOf=cn=confluence-users,cn=groups,cn=accounts,dc=bybon,dc=cn)) - User Name Attribute: uid - User Name RDN Attribute: uid - User First Name Attribute: giveName - User Last Name Attribute: sn - User Display Name Attribute: displayName - User Email Attribute: mail - User Password Attribute: userPassword - User Password Encryption: SHA - User Unique ID Attribute: uid Group Schema Settings - Group Object Class: groupofnames # all lowercase - Group Object Filter: (objectclass=groupofnames) # all lowercase - Group Name Attribute: cn - Group Description Attribute: description Membership Schema Settings - Group Members Attribute: member #lowercase - User Membership Attribute:memberOf 放全中文的图如下: ...

2023年02月16日 · 2 分钟 · 228 字 · 八戒

traefik自动签发并续费证书+端口转发

nginx和traefik都可以做ingress,在入口处做证书的卸载,并转发tcp、udp、https、http流量 nginx是比较通常的做法,traefik配置比较简单,尤其是配置自动续签的证书 wget https://github.com/traefik/traefik/releases/download/v2.4.8/traefik_v2.4.8_linux_amd64.tar.gz 解压释放出来traefik文件,建立目录/export/servers/traefik 结构如下: traefik.yml log: level: DEBUG api: insecure: false dashboard: true entryPoints: http: address: ":80" #http: # redirections: # entryPoint: # to: https # scheme: https https: address: ":443" certificatesResolvers: letsEncrypt: acme: storage: /export/servers/traefik/acme.json email: zhangranrui@rendoumi.com tlsChallenge: {} httpChallenge: entryPoint: http providers: file: directory: /export/servers/traefik/dynamic watch: true 上面我们定义了log的level为DEBUG,并且开放了dashboard 定义了2个入口,http和https,可以直接用中间件强制http跳转https 然后定义了letsEncrypt的证书机构 最后定义了动态监控 /export/servers/traefik/dynamic 目录,如果下面有增加文件会自动更新配置。 然后再dynamic目录下定义转发routes 注意命名文件,test7是域名,01是序列号,文件内容中svc的序列号最好跟文件名一致,如果多文件重复会导致配置不可用!!! test7-01.yml http: routers: https_01: rule: "Host(`test7.ddky.com`)" service: svc_01 tls: certresolver: letsEncrypt http: rule: "Host(`test7.ddky.com`)" service: svc_01 entryPoints: - http services: svc_01: loadBalancer: servers: - url: "http://172.16.8.1:80" test8-02.yml ...

2023年01月31日 · 1 分钟 · 139 字 · 八戒

运维方案之canal数据库同步

普遍的大数据抽数的方式都是从散落在各个地方的 MySQL 数据库中开账号,然后把数据同步过来。 这不,大数据的同事提出了一个需求,想把某个库中的某个表的数据单独同步到大数据的统一库中的某个表中。 研究了一个星期,canal 的配置对运维来说非常的不友好,除非用它那个 admin 的 dashboard,但是运维通常是 cli 界面,谁没事装个 dashboard 来配置呢,太 low 了。 用的是 canal 1.1.5 的版本,不能升级,升级后 java 不对了。还没有到用 1.1.6 的时候! 背景: 源数据库:10.8.2.12 库:xxl_job 表:demotable666 目的数据库:10.8.2.17 库:xxl_job_bak 表:demotable666 而且不用任何的Zookeeper、Kafka、RabbitMQ的中间件,越简洁越好。 一、安装canal wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.adapter-1.1.5.tar.gz #都装到 /app 目录下 mkdir /app mkdir /app/deploy mkdir /app/adapter cd /app/deploy tar zxvf canal.deployer-1.1.5.tar.gz cd /app/adapter tar zxvf canal.adapter-1.1.5.tar.gz 二、MySQL源准备 # /etc/my.cnf 加入以下几项并重启 [mysqld] log-bin=mysql-bin # Start log bin. binlog_format=ROW # Log format. server-id=1 # Server id,different from slave. 授权binlog同步: ...

2023年01月15日 · 3 分钟 · 444 字 · 八戒

seafile配搭onlyoffice的安装

之前公司一直用的是 seafile 来保存文档,非常好用,也出过一次大事,一个离职的员工清空电脑,然后直接把sefaile文件夹也同步清空了,好在有版本,最后找了回来。 换到新公司,财务也提了共享云盘的要求,还要求能多人同时在线编辑。 那就试着搭建 seafile + onlyoffice 了,同时要求提高安全性,在网上搜索了一圈,没几个对的,尤其是对https这一块,花了2天时间搭建,记录一下整个过程: 一、下载seafile: 没有选定高版本的,最新版本的变化太多,缺省全部都安装到 /app 目录下 wget https://download.seadrive.org/seafile-server_7.0.0_x86-64.tar.gz tar zxvf seafile-server_7.0.0_x86-64.tar.gz mkdir /app mv seafile-server-7.0.0 /app 二、设定CentOS7 依然活在 CentOS 7.10 的时代,再往上升级,要升到 rokey linux 了 提醒:seafile 的安装根据版本不同,yum 装的东西也不尽然相同的,要去官方文档看 yum install python python-setuptools MySQL-python python-urllib3 python-ldap -y 三、安装MySQL数据库 这个就仁者见仁、智者见智了,我现在的方式都是二进制装,选用的是 mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz 安装的, tar zxvf mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz mv mysql-5.6.51-linux-glibc2.12-x86_64 /app yum -y install autoconf libaio* cat<<EOF>/etc/my.cnf [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 socket=/tmp/mysql.sock [mysqld] skip-name-resolve #设置3306端口 port = 3306 socket=/tmp/mysql.sock # 设置mysql的安装目录 basedir=/app/mysql-5.6.51-linux-glibc2.12-x86_64/ # 设置mysql数据库的数据的存放目录 datadir=/app/mysql-5.6.51-linux-glibc2.12-x86_64/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB #lower_case_table_name=1 max_allowed_packet=16M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES EOF groupadd -g mysql useradd -g mysql mysql # 初始化DB cd /app/mysql-5.6.51-linux-glibc2.12-x86_64/ /app/mysql-5.6.51-linux-glibc2.12-x86_64/scripts/mysql_install_db --user=mysql #建立 /etc/init.d/mysql 的软链接 mysql -> /app/mysql-5.6.51/support-files/mysql.server #启动 /etc/init.d/mysql start # 安全设置DB cd /app/mysql-5.6.51-linux-glibc2.12-x86_64/ /app/mysql-5.6.51-linux-glibc2.12-x86_64/bin/mysql_secure_installation 四、准备onlyoffice 这里有大坑啊,其实onlyoffice的版本万万不能用最新的,因为JWT的Token认证 ...

2023年01月15日 · 3 分钟 · 502 字 · 八戒

cka的模拟试题

刚通过了CKA的考试,拿到了证书。 说老实话,想考这个必须翻墙啊,在考试的时候正好是新冠的第三天,烧得正厉害。 然后考试的过程真是一波三折,PSI 足足重新认证了三次,浪费40分钟。 最后都感觉要完蛋了,只剩下不到10分钟检查,结果还不错,考了90分。 有第一次考的可以联系我,我给你说一些必须注意的事项。 然后 CKA 有一个模拟考试,36小时时间,实际考试的环境跟模拟的完全不一样啊。 但是模拟如果你能过,那考试你一定能过,模拟的难度不低,相当高。 这就把模拟的题给放出来,供大家参考,非常有参考价值。 大家可以学到很多东西。 文件下载:cka.html 单html文件

2023年01月12日 · 1 分钟 · 14 字 · 八戒

xshell的绿色配色方案

其实一直用的终端软件是terminus,全终端可用,以前用 ubuntu,非常好用。 现在换到新公司,用 Win10,也装了一个。 一直到机房改造前,还都觉得行,但是机房改造需要收回核心交换机、路由器的权限,开终端 console 居然要收费会员,没办法,找老刘换回了免费的xshell 7。 xshell的配色实在是受不了,还是喜欢绿色的字符界面。 备份一个绿色的方案: [mycolor] text(bold)=e9e9e9 magenta(bold)=ff00ff text=00ff80 white(bold)=fdf6e3 green=80ff00 red(bold)=ff0000 green(bold)=3c5a38 black(bold)=808080 red=ff4500 blue=00bfff black=000000 blue(bold)=1e90ff yellow(bold)=ffff00 cyan(bold)=00ffff yellow=c0c000 magenta=c000c0 background=042028 white=c0c0c0 cyan=00c0c0 [Names] count=1 name0=mycolor 保存成 mycolor.xcs 文件,然后工具–> 配色方案,导入即可: 整体效果还是比较好的。 是自己喜欢的样子,当然,字体从9也增加到了12。

2023年01月12日 · 1 分钟 · 39 字 · 八戒

2022年获得的证书

2022年经过努力,考了4张证书,2023年继续努力奋斗…… 阿里云的ACP证书: AWS的SAA-C03证书: K8S的CKA证书: K8S的CKS证书:

2023年01月03日 · 1 分钟 · 5 字 · 八戒

DNSMASQ配置PXE的方式

DNSMASQ做局域网内的pxe installl是最合适不过的软件了。不用单独搭建 tftpserver,用自建的即可。 而且支持给各种子网打标签,还可以按标签发送各种dhcp包的特定信息。 interface=eth0 bind-dynamic pxe-prompt="Rendoumi PXE System", 5 domain-needed bogus-priv no-resolv no-poll #address=/jump.dedi.jp/install/103.108.236.5 #UP Stream DNS Server server=114.114.114.114 server=202.106.196.115 server=202.106.0.20 strict-order dhcp-authoritative dhcp-sequential-ip dhcp-no-override log-facility=/var/log/dnsmasq.log log-dhcp log-queries enable-tftp tftp-root = /export/servers/tftpboot #only new add host is dynamic, delete or modify not. #dhcp-hostsfile=/etc/dhcp-host/hosts.conf dhcp-hostsdir=/etc/dhcp-host # #Setup different options for each of the unique subnets, since default gateways will be different #The format for this is: dhcp-options=<your_tags_here>,<option>,<option_value> - #3 is router #1:netmask, 15:domain-name, 3:router, 6:dns-server, #44:netbios-ns, 46:netbios-nodetype, 47:netbios-scope, #31:router-discovery, 33:static-route, 121:classless-static-route, #43:vendor-encap # dhcp-option=option:dns-server,172.18.30.1,172.18.30.2 dhcp-option=option:all-subnets-local,1 dhcp-option=option:T1,2m dhcp-option=option:T2,4m #dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-addr>[,<end-addr>|<mode>][,<netmask>[,<broadcast>]][,<lease time>] #vlan 1 native vlan #dhcp-range=set:net1,172.18.29.100,172.18.29.250,static,255.255.254.0,2m dhcp-range=set:net1,172.18.29.100,static,2m dhcp-option-force=tag:net1,option:router,172.18.29.254 #vlan 199 wuli #dhcp-range=set:net2,172.18.31.100,static,255.255.254.0,2m #dhcp-range=set:net2,172.18.31.100,255.255.254.0,2m dhcp-range=set:net2,172.18.31.100,static,2m dhcp-option-force=tag:net2,option:router,172.18.31.254 # set tag "ipxe" if request comes from iPXE ("iPXE" user class) dhcp-userclass=set:ipxe,iPXE # alternative way, look for option 175 #dhcp-match=set:ipxe,175 # gPXE/iPXE sends a 175 option. # if request comes from dumb firmware, send them iPXE (via TFTP) #dhcp-boot=tag:!ipxe,undionly.kpxe,boothost,172.18.29.2 dhcp-boot=tag:!ipxe,undionly.kpxe # if request comes from iPXE, direct it to boot from boot1.php #dhcp-boot=tag:ipxe,http://172.18.29.2/pxeboot/boot1.php #--dhcp-boot=[tag:<tag>,]<filename>,[<servername>[,<server address>|<tftp_servername>]] dhcp-boot=tag:ipxe,tag:net1,http://172.18.29.2/pxeboot/boot1.php,172.18.29.2 dhcp-boot=tag:ipxe,tag:net2,http://172.18.31.2/pxeboot/boot1.php,172.18.31.2 # Args add(old del) mac ip hostname # add ac:1f:6b:21:3e:d8 103.108.236.22 1403-s27 #dhcp-script=/bin/echo #dhcp-leasefile=/var/log/dnsmasq.leases # !!!! tag is alphanumeric label, fuck !!!!! 附上undionly.kpxe:undionly.kpxe ...

2022年12月22日 · 1 分钟 · 184 字 · 八戒

Dropbear配置SSH服务

合规审计经常需要给各种软件打补丁,比如openssh,如果是高版本还好说。如果让你补 centos 6的 openssh, 那恐怕就要喝一壶了。替代方案如下: git:https://github.com/mkj/dropbear 下载地址:https://matt.ucc.asn.au/dropbear/dropbear.html 一、介绍 dropbear作为一款基于ssh协议的轻量级sshd服务器,相比OpenSSH,其更简洁,更小巧,运行起来内存占用比也更小。在应用进程上,OpenSSH会开启两个sshd进程服务,而dropbear只开启一个进程,相较于OpenSSH,其对于硬件要求也更低,也更节约系统资源。 dropbear实现完整的SSH客户端和服务器版本2协议,不支持SSH版本1协议的向后兼容性,以节省空间和资源,并避免在SSH版本1的固有的安全漏洞。 dropbear主要有以下程序: 服务程序:dropbear(类似于Openssh的sshd) 客户程序:dbclinet(累世于Openssh的ssh) 密钥生成程序:dropbearkey 二、下载安装 wget https://matt.ucc.asn.au/dropbear/dropbear-2020.81.tar.bz2 tar jxvf dropbear-2020.81.tar.bz2 cd dropbear-2020.81 ./configure make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install mkdir /etc/dropbear/ dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key dropbear -E -p 2222 #启动ssh服务 dropbear -FE -p 2222 #-F指定前台运行 客户端连接: ssh 192.168.89.37 -p 2222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 报错:zlib error 或者make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"出错 解决方法: wget https://www.zlib.net/fossils/zlib-1.2.10.tar.gz tar zxvf zlib-1.2.10.tar.gz cd zlib-1.2.10 ./configure --prefix=/usr/local/zlib ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

2022年12月19日 · 1 分钟 · 106 字 · 八戒