Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e03e435517 | ||
|
|
27d091e871 | ||
|
|
c81ce23ed7 | ||
|
|
72cb97c8d5 | ||
|
|
edda7075a2 | ||
|
|
0f631c1405 | ||
|
|
5d50b5b130 | ||
|
|
28baf0d581 | ||
|
|
4b519e8b13 | ||
|
|
92dc094022 | ||
|
|
fdc6b333c9 | ||
|
|
1825eba27a | ||
|
|
cd45a58683 | ||
|
|
730510c2a7 | ||
|
|
fa7f8597d9 | ||
|
|
b6b2d45f09 | ||
|
|
9cfe1f2b9a | ||
|
|
e49eacd8ec | ||
|
|
7535abd882 | ||
|
|
400e576984 | ||
|
|
0eddf2872b | ||
|
|
013a554731 | ||
|
|
8f3f724380 | ||
|
|
e742330a41 | ||
|
|
b00b38ece6 | ||
|
|
dd919b5cf6 | ||
|
|
21df60a71f | ||
|
|
73f84ae2a9 | ||
|
|
bf372f8493 | ||
|
|
ef89d52f98 | ||
|
|
9b50392d8a | ||
|
|
215c50709b | ||
|
|
a8fdf2de0a | ||
|
|
3528fe9f6d | ||
|
|
02b9a20fe7 | ||
|
|
f627d2fbfd | ||
|
|
e28e09cd0e | ||
|
|
488ff6a7c3 | ||
|
|
0251172cd1 | ||
|
|
9b27a6a0fc | ||
|
|
b32ee28a89 | ||
|
|
0c8cbb2185 | ||
|
|
231036f882 | ||
|
|
36412f438a | ||
|
|
3f50b6e94b | ||
|
|
9cf1659742 | ||
|
|
79fb86d021 | ||
|
|
57944bc56d | ||
|
|
bff23f82cb | ||
|
|
46b436fc9b | ||
|
|
18d01327eb | ||
|
|
1d3ea50de6 | ||
|
|
dc22dc33a2 | ||
|
|
9d00c8ba29 | ||
|
|
bf276ba14d | ||
|
|
8edd650135 | ||
|
|
fce131a75d | ||
|
|
af14af5954 | ||
|
|
b6677fccd9 | ||
|
|
9be3a0520b | ||
|
|
1f8c8d1c43 | ||
|
|
49b93dc89c | ||
|
|
468e4674b8 | ||
|
|
2a4d409339 | ||
|
|
b74e88723d | ||
|
|
e0e76fa675 | ||
|
|
2ba40b0891 | ||
|
|
798f4b9a99 | ||
|
|
507873f388 | ||
|
|
8bdf9bbb21 | ||
|
|
1a97c6cf87 | ||
|
|
73d319cc79 | ||
|
|
8f22ce788c | ||
|
|
945d00fd91 | ||
|
|
bb8e3e375e | ||
|
|
db78f612f5 | ||
|
|
82be5db515 | ||
|
|
8805d9c14a | ||
|
|
ed17a6370a | ||
|
|
ad43f908df | ||
|
|
530069ae88 | ||
|
|
cb3574ed56 | ||
|
|
e95729b431 | ||
|
|
1d25d4185c | ||
|
|
88893a5d4a | ||
|
|
b67a28bd09 | ||
|
|
88ea2966db | ||
|
|
dfa065dcff | ||
|
|
cb0e00f433 | ||
|
|
3bd20265d4 | ||
|
|
f84ff572ac | ||
|
|
8a385b8114 | ||
|
|
b0393a12ce | ||
|
|
96d6b47912 | ||
|
|
0c840372d8 | ||
|
|
ff939a2b4c | ||
|
|
0609cf729a | ||
|
|
c9c6819892 | ||
|
|
bbe4ce16a1 | ||
|
|
4eb847c90e | ||
|
|
1bf31a197b | ||
|
|
1605f304ec | ||
|
|
12c1f3dd78 | ||
|
|
7f17f9b8b2 | ||
|
|
f09b2b6338 | ||
|
|
2e5e1de407 | ||
|
|
c1974282b1 | ||
|
|
09958ccb91 | ||
|
|
08b0fd14f4 | ||
|
|
ff37289879 | ||
|
|
9f372c285c | ||
|
|
aaf6d307b8 | ||
|
|
3cd532fe41 | ||
|
|
384c097f8a | ||
|
|
346b064682 | ||
|
|
be0d501bc8 | ||
|
|
12aaa7d955 | ||
|
|
f32b2c2c5e | ||
|
|
3877a9bab1 | ||
|
|
cb7f447d9f | ||
|
|
55c83ac92d | ||
|
|
bbc827e4a1 | ||
|
|
999e5fa210 | ||
|
|
215c8042ad | ||
|
|
940819ab84 | ||
|
|
21ca7c533a | ||
|
|
5debcc0c6f | ||
|
|
92bd94a0cf | ||
|
|
aea4499805 | ||
|
|
29945527b8 | ||
|
|
e819f89ccb | ||
|
|
fcb7efc156 | ||
|
|
8fdb4e55b8 | ||
|
|
8ff3d73bbf | ||
|
|
062dd3f092 | ||
|
|
37cff01759 | ||
|
|
4671a32062 | ||
|
|
78bab3f710 | ||
|
|
3b33e0a7aa | ||
|
|
2ed9d8e9da | ||
|
|
df134e6385 | ||
|
|
d7eb00f4b7 | ||
|
|
7b37e9890e | ||
|
|
cf17f80374 | ||
|
|
6fa7f7a0c8 | ||
|
|
6c80de270b | ||
|
|
e20dd076d1 | ||
|
|
9ab06a5e06 | ||
|
|
bfd3f96355 | ||
|
|
3a73f6c46a | ||
|
|
4162929d2e | ||
|
|
545fd8798f | ||
|
|
3bd5eccec0 | ||
|
|
430e6c366f | ||
|
|
b24ee631cb | ||
|
|
681047ba52 | ||
|
|
96685ff0ac | ||
|
|
93ed95fe90 | ||
|
|
66bd1f0aec | ||
|
|
327b1a84c8 | ||
|
|
714a34fa55 | ||
|
|
488441a7dc | ||
|
|
585f1dc227 | ||
|
|
2c5cf45573 | ||
|
|
5618655ce5 | ||
|
|
da50f20860 | ||
|
|
c87ac4425c | ||
|
|
f92d193d3d | ||
|
|
a075af2f31 | ||
|
|
50f362602f | ||
|
|
27c6b93d04 | ||
|
|
e733906aec | ||
|
|
4ca4f09453 | ||
|
|
72ec118a6d | ||
|
|
2a43ad9cc6 | ||
|
|
9cefddd949 | ||
|
|
c769db4221 | ||
|
|
350b5891d1 | ||
|
|
d6cd67d908 | ||
|
|
29e10e5c3b | ||
|
|
d72db6037c | ||
|
|
8cbeeff501 | ||
|
|
cf6b6e6562 | ||
|
|
41cd8485cb | ||
|
|
be2523e5fb | ||
|
|
c4ba0763ae | ||
|
|
2597854735 | ||
|
|
0beeb3ee03 | ||
|
|
735c905f71 | ||
|
|
eb28ebe298 | ||
|
|
8dbeae7b39 | ||
|
|
0ce08455ef | ||
|
|
66b0fa28e5 | ||
|
|
07a0943c5a | ||
|
|
4f42e0d396 | ||
|
|
45711874e6 | ||
|
|
e9f23f0eac | ||
|
|
93c489d3b2 | ||
|
|
180acf9540 | ||
|
|
0324273dce | ||
|
|
22f1802d97 | ||
|
|
f9945c41de | ||
|
|
284943b699 | ||
|
|
b12ee4d23b | ||
|
|
0f30ebf753 | ||
|
|
4313d6fbfb | ||
|
|
45f15aa08b | ||
|
|
07c2931f1d | ||
|
|
6e24797d2f | ||
|
|
8c89d78f44 | ||
|
|
d6a99c995e | ||
|
|
5ed100b7ea | ||
|
|
c6febf3249 | ||
|
|
7d68c6036c | ||
|
|
d4a4faa16d | ||
|
|
e1f0efb220 | ||
|
|
73cdd973d7 | ||
|
|
5e7a0a60f1 | ||
|
|
c3b954a2ab | ||
|
|
add303f2be | ||
|
|
03a0f26917 | ||
|
|
fdadb78080 | ||
|
|
2fb54bd224 | ||
|
|
29ee683069 | ||
|
|
d758fa5184 | ||
|
|
2882a15ee1 | ||
|
|
458dfa2b6a | ||
|
|
812c6c5974 | ||
|
|
ae68f73965 | ||
|
|
d1d12ca6d7 | ||
|
|
7af432e1cf | ||
|
|
2dac5e3289 | ||
|
|
c90bbd2c23 | ||
|
|
aec1f5dcb7 | ||
|
|
d1143a06b1 | ||
|
|
dfa89f7b47 | ||
|
|
0f424469be | ||
|
|
240d8acc0c | ||
|
|
5eae12005a | ||
|
|
84d7bb5f5f | ||
|
|
a45eee2204 | ||
|
|
d693a8e200 | ||
|
|
0ac56e4c00 | ||
|
|
05bc809ba3 | ||
|
|
5be13e878f | ||
|
|
659e5ada6a | ||
|
|
0010715039 | ||
|
|
a23eb05001 | ||
|
|
69193fe249 | ||
|
|
369c2986c6 | ||
|
|
02c689eaa0 | ||
|
|
bf82736787 | ||
|
|
c86bdcb4c7 | ||
|
|
b5ca78a9cd | ||
|
|
36bc71fe51 | ||
|
|
876cdab430 | ||
|
|
6c805f6ca9 | ||
|
|
8cb6732882 | ||
|
|
390f7ad6cc | ||
|
|
eca93cc80b | ||
|
|
9614273653 | ||
|
|
a64838272c | ||
|
|
2076990d5d | ||
|
|
3da5b759a2 | ||
|
|
8706246309 | ||
|
|
cd4925d411 | ||
|
|
d1b8e7d7a3 | ||
|
|
19d5a17a99 | ||
|
|
5cc8b2f42a | ||
|
|
976f83e88b | ||
|
|
6c870aae27 | ||
|
|
74c729404b | ||
|
|
b2dd73d27e | ||
|
|
ec9d7d2cb8 | ||
|
|
97c55d6e55 | ||
|
|
5f97dffddf | ||
|
|
eeedaeaffb | ||
|
|
0b945536e2 | ||
|
|
103135ce9a | ||
|
|
4158e0bfb4 | ||
|
|
fed8bdabd7 | ||
|
|
f9bbdb20fe | ||
|
|
4bad4779cd | ||
|
|
75fc31b80c | ||
|
|
10841ced62 | ||
|
|
335df545fb | ||
|
|
6d2c92d4ab | ||
|
|
3334000b97 | ||
|
|
26d84b5f84 | ||
|
|
9b6f313065 | ||
|
|
23071a183c | ||
|
|
66009496e2 | ||
|
|
bbf992d9fc | ||
|
|
91a0d62305 | ||
|
|
60d24db460 | ||
|
|
90e0ce7c6b | ||
|
|
8e4c22d8d9 | ||
|
|
dba53718cf | ||
|
|
4a5fa70507 | ||
|
|
75683161a5 | ||
|
|
2a4b98ab4a | ||
|
|
5d55d29fe2 | ||
|
|
64713ce75d | ||
|
|
ec36bf5b9c | ||
|
|
08aad6e80f | ||
|
|
28c6bf5c66 | ||
|
|
26c73ed1c9 | ||
|
|
54c8e6aedb | ||
|
|
b9e33091e2 | ||
|
|
7f1765c608 | ||
|
|
30f0839513 | ||
|
|
532917d956 | ||
|
|
04654d0490 | ||
|
|
aa166f43fc | ||
|
|
19482c319c | ||
|
|
fc7fb4fc8a | ||
|
|
8baab7516e | ||
|
|
7282187a90 | ||
|
|
157f4fca70 | ||
|
|
70cd7bbf1e | ||
|
|
6be31fbc3b | ||
|
|
756839f8f0 | ||
|
|
c55c1f21ed | ||
|
|
8d3e452ce3 | ||
|
|
d8ea484f92 | ||
|
|
a98876b350 | ||
|
|
6d369739e4 | ||
|
|
2b39258d47 | ||
|
|
75a8aca905 | ||
|
|
94b9bfc3cd | ||
|
|
b26b4e090c | ||
|
|
f035053381 | ||
|
|
0cfdb1954e | ||
|
|
614662b99d | ||
|
|
3ad4fbab0e | ||
|
|
ebbf6855e8 | ||
|
|
b210df1233 | ||
|
|
a55a4d2024 | ||
|
|
a17f4a6f45 | ||
|
|
30f03bc124 | ||
|
|
40bc23d7da | ||
|
|
c6114278a1 | ||
|
|
e833d1dce4 | ||
|
|
4b0819349d | ||
|
|
2f9cd82615 | ||
|
|
9db01d5fbe | ||
|
|
e4b0801d22 | ||
|
|
67c40dc021 | ||
|
|
9c17f0f7c3 | ||
|
|
8a1064ded4 | ||
|
|
29b72ea277 | ||
|
|
6e84f53a75 | ||
|
|
7a560b3d38 | ||
|
|
66feb7c2ad | ||
|
|
4399d3f885 | ||
|
|
6b55b9619c | ||
|
|
8f7bae533c | ||
|
|
9853c7ea45 | ||
|
|
6e9247bde3 | ||
|
|
ef31838fa2 | ||
|
|
f010b9a17e | ||
|
|
0600cdae75 | ||
|
|
254b62d980 | ||
|
|
d01abb44c0 | ||
|
|
16a41412bb | ||
|
|
d83ad9e6a9 | ||
|
|
5675589e01 | ||
|
|
e8e552f3ae | ||
|
|
b4ca950122 | ||
|
|
168af7fb6f | ||
|
|
faffddbf31 | ||
|
|
a75e2c028b | ||
|
|
83e29b01f5 | ||
|
|
43ec139d24 | ||
|
|
1ab33482db | ||
|
|
9e8e0bc8fb | ||
|
|
ea471b38b7 | ||
|
|
98c7553016 | ||
|
|
5341f2a891 | ||
|
|
53949911a9 | ||
|
|
753e517678 | ||
|
|
c743c93530 | ||
|
|
253c5ec3eb | ||
|
|
837f99bdf8 | ||
|
|
91424ac209 | ||
|
|
13b09a0f23 | ||
|
|
cade17ec30 | ||
|
|
1cf8a6380d | ||
|
|
1d2af73ced | ||
|
|
2f19ad1ce2 | ||
|
|
90151c3047 | ||
|
|
b607f61514 | ||
|
|
f2804c7c19 | ||
|
|
6b03886b4b | ||
|
|
63df6bd3db | ||
|
|
d857830979 | ||
|
|
c94d973527 | ||
|
|
c8ada5c13c | ||
|
|
dd3959276b | ||
|
|
6fc1320298 | ||
|
|
598f7183f8 | ||
|
|
66e88a34d1 | ||
|
|
a10e4d7c1a | ||
|
|
51a7fed83d | ||
|
|
cc48e4761a | ||
|
|
e406349064 | ||
|
|
5aa3701de9 | ||
|
|
d49e05f8e8 | ||
|
|
a46642ee92 | ||
|
|
4e322edc62 | ||
|
|
946760c669 | ||
|
|
ac3c12d264 | ||
|
|
05da4330e2 | ||
|
|
1457530d4a | ||
|
|
f2de986191 | ||
|
|
0a8e2ccea5 | ||
|
|
5e6da728a4 | ||
|
|
65273b281c | ||
|
|
e639d1b365 | ||
|
|
90d4870f81 | ||
|
|
f5f4ae51ed | ||
|
|
421fb6da2c | ||
|
|
81f1d3df6c | ||
|
|
0bb2498389 | ||
|
|
bd7a5a6d41 | ||
|
|
7f512b3834 | ||
|
|
f2ac796ca1 | ||
|
|
35695d979e | ||
|
|
8d87d120a1 | ||
|
|
99d1d07a96 | ||
|
|
9759c291db | ||
|
|
257504f156 | ||
|
|
f0ac6df8df | ||
|
|
daa49d0f47 | ||
|
|
175e38a016 | ||
|
|
3cf833f033 | ||
|
|
1d20f0b007 | ||
|
|
b216607cc3 | ||
|
|
bb96fd17ec | ||
|
|
9c32eb38d9 | ||
|
|
87e82cbc60 | ||
|
|
be67e73a7e | ||
|
|
b6e3b59094 | ||
|
|
e54061bcd5 | ||
|
|
aacef86b68 | ||
|
|
1e115d9eeb | ||
|
|
e6f5d0bb69 | ||
|
|
7e27948433 | ||
|
|
c954b8af8f | ||
|
|
ac097014df | ||
|
|
9394688158 | ||
|
|
f3edc579f1 | ||
|
|
2f9febef4e | ||
|
|
f2a8172593 | ||
|
|
05d9551dfa | ||
|
|
ab0e5783b9 | ||
|
|
6eb48877a5 | ||
|
|
bfc80e8cfd | ||
|
|
17f214074f | ||
|
|
30c282ef5d | ||
|
|
5c91da696a | ||
|
|
e266decde8 | ||
|
|
57f7a15b51 | ||
|
|
29a43568e6 | ||
|
|
3028b5ddc7 | ||
|
|
25623b0d0b | ||
|
|
c69e7efb11 | ||
|
|
3b059d4c7c | ||
|
|
0757a3d1c3 | ||
|
|
30d5641e9b | ||
|
|
a82e1a7a9f | ||
|
|
6b465f9cbb | ||
|
|
b37c2ddb69 | ||
|
|
de5a7ce506 | ||
|
|
77434b8a37 | ||
|
|
a806a25af5 | ||
|
|
4ddbbb2a61 | ||
|
|
17570fda66 | ||
|
|
989f7b0e1e | ||
|
|
fd10d8e8d2 | ||
|
|
34abe1ab03 | ||
|
|
2a75fc11d3 | ||
|
|
6f0181b2fc | ||
|
|
7077187a67 | ||
|
|
e698433939 | ||
|
|
37ab009093 | ||
|
|
56f6cd0337 | ||
|
|
aaece07fe0 | ||
|
|
337c7dbbed | ||
|
|
2c4505addd | ||
|
|
88fecc4f2e | ||
|
|
0b38b85a0a | ||
|
|
c777133050 | ||
|
|
29158e4285 | ||
|
|
5cad140f7b | ||
|
|
fa2cf790f8 | ||
|
|
5cf53b215f | ||
|
|
bbe5ad4707 | ||
|
|
b3d7acee44 | ||
|
|
6b42f12434 | ||
|
|
eb777fbe2f | ||
|
|
eaeca04d96 | ||
|
|
83a6d88c46 | ||
|
|
04d19fd195 | ||
|
|
fe7e37e6e9 | ||
|
|
387fc472bd | ||
|
|
20bf4eaa99 | ||
|
|
f1a65f5f44 | ||
|
|
04f731a08c | ||
|
|
9b14f64f67 | ||
|
|
b7791833a7 | ||
|
|
f50f22ca66 | ||
|
|
e59dd46c23 | ||
|
|
670be01d69 | ||
|
|
1a28c7bdef | ||
|
|
1f1c715ec7 | ||
|
|
6fddedccb6 | ||
|
|
bf7c4dd46d | ||
|
|
75880c8f48 | ||
|
|
760f1206d6 | ||
|
|
740feae180 | ||
|
|
65a8fa0c6c | ||
|
|
e69f5891d9 | ||
|
|
395fd030ce | ||
|
|
994ea81e64 | ||
|
|
a8e349913d | ||
|
|
0016239486 | ||
|
|
0cbfc29f23 | ||
|
|
7ea747af03 | ||
|
|
3b75e49c0e | ||
|
|
8806f9f06a | ||
|
|
be0e7f7809 | ||
|
|
6626617a4a | ||
|
|
b4b306484b | ||
|
|
4a11070e2c | ||
|
|
1b6623b899 | ||
|
|
476f2ec8e2 | ||
|
|
cb407267c0 | ||
|
|
4494ddd132 | ||
|
|
990f95807f | ||
|
|
8e7ce74953 | ||
|
|
10888d72ab | ||
|
|
147a26c27a | ||
|
|
fda42b7022 | ||
|
|
4c248a4901 | ||
|
|
18be974509 | ||
|
|
5e47ffae35 | ||
|
|
d87f6c6212 | ||
|
|
41aef7eb80 | ||
|
|
83263cf8ce | ||
|
|
9d56e9c6dd | ||
|
|
00f5f46c3a | ||
|
|
22580d853f | ||
|
|
44424474b8 | ||
|
|
64b86d48a8 | ||
|
|
5b96f66835 | ||
|
|
8d8277b3bd | ||
|
|
4d34d24c32 | ||
|
|
b5780c9d95 | ||
|
|
9a3d089fcb | ||
|
|
d06c87386f | ||
|
|
573f2483f5 | ||
|
|
4f1a04b3a5 | ||
|
|
beb77e4c96 | ||
|
|
fb8ac0a42b | ||
|
|
f560d51447 | ||
|
|
3f962b540f | ||
|
|
ce41b9f89a | ||
|
|
c141f12d1e | ||
|
|
508c666d58 | ||
|
|
b27c679a51 | ||
|
|
6c8165b3c8 | ||
|
|
9a38fdbc3d | ||
|
|
874d09d645 | ||
|
|
faf4b19db8 | ||
|
|
e1811e5f4a | ||
|
|
4a3d5392fe | ||
|
|
0777322372 | ||
|
|
d427881edc | ||
|
|
2ad774f7df | ||
|
|
e25bc666f4 | ||
|
|
26db1123af | ||
|
|
5992bbae0d | ||
|
|
aa908ae169 | ||
|
|
c845df464b | ||
|
|
3cfc11b0fb | ||
|
|
d98fbc4294 | ||
|
|
36a038b6dd | ||
|
|
e9782fb2c1 | ||
|
|
7621bca63b | ||
|
|
ab8ba4c6a4 | ||
|
|
1e9df18b64 | ||
|
|
a2e7cf3fd8 | ||
|
|
e8a2906d24 | ||
|
|
fe9fad8845 | ||
|
|
c31ad460ff | ||
|
|
fba69f3ddb | ||
|
|
3480143584 | ||
|
|
28b295ada7 | ||
|
|
c615fca579 | ||
|
|
86cd494998 | ||
|
|
21bec11b09 | ||
|
|
9f566ae60d | ||
|
|
0aba114a72 | ||
|
|
f1b5f61736 | ||
|
|
09a655a8b4 | ||
|
|
4e923c9756 | ||
|
|
2d876f67ef | ||
|
|
2c0fb49dee | ||
|
|
c099004b98 | ||
|
|
8d6ec28c5e | ||
|
|
901260153d | ||
|
|
a0a247887c | ||
|
|
33ee223dea | ||
|
|
acd48f0f10 | ||
|
|
40f1f25a5a | ||
|
|
ac9fbb312a | ||
|
|
99d63ffee1 | ||
|
|
4c4ee34931 | ||
|
|
c04c5bd060 | ||
|
|
1b0d3e1fa1 | ||
|
|
a0c5d0c596 | ||
|
|
3b53c5a60f | ||
|
|
49af2e059d | ||
|
|
5d885bef43 | ||
|
|
5f741a6f9a | ||
|
|
e060504f48 | ||
|
|
741e5a43ce | ||
|
|
9e04f7bc1e | ||
|
|
4c5fa242bd | ||
|
|
8402500b75 | ||
|
|
1e6787204a | ||
|
|
3f3b2c3619 | ||
|
|
8ab659243c | ||
|
|
0995761706 | ||
|
|
c574aa106c | ||
|
|
cc1df7af7b | ||
|
|
46204a99ab | ||
|
|
f4cdcc0251 | ||
|
|
f4106889f6 | ||
|
|
12f5a8c56a | ||
|
|
fc209f5838 | ||
|
|
6b1233b3cd | ||
|
|
9255b22c32 | ||
|
|
e1688e4766 | ||
|
|
07d39172b6 | ||
|
|
101ec2879d | ||
|
|
51ab13d34e | ||
|
|
1d84996dbd | ||
|
|
0fdafae06c | ||
|
|
00df1544fc | ||
|
|
0fac54cacb | ||
|
|
1aa132f9ea | ||
|
|
249e3a09dd | ||
|
|
caffaf5ed5 | ||
|
|
365d7389c7 | ||
|
|
b6d65a504a | ||
|
|
9c77d0b512 | ||
|
|
63ddfd8948 | ||
|
|
3de3975a91 | ||
|
|
46334752c5 | ||
|
|
b014b62757 | ||
|
|
4a97d4dc29 | ||
|
|
33ef27d635 | ||
|
|
ffc7faeeea | ||
|
|
defa6f78a4 | ||
|
|
3d351ef748 | ||
|
|
afe955799b | ||
|
|
78fc2befff | ||
|
|
f3458bc3cb | ||
|
|
eb946eff0a | ||
|
|
b720fd916c | ||
|
|
31c4895547 | ||
|
|
d57f65e241 | ||
|
|
af73bece97 | ||
|
|
32532bae9a | ||
|
|
be3317da94 | ||
|
|
d68169dca7 | ||
|
|
f430284b8a | ||
|
|
20eacfabf7 | ||
|
|
65c93ae6cb | ||
|
|
ed3748ff59 | ||
|
|
f6370ca5e0 | ||
|
|
060b15a7ee | ||
|
|
ed9ec7c072 | ||
|
|
908d1faab7 | ||
|
|
767540b5a0 | ||
|
|
a8b225f2f6 | ||
|
|
4ee9bf2224 | ||
|
|
aa3ceed887 | ||
|
|
2ee1e2c1ac | ||
|
|
75935cbba1 | ||
|
|
a745e667cf | ||
|
|
4228e8a157 | ||
|
|
d1824a8417 | ||
|
|
b0139c7abf | ||
|
|
8e83579a7c | ||
|
|
a0e7d0fbaf | ||
|
|
e674a6d589 | ||
|
|
ce6af914c8 | ||
|
|
435ee7fd4a | ||
|
|
a6e95f3fd4 | ||
|
|
9f11c47730 | ||
|
|
3e14d45d0c | ||
|
|
d609de1c67 | ||
|
|
21e442c65c | ||
|
|
998aa27228 | ||
|
|
35abff1ee0 | ||
|
|
33a85b2e21 | ||
|
|
804538ebd7 | ||
|
|
77f3f6e75d | ||
|
|
9286eedc47 | ||
|
|
bb4feda34e | ||
|
|
4138adcf28 | ||
|
|
a5a188698b | ||
|
|
b7580b3e4f | ||
|
|
397594a698 | ||
|
|
686972f1bb | ||
|
|
9298965df6 | ||
|
|
b6f947c7a2 | ||
|
|
15b8ec2228 | ||
|
|
754138d50b | ||
|
|
2be7ce4cde | ||
|
|
8d855bee14 | ||
|
|
43a91bbb8f | ||
|
|
be39384f60 | ||
|
|
66888990af | ||
|
|
f4db6497a2 | ||
|
|
0bb55985e7 | ||
|
|
b158e3b78b | ||
|
|
d6123bceff | ||
|
|
c86790c748 | ||
|
|
5f3a913be6 | ||
|
|
c47ca9092a | ||
|
|
f60955275a | ||
|
|
411a989959 | ||
|
|
6b4aab3764 | ||
|
|
03faef5a75 | ||
|
|
fdfa4d763b | ||
|
|
22f77667f0 | ||
|
|
dd3a105b91 | ||
|
|
bea269a7ff | ||
|
|
d6deed26db | ||
|
|
de3c0d387c | ||
|
|
ba457ee080 | ||
|
|
f41747c526 | ||
|
|
78f9419f14 | ||
|
|
13f698fcda | ||
|
|
8d8456aec8 | ||
|
|
8f44b6edd9 | ||
|
|
b25d9ea999 | ||
|
|
2b7201a8a3 | ||
|
|
439c3eec1a | ||
|
|
ce23e04292 | ||
|
|
b7bc40bb74 | ||
|
|
b60fe1b3b5 | ||
|
|
dd0c3cd2f5 | ||
|
|
e69947a2a4 | ||
|
|
61ec2fff18 | ||
|
|
2037ae3fa2 | ||
|
|
b6b7273b24 | ||
|
|
84f659d83d | ||
|
|
9076895e2d | ||
|
|
bba220e536 | ||
|
|
77b02f8a43 | ||
|
|
f7eac8d3af | ||
|
|
d6ec19e79f | ||
|
|
eda078bfe2 | ||
|
|
bd795c9a18 | ||
|
|
16ee321a6e | ||
|
|
8b71e3fbca | ||
|
|
c36b360f9c | ||
|
|
ae630c3072 | ||
|
|
08ebd3d51b | ||
|
|
05415d9e89 | ||
|
|
c7039e3fd9 | ||
|
|
7457337c4a | ||
|
|
c592fd61db | ||
|
|
e8f58de183 | ||
|
|
ba190fb509 | ||
|
|
a692a848bf | ||
|
|
1570b053d1 | ||
|
|
c70fab4cde | ||
|
|
1393c19080 | ||
|
|
4cc52760bf | ||
|
|
29d0421095 | ||
|
|
a9c8dfc248 | ||
|
|
e7a97ed374 | ||
|
|
0e4534e7cb | ||
|
|
d67d570348 | ||
|
|
c0e5710e2f | ||
|
|
53e0e60520 | ||
|
|
7e065416da | ||
|
|
7907e48058 | ||
|
|
f879dcbb88 | ||
|
|
0941b75097 | ||
|
|
c608e028a5 | ||
|
|
3b50d92444 | ||
|
|
e8a05eed0e | ||
|
|
1455b6e0be | ||
|
|
349479177f | ||
|
|
dbe5ae6bd7 | ||
|
|
310cbf5f2d | ||
|
|
e5a64ccc6f | ||
|
|
2c9a47f19f | ||
|
|
15f3313cca | ||
|
|
63603315e8 | ||
|
|
2b037fc1d9 | ||
|
|
690ec7ba41 | ||
|
|
d9063435e6 | ||
|
|
71fe723438 | ||
|
|
0dfaf0af42 | ||
|
|
ad84360761 | ||
|
|
858f3b7775 | ||
|
|
f911ea9c0b | ||
|
|
15dd4d344e | ||
|
|
7c7f1a3fcc | ||
|
|
9108a83a03 | ||
|
|
66f6c3c8cf | ||
|
|
51c75bbccb | ||
|
|
4f4fe8991d | ||
|
|
5fe48f7561 | ||
|
|
f0cbcc5536 | ||
|
|
6de1df0ed1 | ||
|
|
8e891f2575 | ||
|
|
20ca116511 | ||
|
|
f2576a05c5 | ||
|
|
a69a3cae21 | ||
|
|
ccc51553a9 | ||
|
|
4b52a37c06 | ||
|
|
c6ff1d3cbf | ||
|
|
2616b36071 | ||
|
|
f8cb5635a0 | ||
|
|
6aeb8678cb | ||
|
|
6d5a401207 | ||
|
|
fc5b9ecf0d | ||
|
|
06385ceaf0 | ||
|
|
7ad9332dca | ||
|
|
8addb18b00 | ||
|
|
df809ad260 | ||
|
|
f5ae581d71 | ||
|
|
75f7153a6d | ||
|
|
3bbafc086d | ||
|
|
0f82a55a77 | ||
|
|
80f552b4f6 | ||
|
|
87a1503df2 | ||
|
|
dbe0e67e5c | ||
|
|
58419515d9 | ||
|
|
d4fdaa9ae7 | ||
|
|
9f30ffe399 | ||
|
|
ef120fbb49 | ||
|
|
35d821809c | ||
|
|
aefbc79731 | ||
|
|
e04cc87a2f | ||
|
|
7e8da15157 | ||
|
|
7a6b1f7d66 | ||
|
|
c391a0c678 | ||
|
|
cff51e126d | ||
|
|
eacd9c12ff | ||
|
|
9a57c6edaf | ||
|
|
2cb053a0e0 | ||
|
|
2c06e4090a | ||
|
|
fbd7ff2993 | ||
|
|
d7cedf51e2 | ||
|
|
b03e4f6559 | ||
|
|
456d9c25b1 | ||
|
|
119524b8e7 | ||
|
|
330173e911 | ||
|
|
dd8c27ba4e | ||
|
|
21c903f4d4 | ||
|
|
daa3b0393e | ||
|
|
1755515881 | ||
|
|
0a0735be84 | ||
|
|
8a6aa66ab4 | ||
|
|
c7e102a118 | ||
|
|
a6d1870c58 | ||
|
|
1d83151e7b | ||
|
|
2e4dd1783f | ||
|
|
833a173c3c | ||
|
|
ed9447ad00 | ||
|
|
cfc77ad82b | ||
|
|
3e3e85b769 | ||
|
|
12059c64c7 | ||
|
|
96053b7764 | ||
|
|
e0e2ea5b44 | ||
|
|
1e3a4748f0 | ||
|
|
7685b8fe54 | ||
|
|
15789273b6 | ||
|
|
388958076a | ||
|
|
9783a8b140 | ||
|
|
c95f41c8c1 | ||
|
|
e8384a4aa7 | ||
|
|
45dd45b375 | ||
|
|
32bab1552d | ||
|
|
6e320949e4 | ||
|
|
37110f558e | ||
|
|
c24b2e310b | ||
|
|
5ee4f5983c | ||
|
|
f4c78d9bb3 | ||
|
|
1ba958ee72 | ||
|
|
8c415e3836 | ||
|
|
557ced6bd0 | ||
|
|
03937787df | ||
|
|
4c61ea8cb6 | ||
|
|
1c347afc08 | ||
|
|
5972b8669c | ||
|
|
4031d7cc10 | ||
|
|
638949f7fc | ||
|
|
6832ec8405 | ||
|
|
271923b021 | ||
|
|
e9a15cd0ab | ||
|
|
2ebcf4be8f | ||
|
|
c285d013cf | ||
|
|
3efd10d119 | ||
|
|
e2113ccbf1 | ||
|
|
ce11a7e6d8 | ||
|
|
e62ec36755 | ||
|
|
bc3e6a9058 | ||
|
|
7cf4e9eb5a | ||
|
|
9db38465f2 | ||
|
|
6a5f3dcc2c | ||
|
|
6fba3bf8fd | ||
|
|
aab9c0b4b5 | ||
|
|
35e2d779d3 | ||
|
|
9f525145d1 | ||
|
|
f57ce4be19 | ||
|
|
911059d932 | ||
|
|
8a640b0e98 | ||
|
|
016f3d255a | ||
|
|
c76b266a54 | ||
|
|
8e6ff59fe5 | ||
|
|
b4014e6a41 | ||
|
|
e3575e5c16 | ||
|
|
11e43b9b02 | ||
|
|
6b2e45cbae | ||
|
|
ed8afb8f22 | ||
|
|
0b98743c72 | ||
|
|
c5a579f8aa | ||
|
|
6fc8810b22 | ||
|
|
a56fb75d4b | ||
|
|
d537f54eef | ||
|
|
606e90f42f | ||
|
|
1185054751 | ||
|
|
544141215e | ||
|
|
6f86c06e6c | ||
|
|
1258f4fa1f | ||
|
|
54f689f0a1 | ||
|
|
75f912c2f6 | ||
|
|
f6f928fce4 | ||
|
|
86ee679f34 | ||
|
|
5ef2d87d86 | ||
|
|
59a9c62acf | ||
|
|
e6d79fa3fb | ||
|
|
327765dfa6 | ||
|
|
68f8faf67a | ||
|
|
6358d9f245 | ||
|
|
37fa0c6d73 | ||
|
|
b20ce91552 | ||
|
|
7949628914 | ||
|
|
75f1fe4b7f | ||
|
|
b8571f167f | ||
|
|
5e3fec7c16 | ||
|
|
179287b44a | ||
|
|
9bee179b02 | ||
|
|
7f13313d27 | ||
|
|
d7df30fa3d | ||
|
|
6ab659a431 | ||
|
|
709651032e | ||
|
|
026485b3b5 | ||
|
|
72ff10dc87 | ||
|
|
975720436f | ||
|
|
2445b3dd9a | ||
|
|
a163ef4945 | ||
|
|
2141e6827d | ||
|
|
c76ca94f6e | ||
|
|
11e976a3ae | ||
|
|
ef9c3406e8 | ||
|
|
045dbeabac | ||
|
|
b5e735541e | ||
|
|
e84e3b5d55 | ||
|
|
ed2dac1761 | ||
|
|
d4e6dba5d4 | ||
|
|
4b2ffd9ca4 | ||
|
|
e2d40c5bcf | ||
|
|
c2ea64822a | ||
|
|
31a86ea639 | ||
|
|
d96397a96e | ||
|
|
b58d5afd8c | ||
|
|
6397a1e87f | ||
|
|
05bb053c57 | ||
|
|
49a8d977f3 | ||
|
|
faad68071e | ||
|
|
2f90cd3c13 | ||
|
|
8376020792 | ||
|
|
25367c6777 | ||
|
|
f3a6fbdb69 | ||
|
|
6a850d7e4a | ||
|
|
92dc5cb4c1 | ||
|
|
541e6ef086 | ||
|
|
ef94760242 | ||
|
|
1be18692d8 | ||
|
|
cc01c4e461 | ||
|
|
bcc155e68d | ||
|
|
c1d5d16b9f | ||
|
|
5d3ab006a5 | ||
|
|
94362af328 | ||
|
|
d9ecbdd461 | ||
|
|
7302f7da99 | ||
|
|
5cfd9749d6 | ||
|
|
8b2f9d8add | ||
|
|
65e484ed71 | ||
|
|
e53c4b6e2b | ||
|
|
a17ecece92 | ||
|
|
01e1b8e742 | ||
|
|
eaab080dfd | ||
|
|
9bf929b1ef | ||
|
|
2170eac4ba | ||
|
|
92a23e19ee | ||
|
|
8a4046bdb3 | ||
|
|
141a3934cf | ||
|
|
9bb68ef07e | ||
|
|
48b5b58c22 | ||
|
|
cef9f15c00 | ||
|
|
9c8b7837f6 | ||
|
|
d8a16f1258 | ||
|
|
c31c1f2363 | ||
|
|
8d75ee741c | ||
|
|
d232871f13 | ||
|
|
a9353e160c | ||
|
|
5a96607216 | ||
|
|
a0c330eca8 | ||
|
|
0c8fd63c9b | ||
|
|
1f1ff2b6ca | ||
|
|
84ebd31456 | ||
|
|
f9b0c2e98b | ||
|
|
936e997d08 | ||
|
|
f321ec496d | ||
|
|
b3f70e3bf4 | ||
|
|
a927903b9a | ||
|
|
ed29c7cbd5 | ||
|
|
d2cc34a519 | ||
|
|
eb702a0115 | ||
|
|
84e7733a04 | ||
|
|
4de15eac31 | ||
|
|
5724c1ff16 | ||
|
|
9d3cbea1a8 | ||
|
|
1f62d91aee | ||
|
|
71537e3d87 | ||
|
|
f5f4521b55 | ||
|
|
4d3f10f112 | ||
|
|
4d144a057b | ||
|
|
5eec48b138 | ||
|
|
bfafa96e0e | ||
|
|
aeb61c7b09 | ||
|
|
6c39725bc9 | ||
|
|
a58fb13493 | ||
|
|
72fd6f11bb | ||
|
|
e3073ba0e9 | ||
|
|
7f9245ab5d | ||
|
|
9bd86fed2e | ||
|
|
064aa3d6bf | ||
|
|
6e0fc63602 | ||
|
|
a46e74376c | ||
|
|
a8216826d1 | ||
|
|
e0300d66c2 | ||
|
|
f605cd242a | ||
|
|
218d2ce201 | ||
|
|
de99f589e8 | ||
|
|
c4f247d8a7 | ||
|
|
438df53a71 | ||
|
|
0ac83273ec | ||
|
|
c2555f41ce | ||
|
|
2a4cfdf5df | ||
|
|
7b773c0e80 | ||
|
|
a122521b04 | ||
|
|
03fd9afd4f | ||
|
|
5c68c650d8 | ||
|
|
95650b67ba | ||
|
|
22fd2199f5 | ||
|
|
ff72a2e0e4 | ||
|
|
5e5b59766e | ||
|
|
6b782efbb2 | ||
|
|
90da3de4bd | ||
|
|
5423319001 | ||
|
|
2c2e5a67af | ||
|
|
02d96bfae9 | ||
|
|
789ef8fc73 | ||
|
|
08995ceeca | ||
|
|
b429a9636e | ||
|
|
77d82a1933 | ||
|
|
b4b820acca | ||
|
|
dfcade9159 | ||
|
|
b988ca4bff | ||
|
|
1834616310 | ||
|
|
6d9f217a78 | ||
|
|
be67b1f84b | ||
|
|
974746e0e7 | ||
|
|
43248385e1 | ||
|
|
037cec6dcd | ||
|
|
4a55aada5a | ||
|
|
09eb61b0a3 | ||
|
|
596d291efa | ||
|
|
c1876bfb75 | ||
|
|
98e30c4cab | ||
|
|
bce870327b | ||
|
|
24bf8e8010 | ||
|
|
72344ca8d0 | ||
|
|
934685c616 | ||
|
|
6e2a25dd71 | ||
|
|
bf03862346 | ||
|
|
619aed0f36 | ||
|
|
a58e5bf2fa | ||
|
|
5a1e875715 | ||
|
|
ba7d3d5387 | ||
|
|
8e061b40d0 | ||
|
|
7c05984d13 | ||
|
|
fd730dffef | ||
|
|
a3d3de70ce | ||
|
|
83ef891246 | ||
|
|
143270cbcc | ||
|
|
71062df266 | ||
|
|
4af328a42b | ||
|
|
5ad6c1493a | ||
|
|
893fd0841a | ||
|
|
97ba242d94 | ||
|
|
d086863f1f | ||
|
|
3fcae0e284 | ||
|
|
311562fdfc | ||
|
|
1315e92df5 | ||
|
|
4ba86e1d75 | ||
|
|
00aa9eaa0d | ||
|
|
490be5567c | ||
|
|
fc42747e23 | ||
|
|
07daa8b50e | ||
|
|
a11322a7de | ||
|
|
8420dacb5e | ||
|
|
75d85e90f8 | ||
|
|
86b7301fd9 | ||
|
|
4fea608fb0 | ||
|
|
a3ccd8fe64 | ||
|
|
076aa419a2 | ||
|
|
44a7bbbeb8 | ||
|
|
90ab77516e | ||
|
|
6d38219eda | ||
|
|
4f67096405 | ||
|
|
bff281300b | ||
|
|
3290ff2ac2 | ||
|
|
8817e28420 | ||
|
|
7a01bd0693 | ||
|
|
f8b8dfe85d | ||
|
|
aac6f60c7e | ||
|
|
98034c0f73 | ||
|
|
d12627a6fc | ||
|
|
ca24738bd4 | ||
|
|
c6f6f98078 | ||
|
|
997bba6972 | ||
|
|
4059eba71f | ||
|
|
23a45729cb | ||
|
|
83c1662822 | ||
|
|
45a464b175 | ||
|
|
9e8545485d | ||
|
|
a1fc2258b0 | ||
|
|
d8932109aa | ||
|
|
10d9af0fe7 | ||
|
|
7e0504115f | ||
|
|
99e063eb3e | ||
|
|
d73fa4ffe9 | ||
|
|
689f220fb7 | ||
|
|
dc818d6153 | ||
|
|
23d7bc06c7 | ||
|
|
a6695fb137 | ||
|
|
f6763900fb | ||
|
|
e79556ccba | ||
|
|
61f00eceec | ||
|
|
a2c465668d | ||
|
|
e1710eb20f | ||
|
|
1f63b3522a | ||
|
|
618608b7bb | ||
|
|
6fa57844e9 | ||
|
|
c315a65f51 | ||
|
|
6a9ff3492c | ||
|
|
0cd5205c23 | ||
|
|
b6a9c11e2a | ||
|
|
5e16bc3b84 | ||
|
|
4e3d09f15e | ||
|
|
8277de374f | ||
|
|
74a3b03fd9 | ||
|
|
5f12ec24e8 | ||
|
|
c5ca897214 | ||
|
|
36df40fe8e | ||
|
|
29c99df6be | ||
|
|
df32a38336 | ||
|
|
70126ad348 | ||
|
|
cf2c4bf809 | ||
|
|
fc9493186b | ||
|
|
a9061b198b | ||
|
|
53e4926137 | ||
|
|
224ecf0e76 | ||
|
|
e5c8cc9bce | ||
|
|
e0ebff857f | ||
|
|
34144cf3b8 | ||
|
|
92141dc129 | ||
|
|
ad23b8ebfe | ||
|
|
4febf91de2 | ||
|
|
9cf1fc050c | ||
|
|
9ceedeb215 | ||
|
|
176747c108 | ||
|
|
9fd2879b98 | ||
|
|
1992ac7119 | ||
|
|
b1cc68a7a0 | ||
|
|
f65754214d | ||
|
|
9ec5f3116b | ||
|
|
22c58c3d41 | ||
|
|
1b9dcf16cf | ||
|
|
1510f92858 | ||
|
|
5f8ceb6f0a | ||
|
|
1c8801f520 | ||
|
|
f5e9299854 | ||
|
|
b37b623d18 | ||
|
|
86e10be36a | ||
|
|
63be562cac | ||
|
|
97c80efb96 | ||
|
|
5134982390 | ||
|
|
2932a4ac26 | ||
|
|
6f838d31dc | ||
|
|
3ed179b960 | ||
|
|
ba307d7f90 | ||
|
|
a09eb519dc | ||
|
|
6627aa64e3 | ||
|
|
0d62d4148e | ||
|
|
aec52b0907 | ||
|
|
ab3e9667a4 | ||
|
|
fdd8daef2b | ||
|
|
edf358c691 | ||
|
|
a17aa4967b | ||
|
|
ec90b8d3eb | ||
|
|
ef77bf7c11 | ||
|
|
56fe7393f2 | ||
|
|
4e4b931cc5 | ||
|
|
8f1d970bd2 | ||
|
|
f4e84e5fed | ||
|
|
6542799382 | ||
|
|
01bd7bcede | ||
|
|
9289dc81a7 | ||
|
|
780c4affde | ||
|
|
dfc4c813c8 | ||
|
|
8882477338 | ||
|
|
57937c0170 | ||
|
|
67a3b14051 | ||
|
|
2a8f03d0cc | ||
|
|
8986cd9450 | ||
|
|
43b5e1ec94 | ||
|
|
0b85e9757e | ||
|
|
e7ac668d5e | ||
|
|
3d7eadc31c | ||
|
|
f56e209eff | ||
|
|
004dbca8c9 | ||
|
|
b259a3b02b | ||
|
|
3aee3fd29a | ||
|
|
39e0aa489f | ||
|
|
eba9563ed1 | ||
|
|
4e6d736271 | ||
|
|
3035f7d767 | ||
|
|
9ed16bf704 | ||
|
|
d1c941f887 | ||
|
|
9465db5bf8 | ||
|
|
0d8bbd04e7 | ||
|
|
b66f1e96cb | ||
|
|
5e59e0d366 | ||
|
|
19f7f22b09 | ||
|
|
51fd0484ca | ||
|
|
4ff3dbb7c8 | ||
|
|
bf3bcc211e | ||
|
|
9df80acdda | ||
|
|
01744f2ffe | ||
|
|
bf43381064 | ||
|
|
a82f7d8def | ||
|
|
25e6e0f478 | ||
|
|
fe99613e2f | ||
|
|
ee7d79e976 | ||
|
|
77c8ab6ae2 | ||
|
|
a09b1eab09 | ||
|
|
1255a01578 | ||
|
|
2bbd0f925c | ||
|
|
200bff0b01 | ||
|
|
bf76e1d0c8 | ||
|
|
7de0d13881 | ||
|
|
dcd6d9e32a | ||
|
|
d6bdc34668 | ||
|
|
44d57dc83f | ||
|
|
122cea0823 | ||
|
|
38af066c3f | ||
|
|
99bcc4391a | ||
|
|
877449997f | ||
|
|
e683e449b2 | ||
|
|
8332f79275 | ||
|
|
453b76a0d6 | ||
|
|
4755a122c4 | ||
|
|
b36d3b75d1 | ||
|
|
8eeceea916 | ||
|
|
ce8c62bb4a | ||
|
|
7a6039f0b2 | ||
|
|
d30f922093 | ||
|
|
d07f601f40 | ||
|
|
ec7cac7519 | ||
|
|
e73c107e7b | ||
|
|
ea213d636c | ||
|
|
4997baafa2 | ||
|
|
24d0951a88 | ||
|
|
fd7c06f10a | ||
|
|
c49d519b1f | ||
|
|
d68494a47c | ||
|
|
e21e62a0dc | ||
|
|
4fe8523c09 | ||
|
|
a5d342a01a | ||
|
|
d8783be67c | ||
|
|
893b39181e | ||
|
|
52d62abe4c | ||
|
|
9a3af69485 | ||
|
|
78bc611eb4 | ||
|
|
1046ede67a | ||
|
|
d3e01b75d6 | ||
|
|
b069a12800 | ||
|
|
fd81dbf559 | ||
|
|
ae40dc6d33 | ||
|
|
6b87da3063 | ||
|
|
2c9b868889 | ||
|
|
c540ba2fe5 | ||
|
|
46ec321fd4 | ||
|
|
be279bdb6b | ||
|
|
7b5fa53f3a | ||
|
|
c54d37b29a | ||
|
|
b6f22299d4 | ||
|
|
adc8462838 | ||
|
|
7b934e415c | ||
|
|
b17bd65870 | ||
|
|
9560f33329 | ||
|
|
be38ac75f4 | ||
|
|
c4482cb12e | ||
|
|
7e14a43694 | ||
|
|
ef8c4ada2f | ||
|
|
5d9f852ce3 | ||
|
|
e68e325943 | ||
|
|
936f6c287a | ||
|
|
3f485a8164 | ||
|
|
3862773e3d | ||
|
|
950210348f | ||
|
|
4dcf55311a | ||
|
|
00e652bb29 | ||
|
|
2bc353b7a9 | ||
|
|
df8b205a8f | ||
|
|
3a79dab5d8 | ||
|
|
10f6544f3c | ||
|
|
ba7afdf938 | ||
|
|
60e898098d | ||
|
|
bda8d52083 | ||
|
|
a2f4542a48 | ||
|
|
ced954f51e | ||
|
|
a8f991bc07 | ||
|
|
a2c483ace8 | ||
|
|
e0b1068e8c | ||
|
|
48fc334f71 | ||
|
|
80d1e44776 | ||
|
|
daf8e4c45b | ||
|
|
dab153eb56 | ||
|
|
5b15d01262 | ||
|
|
21375d32b5 | ||
|
|
4e9e10fd37 | ||
|
|
2f0cb6f320 | ||
|
|
53c67839c0 | ||
|
|
a9d1a8f56e | ||
|
|
6427879bc9 | ||
|
|
ee61f764c7 | ||
|
|
79760a1d96 | ||
|
|
5b36439209 | ||
|
|
da7e4924d3 | ||
|
|
c05a8afa67 | ||
|
|
db7cc1d0b7 | ||
|
|
57df3f966d | ||
|
|
ecd014b868 | ||
|
|
3f0df08bd2 | ||
|
|
b45cc6129d | ||
|
|
c9e45e769c | ||
|
|
36897f47f7 | ||
|
|
e059a33998 | ||
|
|
085c0dc97b | ||
|
|
5cb11a656f | ||
|
|
e11ef2bc3b | ||
|
|
9e626240ef | ||
|
|
2f8acabef9 | ||
|
|
2028017cd9 | ||
|
|
e2fed6bcb6 | ||
|
|
ad4a8a0d16 | ||
|
|
ef275a4e85 | ||
|
|
1d4dac147b | ||
|
|
3d442bed0a | ||
|
|
0c9f12912a | ||
|
|
1c2bb5d005 | ||
|
|
7408765a07 | ||
|
|
7683a21fef | ||
|
|
425e7d322f | ||
|
|
2c6fdb663b | ||
|
|
45eb0e2f38 | ||
|
|
ccf58ca2e7 | ||
|
|
3567508622 | ||
|
|
21fb8867ed | ||
|
|
bb703c962a | ||
|
|
3e4a6b5291 | ||
|
|
3356962377 | ||
|
|
54b34eb0ed | ||
|
|
4bdbf25c20 | ||
|
|
a959176420 |
No files matched your search
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
# .ansible-lint
|
||||||
|
# exclude_paths included in this file are parsed relative to this file's location
|
||||||
|
# and not relative to the CWD of execution. CLI arguments passed to the --exclude
|
||||||
|
# option will be parsed relative to the CWD of execution.
|
||||||
|
exclude_paths:
|
||||||
|
- .cache/ # implicit unless exclude_paths is defined in config
|
||||||
|
- .yamllint
|
||||||
|
- ../molecule/
|
||||||
|
- ../.github/
|
||||||
|
|
||||||
|
skip_list:
|
||||||
|
- fqcn-builtins
|
||||||
|
|
||||||
|
mock_roles:
|
||||||
|
- geerlingguy.git
|
||||||
|
- nginxinc.nginx
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
name: Bug report
|
name: Bug report
|
||||||
about: Create a report to help us improve
|
about: Create a report to help us improve
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Describe the bug**
|
**Describe the bug**
|
||||||
@@ -11,27 +10,37 @@ A clear and concise description of what the bug is.
|
|||||||
A clear and concise description of what you expected to happen.
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
**Actual behavior**
|
**Actual behavior**
|
||||||
|
|
||||||
<!--- Paste verbatim command output between quotes -->
|
<!--- Paste verbatim command output between quotes -->
|
||||||
|
|
||||||
```paste below
|
```paste below
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Example Playbook**
|
**Example Playbook**
|
||||||
|
|
||||||
<!--- Paste an example playbook that can be used to reproduce the problem between quotes -->
|
<!--- Paste an example playbook that can be used to reproduce the problem between quotes -->
|
||||||
|
|
||||||
```paste below
|
```paste below
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**OS / Environment**
|
**OS / Environment**
|
||||||
|
|
||||||
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
|
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
|
||||||
|
|
||||||
**Ansible Version**
|
**Ansible Version**
|
||||||
|
|
||||||
<!--- Paste verbatim output from "ansible --version" between quotes -->
|
<!--- Paste verbatim output from "ansible --version" between quotes -->
|
||||||
|
|
||||||
```paste below
|
```paste below
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Role Version**
|
**Role Version**
|
||||||
|
|
||||||
<!--- Paste version of the role between quotes -->
|
<!--- Paste version of the role between quotes -->
|
||||||
|
|
||||||
```paste below
|
```paste below
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
name: Feature request
|
name: Feature request
|
||||||
about: Suggest an idea for this project
|
about: Suggest an idea for this project
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
# To get started with Dependabot version updates, you'll need to specify which
|
||||||
|
# package ecosystems to update and where the package manifests are located.
|
||||||
|
# Please see the documentation for all configuration options:
|
||||||
|
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||||
|
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "pip" # See documentation for possible values
|
||||||
|
directory: "/" # Location of package manifests
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
mysql_hardening:
|
||||||
|
- 'roles/mysql_hardening/**'
|
||||||
|
- 'molecule/mysql_hardening/**'
|
||||||
|
- '.github/workflows/mysql_hardening.yml'
|
||||||
|
|
||||||
|
os_hardening:
|
||||||
|
- 'roles/os_hardening/**'
|
||||||
|
- 'molecule/os_hardening/**'
|
||||||
|
- '.github/workflows/os_hardening.yml'
|
||||||
|
|
||||||
|
ssh_hardening:
|
||||||
|
- 'roles/ssh_hardening/**'
|
||||||
|
- 'molecule/ssh_hardening/**'
|
||||||
|
- 'molecule/ssh_hardening_custom_tests/**'
|
||||||
|
- '.github/workflows/ssh_hardening.yml'
|
||||||
|
- '.github/workflows/ssh_hardening_custom_tests.yml'
|
||||||
|
|
||||||
|
nginx_hardening:
|
||||||
|
- 'roles/nginx_hardening/**'
|
||||||
|
- 'molecule/nginx_hardening/**'
|
||||||
|
- '.github/workflows/nginx_hardening.yml'
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
name: Ansible Lint # feel free to pick your own name
|
||||||
|
|
||||||
|
on: [push, pull_request] # yamllint disable-line rule:truthy
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ansible-lint:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# Important: This sets up your GITHUB_WORKSPACE environment variable
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Lint Ansible Playbook
|
||||||
|
# replace "master" with any valid ref
|
||||||
|
uses: ansible/ansible-lint-action@main
|
||||||
|
with:
|
||||||
|
# [required]
|
||||||
|
# Paths to ansible files (i.e., playbooks, tasks, handlers etc..)
|
||||||
|
# or valid Ansible directories according to the Ansible role
|
||||||
|
# directory structure.
|
||||||
|
# If you want to lint multiple ansible files, use the following syntax
|
||||||
|
# targets: |
|
||||||
|
# playbook_1.yml
|
||||||
|
# playbook_2.yml
|
||||||
|
targets: "roles/"
|
||||||
|
# [optional]
|
||||||
|
# Arguments to override a package and its version to be set explicitly.
|
||||||
|
# Must follow the example syntax.
|
||||||
|
# override-deps: |
|
||||||
|
# ansible==2.9
|
||||||
|
# ansible-lint==4.2.0
|
||||||
|
override-deps: |
|
||||||
|
rich>=9.5.1,<11.0.0
|
||||||
|
# [optional]
|
||||||
|
# Arguments to be passed to the ansible-lint
|
||||||
|
|
||||||
|
# Options:
|
||||||
|
# -q quieter, although not silent output
|
||||||
|
# -p parseable output in the format of pep8
|
||||||
|
# --parseable-severity parseable output including severity of rule
|
||||||
|
# -r RULESDIR specify one or more rules directories using one or
|
||||||
|
# more -r arguments. Any -r flags override the default
|
||||||
|
# rules in ansiblelint/rules, unless -R is also used.
|
||||||
|
# -R Use default rules in ansiblelint/rules in addition to
|
||||||
|
# any extra
|
||||||
|
# rules directories specified with -r. There is no need
|
||||||
|
# to specify this if no -r flags are used
|
||||||
|
# -t TAGS only check rules whose id/tags match these values
|
||||||
|
# -x SKIP_LIST only check rules whose id/tags do not match these
|
||||||
|
# values
|
||||||
|
# --nocolor disable colored output
|
||||||
|
# --exclude=EXCLUDE_PATHS
|
||||||
|
# path to directories or files to skip. This option is
|
||||||
|
# repeatable.
|
||||||
|
# -c C Specify configuration file to use. Defaults to ".ansible-lint"
|
||||||
|
args: ""
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
name: "Enforce PR labels"
|
||||||
|
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
pull_request_target:
|
||||||
|
types: [labeled, unlabeled, opened, edited, synchronize]
|
||||||
|
jobs:
|
||||||
|
enforce-label:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/labeler@main
|
||||||
|
with:
|
||||||
|
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
name: Publish collection to Ansible Galaxy
|
||||||
|
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
release:
|
||||||
|
types:
|
||||||
|
- published
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
# deploy the collection first, because if it fails, we don't want
|
||||||
|
# to update the galaxy.yml
|
||||||
|
- name: Deploy the collection
|
||||||
|
uses: artis3n/ansible_galaxy_collection@v2
|
||||||
|
with:
|
||||||
|
api_key: ${{ secrets.GALAXY_API_KEY }}
|
||||||
|
galaxy_version: ${{ github.event.release.tag_name }}
|
||||||
|
|
||||||
|
# checkout master instead of the release-tag so we can push the galaxy.yml
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
ref: master
|
||||||
|
|
||||||
|
- name: update galaxy.yml with new version
|
||||||
|
uses: microsoft/variable-substitution@v1
|
||||||
|
with:
|
||||||
|
files: 'galaxy.yml'
|
||||||
|
env:
|
||||||
|
version: "${{ github.event.release.tag_name }}"
|
||||||
|
|
||||||
|
- name: push galaxy.yml
|
||||||
|
uses: github-actions-x/[email protected]
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
push-branch: 'master'
|
||||||
|
commit-message: 'update galaxy.yml with new version'
|
||||||
|
force-add: 'true'
|
||||||
|
files: galaxy.yml
|
||||||
|
name: dev-sec CI
|
||||||
|
email: [email protected]
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
---
|
||||||
|
name: "devsec.mysql_hardening"
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- 'roles/mysql_hardening/**'
|
||||||
|
- 'molecule/mysql_hardening/**'
|
||||||
|
- '.github/workflows/mysql_hardening.yml'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'roles/mysql_hardening/**'
|
||||||
|
- 'molecule/mysql_hardening/**'
|
||||||
|
- '.github/workflows/mysql_hardening.yml'
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
env:
|
||||||
|
PY_COLORS: 1
|
||||||
|
ANSIBLE_FORCE_COLOR: 1
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
molecule_distro:
|
||||||
|
- centos7
|
||||||
|
- rocky8
|
||||||
|
- ubuntu1804
|
||||||
|
- ubuntu2004
|
||||||
|
- debian9
|
||||||
|
- debian10
|
||||||
|
# - amazon # geerlingguy.mysql does not support fedora
|
||||||
|
# - arch # needs to be fixed
|
||||||
|
# - opensuse_tumbleweed # needs to be fixed
|
||||||
|
# - fedora # geerlingguy.mysql does not support fedora
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: ansible_collections/devsec/hardening
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Set up Python 3.7
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
with:
|
||||||
|
python-version: 3.7
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt install git
|
||||||
|
python -m pip install --no-cache-dir --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
|
|
||||||
|
- name: Create default collection path symlink
|
||||||
|
run: |
|
||||||
|
mkdir -p /home/runner/.ansible
|
||||||
|
ln -s /home/runner/work/ansible-os-hardening/ansible-os-hardening /home/runner/.ansible/collections
|
||||||
|
|
||||||
|
# that was a hard one to fix. robert did it thankfully
|
||||||
|
# https://github.com/robertdebock/ansible-role-mysql/commit/7562e99099b06282391ab7ed102b393a0406d212
|
||||||
|
- name: disable apparmor on debian systems
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
sudo apt-get install apparmor-profiles
|
||||||
|
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
|
||||||
|
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
|
||||||
|
if: ${{ startsWith(matrix.molecule_distro, 'Debian') }}
|
||||||
|
|
||||||
|
- name: Test with molecule
|
||||||
|
run: |
|
||||||
|
molecule --version
|
||||||
|
molecule test -s mysql_hardening
|
||||||
|
env:
|
||||||
|
MOLECULE_DISTRO: ${{ matrix.molecule_distro }}
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
---
|
||||||
|
name: "devsec.nginx_hardening"
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- 'roles/nginx_hardening/**'
|
||||||
|
- 'molecule/nginx_hardening/**'
|
||||||
|
- '.github/workflows/nginx_hardening.yml'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'roles/nginx_hardening/**'
|
||||||
|
- 'molecule/nginx_hardening/**'
|
||||||
|
- '.github/workflows/nginx_hardening.yml'
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
env:
|
||||||
|
PY_COLORS: 1
|
||||||
|
ANSIBLE_FORCE_COLOR: 1
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
molecule_distro:
|
||||||
|
- centos7
|
||||||
|
- rocky8
|
||||||
|
- ubuntu1804
|
||||||
|
- ubuntu2004
|
||||||
|
- debian9
|
||||||
|
- debian10
|
||||||
|
- amazon
|
||||||
|
# - arch # needs to be fixed
|
||||||
|
# - opensuse_tumbleweed # needs to be fixed
|
||||||
|
# - fedora # no support from geerlingguy role
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: ansible_collections/devsec/hardening
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Set up Python 3.7
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
with:
|
||||||
|
python-version: 3.7
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt install git
|
||||||
|
python -m pip install --no-cache-dir --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
|
|
||||||
|
- name: Create default collection path symlink
|
||||||
|
run: |
|
||||||
|
mkdir -p /home/runner/.ansible
|
||||||
|
ln -s /home/runner/work/ansible-os-hardening/ansible-os-hardening /home/runner/.ansible/collections
|
||||||
|
|
||||||
|
- name: Test with molecule
|
||||||
|
run: |
|
||||||
|
molecule --version
|
||||||
|
molecule test -s nginx_hardening
|
||||||
|
env:
|
||||||
|
MOLECULE_DISTRO: ${{ matrix.molecule_distro }}
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
name: "devsec.os_hardening"
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- 'roles/os_hardening/**'
|
||||||
|
- 'molecule/os_hardening/**'
|
||||||
|
- '.github/workflows/os_hardening.yml'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'roles/os_hardening/**'
|
||||||
|
- 'molecule/os_hardening/**'
|
||||||
|
- '.github/workflows/os_hardening.yml'
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
env:
|
||||||
|
PY_COLORS: 1
|
||||||
|
ANSIBLE_FORCE_COLOR: 1
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
molecule_distro:
|
||||||
|
- centos7
|
||||||
|
- rocky8
|
||||||
|
- ubuntu1804
|
||||||
|
- ubuntu2004
|
||||||
|
- debian9
|
||||||
|
- debian10
|
||||||
|
- amazon
|
||||||
|
- opensuse_tumbleweed
|
||||||
|
# - arch # needs to be fixed
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: ansible_collections/devsec/hardening
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Set up Python 3.7
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
with:
|
||||||
|
python-version: 3.7
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt install git
|
||||||
|
python -m pip install --no-cache-dir --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
|
|
||||||
|
- name: Create default collection path symlink
|
||||||
|
run: |
|
||||||
|
mkdir -p /home/runner/.ansible
|
||||||
|
ln -s /home/runner/work/ansible-os-hardening/ansible-os-hardening /home/runner/.ansible/collections
|
||||||
|
|
||||||
|
- name: Test with molecule
|
||||||
|
run: |
|
||||||
|
if [ "$MOLECULE_DISTRO" = "opensuse_tumbleweed" ]; then
|
||||||
|
export MOLECULE_DOCKER_COMMAND="/usr/lib/systemd/systemd"
|
||||||
|
fi
|
||||||
|
molecule --version
|
||||||
|
molecule test -s os_hardening
|
||||||
|
env:
|
||||||
|
MOLECULE_DISTRO: ${{ matrix.molecule_distro }}
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
name: "devsec.os_hardening VM"
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- 'roles/os_hardening/**'
|
||||||
|
- 'molecule/os_hardening_vm/**'
|
||||||
|
- '.github/workflows/os_hardening_vm.yml'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'roles/os_hardening/**'
|
||||||
|
- 'molecule/os_hardening_vm/**'
|
||||||
|
- '.github/workflows/os_hardening_vm.yml'
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: self-hosted
|
||||||
|
env:
|
||||||
|
PY_COLORS: 1
|
||||||
|
ANSIBLE_FORCE_COLOR: 1
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
molecule_distro:
|
||||||
|
- centos7
|
||||||
|
- rocky8
|
||||||
|
- ubuntu1804
|
||||||
|
- ubuntu2004
|
||||||
|
- debian9
|
||||||
|
- debian10
|
||||||
|
# - opensuse42 # opensuse currently cannot get an ip address
|
||||||
|
# - arch - arch is currently not supported by cinc-auditor
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: ansible_collections/devsec/hardening
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Create default collection path symlink
|
||||||
|
run: |
|
||||||
|
mkdir -p /home/runner/.ansible
|
||||||
|
ln -fs /opt/actions-runner/_work/ansible-collection-hardening/ansible-collection-hardening/ansible_collections /home/runner/.ansible/collections
|
||||||
|
|
||||||
|
- name: Test with molecule
|
||||||
|
run: |
|
||||||
|
molecule --version
|
||||||
|
molecule test -s os_hardening_vm
|
||||||
|
env:
|
||||||
|
MOLECULE_DISTRO: ${{ matrix.molecule_distro }}
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
# https://github.com/creyD/prettier_action
|
||||||
|
name: Prettier markdown files
|
||||||
|
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- '**.md'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
prettier-md:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 1
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Git checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
ref: ${{ github.head_ref }}
|
||||||
|
|
||||||
|
- name: Prettify code
|
||||||
|
uses: creyD/[email protected]
|
||||||
|
with:
|
||||||
|
prettier_options: --write {**/*,*}.md
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
---
|
||||||
|
name: New release
|
||||||
|
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
generate_changelog:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: create release draft
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
ref: master
|
||||||
|
|
||||||
|
- name: 'Get Previous tag'
|
||||||
|
id: previoustag
|
||||||
|
uses: "WyriHaximus/github-action-get-previous-tag@master"
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|
||||||
|
- name: calculate next version
|
||||||
|
id: version
|
||||||
|
uses: patrickjahns/version-drafter-action@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Generate changelog
|
||||||
|
uses: charmixer/auto-changelog-action@v1
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
future_release: ${{ steps.version.outputs.next-version }}
|
||||||
|
# this excludes all versions prior to the collection-release
|
||||||
|
# since they break the changelog generation with the error:
|
||||||
|
# "No common ancestor between ... and $version"
|
||||||
|
exclude_tags_regex: '[0-6]\.\d\.\d'
|
||||||
|
issue_line_labels: mysql_hardening,os_hardening,ssh_hardening,nginx_hardening
|
||||||
|
|
||||||
|
- name: push changelog
|
||||||
|
uses: github-actions-x/[email protected]
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
push-branch: 'master'
|
||||||
|
commit-message: 'update changelog'
|
||||||
|
force-add: 'true'
|
||||||
|
files: CHANGELOG.md
|
||||||
|
name: dev-sec CI
|
||||||
|
email: [email protected]
|
||||||
|
|
||||||
|
- name: Generate changelog for the release
|
||||||
|
run: |
|
||||||
|
sed '/## \[${{ steps.previoustag.outputs.tag }}\]/Q' CHANGELOG.md > CHANGELOGRELEASE.md
|
||||||
|
|
||||||
|
- name: Read CHANGELOG.md
|
||||||
|
id: package
|
||||||
|
uses: juliangruber/read-file-action@v1
|
||||||
|
with:
|
||||||
|
path: ./CHANGELOGRELEASE.md
|
||||||
|
|
||||||
|
- name: Delete old drafts
|
||||||
|
uses: hugo19941994/[email protected]
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Create Release draft
|
||||||
|
id: create_release
|
||||||
|
uses: actions/create-release@v1
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
|
||||||
|
with:
|
||||||
|
release_name: ${{ steps.version.outputs.next-version }}
|
||||||
|
tag_name: ${{ steps.version.outputs.next-version }}
|
||||||
|
body: |
|
||||||
|
${{ steps.package.outputs.content }}
|
||||||
|
draft: true
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
---
|
||||||
|
name: "devsec.ssh_hardening"
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- 'roles/ssh_hardening/**'
|
||||||
|
- 'molecule/ssh_hardening/**'
|
||||||
|
- '.github/workflows/ssh_hardening.yml'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'roles/ssh_hardening/**'
|
||||||
|
- 'molecule/ssh_hardening/**'
|
||||||
|
- '.github/workflows/ssh_hardening.yml'
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
env:
|
||||||
|
PY_COLORS: 1
|
||||||
|
ANSIBLE_FORCE_COLOR: 1
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
molecule_distro:
|
||||||
|
- centos7
|
||||||
|
- rocky8
|
||||||
|
- fedora
|
||||||
|
- ubuntu1804
|
||||||
|
- ubuntu2004
|
||||||
|
- debian9
|
||||||
|
- debian10
|
||||||
|
- amazon
|
||||||
|
# - arch # needs to be fixed
|
||||||
|
# - opensuse_tumbleweed # baseline is not compatible with suse
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: ansible_collections/devsec/hardening
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Set up Python 3.7
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
with:
|
||||||
|
python-version: 3.7
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt install git
|
||||||
|
python -m pip install --no-cache-dir --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
|
|
||||||
|
- name: Create default collection path symlink
|
||||||
|
run: |
|
||||||
|
mkdir -p /home/runner/.ansible
|
||||||
|
ln -s /home/runner/work/ansible-os-hardening/ansible-os-hardening /home/runner/.ansible/collections
|
||||||
|
|
||||||
|
- name: Test with molecule
|
||||||
|
run: |
|
||||||
|
if [ "$MOLECULE_DISTRO" = "opensuse_tumbleweed" ]; then
|
||||||
|
export MOLECULE_DOCKER_COMMAND="/usr/lib/systemd/systemd"
|
||||||
|
fi
|
||||||
|
molecule --version
|
||||||
|
molecule test -s ssh_hardening
|
||||||
|
env:
|
||||||
|
MOLECULE_DISTRO: ${{ matrix.molecule_distro }}
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
---
|
||||||
|
name: "devsec.ssh_hardening with custom tests"
|
||||||
|
on: # yamllint disable-line rule:truthy
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- 'roles/ssh_hardening/**'
|
||||||
|
- 'molecule/ssh_hardening_custom_tests/**'
|
||||||
|
- '.github/workflows/ssh_hardening_custom_tests.yml'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- 'roles/ssh_hardening/**'
|
||||||
|
- 'molecule/ssh_hardening_custom_tests/**'
|
||||||
|
- '.github/workflows/ssh_hardening_custom_tests.yml'
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
env:
|
||||||
|
PY_COLORS: 1
|
||||||
|
ANSIBLE_FORCE_COLOR: 1
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
molecule_distro:
|
||||||
|
- centos7
|
||||||
|
- rocky8
|
||||||
|
- fedora
|
||||||
|
- ubuntu1804
|
||||||
|
- ubuntu2004
|
||||||
|
- debian9
|
||||||
|
- debian10
|
||||||
|
- amazon
|
||||||
|
# - arch # needs to be fixed
|
||||||
|
# - opensuse_tumbleweed # baseline is not compatible with suse
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: ansible_collections/devsec/hardening
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Set up Python 3.7
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
with:
|
||||||
|
python-version: 3.7
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt install git
|
||||||
|
python -m pip install --no-cache-dir --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
|
|
||||||
|
- name: Create default collection path symlink
|
||||||
|
run: |
|
||||||
|
mkdir -p /home/runner/.ansible
|
||||||
|
ln -s /home/runner/work/ansible-os-hardening/ansible-os-hardening /home/runner/.ansible/collections
|
||||||
|
|
||||||
|
- name: Test with molecule
|
||||||
|
run: |
|
||||||
|
if [ "$MOLECULE_DISTRO" = "opensuse_tumbleweed" ]; then
|
||||||
|
export MOLECULE_DOCKER_COMMAND="/usr/lib/systemd/systemd"
|
||||||
|
fi
|
||||||
|
molecule --version
|
||||||
|
molecule converge -s ssh_hardening_custom_tests
|
||||||
|
env:
|
||||||
|
MOLECULE_DISTRO: ${{ matrix.molecule_distro }}
|
||||||
|
working-directory: ansible_collections/devsec/hardening
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
[submodule "roles/windows_hardening"]
|
||||||
|
path = roles/windows_hardening
|
||||||
|
url = https://github.com/dev-sec/ansible-windows-hardening/
|
||||||
|
[submodule "roles/apache_hardening"]
|
||||||
|
path = roles/apache_hardening
|
||||||
|
url = https://github.com/dev-sec/ansible-apache-hardening/
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: vagrant
|
|
||||||
driver_config:
|
|
||||||
http_proxy: <%= ENV['http_proxy'] || nil %>
|
|
||||||
https_proxy: <%= ENV['https_proxy'] || nil %>
|
|
||||||
vagrantfiles:
|
|
||||||
- kitchen_vagrant_block.rb
|
|
||||||
|
|
||||||
provisioner:
|
|
||||||
name: ansible_playbook
|
|
||||||
hosts: all
|
|
||||||
require_ansible_repo: false
|
|
||||||
require_ansible_omnibus: true
|
|
||||||
require_chef_for_busser: false
|
|
||||||
require_ruby_for_busser: false
|
|
||||||
ansible_verbose: true
|
|
||||||
roles_path: ../ansible-os-hardening/
|
|
||||||
playbook: default.yml
|
|
||||||
http_proxy: <%= ENV['http_proxy'] || nil %>
|
|
||||||
https_proxy: <%= ENV['https_proxy'] || nil %>
|
|
||||||
|
|
||||||
transport:
|
|
||||||
max_ssh_sessions: 5
|
|
||||||
|
|
||||||
platforms:
|
|
||||||
- name: ubuntu14.04
|
|
||||||
driver_config:
|
|
||||||
box: opscode-ubuntu-14.04
|
|
||||||
box_url: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box
|
|
||||||
- name: ubuntu16.04
|
|
||||||
driver_config:
|
|
||||||
box: opscode-ubuntu-16.04
|
|
||||||
box_url: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-16.04_chef-provisionerless.box
|
|
||||||
- name: ubuntu18.04
|
|
||||||
driver_config:
|
|
||||||
box: ubuntu/bionic64
|
|
||||||
- name: centos6
|
|
||||||
driver_config:
|
|
||||||
box: bento/centos-6.9
|
|
||||||
- name: centos7
|
|
||||||
driver_config:
|
|
||||||
box: bento/centos-7.3
|
|
||||||
- name: oracle6
|
|
||||||
driver_config:
|
|
||||||
box: oracle-6.5
|
|
||||||
box_url: https://storage.us2.oraclecloud.com/v1/istoilis-istoilis/vagrant/oel65-64.box
|
|
||||||
- name: oracle7
|
|
||||||
driver_config:
|
|
||||||
box: boxcutter/ol72
|
|
||||||
- name: debian7
|
|
||||||
driver_config:
|
|
||||||
box: bento/debian-7.11
|
|
||||||
- name: debian8
|
|
||||||
driver_config:
|
|
||||||
box: bento/debian-8.8
|
|
||||||
- name: debian9
|
|
||||||
driver_config:
|
|
||||||
box: bento/debian-9.0
|
|
||||||
|
|
||||||
verifier:
|
|
||||||
name: inspec
|
|
||||||
sudo: true
|
|
||||||
inspec_tests:
|
|
||||||
- https://github.com/dev-sec/linux-baseline/
|
|
||||||
|
|
||||||
suites:
|
|
||||||
- name: os
|
|
||||||
-101
@@ -1,101 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
use_sudo: false
|
|
||||||
privileged: true
|
|
||||||
http_proxy: <%= ENV['http_proxy'] || nil %>
|
|
||||||
https_proxy: <%= ENV['https_proxy'] || nil %>
|
|
||||||
|
|
||||||
transport:
|
|
||||||
max_ssh_sessions: 5
|
|
||||||
|
|
||||||
provisioner:
|
|
||||||
name: ansible_playbook
|
|
||||||
hosts: all
|
|
||||||
require_ansible_repo: false
|
|
||||||
require_chef_for_busser: false
|
|
||||||
require_ruby_for_busser: false
|
|
||||||
ansible_verbose: true
|
|
||||||
ansible_diff: true
|
|
||||||
hosts: all
|
|
||||||
roles_path: ../ansible-os-hardening/
|
|
||||||
http_proxy: <%= ENV['http_proxy'] || nil %>
|
|
||||||
https_proxy: <%= ENV['https_proxy'] || nil %>
|
|
||||||
playbook: tests/test.yml
|
|
||||||
|
|
||||||
platforms:
|
|
||||||
- name: centos6-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-centos6-ansible:latest
|
|
||||||
platform: centos
|
|
||||||
- name: centos7-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-centos7-ansible:latest
|
|
||||||
platform: centos
|
|
||||||
run_command: /sbin/init
|
|
||||||
provision_command:
|
|
||||||
- sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
|
|
||||||
- systemctl enable sshd.service
|
|
||||||
- name: oracle6-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-oracle6-ansible:latest
|
|
||||||
platform: centos
|
|
||||||
- name: oracle7-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-oracle7-ansible:latest
|
|
||||||
run_command: /sbin/init
|
|
||||||
platform: centos
|
|
||||||
provision_command:
|
|
||||||
- sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
|
|
||||||
- systemctl enable sshd.service
|
|
||||||
- name: ubuntu1404-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-ubuntu1404-ansible:latest
|
|
||||||
platform: ubuntu
|
|
||||||
- name: ubuntu1604-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-ubuntu1604-ansible:latest
|
|
||||||
platform: ubuntu
|
|
||||||
run_command: /sbin/init
|
|
||||||
provision_command:
|
|
||||||
- systemctl enable ssh.service
|
|
||||||
- name: ubuntu1804-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-ubuntu1804-ansible:latest
|
|
||||||
platform: ubuntu
|
|
||||||
run_command: /sbin/init
|
|
||||||
provision_command:
|
|
||||||
- systemctl enable ssh.service
|
|
||||||
- name: debian7-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-debian7-ansible:latest
|
|
||||||
platform: debian
|
|
||||||
- name: debian8-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-debian8-ansible:latest
|
|
||||||
platform: debian
|
|
||||||
- name: debian9-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-debian9-ansible:latest
|
|
||||||
platform: debian
|
|
||||||
run_command: /sbin/init
|
|
||||||
provision_command:
|
|
||||||
- apt install -y systemd-sysv
|
|
||||||
- systemctl enable ssh.service
|
|
||||||
- name: amazon-ansible-latest
|
|
||||||
driver:
|
|
||||||
image: rndmh3ro/docker-amazon-ansible:latest
|
|
||||||
platform: centos
|
|
||||||
run_command: /sbin/init
|
|
||||||
provision_command:
|
|
||||||
- sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
|
|
||||||
- systemctl enable sshd.service
|
|
||||||
|
|
||||||
verifier:
|
|
||||||
name: inspec
|
|
||||||
sudo: true
|
|
||||||
inspec_tests:
|
|
||||||
- https://github.com/dev-sec/tests-os-hardening
|
|
||||||
|
|
||||||
suites:
|
|
||||||
- name: os
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
CHANGELOG.md
|
||||||
-72
@@ -1,72 +0,0 @@
|
|||||||
---
|
|
||||||
services: docker
|
|
||||||
|
|
||||||
env:
|
|
||||||
- distro: centos6
|
|
||||||
version: latest
|
|
||||||
init: /sbin/init
|
|
||||||
|
|
||||||
- distro: centos7
|
|
||||||
init: /lib/systemd/systemd
|
|
||||||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
||||||
version: latest
|
|
||||||
|
|
||||||
- distro: oracle6
|
|
||||||
version: latest
|
|
||||||
init: /sbin/init
|
|
||||||
|
|
||||||
# - distro: oracle7
|
|
||||||
# init: /lib/systemd/systemd
|
|
||||||
# run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
||||||
# version: latest
|
|
||||||
|
|
||||||
- distro: ubuntu1404
|
|
||||||
version: latest
|
|
||||||
init: /sbin/init
|
|
||||||
|
|
||||||
- distro: ubuntu1604
|
|
||||||
version: latest
|
|
||||||
init: /lib/systemd/systemd
|
|
||||||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
||||||
|
|
||||||
- distro: ubuntu1804
|
|
||||||
version: latest
|
|
||||||
init: /lib/systemd/systemd
|
|
||||||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
||||||
|
|
||||||
- distro: debian7
|
|
||||||
version: latest
|
|
||||||
init: /sbin/init
|
|
||||||
|
|
||||||
- distro: debian8
|
|
||||||
version: latest
|
|
||||||
init: /sbin/init
|
|
||||||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
||||||
|
|
||||||
- distro: debian9
|
|
||||||
version: latest
|
|
||||||
init: /lib/systemd/systemd
|
|
||||||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
||||||
|
|
||||||
- distro: amazon
|
|
||||||
init: /lib/systemd/systemd
|
|
||||||
version: latest
|
|
||||||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
# Pull container
|
|
||||||
- 'docker pull rndmh3ro/docker-${distro}-ansible:${version}'
|
|
||||||
|
|
||||||
script:
|
|
||||||
- container_id=$(mktemp)
|
|
||||||
# Run container in detached state.
|
|
||||||
- 'docker run --detach --volume="${PWD}":/etc/ansible/roles/ansible-os-hardening:ro ${run_opts} rndmh3ro/docker-${distro}-ansible:${version} "${init}" > "${container_id}"'
|
|
||||||
|
|
||||||
# Test role.
|
|
||||||
- 'docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/ansible-os-hardening/tests/test.yml --diff --skip-tags "sysctl"'
|
|
||||||
|
|
||||||
# Verify role
|
|
||||||
- 'inspec exec https://github.com/dev-sec/linux-baseline/ -t docker://$(cat ${container_id}) --controls=os-01 os-02 os-03 os-04 os-05 os-05b os-06 os-07 os-09 os-10 os-11 package-01 package-02 package-03 package-05 package-06 package-08 package-09 --no-distinct-exit'
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
# Based on ansible-lint config
|
||||||
|
extends: default
|
||||||
|
|
||||||
|
rules:
|
||||||
|
braces:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
brackets:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
colons:
|
||||||
|
max-spaces-after: -1
|
||||||
|
level: error
|
||||||
|
commas:
|
||||||
|
max-spaces-after: -1
|
||||||
|
level: error
|
||||||
|
empty-lines:
|
||||||
|
max: 3
|
||||||
|
level: error
|
||||||
|
hyphens:
|
||||||
|
level: error
|
||||||
|
key-duplicates: enable
|
||||||
|
line-length: disable
|
||||||
|
new-lines:
|
||||||
|
type: unix
|
||||||
+627
-208
@@ -1,288 +1,707 @@
|
|||||||
# Change Log
|
# Changelog
|
||||||
|
|
||||||
## [5.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/5.0.0) (2018-09-02)
|
## [7.15.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.15.0) (2022-07-08)
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.3.0...5.0.0)
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.14.3...7.15.0)
|
||||||
|
|
||||||
**Implemented enhancements:**
|
**Implemented enhancements:**
|
||||||
|
|
||||||
- Warning about "include" for tasks for ansible-playbook 2.4.0 \(devel f0a5854e39\) [\#131](https://github.com/dev-sec/ansible-os-hardening/issues/131)
|
- Harden mountpoints [\#531](https://github.com/dev-sec/ansible-collection-hardening/pull/531) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([lbayerlein](https://github.com/lbayerlein))
|
||||||
- fix problems with efi and vfat [\#190](https://github.com/dev-sec/ansible-os-hardening/pull/190) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- added os\_hardening\_enabled flag [\#186](https://github.com/dev-sec/ansible-os-hardening/pull/186) ([jcheroske](https://github.com/jcheroske))
|
|
||||||
- add amazon run opts to travis [\#183](https://github.com/dev-sec/ansible-os-hardening/pull/183) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- use package instead of yum and apt [\#180](https://github.com/dev-sec/ansible-os-hardening/pull/180) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- add oracle7 to travis [\#178](https://github.com/dev-sec/ansible-os-hardening/pull/178) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- fix wrong permissions passwdqc \#170 [\#176](https://github.com/dev-sec/ansible-os-hardening/pull/176) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- ipv4 forwarding comment is inconsistent with example [\#174](https://github.com/dev-sec/ansible-os-hardening/pull/174) ([carchrae](https://github.com/carchrae))
|
|
||||||
- Rename pam\_passwdqd.j2 to pam\_passwdqc.j2 [\#172](https://github.com/dev-sec/ansible-os-hardening/pull/172) ([martinbydefault](https://github.com/martinbydefault))
|
|
||||||
- Use package state 'present' since 'installed' is deprecated [\#168](https://github.com/dev-sec/ansible-os-hardening/pull/168) ([Normo](https://github.com/Normo))
|
|
||||||
- Update syntax to Ansible 2.4 [\#161](https://github.com/dev-sec/ansible-os-hardening/pull/161) ([thomasjpfan](https://github.com/thomasjpfan))
|
|
||||||
- add amazon linux testing [\#160](https://github.com/dev-sec/ansible-os-hardening/pull/160) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Add support for Amazon Linux [\#158](https://github.com/dev-sec/ansible-os-hardening/pull/158) ([woneill](https://github.com/woneill))
|
|
||||||
- install and configure auditd - fix inspec package-08 [\#144](https://github.com/dev-sec/ansible-os-hardening/pull/144) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Remove deprecated include for static tasks and use instead import\_tasks fix \#131 [\#132](https://github.com/dev-sec/ansible-os-hardening/pull/132) ([HelioCampos](https://github.com/HelioCampos))
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
**Fixed bugs:**
|
||||||
|
|
||||||
- minimize\_access: maximum recursion depth exceeded on Ansible 2.5 [\#171](https://github.com/dev-sec/ansible-os-hardening/issues/171)
|
- Linting [\#546](https://github.com/dev-sec/ansible-collection-hardening/pull/546) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
- wrong permissions passwdqc [\#170](https://github.com/dev-sec/ansible-os-hardening/issues/170)
|
|
||||||
- Update deprecated `include` statements [\#166](https://github.com/dev-sec/ansible-os-hardening/issues/166)
|
|
||||||
- Strongly recommend against disabling vfat by default [\#162](https://github.com/dev-sec/ansible-os-hardening/issues/162)
|
|
||||||
- System completely unresponsive after role execution [\#145](https://github.com/dev-sec/ansible-os-hardening/issues/145)
|
|
||||||
- do not install passwdqc on amazon linux [\#189](https://github.com/dev-sec/ansible-os-hardening/pull/189) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- add back run opts for debian 8 in travis [\#184](https://github.com/dev-sec/ansible-os-hardening/pull/184) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Fix core dump config file creation when core dumps are disabled [\#182](https://github.com/dev-sec/ansible-os-hardening/pull/182) ([Normo](https://github.com/Normo))
|
|
||||||
- change minimize access method [\#181](https://github.com/dev-sec/ansible-os-hardening/pull/181) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
|
|
||||||
## [4.3.0](https://github.com/dev-sec/ansible-os-hardening/tree/4.3.0) (2018-01-03)
|
## [7.14.3](https://github.com/dev-sec/ansible-collection-hardening/tree/7.14.3) (2022-06-29)
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.3.1...4.3.0)
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.14.2...7.14.3)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Version 7.14.2 not released to Ansible Galaxy [\#544](https://github.com/dev-sec/ansible-collection-hardening/issues/544)
|
||||||
|
- os\_hardening role: os\_ignore\_users not described in the Readme's variable topic [\#542](https://github.com/dev-sec/ansible-collection-hardening/issues/542)
|
||||||
|
- doc: incorrect description for ssh\_client\_alive\_count [\#540](https://github.com/dev-sec/ansible-collection-hardening/issues/540)
|
||||||
|
- 'legacy' branch is mentioned in README, but apparently doesn't exist [\#539](https://github.com/dev-sec/ansible-collection-hardening/issues/539)
|
||||||
|
- ansible\_role\_name is undefined [\#532](https://github.com/dev-sec/ansible-collection-hardening/issues/532)
|
||||||
|
- Can't sudo anymore after hardening [\#518](https://github.com/dev-sec/ansible-collection-hardening/issues/518)
|
||||||
|
- Any planned official support for RHEL/CentOS Stream 9? [\#517](https://github.com/dev-sec/ansible-collection-hardening/issues/517)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Improve documentation [\#541](https://github.com/dev-sec/ansible-collection-hardening/pull/541) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
|
||||||
|
## [7.14.2](https://github.com/dev-sec/ansible-collection-hardening/tree/7.14.2) (2022-02-28)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.14.1...7.14.2)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- debian 9's nginx doesn't support tls1.3 [\#526](https://github.com/dev-sec/ansible-collection-hardening/pull/526) [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Change permissions of the tmout.sh file [\#520](https://github.com/dev-sec/ansible-collection-hardening/pull/520) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([abejotaR](https://github.com/abejotaR))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- No such file directory error triggered by the kernel.unpriviliged\_userns\_clone configuration. [\#514](https://github.com/dev-sec/ansible-collection-hardening/issues/514)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- delete obsolete release drafts [\#530](https://github.com/dev-sec/ansible-collection-hardening/pull/530) ([schurzi](https://github.com/schurzi))
|
||||||
|
- add waivers to skip controls [\#529](https://github.com/dev-sec/ansible-collection-hardening/pull/529) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- remove centos8 tests [\#525](https://github.com/dev-sec/ansible-collection-hardening/pull/525) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [7.14.1](https://github.com/dev-sec/ansible-collection-hardening/tree/7.14.1) (2022-02-18)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.14.0...7.14.1)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- move sysctls to debian specific vars [\#524](https://github.com/dev-sec/ansible-collection-hardening/pull/524) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Error when using the ssh\_hardening role [\#519](https://github.com/dev-sec/ansible-collection-hardening/issues/519)
|
||||||
|
|
||||||
|
## [7.14.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.14.0) (2021-12-16)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.13.2...7.14.0)
|
||||||
|
|
||||||
**Implemented enhancements:**
|
**Implemented enhancements:**
|
||||||
|
|
||||||
- Update some RH settings in this role [\#155](https://github.com/dev-sec/ansible-os-hardening/issues/155)
|
- Add option to set timeout in seconds to logout users [\#516](https://github.com/dev-sec/ansible-collection-hardening/pull/516) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([lbayerlein](https://github.com/lbayerlein))
|
||||||
- Removal of core dump hardening configuration if core dumps are allowed [\#129](https://github.com/dev-sec/ansible-os-hardening/issues/129)
|
- add feature to disable coredump to limit task [\#511](https://github.com/dev-sec/ansible-collection-hardening/pull/511) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([lbayerlein](https://github.com/lbayerlein))
|
||||||
- Don't create home for system accounts [\#156](https://github.com/dev-sec/ansible-os-hardening/pull/156) ([oakey-b1](https://github.com/oakey-b1))
|
- change hidepid mount task state to mounted [\#510](https://github.com/dev-sec/ansible-collection-hardening/pull/510) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([alegrey91](https://github.com/alegrey91))
|
||||||
- Prevent disabling of filesystems via whitelist [\#153](https://github.com/dev-sec/ansible-os-hardening/pull/153) ([manuelprinz](https://github.com/manuelprinz))
|
- prettify nginx options [\#509](https://github.com/dev-sec/ansible-collection-hardening/pull/509) [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
- Add kernel hardening settings from Ubuntu /etc/sysctl.d [\#150](https://github.com/dev-sec/ansible-os-hardening/pull/150) ([kravietz](https://github.com/kravietz))
|
- Update nginx\_add\_header README to match default [\#506](https://github.com/dev-sec/ansible-collection-hardening/pull/506) [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([duffn](https://github.com/duffn))
|
||||||
- Removal of core dump hardening configuration if core dumps are allowed [\#146](https://github.com/dev-sec/ansible-os-hardening/pull/146) ([martinbydefault](https://github.com/martinbydefault))
|
- Updated dh\_params to 4096 [\#501](https://github.com/dev-sec/ansible-collection-hardening/pull/501) [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([ksaadDE](https://github.com/ksaadDE))
|
||||||
- add missing sysctl parameter [\#143](https://github.com/dev-sec/ansible-os-hardening/pull/143) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- update readme [\#139](https://github.com/dev-sec/ansible-os-hardening/pull/139) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
**Fixed bugs:**
|
||||||
|
|
||||||
- bug in ufw.j2 template [\#151](https://github.com/dev-sec/ansible-os-hardening/issues/151)
|
- Duplication of sysctl default parameter fs.protected\_hardlinks and fs.protected\_symlinks [\#502](https://github.com/dev-sec/ansible-collection-hardening/issues/502)
|
||||||
- replace single ticks with double ticks. fix \#151 [\#152](https://github.com/dev-sec/ansible-os-hardening/pull/152) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Fix duplicate sysctl config in fs [\#505](https://github.com/dev-sec/ansible-collection-hardening/pull/505) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([tekicat](https://github.com/tekicat))
|
||||||
- fixed tag [\#149](https://github.com/dev-sec/ansible-os-hardening/pull/149) ([martinbydefault](https://github.com/martinbydefault))
|
|
||||||
|
|
||||||
**Closed issues:**
|
|
||||||
|
|
||||||
- ansible hardening fails on ubuntu 16.04 with msg": "ERROR! 'sysctl\_rhel\_config' is undefined [\#147](https://github.com/dev-sec/ansible-os-hardening/issues/147)
|
|
||||||
- Enhancement: Test with TestInfra and Molecule [\#128](https://github.com/dev-sec/ansible-os-hardening/issues/128)
|
|
||||||
|
|
||||||
**Merged pull requests:**
|
**Merged pull requests:**
|
||||||
|
|
||||||
- move defaults to os-specific vars [\#157](https://github.com/dev-sec/ansible-os-hardening/pull/157) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Feature coredump [\#513](https://github.com/dev-sec/ansible-collection-hardening/pull/513) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
## [4.3.1](https://github.com/dev-sec/ansible-os-hardening/tree/4.3.1) (2017-09-13)
|
## [7.13.2](https://github.com/dev-sec/ansible-collection-hardening/tree/7.13.2) (2021-11-23)
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.2.0...4.3.1)
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.13.1...7.13.2)
|
||||||
|
|
||||||
- os\_security\_kernel\_enable\_sysrq is not implemented [\#115](https://github.com/dev-sec/ansible-os-hardening/issues/115)
|
## [7.13.1](https://github.com/dev-sec/ansible-collection-hardening/tree/7.13.1) (2021-11-23)
|
||||||
|
|
||||||
## [4.2.0](https://github.com/dev-sec/ansible-os-hardening/tree/4.2.0) (2017-08-08)
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.13.0...7.13.1)
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.1.0...4.2.0)
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Unable to use 7.13.0 Release [\#503](https://github.com/dev-sec/ansible-collection-hardening/issues/503)
|
||||||
|
|
||||||
|
## [7.13.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.13.0) (2021-11-15)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.12.0...7.13.0)
|
||||||
|
|
||||||
**Implemented enhancements:**
|
**Implemented enhancements:**
|
||||||
|
|
||||||
- add modprobe template, control os-10 [\#138](https://github.com/dev-sec/ansible-os-hardening/pull/138) ([rndmh3ro](https://github.com/rndmh3ro))
|
- os\_hardening: Provide a whitelist for yum repositories with non-signed RPMs [\#485](https://github.com/dev-sec/ansible-collection-hardening/issues/485)
|
||||||
- new task for delete netrc files, control os-09 [\#137](https://github.com/dev-sec/ansible-os-hardening/pull/137) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Disable ctrl-alt-del key combination [\#496](https://github.com/dev-sec/ansible-collection-hardening/pull/496) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([lbayerlein](https://github.com/lbayerlein))
|
||||||
- add passwd task, control os-03 [\#136](https://github.com/dev-sec/ansible-os-hardening/pull/136) ([rndmh3ro](https://github.com/rndmh3ro))
|
- implement sysctl-34 - link protection settings [\#494](https://github.com/dev-sec/ansible-collection-hardening/pull/494) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
- remove prelink package, control package-09 [\#135](https://github.com/dev-sec/ansible-os-hardening/pull/135) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Add whitelist option for yum repository files [\#487](https://github.com/dev-sec/ansible-collection-hardening/pull/487) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([darxriggs](https://github.com/darxriggs))
|
||||||
- style update [\#134](https://github.com/dev-sec/ansible-os-hardening/pull/134) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Add TLSv1.3 to nginx default configuration [\#470](https://github.com/dev-sec/ansible-collection-hardening/pull/470) [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([ksaadDE](https://github.com/ksaadDE))
|
||||||
- Fix ansible.cfg and use comment filter [\#130](https://github.com/dev-sec/ansible-os-hardening/pull/130) ([fazlearefin](https://github.com/fazlearefin))
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
|
||||||
|
|
||||||
- Why is rsync removed? [\#141](https://github.com/dev-sec/ansible-os-hardening/issues/141)
|
|
||||||
- playbook makes OS undetectable [\#124](https://github.com/dev-sec/ansible-os-hardening/issues/124)
|
|
||||||
- Centos7/RHEL7: Exec shield is enabled by default and not manageable anymore by sysctl.conf [\#118](https://github.com/dev-sec/ansible-os-hardening/issues/118)
|
|
||||||
- Remove rsync from package blacklist [\#142](https://github.com/dev-sec/ansible-os-hardening/pull/142) ([duk3luk3](https://github.com/duk3luk3))
|
|
||||||
|
|
||||||
**Merged pull requests:**
|
|
||||||
|
|
||||||
- remove execshield sysctl-parameter on rhel7 [\#119](https://github.com/dev-sec/ansible-os-hardening/pull/119) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
|
|
||||||
## [4.1.0](https://github.com/dev-sec/ansible-os-hardening/tree/4.1.0) (2017-06-27)
|
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.0.0...4.1.0)
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
|
||||||
|
|
||||||
- Change system accounts not on the user provided ignore-list items are not JSON serializable [\#125](https://github.com/dev-sec/ansible-os-hardening/issues/125)
|
|
||||||
- Could not find gem 'ruby \(\>= 2.1.0\)' [\#116](https://github.com/dev-sec/ansible-os-hardening/issues/116)
|
|
||||||
- The task sysctl fails when /etc/initramfs-tools is not present [\#111](https://github.com/dev-sec/ansible-os-hardening/issues/111)
|
|
||||||
- Deprecation warning always\_run [\#103](https://github.com/dev-sec/ansible-os-hardening/issues/103)
|
|
||||||
|
|
||||||
**Closed issues:**
|
**Closed issues:**
|
||||||
|
|
||||||
- Enhancement: Pin python dependencies for development and testing [\#127](https://github.com/dev-sec/ansible-os-hardening/issues/127)
|
- Please create the collection in ansible-galaxy [\#407](https://github.com/dev-sec/ansible-collection-hardening/issues/407)
|
||||||
- Update readme to include baselines [\#122](https://github.com/dev-sec/ansible-os-hardening/issues/122)
|
|
||||||
|
|
||||||
**Merged pull requests:**
|
**Merged pull requests:**
|
||||||
|
|
||||||
- Converts set to JSON-serializable list [\#126](https://github.com/dev-sec/ansible-os-hardening/pull/126) ([pestaa](https://github.com/pestaa))
|
- Improve testing: install packages on Arch Linux [\#499](https://github.com/dev-sec/ansible-collection-hardening/pull/499) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([darxriggs](https://github.com/darxriggs))
|
||||||
- add more sysctl settings, allow overwriting [\#120](https://github.com/dev-sec/ansible-os-hardening/pull/120) ([rndmh3ro](https://github.com/rndmh3ro))
|
- add old role names to tags in Galaxy [\#495](https://github.com/dev-sec/ansible-collection-hardening/pull/495) ([schurzi](https://github.com/schurzi))
|
||||||
|
- update minimum ansible version for roles [\#493](https://github.com/dev-sec/ansible-collection-hardening/pull/493) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- revive old tests with custom ssh settings [\#491](https://github.com/dev-sec/ansible-collection-hardening/pull/491) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
## [4.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/4.0.0) (2017-03-14)
|
## [7.12.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.12.0) (2021-10-21)
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/3.2.0...4.0.0)
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.11.0...7.12.0)
|
||||||
|
|
||||||
**Implemented enhancements:**
|
**Implemented enhancements:**
|
||||||
|
|
||||||
- Description of the Ansible roles of dev-sec says "This Ansible playbook" [\#97](https://github.com/dev-sec/ansible-os-hardening/issues/97)
|
- feat\(os\_hardening\): extend file permission tasks to cover more files [\#489](https://github.com/dev-sec/ansible-collection-hardening/pull/489) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([cmhe](https://github.com/cmhe))
|
||||||
- install initramfs-tools [\#114](https://github.com/dev-sec/ansible-os-hardening/pull/114) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- omit empty variables [\#106](https://github.com/dev-sec/ansible-os-hardening/pull/106) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
**Fixed bugs:**
|
||||||
|
|
||||||
- The role fails when conditionally included [\#105](https://github.com/dev-sec/ansible-os-hardening/issues/105)
|
- mysql remove deprecated 'secure\_auth' parameter in mysql [\#346](https://github.com/dev-sec/ansible-collection-hardening/issues/346)
|
||||||
- omit empty variables [\#106](https://github.com/dev-sec/ansible-os-hardening/pull/106) ([rndmh3ro](https://github.com/rndmh3ro))
|
- change baseline urls to full zip-url [\#490](https://github.com/dev-sec/ansible-collection-hardening/pull/490) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix filter error in ansible.builtin.file mode parameter [\#486](https://github.com/dev-sec/ansible-collection-hardening/pull/486) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([ssttehrani](https://github.com/ssttehrani))
|
||||||
|
|
||||||
**Closed issues:**
|
**Closed issues:**
|
||||||
|
|
||||||
- Error running on RHEL 7 due to syntax issues [\#112](https://github.com/dev-sec/ansible-os-hardening/issues/112)
|
- Extend os\_hardening minimize\_access task to cover additional passwd/group/shadow/gshadow paths [\#488](https://github.com/dev-sec/ansible-collection-hardening/issues/488)
|
||||||
- disable password age [\#109](https://github.com/dev-sec/ansible-os-hardening/issues/109)
|
- postgresql\_hardening role [\#484](https://github.com/dev-sec/ansible-collection-hardening/issues/484)
|
||||||
|
- os\_hardening fails on "Create a combined sysctl-dict if overwrites are defined" task [\#482](https://github.com/dev-sec/ansible-collection-hardening/issues/482)
|
||||||
|
- Improve changelog generation [\#381](https://github.com/dev-sec/ansible-collection-hardening/issues/381)
|
||||||
|
|
||||||
**Merged pull requests:**
|
## [7.11.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.11.0) (2021-08-30)
|
||||||
|
|
||||||
- change shadow owner in debian systems [\#117](https://github.com/dev-sec/ansible-os-hardening/pull/117) ([rndmh3ro](https://github.com/rndmh3ro))
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.10.0...7.11.0)
|
||||||
- Rhel7 [\#113](https://github.com/dev-sec/ansible-os-hardening/pull/113) ([tyrken](https://github.com/tyrken))
|
|
||||||
- use new Docker images [\#110](https://github.com/dev-sec/ansible-os-hardening/pull/110) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Don’t refer to this role as "playbook" in the role description [\#104](https://github.com/dev-sec/ansible-os-hardening/pull/104) ([ypid](https://github.com/ypid))
|
|
||||||
|
|
||||||
## [3.2.0](https://github.com/dev-sec/ansible-os-hardening/tree/3.2.0) (2016-10-24)
|
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/3.1.0...3.2.0)
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
|
||||||
|
|
||||||
- CentOS 7 selinux dependencies [\#102](https://github.com/dev-sec/ansible-os-hardening/issues/102)
|
|
||||||
- ubuntu xenial warning during activate gpg-check for yum-repos [\#99](https://github.com/dev-sec/ansible-os-hardening/issues/99)
|
|
||||||
- rhel\_system\_auth.j2 is still using pam\_passwdqc.so for CentOS 7 [\#98](https://github.com/dev-sec/ansible-os-hardening/issues/98)
|
|
||||||
- Enable pam\_pwquality in rhel-family \> 7 [\#73](https://github.com/dev-sec/ansible-os-hardening/issues/73)
|
|
||||||
- "irc" user always changed after reboot [\#53](https://github.com/dev-sec/ansible-os-hardening/issues/53)
|
|
||||||
|
|
||||||
**Merged pull requests:**
|
|
||||||
|
|
||||||
- update template [\#101](https://github.com/dev-sec/ansible-os-hardening/pull/101) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- fix deprecation warning for undefined error. \#99 [\#100](https://github.com/dev-sec/ansible-os-hardening/pull/100) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- add rhel7 pam\_pwquality. fix \#73 [\#94](https://github.com/dev-sec/ansible-os-hardening/pull/94) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
|
|
||||||
## [3.1.0](https://github.com/dev-sec/ansible-os-hardening/tree/3.1.0) (2016-08-03)
|
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/3.1...3.1.0)
|
|
||||||
|
|
||||||
## [3.1](https://github.com/dev-sec/ansible-os-hardening/tree/3.1) (2016-07-27)
|
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/3.0.0...3.1)
|
|
||||||
|
|
||||||
**Implemented enhancements:**
|
**Implemented enhancements:**
|
||||||
|
|
||||||
- Supports --check mode [\#93](https://github.com/dev-sec/ansible-os-hardening/pull/93) ([conorsch](https://github.com/conorsch))
|
- Use `log_error` file and `datadir` from mysql\_info settings instead of variables `mysql_datadir` and `mysql_hardening_log_file` [\#478](https://github.com/dev-sec/ansible-collection-hardening/pull/478) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] ([123quhiwiwk](https://github.com/123quhiwiwk))
|
||||||
- Adds support for CentOS 7 [\#91](https://github.com/dev-sec/ansible-os-hardening/pull/91) ([conorsch](https://github.com/conorsch))
|
- Execute check of MySQL error logfile permissions on Debian 11 only when log\_error is defined [\#477](https://github.com/dev-sec/ansible-collection-hardening/pull/477) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] ([123quhiwiwk](https://github.com/123quhiwiwk))
|
||||||
- Docker [\#90](https://github.com/dev-sec/ansible-os-hardening/pull/90) ([rndmh3ro](https://github.com/rndmh3ro))
|
- \[mysql\_hardening\] Setup defaults for MySQL on FreeBSD [\#474](https://github.com/dev-sec/ansible-collection-hardening/pull/474) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] ([sdwilsh](https://github.com/sdwilsh))
|
||||||
- debian 8 support [\#88](https://github.com/dev-sec/ansible-os-hardening/pull/88) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Ufw manage defaults [\#85](https://github.com/dev-sec/ansible-os-hardening/pull/85) ([fitz123](https://github.com/fitz123))
|
|
||||||
- replace ignore\_errors to failed\_when to supress ugly error warnings [\#81](https://github.com/dev-sec/ansible-os-hardening/pull/81) ([fitz123](https://github.com/fitz123))
|
|
||||||
- fix bare variables usage for loops [\#79](https://github.com/dev-sec/ansible-os-hardening/pull/79) ([fitz123](https://github.com/fitz123))
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
|
||||||
|
|
||||||
- Centos 7.1 fails at \[Change various sysctl-settings on rhel-hosts...\] [\#74](https://github.com/dev-sec/ansible-os-hardening/issues/74)
|
|
||||||
- Hardening fails on Centos 7.1 at task 'minimize access' [\#71](https://github.com/dev-sec/ansible-os-hardening/issues/71)
|
|
||||||
|
|
||||||
**Closed issues:**
|
**Closed issues:**
|
||||||
|
|
||||||
- Permissions on /etc/shadow can lock out GUI users [\#86](https://github.com/dev-sec/ansible-os-hardening/issues/86)
|
- MariaDB hardening fails, because log\_error file is missing \[Debian 11\] [\#476](https://github.com/dev-sec/ansible-collection-hardening/issues/476)
|
||||||
- network related sysctl rewritten by ufw in ubuntu [\#82](https://github.com/dev-sec/ansible-os-hardening/issues/82)
|
|
||||||
- ansible \>= 2.0 complains: Using bare variables is deprecated [\#78](https://github.com/dev-sec/ansible-os-hardening/issues/78)
|
|
||||||
- Norm-Audit-Hardening-Audit [\#76](https://github.com/dev-sec/ansible-os-hardening/issues/76)
|
|
||||||
|
|
||||||
**Merged pull requests:**
|
**Merged pull requests:**
|
||||||
|
|
||||||
- Fix a formatting issue in readme. [\#92](https://github.com/dev-sec/ansible-os-hardening/pull/92) ([vivekagr](https://github.com/vivekagr))
|
- ssh\_allow\_tcp\_forwarding is not a boolean [\#480](https://github.com/dev-sec/ansible-collection-hardening/pull/480) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([ReinerNippes](https://github.com/ReinerNippes))
|
||||||
- Permits overriding permissions on /etc/shadow [\#89](https://github.com/dev-sec/ansible-os-hardening/pull/89) ([conorsch](https://github.com/conorsch))
|
- chore\(ssh\_hardening\): set min\_ansible\_version to \>=2.9.10 [\#479](https://github.com/dev-sec/ansible-collection-hardening/pull/479) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([bufferoverflow](https://github.com/bufferoverflow))
|
||||||
|
|
||||||
## [3.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/3.0.0) (2016-03-13)
|
## [7.10.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.10.0) (2021-08-15)
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/2.0.0...3.0.0)
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.9.0...7.10.0)
|
||||||
|
|
||||||
**Implemented enhancements:**
|
**Implemented enhancements:**
|
||||||
|
|
||||||
- update platforms in meta-file [\#69](https://github.com/dev-sec/ansible-os-hardening/pull/69) ([rndmh3ro](https://github.com/rndmh3ro))
|
- use Ansible lint in separate task [\#475](https://github.com/dev-sec/ansible-collection-hardening/pull/475) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
- add webhook for ansible galaxy [\#68](https://github.com/dev-sec/ansible-os-hardening/pull/68) ([rndmh3ro](https://github.com/rndmh3ro))
|
- \[mysql\_hardening\] Allow setting the mysql\_distribution [\#473](https://github.com/dev-sec/ansible-collection-hardening/pull/473) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] ([sdwilsh](https://github.com/sdwilsh))
|
||||||
- Move sysctl vars to defaults [\#67](https://github.com/dev-sec/ansible-os-hardening/pull/67) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- make sys\_uid and sys\_gid configurable [\#62](https://github.com/dev-sec/ansible-os-hardening/pull/62) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Ansible 2.0 support [\#59](https://github.com/dev-sec/ansible-os-hardening/pull/59) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- use inspec as test framework [\#58](https://github.com/dev-sec/ansible-os-hardening/pull/58) ([chris-rock](https://github.com/chris-rock))
|
|
||||||
- Packages as attributes [\#57](https://github.com/dev-sec/ansible-os-hardening/pull/57) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Change categories to tags for upcoming ansible 2.0 [\#56](https://github.com/dev-sec/ansible-os-hardening/pull/56) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Add SINGLE and PROMPT parameters. [\#55](https://github.com/dev-sec/ansible-os-hardening/pull/55) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- add changelog generator [\#54](https://github.com/dev-sec/ansible-os-hardening/pull/54) ([chris-rock](https://github.com/chris-rock))
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
**Fixed bugs:**
|
||||||
|
|
||||||
- Updates "tags" parameters on includes in main.yml [\#66](https://github.com/dev-sec/ansible-os-hardening/pull/66) ([conorsch](https://github.com/conorsch))
|
- mysql\_hardening cannot work with mysql on freebsd [\#472](https://github.com/dev-sec/ansible-collection-hardening/issues/472)
|
||||||
- Suid set def var, fix \#64 [\#63](https://github.com/dev-sec/ansible-os-hardening/pull/63) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- ERROR! Include tasks should not specify tags in more than one way [\#60](https://github.com/dev-sec/ansible-os-hardening/pull/60) ([fitz123](https://github.com/fitz123))
|
|
||||||
|
|
||||||
**Closed issues:**
|
**Closed issues:**
|
||||||
|
|
||||||
- Hardening fails on Centos 7.1 at task 'remove suid/sgid bit from all binaries except in system and user whitelist' [\#72](https://github.com/dev-sec/ansible-os-hardening/issues/72)
|
- run ansible-lint only once in Github Actions [\#398](https://github.com/dev-sec/ansible-collection-hardening/issues/398)
|
||||||
- ansible 2.0 | "remove suid/sgid" task fails [\#64](https://github.com/dev-sec/ansible-os-hardening/issues/64)
|
|
||||||
- Custom sysctl [\#50](https://github.com/dev-sec/ansible-os-hardening/issues/50)
|
|
||||||
|
|
||||||
**Merged pull requests:**
|
**Merged pull requests:**
|
||||||
|
|
||||||
- Release 3.0.0 [\#75](https://github.com/dev-sec/ansible-os-hardening/pull/75) ([rndmh3ro](https://github.com/rndmh3ro))
|
- SSH Hardening: backtick typo [\#471](https://github.com/dev-sec/ansible-collection-hardening/pull/471) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([Slamdunk](https://github.com/Slamdunk))
|
||||||
|
- fix license in galaxy [\#469](https://github.com/dev-sec/ansible-collection-hardening/pull/469) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
## [2.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/2.0.0) (2015-11-28)
|
## [7.9.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.9.0) (2021-07-22)
|
||||||
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/1.0.0...2.0.0)
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.8.0...7.9.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Allow configuration of password remember in pam [\#467](https://github.com/dev-sec/ansible-collection-hardening/pull/467) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([m41kc0d3](https://github.com/m41kc0d3))
|
||||||
|
- Add CVE-2021-33909 mitigations [\#466](https://github.com/dev-sec/ansible-collection-hardening/pull/466) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([kravietz](https://github.com/kravietz))
|
||||||
|
- Add SUB\_UID\_MIN/MAX/COUNT, SUB\_GID\_MIN/MAX/COUNT [\#463](https://github.com/dev-sec/ansible-collection-hardening/pull/463) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([elgalu](https://github.com/elgalu))
|
||||||
|
- Add os\_auth\_uid\_max, os\_auth\_gid\_max [\#461](https://github.com/dev-sec/ansible-collection-hardening/pull/461) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([elgalu](https://github.com/elgalu))
|
||||||
|
|
||||||
**Closed issues:**
|
**Closed issues:**
|
||||||
|
|
||||||
- Fix directory structure. [\#48](https://github.com/dev-sec/ansible-os-hardening/issues/48)
|
- MySQL hardening fails because of missing attribute [\#464](https://github.com/dev-sec/ansible-collection-hardening/issues/464)
|
||||||
- pam auth update error [\#47](https://github.com/dev-sec/ansible-os-hardening/issues/47)
|
- add "when" statements for every import\_tasks in hardening.yml [\#453](https://github.com/dev-sec/ansible-collection-hardening/issues/453)
|
||||||
|
|
||||||
**Merged pull requests:**
|
**Merged pull requests:**
|
||||||
|
|
||||||
- Add explicit role-path to kitchen.yml [\#52](https://github.com/dev-sec/ansible-os-hardening/pull/52) ([rndmh3ro](https://github.com/rndmh3ro))
|
- update metadata to include community.mysql deps [\#465](https://github.com/dev-sec/ansible-collection-hardening/pull/465) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
- Fix pam passwdqc template [\#51](https://github.com/dev-sec/ansible-os-hardening/pull/51) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- New dir layout [\#49](https://github.com/dev-sec/ansible-os-hardening/pull/49) ([rndmh3ro](https://github.com/rndmh3ro))
|
## [7.8.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.8.0) (2021-07-01)
|
||||||
- remove duplicate "update pam" task [\#46](https://github.com/dev-sec/ansible-os-hardening/pull/46) ([fitz123](https://github.com/fitz123))
|
|
||||||
- Fix stuck in case pam files was updated before by force update [\#45](https://github.com/dev-sec/ansible-os-hardening/pull/45) ([fitz123](https://github.com/fitz123))
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.7.0...7.8.0)
|
||||||
- Fix nologin shell path [\#44](https://github.com/dev-sec/ansible-os-hardening/pull/44) ([fitz123](https://github.com/fitz123))
|
|
||||||
- improved travis-tests to cover more cases [\#42](https://github.com/dev-sec/ansible-os-hardening/pull/42) ([rndmh3ro](https://github.com/rndmh3ro))
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- SHA\_CRYPT\_MIN\_ROUNDS should be increased in login.defs [\#365](https://github.com/dev-sec/ansible-collection-hardening/issues/365) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
|
- Add support for Rocky Linux 8 [\#454](https://github.com/dev-sec/ansible-collection-hardening/pull/454) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([sherwind](https://github.com/sherwind))
|
||||||
|
- make sha rounds configurable and increase no of rounds [\#452](https://github.com/dev-sec/ansible-collection-hardening/pull/452) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- add tag always to os dependent vars task [\#456](https://github.com/dev-sec/ansible-collection-hardening/pull/456) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- Use `include_tasks` for os\_hardening/main.yml [\#451](https://github.com/dev-sec/ansible-collection-hardening/pull/451) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([coadler](https://github.com/coadler))
|
||||||
|
|
||||||
## [1.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/1.0.0) (2015-09-01)
|
|
||||||
**Closed issues:**
|
**Closed issues:**
|
||||||
|
|
||||||
- ansible-os-hardening/tasks/minimize\_access.yml [\#38](https://github.com/dev-sec/ansible-os-hardening/issues/38)
|
- Disable IPv6 | sysctl-18 net.ipv6.conf.all.disable\_ipv6: 1 [\#406](https://github.com/dev-sec/ansible-collection-hardening/issues/406) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
- Role configuration. vars/main.yml? [\#34](https://github.com/dev-sec/ansible-os-hardening/issues/34)
|
|
||||||
- Sysctl reloading [\#18](https://github.com/dev-sec/ansible-os-hardening/issues/18)
|
|
||||||
- Add conditions for disabling of ip forwarding [\#15](https://github.com/dev-sec/ansible-os-hardening/issues/15)
|
|
||||||
- Disable System Accounts [\#6](https://github.com/dev-sec/ansible-os-hardening/issues/6)
|
|
||||||
|
|
||||||
**Merged pull requests:**
|
**Merged pull requests:**
|
||||||
|
|
||||||
- Update kitchen-ansible, remove separate debian install [\#40](https://github.com/dev-sec/ansible-os-hardening/pull/40) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Cleanup old OS-support and simplify vars [\#458](https://github.com/dev-sec/ansible-collection-hardening/pull/458) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
- Add mode to su-binary task. Fix \#38 [\#39](https://github.com/dev-sec/ansible-os-hardening/pull/39) ([rndmh3ro](https://github.com/rndmh3ro))
|
- add rocky linux 8 tests and make sure that all relevant tasks are execd [\#457](https://github.com/dev-sec/ansible-collection-hardening/pull/457) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
- update common kitchen.yml platforms \(ansible\), kitchen\_debian.yml platforms \(ansible\) [\#37](https://github.com/dev-sec/ansible-os-hardening/pull/37) ([chris-rock](https://github.com/chris-rock))
|
- add "when" statements in hardening.yml\(\#453\) [\#455](https://github.com/dev-sec/ansible-collection-hardening/pull/455) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([jqiuyin](https://github.com/jqiuyin))
|
||||||
- Change oneliner if-statements to be more readable [\#36](https://github.com/dev-sec/ansible-os-hardening/pull/36) ([rndmh3ro](https://github.com/rndmh3ro))
|
- enable ipv6 globally [\#450](https://github.com/dev-sec/ansible-collection-hardening/pull/450) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
- Separate system-vars from editable vars. Fix \#34 [\#35](https://github.com/dev-sec/ansible-os-hardening/pull/35) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Create limits.d-directory if it does not exist. [\#33](https://github.com/dev-sec/ansible-os-hardening/pull/33) ([rndmh3ro](https://github.com/rndmh3ro))
|
## [7.7.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.7.0) (2021-05-24)
|
||||||
- Add correct CONTRIB-file [\#32](https://github.com/dev-sec/ansible-os-hardening/pull/32) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Add Ansible Galaxy badge [\#31](https://github.com/dev-sec/ansible-os-hardening/pull/31) ([rndmh3ro](https://github.com/rndmh3ro))
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.6.0...7.7.0)
|
||||||
- Update readme, todo, changelog, vars [\#30](https://github.com/dev-sec/ansible-os-hardening/pull/30) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- List-cleanup and follow symlinks added [\#29](https://github.com/dev-sec/ansible-os-hardening/pull/29) ([rndmh3ro](https://github.com/rndmh3ro))
|
**Implemented enhancements:**
|
||||||
- Add module configuration [\#28](https://github.com/dev-sec/ansible-os-hardening/pull/28) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Fix two sysctl-settings [\#27](https://github.com/dev-sec/ansible-os-hardening/pull/27) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Add tasks for new controls [\#123](https://github.com/dev-sec/ansible-collection-hardening/issues/123)
|
||||||
- Add meta-files for Ansible Galaxy [\#26](https://github.com/dev-sec/ansible-os-hardening/pull/26) ([rndmh3ro](https://github.com/rndmh3ro))
|
- ssh\_allow\_tcp\_forwarding remote option added [\#447](https://github.com/dev-sec/ansible-collection-hardening/pull/447) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([alimli](https://github.com/alimli))
|
||||||
- Disable System Accounts. Fix \#6 [\#25](https://github.com/dev-sec/ansible-os-hardening/pull/25) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Use changed\_when to avoid changed tasks [\#24](https://github.com/dev-sec/ansible-os-hardening/pull/24) ([rndmh3ro](https://github.com/rndmh3ro))
|
**Fixed bugs:**
|
||||||
- Delete authconfig-task on rhel-systems [\#23](https://github.com/dev-sec/ansible-os-hardening/pull/23) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Add missing rhosts-include task [\#21](https://github.com/dev-sec/ansible-os-hardening/pull/21) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Warning: iptables-legacy tables present, Debian 10 [\#274](https://github.com/dev-sec/ansible-collection-hardening/issues/274)
|
||||||
- Change sysctl-task. Fix \#18 [\#20](https://github.com/dev-sec/ansible-os-hardening/pull/20) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Check for MariaDB Version when selecting users without passwords [\#444](https://github.com/dev-sec/ansible-collection-hardening/pull/444) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] ([neubi4](https://github.com/neubi4))
|
||||||
- Add travis-support [\#17](https://github.com/dev-sec/ansible-os-hardening/pull/17) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Adds dependency on ansible.posix and community.general [\#415](https://github.com/dev-sec/ansible-collection-hardening/pull/415) ([irl](https://github.com/irl))
|
||||||
- Add conditions for various tasks. Fix \#15 [\#16](https://github.com/dev-sec/ansible-os-hardening/pull/16) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- fix configuration of playbook path [\#14](https://github.com/dev-sec/ansible-os-hardening/pull/14) ([chris-rock](https://github.com/chris-rock))
|
**Closed issues:**
|
||||||
- Make tasks clearer [\#13](https://github.com/dev-sec/ansible-os-hardening/pull/13) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Add remove suid/sgid function [\#12](https://github.com/dev-sec/ansible-os-hardening/pull/12) ([rndmh3ro](https://github.com/rndmh3ro))
|
- No dependency on ansible.posix collection [\#414](https://github.com/dev-sec/ansible-collection-hardening/issues/414)
|
||||||
- Add task to remove unused repos and pkgs [\#11](https://github.com/dev-sec/ansible-os-hardening/pull/11) ([rndmh3ro](https://github.com/rndmh3ro))
|
- No dependency on community.general [\#413](https://github.com/dev-sec/ansible-collection-hardening/issues/413)
|
||||||
- Edit README to fit to os-hardening [\#10](https://github.com/dev-sec/ansible-os-hardening/pull/10) ([rndmh3ro](https://github.com/rndmh3ro))
|
- in lxc/docker/openvz IPv6 is always disabled by ufw-configuration [\#402](https://github.com/dev-sec/ansible-collection-hardening/issues/402)
|
||||||
- ignore RAs on Ipv6 [\#9](https://github.com/dev-sec/ansible-os-hardening/pull/9) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Allow login\_unix\_socket to be specified [\#327](https://github.com/dev-sec/ansible-collection-hardening/issues/327)
|
||||||
- Repair debian install script [\#8](https://github.com/dev-sec/ansible-os-hardening/pull/8) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Separate tasks into multiple smaller files [\#7](https://github.com/dev-sec/ansible-os-hardening/pull/7) ([rndmh3ro](https://github.com/rndmh3ro))
|
**Merged pull requests:**
|
||||||
- Enable gpg-check on all yum-repositories [\#5](https://github.com/dev-sec/ansible-os-hardening/pull/5) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
- Change playbook-path to accomodate test-repo [\#4](https://github.com/dev-sec/ansible-os-hardening/pull/4) ([rndmh3ro](https://github.com/rndmh3ro))
|
- Removed sysctl that tries to disable IPv6 [\#449](https://github.com/dev-sec/ansible-collection-hardening/pull/449) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([lduesing](https://github.com/lduesing))
|
||||||
- treat securetty config as an array [\#3](https://github.com/dev-sec/ansible-os-hardening/pull/3) ([arlimus](https://github.com/arlimus))
|
- limit changelog labels to role names [\#448](https://github.com/dev-sec/ansible-collection-hardening/pull/448) ([schurzi](https://github.com/schurzi))
|
||||||
- Add Securetty-support [\#2](https://github.com/dev-sec/ansible-os-hardening/pull/2) ([rndmh3ro](https://github.com/rndmh3ro))
|
- add back labels to changelog [\#446](https://github.com/dev-sec/ansible-collection-hardening/pull/446) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
- Add profile.conf configuration [\#1](https://github.com/dev-sec/ansible-os-hardening/pull/1) ([rndmh3ro](https://github.com/rndmh3ro))
|
|
||||||
|
## [7.6.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.6.0) (2021-04-27)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.5.0...7.6.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- ssh: Client HostKeyAlgorithms configuration variable [\#442](https://github.com/dev-sec/ansible-collection-hardening/pull/442) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([sepek](https://github.com/sepek))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- mysql USER and HOST should be quoted for drop query [\#443](https://github.com/dev-sec/ansible-collection-hardening/pull/443) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] ([neubi4](https://github.com/neubi4))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Support HostKeyAlgorithms configuration for ssh\_client file [\#441](https://github.com/dev-sec/ansible-collection-hardening/issues/441)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- fixed a typo in comments [\#439](https://github.com/dev-sec/ansible-collection-hardening/pull/439) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([ssttehrani](https://github.com/ssttehrani))
|
||||||
|
|
||||||
|
## [7.5.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.5.0) (2021-04-01)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.4.0...7.5.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Not accepting source routing for IPv6. This was already done for IPv4. [\#424](https://github.com/dev-sec/ansible-collection-hardening/pull/424) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- SSH kex sntrup4591761x25519-sha512@tinyssh.org replaced [\#433](https://github.com/dev-sec/ansible-collection-hardening/issues/433)
|
||||||
|
- Fix ssh kex sntrup761x25519-sha512@openssh.com for openssh \>= 8.5 [\#437](https://github.com/dev-sec/ansible-collection-hardening/pull/437) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([BenjaminBoehm](https://github.com/BenjaminBoehm))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Harden user home directories [\#276](https://github.com/dev-sec/ansible-collection-hardening/issues/276)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- remove secure-auth param if mysql \>= 8.0.3 [\#438](https://github.com/dev-sec/ansible-collection-hardening/pull/438) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Improved comments. [\#436](https://github.com/dev-sec/ansible-collection-hardening/pull/436) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
- os\_auth\_pam\_pwquality\_options: Changed type to authtok\_type [\#432](https://github.com/dev-sec/ansible-collection-hardening/pull/432) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
- add restart-auditd handler after configuration change [\#427](https://github.com/dev-sec/ansible-collection-hardening/pull/427) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add new tasks to delete mysql users without passwords [\#423](https://github.com/dev-sec/ansible-collection-hardening/pull/423) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Uppercased first letter of task names. [\#422](https://github.com/dev-sec/ansible-collection-hardening/pull/422) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
|
||||||
|
## [7.4.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.4.0) (2021-03-23)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.3.0...7.4.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Harden user home dirs [\#428](https://github.com/dev-sec/ansible-collection-hardening/pull/428) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Errors in packer build for vagrant builder [\#244](https://github.com/dev-sec/ansible-collection-hardening/issues/244)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Use pam\_pwhistory.so instead of pam\_unix.so for remembering old passwords [\#431](https://github.com/dev-sec/ansible-collection-hardening/pull/431) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
- Remove comments from PAM config file, but keep it in the template [\#430](https://github.com/dev-sec/ansible-collection-hardening/pull/430) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
- add support for using a proxy to test with molecule [\#429](https://github.com/dev-sec/ansible-collection-hardening/pull/429) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Improve Documentation for sysctl defaults [\#418](https://github.com/dev-sec/ansible-collection-hardening/pull/418) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
|
||||||
|
## [7.3.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.3.0) (2021-03-16)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.2.0...7.3.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- pam\_tally2 is deprecated in RHEL8 and pam\_faillock should be used in EL7 and EL8 instead. [\#377](https://github.com/dev-sec/ansible-collection-hardening/issues/377) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
|
- Replace pam\_tally2 with pam\_faillock in Redhat [\#273](https://github.com/dev-sec/ansible-collection-hardening/issues/273) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
|
- Extend GSSAPI configuration support to ssh\_config [\#403](https://github.com/dev-sec/ansible-collection-hardening/pull/403) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([wzzrd](https://github.com/wzzrd))
|
||||||
|
- add restart handler variable for mysql role [\#399](https://github.com/dev-sec/ansible-collection-hardening/pull/399) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- restructure PAM handling and update for currently supported Linux distributions [\#392](https://github.com/dev-sec/ansible-collection-hardening/pull/392) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Not able to use `sudo` command for user authenticated via ActiveDirectory [\#278](https://github.com/dev-sec/ansible-collection-hardening/issues/278) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
|
- You shouldn't touch /etc/pam.d/system-auth-ac in RedHat/CentOS [\#252](https://github.com/dev-sec/ansible-collection-hardening/issues/252) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Netdata monitoring of docker in docker no longer possible [\#412](https://github.com/dev-sec/ansible-collection-hardening/issues/412)
|
||||||
|
- Unable to connect with SSH \(Permission denied \(publickey\)\) [\#411](https://github.com/dev-sec/ansible-collection-hardening/issues/411)
|
||||||
|
- TASK \[os\_hardening : configure auditd | package-08\] [\#410](https://github.com/dev-sec/ansible-collection-hardening/issues/410)
|
||||||
|
- Collection throws undefined ansible\_role\_name error in auditd task [\#409](https://github.com/dev-sec/ansible-collection-hardening/issues/409)
|
||||||
|
- Ensure permissions on /etc/crontab are configured [\#375](https://github.com/dev-sec/ansible-collection-hardening/issues/375) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
|
- Documentation should be updated [\#361](https://github.com/dev-sec/ansible-collection-hardening/issues/361)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Improve Release Action [\#421](https://github.com/dev-sec/ansible-collection-hardening/pull/421) ([schurzi](https://github.com/schurzi))
|
||||||
|
- remove FQCN from roles in examples [\#420](https://github.com/dev-sec/ansible-collection-hardening/pull/420) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- Ensure permissions on /etc/crontab are configured [\#405](https://github.com/dev-sec/ansible-collection-hardening/pull/405) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
- remove FQCN from roles in examples [\#404](https://github.com/dev-sec/ansible-collection-hardening/pull/404) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- do not install mysql python package on target host [\#401](https://github.com/dev-sec/ansible-collection-hardening/pull/401) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- make wrong password fail task [\#400](https://github.com/dev-sec/ansible-collection-hardening/pull/400) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [7.2.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.2.0) (2021-02-10)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.1.1...7.2.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Add variable to specify SSH host RSA key size [\#394](https://github.com/dev-sec/ansible-collection-hardening/pull/394) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([Normo](https://github.com/Normo))
|
||||||
|
- Set default for ssh host key files only when hardening the server [\#393](https://github.com/dev-sec/ansible-collection-hardening/pull/393) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([Normo](https://github.com/Normo))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- A reason why instance would go in rescue mode ? [\#267](https://github.com/dev-sec/ansible-collection-hardening/issues/267)
|
||||||
|
- fix galaxy action to update local galaxy.yml [\#395](https://github.com/dev-sec/ansible-collection-hardening/pull/395) ([Normo](https://github.com/Normo))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Updating version in galaxy.yml should be part of the release process [\#396](https://github.com/dev-sec/ansible-collection-hardening/issues/396)
|
||||||
|
- ssh\_hardening fail on keypair generation [\#388](https://github.com/dev-sec/ansible-collection-hardening/issues/388)
|
||||||
|
- The system must display the date and time of the last successful account logon upon an SSH logon. [\#362](https://github.com/dev-sec/ansible-collection-hardening/issues/362)
|
||||||
|
- Error in "root password is present" step [\#326](https://github.com/dev-sec/ansible-collection-hardening/issues/326)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- update ansible-lint to version 5 [\#397](https://github.com/dev-sec/ansible-collection-hardening/pull/397) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- fix minimum required ansible version in docs [\#390](https://github.com/dev-sec/ansible-collection-hardening/pull/390) ([schurzi](https://github.com/schurzi))
|
||||||
|
|
||||||
|
## [7.1.1](https://github.com/dev-sec/ansible-collection-hardening/tree/7.1.1) (2021-02-05)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.1.0...7.1.1)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- use fqcn for community.crypto.openssh\_keypair module [\#389](https://github.com/dev-sec/ansible-collection-hardening/pull/389) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- AnsibleUndefinedVariable: 'ansible\_role\_name' is undefined with 7.1.0 [\#387](https://github.com/dev-sec/ansible-collection-hardening/issues/387)
|
||||||
|
|
||||||
|
## [7.1.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.1.0) (2021-02-02)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/7.0.0...7.1.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Default value for ssh\_max\_startups should be changed [\#366](https://github.com/dev-sec/ansible-collection-hardening/issues/366) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)]
|
||||||
|
- Comment in configuration files should state which collection was there [\#345](https://github.com/dev-sec/ansible-collection-hardening/issues/345)
|
||||||
|
- Error on applying the sysctl vars on Debian Jessy [\#230](https://github.com/dev-sec/ansible-collection-hardening/issues/230)
|
||||||
|
- add Support for OpenSSH HostCertificate config option [\#380](https://github.com/dev-sec/ansible-collection-hardening/pull/380) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([mpraeger](https://github.com/mpraeger))
|
||||||
|
- Syncookie [\#372](https://github.com/dev-sec/ansible-collection-hardening/pull/372) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
- Sorted sysctl values and lists in READMEs alphabetically \(No functional changes\). [\#371](https://github.com/dev-sec/ansible-collection-hardening/pull/371) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
- make auditd 'max\_log\_file' configurable [\#370](https://github.com/dev-sec/ansible-collection-hardening/pull/370) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([tgueldner-mms](https://github.com/tgueldner-mms))
|
||||||
|
- reduce maximum unauthenticated ssh sessions [\#368](https://github.com/dev-sec/ansible-collection-hardening/pull/368) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- add a runtime.yml to declare minimum ansible version [\#363](https://github.com/dev-sec/ansible-collection-hardening/pull/363) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- change inclusion of os specific defaults [\#353](https://github.com/dev-sec/ansible-collection-hardening/pull/353) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- make the os\_env\_umask variable usable [\#351](https://github.com/dev-sec/ansible-collection-hardening/pull/351) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([sprat](https://github.com/sprat))
|
||||||
|
- Fix \#348: make ssh configuration files paths configurable [\#350](https://github.com/dev-sec/ansible-collection-hardening/pull/350) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([sprat](https://github.com/sprat))
|
||||||
|
- Removed Protocol statement in later versions of sshd, since the code … [\#342](https://github.com/dev-sec/ansible-collection-hardening/pull/342) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
- Improvements of comments in opensshd.conf.j2 \#338 [\#339](https://github.com/dev-sec/ansible-collection-hardening/pull/339) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Comments in opensshd.conf.j2 should be improved [\#338](https://github.com/dev-sec/ansible-collection-hardening/issues/338)
|
||||||
|
- check for correct cpu vendor in initramfs-tools [\#374](https://github.com/dev-sec/ansible-collection-hardening/pull/374) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- set hidepid=0 on RHEL/CentOS 7 [\#369](https://github.com/dev-sec/ansible-collection-hardening/pull/369) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- initramfs-tools modules.j2 does not seem to be able to detect AMD CPUs [\#373](https://github.com/dev-sec/ansible-collection-hardening/issues/373)
|
||||||
|
- How do i install this on Centos 8? [\#367](https://github.com/dev-sec/ansible-collection-hardening/issues/367)
|
||||||
|
- hidepid=2 gives error when running systemctl on EL7 [\#364](https://github.com/dev-sec/ansible-collection-hardening/issues/364) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
|
- Allow putting the ssh/sshd config in alternative files [\#348](https://github.com/dev-sec/ansible-collection-hardening/issues/348)
|
||||||
|
- os\_env\_umask has no effect [\#344](https://github.com/dev-sec/ansible-collection-hardening/issues/344)
|
||||||
|
- Don't modify /etc/sysctl.conf [\#343](https://github.com/dev-sec/ansible-collection-hardening/issues/343) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- use version tag for changelog action [\#386](https://github.com/dev-sec/ansible-collection-hardening/pull/386) ([schurzi](https://github.com/schurzi))
|
||||||
|
- make release workflow manually runnable [\#384](https://github.com/dev-sec/ansible-collection-hardening/pull/384) ([schurzi](https://github.com/schurzi))
|
||||||
|
- run labeler workflow with higher privileges [\#383](https://github.com/dev-sec/ansible-collection-hardening/pull/383) ([schurzi](https://github.com/schurzi))
|
||||||
|
- remove issue labels from changelog [\#382](https://github.com/dev-sec/ansible-collection-hardening/pull/382) ([schurzi](https://github.com/schurzi))
|
||||||
|
- Added comment on top of templates about which role manages the file [\#378](https://github.com/dev-sec/ansible-collection-hardening/pull/378) [[mysql_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/mysql_hardening)] [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] [[nginx_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/nginx_hardening)] ([joubbi](https://github.com/joubbi))
|
||||||
|
- Regenerate RSA key with size 4096 bits [\#376](https://github.com/dev-sec/ansible-collection-hardening/pull/376) ([ssttehrani](https://github.com/ssttehrani))
|
||||||
|
- fix second changelog generation task, too [\#349](https://github.com/dev-sec/ansible-collection-hardening/pull/349) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix changelog generation [\#341](https://github.com/dev-sec/ansible-collection-hardening/pull/341) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Improve README for ssh\_hardening [\#335](https://github.com/dev-sec/ansible-collection-hardening/pull/335) [[ssh_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/ssh_hardening)] ([szEvEz](https://github.com/szEvEz))
|
||||||
|
|
||||||
|
## [7.0.0](https://github.com/dev-sec/ansible-collection-hardening/tree/7.0.0) (2020-11-11)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-collection-hardening/compare/a9591764206b79a4ed324bb8576151ebac0127b1...7.0.0)
|
||||||
|
|
||||||
|
**Breaking changes:**
|
||||||
|
|
||||||
|
- Move all roles to one single collection [\#332](https://github.com/dev-sec/ansible-collection-hardening/pull/332) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Breaking change in ansible-lint - set file permissions explicitly [\#299](https://github.com/dev-sec/ansible-collection-hardening/issues/299) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)]
|
||||||
|
- Configure audit=1 for more accurate auid auditing [\#253](https://github.com/dev-sec/ansible-collection-hardening/issues/253)
|
||||||
|
- Add Debian Buster support for ansible-os-hardening [\#233](https://github.com/dev-sec/ansible-collection-hardening/issues/233)
|
||||||
|
- Add CentOS 8 support for ansible-os-hardening [\#232](https://github.com/dev-sec/ansible-collection-hardening/issues/232)
|
||||||
|
- Speed up "minimize access on found files" task [\#208](https://github.com/dev-sec/ansible-collection-hardening/issues/208)
|
||||||
|
- Fedora support? [\#163](https://github.com/dev-sec/ansible-collection-hardening/issues/163)
|
||||||
|
- Update some RH settings in this role [\#155](https://github.com/dev-sec/ansible-collection-hardening/issues/155)
|
||||||
|
- Add selinux configuration [\#154](https://github.com/dev-sec/ansible-collection-hardening/issues/154)
|
||||||
|
- Warning about "include" for tasks for ansible-playbook 2.4.0 \(devel f0a5854e39\) [\#131](https://github.com/dev-sec/ansible-collection-hardening/issues/131)
|
||||||
|
- Removal of core dump hardening configuration if core dumps are allowed [\#129](https://github.com/dev-sec/ansible-collection-hardening/issues/129)
|
||||||
|
- Description of the Ansible roles of dev-sec says "This Ansible playbook" [\#97](https://github.com/dev-sec/ansible-collection-hardening/issues/97)
|
||||||
|
- Improve Documentation [\#315](https://github.com/dev-sec/ansible-collection-hardening/pull/315) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- Arch support [\#303](https://github.com/dev-sec/ansible-collection-hardening/pull/303) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix linting for molecule [\#301](https://github.com/dev-sec/ansible-collection-hardening/pull/301) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- file permissions explicitly defined [\#300](https://github.com/dev-sec/ansible-collection-hardening/pull/300) [[os_hardening](https://github.com/dev-sec/ansible-collection-hardening/labels/os_hardening)] ([danielkubat](https://github.com/danielkubat))
|
||||||
|
- Optimize and unify when clause [\#295](https://github.com/dev-sec/ansible-collection-hardening/pull/295) ([Alexhha](https://github.com/Alexhha))
|
||||||
|
- use find module instead of shell [\#294](https://github.com/dev-sec/ansible-collection-hardening/pull/294) ([danielkubat](https://github.com/danielkubat))
|
||||||
|
- improve testing [\#287](https://github.com/dev-sec/ansible-collection-hardening/pull/287) ([schurzi](https://github.com/schurzi))
|
||||||
|
- Mount proc filesystem using hidepid option [\#283](https://github.com/dev-sec/ansible-collection-hardening/pull/283) ([alegrey91](https://github.com/alegrey91))
|
||||||
|
- unify changelog and release actions [\#279](https://github.com/dev-sec/ansible-collection-hardening/pull/279) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- purge insecure packages [\#275](https://github.com/dev-sec/ansible-collection-hardening/pull/275) ([chris-rock](https://github.com/chris-rock))
|
||||||
|
- add changelog and release workflow [\#271](https://github.com/dev-sec/ansible-collection-hardening/pull/271) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- github action for changelog generation [\#270](https://github.com/dev-sec/ansible-collection-hardening/pull/270) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Make useradd defaults in login.defs dependent on OS [\#266](https://github.com/dev-sec/ansible-collection-hardening/pull/266) ([aisbergg](https://github.com/aisbergg))
|
||||||
|
- Add kernel hardening parameters from Tails and CIS Benchmark [\#263](https://github.com/dev-sec/ansible-collection-hardening/pull/263) ([kravietz](https://github.com/kravietz))
|
||||||
|
- add ansible-lint [\#262](https://github.com/dev-sec/ansible-collection-hardening/pull/262) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Remove trailing space [\#261](https://github.com/dev-sec/ansible-collection-hardening/pull/261) ([kravietz](https://github.com/kravietz))
|
||||||
|
- Add kernel parameter information to README [\#259](https://github.com/dev-sec/ansible-collection-hardening/pull/259) ([jaredledvina](https://github.com/jaredledvina))
|
||||||
|
- Remove trailing whitespaces \(ansible-lint 201\) [\#254](https://github.com/dev-sec/ansible-collection-hardening/pull/254) ([kravietz](https://github.com/kravietz))
|
||||||
|
- Standardize the var ordering [\#251](https://github.com/dev-sec/ansible-collection-hardening/pull/251) ([dustinmiller](https://github.com/dustinmiller))
|
||||||
|
- Add intial support for OpenSUSE [\#250](https://github.com/dev-sec/ansible-collection-hardening/pull/250) ([dustinmiller](https://github.com/dustinmiller))
|
||||||
|
- Make max\_log\_file\_action for auditd configurable [\#246](https://github.com/dev-sec/ansible-collection-hardening/pull/246) ([jandd](https://github.com/jandd))
|
||||||
|
- Add exception in sysctl task [\#240](https://github.com/dev-sec/ansible-collection-hardening/pull/240) ([ghost](https://github.com/ghost))
|
||||||
|
- Fedora - Use new auto ansible\_python\_interpreter for dnf [\#239](https://github.com/dev-sec/ansible-collection-hardening/pull/239) ([jaredledvina](https://github.com/jaredledvina))
|
||||||
|
- add test support for CentOS8 [\#237](https://github.com/dev-sec/ansible-collection-hardening/pull/237) ([yeoldegrove](https://github.com/yeoldegrove))
|
||||||
|
- Support configuring SELinux and default to enforcing [\#236](https://github.com/dev-sec/ansible-collection-hardening/pull/236) ([jaredledvina](https://github.com/jaredledvina))
|
||||||
|
- Add test support for debian buster [\#234](https://github.com/dev-sec/ansible-collection-hardening/pull/234) ([123Haynes](https://github.com/123Haynes))
|
||||||
|
- Changed local var name to a less common one [\#231](https://github.com/dev-sec/ansible-collection-hardening/pull/231) ([rgarrigue](https://github.com/rgarrigue))
|
||||||
|
- Use ansible facts for vars [\#226](https://github.com/dev-sec/ansible-collection-hardening/pull/226) ([joshuatalb](https://github.com/joshuatalb))
|
||||||
|
- Fix deprecation warnings in Ansible 2.8 [\#224](https://github.com/dev-sec/ansible-collection-hardening/pull/224) ([Normo](https://github.com/Normo))
|
||||||
|
- add docs to find-task in minimize access. fix \#219 [\#220](https://github.com/dev-sec/ansible-collection-hardening/pull/220) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- remove eol'd OS and add new [\#217](https://github.com/dev-sec/ansible-collection-hardening/pull/217) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add note about docker under warning [\#214](https://github.com/dev-sec/ansible-collection-hardening/pull/214) ([ChrisMcKee](https://github.com/ChrisMcKee))
|
||||||
|
- change minimize access tasks to speed them up [\#209](https://github.com/dev-sec/ansible-collection-hardening/pull/209) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Added fedora support [\#206](https://github.com/dev-sec/ansible-collection-hardening/pull/206) ([jonaswre](https://github.com/jonaswre))
|
||||||
|
- Pass package list directly to apt and yum modules without using with\_items loop [\#200](https://github.com/dev-sec/ansible-collection-hardening/pull/200) ([Normo](https://github.com/Normo))
|
||||||
|
- add ubuntu 1804 support [\#196](https://github.com/dev-sec/ansible-collection-hardening/pull/196) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add option to disable auditd [\#192](https://github.com/dev-sec/ansible-collection-hardening/pull/192) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix problems with efi and vfat [\#190](https://github.com/dev-sec/ansible-collection-hardening/pull/190) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- added os\_hardening\_enabled flag [\#186](https://github.com/dev-sec/ansible-collection-hardening/pull/186) ([jcheroske](https://github.com/jcheroske))
|
||||||
|
- add amazon run opts to travis [\#183](https://github.com/dev-sec/ansible-collection-hardening/pull/183) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- use package instead of yum and apt [\#180](https://github.com/dev-sec/ansible-collection-hardening/pull/180) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add oracle7 to travis [\#178](https://github.com/dev-sec/ansible-collection-hardening/pull/178) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix wrong permissions passwdqc \#170 [\#176](https://github.com/dev-sec/ansible-collection-hardening/pull/176) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- ipv4 forwarding comment is inconsistent with example [\#174](https://github.com/dev-sec/ansible-collection-hardening/pull/174) ([carchrae](https://github.com/carchrae))
|
||||||
|
- Rename pam\_passwdqd.j2 to pam\_passwdqc.j2 [\#172](https://github.com/dev-sec/ansible-collection-hardening/pull/172) ([martinbydefault](https://github.com/martinbydefault))
|
||||||
|
- Use package state 'present' since 'installed' is deprecated [\#168](https://github.com/dev-sec/ansible-collection-hardening/pull/168) ([Normo](https://github.com/Normo))
|
||||||
|
- Update syntax to Ansible 2.4 [\#161](https://github.com/dev-sec/ansible-collection-hardening/pull/161) ([thomasjpfan](https://github.com/thomasjpfan))
|
||||||
|
- add amazon linux testing [\#160](https://github.com/dev-sec/ansible-collection-hardening/pull/160) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add support for Amazon Linux [\#158](https://github.com/dev-sec/ansible-collection-hardening/pull/158) ([woneill](https://github.com/woneill))
|
||||||
|
- Don't create home for system accounts [\#156](https://github.com/dev-sec/ansible-collection-hardening/pull/156) ([oakey-b1](https://github.com/oakey-b1))
|
||||||
|
- Prevent disabling of filesystems via whitelist [\#153](https://github.com/dev-sec/ansible-collection-hardening/pull/153) ([manuelprinz](https://github.com/manuelprinz))
|
||||||
|
- Add kernel hardening settings from Ubuntu /etc/sysctl.d [\#150](https://github.com/dev-sec/ansible-collection-hardening/pull/150) ([kravietz](https://github.com/kravietz))
|
||||||
|
- Removal of core dump hardening configuration if core dumps are allowed [\#146](https://github.com/dev-sec/ansible-collection-hardening/pull/146) ([martinbydefault](https://github.com/martinbydefault))
|
||||||
|
- install and configure auditd - fix inspec package-08 [\#144](https://github.com/dev-sec/ansible-collection-hardening/pull/144) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add missing sysctl parameter [\#143](https://github.com/dev-sec/ansible-collection-hardening/pull/143) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- update readme [\#139](https://github.com/dev-sec/ansible-collection-hardening/pull/139) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add modprobe template, control os-10 [\#138](https://github.com/dev-sec/ansible-collection-hardening/pull/138) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- new task for delete netrc files, control os-09 [\#137](https://github.com/dev-sec/ansible-collection-hardening/pull/137) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add passwd task, control os-03 [\#136](https://github.com/dev-sec/ansible-collection-hardening/pull/136) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- remove prelink package, control package-09 [\#135](https://github.com/dev-sec/ansible-collection-hardening/pull/135) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- style update [\#134](https://github.com/dev-sec/ansible-collection-hardening/pull/134) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Remove deprecated include for static tasks and use instead import\_tasks fix \#131 [\#132](https://github.com/dev-sec/ansible-collection-hardening/pull/132) ([HelioCampos](https://github.com/HelioCampos))
|
||||||
|
- Fix ansible.cfg and use comment filter [\#130](https://github.com/dev-sec/ansible-collection-hardening/pull/130) ([fazlearefin](https://github.com/fazlearefin))
|
||||||
|
- install initramfs-tools [\#114](https://github.com/dev-sec/ansible-collection-hardening/pull/114) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- omit empty variables [\#106](https://github.com/dev-sec/ansible-collection-hardening/pull/106) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Supports --check mode [\#93](https://github.com/dev-sec/ansible-collection-hardening/pull/93) ([conorsch](https://github.com/conorsch))
|
||||||
|
- Adds support for CentOS 7 [\#91](https://github.com/dev-sec/ansible-collection-hardening/pull/91) ([conorsch](https://github.com/conorsch))
|
||||||
|
- Docker [\#90](https://github.com/dev-sec/ansible-collection-hardening/pull/90) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- debian 8 support [\#88](https://github.com/dev-sec/ansible-collection-hardening/pull/88) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Ufw manage defaults [\#85](https://github.com/dev-sec/ansible-collection-hardening/pull/85) ([fitz123](https://github.com/fitz123))
|
||||||
|
- replace ignore\_errors to failed\_when to supress ugly error warnings [\#81](https://github.com/dev-sec/ansible-collection-hardening/pull/81) ([fitz123](https://github.com/fitz123))
|
||||||
|
- fix bare variables usage for loops [\#79](https://github.com/dev-sec/ansible-collection-hardening/pull/79) ([fitz123](https://github.com/fitz123))
|
||||||
|
- update platforms in meta-file [\#69](https://github.com/dev-sec/ansible-collection-hardening/pull/69) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add webhook for ansible galaxy [\#68](https://github.com/dev-sec/ansible-collection-hardening/pull/68) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Move sysctl vars to defaults [\#67](https://github.com/dev-sec/ansible-collection-hardening/pull/67) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- make sys\_uid and sys\_gid configurable [\#62](https://github.com/dev-sec/ansible-collection-hardening/pull/62) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Ansible 2.0 support [\#59](https://github.com/dev-sec/ansible-collection-hardening/pull/59) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- use inspec as test framework [\#58](https://github.com/dev-sec/ansible-collection-hardening/pull/58) ([chris-rock](https://github.com/chris-rock))
|
||||||
|
- Packages as attributes [\#57](https://github.com/dev-sec/ansible-collection-hardening/pull/57) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Change categories to tags for upcoming ansible 2.0 [\#56](https://github.com/dev-sec/ansible-collection-hardening/pull/56) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add SINGLE and PROMPT parameters. [\#55](https://github.com/dev-sec/ansible-collection-hardening/pull/55) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add changelog generator [\#54](https://github.com/dev-sec/ansible-collection-hardening/pull/54) ([chris-rock](https://github.com/chris-rock))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Task "set 10.hardcore.conf perms to 0400 and root ownership" fails in check mode [\#313](https://github.com/dev-sec/ansible-collection-hardening/issues/313)
|
||||||
|
- Inconsistent use of role vars/role defaults [\#284](https://github.com/dev-sec/ansible-collection-hardening/issues/284)
|
||||||
|
- Is it safe to use on Debian 10? The build is failing. [\#281](https://github.com/dev-sec/ansible-collection-hardening/issues/281)
|
||||||
|
- /etc/login.defs alters centos 7/8 default values [\#265](https://github.com/dev-sec/ansible-collection-hardening/issues/265)
|
||||||
|
- Invalid Conditionals in user\_accounts.yml [\#255](https://github.com/dev-sec/ansible-collection-hardening/issues/255)
|
||||||
|
- `auth-system` related files are created for non-RHEL systems \(e.g. Debian\) [\#247](https://github.com/dev-sec/ansible-collection-hardening/issues/247)
|
||||||
|
- NSA website links are stale [\#227](https://github.com/dev-sec/ansible-collection-hardening/issues/227)
|
||||||
|
- Running ansible on python3 throughs "TypeError: '\<=' not supported between instances of 'str' and 'int'" [\#223](https://github.com/dev-sec/ansible-collection-hardening/issues/223)
|
||||||
|
- \[lots of\] deprecation warnings in Ansible 2.8 [\#221](https://github.com/dev-sec/ansible-collection-hardening/issues/221)
|
||||||
|
- `squash_actions` deprecation warning [\#218](https://github.com/dev-sec/ansible-collection-hardening/issues/218)
|
||||||
|
- login.defs.j2 template: ENV\_PATH is missing ':' before variable substitution [\#202](https://github.com/dev-sec/ansible-collection-hardening/issues/202)
|
||||||
|
- auditd causing v5.0 to fail on unpriviledged LXC's [\#191](https://github.com/dev-sec/ansible-collection-hardening/issues/191)
|
||||||
|
- Setting os\_security\_users\_allow has no effect [\#175](https://github.com/dev-sec/ansible-collection-hardening/issues/175)
|
||||||
|
- minimize\_access: maximum recursion depth exceeded on Ansible 2.5 [\#171](https://github.com/dev-sec/ansible-collection-hardening/issues/171)
|
||||||
|
- wrong permissions passwdqc [\#170](https://github.com/dev-sec/ansible-collection-hardening/issues/170)
|
||||||
|
- 'sysctl\_rhel\_config' is undefined [\#167](https://github.com/dev-sec/ansible-collection-hardening/issues/167)
|
||||||
|
- Update deprecated `include` statements [\#166](https://github.com/dev-sec/ansible-collection-hardening/issues/166)
|
||||||
|
- Strongly recommend against disabling vfat by default [\#162](https://github.com/dev-sec/ansible-collection-hardening/issues/162)
|
||||||
|
- bug in ufw.j2 template [\#151](https://github.com/dev-sec/ansible-collection-hardening/issues/151)
|
||||||
|
- Add a "don't fail on error" switch ? [\#148](https://github.com/dev-sec/ansible-collection-hardening/issues/148)
|
||||||
|
- System completely unresponsive after role execution [\#145](https://github.com/dev-sec/ansible-collection-hardening/issues/145)
|
||||||
|
- Why is rsync removed? [\#141](https://github.com/dev-sec/ansible-collection-hardening/issues/141)
|
||||||
|
- RHEL 7.4: Too many setuid bits removed [\#140](https://github.com/dev-sec/ansible-collection-hardening/issues/140)
|
||||||
|
- Change system accounts not on the user provided ignore-list items are not JSON serializable [\#125](https://github.com/dev-sec/ansible-collection-hardening/issues/125)
|
||||||
|
- playbook makes OS undetectable [\#124](https://github.com/dev-sec/ansible-collection-hardening/issues/124)
|
||||||
|
- Centos7/RHEL7: Exec shield is enabled by default and not manageable anymore by sysctl.conf [\#118](https://github.com/dev-sec/ansible-collection-hardening/issues/118)
|
||||||
|
- Could not find gem 'ruby \(\>= 2.1.0\)' [\#116](https://github.com/dev-sec/ansible-collection-hardening/issues/116)
|
||||||
|
- os\_security\_kernel\_enable\_sysrq is not implemented [\#115](https://github.com/dev-sec/ansible-collection-hardening/issues/115)
|
||||||
|
- The task sysctl fails when /etc/initramfs-tools is not present [\#111](https://github.com/dev-sec/ansible-collection-hardening/issues/111)
|
||||||
|
- The role fails when conditionally included [\#105](https://github.com/dev-sec/ansible-collection-hardening/issues/105)
|
||||||
|
- Deprecation warning always\_run [\#103](https://github.com/dev-sec/ansible-collection-hardening/issues/103)
|
||||||
|
- CentOS 7 selinux dependencies [\#102](https://github.com/dev-sec/ansible-collection-hardening/issues/102)
|
||||||
|
- ubuntu xenial warning during activate gpg-check for yum-repos [\#99](https://github.com/dev-sec/ansible-collection-hardening/issues/99)
|
||||||
|
- rhel\_system\_auth.j2 is still using pam\_passwdqc.so for CentOS 7 [\#98](https://github.com/dev-sec/ansible-collection-hardening/issues/98)
|
||||||
|
- Centos 7.1 fails at \[Change various sysctl-settings on rhel-hosts...\] [\#74](https://github.com/dev-sec/ansible-collection-hardening/issues/74)
|
||||||
|
- Enable pam\_pwquality in rhel-family \> 7 [\#73](https://github.com/dev-sec/ansible-collection-hardening/issues/73)
|
||||||
|
- Hardening fails on Centos 7.1 at task 'minimize access' [\#71](https://github.com/dev-sec/ansible-collection-hardening/issues/71)
|
||||||
|
- "irc" user always changed after reboot [\#53](https://github.com/dev-sec/ansible-collection-hardening/issues/53)
|
||||||
|
- use touch for 10.hardcore.conf to avoid problems with dry-run [\#314](https://github.com/dev-sec/ansible-collection-hardening/pull/314) ([schurzi](https://github.com/schurzi))
|
||||||
|
- use touch with no date changes [\#310](https://github.com/dev-sec/ansible-collection-hardening/pull/310) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- do not touch sysctl file to avoid idempotency problems [\#309](https://github.com/dev-sec/ansible-collection-hardening/pull/309) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- replace module parameter fixed [\#297](https://github.com/dev-sec/ansible-collection-hardening/pull/297) ([danielkubat](https://github.com/danielkubat))
|
||||||
|
- Addressing issue \#255 [\#258](https://github.com/dev-sec/ansible-collection-hardening/pull/258) ([ljkimmel](https://github.com/ljkimmel))
|
||||||
|
- Fix \#247, cleanup conditions [\#248](https://github.com/dev-sec/ansible-collection-hardening/pull/248) ([fernandezcuesta](https://github.com/fernandezcuesta))
|
||||||
|
- Fix error on applying the sysctl vars on containers [\#243](https://github.com/dev-sec/ansible-collection-hardening/pull/243) ([ghost](https://github.com/ghost))
|
||||||
|
- Update location of NSA RHEL 5 Guide [\#235](https://github.com/dev-sec/ansible-collection-hardening/pull/235) ([jaredledvina](https://github.com/jaredledvina))
|
||||||
|
- Fix typo [\#212](https://github.com/dev-sec/ansible-collection-hardening/pull/212) ([ruslo](https://github.com/ruslo))
|
||||||
|
- Update modprobe to 0644 [\#211](https://github.com/dev-sec/ansible-collection-hardening/pull/211) ([joshuatalb](https://github.com/joshuatalb))
|
||||||
|
- Test Kitchen Vagrant Fixes [\#210](https://github.com/dev-sec/ansible-collection-hardening/pull/210) ([joshuatalb](https://github.com/joshuatalb))
|
||||||
|
- \[readme\] Update documentation link [\#207](https://github.com/dev-sec/ansible-collection-hardening/pull/207) ([pmav99](https://github.com/pmav99))
|
||||||
|
- fix ansible lint remarks [\#204](https://github.com/dev-sec/ansible-collection-hardening/pull/204) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add colon to user env paths - fix \#202 [\#203](https://github.com/dev-sec/ansible-collection-hardening/pull/203) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add /usr/bin/su to suid\_guid whitelist [\#199](https://github.com/dev-sec/ansible-collection-hardening/pull/199) ([ccolic](https://github.com/ccolic))
|
||||||
|
- ensure that permissions to su-binary are not restricted to root user and group only, if os\_security\_users\_allow contains the value change\_user [\#197](https://github.com/dev-sec/ansible-collection-hardening/pull/197) ([szEvEz](https://github.com/szEvEz))
|
||||||
|
- do not install passwdqc on amazon linux [\#189](https://github.com/dev-sec/ansible-collection-hardening/pull/189) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add back run opts for debian 8 in travis [\#184](https://github.com/dev-sec/ansible-collection-hardening/pull/184) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix core dump config file creation when core dumps are disabled [\#182](https://github.com/dev-sec/ansible-collection-hardening/pull/182) ([Normo](https://github.com/Normo))
|
||||||
|
- change minimize access method [\#181](https://github.com/dev-sec/ansible-collection-hardening/pull/181) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix errors produced by ansible-lint [\#159](https://github.com/dev-sec/ansible-collection-hardening/pull/159) ([zbrojny120](https://github.com/zbrojny120))
|
||||||
|
- replace single ticks with double ticks. fix \#151 [\#152](https://github.com/dev-sec/ansible-collection-hardening/pull/152) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fixed tag [\#149](https://github.com/dev-sec/ansible-collection-hardening/pull/149) ([martinbydefault](https://github.com/martinbydefault))
|
||||||
|
- Remove rsync from package blacklist [\#142](https://github.com/dev-sec/ansible-collection-hardening/pull/142) ([duk3luk3](https://github.com/duk3luk3))
|
||||||
|
- Updates "tags" parameters on includes in main.yml [\#66](https://github.com/dev-sec/ansible-collection-hardening/pull/66) ([conorsch](https://github.com/conorsch))
|
||||||
|
- Suid set def var, fix \#64 [\#63](https://github.com/dev-sec/ansible-collection-hardening/pull/63) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Any planned support for RHEL/CentOS 8? [\#298](https://github.com/dev-sec/ansible-collection-hardening/issues/298)
|
||||||
|
- Consider using find module instead of shell [\#293](https://github.com/dev-sec/ansible-collection-hardening/issues/293)
|
||||||
|
- Optimize logical OR in when clause [\#292](https://github.com/dev-sec/ansible-collection-hardening/issues/292)
|
||||||
|
- vfat added to dev-sec.conf, but efi is used [\#288](https://github.com/dev-sec/ansible-collection-hardening/issues/288)
|
||||||
|
- The state of the galaxy release [\#269](https://github.com/dev-sec/ansible-collection-hardening/issues/269)
|
||||||
|
- OpenSUSE Support [\#249](https://github.com/dev-sec/ansible-collection-hardening/issues/249)
|
||||||
|
- ansible hardening fails on ubuntu 16.04 with msg": "ERROR! 'sysctl\_rhel\_config' is undefined [\#147](https://github.com/dev-sec/ansible-collection-hardening/issues/147)
|
||||||
|
- Enhancement: Test with TestInfra and Molecule [\#128](https://github.com/dev-sec/ansible-collection-hardening/issues/128)
|
||||||
|
- Enhancement: Pin python dependencies for development and testing [\#127](https://github.com/dev-sec/ansible-collection-hardening/issues/127)
|
||||||
|
- Update readme to include baselines [\#122](https://github.com/dev-sec/ansible-collection-hardening/issues/122)
|
||||||
|
- Error running on RHEL 7 due to syntax issues [\#112](https://github.com/dev-sec/ansible-collection-hardening/issues/112)
|
||||||
|
- disable password age [\#109](https://github.com/dev-sec/ansible-collection-hardening/issues/109)
|
||||||
|
- Permissions on /etc/shadow can lock out GUI users [\#86](https://github.com/dev-sec/ansible-collection-hardening/issues/86)
|
||||||
|
- network related sysctl rewritten by ufw in ubuntu [\#82](https://github.com/dev-sec/ansible-collection-hardening/issues/82)
|
||||||
|
- ansible \>= 2.0 complains: Using bare variables is deprecated [\#78](https://github.com/dev-sec/ansible-collection-hardening/issues/78)
|
||||||
|
- Hardening fails on Centos 7.1 at task 'remove suid/sgid bit from all binaries except in system and user whitelist' [\#72](https://github.com/dev-sec/ansible-collection-hardening/issues/72)
|
||||||
|
- ansible 2.0 | "remove suid/sgid" task fails [\#64](https://github.com/dev-sec/ansible-collection-hardening/issues/64)
|
||||||
|
- Custom sysctl [\#50](https://github.com/dev-sec/ansible-collection-hardening/issues/50)
|
||||||
|
- Fix directory structure. [\#48](https://github.com/dev-sec/ansible-collection-hardening/issues/48)
|
||||||
|
- pam auth update error [\#47](https://github.com/dev-sec/ansible-collection-hardening/issues/47)
|
||||||
|
- ansible-os-hardening/tasks/minimize\_access.yml [\#38](https://github.com/dev-sec/ansible-collection-hardening/issues/38)
|
||||||
|
- Role configuration. vars/main.yml? [\#34](https://github.com/dev-sec/ansible-collection-hardening/issues/34)
|
||||||
|
- Sysctl reloading [\#18](https://github.com/dev-sec/ansible-collection-hardening/issues/18)
|
||||||
|
- Add conditions for disabling of ip forwarding [\#15](https://github.com/dev-sec/ansible-collection-hardening/issues/15)
|
||||||
|
- Disable System Accounts [\#6](https://github.com/dev-sec/ansible-collection-hardening/issues/6)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- prettier markdown files action added [\#322](https://github.com/dev-sec/ansible-collection-hardening/pull/322) ([danielkubat](https://github.com/danielkubat))
|
||||||
|
- adjust permissions on shadow file on suse [\#311](https://github.com/dev-sec/ansible-collection-hardening/pull/311) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix fedora build [\#296](https://github.com/dev-sec/ansible-collection-hardening/pull/296) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- do not blacklist used filesystems [\#289](https://github.com/dev-sec/ansible-collection-hardening/pull/289) ([schurzi](https://github.com/schurzi))
|
||||||
|
- move hidepid vars into defaults so theyre overwritable [\#285](https://github.com/dev-sec/ansible-collection-hardening/pull/285) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- install procps in debian so sysctl.conf exists [\#282](https://github.com/dev-sec/ansible-collection-hardening/pull/282) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- move defaults to os-specific vars [\#157](https://github.com/dev-sec/ansible-collection-hardening/pull/157) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Converts set to JSON-serializable list [\#126](https://github.com/dev-sec/ansible-collection-hardening/pull/126) ([pestaa](https://github.com/pestaa))
|
||||||
|
- add more sysctl settings, allow overwriting [\#120](https://github.com/dev-sec/ansible-collection-hardening/pull/120) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- remove execshield sysctl-parameter on rhel7 [\#119](https://github.com/dev-sec/ansible-collection-hardening/pull/119) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- change shadow owner in debian systems [\#117](https://github.com/dev-sec/ansible-collection-hardening/pull/117) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Rhel7 [\#113](https://github.com/dev-sec/ansible-collection-hardening/pull/113) ([tyrken](https://github.com/tyrken))
|
||||||
|
- use new Docker images [\#110](https://github.com/dev-sec/ansible-collection-hardening/pull/110) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Don’t refer to this role as "playbook" in the role description [\#104](https://github.com/dev-sec/ansible-collection-hardening/pull/104) ([ypid](https://github.com/ypid))
|
||||||
|
- update template [\#101](https://github.com/dev-sec/ansible-collection-hardening/pull/101) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix deprecation warning for undefined error. \#99 [\#100](https://github.com/dev-sec/ansible-collection-hardening/pull/100) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add rhel7 pam\_pwquality. fix \#73 [\#94](https://github.com/dev-sec/ansible-collection-hardening/pull/94) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix a formatting issue in readme. [\#92](https://github.com/dev-sec/ansible-collection-hardening/pull/92) ([vivekagr](https://github.com/vivekagr))
|
||||||
|
- Permits overriding permissions on /etc/shadow [\#89](https://github.com/dev-sec/ansible-collection-hardening/pull/89) ([conorsch](https://github.com/conorsch))
|
||||||
|
- Release 3.0.0 [\#75](https://github.com/dev-sec/ansible-collection-hardening/pull/75) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add explicit role-path to kitchen.yml [\#52](https://github.com/dev-sec/ansible-collection-hardening/pull/52) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix pam passwdqc template [\#51](https://github.com/dev-sec/ansible-collection-hardening/pull/51) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- New dir layout [\#49](https://github.com/dev-sec/ansible-collection-hardening/pull/49) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- remove duplicate "update pam" task [\#46](https://github.com/dev-sec/ansible-collection-hardening/pull/46) ([fitz123](https://github.com/fitz123))
|
||||||
|
- Fix stuck in case pam files was updated before by force update [\#45](https://github.com/dev-sec/ansible-collection-hardening/pull/45) ([fitz123](https://github.com/fitz123))
|
||||||
|
- Fix nologin shell path [\#44](https://github.com/dev-sec/ansible-collection-hardening/pull/44) ([fitz123](https://github.com/fitz123))
|
||||||
|
- improved travis-tests to cover more cases [\#42](https://github.com/dev-sec/ansible-collection-hardening/pull/42) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Update kitchen-ansible, remove separate debian install [\#40](https://github.com/dev-sec/ansible-collection-hardening/pull/40) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add mode to su-binary task. Fix \#38 [\#39](https://github.com/dev-sec/ansible-collection-hardening/pull/39) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- update common kitchen.yml platforms \(ansible\), kitchen\_debian.yml platforms \(ansible\) [\#37](https://github.com/dev-sec/ansible-collection-hardening/pull/37) ([chris-rock](https://github.com/chris-rock))
|
||||||
|
- Change oneliner if-statements to be more readable [\#36](https://github.com/dev-sec/ansible-collection-hardening/pull/36) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Separate system-vars from editable vars. Fix \#34 [\#35](https://github.com/dev-sec/ansible-collection-hardening/pull/35) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Create limits.d-directory if it does not exist. [\#33](https://github.com/dev-sec/ansible-collection-hardening/pull/33) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add correct CONTRIB-file [\#32](https://github.com/dev-sec/ansible-collection-hardening/pull/32) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add Ansible Galaxy badge [\#31](https://github.com/dev-sec/ansible-collection-hardening/pull/31) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Update readme, todo, changelog, vars [\#30](https://github.com/dev-sec/ansible-collection-hardening/pull/30) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- List-cleanup and follow symlinks added [\#29](https://github.com/dev-sec/ansible-collection-hardening/pull/29) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add module configuration [\#28](https://github.com/dev-sec/ansible-collection-hardening/pull/28) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix two sysctl-settings [\#27](https://github.com/dev-sec/ansible-collection-hardening/pull/27) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add meta-files for Ansible Galaxy [\#26](https://github.com/dev-sec/ansible-collection-hardening/pull/26) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Disable System Accounts. Fix \#6 [\#25](https://github.com/dev-sec/ansible-collection-hardening/pull/25) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Use changed\_when to avoid changed tasks [\#24](https://github.com/dev-sec/ansible-collection-hardening/pull/24) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Delete authconfig-task on rhel-systems [\#23](https://github.com/dev-sec/ansible-collection-hardening/pull/23) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add missing rhosts-include task [\#21](https://github.com/dev-sec/ansible-collection-hardening/pull/21) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Change sysctl-task. Fix \#18 [\#20](https://github.com/dev-sec/ansible-collection-hardening/pull/20) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add travis-support [\#17](https://github.com/dev-sec/ansible-collection-hardening/pull/17) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add conditions for various tasks. Fix \#15 [\#16](https://github.com/dev-sec/ansible-collection-hardening/pull/16) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix configuration of playbook path [\#14](https://github.com/dev-sec/ansible-collection-hardening/pull/14) ([chris-rock](https://github.com/chris-rock))
|
||||||
|
- Make tasks clearer [\#13](https://github.com/dev-sec/ansible-collection-hardening/pull/13) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add remove suid/sgid function [\#12](https://github.com/dev-sec/ansible-collection-hardening/pull/12) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add task to remove unused repos and pkgs [\#11](https://github.com/dev-sec/ansible-collection-hardening/pull/11) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Edit README to fit to os-hardening [\#10](https://github.com/dev-sec/ansible-collection-hardening/pull/10) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- ignore RAs on Ipv6 [\#9](https://github.com/dev-sec/ansible-collection-hardening/pull/9) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Repair debian install script [\#8](https://github.com/dev-sec/ansible-collection-hardening/pull/8) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Separate tasks into multiple smaller files [\#7](https://github.com/dev-sec/ansible-collection-hardening/pull/7) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Enable gpg-check on all yum-repositories [\#5](https://github.com/dev-sec/ansible-collection-hardening/pull/5) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Change playbook-path to accomodate test-repo [\#4](https://github.com/dev-sec/ansible-collection-hardening/pull/4) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- treat securetty config as an array [\#3](https://github.com/dev-sec/ansible-collection-hardening/pull/3) ([arlimus](https://github.com/arlimus))
|
||||||
|
- Add Securetty-support [\#2](https://github.com/dev-sec/ansible-collection-hardening/pull/2) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add profile.conf configuration [\#1](https://github.com/dev-sec/ansible-collection-hardening/pull/1) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
||||||
+11
-16
@@ -26,28 +26,25 @@ Please follow common commit best-practices. Be explicit, have a short summary, a
|
|||||||
|
|
||||||
Some great guidelines can be found [here](https://wiki.openstack.org/wiki/GitCommitMessages) and [here](http://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message).
|
Some great guidelines can be found [here](https://wiki.openstack.org/wiki/GitCommitMessages) and [here](http://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message).
|
||||||
|
|
||||||
|
|
||||||
## Expectations
|
## Expectations
|
||||||
|
|
||||||
### Don't reinvent the wheel
|
### Don't reinvent the wheel
|
||||||
|
|
||||||
This hardening project doesn't intend to reinvent the configuration stack for services. Aim to use official configuration projects first and provide hardening as a layer on top. The goal is remove the need for a user to configure all aspects of services and maintain security configuration. This way, the user can still configure a service using the interface provided by the official project.
|
This hardening project doesn't intend to reinvent the configuration stack for services. Aim to use official configuration projects first and provide hardening as a layer on top. The goal is remove the need for a user to configure all aspects of services and maintain security configuration. This way, the user can still configure a service using the interface provided by the official project.
|
||||||
|
|
||||||
* For Chef refer to the official [opscode community cookbooks](http://community.opscode.com/cookbooks).
|
- For Chef refer to the official [opscode community cookbooks](http://community.opscode.com/cookbooks).
|
||||||
* For Puppet head to the [Puppet Forge](https://forge.puppetlabs.com/) and take a node of the Puppet supported modules.
|
- For Puppet head to the [Puppet Forge](https://forge.puppetlabs.com/) and take a node of the Puppet supported modules.
|
||||||
* For Ansible check the [Ansible Module Index](http://docs.ansible.com/list_of_all_modules.html)
|
- For Ansible check the [Ansible Module Index](http://docs.ansible.com/list_of_all_modules.html)
|
||||||
|
|
||||||
These projects are generally hosted on GitHub as well.
|
These projects are generally hosted on GitHub as well.
|
||||||
|
|
||||||
In some cases, we in fact create the full rollout stack, but this is generally the exception ([os-hardening](https://github.com/TelekomLabs/chef-os-hardening), [nginx-hardening](https://github.com/TelekomLabs/chef-nginx-hardening)).
|
In some cases, we in fact create the full rollout stack, but this is generally the exception ([os-hardening](https://github.com/TelekomLabs/chef-os-hardening), [nginx-hardening](https://github.com/TelekomLabs/chef-nginx-hardening)).
|
||||||
|
|
||||||
|
|
||||||
### Be explicit
|
### Be explicit
|
||||||
|
|
||||||
* Please avoid using nonsensical property and variable names.
|
- Please avoid using nonsensical property and variable names.
|
||||||
* Use self-describing attribute names for user configuration.
|
- Use self-describing attribute names for user configuration.
|
||||||
* In case of failures, communicate what happened and why a failure occurs to the user. Make it easy to track the code or action that produced the error. Try to catch and handle errors if possible to provide improved failure messages.
|
- In case of failures, communicate what happened and why a failure occurs to the user. Make it easy to track the code or action that produced the error. Try to catch and handle errors if possible to provide improved failure messages.
|
||||||
|
|
||||||
|
|
||||||
### Add tests
|
### Add tests
|
||||||
|
|
||||||
@@ -59,24 +56,22 @@ You may add a new feature request by creating a test for whatever value you need
|
|||||||
|
|
||||||
All tests will be reviewed internally for their validity and overall project direction.
|
All tests will be reviewed internally for their validity and overall project direction.
|
||||||
|
|
||||||
|
|
||||||
### Document your code
|
### Document your code
|
||||||
|
|
||||||
As code is more often read than written, please provide documentation in all projects.
|
As code is more often read than written, please provide documentation in all projects.
|
||||||
|
|
||||||
Adhere to the respective guidelines for documentation:
|
Adhere to the respective guidelines for documentation:
|
||||||
|
|
||||||
* Chef generally documents code based explicit readme files. For code documentation please use [yard-chef](https://github.com/rightscale/yard-chef)
|
- Chef generally documents code based explicit readme files. For code documentation please use [yard-chef](https://github.com/rightscale/yard-chef)
|
||||||
* [Puppet module documentation](http://docs.puppetlabs.com/puppet/latest/reference/modules_documentation.html)
|
- [Puppet module documentation](http://docs.puppetlabs.com/puppet/latest/reference/modules_documentation.html)
|
||||||
|
|
||||||
|
|
||||||
### Follow coding styles
|
### Follow coding styles
|
||||||
|
|
||||||
We generally include test for coding guidelines:
|
We generally include test for coding guidelines:
|
||||||
|
|
||||||
* Chef follows [Foodcritic](http://acrmp.github.io/foodcritic/)
|
- Chef follows [Foodcritic](http://acrmp.github.io/foodcritic/)
|
||||||
* Puppet is checked with [puppet-lint](http://puppet-lint.com/checks/)
|
- Puppet is checked with [puppet-lint](http://puppet-lint.com/checks/)
|
||||||
* Ansible is checked by running the playbook with the syntax-check option, e.g. `ansible-playbook foo.yml --syntax-check`
|
- Ansible is checked by running the playbook with the syntax-check option, e.g. `ansible-playbook foo.yml --syntax-check`
|
||||||
|
|
||||||
Remember: Code is generally read much more often than written.
|
Remember: Code is generally read much more often than written.
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
# encoding: utf-8
|
|
||||||
|
|
||||||
source 'https://rubygems.org'
|
|
||||||
|
|
||||||
group :integration do
|
|
||||||
gem 'test-kitchen', '~> 1.0'
|
|
||||||
gem 'kitchen-ansible'
|
|
||||||
gem 'kitchen-vagrant'
|
|
||||||
gem 'kitchen-inspec'
|
|
||||||
gem 'kitchen-sharedtests', '~> 0.2.0'
|
|
||||||
gem 'kitchen-sync'
|
|
||||||
gem 'kitchen-transport-rsync'
|
|
||||||
gem 'kitchen-docker'
|
|
||||||
end
|
|
||||||
|
|
||||||
group :tools do
|
|
||||||
gem 'github_changelog_generator', '~> 1'
|
|
||||||
end
|
|
||||||
@@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
@@ -0,0 +1,467 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
## [6.2.0](https://github.com/dev-sec/ansible-os-hardening/tree/6.2.0) (2020-08-17)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/6.1.0...6.2.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Optimize and unify when clause [\#295](https://github.com/dev-sec/ansible-os-hardening/pull/295) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[patch](https://github.com/dev-sec/ansible-os-hardening/labels/patch)] ([Alexhha](https://github.com/Alexhha))
|
||||||
|
- use find module instead of shell [\#294](https://github.com/dev-sec/ansible-os-hardening/pull/294) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[patch](https://github.com/dev-sec/ansible-os-hardening/labels/patch)] ([danielkubat](https://github.com/danielkubat))
|
||||||
|
- improve testing [\#287](https://github.com/dev-sec/ansible-os-hardening/pull/287) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[minor](https://github.com/dev-sec/ansible-os-hardening/labels/minor)] ([schurzi](https://github.com/schurzi))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Inconsistent use of role vars/role defaults [\#284](https://github.com/dev-sec/ansible-os-hardening/issues/284) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- replace module parameter fixed [\#297](https://github.com/dev-sec/ansible-os-hardening/pull/297) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[patch](https://github.com/dev-sec/ansible-os-hardening/labels/patch)] ([danielkubat](https://github.com/danielkubat))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Consider using find module instead of shell [\#293](https://github.com/dev-sec/ansible-os-hardening/issues/293)
|
||||||
|
- Optimize logical OR in when clause [\#292](https://github.com/dev-sec/ansible-os-hardening/issues/292)
|
||||||
|
- vfat added to dev-sec.conf, but efi is used [\#288](https://github.com/dev-sec/ansible-os-hardening/issues/288)
|
||||||
|
- OpenSUSE Support [\#249](https://github.com/dev-sec/ansible-os-hardening/issues/249)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- fix fedora build [\#296](https://github.com/dev-sec/ansible-os-hardening/pull/296) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- do not blacklist used filesystems [\#289](https://github.com/dev-sec/ansible-os-hardening/pull/289) [[patch](https://github.com/dev-sec/ansible-os-hardening/labels/patch)] ([schurzi](https://github.com/schurzi))
|
||||||
|
- move hidepid vars into defaults so theyre overwritable [\#285](https://github.com/dev-sec/ansible-os-hardening/pull/285) [[patch](https://github.com/dev-sec/ansible-os-hardening/labels/patch)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [6.1.0](https://github.com/dev-sec/ansible-os-hardening/tree/6.1.0) (2020-07-21)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/6.0.3...6.1.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Mount proc filesystem using hidepid option [\#283](https://github.com/dev-sec/ansible-os-hardening/pull/283) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[minor](https://github.com/dev-sec/ansible-os-hardening/labels/minor)] ([alegrey91](https://github.com/alegrey91))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Is it safe to use on Debian 10? The build is failing. [\#281](https://github.com/dev-sec/ansible-os-hardening/issues/281) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- The state of the galaxy release [\#269](https://github.com/dev-sec/ansible-os-hardening/issues/269)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- install procps in debian so sysctl.conf exists [\#282](https://github.com/dev-sec/ansible-os-hardening/pull/282) [[patch](https://github.com/dev-sec/ansible-os-hardening/labels/patch)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [6.0.3](https://github.com/dev-sec/ansible-os-hardening/tree/6.0.3) (2020-06-06)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/6.0.2...6.0.3)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- unify changelog and release actions [\#279](https://github.com/dev-sec/ansible-os-hardening/pull/279) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[patch](https://github.com/dev-sec/ansible-os-hardening/labels/patch)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [6.0.2](https://github.com/dev-sec/ansible-os-hardening/tree/6.0.2) (2020-06-02)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/6.0.1...6.0.2)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- purge insecure packages [\#275](https://github.com/dev-sec/ansible-os-hardening/pull/275) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[minor](https://github.com/dev-sec/ansible-os-hardening/labels/minor)] ([chris-rock](https://github.com/chris-rock))
|
||||||
|
|
||||||
|
## [6.0.1](https://github.com/dev-sec/ansible-os-hardening/tree/6.0.1) (2020-05-09)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/6.0.0...6.0.1)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- add changelog and release workflow [\#271](https://github.com/dev-sec/ansible-os-hardening/pull/271) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[patch](https://github.com/dev-sec/ansible-os-hardening/labels/patch)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- github action for changelog generation [\#270](https://github.com/dev-sec/ansible-os-hardening/pull/270) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[patch](https://github.com/dev-sec/ansible-os-hardening/labels/patch)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [6.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/6.0.0) (2020-05-05)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/5.2.1...6.0.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Configure audit=1 for more accurate auid auditing [\#253](https://github.com/dev-sec/ansible-os-hardening/issues/253) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)]
|
||||||
|
- Add Debian Buster support for ansible-os-hardening [\#233](https://github.com/dev-sec/ansible-os-hardening/issues/233) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[hacktoberfest](https://github.com/dev-sec/ansible-os-hardening/labels/hacktoberfest)]
|
||||||
|
- Add CentOS 8 support for ansible-os-hardening [\#232](https://github.com/dev-sec/ansible-os-hardening/issues/232) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[hacktoberfest](https://github.com/dev-sec/ansible-os-hardening/labels/hacktoberfest)]
|
||||||
|
- Add selinux configuration [\#154](https://github.com/dev-sec/ansible-os-hardening/issues/154) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[hacktoberfest](https://github.com/dev-sec/ansible-os-hardening/labels/hacktoberfest)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
- Make useradd defaults in login.defs dependent on OS [\#266](https://github.com/dev-sec/ansible-os-hardening/pull/266) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([aisbergg](https://github.com/aisbergg))
|
||||||
|
- Add kernel hardening parameters from Tails and CIS Benchmark [\#263](https://github.com/dev-sec/ansible-os-hardening/pull/263) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([kravietz](https://github.com/kravietz))
|
||||||
|
- add ansible-lint [\#262](https://github.com/dev-sec/ansible-os-hardening/pull/262) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Remove trailing space [\#261](https://github.com/dev-sec/ansible-os-hardening/pull/261) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([kravietz](https://github.com/kravietz))
|
||||||
|
- Add kernel parameter information to README [\#259](https://github.com/dev-sec/ansible-os-hardening/pull/259) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([jaredledvina](https://github.com/jaredledvina))
|
||||||
|
- Remove trailing whitespaces \(ansible-lint 201\) [\#254](https://github.com/dev-sec/ansible-os-hardening/pull/254) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([kravietz](https://github.com/kravietz))
|
||||||
|
- Standardize the var ordering [\#251](https://github.com/dev-sec/ansible-os-hardening/pull/251) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([dustinmiller1337](https://github.com/dustinmiller1337))
|
||||||
|
- Add intial support for OpenSUSE [\#250](https://github.com/dev-sec/ansible-os-hardening/pull/250) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([dustinmiller1337](https://github.com/dustinmiller1337))
|
||||||
|
- Make max_log_file_action for auditd configurable [\#246](https://github.com/dev-sec/ansible-os-hardening/pull/246) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([jandd](https://github.com/jandd))
|
||||||
|
- Add exception in sysctl task [\#240](https://github.com/dev-sec/ansible-os-hardening/pull/240) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([ghost](https://github.com/ghost))
|
||||||
|
- Fedora - Use new auto ansible_python_interpreter for dnf [\#239](https://github.com/dev-sec/ansible-os-hardening/pull/239) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([jaredledvina](https://github.com/jaredledvina))
|
||||||
|
- add test support for CentOS8 [\#237](https://github.com/dev-sec/ansible-os-hardening/pull/237) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([yeoldegrove](https://github.com/yeoldegrove))
|
||||||
|
- Support configuring SELinux and default to enforcing [\#236](https://github.com/dev-sec/ansible-os-hardening/pull/236) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([jaredledvina](https://github.com/jaredledvina))
|
||||||
|
- Add test support for debian buster [\#234](https://github.com/dev-sec/ansible-os-hardening/pull/234) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([123Haynes](https://github.com/123Haynes))
|
||||||
|
- Changed local var name to a less common one [\#231](https://github.com/dev-sec/ansible-os-hardening/pull/231) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rgarrigue](https://github.com/rgarrigue))
|
||||||
|
- Use ansible facts for vars [\#226](https://github.com/dev-sec/ansible-os-hardening/pull/226) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([joshuatalb](https://github.com/joshuatalb))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- /etc/login.defs alters centos 7/8 default values [\#265](https://github.com/dev-sec/ansible-os-hardening/issues/265) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
- Invalid Conditionals in user_accounts.yml [\#255](https://github.com/dev-sec/ansible-os-hardening/issues/255) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- `auth-system` related files are created for non-RHEL systems \(e.g. Debian\) [\#247](https://github.com/dev-sec/ansible-os-hardening/issues/247) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- NSA website links are stale [\#227](https://github.com/dev-sec/ansible-os-hardening/issues/227) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[hacktoberfest](https://github.com/dev-sec/ansible-os-hardening/labels/hacktoberfest)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
- Running ansible on python3 throughs "TypeError: '\<=' not supported between instances of 'str' and 'int'" [\#223](https://github.com/dev-sec/ansible-os-hardening/issues/223) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- \[lots of\] deprecation warnings in Ansible 2.8 [\#221](https://github.com/dev-sec/ansible-os-hardening/issues/221) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
- Add a "don't fail on error" switch ? [\#148](https://github.com/dev-sec/ansible-os-hardening/issues/148) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Addressing issue \#255 [\#258](https://github.com/dev-sec/ansible-os-hardening/pull/258) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([ljkimmel](https://github.com/ljkimmel))
|
||||||
|
- Fix \#247, cleanup conditions [\#248](https://github.com/dev-sec/ansible-os-hardening/pull/248) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([fernandezcuesta](https://github.com/fernandezcuesta))
|
||||||
|
- Fix error on applying the sysctl vars on containers [\#243](https://github.com/dev-sec/ansible-os-hardening/pull/243) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([ghost](https://github.com/ghost))
|
||||||
|
- Update location of NSA RHEL 5 Guide [\#235](https://github.com/dev-sec/ansible-os-hardening/pull/235) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([jaredledvina](https://github.com/jaredledvina))
|
||||||
|
|
||||||
|
## [5.2.1](https://github.com/dev-sec/ansible-os-hardening/tree/5.2.1) (2019-06-09)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/5.2.0...5.2.1)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Fix deprecation warnings in Ansible 2.8 [\#224](https://github.com/dev-sec/ansible-os-hardening/pull/224) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([Normo](https://github.com/Normo))
|
||||||
|
- add docs to find-task in minimize access. fix \#219 [\#220](https://github.com/dev-sec/ansible-os-hardening/pull/220) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- `squash_actions` deprecation warning [\#218](https://github.com/dev-sec/ansible-os-hardening/issues/218) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
|
||||||
|
## [5.2.0](https://github.com/dev-sec/ansible-os-hardening/tree/5.2.0) (2019-05-04)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/5.1.0...5.2.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Speed up "minimize access on found files" task [\#208](https://github.com/dev-sec/ansible-os-hardening/issues/208) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)]
|
||||||
|
- Fedora support? [\#163](https://github.com/dev-sec/ansible-os-hardening/issues/163) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
- remove eol'd OS and add new [\#217](https://github.com/dev-sec/ansible-os-hardening/pull/217) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add note about docker under warning [\#214](https://github.com/dev-sec/ansible-os-hardening/pull/214) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([ChrisMcKee](https://github.com/ChrisMcKee))
|
||||||
|
- change minimize access tasks to speed them up [\#209](https://github.com/dev-sec/ansible-os-hardening/pull/209) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Added fedora support [\#206](https://github.com/dev-sec/ansible-os-hardening/pull/206) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([jonaswre](https://github.com/jonaswre))
|
||||||
|
- Pass package list directly to apt and yum modules without using with_items loop [\#200](https://github.com/dev-sec/ansible-os-hardening/pull/200) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([Normo](https://github.com/Normo))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- login.defs.j2 template: ENV_PATH is missing ':' before variable substitution [\#202](https://github.com/dev-sec/ansible-os-hardening/issues/202) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- 'sysctl_rhel_config' is undefined [\#167](https://github.com/dev-sec/ansible-os-hardening/issues/167) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- RHEL 7.4: Too many setuid bits removed [\#140](https://github.com/dev-sec/ansible-os-hardening/issues/140) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
- Fix typo [\#212](https://github.com/dev-sec/ansible-os-hardening/pull/212) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([ruslo](https://github.com/ruslo))
|
||||||
|
- Update modprobe to 0644 [\#211](https://github.com/dev-sec/ansible-os-hardening/pull/211) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([joshuatalb](https://github.com/joshuatalb))
|
||||||
|
- Test Kitchen Vagrant Fixes [\#210](https://github.com/dev-sec/ansible-os-hardening/pull/210) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([joshuatalb](https://github.com/joshuatalb))
|
||||||
|
- \[readme\] Update documentation link [\#207](https://github.com/dev-sec/ansible-os-hardening/pull/207) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([pmav99](https://github.com/pmav99))
|
||||||
|
- fix ansible lint remarks [\#204](https://github.com/dev-sec/ansible-os-hardening/pull/204) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add colon to user env paths - fix \#202 [\#203](https://github.com/dev-sec/ansible-os-hardening/pull/203) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix errors produced by ansible-lint [\#159](https://github.com/dev-sec/ansible-os-hardening/pull/159) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([zbrojny120](https://github.com/zbrojny120))
|
||||||
|
|
||||||
|
## [5.1.0](https://github.com/dev-sec/ansible-os-hardening/tree/5.1.0) (2018-10-17)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/5.0.0...5.1.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- add ubuntu 1804 support [\#196](https://github.com/dev-sec/ansible-os-hardening/pull/196) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add option to disable auditd [\#192](https://github.com/dev-sec/ansible-os-hardening/pull/192) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- auditd causing v5.0 to fail on unpriviledged LXC's [\#191](https://github.com/dev-sec/ansible-os-hardening/issues/191) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Setting os_security_users_allow has no effect [\#175](https://github.com/dev-sec/ansible-os-hardening/issues/175) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- add /usr/bin/su to suid_guid whitelist [\#199](https://github.com/dev-sec/ansible-os-hardening/pull/199) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([ccolic](https://github.com/ccolic))
|
||||||
|
- ensure that permissions to su-binary are not restricted to root user and group only, if os_security_users_allow contains the value change_user [\#197](https://github.com/dev-sec/ansible-os-hardening/pull/197) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([szEvEz](https://github.com/szEvEz))
|
||||||
|
|
||||||
|
## [5.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/5.0.0) (2018-09-02)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.3.0...5.0.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Warning about "include" for tasks for ansible-playbook 2.4.0 \(devel f0a5854e39\) [\#131](https://github.com/dev-sec/ansible-os-hardening/issues/131) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)]
|
||||||
|
- fix problems with efi and vfat [\#190](https://github.com/dev-sec/ansible-os-hardening/pull/190) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- added os_hardening_enabled flag [\#186](https://github.com/dev-sec/ansible-os-hardening/pull/186) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([jcheroske](https://github.com/jcheroske))
|
||||||
|
- add amazon run opts to travis [\#183](https://github.com/dev-sec/ansible-os-hardening/pull/183) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- use package instead of yum and apt [\#180](https://github.com/dev-sec/ansible-os-hardening/pull/180) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add oracle7 to travis [\#178](https://github.com/dev-sec/ansible-os-hardening/pull/178) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix wrong permissions passwdqc \#170 [\#176](https://github.com/dev-sec/ansible-os-hardening/pull/176) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- ipv4 forwarding comment is inconsistent with example [\#174](https://github.com/dev-sec/ansible-os-hardening/pull/174) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([carchrae](https://github.com/carchrae))
|
||||||
|
- Rename pam_passwdqd.j2 to pam_passwdqc.j2 [\#172](https://github.com/dev-sec/ansible-os-hardening/pull/172) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([martinbydefault](https://github.com/martinbydefault))
|
||||||
|
- Use package state 'present' since 'installed' is deprecated [\#168](https://github.com/dev-sec/ansible-os-hardening/pull/168) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([Normo](https://github.com/Normo))
|
||||||
|
- Update syntax to Ansible 2.4 [\#161](https://github.com/dev-sec/ansible-os-hardening/pull/161) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([thomasjpfan](https://github.com/thomasjpfan))
|
||||||
|
- add amazon linux testing [\#160](https://github.com/dev-sec/ansible-os-hardening/pull/160) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add support for Amazon Linux [\#158](https://github.com/dev-sec/ansible-os-hardening/pull/158) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([woneill](https://github.com/woneill))
|
||||||
|
- install and configure auditd - fix inspec package-08 [\#144](https://github.com/dev-sec/ansible-os-hardening/pull/144) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Remove deprecated include for static tasks and use instead import_tasks fix \#131 [\#132](https://github.com/dev-sec/ansible-os-hardening/pull/132) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([HelioCampos](https://github.com/HelioCampos))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- minimize_access: maximum recursion depth exceeded on Ansible 2.5 [\#171](https://github.com/dev-sec/ansible-os-hardening/issues/171) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- wrong permissions passwdqc [\#170](https://github.com/dev-sec/ansible-os-hardening/issues/170) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Update deprecated `include` statements [\#166](https://github.com/dev-sec/ansible-os-hardening/issues/166) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Strongly recommend against disabling vfat by default [\#162](https://github.com/dev-sec/ansible-os-hardening/issues/162) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- System completely unresponsive after role execution [\#145](https://github.com/dev-sec/ansible-os-hardening/issues/145) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- do not install passwdqc on amazon linux [\#189](https://github.com/dev-sec/ansible-os-hardening/pull/189) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add back run opts for debian 8 in travis [\#184](https://github.com/dev-sec/ansible-os-hardening/pull/184) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix core dump config file creation when core dumps are disabled [\#182](https://github.com/dev-sec/ansible-os-hardening/pull/182) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([Normo](https://github.com/Normo))
|
||||||
|
- change minimize access method [\#181](https://github.com/dev-sec/ansible-os-hardening/pull/181) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [4.3.0](https://github.com/dev-sec/ansible-os-hardening/tree/4.3.0) (2018-01-03)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.3.1...4.3.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Update some RH settings in this role [\#155](https://github.com/dev-sec/ansible-os-hardening/issues/155) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)]
|
||||||
|
- Removal of core dump hardening configuration if core dumps are allowed [\#129](https://github.com/dev-sec/ansible-os-hardening/issues/129) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
- Don't create home for system accounts [\#156](https://github.com/dev-sec/ansible-os-hardening/pull/156) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([oakey-b1](https://github.com/oakey-b1))
|
||||||
|
- Prevent disabling of filesystems via whitelist [\#153](https://github.com/dev-sec/ansible-os-hardening/pull/153) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([manuelprinz](https://github.com/manuelprinz))
|
||||||
|
- Add kernel hardening settings from Ubuntu /etc/sysctl.d [\#150](https://github.com/dev-sec/ansible-os-hardening/pull/150) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([kravietz](https://github.com/kravietz))
|
||||||
|
- Removal of core dump hardening configuration if core dumps are allowed [\#146](https://github.com/dev-sec/ansible-os-hardening/pull/146) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([martinbydefault](https://github.com/martinbydefault))
|
||||||
|
- add missing sysctl parameter [\#143](https://github.com/dev-sec/ansible-os-hardening/pull/143) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] [[in progress](https://github.com/dev-sec/ansible-os-hardening/labels/in%20progress)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- update readme [\#139](https://github.com/dev-sec/ansible-os-hardening/pull/139) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- bug in ufw.j2 template [\#151](https://github.com/dev-sec/ansible-os-hardening/issues/151) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- replace single ticks with double ticks. fix \#151 [\#152](https://github.com/dev-sec/ansible-os-hardening/pull/152) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fixed tag [\#149](https://github.com/dev-sec/ansible-os-hardening/pull/149) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([martinbydefault](https://github.com/martinbydefault))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- ansible hardening fails on ubuntu 16.04 with msg": "ERROR! 'sysctl_rhel_config' is undefined [\#147](https://github.com/dev-sec/ansible-os-hardening/issues/147)
|
||||||
|
- Enhancement: Test with TestInfra and Molecule [\#128](https://github.com/dev-sec/ansible-os-hardening/issues/128)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- move defaults to os-specific vars [\#157](https://github.com/dev-sec/ansible-os-hardening/pull/157) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [4.3.1](https://github.com/dev-sec/ansible-os-hardening/tree/4.3.1) (2017-09-13)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.2.0...4.3.1)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- os_security_kernel_enable_sysrq is not implemented [\#115](https://github.com/dev-sec/ansible-os-hardening/issues/115) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
|
||||||
|
## [4.2.0](https://github.com/dev-sec/ansible-os-hardening/tree/4.2.0) (2017-08-08)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.1.0...4.2.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- add modprobe template, control os-10 [\#138](https://github.com/dev-sec/ansible-os-hardening/pull/138) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- new task for delete netrc files, control os-09 [\#137](https://github.com/dev-sec/ansible-os-hardening/pull/137) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add passwd task, control os-03 [\#136](https://github.com/dev-sec/ansible-os-hardening/pull/136) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- remove prelink package, control package-09 [\#135](https://github.com/dev-sec/ansible-os-hardening/pull/135) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- style update [\#134](https://github.com/dev-sec/ansible-os-hardening/pull/134) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix ansible.cfg and use comment filter [\#130](https://github.com/dev-sec/ansible-os-hardening/pull/130) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([fazlearefin](https://github.com/fazlearefin))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Why is rsync removed? [\#141](https://github.com/dev-sec/ansible-os-hardening/issues/141) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- playbook makes OS undetectable [\#124](https://github.com/dev-sec/ansible-os-hardening/issues/124) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Centos7/RHEL7: Exec shield is enabled by default and not manageable anymore by sysctl.conf [\#118](https://github.com/dev-sec/ansible-os-hardening/issues/118) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Remove rsync from package blacklist [\#142](https://github.com/dev-sec/ansible-os-hardening/pull/142) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([duk3luk3](https://github.com/duk3luk3))
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- remove execshield sysctl-parameter on rhel7 [\#119](https://github.com/dev-sec/ansible-os-hardening/pull/119) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [4.1.0](https://github.com/dev-sec/ansible-os-hardening/tree/4.1.0) (2017-06-27)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/4.0.0...4.1.0)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Change system accounts not on the user provided ignore-list items are not JSON serializable [\#125](https://github.com/dev-sec/ansible-os-hardening/issues/125) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Could not find gem 'ruby \(\>= 2.1.0\)' [\#116](https://github.com/dev-sec/ansible-os-hardening/issues/116) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- The task sysctl fails when /etc/initramfs-tools is not present [\#111](https://github.com/dev-sec/ansible-os-hardening/issues/111) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Deprecation warning always_run [\#103](https://github.com/dev-sec/ansible-os-hardening/issues/103) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Enhancement: Pin python dependencies for development and testing [\#127](https://github.com/dev-sec/ansible-os-hardening/issues/127)
|
||||||
|
- Update readme to include baselines [\#122](https://github.com/dev-sec/ansible-os-hardening/issues/122)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Converts set to JSON-serializable list [\#126](https://github.com/dev-sec/ansible-os-hardening/pull/126) ([pestaa](https://github.com/pestaa))
|
||||||
|
- add more sysctl settings, allow overwriting [\#120](https://github.com/dev-sec/ansible-os-hardening/pull/120) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [4.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/4.0.0) (2017-03-14)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/3.2.0...4.0.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Description of the Ansible roles of dev-sec says "This Ansible playbook" [\#97](https://github.com/dev-sec/ansible-os-hardening/issues/97) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)]
|
||||||
|
- install initramfs-tools [\#114](https://github.com/dev-sec/ansible-os-hardening/pull/114) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- omit empty variables [\#106](https://github.com/dev-sec/ansible-os-hardening/pull/106) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- The role fails when conditionally included [\#105](https://github.com/dev-sec/ansible-os-hardening/issues/105) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Error running on RHEL 7 due to syntax issues [\#112](https://github.com/dev-sec/ansible-os-hardening/issues/112)
|
||||||
|
- disable password age [\#109](https://github.com/dev-sec/ansible-os-hardening/issues/109)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- change shadow owner in debian systems [\#117](https://github.com/dev-sec/ansible-os-hardening/pull/117) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Rhel7 [\#113](https://github.com/dev-sec/ansible-os-hardening/pull/113) ([tyrken](https://github.com/tyrken))
|
||||||
|
- use new Docker images [\#110](https://github.com/dev-sec/ansible-os-hardening/pull/110) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Don’t refer to this role as "playbook" in the role description [\#104](https://github.com/dev-sec/ansible-os-hardening/pull/104) ([ypid](https://github.com/ypid))
|
||||||
|
|
||||||
|
## [3.2.0](https://github.com/dev-sec/ansible-os-hardening/tree/3.2.0) (2016-10-24)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/3.1.0...3.2.0)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- CentOS 7 selinux dependencies [\#102](https://github.com/dev-sec/ansible-os-hardening/issues/102) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- ubuntu xenial warning during activate gpg-check for yum-repos [\#99](https://github.com/dev-sec/ansible-os-hardening/issues/99) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- rhel_system_auth.j2 is still using pam_passwdqc.so for CentOS 7 [\#98](https://github.com/dev-sec/ansible-os-hardening/issues/98) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Enable pam_pwquality in rhel-family \> 7 [\#73](https://github.com/dev-sec/ansible-os-hardening/issues/73) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
- "irc" user always changed after reboot [\#53](https://github.com/dev-sec/ansible-os-hardening/issues/53) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- update template [\#101](https://github.com/dev-sec/ansible-os-hardening/pull/101) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix deprecation warning for undefined error. \#99 [\#100](https://github.com/dev-sec/ansible-os-hardening/pull/100) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add rhel7 pam_pwquality. fix \#73 [\#94](https://github.com/dev-sec/ansible-os-hardening/pull/94) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [3.1.0](https://github.com/dev-sec/ansible-os-hardening/tree/3.1.0) (2016-08-03)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/3.1...3.1.0)
|
||||||
|
|
||||||
|
## [3.1](https://github.com/dev-sec/ansible-os-hardening/tree/3.1) (2016-07-27)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/3.0.0...3.1)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Supports --check mode [\#93](https://github.com/dev-sec/ansible-os-hardening/pull/93) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([conorsch](https://github.com/conorsch))
|
||||||
|
- Adds support for CentOS 7 [\#91](https://github.com/dev-sec/ansible-os-hardening/pull/91) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([conorsch](https://github.com/conorsch))
|
||||||
|
- Docker [\#90](https://github.com/dev-sec/ansible-os-hardening/pull/90) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- debian 8 support [\#88](https://github.com/dev-sec/ansible-os-hardening/pull/88) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Ufw manage defaults [\#85](https://github.com/dev-sec/ansible-os-hardening/pull/85) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([fitz123](https://github.com/fitz123))
|
||||||
|
- replace ignore_errors to failed_when to supress ugly error warnings [\#81](https://github.com/dev-sec/ansible-os-hardening/pull/81) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([fitz123](https://github.com/fitz123))
|
||||||
|
- fix bare variables usage for loops [\#79](https://github.com/dev-sec/ansible-os-hardening/pull/79) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([fitz123](https://github.com/fitz123))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Centos 7.1 fails at \[Change various sysctl-settings on rhel-hosts...\] [\#74](https://github.com/dev-sec/ansible-os-hardening/issues/74) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)]
|
||||||
|
- Hardening fails on Centos 7.1 at task 'minimize access' [\#71](https://github.com/dev-sec/ansible-os-hardening/issues/71) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] [[help wanted](https://github.com/dev-sec/ansible-os-hardening/labels/help%20wanted)]
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Permissions on /etc/shadow can lock out GUI users [\#86](https://github.com/dev-sec/ansible-os-hardening/issues/86)
|
||||||
|
- network related sysctl rewritten by ufw in ubuntu [\#82](https://github.com/dev-sec/ansible-os-hardening/issues/82)
|
||||||
|
- ansible \>= 2.0 complains: Using bare variables is deprecated [\#78](https://github.com/dev-sec/ansible-os-hardening/issues/78)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Fix a formatting issue in readme. [\#92](https://github.com/dev-sec/ansible-os-hardening/pull/92) ([vivekagr](https://github.com/vivekagr))
|
||||||
|
- Permits overriding permissions on /etc/shadow [\#89](https://github.com/dev-sec/ansible-os-hardening/pull/89) ([conorsch](https://github.com/conorsch))
|
||||||
|
|
||||||
|
## [3.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/3.0.0) (2016-03-13)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/2.0.0...3.0.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- update platforms in meta-file [\#69](https://github.com/dev-sec/ansible-os-hardening/pull/69) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add webhook for ansible galaxy [\#68](https://github.com/dev-sec/ansible-os-hardening/pull/68) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Move sysctl vars to defaults [\#67](https://github.com/dev-sec/ansible-os-hardening/pull/67) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- make sys_uid and sys_gid configurable [\#62](https://github.com/dev-sec/ansible-os-hardening/pull/62) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Ansible 2.0 support [\#59](https://github.com/dev-sec/ansible-os-hardening/pull/59) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- use inspec as test framework [\#58](https://github.com/dev-sec/ansible-os-hardening/pull/58) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([chris-rock](https://github.com/chris-rock))
|
||||||
|
- Packages as attributes [\#57](https://github.com/dev-sec/ansible-os-hardening/pull/57) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Change categories to tags for upcoming ansible 2.0 [\#56](https://github.com/dev-sec/ansible-os-hardening/pull/56) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add SINGLE and PROMPT parameters. [\#55](https://github.com/dev-sec/ansible-os-hardening/pull/55) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add changelog generator [\#54](https://github.com/dev-sec/ansible-os-hardening/pull/54) [[enhancement](https://github.com/dev-sec/ansible-os-hardening/labels/enhancement)] ([chris-rock](https://github.com/chris-rock))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Updates "tags" parameters on includes in main.yml [\#66](https://github.com/dev-sec/ansible-os-hardening/pull/66) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([conorsch](https://github.com/conorsch))
|
||||||
|
- Suid set def var, fix \#64 [\#63](https://github.com/dev-sec/ansible-os-hardening/pull/63) [[bug](https://github.com/dev-sec/ansible-os-hardening/labels/bug)] ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Hardening fails on Centos 7.1 at task 'remove suid/sgid bit from all binaries except in system and user whitelist' [\#72](https://github.com/dev-sec/ansible-os-hardening/issues/72)
|
||||||
|
- ansible 2.0 | "remove suid/sgid" task fails [\#64](https://github.com/dev-sec/ansible-os-hardening/issues/64)
|
||||||
|
- Custom sysctl [\#50](https://github.com/dev-sec/ansible-os-hardening/issues/50)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Release 3.0.0 [\#75](https://github.com/dev-sec/ansible-os-hardening/pull/75) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [2.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/2.0.0) (2015-11-28)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/1.0.0...2.0.0)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Fix directory structure. [\#48](https://github.com/dev-sec/ansible-os-hardening/issues/48)
|
||||||
|
- pam auth update error [\#47](https://github.com/dev-sec/ansible-os-hardening/issues/47)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Add explicit role-path to kitchen.yml [\#52](https://github.com/dev-sec/ansible-os-hardening/pull/52) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix pam passwdqc template [\#51](https://github.com/dev-sec/ansible-os-hardening/pull/51) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- New dir layout [\#49](https://github.com/dev-sec/ansible-os-hardening/pull/49) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- remove duplicate "update pam" task [\#46](https://github.com/dev-sec/ansible-os-hardening/pull/46) ([fitz123](https://github.com/fitz123))
|
||||||
|
- Fix stuck in case pam files was updated before by force update [\#45](https://github.com/dev-sec/ansible-os-hardening/pull/45) ([fitz123](https://github.com/fitz123))
|
||||||
|
- Fix nologin shell path [\#44](https://github.com/dev-sec/ansible-os-hardening/pull/44) ([fitz123](https://github.com/fitz123))
|
||||||
|
- improved travis-tests to cover more cases [\#42](https://github.com/dev-sec/ansible-os-hardening/pull/42) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [1.0.0](https://github.com/dev-sec/ansible-os-hardening/tree/1.0.0) (2015-09-01)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-os-hardening/compare/a9591764206b79a4ed324bb8576151ebac0127b1...1.0.0)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- ansible-os-hardening/tasks/minimize_access.yml [\#38](https://github.com/dev-sec/ansible-os-hardening/issues/38)
|
||||||
|
- Role configuration. vars/main.yml? [\#34](https://github.com/dev-sec/ansible-os-hardening/issues/34)
|
||||||
|
- Sysctl reloading [\#18](https://github.com/dev-sec/ansible-os-hardening/issues/18)
|
||||||
|
- Add conditions for disabling of ip forwarding [\#15](https://github.com/dev-sec/ansible-os-hardening/issues/15)
|
||||||
|
- Disable System Accounts [\#6](https://github.com/dev-sec/ansible-os-hardening/issues/6)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Update kitchen-ansible, remove separate debian install [\#40](https://github.com/dev-sec/ansible-os-hardening/pull/40) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add mode to su-binary task. Fix \#38 [\#39](https://github.com/dev-sec/ansible-os-hardening/pull/39) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- update common kitchen.yml platforms \(ansible\), kitchen_debian.yml platforms \(ansible\) [\#37](https://github.com/dev-sec/ansible-os-hardening/pull/37) ([chris-rock](https://github.com/chris-rock))
|
||||||
|
- Change oneliner if-statements to be more readable [\#36](https://github.com/dev-sec/ansible-os-hardening/pull/36) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Separate system-vars from editable vars. Fix \#34 [\#35](https://github.com/dev-sec/ansible-os-hardening/pull/35) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Create limits.d-directory if it does not exist. [\#33](https://github.com/dev-sec/ansible-os-hardening/pull/33) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add correct CONTRIB-file [\#32](https://github.com/dev-sec/ansible-os-hardening/pull/32) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add Ansible Galaxy badge [\#31](https://github.com/dev-sec/ansible-os-hardening/pull/31) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Update readme, todo, changelog, vars [\#30](https://github.com/dev-sec/ansible-os-hardening/pull/30) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- List-cleanup and follow symlinks added [\#29](https://github.com/dev-sec/ansible-os-hardening/pull/29) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add module configuration [\#28](https://github.com/dev-sec/ansible-os-hardening/pull/28) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix two sysctl-settings [\#27](https://github.com/dev-sec/ansible-os-hardening/pull/27) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add meta-files for Ansible Galaxy [\#26](https://github.com/dev-sec/ansible-os-hardening/pull/26) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Disable System Accounts. Fix \#6 [\#25](https://github.com/dev-sec/ansible-os-hardening/pull/25) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Use changed_when to avoid changed tasks [\#24](https://github.com/dev-sec/ansible-os-hardening/pull/24) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Delete authconfig-task on rhel-systems [\#23](https://github.com/dev-sec/ansible-os-hardening/pull/23) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add missing rhosts-include task [\#21](https://github.com/dev-sec/ansible-os-hardening/pull/21) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Change sysctl-task. Fix \#18 [\#20](https://github.com/dev-sec/ansible-os-hardening/pull/20) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add travis-support [\#17](https://github.com/dev-sec/ansible-os-hardening/pull/17) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add conditions for various tasks. Fix \#15 [\#16](https://github.com/dev-sec/ansible-os-hardening/pull/16) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix configuration of playbook path [\#14](https://github.com/dev-sec/ansible-os-hardening/pull/14) ([chris-rock](https://github.com/chris-rock))
|
||||||
|
- Make tasks clearer [\#13](https://github.com/dev-sec/ansible-os-hardening/pull/13) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add remove suid/sgid function [\#12](https://github.com/dev-sec/ansible-os-hardening/pull/12) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add task to remove unused repos and pkgs [\#11](https://github.com/dev-sec/ansible-os-hardening/pull/11) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Edit README to fit to os-hardening [\#10](https://github.com/dev-sec/ansible-os-hardening/pull/10) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- ignore RAs on Ipv6 [\#9](https://github.com/dev-sec/ansible-os-hardening/pull/9) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Repair debian install script [\#8](https://github.com/dev-sec/ansible-os-hardening/pull/8) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Separate tasks into multiple smaller files [\#7](https://github.com/dev-sec/ansible-os-hardening/pull/7) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Enable gpg-check on all yum-repositories [\#5](https://github.com/dev-sec/ansible-os-hardening/pull/5) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Change playbook-path to accomodate test-repo [\#4](https://github.com/dev-sec/ansible-os-hardening/pull/4) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- treat securetty config as an array [\#3](https://github.com/dev-sec/ansible-os-hardening/pull/3) ([arlimus](https://github.com/arlimus))
|
||||||
|
- Add Securetty-support [\#2](https://github.com/dev-sec/ansible-os-hardening/pull/2) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add profile.conf configuration [\#1](https://github.com/dev-sec/ansible-os-hardening/pull/1) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
\* _This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)_
|
||||||
@@ -1,196 +1,110 @@
|
|||||||
# os-hardening (Ansible Role)
|
# Ansible Collection - devsec.hardening
|
||||||
|
|
||||||
[][1]
|

|
||||||
[][2]
|

|
||||||
[][3]
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
This role provides numerous security-related configurations, providing all-round base protection. It is intended to be compliant with the [DevSec Linux Baseline](https://github.com/dev-sec/linux-baseline).
|
This collection provides battle tested hardening for:
|
||||||
|
|
||||||
It configures:
|
- Linux operating systems:
|
||||||
|
- CentOS 7/8
|
||||||
|
- Rocky Linux 8
|
||||||
|
- Debian 9/10
|
||||||
|
- Ubuntu 16.04/18.04/20.04
|
||||||
|
- Amazon Linux (some roles supported)
|
||||||
|
- Arch Linux (some roles supported)
|
||||||
|
- Fedora (some roles supported)
|
||||||
|
- Suse Tumbleweed (some roles supported)
|
||||||
|
- MySQL
|
||||||
|
- MariaDB >= 5.5.65, >= 10.1.45, >= 10.3.17
|
||||||
|
- MySQL >= 5.7.31, >= 8.0.3
|
||||||
|
- Nginx 1.0.16 or later
|
||||||
|
- OpenSSH 5.3 and later
|
||||||
|
|
||||||
* Configures package management e.g. allows only signed packages
|
The hardening is intended to be compliant with the Inspec DevSec Baselines:
|
||||||
* Remove packages with known issues
|
|
||||||
* Configures `pam` and `pam_limits` module
|
|
||||||
* Shadow password suite configuration
|
|
||||||
* Configures system path permissions
|
|
||||||
* Disable core dumps via soft limits
|
|
||||||
* Restrict root Logins to System Console
|
|
||||||
* Set SUIDs
|
|
||||||
* Configures kernel parameters via sysctl
|
|
||||||
* Install and configure auditd
|
|
||||||
|
|
||||||
It will not:
|
- <https://github.com/dev-sec/linux-baseline>
|
||||||
|
- <https://github.com/dev-sec/mysql-baseline>
|
||||||
|
- <https://github.com/dev-sec/nginx-baseline>
|
||||||
|
- <https://github.com/dev-sec/ssh-baseline>
|
||||||
|
|
||||||
* Update system packages
|
## Looking for the old roles?
|
||||||
* Install security patches
|
|
||||||
|
|
||||||
## Requirements
|
The roles are now part of the hardening-collection.
|
||||||
|
We have kept the old releases of the `os-hardening` role in this repository, so you can find the them by exploring older tags.
|
||||||
|
The last release of the standalone role was [6.2.0](https://github.com/dev-sec/ansible-collection-hardening/tree/6.2.0).
|
||||||
|
|
||||||
* Ansible 2.5.0
|
The other roles are in separate archives repositories
|
||||||
|
|
||||||
## Warning
|
- [apache_hardening](https://github.com/dev-sec/ansible-apache-hardening)
|
||||||
|
- [mysql_hardening](https://github.com/dev-sec/ansible-mysql-hardening)
|
||||||
|
- [nginx_hardening](https://github.com/dev-sec/ansible-nginx-hardening)
|
||||||
|
- [ssh_hardening](https://github.com/dev-sec/ansible-ssh-hardening)
|
||||||
|
- [windows_hardening](https://github.com/dev-sec/ansible-windows-hardening)
|
||||||
|
|
||||||
If you're using inspec to test your machines after applying this role, please make sure to add the connecting user to the `os_ignore_users`-variable.
|
## Minimum required Ansible-version
|
||||||
Otherwise inspec will fail. For more information, see [issue #124](https://github.com/dev-sec/ansible-os-hardening/issues/124).
|
|
||||||
|
|
||||||
## Variables
|
- Ansible >= 2.9.10
|
||||||
|
|
||||||
| Name | Default Value | Description |
|
## Included content
|
||||||
| -------------- | ------------- | -----------------------------------|
|
|
||||||
| `os_desktop_enable`| false | true if this is a desktop system, ie Xorg, KDE/GNOME/Unity/etc|
|
|
||||||
| `os_env_extra_user_paths`| [] | add additional paths to the user's `PATH` variable (default is empty).|
|
|
||||||
| `os_env_umask`| 027| set default permissions for new files to `750` |
|
|
||||||
| `os_auth_pw_max_age`| 60 | maximum password age (set to `99999` to effectively disable it) |
|
|
||||||
| `os_auth_pw_min_age`| 7 | minimum password age (before allowing any other password change)|
|
|
||||||
| `os_auth_retries`| 5 | the maximum number of authentication attempts, before the account is locked for some time|
|
|
||||||
| `os_auth_lockout_time`| 600 | time in seconds that needs to pass, if the account was locked due to too many failed authentication attempts|
|
|
||||||
| `os_auth_timeout`| 60 | authentication timeout in seconds, so login will exit if this time passes|
|
|
||||||
| `os_auth_allow_homeless`| false | true if to allow users without home to login|
|
|
||||||
| `os_auth_pam_passwdqc_enable`| true | true if you want to use strong password checking in PAM using passwdqc|
|
|
||||||
| `os_auth_pam_passwdqc_options`| "min=disabled,disabled,16,12,8" | set to any option line (as a string) that you want to pass to passwdqc|
|
|
||||||
| `os_security_users_allow`| [] | list of things, that a user is allowed to do. May contain `change_user`.
|
|
||||||
| `os_security_kernel_enable_module_loading`| true | true if you want to allowed to change kernel modules once the system is running (eg `modprobe`, `rmmod`)|
|
|
||||||
| `os_security_kernel_enable_core_dump`| false | kernel is crashing or otherwise misbehaving and a kernel core dump is created |
|
|
||||||
| `os_security_suid_sgid_enforce`| true | true if you want to reduce SUID/SGID bits. There is already a list of items which are searched for configured, but you can also add your own|
|
|
||||||
| `os_security_suid_sgid_blacklist`| [] | a list of paths which should have their SUID/SGID bits removed|
|
|
||||||
| `os_security_suid_sgid_whitelist`| [] | a list of paths which should not have their SUID/SGID bits altered|
|
|
||||||
| `os_security_suid_sgid_remove_from_unknown`| false | true if you want to remove SUID/SGID bits from any file, that is not explicitly configured in a `blacklist`. This will make every Ansible-run search through the mounted filesystems looking for SUID/SGID bits that are not configured in the default and user blacklist. If it finds an SUID/SGID bit, it will be removed, unless this file is in your `whitelist`.|
|
|
||||||
| `os_security_packages_clean'`| true | removes packages with known issues. See section packages.|
|
|
||||||
| `ufw_manage_defaults` | true | true means apply all settings with `ufw_` prefix|
|
|
||||||
| `ufw_ipt_sysctl` | '' | by default it disables IPT_SYSCTL in /etc/default/ufw. If you want to overwrite /etc/sysctl.conf values using ufw - set it to your sysctl dictionary, for example `/etc/ufw/sysctl.conf`
|
|
||||||
| `ufw_default_input_policy` | DROP | set default input policy of ufw to `DROP` |
|
|
||||||
| `ufw_default_output_policy` | ACCEPT | set default output policy of ufw to `ACCEPT` |
|
|
||||||
| `ufw_default_forward_policy` | DROP | set default forward policy of ufw to `DROP` |
|
|
||||||
| `os_auditd_enabled` | true | Set to false to disable installing and configuring auditd. |
|
|
||||||
|
|
||||||
## Packages
|
- [os_hardening](roles/os_hardening/)
|
||||||
|
- [mysql_hardening](roles/mysql_hardening/)
|
||||||
|
- [nginx_hardening](roles/nginx_hardening/)
|
||||||
|
- [ssh_hardening](roles/ssh_hardening/)
|
||||||
|
|
||||||
We remove the following packages:
|
In progress, not working:
|
||||||
|
|
||||||
* xinetd ([NSA](http://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf), Chapter 3.2.1)
|
- [apache_hardening](roles/apache_hardening/)
|
||||||
* inetd ([NSA](http://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf), Chapter 3.2.1)
|
- [windows_hardening](roles/windows_hardening/)
|
||||||
* tftp-server ([NSA](http://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf), Chapter 3.2.5)
|
|
||||||
* ypserv ([NSA](http://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf), Chapter 3.2.4)
|
|
||||||
* telnet-server ([NSA](http://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf), Chapter 3.2.2)
|
|
||||||
* rsh-server ([NSA](http://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf), Chapter 3.2.3)
|
|
||||||
* prelink ([open-scap](https://static.open-scap.org/ssg-guides/ssg-sl7-guide-ospp-rhel7-server.html#xccdf_org.ssgproject.content_rule_disable_prelink))
|
|
||||||
|
|
||||||
## Disabled filesystems
|
## Installation
|
||||||
|
|
||||||
We disable the following filesystems, because they're most likely not used:
|
Install the collection via ansible-galaxy:
|
||||||
|
|
||||||
* "cramfs"
|
`ansible-galaxy collection install devsec.hardening`
|
||||||
* "freevxfs"
|
|
||||||
* "jffs2"
|
|
||||||
* "hfs"
|
|
||||||
* "hfsplus"
|
|
||||||
* "squashfs"
|
|
||||||
* "udf"
|
|
||||||
* "vfat" # only if uefi is not in use
|
|
||||||
|
|
||||||
To prevent some of the filesystems from being disabled, add them to the `os_filesystem_whitelist` variable.
|
## Using this collection
|
||||||
|
|
||||||
## Example Playbook
|
Please refer to the examples in the readmes of the role.
|
||||||
|
|
||||||
```yaml
|
See [Ansible Using collections](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html) for more details.
|
||||||
- hosts: localhost
|
|
||||||
roles:
|
|
||||||
- dev-sec.os-hardening
|
|
||||||
```
|
|
||||||
|
|
||||||
## Changing sysctl variables
|
## Contributing to this collection
|
||||||
|
|
||||||
If you want to override sysctl-variables, you can use the `sysctl_overwrite` variable (in older versions you had to override the whole `sysctl_dict`).
|
See the [contributor guideline](CONTRIBUTING.md).
|
||||||
So for example if you want to change the IPv4 traffic forwarding variable to `1`, do it like this:
|
|
||||||
|
|
||||||
```yaml
|
## Release notes
|
||||||
- hosts: localhost
|
|
||||||
roles:
|
|
||||||
- dev-sec.os-hardening
|
|
||||||
vars:
|
|
||||||
sysctl_overwrite:
|
|
||||||
# Enable IPv4 traffic forwarding.
|
|
||||||
net.ipv4.ip_forward: 1
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively you can change Ansible's [hash-behaviour](https://docs.ansible.com/ansible/intro_configuration.html#hash-behaviour) to `merge`, then you only have to overwrite the single hash you need to. But please be aware that changing the hash-behaviour changes it for all your playbooks and is not recommended by Ansible.
|
See the [changelog](https://github.com/dev-sec/ansible-os-hardening/tree/master/CHANGELOG.md).
|
||||||
|
|
||||||
## Local Testing
|
## Roadmap
|
||||||
|
|
||||||
The preferred way of locally testing the role is to use Docker. You will have to install Docker on your system. See [Get started](https://docs.docker.com/) for a Docker package suitable to for your system.
|
Todos:
|
||||||
|
|
||||||
You can also use vagrant and Virtualbox or VMWare to run tests locally. You will have to install Virtualbox and Vagrant on your system. See [Vagrant Downloads](http://downloads.vagrantup.com/) for a vagrant package suitable for your system. For all our tests we use `test-kitchen`. If you are not familiar with `test-kitchen` please have a look at [their guide](http://kitchen.ci/docs/getting-started).
|
- Work on [apache_hardening](roles/apache_hardening/) and [windows_hardening](roles/windows_hardening/).
|
||||||
|
- Add support for more operating systems,
|
||||||
|
|
||||||
Next install test-kitchen:
|
## More information
|
||||||
|
|
||||||
```bash
|
General information:
|
||||||
# Install dependencies
|
|
||||||
gem install bundler
|
|
||||||
bundle install
|
|
||||||
```
|
|
||||||
|
|
||||||
### Testing with Docker
|
- [Ansible Collection overview](https://github.com/ansible-collections/overview)
|
||||||
```
|
- [Ansible User guide](https://docs.ansible.com/ansible/latest/user_guide/index.html)
|
||||||
# fast test on one machine
|
- [Ansible Developer guide](https://docs.ansible.com/ansible/latest/dev_guide/index.html)
|
||||||
bundle exec kitchen test default-ubuntu-1404
|
- [Ansible Collections Checklist](https://github.com/ansible-collections/overview/blob/master/collection_requirements.rst)
|
||||||
|
- [Ansible Community code of conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html)
|
||||||
|
- [The Bullhorn (the Ansible Contributor newsletter)](https://us19.campaign-archive.com/home/?u=56d874e027110e35dea0e03c1&id=d6635f5420)
|
||||||
|
- [Changes impacting Contributors](https://github.com/ansible-collections/overview/issues/45)
|
||||||
|
|
||||||
# test on all machines
|
## Licensing
|
||||||
bundle exec kitchen test
|
|
||||||
|
|
||||||
# for development
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
|
||||||
bundle exec kitchen create default-ubuntu-1404
|
|
||||||
bundle exec kitchen converge default-ubuntu-1404
|
|
||||||
```
|
|
||||||
|
|
||||||
### Testing with Virtualbox
|
<http://www.apache.org/licenses/LICENSE-2.0>
|
||||||
```
|
|
||||||
# fast test on one machine
|
|
||||||
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test default-ubuntu-1404
|
|
||||||
|
|
||||||
# test on all machines
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
||||||
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen test
|
|
||||||
|
|
||||||
# for development
|
|
||||||
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen create default-ubuntu-1404
|
|
||||||
KITCHEN_YAML=".kitchen.vagrant.yml" bundle exec kitchen converge default-ubuntu-1404
|
|
||||||
```
|
|
||||||
For more information see [test-kitchen](http://kitchen.ci/docs/getting-started)
|
|
||||||
|
|
||||||
## Contributors + Kudos
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
This role is mostly based on guides by:
|
|
||||||
|
|
||||||
* [Arch Linux wiki, Sysctl hardening](https://wiki.archlinux.org/index.php/Sysctl)
|
|
||||||
* [NSA: Guide to the Secure Configuration of Red Hat Enterprise Linux 5](http://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf)
|
|
||||||
* [Ubuntu Security/Features](https://wiki.ubuntu.com/Security/Features)
|
|
||||||
* [Deutsche Telekom, Group IT Security, Security Requirements (German)](https://www.telekom.com/psa)
|
|
||||||
|
|
||||||
Thanks to all of you!
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
See [contributor guideline](CONTRIBUTING.md).
|
|
||||||
|
|
||||||
## License and Author
|
|
||||||
|
|
||||||
* Author:: Sebastian Gumprich
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
|
|
||||||
[1]: http://travis-ci.org/dev-sec/ansible-os-hardening
|
|
||||||
[2]: https://gitter.im/dev-sec/general
|
|
||||||
[3]: https://galaxy.ansible.com/dev-sec/os-hardening
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/usr/bin/env rake
|
|
||||||
# encoding: utf-8
|
|
||||||
|
|
||||||
# Automatically generate a changelog for this project. Only loaded if
|
|
||||||
# the necessary gem is installed.
|
|
||||||
begin
|
|
||||||
require 'github_changelog_generator/task'
|
|
||||||
GitHubChangelogGenerator::RakeTask.new :changelog
|
|
||||||
rescue LoadError
|
|
||||||
puts '>>>>> GitHub Changelog Generator not loaded, omitting tasks'
|
|
||||||
end
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
# TODO
|
|
||||||
|
|
||||||
* [Adduser consistency](https://github.com/hardening-io/chef-os-hardening/pull/73)
|
|
||||||
* [add support for limiting password re-use](https://github.com/hardening-io/puppet-os-hardening/pull/61)
|
|
||||||
-16
@@ -1,16 +0,0 @@
|
|||||||
# config file for ansible -- http://ansible.com/
|
|
||||||
# ==============================================
|
|
||||||
|
|
||||||
# nearly all parameters can be overridden in ansible-playbook
|
|
||||||
# or with command line flags. ansible will read ANSIBLE_CONFIG,
|
|
||||||
# ansible.cfg in the current working directory, .ansible.cfg in
|
|
||||||
# the home directory or /etc/ansible/ansible.cfg, whichever it
|
|
||||||
# finds first
|
|
||||||
|
|
||||||
[defaults]
|
|
||||||
ansible_managed = Ansible managed: {file} modified by {uid} on {host}
|
|
||||||
# additional paths to search for roles in, colon separated
|
|
||||||
roles_path = ../
|
|
||||||
|
|
||||||
[ssh_connection]
|
|
||||||
scp_if_ssh = True
|
|
||||||
@@ -1,252 +0,0 @@
|
|||||||
os_desktop_enable: false
|
|
||||||
os_env_extra_user_paths: []
|
|
||||||
os_auth_pw_max_age: 60
|
|
||||||
os_auth_pw_min_age: 7 # discourage password cycling
|
|
||||||
os_auth_retries: 5
|
|
||||||
os_auth_lockout_time: 600 # 10min
|
|
||||||
os_auth_timeout: 60
|
|
||||||
os_auth_allow_homeless: false
|
|
||||||
os_auth_pam_passwdqc_enable: true
|
|
||||||
os_auth_pam_passwdqc_options: 'min=disabled,disabled,16,12,8' # used in RHEL6
|
|
||||||
os_auth_pam_pwquality_options: 'try_first_pass retry=3 type=' # used in RHEL7
|
|
||||||
os_auth_root_ttys: [console, tty1, tty2, tty3, tty4, tty5, tty6]
|
|
||||||
|
|
||||||
os_chfn_restrict: ''
|
|
||||||
# may contain: change_user
|
|
||||||
os_security_users_allow: []
|
|
||||||
# specify system accounts those login should not be disabled and password not changed
|
|
||||||
os_ignore_users: ['vagrant', 'kitchen']
|
|
||||||
os_security_kernel_enable_module_loading: true
|
|
||||||
os_security_kernel_enable_core_dump: false
|
|
||||||
os_security_suid_sgid_enforce: true
|
|
||||||
# user-defined blacklist and whitelist
|
|
||||||
os_security_suid_sgid_blacklist: []
|
|
||||||
os_security_suid_sgid_whitelist: []
|
|
||||||
# if this is true, remove any suid/sgid bits from files that were not in the whitelist
|
|
||||||
os_security_suid_sgid_remove_from_unknown: false
|
|
||||||
|
|
||||||
# remove packages with known issues
|
|
||||||
os_security_packages_clean: true
|
|
||||||
os_security_packages_list: ['xinetd','inetd','ypserv','telnet-server','rsh-server', 'prelink']
|
|
||||||
|
|
||||||
# Allow interactive startup (rhel, centos)
|
|
||||||
os_security_init_prompt: true
|
|
||||||
# Require root password for single user mode. (rhel, centos)
|
|
||||||
os_security_init_single: false
|
|
||||||
|
|
||||||
# Apply ufw defaults
|
|
||||||
ufw_manage_defaults: true
|
|
||||||
|
|
||||||
# Empty variable disables IPT_SYSCTL in /etc/default/ufw
|
|
||||||
# by default in Ubuntu it set to: /etc/ufw/sysctl.conf
|
|
||||||
# CAUTION
|
|
||||||
# if you enable it - it'll overwrite /etc/sysctl.conf file, managed by hardening framework
|
|
||||||
ufw_ipt_sysctl: ''
|
|
||||||
|
|
||||||
# Default ufw variables
|
|
||||||
ufw_default_input_policy: 'DROP'
|
|
||||||
ufw_default_output_policy: 'ACCEPT'
|
|
||||||
ufw_default_forward_policy: 'DROP'
|
|
||||||
ufw_default_application_policy: 'SKIP'
|
|
||||||
ufw_manage_builtins: 'no'
|
|
||||||
ufw_ipt_modules: 'nf_conntrack_ftp nf_nat_ftp nf_conntrack_netbios_ns'
|
|
||||||
|
|
||||||
sysctl_config:
|
|
||||||
# Disable IPv4 traffic forwarding. | sysctl-01
|
|
||||||
net.ipv4.ip_forward: 0
|
|
||||||
|
|
||||||
# Disable IPv6 traffic forwarding. | sysctl-19
|
|
||||||
net.ipv6.conf.all.forwarding: 0
|
|
||||||
|
|
||||||
# ignore RAs on Ipv6. | sysctl-25
|
|
||||||
net.ipv6.conf.all.accept_ra: 0
|
|
||||||
net.ipv6.conf.default.accept_ra: 0
|
|
||||||
|
|
||||||
# Enable RFC-recommended source validation feature. | sysctl-02
|
|
||||||
net.ipv4.conf.all.rp_filter: 1
|
|
||||||
net.ipv4.conf.default.rp_filter: 1
|
|
||||||
|
|
||||||
# Reduce the surface on SMURF attacks. | sysctl-04
|
|
||||||
# Make sure to ignore ECHO broadcasts, which are only required in broad network analysis.
|
|
||||||
net.ipv4.icmp_echo_ignore_broadcasts: 1
|
|
||||||
|
|
||||||
# There is no reason to accept bogus error responses from ICMP, so ignore them instead. | sysctl-03
|
|
||||||
net.ipv4.icmp_ignore_bogus_error_responses: 1
|
|
||||||
|
|
||||||
# Limit the amount of traffic the system uses for ICMP. | sysctl-05
|
|
||||||
net.ipv4.icmp_ratelimit: 100
|
|
||||||
|
|
||||||
# Adjust the ICMP ratelimit to include ping, dst unreachable,
|
|
||||||
# source quench, ime exceed, param problem, timestamp reply, information reply | sysctl-06
|
|
||||||
net.ipv4.icmp_ratemask: 88089
|
|
||||||
|
|
||||||
# Disable IPv6 | sysctl-18
|
|
||||||
net.ipv6.conf.all.disable_ipv6: 1
|
|
||||||
|
|
||||||
# Protect against wrapping sequence numbers at gigabit speeds | sysctl-07
|
|
||||||
net.ipv4.tcp_timestamps: 0
|
|
||||||
|
|
||||||
# Define restriction level for announcing the local source IP | sysctl-08
|
|
||||||
net.ipv4.conf.all.arp_ignore: 1
|
|
||||||
|
|
||||||
# Define mode for sending replies in response to
|
|
||||||
# received ARP requests that resolve local target IP addresses | sysctl-09
|
|
||||||
net.ipv4.conf.all.arp_announce: 2
|
|
||||||
|
|
||||||
# RFC 1337 fix F1 | sysctl-10
|
|
||||||
net.ipv4.tcp_rfc1337: 1
|
|
||||||
|
|
||||||
# Send(router) or accept(host) RFC1620 shared media redirects | sysctl-12
|
|
||||||
net.ipv4.conf.all.shared_media: 1
|
|
||||||
net.ipv4.conf.default.shared_media: 1
|
|
||||||
|
|
||||||
# Accepting source route can lead to malicious networking behavior,
|
|
||||||
# so disable it if not needed. | sysctl-13
|
|
||||||
net.ipv4.conf.all.accept_source_route: 0
|
|
||||||
net.ipv4.conf.default.accept_source_route: 0
|
|
||||||
|
|
||||||
# Accepting redirects can lead to malicious networking behavior, so disable
|
|
||||||
# it if not needed. | sysctl-13 | sysctl-14 | sysctl-15 | sysctl-20
|
|
||||||
net.ipv4.conf.default.accept_redirects: 0
|
|
||||||
net.ipv4.conf.all.accept_redirects: 0
|
|
||||||
net.ipv4.conf.all.secure_redirects: 0
|
|
||||||
net.ipv4.conf.default.secure_redirects: 0
|
|
||||||
net.ipv6.conf.default.accept_redirects: 0
|
|
||||||
net.ipv6.conf.all.accept_redirects: 0
|
|
||||||
|
|
||||||
# For non-routers: don't send redirects, these settings are 0 | sysctl-16
|
|
||||||
net.ipv4.conf.all.send_redirects: 0
|
|
||||||
net.ipv4.conf.default.send_redirects: 0
|
|
||||||
|
|
||||||
# log martian packets | sysctl-17
|
|
||||||
net.ipv4.conf.all.log_martians: 1
|
|
||||||
net.ipv4.conf.default.log_martians: 1
|
|
||||||
|
|
||||||
# ipv6 config
|
|
||||||
# Disable acceptance of IPv6 router solicitations messages | sysctl-21
|
|
||||||
net.ipv6.conf.default.router_solicitations: 0
|
|
||||||
|
|
||||||
# Disable Accept Router Preference from router advertisement | sysctl-22
|
|
||||||
net.ipv6.conf.default.accept_ra_rtr_pref: 0
|
|
||||||
|
|
||||||
# Disable learning Prefix Information from router advertisement | sysctl-23
|
|
||||||
net.ipv6.conf.default.accept_ra_pinfo: 0
|
|
||||||
|
|
||||||
# Disable learning Hop limit from router advertisement | sysctl-24
|
|
||||||
net.ipv6.conf.default.accept_ra_defrtr: 0
|
|
||||||
|
|
||||||
# Disable IPv6 autoconfiguration | sysctl-26
|
|
||||||
net.ipv6.conf.default.autoconf: 0
|
|
||||||
|
|
||||||
# Disable neighbor solicitations to send out per address | sysctl-27
|
|
||||||
net.ipv6.conf.default.dad_transmits: 0
|
|
||||||
|
|
||||||
# Assign one global unicast IPv6 addresses to each interface | sysctl-28
|
|
||||||
net.ipv6.conf.default.max_addresses: 1
|
|
||||||
|
|
||||||
# This settings controls how the kernel behaves towards module changes at
|
|
||||||
# runtime. Setting to 1 will disable module loading at runtime.
|
|
||||||
# Setting it to 0 is actually never supported. | sysctl-29
|
|
||||||
# kernel.modules_disabled: 1
|
|
||||||
|
|
||||||
# Magic Sysrq should be disabled, but can also be set to a safe value if so
|
|
||||||
# desired for physical machines. It can allow a safe reboot if the system hangs
|
|
||||||
# and is a 'cleaner' alternative to hitting the reset button. | sysctl-30
|
|
||||||
# The following values are permitted:
|
|
||||||
# * **0** - disable sysrq
|
|
||||||
# * **1** - enable sysrq completely
|
|
||||||
# * **>1** - bitmask of enabled sysrq functions:
|
|
||||||
# * **2** - control of console logging level
|
|
||||||
# * **4** - control of keyboard (SAK, unraw)
|
|
||||||
# * **8** - debugging dumps of processes etc.
|
|
||||||
# * **16** - sync command
|
|
||||||
# * **32** - remount read-only
|
|
||||||
# * **64** - signalling of processes (term, kill, oom-kill)
|
|
||||||
# * **128** - reboot/poweroff
|
|
||||||
# * **256** - nicing of all RT tasks
|
|
||||||
kernel.sysrq: 0
|
|
||||||
|
|
||||||
# Prevent core dumps with SUID. These are usually only
|
|
||||||
# needed by developers and may contain sensitive information. | sysctl-31
|
|
||||||
fs.suid_dumpable: 0
|
|
||||||
|
|
||||||
# Virtual memory regions protection | sysctl-32
|
|
||||||
kernel.randomize_va_space: 2
|
|
||||||
|
|
||||||
kernel.core_uses_pid: 1
|
|
||||||
|
|
||||||
# When an attacker is trying to exploit the local kernel, it is often
|
|
||||||
# helpful to be able to examine where in memory the kernel, modules,
|
|
||||||
# and data structures live. As such, kernel addresses should be treated
|
|
||||||
# as sensitive information.
|
|
||||||
#
|
|
||||||
# Many files and interfaces contain these addresses (e.g. /proc/kallsyms,
|
|
||||||
# /proc/modules, etc), and this setting can censor the addresses. A value
|
|
||||||
# of "0" allows all users to see the kernel addresses. A value of "1"
|
|
||||||
# limits visibility to the root user, and "2" blocks even the root user.
|
|
||||||
kernel.kptr_restrict: 1
|
|
||||||
|
|
||||||
# The PTRACE system is used for debugging. With it, a single user process
|
|
||||||
# can attach to any other dumpable process owned by the same user. In the
|
|
||||||
# case of malicious software, it is possible to use PTRACE to access
|
|
||||||
# credentials that exist in memory (re-using existing SSH connections,
|
|
||||||
# extracting GPG agent information, etc).
|
|
||||||
#
|
|
||||||
# A PTRACE scope of "0" is the more permissive mode. A scope of "1" limits
|
|
||||||
# PTRACE only to direct child processes (e.g. "gdb name-of-program" and
|
|
||||||
# "strace -f name-of-program" work, but gdb's "attach" and "strace -fp $PID"
|
|
||||||
# do not). The PTRACE scope is ignored when a user has CAP_SYS_PTRACE, so
|
|
||||||
# "sudo strace -fp $PID" will work as before. For more details see:
|
|
||||||
# https://wiki.ubuntu.com/SecurityTeam/Roadmap/KernelHardening#ptrace
|
|
||||||
#
|
|
||||||
# For applications launching crash handlers that need PTRACE, exceptions can
|
|
||||||
# be registered by the debugee by declaring in the segfault handler
|
|
||||||
# specifically which process will be using PTRACE on the debugee:
|
|
||||||
# prctl(PR_SET_PTRACER, debugger_pid, 0, 0, 0);
|
|
||||||
#
|
|
||||||
# In general, PTRACE is not needed for the average running Ubuntu system.
|
|
||||||
# To that end, the default is to set the PTRACE scope to "1". This value
|
|
||||||
# may not be appropriate for developers or servers with only admin accounts.
|
|
||||||
# kernel.yama.ptrace_scope = 1
|
|
||||||
kernel.yama.ptrace_scope: 1
|
|
||||||
|
|
||||||
# Protect the zero page of memory from userspace mmap to prevent kernel
|
|
||||||
# NULL-dereference attacks against potential future kernel security
|
|
||||||
# vulnerabilities. (Added in kernel 2.6.23.)
|
|
||||||
#
|
|
||||||
# While this default is built into the Ubuntu kernel, there is no way to
|
|
||||||
# restore the kernel default if the value is changed during runtime; for
|
|
||||||
# example via package removal (e.g. wine, dosemu). Therefore, this value
|
|
||||||
# is reset to the secure default each time the sysctl values are loaded.
|
|
||||||
vm.mmap_min_addr: 65536
|
|
||||||
|
|
||||||
# These settings eliminate an entire class of security vulnerability:
|
|
||||||
# time-of-check-time-of-use cross-privilege attacks using guessable
|
|
||||||
# filenames (generally seen as "/tmp file race" vulnerabilities).
|
|
||||||
fs.protected_hardlinks: 1
|
|
||||||
fs.protected_symlinks: 1
|
|
||||||
|
|
||||||
# Do not delete the following line or otherwise the playbook will fail
|
|
||||||
# at task 'create a combined sysctl-dict if overwrites are defined'
|
|
||||||
sysctl_overwrite:
|
|
||||||
|
|
||||||
# disable unused filesystems
|
|
||||||
os_unused_filesystems:
|
|
||||||
- "cramfs"
|
|
||||||
- "freevxfs"
|
|
||||||
- "jffs2"
|
|
||||||
- "hfs"
|
|
||||||
- "hfsplus"
|
|
||||||
- "squashfs"
|
|
||||||
- "udf"
|
|
||||||
- "vfat"
|
|
||||||
|
|
||||||
# whitelist for used filesystems
|
|
||||||
os_filesystem_whitelist: []
|
|
||||||
|
|
||||||
# Set to false to turn the role into a no-op. Useful when using
|
|
||||||
# the Ansible role dependency mechanism.
|
|
||||||
os_hardening_enabled: true
|
|
||||||
|
|
||||||
# Set to false to disable installing and configuring auditd.
|
|
||||||
os_auditd_enabled: true
|
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
namespace: devsec
|
||||||
|
name: hardening
|
||||||
|
version: 7.14.3
|
||||||
|
readme: README.md
|
||||||
|
authors:
|
||||||
|
- dev-sec <[email protected]>
|
||||||
|
description: 'This collection provides battle tested hardening for Linux, SSH, nginx, MySQL'
|
||||||
|
license:
|
||||||
|
- Apache-2.0
|
||||||
|
license_file: ''
|
||||||
|
tags:
|
||||||
|
- devsec
|
||||||
|
- hardening
|
||||||
|
- centos
|
||||||
|
- ubuntu
|
||||||
|
- debian
|
||||||
|
- nginx
|
||||||
|
- mysql
|
||||||
|
- openssh
|
||||||
|
- apache_hardening
|
||||||
|
- mysql_hardening
|
||||||
|
- nginx_hardening
|
||||||
|
- os_hardening
|
||||||
|
- ssh_hardening
|
||||||
|
dependencies:
|
||||||
|
ansible.posix: '>=1.0.0'
|
||||||
|
community.crypto: '>=1.0.0'
|
||||||
|
community.general: '>=1.0.0'
|
||||||
|
community.mysql: '>=1.3.0'
|
||||||
|
repository: 'https://github.com/dev-sec/ansible-collection-hardening/'
|
||||||
|
homepage: 'https://dev-sec.io/'
|
||||||
|
issues: 'https://github.com/dev-sec/ansible-collection-hardening/issues'
|
||||||
|
build_ignore:
|
||||||
|
- codecov.yml
|
||||||
|
- .github
|
||||||
|
- .gitattributes
|
||||||
|
- .gitignore
|
||||||
|
- hacking
|
||||||
|
- requirements.txt
|
||||||
|
- test-requirements.txt
|
||||||
|
- tests
|
||||||
|
- .tox
|
||||||
|
- tox.ini
|
||||||
|
- .yamllint
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# This is a Vagrant block to allow proxy settings to be carried into Kitchen
|
|
||||||
# You need this for all of yum/apt etc. to work!
|
|
||||||
|
|
||||||
Vagrant.configure(2) do |config|
|
|
||||||
end
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
requires_ansible: '>=2.9.10'
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
******
|
||||||
|
Docker driver installation guide
|
||||||
|
******
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
|
||||||
|
* Docker Engine
|
||||||
|
|
||||||
|
Install
|
||||||
|
=======
|
||||||
|
|
||||||
|
Please refer to the `Virtual environment`_ documentation for installation best
|
||||||
|
practices. If not using a virtual environment, please consider passing the
|
||||||
|
widely recommended `'--user' flag`_ when invoking ``pip``.
|
||||||
|
|
||||||
|
.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
|
||||||
|
.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ python3 -m pip install 'molecule[docker]'
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-mysql-hardening"
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
tasks:
|
||||||
|
- name: Determine required MySQL Python libraries (Ubuntu Focal Fossa ++)
|
||||||
|
set_fact:
|
||||||
|
mysql_python_package_debian: "python3-pymysql"
|
||||||
|
when:
|
||||||
|
- mysql_python_package_debian is not defined
|
||||||
|
- ansible_distribution == "Ubuntu"
|
||||||
|
- ansible_distribution_major_version|int > 19
|
||||||
|
|
||||||
|
- name: Determine required MySQL Python libraries.
|
||||||
|
set_fact:
|
||||||
|
mysql_python_package_debian: "{% if 'python3' in ansible_python_interpreter|default('') %}python3-mysqldb{% else %}python-mysqldb{% endif %}"
|
||||||
|
when:
|
||||||
|
- mysql_python_package_debian is not defined
|
||||||
|
- ansible_distribution != "Ubuntu"
|
||||||
|
- ansible_distribution_major_version|int < 20
|
||||||
|
- include_role:
|
||||||
|
name: mysql_hardening
|
||||||
|
vars:
|
||||||
|
overwrite_global_mycnf: false
|
||||||
|
mysql_root_password: iloverandompasswordsbutthiswilldo
|
||||||
|
mysql_user_password: iloverandompasswordsbutthiswilldo
|
||||||
|
mysql_config_file: /etc/mysql/mariadb.cnf
|
||||||
|
mysql_root_password_update: true
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
options:
|
||||||
|
role-file: molecule/mysql_hardening/requirements.yml
|
||||||
|
requirements-file: molecule/mysql_hardening/requirements.yml
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
image: "rndmh3ro/docker-${MOLECULE_DISTRO}-ansible:latest"
|
||||||
|
command: ${MOLECULE_DOCKER_COMMAND:-/lib/systemd/systemd}
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
privileged: true
|
||||||
|
pre_build_image: true
|
||||||
|
environment:
|
||||||
|
container: docker
|
||||||
|
security_opts:
|
||||||
|
- apparmor=unconfined
|
||||||
|
env:
|
||||||
|
http_proxy: "${http_proxy}"
|
||||||
|
https_proxy: "${https_proxy}"
|
||||||
|
no_proxy: "${no_proxy}"
|
||||||
|
container: docker
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
config_options:
|
||||||
|
defaults:
|
||||||
|
interpreter_python: auto_silent
|
||||||
|
callback_whitelist: profile_tasks, timer, yaml
|
||||||
|
verifier:
|
||||||
|
name: ansible
|
||||||
|
|
||||||
|
scenario:
|
||||||
|
create_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
check_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- check
|
||||||
|
- destroy
|
||||||
|
converge_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
destroy_sequence:
|
||||||
|
- destroy
|
||||||
|
test_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- syntax
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
# - idempotence # not idempotent
|
||||||
|
- verify
|
||||||
|
- destroy
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-mysql-hardening"
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
tasks:
|
||||||
|
- name: Run the equivalent of "apt-get update && apt-get upgrade"
|
||||||
|
apt:
|
||||||
|
name: "*"
|
||||||
|
state: latest
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: install required tools on SuSE
|
||||||
|
community.general.zypper:
|
||||||
|
name: "python-xml"
|
||||||
|
state: present
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: create missing directory
|
||||||
|
file:
|
||||||
|
path: "/etc/mysql/conf.d"
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: Determine required MySQL Python libraries (Ubuntu Focal Fossa ++)
|
||||||
|
set_fact:
|
||||||
|
mysql_python_package_debian: "python3-pymysql"
|
||||||
|
when:
|
||||||
|
- mysql_python_package_debian is not defined
|
||||||
|
- ansible_distribution == "Ubuntu"
|
||||||
|
- ansible_distribution_major_version|int > 19
|
||||||
|
|
||||||
|
- name: Determine required MySQL Python libraries.
|
||||||
|
set_fact:
|
||||||
|
mysql_python_package_debian: "{% if 'python3' in ansible_python_interpreter|default('') %}python3-mysqldb{% else %}python-mysqldb{% endif %}"
|
||||||
|
when:
|
||||||
|
- mysql_python_package_debian is not defined
|
||||||
|
- ansible_distribution != "Ubuntu"
|
||||||
|
- ansible_distribution_major_version|int < 20
|
||||||
|
|
||||||
|
- include_role:
|
||||||
|
name: dev-sec.mysql
|
||||||
|
|
||||||
|
- name: create a user with an empty password
|
||||||
|
community.mysql.mysql_query:
|
||||||
|
query:
|
||||||
|
- "CREATE USER foo@bar;"
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
vars:
|
||||||
|
overwrite_global_mycnf: false
|
||||||
|
mysql_root_password: iloverandompasswordsbutthiswilldo
|
||||||
|
mysql_user_password: iloverandompasswordsbutthiswilldo
|
||||||
|
mysql_config_file: /etc/mysql/mariadb.cnf
|
||||||
|
mysql_root_password_update: true
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
roles:
|
||||||
|
- name: geerlingguy.git
|
||||||
|
version: 3.0.0
|
||||||
|
- name: dev-sec.mysql
|
||||||
|
version: master
|
||||||
|
|
||||||
|
collections:
|
||||||
|
- name: https://github.com/ansible-collections/community.mysql.git
|
||||||
|
type: git
|
||||||
|
version: main
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
|
tasks:
|
||||||
|
- name: install fake SuSE-release for cinc compatibility
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
openSUSE Faked Enterprise 2020 (x86_64)
|
||||||
|
VERSION = 2020
|
||||||
|
CODENAME = Faked Feature
|
||||||
|
dest: /etc/SuSE-release
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0444'
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install git for SuSE since geerlinguy.git does not support it
|
||||||
|
zypper:
|
||||||
|
name: git
|
||||||
|
state: present
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install procps for debian systems
|
||||||
|
apt:
|
||||||
|
name: procps
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_distribution == 'Debian'
|
||||||
|
|
||||||
|
- name: download cinc-auditor
|
||||||
|
get_url:
|
||||||
|
url: https://omnitruck.cinc.sh/install.sh
|
||||||
|
dest: /tmp/install.sh
|
||||||
|
mode: '0775'
|
||||||
|
|
||||||
|
- name: install cinc-auditor
|
||||||
|
shell: "bash /tmp/install.sh -s -- -P cinc-auditor -v 4"
|
||||||
|
|
||||||
|
- name: Execute cinc-auditor tests
|
||||||
|
command: "/opt/cinc-auditor/bin/cinc-auditor exec --no-show-progress --no-color --no-distinct-exit https://github.com/dev-sec/mysql-baseline/archive/refs/heads/master.zip"
|
||||||
|
register: test_results
|
||||||
|
changed_when: false
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Display details about the cinc-auditor results
|
||||||
|
debug:
|
||||||
|
msg: "{{ test_results.stdout_lines }}"
|
||||||
|
|
||||||
|
- name: Fail when tests fail
|
||||||
|
fail:
|
||||||
|
msg: "Inspec failed to validate"
|
||||||
|
when: test_results.rc != 0
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
*******
|
||||||
|
Docker driver installation guide
|
||||||
|
*******
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
|
||||||
|
* Docker Engine
|
||||||
|
|
||||||
|
Install
|
||||||
|
=======
|
||||||
|
|
||||||
|
Please refer to the `Virtual environment`_ documentation for installation best
|
||||||
|
practices. If not using a virtual environment, please consider passing the
|
||||||
|
widely recommended `'--user' flag`_ when invoking ``pip``.
|
||||||
|
|
||||||
|
.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
|
||||||
|
.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ python3 -m pip install 'molecule[docker]'
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-nginx-hardening" with custom settings
|
||||||
|
become: true
|
||||||
|
hosts: all
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
vars:
|
||||||
|
- nginx_ppa_use: true
|
||||||
|
- nginx_ppa_version: stable
|
||||||
|
tasks:
|
||||||
|
- include_role:
|
||||||
|
name: nginx_hardening
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
options:
|
||||||
|
role-file: molecule/nginx_hardening/requirements.yml
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
image: "rndmh3ro/docker-${MOLECULE_DISTRO}-ansible:latest"
|
||||||
|
command: ${MOLECULE_DOCKER_COMMAND:-/lib/systemd/systemd}
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
privileged: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp
|
||||||
|
- /run
|
||||||
|
capabilities:
|
||||||
|
- SYS_ADMIN
|
||||||
|
tty: true
|
||||||
|
env:
|
||||||
|
http_proxy: "${http_proxy}"
|
||||||
|
https_proxy: "${https_proxy}"
|
||||||
|
no_proxy: "${no_proxy}"
|
||||||
|
container: docker
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
config_options:
|
||||||
|
defaults:
|
||||||
|
interpreter_python: auto_silent
|
||||||
|
callback_whitelist: profile_tasks, timer, yaml
|
||||||
|
verifier:
|
||||||
|
name: ansible
|
||||||
|
|
||||||
|
scenario:
|
||||||
|
create_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
check_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- check
|
||||||
|
- destroy
|
||||||
|
converge_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
destroy_sequence:
|
||||||
|
- destroy
|
||||||
|
test_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- syntax
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- idempotence
|
||||||
|
- verify
|
||||||
|
- destroy
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-nginx-hardening" with custom settings
|
||||||
|
hosts: localhost
|
||||||
|
vars:
|
||||||
|
- nginx_main_template_enable: true
|
||||||
|
- nginx_main_template:
|
||||||
|
template_file: nginx.conf.j2
|
||||||
|
conf_file_name: nginx.conf
|
||||||
|
conf_file_location: /etc/nginx/
|
||||||
|
user: www-data
|
||||||
|
worker_processes: auto
|
||||||
|
error_level: warn
|
||||||
|
worker_connections: 1024
|
||||||
|
http_enable: true
|
||||||
|
http_settings:
|
||||||
|
keepalive_timeout: 65
|
||||||
|
cache: false
|
||||||
|
rate_limit: false
|
||||||
|
keyval: false
|
||||||
|
stream_enable: false
|
||||||
|
http_global_autoindex: false
|
||||||
|
roles:
|
||||||
|
- nginxinc.nginx
|
||||||
|
- nginx_hardening
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-nginx-hardening" with custom settings
|
||||||
|
hosts: localhost
|
||||||
|
roles:
|
||||||
|
- nginxinc.nginx
|
||||||
|
- nginx_hardening
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
- name: prepare playbook for kitchen testing "ansible-nginx-hardening" with custom settings
|
||||||
|
become: true
|
||||||
|
hosts: all
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
tasks:
|
||||||
|
- name: install required tools on SuSE
|
||||||
|
community.general.zypper:
|
||||||
|
name: "python-xml"
|
||||||
|
state: present
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install required packages
|
||||||
|
package:
|
||||||
|
name: "python3-apt"
|
||||||
|
update_cache: true
|
||||||
|
ignore_errors: true # noqa ignore-errors
|
||||||
|
|
||||||
|
- name: Set correct distribution Version for Amazon Linux
|
||||||
|
set_fact:
|
||||||
|
ansible_distribution_major_version: 7
|
||||||
|
when: ansible_distribution == 'Amazon'
|
||||||
|
|
||||||
|
- include_role:
|
||||||
|
name: geerlingguy.nginx
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
|
- geerlingguy.nginx
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
|
tasks:
|
||||||
|
- name: install fake SuSE-release for cinc compatibility
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
openSUSE Faked Enterprise 2020 (x86_64)
|
||||||
|
VERSION = 2020
|
||||||
|
CODENAME = Faked Feature
|
||||||
|
dest: /etc/SuSE-release
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0444'
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install git for SuSE since geerlinguy.git does not support it
|
||||||
|
zypper:
|
||||||
|
name: git
|
||||||
|
state: present
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: Run the equivalent of "apt-get update" as a separate step
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_facts.os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: install required tools on debian
|
||||||
|
apt:
|
||||||
|
name: procps
|
||||||
|
when: ansible_facts.os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: download cinc-auditor
|
||||||
|
get_url:
|
||||||
|
url: https://omnitruck.cinc.sh/install.sh
|
||||||
|
dest: /tmp/install.sh
|
||||||
|
mode: '0775'
|
||||||
|
|
||||||
|
- name: install cinc-auditor
|
||||||
|
shell: "bash /tmp/install.sh -s -- -P cinc-auditor -v 4"
|
||||||
|
|
||||||
|
- name: Execute cinc-auditor tests
|
||||||
|
command: "/opt/cinc-auditor/bin/cinc-auditor exec --no-show-progress --no-color --no-distinct-exit https://github.com/dev-sec/nginx-baseline/archive/refs/heads/master.zip"
|
||||||
|
register: test_results
|
||||||
|
changed_when: false
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Display details about the cinc-auditor results
|
||||||
|
debug:
|
||||||
|
msg: "{{ test_results.stdout_lines }}"
|
||||||
|
|
||||||
|
- name: Fail when tests fail
|
||||||
|
fail:
|
||||||
|
msg: "Inspec failed to validate"
|
||||||
|
when: test_results.rc != 0
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
*******
|
||||||
|
Docker driver installation guide
|
||||||
|
*******
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
|
||||||
|
* Docker Engine
|
||||||
|
|
||||||
|
Install
|
||||||
|
=======
|
||||||
|
|
||||||
|
Please refer to the `Virtual environment`_ documentation for installation best
|
||||||
|
practices. If not using a virtual environment, please consider passing the
|
||||||
|
widely recommended `'--user' flag`_ when invoking ``pip``.
|
||||||
|
|
||||||
|
.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
|
||||||
|
.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ python3 -m pip install 'molecule[docker]'
|
||||||
@@ -1,28 +1,32 @@
|
|||||||
---
|
---
|
||||||
- name: wrapper playbook for kitchen testing "ansible-os-hardening" with custom vars for testing
|
- name: wrapper playbook for kitchen testing "ansible-os-hardening" with custom vars for testing
|
||||||
hosts: localhost
|
hosts: all
|
||||||
roles:
|
become: true
|
||||||
- ansible-os-hardening
|
environment:
|
||||||
pre_tasks:
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
- name: Run the equivalent of "apt-get update" as a separate step
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
apt:
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
update_cache: yes
|
collections:
|
||||||
when: ansible_os_family == 'Debian'
|
- devsec.hardening
|
||||||
- name: Install firefox to get Xorg
|
tasks:
|
||||||
package:
|
- name: workaround for https://github.com/ansible/ansible/issues/66304
|
||||||
name: firefox
|
set_fact:
|
||||||
state: present
|
ansible_virtualization_type: "docker"
|
||||||
|
- include_role:
|
||||||
|
name: os_hardening
|
||||||
vars:
|
vars:
|
||||||
os_security_users_allow: change_user
|
os_security_users_allow: change_user
|
||||||
os_security_kernel_enable_core_dump: false
|
os_security_kernel_enable_core_dump: false
|
||||||
os_security_suid_sgid_remove_from_unknown: true
|
os_security_suid_sgid_remove_from_unknown: true
|
||||||
os_auth_pam_passwdqc_enable: false
|
os_auth_pam_passwdqc_enable: false
|
||||||
|
os_auth_lockout_time: 15
|
||||||
os_desktop_enable: true
|
os_desktop_enable: true
|
||||||
os_env_extra_user_paths: ['/home']
|
os_env_extra_user_paths: ['/home']
|
||||||
os_auth_allow_homeless: true
|
os_auth_allow_homeless: true
|
||||||
os_security_suid_sgid_blacklist: ['/bin/umount']
|
os_security_suid_sgid_blacklist: ['/bin/umount']
|
||||||
os_security_suid_sgid_whitelist: ['/usr/bin/rlogin']
|
os_security_suid_sgid_whitelist: ['/usr/bin/rlogin']
|
||||||
os_filesystem_whitelist: ['vfat']
|
os_filesystem_whitelist: []
|
||||||
|
os_yum_repo_file_whitelist: ['foo.repo']
|
||||||
sysctl_config:
|
sysctl_config:
|
||||||
net.ipv4.ip_forward: 0
|
net.ipv4.ip_forward: 0
|
||||||
net.ipv6.conf.all.forwarding: 0
|
net.ipv6.conf.all.forwarding: 0
|
||||||
@@ -34,7 +38,6 @@
|
|||||||
net.ipv4.icmp_ignore_bogus_error_responses: 1
|
net.ipv4.icmp_ignore_bogus_error_responses: 1
|
||||||
net.ipv4.icmp_ratelimit: 100
|
net.ipv4.icmp_ratelimit: 100
|
||||||
net.ipv4.icmp_ratemask: 88089
|
net.ipv4.icmp_ratemask: 88089
|
||||||
net.ipv6.conf.all.disable_ipv6: 1
|
|
||||||
net.ipv4.conf.all.arp_ignore: 1
|
net.ipv4.conf.all.arp_ignore: 1
|
||||||
net.ipv4.conf.all.arp_announce: 2
|
net.ipv4.conf.all.arp_announce: 2
|
||||||
net.ipv4.conf.all.shared_media: 1
|
net.ipv4.conf.all.shared_media: 1
|
||||||
@@ -54,21 +57,30 @@
|
|||||||
net.ipv6.conf.default.accept_ra_rtr_pref: 0
|
net.ipv6.conf.default.accept_ra_rtr_pref: 0
|
||||||
net.ipv6.conf.default.accept_ra_pinfo: 0
|
net.ipv6.conf.default.accept_ra_pinfo: 0
|
||||||
net.ipv6.conf.default.accept_ra_defrtr: 0
|
net.ipv6.conf.default.accept_ra_defrtr: 0
|
||||||
net.ipv6.conf.default.autoconf: 0
|
net.ipv6.conf.default.conf: 0
|
||||||
net.ipv6.conf.default.dad_transmits: 0
|
net.ipv6.conf.default.dad_transmits: 0
|
||||||
net.ipv6.conf.default.max_addresses: 1
|
net.ipv6.conf.default.max_addresses: 1
|
||||||
kernel.sysrq: 0
|
kernel.sysrq: 0
|
||||||
fs.suid_dumpable: 0
|
fs.suid_dumpable: 0
|
||||||
kernel.randomize_va_space: 2
|
kernel.randomize_va_space: 2
|
||||||
|
|
||||||
|
# - name: wrapper playbook for kitchen testing "ansible-os-hardening"
|
||||||
- name: wrapper playbook for kitchen testing "ansible-os-hardening"
|
# hosts: all
|
||||||
hosts: localhost
|
# become: true
|
||||||
pre_tasks:
|
# collections:
|
||||||
- name: Run the equivalent of "apt-get update" as a separate step
|
# - devsec.hardening
|
||||||
apt:
|
# vars:
|
||||||
update_cache: yes
|
# os_auditd_enabled: false
|
||||||
when: ansible_os_family == 'Debian'
|
# tasks:
|
||||||
roles:
|
# - name: set ansible_python_interpreter to "/usr/bin/python3" on fedora
|
||||||
- ansible-os-hardening
|
# set_fact:
|
||||||
|
# ansible_python_interpreter: "/usr/bin/python3"
|
||||||
|
# when: ansible_facts.distribution == 'Fedora'
|
||||||
|
#
|
||||||
|
# - name: Run the equivalent of "apt-get update" as a separate step
|
||||||
|
# apt:
|
||||||
|
# update_cache: yes
|
||||||
|
# when: ansible_facts.os_family == 'Debian'
|
||||||
|
#
|
||||||
|
# - include_role:
|
||||||
|
# name: os_hardening
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
options:
|
||||||
|
role-file: molecule/os_hardening/requirements.yml
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
image: "rndmh3ro/docker-${MOLECULE_DISTRO}-ansible:latest"
|
||||||
|
command: ${MOLECULE_DOCKER_COMMAND:-/lib/systemd/systemd}
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
privileged: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp
|
||||||
|
- /run
|
||||||
|
capabilities:
|
||||||
|
- SYS_ADMIN
|
||||||
|
tty: true
|
||||||
|
env:
|
||||||
|
http_proxy: "${http_proxy}"
|
||||||
|
https_proxy: "${https_proxy}"
|
||||||
|
no_proxy: "${no_proxy}"
|
||||||
|
container: docker
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
config_options:
|
||||||
|
defaults:
|
||||||
|
interpreter_python: auto_silent
|
||||||
|
callback_whitelist: profile_tasks, timer, yaml
|
||||||
|
verifier:
|
||||||
|
name: ansible
|
||||||
|
|
||||||
|
scenario:
|
||||||
|
create_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
check_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- check
|
||||||
|
- destroy
|
||||||
|
converge_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
destroy_sequence:
|
||||||
|
- destroy
|
||||||
|
test_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- syntax
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- idempotence
|
||||||
|
- verify
|
||||||
|
- destroy
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-os-hardening" with custom vars for testing
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
collections:
|
||||||
|
- devsec.hardening
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
tasks:
|
||||||
|
- name: set ansible_python_interpreter to "/usr/bin/python3" on fedora
|
||||||
|
set_fact:
|
||||||
|
ansible_python_interpreter: "/usr/bin/python3"
|
||||||
|
when: ansible_facts.distribution == 'Fedora'
|
||||||
|
|
||||||
|
- name: Run the equivalent of "apt-get update && apt-get upgrade"
|
||||||
|
apt:
|
||||||
|
name: "*"
|
||||||
|
state: latest
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: install required tools on SuSE
|
||||||
|
# cannot use zypper module, since it depends on python-xml
|
||||||
|
shell: "zypper -n install python-xml"
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install required tools on fedora
|
||||||
|
dnf:
|
||||||
|
name:
|
||||||
|
- python
|
||||||
|
- findutils
|
||||||
|
- procps-ng
|
||||||
|
when: ansible_facts.distribution == 'Fedora'
|
||||||
|
|
||||||
|
- name: install required tools on Arch
|
||||||
|
community.general.pacman:
|
||||||
|
name:
|
||||||
|
- awk
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_facts.os_family == 'Archlinux'
|
||||||
|
|
||||||
|
- name: install required tools on RHEL # noqa ignore-errors
|
||||||
|
yum:
|
||||||
|
name:
|
||||||
|
- openssh-clients
|
||||||
|
- openssh
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: create recursing symlink to test minimize access
|
||||||
|
shell: "rm -f /usr/bin/zzz && ln -s /usr/bin /usr/bin/zzz"
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: include YUM prepare tasks
|
||||||
|
include_tasks: prepare_tasks/yum.yml
|
||||||
|
when: ansible_facts.os_family == 'RedHat'
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
- name: create 'foo' repository
|
||||||
|
ansible.builtin.yum_repository:
|
||||||
|
name: foo
|
||||||
|
description: mandatory description
|
||||||
|
baseurl: file:///mandatory-url
|
||||||
|
enabled: false
|
||||||
|
gpgcheck: false
|
||||||
|
|
||||||
|
- name: create 'bar' repository
|
||||||
|
ansible.builtin.yum_repository:
|
||||||
|
name: bar
|
||||||
|
description: mandatory description
|
||||||
|
baseurl: file:///mandatory-url
|
||||||
|
enabled: false
|
||||||
|
gpgcheck: false
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
|
tasks:
|
||||||
|
- name: install fake SuSE-release for cinc compatibility
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
openSUSE Faked Enterprise 2020 (x86_64)
|
||||||
|
VERSION = 2020
|
||||||
|
CODENAME = Faked Feature
|
||||||
|
dest: /etc/SuSE-release
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0444'
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install git for SuSE since geerlinguy.git does not support it
|
||||||
|
zypper:
|
||||||
|
name: git
|
||||||
|
state: present
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: Run the equivalent of "apt-get update" as a separate step
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_facts.os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: install required tools on debian
|
||||||
|
apt:
|
||||||
|
name: procps
|
||||||
|
when: ansible_facts.os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: include PAM tests
|
||||||
|
include_tasks: verify_tasks/pam.yml
|
||||||
|
when: ansible_facts.distribution in ['Debian', 'Ubuntu'] or ansible_facts.os_family == 'RedHat'
|
||||||
|
|
||||||
|
- name: include YUM tests
|
||||||
|
include_tasks: verify_tasks/yum.yml
|
||||||
|
when: ansible_facts.os_family == 'RedHat'
|
||||||
|
|
||||||
|
- name: download cinc-auditor
|
||||||
|
get_url:
|
||||||
|
url: https://omnitruck.cinc.sh/install.sh
|
||||||
|
dest: /tmp/install.sh
|
||||||
|
mode: '0775'
|
||||||
|
|
||||||
|
- name: install cinc-auditor
|
||||||
|
shell: "bash /tmp/install.sh -s -- -P cinc-auditor -v 4"
|
||||||
|
|
||||||
|
- name: Execute cinc-auditor tests # noqa ignore-errors
|
||||||
|
command: "/opt/cinc-auditor/bin/cinc-auditor exec --no-show-progress --no-color --no-distinct-exit https://github.com/dev-sec/linux-baseline/archive/refs/heads/master.zip"
|
||||||
|
register: test_results
|
||||||
|
changed_when: false
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Display details about the cinc-auditor results
|
||||||
|
debug:
|
||||||
|
msg: "{{ test_results.stdout_lines }}"
|
||||||
|
|
||||||
|
- name: Fail when tests fail
|
||||||
|
fail:
|
||||||
|
msg: "Inspec failed to validate"
|
||||||
|
when: test_results.rc != 0
|
||||||
|
|
||||||
|
# test if variable can be overridden
|
||||||
|
- name: workaround for https://github.com/ansible/ansible/issues/66304
|
||||||
|
set_fact:
|
||||||
|
ansible_virtualization_type: "docker"
|
||||||
|
os_env_umask: "027 #override"
|
||||||
|
|
||||||
|
- include_role:
|
||||||
|
name: os_hardening
|
||||||
|
|
||||||
|
- name: verify os_env_umask
|
||||||
|
shell:
|
||||||
|
cmd: "grep '027 #override' /etc/login.defs"
|
||||||
|
changed_when: false
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
- name: download pam-tester
|
||||||
|
get_url:
|
||||||
|
url: https://github.com/schurzi/pam-tester/releases/download/latest/pam-tester
|
||||||
|
dest: /bin/pam-tester
|
||||||
|
mode: 0555
|
||||||
|
|
||||||
|
- name: set password for test
|
||||||
|
set_fact:
|
||||||
|
test_pw: "myTest!pw"
|
||||||
|
|
||||||
|
- name: set locale for test
|
||||||
|
set_fact:
|
||||||
|
locale: "en_US.UTF-8"
|
||||||
|
when:
|
||||||
|
- ansible_facts.os_family == 'RedHat'
|
||||||
|
- ansible_facts.distribution_major_version < '8'
|
||||||
|
|
||||||
|
- name: create testuser
|
||||||
|
user:
|
||||||
|
name: testuser
|
||||||
|
password: "{{ test_pw | password_hash('sha512') }}"
|
||||||
|
|
||||||
|
- name: check successfull login with correct password
|
||||||
|
shell:
|
||||||
|
cmd: "pam-tester --user testuser --password {{ test_pw }}"
|
||||||
|
environment:
|
||||||
|
TMPDIR: /var/tmp
|
||||||
|
LC_ALL: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
LANG: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
|
||||||
|
- name: check unsuccessfull login with incorrect password
|
||||||
|
shell:
|
||||||
|
cmd: "pam-tester --user testuser --password {{ test_pw }}fail --expectfail"
|
||||||
|
environment:
|
||||||
|
TMPDIR: /var/tmp
|
||||||
|
LC_ALL: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
LANG: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
with_sequence: count=6
|
||||||
|
|
||||||
|
- name: check unsuccessfull login, with correct password (lockout)
|
||||||
|
shell:
|
||||||
|
cmd: "pam-tester --user testuser --password {{ test_pw }} --expectfail"
|
||||||
|
environment:
|
||||||
|
TMPDIR: /var/tmp
|
||||||
|
LC_ALL: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
LANG: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
|
||||||
|
- name: wait for account to unlock
|
||||||
|
pause:
|
||||||
|
seconds: 20
|
||||||
|
|
||||||
|
- name: check successfull login
|
||||||
|
shell:
|
||||||
|
cmd: "pam-tester --user testuser --password {{ test_pw }}"
|
||||||
|
environment:
|
||||||
|
TMPDIR: /var/tmp
|
||||||
|
LC_ALL: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
LANG: "{{ locale | default('C.UTF-8') }}"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- name: verify 'gpgcheck' was not enabled for 'foo' repository (in whitelist)
|
||||||
|
command: grep -e 'gpgcheck\s*=\s*0' /etc/yum.repos.d/foo.repo
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: verify 'gpgcheck' was enabled for 'bar' repository (not in whitelist)
|
||||||
|
command: grep -e 'gpgcheck\s*=\s*1' /etc/yum.repos.d/bar.repo
|
||||||
|
changed_when: false
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
*******
|
||||||
|
Docker driver installation guide
|
||||||
|
*******
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
|
||||||
|
* Docker Engine
|
||||||
|
|
||||||
|
Install
|
||||||
|
=======
|
||||||
|
|
||||||
|
Please refer to the `Virtual environment`_ documentation for installation best
|
||||||
|
practices. If not using a virtual environment, please consider passing the
|
||||||
|
widely recommended `'--user' flag`_ when invoking ``pip``.
|
||||||
|
|
||||||
|
.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
|
||||||
|
.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ python3 -m pip install 'molecule[docker]'
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-os-hardening" with custom vars for testing
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
collections:
|
||||||
|
- devsec.hardening
|
||||||
|
tasks:
|
||||||
|
- name: override for arch
|
||||||
|
set_fact:
|
||||||
|
os_mnt_boot_enabled: false
|
||||||
|
when: ansible_facts.os_family == 'Archlinux'
|
||||||
|
- include_role:
|
||||||
|
name: os_hardening
|
||||||
|
vars:
|
||||||
|
os_auth_pam_passwdqc_enable: false
|
||||||
|
os_auth_lockout_time: 15
|
||||||
|
os_yum_repo_file_whitelist: ['foo.repo']
|
||||||
|
os_mnt_boot_enabled: true
|
||||||
|
os_mnt_boot_src: "/dev/vda1"
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
options:
|
||||||
|
role-file: molecule/os_hardening/requirements.yml
|
||||||
|
driver:
|
||||||
|
name: vagrant
|
||||||
|
provider:
|
||||||
|
name: libvirt
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
box: "generic/${MOLECULE_DISTRO}"
|
||||||
|
memory: 1024
|
||||||
|
cpus: 2
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
env:
|
||||||
|
ANSIBLE_PIPELINING: "True"
|
||||||
|
config_options:
|
||||||
|
defaults:
|
||||||
|
interpreter_python: auto_silent
|
||||||
|
callback_whitelist: profile_tasks, timer, yaml
|
||||||
|
verifier:
|
||||||
|
name: ansible
|
||||||
|
env:
|
||||||
|
ANSIBLE_PIPELINING: "True"
|
||||||
|
|
||||||
|
scenario:
|
||||||
|
create_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
check_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- check
|
||||||
|
- destroy
|
||||||
|
converge_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
destroy_sequence:
|
||||||
|
- destroy
|
||||||
|
test_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- syntax
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- idempotence
|
||||||
|
- verify
|
||||||
|
- destroy
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-os-hardening" with custom vars for testing
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
collections:
|
||||||
|
- devsec.hardening
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
tasks:
|
||||||
|
- name: set ansible_python_interpreter to "/usr/bin/python3" on fedora
|
||||||
|
set_fact:
|
||||||
|
ansible_python_interpreter: "/usr/bin/python3"
|
||||||
|
when: ansible_facts.distribution == 'Fedora'
|
||||||
|
|
||||||
|
- name: Run the equivalent of "apt-get update && apt-get upgrade"
|
||||||
|
apt:
|
||||||
|
name: "*"
|
||||||
|
state: latest
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: install required tools on SuSE
|
||||||
|
# cannot use zypper module, since it depends on python-xml
|
||||||
|
shell: "zypper -n install python-xml"
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install required tools on fedora
|
||||||
|
dnf:
|
||||||
|
name:
|
||||||
|
- python
|
||||||
|
- findutils
|
||||||
|
- procps-ng
|
||||||
|
when: ansible_facts.distribution == 'Fedora'
|
||||||
|
|
||||||
|
- name: install required tools on Arch
|
||||||
|
community.general.pacman:
|
||||||
|
name:
|
||||||
|
- awk
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_facts.os_family == 'Archlinux'
|
||||||
|
|
||||||
|
- name: install required tools on RHEL # noqa ignore-errors
|
||||||
|
yum:
|
||||||
|
name:
|
||||||
|
- openssh-clients
|
||||||
|
- openssh
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: create recursing symlink to test minimize access
|
||||||
|
shell: "rm -f /usr/bin/zzz && ln -s /usr/bin /usr/bin/zzz"
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: include YUM prepare tasks
|
||||||
|
include_tasks: prepare_tasks/yum.yml
|
||||||
|
when: ansible_facts.os_family == 'RedHat'
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
- name: create 'foo' repository
|
||||||
|
ansible.builtin.yum_repository:
|
||||||
|
name: foo
|
||||||
|
description: mandatory description
|
||||||
|
baseurl: file:///mandatory-url
|
||||||
|
enabled: false
|
||||||
|
gpgcheck: false
|
||||||
|
|
||||||
|
- name: create 'bar' repository
|
||||||
|
ansible.builtin.yum_repository:
|
||||||
|
name: bar
|
||||||
|
description: mandatory description
|
||||||
|
baseurl: file:///mandatory-url
|
||||||
|
enabled: false
|
||||||
|
gpgcheck: false
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
|
tasks:
|
||||||
|
- name: install fake SuSE-release for cinc compatibility
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
openSUSE Faked Enterprise 2020 (x86_64)
|
||||||
|
VERSION = 2020
|
||||||
|
CODENAME = Faked Feature
|
||||||
|
dest: /etc/SuSE-release
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0444'
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install git for SuSE since geerlinguy.git does not support it
|
||||||
|
zypper:
|
||||||
|
name: git
|
||||||
|
state: present
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: Run the equivalent of "apt-get update" as a separate step
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_facts.os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: install required tools on debian
|
||||||
|
apt:
|
||||||
|
name: procps
|
||||||
|
when: ansible_facts.os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: include PAM tests
|
||||||
|
include_tasks: verify_tasks/pam.yml
|
||||||
|
when: ansible_facts.distribution in ['Debian', 'Ubuntu'] or ansible_facts.os_family == 'RedHat'
|
||||||
|
|
||||||
|
- name: include YUM tests
|
||||||
|
include_tasks: verify_tasks/yum.yml
|
||||||
|
when: ansible_facts.os_family == 'RedHat'
|
||||||
|
|
||||||
|
- name: download cinc-auditor
|
||||||
|
get_url:
|
||||||
|
url: https://omnitruck.cinc.sh/install.sh
|
||||||
|
dest: /tmp/install.sh
|
||||||
|
mode: '0775'
|
||||||
|
|
||||||
|
- name: install cinc-auditor
|
||||||
|
shell: "bash /tmp/install.sh -s -- -P cinc-auditor -v 4"
|
||||||
|
|
||||||
|
- name: Execute cinc-auditor tests # noqa ignore-errors
|
||||||
|
command: "/opt/cinc-auditor/bin/cinc-auditor exec --no-show-progress --no-color --no-distinct-exit https://github.com/dev-sec/linux-baseline/archive/refs/heads/master.zip"
|
||||||
|
register: test_results
|
||||||
|
changed_when: false
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Display details about the cinc-auditor results
|
||||||
|
debug:
|
||||||
|
msg: "{{ test_results.stdout_lines }}"
|
||||||
|
|
||||||
|
- name: Fail when tests fail
|
||||||
|
fail:
|
||||||
|
msg: "Inspec failed to validate"
|
||||||
|
when: test_results.rc != 0
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
- name: download pam-tester
|
||||||
|
get_url:
|
||||||
|
url: https://github.com/schurzi/pam-tester/releases/download/latest/pam-tester
|
||||||
|
dest: /bin/pam-tester
|
||||||
|
mode: 0555
|
||||||
|
|
||||||
|
- name: set password for test
|
||||||
|
set_fact:
|
||||||
|
test_pw: "myTest!pw"
|
||||||
|
|
||||||
|
- name: set locale for test
|
||||||
|
set_fact:
|
||||||
|
locale: "en_US.UTF-8"
|
||||||
|
when:
|
||||||
|
- ansible_facts.os_family == 'RedHat'
|
||||||
|
- ansible_facts.distribution_major_version < '8'
|
||||||
|
|
||||||
|
- name: create testuser
|
||||||
|
user:
|
||||||
|
name: testuser
|
||||||
|
password: "{{ test_pw | password_hash('sha512') }}"
|
||||||
|
|
||||||
|
- name: check successfull login with correct password
|
||||||
|
shell:
|
||||||
|
cmd: "pam-tester --user testuser --password {{ test_pw }}"
|
||||||
|
environment:
|
||||||
|
TMPDIR: /var/tmp
|
||||||
|
LC_ALL: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
LANG: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
|
||||||
|
- name: check unsuccessfull login with incorrect password
|
||||||
|
shell:
|
||||||
|
cmd: "pam-tester --user testuser --password {{ test_pw }}fail --expectfail"
|
||||||
|
environment:
|
||||||
|
TMPDIR: /var/tmp
|
||||||
|
LC_ALL: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
LANG: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
with_sequence: count=6
|
||||||
|
|
||||||
|
- name: check unsuccessfull login, with correct password (lockout)
|
||||||
|
shell:
|
||||||
|
cmd: "pam-tester --user testuser --password {{ test_pw }} --expectfail"
|
||||||
|
environment:
|
||||||
|
TMPDIR: /var/tmp
|
||||||
|
LC_ALL: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
LANG: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
|
||||||
|
- name: wait for account to unlock
|
||||||
|
pause:
|
||||||
|
seconds: 20
|
||||||
|
|
||||||
|
- name: check successfull login
|
||||||
|
shell:
|
||||||
|
cmd: "pam-tester --user testuser --password {{ test_pw }}"
|
||||||
|
environment:
|
||||||
|
TMPDIR: /var/tmp
|
||||||
|
LC_ALL: "{{ locale | default('C.UTF-8') }}"
|
||||||
|
LANG: "{{ locale | default('C.UTF-8') }}"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- name: verify 'gpgcheck' was not enabled for 'foo' repository (in whitelist)
|
||||||
|
command: grep -e 'gpgcheck\s*=\s*0' /etc/yum.repos.d/foo.repo
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: verify 'gpgcheck' was enabled for 'bar' repository (not in whitelist)
|
||||||
|
command: grep -e 'gpgcheck\s*=\s*1' /etc/yum.repos.d/bar.repo
|
||||||
|
changed_when: false
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
*******
|
||||||
|
Docker driver installation guide
|
||||||
|
*******
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
|
||||||
|
* Docker Engine
|
||||||
|
|
||||||
|
Install
|
||||||
|
=======
|
||||||
|
|
||||||
|
Please refer to the `Virtual environment`_ documentation for installation best
|
||||||
|
practices. If not using a virtual environment, please consider passing the
|
||||||
|
widely recommended `'--user' flag`_ when invoking ``pip``.
|
||||||
|
|
||||||
|
.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
|
||||||
|
.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ python3 -m pip install 'molecule[docker]'
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-ssh-hardening" with default settings
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
collections:
|
||||||
|
- devsec.hardening
|
||||||
|
tasks:
|
||||||
|
- include_role:
|
||||||
|
name: ssh_hardening
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
options:
|
||||||
|
role-file: molecule/ssh_hardening/requirements.yml
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
image: "rndmh3ro/docker-${MOLECULE_DISTRO}-ansible:latest"
|
||||||
|
command: ${MOLECULE_DOCKER_COMMAND:-/lib/systemd/systemd}
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
privileged: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp
|
||||||
|
- /run
|
||||||
|
capabilities:
|
||||||
|
- SYS_ADMIN
|
||||||
|
tty: true
|
||||||
|
env:
|
||||||
|
http_proxy: "${http_proxy}"
|
||||||
|
https_proxy: "${https_proxy}"
|
||||||
|
no_proxy: "${no_proxy}"
|
||||||
|
container: docker
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
config_options:
|
||||||
|
defaults:
|
||||||
|
interpreter_python: auto_silent
|
||||||
|
callback_whitelist: profile_tasks, timer, yaml
|
||||||
|
verifier:
|
||||||
|
name: ansible
|
||||||
|
|
||||||
|
scenario:
|
||||||
|
create_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
check_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- check
|
||||||
|
- destroy
|
||||||
|
converge_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
destroy_sequence:
|
||||||
|
- destroy
|
||||||
|
test_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- syntax
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- idempotence
|
||||||
|
- verify
|
||||||
|
- destroy
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-ssh-hardening" with default settings
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
tasks:
|
||||||
|
- name: use python3
|
||||||
|
set_fact:
|
||||||
|
ansible_python_interpreter: /usr/bin/python3
|
||||||
|
when: ansible_facts.distribution == 'Fedora'
|
||||||
|
|
||||||
|
- name: install packages # noqa ignore-errors
|
||||||
|
yum:
|
||||||
|
name:
|
||||||
|
- openssh-clients
|
||||||
|
- openssh-server
|
||||||
|
- libselinux-python
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: install packages # noqa ignore-errors
|
||||||
|
dnf:
|
||||||
|
name:
|
||||||
|
- openssh-clients
|
||||||
|
- openssh-server
|
||||||
|
- procps-ng
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: install packages # noqa ignore-errors
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- openssh-client
|
||||||
|
- openssh-server
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: install required tools on SuSE
|
||||||
|
# cannot use zypper module, since it depends on python-xml
|
||||||
|
shell: "zypper -n install python-xml"
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install packages
|
||||||
|
zypper:
|
||||||
|
name:
|
||||||
|
- "openssh"
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install required tools on Arch
|
||||||
|
pacman:
|
||||||
|
name:
|
||||||
|
- openssh
|
||||||
|
- awk
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_facts.os_family == 'Archlinux'
|
||||||
|
|
||||||
|
- name: created needed directory
|
||||||
|
file:
|
||||||
|
path: "/var/run/sshd"
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: create ssh host keys # noqa ignore-errors
|
||||||
|
command: "ssh-keygen -A"
|
||||||
|
when: not ((ansible_facts.os_family in ['Oracle Linux', 'RedHat']) and ansible_facts.distribution_major_version < '7') or
|
||||||
|
ansible_facts.distribution == "Fedora" or
|
||||||
|
ansible_facts.distribution == "Amazon" or
|
||||||
|
ansible_facts.os_family == "Suse"
|
||||||
|
changed_when: false
|
||||||
|
ignore_errors: true
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
|
tasks:
|
||||||
|
- name: install fake SuSE-release for cinc compatibility
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
openSUSE Faked Enterprise 2020 (x86_64)
|
||||||
|
VERSION = 2020
|
||||||
|
CODENAME = Faked Feature
|
||||||
|
dest: /etc/SuSE-release
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0444'
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install git for SuSE since geerlinguy.git does not support it
|
||||||
|
zypper:
|
||||||
|
name: git
|
||||||
|
state: present
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install crypto compat modules on fedora
|
||||||
|
dnf:
|
||||||
|
name: libxcrypt-compat
|
||||||
|
when: ansible_facts.distribution == 'Fedora'
|
||||||
|
|
||||||
|
- name: download cinc-auditor
|
||||||
|
get_url:
|
||||||
|
url: https://omnitruck.cinc.sh/install.sh
|
||||||
|
dest: /tmp/install.sh
|
||||||
|
mode: '0775'
|
||||||
|
|
||||||
|
- name: install cinc-auditor
|
||||||
|
shell: "bash /tmp/install.sh -s -- -P cinc-auditor -v 4"
|
||||||
|
|
||||||
|
- name: Execute cinc-auditor tests
|
||||||
|
command: "/opt/cinc-auditor/bin/cinc-auditor exec --no-show-progress --no-color --no-distinct-exit https://github.com/dev-sec/ssh-baseline/archive/refs/heads/master.zip"
|
||||||
|
register: test_results
|
||||||
|
changed_when: false
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Display details about the cinc-auditor results
|
||||||
|
debug:
|
||||||
|
msg: "{{ test_results.stdout_lines }}"
|
||||||
|
|
||||||
|
- name: Fail when tests fail
|
||||||
|
fail:
|
||||||
|
msg: "Inspec failed to validate"
|
||||||
|
when: test_results.rc != 0
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
*******
|
||||||
|
Docker driver installation guide
|
||||||
|
*******
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
|
||||||
|
* Docker Engine
|
||||||
|
|
||||||
|
Install
|
||||||
|
=======
|
||||||
|
|
||||||
|
Please refer to the `Virtual environment`_ documentation for installation best
|
||||||
|
practices. If not using a virtual environment, please consider passing the
|
||||||
|
widely recommended `'--user' flag`_ when invoking ``pip``.
|
||||||
|
|
||||||
|
.. _Virtual environment: https://virtualenv.pypa.io/en/latest/
|
||||||
|
.. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ python3 -m pip install 'molecule[docker]'
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-ssh-hardening" with custom settings
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
collections:
|
||||||
|
- devsec.hardening
|
||||||
|
tasks:
|
||||||
|
- include_role:
|
||||||
|
name: ssh_hardening
|
||||||
|
vars:
|
||||||
|
ssh_trusted_user_ca_keys_file: '/etc/ssh/ca.pub'
|
||||||
|
ssh_trusted_user_ca_keys:
|
||||||
|
- '# ssh-rsa ...'
|
||||||
|
ssh_authorized_principals_file: '/etc/ssh/auth_principals/%u'
|
||||||
|
ssh_authorized_principals:
|
||||||
|
- path: "/etc/ssh/auth_principals/root"
|
||||||
|
principals:
|
||||||
|
- "root"
|
||||||
|
owner: "{{ ssh_owner }}"
|
||||||
|
group: "{{ ssh_group }}"
|
||||||
|
directoryowner: "{{ ssh_owner }}"
|
||||||
|
directorygroup: "{{ ssh_group }}"
|
||||||
|
directorymode: "0700"
|
||||||
|
network_ipv6_enable: true
|
||||||
|
ssh_allow_tcp_forwarding: 'yes'
|
||||||
|
ssh_gateway_ports: true
|
||||||
|
ssh_allow_agent_forwarding: true
|
||||||
|
ssh_server_permit_environment_vars: 'yes'
|
||||||
|
ssh_server_accept_env_vars: 'PWD HTTP_PROXY'
|
||||||
|
ssh_client_alive_interval: 100
|
||||||
|
ssh_client_alive_count: 10
|
||||||
|
ssh_client_password_login: true
|
||||||
|
ssh_challengeresponseauthentication: true
|
||||||
|
ssh_compression: true
|
||||||
|
ssh_allow_users: 'root kitchen vagrant'
|
||||||
|
ssh_allow_groups: 'root kitchen vagrant'
|
||||||
|
ssh_deny_users: 'foo bar'
|
||||||
|
ssh_deny_groups: 'foo bar'
|
||||||
|
ssh_authorized_keys_file: '/etc/ssh/authorized_keys/%u'
|
||||||
|
ssh_max_auth_retries: 10
|
||||||
|
ssh_permit_root_login: "without-password"
|
||||||
|
ssh_permit_tunnel: true
|
||||||
|
ssh_print_motd: true
|
||||||
|
ssh_print_last_log: true
|
||||||
|
ssh_banner: true
|
||||||
|
ssh_server_password_login: true
|
||||||
|
sftp_enabled: true
|
||||||
|
sftp_chroot: true
|
||||||
|
# ssh_server_enabled: false
|
||||||
|
ssh_server_ports:
|
||||||
|
- 22
|
||||||
|
- 222
|
||||||
|
ssh_server_match_address:
|
||||||
|
- address: '192.168.1.0/24'
|
||||||
|
rules:
|
||||||
|
- 'AllowTcpForwarding yes'
|
||||||
|
- 'AllowAgentForwarding no'
|
||||||
|
ssh_server_match_group:
|
||||||
|
- group: 'root'
|
||||||
|
rules:
|
||||||
|
- 'AllowTcpForwarding yes'
|
||||||
|
- 'AllowAgentForwarding no'
|
||||||
|
ssh_server_match_user:
|
||||||
|
- user: 'root'
|
||||||
|
rules:
|
||||||
|
- 'AllowTcpForwarding yes'
|
||||||
|
- 'AllowAgentForwarding no'
|
||||||
|
ssh_server_match_local_port:
|
||||||
|
- port: 222
|
||||||
|
rules:
|
||||||
|
- 'AllowTcpForwarding yes'
|
||||||
|
- 'AllowAgentForwarding no'
|
||||||
|
ssh_remote_hosts:
|
||||||
|
- names: ['example.com', 'example2.com']
|
||||||
|
options: ['Port 2222', 'ForwardAgent yes']
|
||||||
|
- names: ['example3.com']
|
||||||
|
options: ['StrictHostKeyChecking no']
|
||||||
|
ssh_use_dns: true
|
||||||
|
ssh_use_pam: true
|
||||||
|
ssh_max_startups: '10:30:60'
|
||||||
|
ssh_host_key_algorithms:
|
||||||
|
- ssh-ed25519
|
||||||
|
- rsa-sha2-512
|
||||||
|
- rsa-sha2-256
|
||||||
|
- ssh-rsa
|
||||||
|
ssh_macs:
|
||||||
|
- hmac-sha2-512
|
||||||
|
- hmac-sha2-256
|
||||||
|
ssh_ciphers:
|
||||||
|
- aes256-ctr
|
||||||
|
- aes192-ctr
|
||||||
|
- aes128-ctr
|
||||||
|
- aes256-cbc
|
||||||
|
ssh_kex:
|
||||||
|
- diffie-hellman-group-exchange-sha256
|
||||||
|
- diffie-hellman-group-exchange-sha1
|
||||||
|
ssh_custom_options:
|
||||||
|
- "Include /etc/ssh/ssh_config.d/*"
|
||||||
|
sshd_custom_options:
|
||||||
|
- "AcceptEnv LANG"
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
options:
|
||||||
|
role-file: molecule/ssh_hardening/requirements.yml
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
image: "rndmh3ro/docker-${MOLECULE_DISTRO}-ansible:latest"
|
||||||
|
command: ${MOLECULE_DOCKER_COMMAND:-/lib/systemd/systemd}
|
||||||
|
volumes:
|
||||||
|
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||||
|
privileged: true
|
||||||
|
tmpfs:
|
||||||
|
- /tmp
|
||||||
|
- /run
|
||||||
|
capabilities:
|
||||||
|
- SYS_ADMIN
|
||||||
|
tty: true
|
||||||
|
env:
|
||||||
|
http_proxy: "${http_proxy}"
|
||||||
|
https_proxy: "${https_proxy}"
|
||||||
|
no_proxy: "${no_proxy}"
|
||||||
|
container: docker
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
config_options:
|
||||||
|
defaults:
|
||||||
|
interpreter_python: auto_silent
|
||||||
|
callback_whitelist: profile_tasks, timer, yaml
|
||||||
|
verifier:
|
||||||
|
name: ansible
|
||||||
|
|
||||||
|
scenario:
|
||||||
|
create_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
check_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- check
|
||||||
|
- destroy
|
||||||
|
converge_sequence:
|
||||||
|
- dependency
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
destroy_sequence:
|
||||||
|
- destroy
|
||||||
|
test_sequence:
|
||||||
|
- dependency
|
||||||
|
- destroy
|
||||||
|
- syntax
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
||||||
|
- idempotence
|
||||||
|
- verify
|
||||||
|
- destroy
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
---
|
||||||
|
- name: wrapper playbook for kitchen testing "ansible-ssh-hardening" with default settings
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env', 'http_proxy') | default(omit) }}"
|
||||||
|
https_proxy: "{{ lookup('env', 'https_proxy') | default(omit) }}"
|
||||||
|
no_proxy: "{{ lookup('env', 'no_proxy') | default(omit) }}"
|
||||||
|
tasks:
|
||||||
|
- name: use python3
|
||||||
|
set_fact:
|
||||||
|
ansible_python_interpreter: /usr/bin/python3
|
||||||
|
when: ansible_facts.distribution == 'Fedora'
|
||||||
|
|
||||||
|
- name: install packages # noqa ignore-errors
|
||||||
|
yum:
|
||||||
|
name:
|
||||||
|
- openssh-clients
|
||||||
|
- openssh-server
|
||||||
|
- libselinux-python
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: install packages # noqa ignore-errors
|
||||||
|
dnf:
|
||||||
|
name:
|
||||||
|
- openssh-clients
|
||||||
|
- openssh-server
|
||||||
|
- procps-ng
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: install packages # noqa ignore-errors
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- openssh-client
|
||||||
|
- openssh-server
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: install required tools on SuSE
|
||||||
|
# cannot use zypper module, since it depends on python-xml
|
||||||
|
shell: "zypper -n install python-xml"
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install packages
|
||||||
|
zypper:
|
||||||
|
name:
|
||||||
|
- "openssh"
|
||||||
|
when: ansible_facts.os_family == 'Suse'
|
||||||
|
|
||||||
|
- name: install required tools on Arch
|
||||||
|
pacman:
|
||||||
|
name:
|
||||||
|
- openssh
|
||||||
|
- awk
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
when: ansible_facts.os_family == 'Archlinux'
|
||||||
|
|
||||||
|
- name: created needed directory
|
||||||
|
file:
|
||||||
|
path: "/var/run/sshd"
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: create ssh host keys # noqa ignore-errors
|
||||||
|
command: "ssh-keygen -A"
|
||||||
|
when: not ((ansible_facts.os_family in ['Oracle Linux', 'RedHat']) and ansible_facts.distribution_major_version < '7') or
|
||||||
|
ansible_facts.distribution == "Fedora" or
|
||||||
|
ansible_facts.distribution == "Amazon" or
|
||||||
|
ansible_facts.os_family == "Suse"
|
||||||
|
changed_when: false
|
||||||
|
ignore_errors: true
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
roles:
|
||||||
|
- geerlingguy.git
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
molecule[docker]
|
||||||
|
yamllint
|
||||||
|
ansible
|
||||||
|
ansible-lint
|
||||||
|
docker
|
||||||
|
flake8
|
||||||
|
jmespath
|
||||||
Submodule
+1
Submodule roles/apache_hardening added at 41bd7d7e9d.
@@ -0,0 +1,118 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
## [2.2.2](https://github.com/dev-sec/ansible-mysql-hardening/tree/2.2.2) (2020-10-18)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-mysql-hardening/compare/2.2.1...2.2.2)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Use mysql_query module instead of temporary files [\#56](https://github.com/dev-sec/ansible-mysql-hardening/pull/56) ([szEvEz](https://github.com/szEvEz))
|
||||||
|
- update readme to new layout for vars [\#53](https://github.com/dev-sec/ansible-mysql-hardening/pull/53) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add mode to copy task [\#51](https://github.com/dev-sec/ansible-mysql-hardening/pull/51) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Fix linting errors and simplivy vars-handling [\#49](https://github.com/dev-sec/ansible-mysql-hardening/pull/49) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- permissions on /etc/mysql/mysql.cnf too restrictive [\#35](https://github.com/dev-sec/ansible-mysql-hardening/issues/35)
|
||||||
|
- fix missing variables [\#55](https://github.com/dev-sec/ansible-mysql-hardening/pull/55) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add modes to template and file tasks [\#50](https://github.com/dev-sec/ansible-mysql-hardening/pull/50) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Use mysql_query module instead of temporary files [\#52](https://github.com/dev-sec/ansible-mysql-hardening/issues/52)
|
||||||
|
- Add Centos 8 support for ansible-mysql-hardening [\#36](https://github.com/dev-sec/ansible-mysql-hardening/issues/36)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Run ansible-lint via github action [\#58](https://github.com/dev-sec/ansible-mysql-hardening/pull/58) ([szEvEz](https://github.com/szEvEz))
|
||||||
|
- Fix kitchen and travisci for major distros [\#57](https://github.com/dev-sec/ansible-mysql-hardening/pull/57) ([szEvEz](https://github.com/szEvEz))
|
||||||
|
- update testing [\#48](https://github.com/dev-sec/ansible-mysql-hardening/pull/48) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [2.2.1](https://github.com/dev-sec/ansible-mysql-hardening/tree/2.2.1) (2020-06-06)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-mysql-hardening/compare/2.2.0...2.2.1)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- unify changelog and release actions [\#46](https://github.com/dev-sec/ansible-mysql-hardening/pull/46) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [2.2.0](https://github.com/dev-sec/ansible-mysql-hardening/tree/2.2.0) (2020-05-09)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-mysql-hardening/compare/2.1.0...2.2.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- add changelog and release workflow [\#45](https://github.com/dev-sec/ansible-mysql-hardening/pull/45) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Use python3-mysqldb for Ubuntu 20.04 [\#44](https://github.com/dev-sec/ansible-mysql-hardening/pull/44) ([shadinaif](https://github.com/shadinaif))
|
||||||
|
- add ansible-lint [\#43](https://github.com/dev-sec/ansible-mysql-hardening/pull/43) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [2.1.0](https://github.com/dev-sec/ansible-mysql-hardening/tree/2.1.0) (2019-10-17)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-mysql-hardening/compare/2.0.0...2.1.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Add support for Debian Buster in ansible-mysql-hardening [\#37](https://github.com/dev-sec/ansible-mysql-hardening/issues/37)
|
||||||
|
- Update readme to include baselines [\#28](https://github.com/dev-sec/ansible-mysql-hardening/issues/28)
|
||||||
|
- migrate to new inspec test suite [\#25](https://github.com/dev-sec/ansible-mysql-hardening/issues/25)
|
||||||
|
- use bool filter on bare variable to address Ansible 2.8 deprecation warning [\#40](https://github.com/dev-sec/ansible-mysql-hardening/pull/40) ([deefour](https://github.com/deefour))
|
||||||
|
- Add test support for Debian Buster [\#38](https://github.com/dev-sec/ansible-mysql-hardening/pull/38) ([cnkk](https://github.com/cnkk))
|
||||||
|
- remove eol'd OS and add new [\#34](https://github.com/dev-sec/ansible-mysql-hardening/pull/34) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- replace iteritems with items for python3 support [\#33](https://github.com/dev-sec/ansible-mysql-hardening/pull/33) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- make mysql daemon enabling configurable [\#30](https://github.com/dev-sec/ansible-mysql-hardening/pull/30) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Template fails to render with Python 3 [\#32](https://github.com/dev-sec/ansible-mysql-hardening/issues/32)
|
||||||
|
- my.cnf symlink turns into None? [\#24](https://github.com/dev-sec/ansible-mysql-hardening/issues/24)
|
||||||
|
|
||||||
|
## [2.0.0](https://github.com/dev-sec/ansible-mysql-hardening/tree/2.0.0) (2017-05-07)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-mysql-hardening/compare/1.0.0...2.0.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Add CentOS7 with MariaDB support [\#23](https://github.com/dev-sec/ansible-mysql-hardening/issues/23)
|
||||||
|
- Fix ansible.cfg settings [\#29](https://github.com/dev-sec/ansible-mysql-hardening/pull/29) ([fazlearefin](https://github.com/fazlearefin))
|
||||||
|
- Add CentOS7 with MariaDB support [\#27](https://github.com/dev-sec/ansible-mysql-hardening/pull/27) ([chrispoupart](https://github.com/chrispoupart))
|
||||||
|
- - renamed 'mysql_hardening_mysql_conf' var to 'mysql_hardening_mysql\_… [\#22](https://github.com/dev-sec/ansible-mysql-hardening/pull/22) ([agno01](https://github.com/agno01))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- error on task protect my.cnf [\#20](https://github.com/dev-sec/ansible-mysql-hardening/issues/20)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- use new docker files [\#26](https://github.com/dev-sec/ansible-mysql-hardening/pull/26) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
## [1.0.0](https://github.com/dev-sec/ansible-mysql-hardening/tree/1.0.0) (2016-06-28)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/dev-sec/ansible-mysql-hardening/compare/dab153eb56e2296ce340e77d95586a55b5eefb80...1.0.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- add follow=yes to my.cnf protect task, incase its a symlink. fixes \#20 [\#21](https://github.com/dev-sec/ansible-mysql-hardening/pull/21) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add changelog generator [\#7](https://github.com/dev-sec/ansible-mysql-hardening/pull/7) ([chris-rock](https://github.com/chris-rock))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- tasks - main [\#14](https://github.com/dev-sec/ansible-mysql-hardening/issues/14)
|
||||||
|
- Fix directory structure. [\#6](https://github.com/dev-sec/ansible-mysql-hardening/issues/6)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Local testing [\#17](https://github.com/dev-sec/ansible-mysql-hardening/pull/17) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix rhel daemon [\#16](https://github.com/dev-sec/ansible-mysql-hardening/pull/16) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- alt version initial commit [\#15](https://github.com/dev-sec/ansible-mysql-hardening/pull/15) ([fitz123](https://github.com/fitz123))
|
||||||
|
- add test support for ansible 2.0 and 1.9 [\#13](https://github.com/dev-sec/ansible-mysql-hardening/pull/13) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- add webhook for ansible galaxy [\#11](https://github.com/dev-sec/ansible-mysql-hardening/pull/11) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- update platforms in meta-file [\#10](https://github.com/dev-sec/ansible-mysql-hardening/pull/10) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Simplify local testing with custom role [\#9](https://github.com/dev-sec/ansible-mysql-hardening/pull/9) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- New role layout [\#8](https://github.com/dev-sec/ansible-mysql-hardening/pull/8) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- fix mysql restart not happening because of missing os specific variable [\#5](https://github.com/dev-sec/ansible-mysql-hardening/pull/5) ([fheinle](https://github.com/fheinle))
|
||||||
|
- Update kitchen-ansible, remove separate debian install [\#4](https://github.com/dev-sec/ansible-mysql-hardening/pull/4) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- update common kitchen.yml platforms \(ansible\), kitchen_debian.yml platforms \(ansible\) [\#3](https://github.com/dev-sec/ansible-mysql-hardening/pull/3) ([chris-rock](https://github.com/chris-rock))
|
||||||
|
- Separate system-vars from editable vars. [\#2](https://github.com/dev-sec/ansible-mysql-hardening/pull/2) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
- Add documentation for testing, change value in vars [\#1](https://github.com/dev-sec/ansible-mysql-hardening/pull/1) ([rndmh3ro](https://github.com/rndmh3ro))
|
||||||
|
|
||||||
|
\* _This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)_
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
# devsec.mysql_hardening
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This role provides security configurations for MySQL and its derivates. It is intended to set up production-ready MySQL instances that are configured with minimal surface for attackers. Furthermore it is intended to be compliant with the [DevSec MySQL Baseline](https://github.com/dev-sec/mysql-baseline).
|
||||||
|
|
||||||
|
It configures:
|
||||||
|
|
||||||
|
- Permissions for the various configuration files and folders
|
||||||
|
- Removes anonymous users, users without a password or authentication_string and test databases
|
||||||
|
- various hardening options inside MySQL
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Ansible 2.9.0
|
||||||
|
- An existing MySQL installation
|
||||||
|
|
||||||
|
### Example playbook
|
||||||
|
|
||||||
|
```yml
|
||||||
|
- hosts: localhost
|
||||||
|
collections:
|
||||||
|
- devsec.hardening
|
||||||
|
roles:
|
||||||
|
- mysql_hardening
|
||||||
|
```
|
||||||
|
|
||||||
|
This role expects an existing installation of MySQL or MariaDB. Changes of options `log_error` or `datadir` in `mysql_hardening_options` will not be checked for correct permissions. Please change/set `log_error` or `datadir` with the installation role of MySQL before running this role, or you can run this role twice.
|
||||||
|
Please ensure that the following variables are set accordingly:
|
||||||
|
|
||||||
|
- `mysql_hardening_enabled: yes` role is enabled by default and can be disabled without removing it from a playbook. You can use conditional variable, for example: `mysql_hardening_enabled: "{{ true if mysql_enabled else false }}"`
|
||||||
|
- `mysql_hardening_user: 'mysql'` The user that mysql runs as.
|
||||||
|
- `mysql_hardening_mysql_hardening_conf_file: '/etc/mysql/conf.d/hardening.cnf'` The path to the configuration file where the hardening will be performed
|
||||||
|
- _deprecated: `mysql_datadir: '/var/lib/mysql'` The MySQL data directory_
|
||||||
|
- `mysql_datadir` is no longer necessary, as MySQL data directory is automatically taken from `mysql_info`. But it can still be defined and will also be checked for correct permissions.
|
||||||
|
|
||||||
|
## Role Variables
|
||||||
|
|
||||||
|
- `mysql_hardening_chroot`
|
||||||
|
- Default: ""
|
||||||
|
- Description: [chroot](http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_chroot)
|
||||||
|
- `mysql_hardening_options.safe-user-create`
|
||||||
|
- Default: 1
|
||||||
|
- Description: [safe-user-create](http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_safe-user-create)
|
||||||
|
- `mysql_hardening_options.secure-auth`
|
||||||
|
- Default: 1
|
||||||
|
- Description: [secure-auth](http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_secure-auth)
|
||||||
|
- `mysql_hardening_options.skip-symbolic-links`
|
||||||
|
- Default: 1
|
||||||
|
- Description: [skip-symbolic-links](http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_symbolic-links)
|
||||||
|
- `mysql_hardening_skip_grant_tables:`
|
||||||
|
- Default: false
|
||||||
|
- Description: [skip-grant-tables](https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_skip-grant-tables)
|
||||||
|
- `mysql_hardening_skip_show_database`
|
||||||
|
- Default: 1
|
||||||
|
- Description: [skip-show-database](http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_skip-show-database)
|
||||||
|
- `mysql_hardening_options.local-infile`
|
||||||
|
- Default: 0
|
||||||
|
- Description: [local-infile](http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_local_infile)
|
||||||
|
- `mysql_hardening_options.allow-suspicious-udfs`
|
||||||
|
- Default: 0
|
||||||
|
- Description: [allow-suspicious-udfs](https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_allow-suspicious-udfs)
|
||||||
|
- `mysql_hardening_chroot.automatic-sp-privileges`
|
||||||
|
- Default: 0
|
||||||
|
- Description: [automatic_sp_privileges](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_automatic_sp_privileges)
|
||||||
|
- `mysql_hardening_options.secure-file-priv`
|
||||||
|
- Default: /tmp
|
||||||
|
- Description: [secure-file-priv](https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_secure-file-priv)
|
||||||
|
- `mysql_allow_remote_root`
|
||||||
|
- Default: false
|
||||||
|
- Description: delete remote root users
|
||||||
|
- `mysql_remove_anonymous_users`
|
||||||
|
- Default: true
|
||||||
|
- Description: remove users without authentication
|
||||||
|
- `mysql_remove_test_database`
|
||||||
|
- Default: true
|
||||||
|
- Description: remove test database
|
||||||
|
- `mysql_hardening_restart_mysql`
|
||||||
|
- Default: true
|
||||||
|
- Description: Restart mysql after running this role
|
||||||
|
|
||||||
|
Further information is available at [Deutsche Telekom (German)](http://www.telekom.com/static/-/155996/7/technische-sicherheitsanforderungen-si) and [Symantec](http://www.symantec.com/connect/articles/securing-mysql-step-step)
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
# switcher to enable/disable role
|
||||||
|
mysql_hardening_enabled: true
|
||||||
|
|
||||||
|
mysql_daemon_enabled: true
|
||||||
|
|
||||||
|
mysql_hardening_restart_mysql: true
|
||||||
|
|
||||||
|
# general configuration
|
||||||
|
mysql_hardening_mysql_hardening_conf_file: '{{ mysql_hardening_mysql_confd_dir }}/hardening.cnf'
|
||||||
|
# You have to change this to your own strong enough mysql root password
|
||||||
|
mysql_root_password: '-----====>SetR00tPa$$wordH3r3!!!<====-----'
|
||||||
|
# There .my.cnf with mysql root credentials will be installed
|
||||||
|
mysql_user_home: "{{ ansible_env.HOME }}"
|
||||||
|
|
||||||
|
# ensure the following parameters are set properly
|
||||||
|
mysql_remove_remote_root: true
|
||||||
|
mysql_remove_anonymous_users: true
|
||||||
|
mysql_remove_test_database: true
|
||||||
|
|
||||||
|
# @see http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_skip-show-database
|
||||||
|
mysql_hardening_skip_show_database: true
|
||||||
|
|
||||||
|
# @see https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_skip-grant-tables
|
||||||
|
mysql_hardening_skip_grant_tables: false
|
||||||
|
|
||||||
|
# @see http://www.symantec.com/connect/articles/securing-mysql-step-step
|
||||||
|
# @see http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_chroot
|
||||||
|
mysql_hardening_chroot: ""
|
||||||
|
|
||||||
|
mysql_hardening_options:
|
||||||
|
# @see http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_safe-user-create
|
||||||
|
safe-user-create: 1
|
||||||
|
|
||||||
|
# @see http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option-mysqld-secure-auth
|
||||||
|
secure-auth: 1
|
||||||
|
|
||||||
|
# @see http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option-mysqld-symbolic-links
|
||||||
|
skip-symbolic-links: 1
|
||||||
|
|
||||||
|
# @see http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar-local-infile
|
||||||
|
local-infile: 0
|
||||||
|
|
||||||
|
# @see https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option-mysqld-allow-suspicious-udfs
|
||||||
|
allow-suspicious-udfs: 0
|
||||||
|
|
||||||
|
# @see https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar-automatic-sp-privileges
|
||||||
|
automatic-sp-privileges: 0
|
||||||
|
|
||||||
|
# @see https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option-mysqld-secure-file-priv
|
||||||
|
secure-file-priv: '/tmp'
|
||||||
|
# @see https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_user
|
||||||
|
user: '{{ mysql_hardening_user }}'
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Restart mysql
|
||||||
|
service:
|
||||||
|
name: '{{ mysql_daemon }}'
|
||||||
|
state: restarted
|
||||||
|
when: mysql_hardening_restart_mysql | bool
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
---
|
---
|
||||||
galaxy_info:
|
galaxy_info:
|
||||||
author: "Sebastian Gumprich"
|
author: "Sebastian Gumprich"
|
||||||
description: 'This Ansible role provides numerous security-related configurations, providing all-round base protection.'
|
description: 'This Ansible playbook provides security configuration for mysql.'
|
||||||
company: Hardening Framework Team
|
company: Hardening Framework Team
|
||||||
license: Apache License 2.0
|
license: Apache License 2.0
|
||||||
min_ansible_version: '2.5'
|
min_ansible_version: '2.9.10'
|
||||||
platforms:
|
platforms:
|
||||||
- name: EL
|
- name: EL
|
||||||
versions:
|
versions:
|
||||||
@@ -12,17 +12,17 @@ galaxy_info:
|
|||||||
- 7
|
- 7
|
||||||
- name: Ubuntu
|
- name: Ubuntu
|
||||||
versions:
|
versions:
|
||||||
- precise
|
|
||||||
- trusty
|
|
||||||
- xenial
|
- xenial
|
||||||
- bionic
|
- bionic
|
||||||
- name: Debian
|
- name: Debian
|
||||||
versions:
|
versions:
|
||||||
- wheezy
|
|
||||||
- jessie
|
- jessie
|
||||||
- name: Amazon
|
- name: Amazon
|
||||||
|
- name: Fedora
|
||||||
galaxy_tags:
|
galaxy_tags:
|
||||||
- system
|
- system
|
||||||
- security
|
- security
|
||||||
- hardening
|
- hardening
|
||||||
|
- database
|
||||||
|
- mysql
|
||||||
dependencies: []
|
dependencies: []
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
- name: Protect my.cnf
|
||||||
|
file:
|
||||||
|
path: '{{ mysql_hardening_mysql_conf_file }}'
|
||||||
|
mode: '0640'
|
||||||
|
owner: '{{ mysql_cnf_owner }}'
|
||||||
|
group: '{{ mysql_cnf_group }}'
|
||||||
|
follow: true
|
||||||
|
state: file
|
||||||
|
|
||||||
|
- name: Ensure permissions on mysql-datadir are correct
|
||||||
|
file:
|
||||||
|
path: '{{ item }}'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ mysql_hardening_user }}'
|
||||||
|
group: '{{ mysql_hardening_user }}'
|
||||||
|
mode: '0750'
|
||||||
|
when: item is defined and item != ""
|
||||||
|
loop:
|
||||||
|
- '{{ mysql_settings.settings.datadir }}'
|
||||||
|
- '{{ mysql_datadir | default("") }}'
|
||||||
|
|
||||||
|
- name: Ensure permissions on mysql-logfile are correct
|
||||||
|
file:
|
||||||
|
path: '{{ item }}'
|
||||||
|
state: file
|
||||||
|
owner: '{{ mysql_hardening_user }}'
|
||||||
|
group: '{{ mysql_hardening_group }}'
|
||||||
|
mode: '0640'
|
||||||
|
when: item is defined and item != ""
|
||||||
|
loop:
|
||||||
|
- '{{ mysql_settings.settings.log_error }}'
|
||||||
|
- '{{ mysql_hardening_log_file | default("") }}'
|
||||||
|
|
||||||
|
- name: Check mysql configuration-directory exists and has right permissions
|
||||||
|
file:
|
||||||
|
path: '{{ mysql_hardening_mysql_confd_dir }}'
|
||||||
|
state: directory
|
||||||
|
owner: '{{ mysql_hardening_user }}'
|
||||||
|
group: '{{ mysql_hardening_group }}'
|
||||||
|
mode: '0750'
|
||||||
|
|
||||||
|
- name: Check include-dir directive is present in my.cnf
|
||||||
|
lineinfile:
|
||||||
|
dest: '{{ mysql_hardening_mysql_conf_file }}'
|
||||||
|
line: '!includedir {{ mysql_hardening_mysql_confd_dir }}'
|
||||||
|
insertafter: 'EOF'
|
||||||
|
state: present
|
||||||
|
backup: true
|
||||||
|
notify: Restart mysql
|
||||||
|
|
||||||
|
- name: Apply hardening configuration
|
||||||
|
template:
|
||||||
|
src: 'hardening.cnf.j2'
|
||||||
|
dest: '{{ mysql_hardening_mysql_hardening_conf_file }}'
|
||||||
|
owner: '{{ mysql_cnf_owner }}'
|
||||||
|
group: '{{ mysql_cnf_group }}'
|
||||||
|
mode: '0640'
|
||||||
|
notify: Restart mysql
|
||||||
|
|
||||||
|
- name: Enable mysql
|
||||||
|
service:
|
||||||
|
name: '{{ mysql_daemon }}'
|
||||||
|
enabled: '{{ mysql_daemon_enabled }}'
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
- name: Fetch OS dependent variables
|
||||||
|
include_vars:
|
||||||
|
file: '{{ item }}'
|
||||||
|
name: 'os_vars'
|
||||||
|
with_first_found:
|
||||||
|
- files:
|
||||||
|
- '{{ ansible_facts.distribution }}_{{ ansible_facts.distribution_major_version }}.yml'
|
||||||
|
- '{{ ansible_facts.distribution }}.yml'
|
||||||
|
- '{{ ansible_facts.os_family }}_{{ ansible_facts.distribution_major_version }}.yml'
|
||||||
|
- '{{ ansible_facts.os_family }}.yml'
|
||||||
|
skip: true
|
||||||
|
tags: always
|
||||||
|
|
||||||
|
# we only override variables with our default if they have not been specified already.
|
||||||
|
# by default the lookup functions finds all varnames containing the string, therefore
|
||||||
|
# we add ^ and $ to denote start and end of string, so this returns only exact maches.
|
||||||
|
- name: Set OS dependent variables, if not already defined by user # noqa var-naming
|
||||||
|
set_fact:
|
||||||
|
'{{ item.key }}': '{{ item.value }}'
|
||||||
|
when: "not lookup('varnames', '^' + item.key + '$')"
|
||||||
|
with_dict: '{{ os_vars }}'
|
||||||
|
tags: always
|
||||||
|
|
||||||
|
- name: Check that the variable mysql_distribution is set correctly
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that: mysql_distribution == 'mysql' or mysql_distribution == 'mariadb'
|
||||||
|
fail_msg: 'mysql_distribution must be set to either mysql or mariadb!'
|
||||||
|
when: mysql_distribution is defined
|
||||||
|
|
||||||
|
- name: Gather package facts to check for mysql/mariadb version
|
||||||
|
ansible.builtin.package_facts:
|
||||||
|
manager: auto
|
||||||
|
when: not mysql_distribution is defined
|
||||||
|
|
||||||
|
- name: Check if MySQL or MariaDB is used
|
||||||
|
set_fact:
|
||||||
|
mysql_distribution: "{{ ansible_facts.packages['mysql-server'] is defined | ternary('mysql', 'mariadb') }}"
|
||||||
|
when: not mysql_distribution is defined
|
||||||
|
|
||||||
|
- name: Check which MySQL/MariaDB version is used
|
||||||
|
community.mysql.mysql_info:
|
||||||
|
filter: version
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
register: mysql_version
|
||||||
|
|
||||||
|
- name: Check MySQL/MariaDB settings
|
||||||
|
community.mysql.mysql_info:
|
||||||
|
filter: settings
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
register: mysql_settings
|
||||||
|
|
||||||
|
# see https://stackoverflow.com/a/59451077/2953919 for the
|
||||||
|
# dict2items and vice versa magic
|
||||||
|
- name: Drop the secure-auth parameter on MySQL >=8.0.3 (not mariadb)
|
||||||
|
set_fact:
|
||||||
|
mysql_hardening_options: "{{ mysql_hardening_options | dict2items | rejectattr('key', 'search', 'secure-auth') | list | items2dict }}"
|
||||||
|
when:
|
||||||
|
- mysql_version.version.full is version('8.0.3', '>=')
|
||||||
|
- mysql_distribution == "mysql"
|
||||||
|
|
||||||
|
- include: configure.yml
|
||||||
|
when: mysql_hardening_enabled | bool
|
||||||
|
tags:
|
||||||
|
- mysql_hardening
|
||||||
|
|
||||||
|
- include: mysql_secure_installation.yml
|
||||||
|
when: mysql_hardening_enabled | bool
|
||||||
|
tags:
|
||||||
|
- mysql_hardening
|
||||||
|
- mysql_secure_installation
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
---
|
||||||
|
- name: Fail the role if the mysql root password was not set
|
||||||
|
fail:
|
||||||
|
msg: 'ERROR - you have to change default mysql_root_password'
|
||||||
|
when: mysql_root_password == '-----====>SetR00tPa$$wordH3r3!!!<====-----'
|
||||||
|
|
||||||
|
- name: ensure that the root password is present
|
||||||
|
community.mysql.mysql_user:
|
||||||
|
name: 'root'
|
||||||
|
host_all: true
|
||||||
|
password: '{{ mysql_root_password | mandatory }}'
|
||||||
|
state: present
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
|
||||||
|
- name: Install .my.cnf with credentials
|
||||||
|
template:
|
||||||
|
src: 'my.cnf.j2'
|
||||||
|
dest: '{{ mysql_user_home }}/.my.cnf'
|
||||||
|
mode: '0400'
|
||||||
|
tags: my_cnf
|
||||||
|
|
||||||
|
- name: ensure that the test database is absent
|
||||||
|
community.mysql.mysql_db:
|
||||||
|
name: test
|
||||||
|
state: absent
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
when: mysql_remove_test_database
|
||||||
|
|
||||||
|
- name: ensure that anonymous users are absent
|
||||||
|
community.mysql.mysql_user:
|
||||||
|
name: ''
|
||||||
|
state: absent
|
||||||
|
host_all: true
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
when: mysql_remove_anonymous_users
|
||||||
|
|
||||||
|
- name: ensure that root can only login from localhost
|
||||||
|
community.mysql.mysql_query:
|
||||||
|
query:
|
||||||
|
- DELETE
|
||||||
|
FROM mysql.user
|
||||||
|
WHERE USER='root'
|
||||||
|
AND HOST NOT IN ('localhost',
|
||||||
|
'127.0.0.1',
|
||||||
|
'::1')
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
when: mysql_remove_remote_root
|
||||||
|
|
||||||
|
- name: get all users that have no authentication_string on MySQL version >= 5.7.6 or Mariadb version >= 10.4.0
|
||||||
|
community.mysql.mysql_query:
|
||||||
|
query:
|
||||||
|
- SELECT GROUP_CONCAT(QUOTE(USER), '@', QUOTE(HOST) SEPARATOR ', ') AS users
|
||||||
|
FROM mysql.user
|
||||||
|
WHERE (length(authentication_string)=0
|
||||||
|
OR authentication_string="")
|
||||||
|
AND USER NOT IN ('mysql.sys',
|
||||||
|
'mysqlxsys',
|
||||||
|
'mariadb.sys');
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
register: mysql_users_wo_passwords_or_auth_string
|
||||||
|
when:
|
||||||
|
- (mysql_distribution == "mysql" and mysql_version.version.full is version('5.7.6', '>=')) or
|
||||||
|
(mysql_distribution == "mariadb" and mysql_version.version.full is version('10.4.0', '>='))
|
||||||
|
|
||||||
|
- name: get all users that have no password or authentication_string on MySQL version < 5.7.6 or Mariadb version < 10.4.0
|
||||||
|
community.mysql.mysql_query:
|
||||||
|
query:
|
||||||
|
- SELECT GROUP_CONCAT(QUOTE(USER), '@', QUOTE(HOST) SEPARATOR ', ') AS users
|
||||||
|
FROM mysql.user
|
||||||
|
WHERE (length(password)=0
|
||||||
|
OR password="")
|
||||||
|
AND (length(authentication_string)=0
|
||||||
|
OR authentication_string="")
|
||||||
|
AND USER NOT IN ('mysql.sys',
|
||||||
|
'mysqlxsys',
|
||||||
|
'mariadb.sys');
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
register: mysql_users_wo_passwords
|
||||||
|
when:
|
||||||
|
- (mysql_distribution == "mysql" and mysql_version.version.full is version('5.7.6', '<')) or
|
||||||
|
(mysql_distribution == "mariadb" and mysql_version.version.full is version('10.4.0', '<'))
|
||||||
|
|
||||||
|
- name: create a fact for users without password or authentication_string
|
||||||
|
set_fact:
|
||||||
|
users_wo_auth: "{{ mysql_users_wo_passwords_or_auth_string.query_result.0.0 | community.general.json_query('users') }}"
|
||||||
|
when:
|
||||||
|
- mysql_users_wo_passwords_or_auth_string.query_result is defined
|
||||||
|
- mysql_users_wo_passwords_or_auth_string.query_result != "" # noqa empty-string-compare
|
||||||
|
|
||||||
|
- name: create a fact for users without password
|
||||||
|
set_fact:
|
||||||
|
users_wo_auth: "{{ mysql_users_wo_passwords.query_result.0.0 | community.general.json_query('users') }}"
|
||||||
|
when:
|
||||||
|
- mysql_users_wo_passwords.query_result is defined
|
||||||
|
- mysql_users_wo_passwords.query_result != "" # noqa empty-string-compare
|
||||||
|
|
||||||
|
- name: ensure that there are no users without password or authentication_string
|
||||||
|
community.mysql.mysql_query:
|
||||||
|
query:
|
||||||
|
- "DROP USER {{ users_wo_auth }}"
|
||||||
|
login_unix_socket: "{{ login_unix_socket | default(omit) }}"
|
||||||
|
when:
|
||||||
|
- users_wo_auth is defined
|
||||||
|
- users_wo_auth != "" # noqa empty-string-compare
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{{ ansible_managed | comment }}
|
||||||
|
# Generated by Ansible role {{ ansible_role_name }}
|
||||||
|
|
||||||
|
[mysqld]
|
||||||
|
{% if mysql_hardening_skip_show_database -%}
|
||||||
|
skip-show-database
|
||||||
|
{% endif %}
|
||||||
|
{% if mysql_hardening_skip_grant_tables -%}
|
||||||
|
skip-grant-tables
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for (key, value) in mysql_hardening_options.items() %}
|
||||||
|
{{ key }} = {{ value }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if mysql_hardening_chroot %}
|
||||||
|
chroot = '{{ mysql_hardening_chroot }}'
|
||||||
|
{% endif %}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{{ ansible_managed | comment }}
|
||||||
|
# Generated by Ansible role {{ ansible_role_name }}
|
||||||
|
|
||||||
|
[client]
|
||||||
|
user=root
|
||||||
|
password='{{ mysql_root_password | mandatory }}'
|
||||||
|
#ssl
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mysql
|
||||||
|
|
||||||
|
mysql_hardening_mysql_conf_file: '/etc/mysql/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/etc/mysql/conf.d'
|
||||||
|
|
||||||
|
mysql_hardening_group: 'adm'
|
||||||
|
|
||||||
|
mysql_cnf_owner: 'root' # owner of /etc/mysql/*.cnf files
|
||||||
|
mysql_cnf_group: 'mysql' # owner of /etc/mysql/*.cnf files
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mysqld
|
||||||
|
mysql_hardening_mysql_conf_file: '/etc/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/etc/my.cnf.d'
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mysql-server
|
||||||
|
|
||||||
|
mysql_hardening_mysql_conf_file: '/usr/local/etc/mysql/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/usr/local/etc/mysql/conf.d'
|
||||||
|
|
||||||
|
mysql_hardening_group: 'mysql'
|
||||||
|
|
||||||
|
mysql_cnf_owner: 'root' # owner of /usr/local/etc/mysql/*.cnf files
|
||||||
|
mysql_cnf_group: 'mysql' # owner of /usr/local/etc/mysql/*.cnf files
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mysqld
|
||||||
|
|
||||||
|
mysql_hardening_mysql_conf_file: '/etc/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/etc/my.cnf.d'
|
||||||
|
|
||||||
|
mysql_hardening_group: 'adm'
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mariadb
|
||||||
|
mysql_hardening_mysql_conf_file: '/etc/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/etc/my.cnf.d'
|
||||||
|
|
||||||
|
mysql_cnf_owner: 'root' # owner of /etc/mysql/*.cnf files
|
||||||
|
mysql_cnf_group: 'mysql' # owner of /etc/mysql/*.cnf files
|
||||||
|
|
||||||
|
mysql_hardening_group: 'mysql'
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mariadb
|
||||||
|
mysql_hardening_mysql_conf_file: '/etc/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/etc/my.cnf.d'
|
||||||
|
|
||||||
|
mysql_cnf_owner: 'root' # owner of /etc/mysql/*.cnf files
|
||||||
|
mysql_cnf_group: 'mysql' # owner of /etc/mysql/*.cnf files
|
||||||
|
|
||||||
|
mysql_hardening_group: 'mysql'
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mariadb
|
||||||
|
mysql_hardening_mysql_conf_file: '/etc/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/etc/my.cnf.d'
|
||||||
|
|
||||||
|
mysql_cnf_owner: 'root' # owner of /etc/mysql/*.cnf files
|
||||||
|
mysql_cnf_group: 'mysql' # owner of /etc/mysql/*.cnf files
|
||||||
|
|
||||||
|
mysql_hardening_group: 'mysql'
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mysql
|
||||||
|
|
||||||
|
mysql_hardening_mysql_conf_file: '/etc/mysql/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/etc/mysql/conf.d'
|
||||||
|
|
||||||
|
mysql_cnf_owner: 'root' # owner of /etc/mysql/*.cnf files
|
||||||
|
mysql_cnf_group: 'mysql' # owner of /etc/mysql/*.cnf files
|
||||||
|
|
||||||
|
mysql_hardening_group: 'adm'
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mysql
|
||||||
|
|
||||||
|
mysql_hardening_mysql_conf_file: '/etc/mysql/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/etc/mysql/conf.d'
|
||||||
|
|
||||||
|
mysql_cnf_owner: 'root' # owner of /etc/mysql/*.cnf files
|
||||||
|
mysql_cnf_group: 'mysql' # owner of /etc/mysql/*.cnf files
|
||||||
|
|
||||||
|
mysql_hardening_group: 'adm'
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
mysql_daemon: mysql
|
||||||
|
|
||||||
|
mysql_hardening_mysql_conf_file: '/etc/mysql/my.cnf'
|
||||||
|
mysql_hardening_mysql_confd_dir: '/etc/mysql/conf.d'
|
||||||
|
|
||||||
|
mysql_cnf_owner: 'root' # owner of /etc/mysql/*.cnf files
|
||||||
|
mysql_cnf_group: 'mysql' # owner of /etc/mysql/*.cnf files
|
||||||
|
|
||||||
|
mysql_hardening_group: 'adm'
|
||||||
Loaded 100 of 217 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user