Kubernetes集群安全:准入控制Admission Control
📅 2017-05-15
概述 #
kube-apiserver是Kubernetes集群的中心,集群中所有资源的创建和更新都是通过APIServer的Restful API实现的。 因此Kubernetes通过一系列的机制来保证APIServer的安全,包括APIServer的认证、授权以及本文我们要学习的准入控制Admission Control。
...kube-apiserver是Kubernetes集群的中心,集群中所有资源的创建和更新都是通过APIServer的Restful API实现的。 因此Kubernetes通过一系列的机制来保证APIServer的安全,包括APIServer的认证、授权以及本文我们要学习的准入控制Admission Control。
...下载最新稳定版源码:
1wget https://github.com/proftpd/proftpd/archive/v1.3.6.tar.gz
解压:
1tar -zxvf proftpd-1.3.6.tar.gz
编译:
1cd proftpd-1.3.6
2./configure --prefix=/usr/local/proftpd
安装:
1make
2make install
创建运行用户:
1useradd -s /sbin/nologin proftpd
修改配置文件/usr/local/proftpd/etc/proftpd.conf:
1
2# Umask 022 is a good standard umask to prevent new dirs and files
3# from being group and world writable.
4Umask 0000
5
6User proftpd
7Group proftpd
8DefaultRoot ~
9SystemLog /home/proftpd/proftpd.log
10TransferLog /home/proftpd/proftpd-transfer.log
11
12PathDenyFilter "\\.ftp)|\\.ht)[a-z]+$"
13DenyFilter \*.*/
14
15
16UseReverseDNS off
17IdentLookups off
18ServerIdent off
19AllowRetrieveRestart on
20AllowStoreRestart on
21
22AuthOrder mod_auth_file.c
23AuthUserFile /usr/local/proftpd/etc/passwd
24AuthGroupFile /usr/local/proftpd/etc/group
25
26<Limit LOGIN>
27 AllowGroup admin
28 AllowGroup dev
29 AllowGroup ops
30 DenyAll
31</Limit>
32
33<Directory /home/proftpd/ftp>
34 AllowOverwrite on
35 HideNoAccess on
36 <Limit DIRS>
37 AllowAll
38 </Limit>
39 <Limit STOR RMD MKD>
40 DenyAll
41 </Limit>
42</Directory>
43
44<Directory /home/proftpd/ftp/dev>
45 AllowOverwrite on
46 HideNoAccess on
47 <Limit DIRS>
48 AllowGroup dev
49 AllowGroup admin
50 DenyAll
51 </Limit>
52</Directory>
53
54<Directory /home/proftpd/ftp/dev/*>
55 AllowOverwrite on
56 HideNoAccess on
57 <Limit READ DIRS>
58 AllowGroup dev
59 AllowGroup admin
60 DenyAll
61 </Limit>
62 <Limit MKD STOR RMD DELE>
63 AllowGroup dev
64 AllowGroup admin
65 DenyAll
66 </Limit>
67</Directory>
68
69<Directory /home/proftpd/ftp/ops>
70 AllowOverwrite on
71 HideNoAccess on
72 <Limit DIRS>
73 AllowGroup ops
74 AllowGroup admin
75 DenyAll
76 </Limit>
77</Directory>
78
79<Directory /home/proftpd/ftp/ops/*>
80 AllowOverwrite on
81 HideNoAccess on
82 <Limit READ DIRS>
83 AllowGroup ops
84 AllowGroup admin
85 DenyAll
86 </Limit>
87 <Limit MKD STOR RMD DELE>
88 AllowGroup ops
89 AllowGroup admin
90 DenyAll
91 </Limit>
92</Directory>
AuthOrder
指定权限检查顺序,这里mod_auth_file.c
只使用虚拟用户<Anonymous ~ftp>...</Anonymous>
1touch /usr/local/proftpd/etc/passwd
2chmod o-rwx /usr/local/proftpd/etc/passwd
3
4touch /usr/local/proftpd/etc/group
5chmod o-rwx /usr/local/proftpd/etc/group
systemd unit文件/usr/lib/systemd/system/proftpd.service:
...创建运行用户:
1groupadd confluence
2useradd -g confluence -d /home/confluence -s /sbin/nologin confluence
这里使用的是zip格式的安装包。
1unzip -d /home/confluence/ bc-atlassian-confluence-6.2.0.zip
创建数据目录:
1mkdir /home/confluence/data
修改/home/confluence/atlassian-confluence-6.2.0/confluence/WEB-INF/classes
,在最下方加入:
下载安装包:
1wget https://pkg.jenkins.io/redhat/jenkins-2.60-1.1.noarch.rpm
安装:
1yum localinstall jenkins-2.60-1.1.noarch.rpm
创建JENKINS_HOME
目录:
1mkdir /home/jenkins
2chown jenkins:jenkins /home/jenkins
默认的JENKINS_HOME
目录在/var/lib/jenkins下,因为我们服务器的数据盘挂在/home下
本文将使用JIRA的Linux Installer进行安装,先下载:
1wget https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.3.6-x64.bin
1chmod u+x atlassian-jira-software-7.3.6-x64.bin
2
3./atlassian-jira-software-7.3.6-x64.bin
根据向导提示一步一步安装:
Choose the appropriate installation or upgrade option.
选2Custom Install (recommended for advanced users) [2, Enter]
Where should JIRA Software be installed?[/opt/atlassian/jira]
输入回车默认该位置Default location for JIRA Software data[/var/atlassian/application-data/jira]
输入/home/jira
Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]
,输入2
进行定制,HTTP Port Number[8080]
输入18080
,Control Port Number[8005]
输入18005
You may choose to run JIRA as a service, which means it will start
输入y
回车Install [i, Enter], Exit [e]
,输入i
回车Start JIRA Software 7.3.6 now?Yes [y, Enter], No [n]
,输入y
回车在已经准备好的MySQL实例中创建JIRA的数据库:
...版本控制系统是DevOps流程和持续交付流水线中关键的一环。 版本控制系统是研发团队开发环境的中心,开发人员和运维人员开发软件产品的代码、配置以及基础设施配置管理都要保存在其中。
我们选择在内网开发环境部署GitLab社区版作为团队的版本控制系统,一切皆代码,开发和运维人员将共同使用这个系统。
...下载安装包:
1wget https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.3.1-01-unix.tar.gz
创建运行用户:
1group add nexus
2useradd -g nexus -d /home/nexus nexus
解压缩安装包:
1tar -zxvf nexus-3.3.1-01-unix.tar.gz -C /home/neuxs
2ls /home/nexus
3nexus-3.3.1-01 sonatype-work
修改数据目录中的配置文件:
1cd /home/nexus/sonatype-work/nexus3/
2vi nexus.properties
3
4# 定制http端口号
5application-port=8082
修改运行用户:
...下载安装包:
1wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.3.1.zip
创建运行用户:
1groupadd sonar
2useradd -g sonar -d /home/sonar sonar
解压安装包:
1unzip sonarqube-6.3.1.zip -d /home/sonar/
2
3ls /home/sonar
4sonarqube-6.3.1
设置运行用户:
1cd /home/sonar/sonarqube-6.3.1/bin/linux-x86-64
2vi sonar.sh
3
4RUN_AS_USER=sonar
设置启动脚本:
1chown -R sonar:sonar /home/sonar/
2
3
4ln -s /home/sonar/sonarqube-6.3.1/bin/linux-x86-64/sonar.sh /etc/init.d/sonar
5chmod 755 /etc/init.d/sonar
6chkconfig --add sonar
在已经安装好的MySQL中创建数据库和数据库用户:
...我们已经部署了OpenLDAP服务,使得我们有了实现集中管理用户账号和集中式认证的基础。接下来更进一步需求就是让用户可以自己自行管理密码。本文将尝试使用Self Service Password实现这个需求。
Self Service Password是一个PHP的Web应用,能够让用户修改在LDAP中的密码,支持标准的LDAPv3目录OpenLDAP, OpenDS, ApacheDS, Active Directory等。
...最近在准备团队新的开发环境,首先从配置管理做起,配置管理服务器只有一台,配置如下:
1DELL R430机架服务器
2CPU: e5-2603V4 8核
3MEM: 32G
4DISK: 2TB, raid1
团队DevOps流程所需要的多种系统都需要使用MySQL数据库,因此现在这里简单安装一个MySQL,做一下准备工作。
...