mirror of
https://github.com/Kicksecure/security-misc.git
synced 2025-04-24 16:59:09 -04:00
Compare commits
1685 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e154d0af6d | ||
![]() |
4bf0e3a636 | ||
![]() |
502f5953c7 | ||
![]() |
abb0c83619 | ||
![]() |
efa2967fca | ||
![]() |
dc7e857904 | ||
![]() |
9948ae114d | ||
![]() |
4aca622706 | ||
![]() |
701f4a0e88 | ||
![]() |
a670c0d873 | ||
![]() |
4799f3ce02 | ||
![]() |
c4f0e1d16f | ||
![]() |
81634930fa | ||
![]() |
90330a1ec9 | ||
![]() |
ce2c9a21a3 | ||
![]() |
96ff7c8dc6 | ||
![]() |
5a37790e6b | ||
![]() |
7512aa6757 | ||
![]() |
e0e2a9b61c | ||
![]() |
9f2836d2ba | ||
![]() |
5e88dfe809 | ||
![]() |
c0a18c5a71 | ||
![]() |
74ca63d12c | ||
![]() |
aa0ffff427 | ||
![]() |
da9dd3c3f1 | ||
![]() |
163d51f32a | ||
![]() |
4d2b2e6546 | ||
![]() |
39f4f5b607 | ||
![]() |
173606891a | ||
![]() |
f0d17c7e41 | ||
![]() |
df2fc2cf6b | ||
![]() |
f643ebc2f9 | ||
![]() |
d927fe238c | ||
![]() |
cd0ba94ac5 | ||
![]() |
3e7d1b4e23 | ||
![]() |
0615e6e995 | ||
![]() |
4d62ee3ab3 | ||
![]() |
ce4b57d1cb | ||
![]() |
2a4a228b15 | ||
![]() |
041caf286b | ||
![]() |
ac1493fcfc | ||
![]() |
c0f2f11014 | ||
![]() |
9f5e522b83 | ||
![]() |
7c150d116d | ||
![]() |
6aaf708217 | ||
![]() |
10508cb580 | ||
![]() |
b9dee26331 | ||
![]() |
6b4fa1ef00 | ||
![]() |
b10f5489a3 | ||
![]() |
3c18734db3 | ||
![]() |
f90ffacac3 | ||
![]() |
3a056c9d9c | ||
![]() |
d5ad29a732 | ||
![]() |
c8a2483cf6 | ||
![]() |
80bd314436 | ||
![]() |
9b012bdeee | ||
![]() |
507130a1cc | ||
![]() |
42f34f5a4c | ||
![]() |
5e60416c86 | ||
![]() |
ed767e00b0 | ||
![]() |
4b1e530674 | ||
![]() |
15d13a8571 | ||
![]() |
a97620a2e4 | ||
![]() |
f1b6bff30b | ||
![]() |
df9d058ed9 | ||
![]() |
8ff5f3b221 | ||
![]() |
4e0d5a196c | ||
![]() |
1b4d1edfc3 | ||
![]() |
51c7010e8f | ||
![]() |
876d596a07 | ||
![]() |
c9e2f82bd0 | ||
![]() |
bf73f1f2b5 | ||
![]() |
597186972e | ||
![]() |
ca25716410 | ||
![]() |
2dfd30a44a | ||
![]() |
328f747179 | ||
![]() |
c6f09748f3 | ||
![]() |
a0f81958df | ||
![]() |
396372c129 | ||
![]() |
a84d3ba732 | ||
![]() |
709036c79f | ||
![]() |
659c7037c6 | ||
![]() |
86d3db15bf | ||
![]() |
876c0b6187 | ||
![]() |
c46178dee4 | ||
![]() |
f3c07a2451 | ||
![]() |
bbc4ad7c2a | ||
![]() |
9bb92e91a8 | ||
![]() |
95dd8f419f | ||
![]() |
0a2f06b456 | ||
![]() |
6a4f9c1bd8 | ||
![]() |
e60183ec07 | ||
![]() |
a812961bea | ||
![]() |
0e4dfc59dd | ||
![]() |
cdf179f127 | ||
![]() |
41cd09933a | ||
![]() |
eec2e2c8ee | ||
![]() |
6d282226ef | ||
![]() |
466308e4f9 | ||
![]() |
7a5f8b87af | ||
![]() |
d89ffcde30 | ||
![]() |
9f1759ba0e | ||
![]() |
0ac85ea9f5 | ||
![]() |
fce6a5f830 | ||
![]() |
1e99404813 | ||
![]() |
b198591537 | ||
![]() |
7d44db2cb2 | ||
![]() |
7e7632a553 | ||
![]() |
420cb3f86f | ||
![]() |
b7e7b2767e | ||
![]() |
b2a1a0ec9f | ||
![]() |
69ae2d9ea0 | ||
![]() |
de9ebabd46 | ||
![]() |
a9e87e9d30 | ||
![]() |
5570d3e5b9 | ||
![]() |
07786de039 | ||
![]() |
de1f31e3df | ||
![]() |
b0baa8baa5 | ||
![]() |
d6a7cd3e0d | ||
![]() |
485d9abd1d | ||
![]() |
c17485baa1 | ||
![]() |
e9ef3602dd | ||
![]() |
1b33e83529 | ||
![]() |
486757bfae | ||
![]() |
17ff249150 | ||
![]() |
27d19ba568 | ||
![]() |
482960d056 | ||
![]() |
cf435a8fa8 | ||
![]() |
3a31cc99b3 | ||
![]() |
538b312349 | ||
![]() |
1f8eee4720 | ||
![]() |
5e3785d76e | ||
![]() |
5941195e96 | ||
![]() |
c4cfb8597d | ||
![]() |
c6be621968 | ||
![]() |
6e0787957b | ||
![]() |
d4767b7520 | ||
![]() |
93ebf176c5 | ||
![]() |
895c0f541f | ||
![]() |
40b23cfad4 | ||
![]() |
33114f771a | ||
![]() |
bb24bff296 | ||
![]() |
0640964c35 | ||
![]() |
717e6fcfbe | ||
![]() |
dbcb612517 | ||
![]() |
397b476a82 | ||
![]() |
66f8c18c65 | ||
![]() |
83d3867959 | ||
![]() |
6602fb102d | ||
![]() |
aa82202e70 | ||
![]() |
27d015d58e | ||
![]() |
2f3a2bce77 | ||
![]() |
3c73c0cd3a | ||
![]() |
a4c76c617a | ||
![]() |
b40bc0a2c9 | ||
![]() |
b21c394ea5 | ||
![]() |
cd027b86e7 | ||
![]() |
ad6e1f5ad4 | ||
![]() |
a2c1e8c218 | ||
![]() |
6de5d2d076 | ||
![]() |
721b100fb6 | ||
![]() |
642b4eeedc | ||
![]() |
175b442d5b | ||
![]() |
c99021bb0c | ||
![]() |
2e6e1701a0 | ||
![]() |
c37f4efadf | ||
![]() |
af1d06973b | ||
![]() |
750367a906 | ||
![]() |
95b535764c | ||
![]() |
daf0a0900b | ||
![]() |
e9a5b14a0d | ||
![]() |
3135a03e21 | ||
![]() |
c7f7196471 | ||
![]() |
f0c611d9ed | ||
![]() |
4f681be774 | ||
![]() |
e5b67e044b | ||
![]() |
4cf5757575 | ||
![]() |
9d69cd1912 | ||
![]() |
3749f8ff09 | ||
![]() |
0dff2cd28f | ||
![]() |
3e96fdd9cc | ||
![]() |
45355aabdc | ||
![]() |
defba1f245 | ||
![]() |
943c421889 | ||
![]() |
ca3a73ac13 | ||
![]() |
4c3ca68453 | ||
![]() |
9d06341c91 | ||
![]() |
c116796854 | ||
![]() |
a9dd592a8b | ||
![]() |
58722324ec | ||
![]() |
518224b8cf | ||
![]() |
439fa7f3be | ||
![]() |
7902311c57 | ||
![]() |
1ce37d42cd | ||
![]() |
5b88e92e5c | ||
![]() |
93b51819d4 | ||
![]() |
1708a03e1e | ||
![]() |
59299a6639 | ||
![]() |
98d7c245ee | ||
![]() |
f9b5d7d3f4 | ||
![]() |
d32cb8c95b | ||
![]() |
62a551cfe3 | ||
![]() |
d7475e252a | ||
![]() |
af43472d0c | ||
![]() |
c7e9460b2a | ||
![]() |
31804e30ec | ||
![]() |
ef95b3f9a5 | ||
![]() |
412b371e85 | ||
![]() |
141b84c40d | ||
![]() |
18aec201bf | ||
![]() |
a25d4f8df8 | ||
![]() |
c2aae73ce1 | ||
![]() |
57e1edde23 | ||
![]() |
7987a3914d | ||
![]() |
8c2e8e6979 | ||
![]() |
65fc0419a8 | ||
![]() |
50161f5d79 | ||
![]() |
7c06e22c7d | ||
![]() |
ef05b1a160 | ||
![]() |
862d23cb10 | ||
![]() |
29ae5f5980 | ||
![]() |
4c649577f0 | ||
![]() |
29b1f1ec5f | ||
![]() |
5bd0a277bf | ||
![]() |
238f32e81d | ||
![]() |
8107782fa5 | ||
![]() |
a1d1f97955 | ||
![]() |
3af2684134 | ||
![]() |
71c58442ca | ||
![]() |
cfe19e31d8 | ||
![]() |
0d50615658 | ||
![]() |
ef0eb5f7a0 | ||
![]() |
fdd1f4b7f8 | ||
![]() |
d00235897d | ||
![]() |
6c2e808b9f | ||
![]() |
b44e507900 | ||
![]() |
566cda5e4b | ||
![]() |
5991a23049 | ||
![]() |
fd34baff8f | ||
![]() |
690e8dd826 | ||
![]() |
b6433309fd | ||
![]() |
0cfcdf4f89 | ||
![]() |
0adb9b7c06 | ||
![]() |
e50ad807c0 | ||
![]() |
eb72163d57 | ||
![]() |
a9f238fe04 | ||
![]() |
09fe46adc9 | ||
![]() |
263335f74e | ||
![]() |
9169611645 | ||
![]() |
8227a3dde2 | ||
![]() |
0c0774f6c0 | ||
![]() |
dc470cac1d | ||
![]() |
8a2d432ffe | ||
![]() |
0e3ffa3f11 | ||
![]() |
f401d94d5e | ||
![]() |
ac1378743c | ||
![]() |
eae38e72f3 | ||
![]() |
f3b50a23c9 | ||
![]() |
39d063d494 | ||
![]() |
5572eb897a | ||
![]() |
e04f9cd4c1 | ||
![]() |
65aa910503 | ||
![]() |
870ff88605 | ||
![]() |
769767a96a | ||
![]() |
18d426f521 | ||
![]() |
3280dbd5d5 | ||
![]() |
1bc694fa12 | ||
![]() |
01908d505a | ||
![]() |
e914028be7 | ||
![]() |
40fb14c654 | ||
![]() |
5a255d4831 | ||
![]() |
563a898013 | ||
![]() |
d618f9f35b | ||
![]() |
175945ec9a | ||
![]() |
b0a8544182 | ||
![]() |
7393ba1591 | ||
![]() |
59374ce902 | ||
![]() |
7e2838ec07 | ||
![]() |
0762794ff6 | ||
![]() |
6294729c8e | ||
![]() |
3101035a3f | ||
![]() |
9c918eb431 | ||
![]() |
f70fe308a9 | ||
![]() |
463aa58f28 | ||
![]() |
328840c933 | ||
![]() |
9e91c98cc9 | ||
![]() |
2c356e8b0e | ||
![]() |
2841d789be | ||
![]() |
ac6602ac35 | ||
![]() |
9dbd200be4 | ||
![]() |
cf824ddb24 | ||
![]() |
500568e322 | ||
![]() |
73900b59db | ||
![]() |
43d13b70f1 | ||
![]() |
835376418d | ||
![]() |
ae85fd5b4c | ||
![]() |
433b15f985 | ||
![]() |
af87a84b4f | ||
![]() |
32de5e7c49 | ||
![]() |
e4909b5e28 | ||
![]() |
342caf82b2 | ||
![]() |
b87a18d405 | ||
![]() |
18ed77ecc9 | ||
![]() |
56b28e3826 | ||
![]() |
e61027a40e | ||
![]() |
94dab1b7c5 | ||
![]() |
683110e7f0 | ||
![]() |
1f51d4eeb2 | ||
![]() |
248e094b8e | ||
![]() |
759aee8150 | ||
![]() |
fae586c3c5 | ||
![]() |
e962153f84 | ||
![]() |
40b12f5a2a | ||
![]() |
305467c652 | ||
![]() |
12296c68dc | ||
![]() |
036bcea4e6 | ||
![]() |
81bf7a8f90 | ||
![]() |
ef60c5b153 | ||
![]() |
cea8e75378 | ||
![]() |
84376d23fc | ||
![]() |
a132980023 | ||
![]() |
9212a4e937 | ||
![]() |
23a77d4973 | ||
![]() |
e3a3207a44 | ||
![]() |
be9308e490 | ||
![]() |
4bc12b07b4 | ||
![]() |
9e61e37c17 | ||
![]() |
dfd1c97168 | ||
![]() |
b552b92401 | ||
![]() |
326d82a9be | ||
![]() |
73db68dbf9 | ||
![]() |
f8fa89b245 | ||
![]() |
3456f1c1d7 | ||
![]() |
15c638acad | ||
![]() |
077bc48a26 | ||
![]() |
d8bcec881f | ||
![]() |
0b0683499a | ||
![]() |
e5a38fc856 | ||
![]() |
a5373afc55 | ||
![]() |
e98dc8c4f8 | ||
![]() |
50fa721fd5 | ||
![]() |
ec3038c7bc | ||
![]() |
debd7a7b7a | ||
![]() |
89e816dda6 | ||
![]() |
967f9e257b | ||
![]() |
a25aaf900a | ||
![]() |
6bc039a430 | ||
![]() |
ce60d5615f | ||
![]() |
b0278428a7 | ||
![]() |
8559079312 | ||
![]() |
d102ec1997 | ||
![]() |
c0d140f221 | ||
![]() |
aa34d86598 | ||
![]() |
4f7f820160 | ||
![]() |
fa9091869d | ||
![]() |
725118c575 | ||
![]() |
06f0c27128 | ||
![]() |
6d97408a6d | ||
![]() |
8abc5ae8f0 | ||
![]() |
eab66dad09 | ||
![]() |
6f14d68cdc | ||
![]() |
22b6cee80c | ||
![]() |
b77d1a2b98 | ||
![]() |
ca2179bb6a | ||
![]() |
52aeacb4da | ||
![]() |
9099ecce8a | ||
![]() |
f6a16258a1 | ||
![]() |
e53d24fc48 | ||
![]() |
de6f3ea74a | ||
![]() |
d036094089 | ||
![]() |
0f86fbd8ce | ||
![]() |
9cabaa1bd1 | ||
![]() |
d2d024ebe9 | ||
![]() |
9fbee9fc82 | ||
![]() |
e60ce50d30 | ||
![]() |
e86b2e7f8f | ||
![]() |
1445457626 | ||
![]() |
73979d4342 | ||
![]() |
1c9f33f906 | ||
![]() |
330cf14eab | ||
![]() |
62bb4bc626 | ||
![]() |
886f6095db | ||
![]() |
7969e86071 | ||
![]() |
0318f577ab | ||
![]() |
e2ae93a957 | ||
![]() |
8ec23ed712 | ||
![]() |
6096ed1109 | ||
![]() |
ac41d1cfff | ||
![]() |
3b033ceba2 | ||
![]() |
04d9ca1ebe | ||
![]() |
20454fb811 | ||
![]() |
6bbf176e3b | ||
![]() |
794f6a25fa | ||
![]() |
7e0f1a8701 | ||
![]() |
ee037c01a1 | ||
![]() |
82d401a7de | ||
![]() |
0e661bc688 | ||
![]() |
d144f68d1a | ||
![]() |
05504b9ab2 | ||
![]() |
d96c0633d4 | ||
![]() |
8e40c10c31 | ||
![]() |
f2c9c2f5d1 | ||
![]() |
2b40ea75e9 | ||
![]() |
6f0551b944 | ||
![]() |
aac450f808 | ||
![]() |
30f46790a4 | ||
![]() |
95722d6d79 | ||
![]() |
19f131c742 | ||
![]() |
9694cf0cd1 | ||
![]() |
bdfe764f9d | ||
![]() |
9f135231cc | ||
![]() |
f616da7c06 | ||
![]() |
4397de0138 | ||
![]() |
652a06c8e9 | ||
![]() |
3b8a3f9b83 | ||
![]() |
28b25bda3f | ||
![]() |
ed3336694c | ||
![]() |
3926b91dcf | ||
![]() |
f699eb02a2 | ||
![]() |
9231f05891 | ||
![]() |
4cc1289e89 | ||
![]() |
10c73b326f | ||
![]() |
a16dd8474b | ||
![]() |
cc2b335ee6 | ||
![]() |
6cadc70a96 | ||
![]() |
cda0d26af7 | ||
![]() |
4a5312b3a9 | ||
![]() |
3bf1f26c0b | ||
![]() |
151ca659a9 | ||
![]() |
c9fd2ceb61 | ||
![]() |
721392901b | ||
![]() |
9712b5b4e3 | ||
![]() |
00911df5c1 | ||
![]() |
d536683511 | ||
![]() |
a6e517736b | ||
![]() |
ced02fb9e0 | ||
![]() |
b9dfe70a01 | ||
![]() |
1cbda79981 | ||
![]() |
a077ae54ea | ||
![]() |
1135d34ab3 | ||
![]() |
7200e9bd8c | ||
![]() |
1b6161c2dc | ||
![]() |
88c88187f2 | ||
![]() |
8be21b6eff | ||
![]() |
aa99de68d3 | ||
![]() |
06fbcdac1d | ||
![]() |
fb494c2ba5 | ||
![]() |
7ee1ea2cc7 | ||
![]() |
9c3566f524 | ||
![]() |
d6fc71dba7 | ||
![]() |
f582e54343 | ||
![]() |
d2563ed923 | ||
![]() |
64f8b2eb58 | ||
![]() |
04fb00572f | ||
![]() |
f0a478c7c9 | ||
![]() |
a189956adc | ||
![]() |
3c720a0715 | ||
![]() |
c4965ed838 | ||
![]() |
9f53a0182b | ||
![]() |
8791aecb38 | ||
![]() |
06894d1c98 | ||
![]() |
2d11436432 | ||
![]() |
cac5bbad99 | ||
![]() |
a5eed00eba | ||
![]() |
21efacf1b1 | ||
![]() |
61628c2baf | ||
![]() |
05cf438199 | ||
![]() |
2ccc95f6d4 | ||
![]() |
95286df502 | ||
![]() |
13cc1f0986 | ||
![]() |
9e6facda70 | ||
![]() |
faa9181a6c | ||
![]() |
6d211faf59 | ||
![]() |
b04828f858 | ||
![]() |
d454f36c63 | ||
![]() |
f4da582aa3 | ||
![]() |
9e976474d5 | ||
![]() |
b569fc02a4 | ||
![]() |
a2e26f441b | ||
![]() |
c8be4ac83c | ||
![]() |
24cd70a014 | ||
![]() |
5cec685cf9 | ||
![]() |
821a416fe3 | ||
![]() |
9a387f95e9 | ||
![]() |
fd41acdc72 | ||
![]() |
4afe257a42 | ||
![]() |
d0a59617f6 | ||
![]() |
8f3896c3da | ||
![]() |
1087387b36 | ||
![]() |
0da22c2031 | ||
![]() |
c336b266f6 | ||
![]() |
df80385289 | ||
![]() |
afe3c25a49 | ||
![]() |
f7772fb85a | ||
![]() |
6157e328f4 | ||
![]() |
daee8b900b | ||
![]() |
a4ba6e485d | ||
![]() |
954ff1be41 | ||
![]() |
9a75135633 | ||
![]() |
d29a616142 | ||
![]() |
a2802f352f | ||
![]() |
0b873b765e | ||
![]() |
070bb46a08 | ||
![]() |
6d6e5473f2 | ||
![]() |
cf5f0edbb8 | ||
![]() |
25fd532ce6 | ||
![]() |
39fd125eb0 | ||
![]() |
a3408990ab | ||
![]() |
693b47e623 | ||
![]() |
81a3715c7c | ||
![]() |
abafb1945c | ||
![]() |
f317aaebab | ||
![]() |
d69fe88091 | ||
![]() |
49594ccb22 | ||
![]() |
824d9b82e5 | ||
![]() |
d1119c38b6 | ||
![]() |
fe5c840b79 | ||
![]() |
6e63fc8985 | ||
![]() |
fe0846c8c2 | ||
![]() |
94df2e3d24 | ||
![]() |
41f0b53dd6 | ||
![]() |
73f6d4b26f | ||
![]() |
724435e56e | ||
![]() |
61941da375 | ||
![]() |
22ba7a7c39 | ||
![]() |
9300c208e2 | ||
![]() |
f2db11269e | ||
![]() |
382f1e9ec0 | ||
![]() |
a8bc1144c3 | ||
![]() |
fda3832eaf | ||
![]() |
8219a1e257 | ||
![]() |
cb2fb95b81 | ||
![]() |
c52b1a3fd2 | ||
![]() |
96aa63267a | ||
![]() |
51f7776bc8 | ||
![]() |
9e40ff0551 | ||
![]() |
82c5a93f7c | ||
![]() |
99b0ce7948 | ||
![]() |
4476a477a7 | ||
![]() |
e0696d02a2 | ||
![]() |
b2657bc61f | ||
![]() |
1c2afc1f25 | ||
![]() |
c8385d82fb | ||
![]() |
d229e8b04d | ||
![]() |
fbfdb0fa99 | ||
![]() |
f4d652fa7b | ||
![]() |
69c8e84927 | ||
![]() |
48e1ac4163 | ||
![]() |
99038c7a06 | ||
![]() |
f550fbe07c | ||
![]() |
a33d4cd099 | ||
![]() |
acd60e45d8 | ||
![]() |
5cf9afc215 | ||
![]() |
2b9e174c9d | ||
![]() |
dd1741c4a1 | ||
![]() |
565597c9a2 | ||
![]() |
5ba5a85ad0 | ||
![]() |
ad860063ab | ||
![]() |
9f58266546 | ||
![]() |
8f2ec75f81 | ||
![]() |
98580bb39a | ||
![]() |
2de3a79599 | ||
![]() |
f34b9d7c45 | ||
![]() |
5f10cc8bcf | ||
![]() |
41a3bf92fb | ||
![]() |
f31dc8aebc | ||
![]() |
b02230a783 | ||
![]() |
fc792ff232 | ||
![]() |
fe20f3240e | ||
![]() |
275a4ffc11 | ||
![]() |
b7796a5334 | ||
![]() |
05c1711b16 | ||
![]() |
e48115588c | ||
![]() |
cad8d85755 | ||
![]() |
e198447866 | ||
![]() |
b316352ede | ||
![]() |
c815304026 | ||
![]() |
641e98e577 | ||
![]() |
e0cd9579d6 | ||
![]() |
bbe64a0b79 | ||
![]() |
ae24a97d4d | ||
![]() |
a735857852 | ||
![]() |
4efa293f3b | ||
![]() |
bfca98ea89 | ||
![]() |
eb82884fb2 | ||
![]() |
12e006ef9c | ||
![]() |
2f716050d1 | ||
![]() |
1bb843ec38 | ||
![]() |
dddac1dc40 | ||
![]() |
5867b1b014 | ||
![]() |
9b589bc311 | ||
![]() |
8d01fc2d35 | ||
![]() |
8a28c1bc38 | ||
![]() |
0f1119f326 | ||
![]() |
547757f451 | ||
![]() |
7b9fe44a20 | ||
![]() |
62ea4dc176 | ||
![]() |
677f75ae8e | ||
![]() |
06f13bb766 | ||
![]() |
f3800a4e2b | ||
![]() |
132b41ae73 | ||
![]() |
4694268b8f | ||
![]() |
8f7768ce96 | ||
![]() |
0c031a29d3 | ||
![]() |
1122b3402c | ||
![]() |
c002bd62e8 | ||
![]() |
d89d7e8ef8 | ||
![]() |
015dcc4212 | ||
![]() |
de4f4be947 | ||
![]() |
965c8641fd | ||
![]() |
a9886a3119 | ||
![]() |
5cbdf3c126 | ||
![]() |
ab8b6da484 | ||
![]() |
493576836c | ||
![]() |
7fba04d148 | ||
![]() |
7dba3fb7be | ||
![]() |
d9ac01ba5c | ||
![]() |
ecaa024f22 | ||
![]() |
357ea5deab | ||
![]() |
0a018bdebc | ||
![]() |
0b81316300 | ||
![]() |
03ed546cd8 | ||
![]() |
57fc487e5e | ||
![]() |
a5206bde33 | ||
![]() |
0f0d9ca2a4 | ||
![]() |
6b76373395 | ||
![]() |
af6c6971a7 | ||
![]() |
e013070e0b | ||
![]() |
a5cc1774f2 | ||
![]() |
808e72f24b | ||
![]() |
2d1d1b246f | ||
![]() |
d8f5376c4f | ||
![]() |
cf84762a3a | ||
![]() |
f2958bbfa5 | ||
![]() |
bc8f9edc31 | ||
![]() |
b23d167342 | ||
![]() |
02d6f67741 | ||
![]() |
d13d1aa7ec | ||
![]() |
a1f898e3b3 | ||
![]() |
c3dd178b19 | ||
![]() |
ef44ecea44 | ||
![]() |
3bc1765dbb | ||
![]() |
6b73e6c2a9 | ||
![]() |
37a7abdf0c | ||
![]() |
eb3e0b9292 | ||
![]() |
c0924321b8 | ||
![]() |
d148a769b7 | ||
![]() |
6d7cf3c12a | ||
![]() |
f7831db197 | ||
![]() |
5bdd7b8475 | ||
![]() |
44a15cd97d | ||
![]() |
c0f98b05b6 | ||
![]() |
1e1613aa93 | ||
![]() |
7c7b4b24b4 | ||
![]() |
38783faf60 | ||
![]() |
ad9d913902 | ||
![]() |
02090da08c | ||
![]() |
ba13657d89 | ||
![]() |
b16c99ab62 | ||
![]() |
139b10a9aa | ||
![]() |
6c54e35027 | ||
![]() |
4509a5fc95 | ||
![]() |
4231155efa | ||
![]() |
8037ce52f9 | ||
![]() |
185bfe7497 | ||
![]() |
64e41b113c | ||
![]() |
1855fa08b1 | ||
![]() |
f0e2a82b55 | ||
![]() |
314e5b490c | ||
![]() |
08619d6a73 | ||
![]() |
3048e0ac76 | ||
![]() |
5a6cd4c2ab | ||
![]() |
071b984a1e | ||
![]() |
011e55e3e5 | ||
![]() |
0efee2f50f | ||
![]() |
18a06935e0 | ||
![]() |
66e6371221 | ||
![]() |
0d78ecaee3 | ||
![]() |
3ba8fe586e | ||
![]() |
186f6015da | ||
![]() |
6aa55698ab | ||
![]() |
9cafd78fe2 | ||
![]() |
fa53848b5c | ||
![]() |
4f7973bc56 | ||
![]() |
ed7c09fc46 | ||
![]() |
a90cd43631 | ||
![]() |
862bf6b5ab | ||
![]() |
dc8d9eece3 | ||
![]() |
1199871d7b | ||
![]() |
128bb01b35 | ||
![]() |
df0f9d3267 | ||
![]() |
86f91e3030 | ||
![]() |
3f1304403f | ||
![]() |
e8f8dcd0fb | ||
![]() |
70a86fa994 | ||
![]() |
71060f1f53 | ||
![]() |
74afcc9c63 | ||
![]() |
bc02c72018 | ||
![]() |
db0503e71d | ||
![]() |
abf72c2ee4 | ||
![]() |
f138cf0f78 | ||
![]() |
a94f2a3f46 | ||
![]() |
8daf97ab01 | ||
![]() |
94c0e26a08 | ||
![]() |
5b36599c0c | ||
![]() |
e15596e7af | ||
![]() |
f64a869bfd | ||
![]() |
c86c83cef7 | ||
![]() |
971ff687b1 | ||
![]() |
9fce67fcd9 | ||
![]() |
40fd8cb608 | ||
![]() |
4aa645f29f | ||
![]() |
2b7aeedb4a | ||
![]() |
0d9e9780da | ||
![]() |
00f9ab4394 | ||
![]() |
55709b3aa0 | ||
![]() |
b0dd967611 | ||
![]() |
269fada14a | ||
![]() |
0810c1ce3c | ||
![]() |
37b4ab15a8 | ||
![]() |
79f398d219 | ||
![]() |
c90ada3c39 | ||
![]() |
34bf297bd1 | ||
![]() |
d5fc9f6201 | ||
![]() |
7fa597deca | ||
![]() |
f70a034da2 | ||
![]() |
f055fe5da2 | ||
![]() |
99f2edd4f6 | ||
![]() |
039de1dc9b | ||
![]() |
dcaafa6c8b | ||
![]() |
5a73817a95 | ||
![]() |
dfaea492c7 | ||
![]() |
69c895af09 | ||
![]() |
36850f89fb | ||
![]() |
c9ea7a4dca | ||
![]() |
e83c1d7ed6 | ||
![]() |
befd21e0c0 | ||
![]() |
c4e21ca5f4 | ||
![]() |
feab1432f9 | ||
![]() |
dc04040cb3 | ||
![]() |
2634dbff2b | ||
![]() |
f2ad8383cf | ||
![]() |
dd15823a97 | ||
![]() |
83e13bb62d | ||
![]() |
0d7af9707f | ||
![]() |
04d27a10b0 | ||
![]() |
7963f811e1 | ||
![]() |
82bd9138de | ||
![]() |
c2b3ff5243 | ||
![]() |
c8b9f5a917 | ||
![]() |
3b614f3753 | ||
![]() |
4e4df5dd7c | ||
![]() |
a51674410c | ||
![]() |
8d58077d68 | ||
![]() |
5b85a0b34d | ||
![]() |
7757080519 | ||
![]() |
20f804f19c | ||
![]() |
a1e00be0e0 | ||
![]() |
5bb357cac0 | ||
![]() |
7309445ee5 | ||
![]() |
f09d97fc9e | ||
![]() |
64c8c7a8d5 | ||
![]() |
9682b51d54 | ||
![]() |
a40b9bc095 | ||
![]() |
2c1a3da433 | ||
![]() |
4e96ffaabb | ||
![]() |
df5f3e8056 | ||
![]() |
72f6e6bb9c | ||
![]() |
3bc831a1f7 | ||
![]() |
fd1f38b2eb | ||
![]() |
79f9c1fb3a | ||
![]() |
2de5ab4120 | ||
![]() |
5a96616b39 | ||
![]() |
ad079ac5cc | ||
![]() |
be023c7722 | ||
![]() |
e1f413c1ee | ||
![]() |
f2ea1abc9b | ||
![]() |
95d1cfb4a0 | ||
![]() |
24b4d59ce4 | ||
![]() |
4482f1841c | ||
![]() |
c5167c8f0d | ||
![]() |
2571bbf315 | ||
![]() |
aa17087883 | ||
![]() |
d203e539aa | ||
![]() |
4ebab940c7 | ||
![]() |
ad010ef5b4 | ||
![]() |
826e76d037 | ||
![]() |
3130a39d8c | ||
![]() |
18a2d814cc | ||
![]() |
36f3c30440 | ||
![]() |
4fda9d2e84 | ||
![]() |
4219347f0a | ||
![]() |
e72f79236b | ||
![]() |
dea0d9a78a | ||
![]() |
017ae18ad7 | ||
![]() |
65e3c14643 | ||
![]() |
40e536a9be | ||
![]() |
51decff2fd | ||
![]() |
52b6e92e00 | ||
![]() |
1900c1ab07 | ||
![]() |
76e3a3c5f9 | ||
![]() |
d4494fd3c3 | ||
![]() |
949c163370 | ||
![]() |
4a19fbae0b | ||
![]() |
c75f80b29f | ||
![]() |
0544657123 | ||
![]() |
42be631023 | ||
![]() |
55ba5d4832 | ||
![]() |
eab5d7d4ec | ||
![]() |
811d1cd0dd | ||
![]() |
5a75bcfb19 | ||
![]() |
93437952b4 | ||
![]() |
f32b543887 | ||
![]() |
4946f85d43 | ||
![]() |
56b90eecbf | ||
![]() |
817ca116f6 | ||
![]() |
3178677584 | ||
![]() |
d9b5d770cf | ||
![]() |
dcead44cc6 | ||
![]() |
f6bf69b41f | ||
![]() |
2e64d89b04 | ||
![]() |
19eceaa810 | ||
![]() |
a187d23c41 | ||
![]() |
fbd9e5d017 | ||
![]() |
97054b2b10 | ||
![]() |
978e3e4abd | ||
![]() |
0242c04dc2 | ||
![]() |
d1b5a3ffd5 | ||
![]() |
48adb44c6f | ||
![]() |
b6d53f698d | ||
![]() |
04b210ee88 | ||
![]() |
5e73f78ed9 | ||
![]() |
8e66a41778 | ||
![]() |
7dc99d54c0 | ||
![]() |
2a602e78d6 | ||
![]() |
ceffd2b3ee | ||
![]() |
cdd66ee376 | ||
![]() |
c33a3d9aad | ||
![]() |
d71ac03d96 | ||
![]() |
8326aecdb4 | ||
![]() |
b85d48eb83 | ||
![]() |
07540db90d | ||
![]() |
f8913ceb2e | ||
![]() |
43bd789c30 | ||
![]() |
cd216095eb | ||
![]() |
ac224b270a | ||
![]() |
07882f61a8 | ||
![]() |
9f063584c1 | ||
![]() |
3e604618a8 | ||
![]() |
3ee4be652b | ||
![]() |
1abac794b5 | ||
![]() |
5a583ca48c | ||
![]() |
229032d691 | ||
![]() |
1049298e7b | ||
![]() |
76e684cc0a | ||
![]() |
a768f1f1eb | ||
![]() |
bb14a05852 | ||
![]() |
44906e8f39 | ||
![]() |
5ed2a5ce4a | ||
![]() |
bb1161986b | ||
![]() |
b7cddd6e55 | ||
![]() |
fc8e201e84 | ||
![]() |
90a88225a4 | ||
![]() |
13b4ddbb62 | ||
![]() |
b298d152fc | ||
![]() |
3d4b04fddc | ||
![]() |
e90f62eaab | ||
![]() |
604d839537 | ||
![]() |
c975c3c0ff | ||
![]() |
f2c23a2831 | ||
![]() |
7d576842fb | ||
![]() |
7cff267002 | ||
![]() |
928cdb81d4 | ||
![]() |
39fed058f4 | ||
![]() |
a330a9fd75 | ||
![]() |
8bf5ff82be | ||
![]() |
92a6ecc40a | ||
![]() |
1123d23114 | ||
![]() |
91c445244c | ||
![]() |
88f396264c | ||
![]() |
b5ba03247a | ||
![]() |
f487752ba1 | ||
![]() |
88cd5a905d | ||
![]() |
d9f10c221a | ||
![]() |
99355c6169 | ||
![]() |
ca9603af17 | ||
![]() |
5f4222c1c3 | ||
![]() |
e5d989af5a | ||
![]() |
8557e0963e | ||
![]() |
b7e2d49f5f | ||
![]() |
5d71217e59 | ||
![]() |
6a22351d29 | ||
![]() |
b7c52800f4 | ||
![]() |
a2f811aff0 | ||
![]() |
ee6716e178 | ||
![]() |
3317332cb4 | ||
![]() |
42c802cd1e | ||
![]() |
5320c11f3f | ||
![]() |
1f489719ef | ||
![]() |
9dda6f69a7 | ||
![]() |
89381fe7ab | ||
![]() |
f0857fd560 | ||
![]() |
f3b40f12cb | ||
![]() |
d2e8a6dad3 | ||
![]() |
e7aafd64d4 | ||
![]() |
ee15f749bb | ||
![]() |
d521662d04 | ||
![]() |
0e80acf38d | ||
![]() |
a1c3b87fce | ||
![]() |
f6d1346e2b | ||
![]() |
9a649ddd09 | ||
![]() |
11382881b5 | ||
![]() |
5182d7502b | ||
![]() |
555d83792d | ||
![]() |
a88c0a3ad2 | ||
![]() |
316282952f | ||
![]() |
a7629b98cf | ||
![]() |
7112eac3be | ||
![]() |
f80b5fe376 | ||
![]() |
ce0babce21 | ||
![]() |
fa0804b7ae | ||
![]() |
70cbe4daaa | ||
![]() |
36f2acb93f | ||
![]() |
9b9e9ce1c0 | ||
![]() |
3731716a49 | ||
![]() |
eec87a0508 | ||
![]() |
f3286cf440 | ||
![]() |
eb90d38d8c | ||
![]() |
f440209738 | ||
![]() |
7f03c2b137 | ||
![]() |
c85db586ca | ||
![]() |
7c0ea4324a | ||
![]() |
b29b626b41 | ||
![]() |
6198ae317c | ||
![]() |
245fad0986 | ||
![]() |
619f1705e1 | ||
![]() |
52fa7db087 | ||
![]() |
8a592c2e37 | ||
![]() |
3c183294cd | ||
![]() |
e689f38ad0 | ||
![]() |
6675a2e931 | ||
![]() |
4288e10554 | ||
![]() |
b0181af099 | ||
![]() |
28cb53341d | ||
![]() |
f70f36e6cf | ||
![]() |
479ab61a1d | ||
![]() |
84ca0ac8a0 | ||
![]() |
1696c37251 | ||
![]() |
e7d30955e8 | ||
![]() |
975a017dec | ||
![]() |
8eb4607a0e | ||
![]() |
f1da0ce746 | ||
![]() |
26826e8398 | ||
![]() |
a423b85f81 | ||
![]() |
233fa4625b | ||
![]() |
3ebe8cf4de | ||
![]() |
24d2e26397 | ||
![]() |
fcba70df2e | ||
![]() |
a05bd3dd0e | ||
![]() |
41077c94fb | ||
![]() |
ef69e512bd | ||
![]() |
d5cb7ecec9 | ||
![]() |
1120d0652d | ||
![]() |
45ce0ff74d | ||
![]() |
b81a991731 | ||
![]() |
292a5c3a8a | ||
![]() |
bb57b1a289 | ||
![]() |
4f6f45fb39 | ||
![]() |
181a642479 | ||
![]() |
84fd41931c | ||
![]() |
33d97a2560 | ||
![]() |
c409e3221e | ||
![]() |
f472ce690a | ||
![]() |
90f2b5e11c | ||
![]() |
167683ce76 | ||
![]() |
05e9accf64 | ||
![]() |
e065f85c88 | ||
![]() |
f0ee470ecd | ||
![]() |
e257f2a380 | ||
![]() |
27b3ba8bdf | ||
![]() |
ed11c68ac6 | ||
![]() |
6f4bf57ff2 | ||
![]() |
6dec5cb1d6 | ||
![]() |
bc768aa196 | ||
![]() |
c069c73109 | ||
![]() |
abc3592734 | ||
![]() |
59a5fea25d | ||
![]() |
ac63b0eb3d | ||
![]() |
ef3f157573 | ||
![]() |
ae2c1c5a7a | ||
![]() |
43375fa1f4 | ||
![]() |
d543825d85 | ||
![]() |
dd43ab634d | ||
![]() |
645ee814e4 | ||
![]() |
13a4f37e50 | ||
![]() |
2d45241084 | ||
![]() |
e96e6aa38e | ||
![]() |
fa820e8978 | ||
![]() |
358e4226f1 | ||
![]() |
81ad786dfc | ||
![]() |
ab56b7ca0c | ||
![]() |
29aaf13c13 | ||
![]() |
8a6baea990 | ||
![]() |
609c8c0697 | ||
![]() |
94a326ec7f | ||
![]() |
b610cdcbcd | ||
![]() |
0c56d3d9d2 | ||
![]() |
63599a09d7 | ||
![]() |
25760f7024 | ||
![]() |
be990188f5 | ||
![]() |
07b3ce0bcd | ||
![]() |
4e28ace103 | ||
![]() |
b11a336b4f | ||
![]() |
b0b73db3c8 | ||
![]() |
cf003dfad8 | ||
![]() |
c921d4e915 | ||
![]() |
39676395f8 | ||
![]() |
1f38fcfefa | ||
![]() |
d66a9bac55 | ||
![]() |
6ab400c9d9 | ||
![]() |
9d23717b6d | ||
![]() |
6511dac1d4 | ||
![]() |
0c10b3f038 | ||
![]() |
a815c9b986 | ||
![]() |
5d4d04a2eb | ||
![]() |
2d465c6249 | ||
![]() |
b756314eb8 | ||
![]() |
014a28ba07 | ||
![]() |
ec01c1a996 | ||
![]() |
3dc406f138 | ||
![]() |
40e940ec58 | ||
![]() |
f4fd0f9012 | ||
![]() |
a8e4121bef | ||
![]() |
9184e6bb92 | ||
![]() |
89168ef40c | ||
![]() |
d6d79e96c9 | ||
![]() |
15d0ee1008 | ||
![]() |
2d40bbc8fe | ||
![]() |
48a68ba237 | ||
![]() |
434cfb427f | ||
![]() |
76ca8a27f9 | ||
![]() |
2cf105700a | ||
![]() |
61f63255ac | ||
![]() |
5c6db28881 | ||
![]() |
8a34d6c067 | ||
![]() |
ed5f8be9eb | ||
![]() |
7a4212dd76 | ||
![]() |
1137e6c910 | ||
![]() |
8c3204a5e4 | ||
![]() |
65c29f493b | ||
![]() |
56c7c57b3a | ||
![]() |
b87d9eb865 | ||
![]() |
a482008650 | ||
![]() |
7bda2ad3e8 | ||
![]() |
11d0bb2c00 | ||
![]() |
c506652187 | ||
![]() |
b3d85f115c | ||
![]() |
6faa050dd8 | ||
![]() |
ad5d0d4b12 | ||
![]() |
87c4e77c01 | ||
![]() |
3867acf723 | ||
![]() |
d769099db1 | ||
![]() |
7fa6946694 | ||
![]() |
f3b84e15be | ||
![]() |
96d6ca7ae0 | ||
![]() |
8367b27a0d | ||
![]() |
da0fc9f5bd | ||
![]() |
5b11eecaec | ||
![]() |
e81dd6cd25 | ||
![]() |
938b87d26c | ||
![]() |
0b1310a219 | ||
![]() |
2fd302f580 | ||
![]() |
921bc3e867 | ||
![]() |
080abe574b | ||
![]() |
5689c07f97 | ||
![]() |
8e2db269b0 | ||
![]() |
a07af63155 | ||
![]() |
1d22ebde08 | ||
![]() |
539156c0da | ||
![]() |
02f44459ad | ||
![]() |
abbaea582d | ||
![]() |
ab89d0e06e | ||
![]() |
2e833b40a1 | ||
![]() |
3777ecba85 | ||
![]() |
e0ded5e69d | ||
![]() |
996c6af2d8 | ||
![]() |
4fca8f4225 | ||
![]() |
fa579cad89 | ||
![]() |
c9107bb044 | ||
![]() |
b7bb24f984 | ||
![]() |
2bd9cc5bc1 | ||
![]() |
2456fed361 | ||
![]() |
c0b5fea680 | ||
![]() |
c1b87d250c | ||
![]() |
91aedb234a | ||
![]() |
368ad8e636 | ||
![]() |
d8bf40f7a2 | ||
![]() |
166a6863a1 | ||
![]() |
20596488be | ||
![]() |
1e19c2cbad | ||
![]() |
b0630f58c1 | ||
![]() |
dde01f3663 | ||
![]() |
6e0926eece | ||
![]() |
51a5f68c76 | ||
![]() |
83800fcb4f | ||
![]() |
822cf64618 | ||
![]() |
bb2f0a3c44 | ||
![]() |
c3a822af0e | ||
![]() |
227871c12c | ||
![]() |
c09f4da192 | ||
![]() |
01fee8a7b4 | ||
![]() |
f675f8da0d | ||
![]() |
d0daf75db3 | ||
![]() |
8bcf7e3c23 | ||
![]() |
2cc3c6c59c | ||
![]() |
10932bb5d8 | ||
![]() |
c88e95ce33 | ||
![]() |
06034d2e4f | ||
![]() |
059ebb212d | ||
![]() |
c0304ec029 | ||
![]() |
d5271d6250 | ||
![]() |
d31c17ea04 | ||
![]() |
41d116aa2f | ||
![]() |
e83ba18553 | ||
![]() |
53ab93d8f6 | ||
![]() |
bb121e52bb | ||
![]() |
42ab341a58 | ||
![]() |
d37b19fb6b | ||
![]() |
0367250dc7 | ||
![]() |
c1df2fd601 | ||
![]() |
c2b20603fd | ||
![]() |
999a82ed94 | ||
![]() |
2860560edb | ||
![]() |
450ff378b0 | ||
![]() |
b8e82fffca | ||
![]() |
78a4fad667 | ||
![]() |
8da3b9c40c | ||
![]() |
7cf51a1b43 | ||
![]() |
4b7053a635 | ||
![]() |
779ad24b57 | ||
![]() |
d45ba826bc | ||
![]() |
b3d4314a06 | ||
![]() |
3387725017 | ||
![]() |
ec68ee6ded | ||
![]() |
014d10b977 | ||
![]() |
62dcdcf764 | ||
![]() |
f463750920 | ||
![]() |
14abfbfccd | ||
![]() |
37a5264696 | ||
![]() |
7ac45acd0f | ||
![]() |
114a37fcd3 | ||
![]() |
1eeb32b7b9 | ||
![]() |
c5accc5ad1 | ||
![]() |
f9ebc3cfa8 | ||
![]() |
28687092ef | ||
![]() |
d67d3c1d7d | ||
![]() |
7fa64d6842 | ||
![]() |
14c7239681 | ||
![]() |
73913ea5af | ||
![]() |
a7015f4ddf | ||
![]() |
929f49f333 | ||
![]() |
75beb52bd5 | ||
![]() |
58b622f0fe | ||
![]() |
f81714be50 | ||
![]() |
d67845fea8 | ||
![]() |
98f753d8ff | ||
![]() |
6d7a782624 | ||
![]() |
421f03ae9e | ||
![]() |
ad1e722879 | ||
![]() |
a806c782d7 | ||
![]() |
4601e106c4 | ||
![]() |
39b35ef9ac | ||
![]() |
73963a9e68 | ||
![]() |
d05c101721 | ||
![]() |
36454c2dbf | ||
![]() |
e06b173a1b | ||
![]() |
97722d1926 | ||
![]() |
497b5b4544 | ||
![]() |
6f695902fb | ||
![]() |
d7222b5678 | ||
![]() |
e5255a630a | ||
![]() |
d419898ee4 | ||
![]() |
09e6af5c08 | ||
![]() |
caf0099064 | ||
![]() |
487f63bb01 | ||
![]() |
f59f959a8d | ||
![]() |
ae113442a1 | ||
![]() |
bb6b509d06 | ||
![]() |
e5d7ab7082 | ||
![]() |
23b936b573 | ||
![]() |
95487346db | ||
![]() |
2872c2ab52 | ||
![]() |
6033de7815 | ||
![]() |
daa30d4e78 | ||
![]() |
2319458e9f | ||
![]() |
cdfc175953 | ||
![]() |
ae4d4989b0 | ||
![]() |
d500205f55 | ||
![]() |
92669dba18 | ||
![]() |
ff8451469a | ||
![]() |
272a33fe2c | ||
![]() |
7d5246693c | ||
![]() |
82da4ed18f | ||
![]() |
a6bee1493d | ||
![]() |
1095949523 | ||
![]() |
053142cdb5 | ||
![]() |
73f6523e09 | ||
![]() |
0c5b1e9f57 | ||
![]() |
c1c04b4619 | ||
![]() |
bfe6b88839 | ||
![]() |
ca764d8de0 | ||
![]() |
1660aaa6dd | ||
![]() |
bfd78a2c06 | ||
![]() |
c3ebb9160f | ||
![]() |
59e90ff122 | ||
![]() |
8531fbf99d | ||
![]() |
73f1e23332 | ||
![]() |
39314b2912 | ||
![]() |
bb831d57bc | ||
![]() |
c77a2a78bc | ||
![]() |
c4a1094760 | ||
![]() |
465775c9dc | ||
![]() |
1fafb5f53b | ||
![]() |
27aa5231e2 | ||
![]() |
a72bbb1883 | ||
![]() |
24d6a93eac | ||
![]() |
2b237039cf | ||
![]() |
8f31e5d1d1 | ||
![]() |
c410890a8a | ||
![]() |
4e93b4d37e | ||
![]() |
a47922ad28 | ||
![]() |
33df16af80 | ||
![]() |
d0779a96fc | ||
![]() |
74858d257b | ||
![]() |
f572332108 | ||
![]() |
57b5b2145c | ||
![]() |
79156262c9 | ||
![]() |
dabcaf22e1 | ||
![]() |
fe0cc10890 | ||
![]() |
48089e5ba4 | ||
![]() |
40ec791774 | ||
![]() |
ef1ef9917d | ||
![]() |
61ef9bd59f | ||
![]() |
6aa9a9472f | ||
![]() |
3b844eaab2 | ||
![]() |
73d2c9d921 | ||
![]() |
adfdac6dea | ||
![]() |
1df2cfd1ad | ||
![]() |
fede41e6e0 | ||
![]() |
52c46e4706 | ||
![]() |
dc41a58102 | ||
![]() |
1b8500cc22 | ||
![]() |
277749f27b | ||
![]() |
eb8535fe87 | ||
![]() |
26b2c9727f | ||
![]() |
d5c1650341 | ||
![]() |
ca19d78d48 | ||
![]() |
d018bdaf73 | ||
![]() |
780dc8eec9 | ||
![]() |
fa2e30f512 | ||
![]() |
da389d6682 | ||
![]() |
28381e81d4 | ||
![]() |
f0511635a9 | ||
![]() |
18d67dbc53 | ||
![]() |
1b287a6430 | ||
![]() |
92ff868ece | ||
![]() |
b8ba608535 | ||
![]() |
949edf3e17 | ||
![]() |
1c0e071948 | ||
![]() |
5d47f5f74c | ||
![]() |
435c689cf9 | ||
![]() |
c20d588d78 | ||
![]() |
8f03ce049a | ||
![]() |
b342ce930e | ||
![]() |
e5f8004a94 | ||
![]() |
69af8be7b8 | ||
![]() |
67bdd58bf2 | ||
![]() |
01b82bf0f0 | ||
![]() |
973f117aa6 | ||
![]() |
e783ddc71e | ||
![]() |
95187bd357 | ||
![]() |
3bd87d019f | ||
![]() |
148a050468 | ||
![]() |
82e7863d5b | ||
![]() |
aebca1b3dc | ||
![]() |
1144b39e5e | ||
![]() |
c29b21c08a | ||
![]() |
ed8ce9a7d0 | ||
![]() |
d34fe21963 | ||
![]() |
7a448e01a1 | ||
![]() |
32fdcf522b | ||
![]() |
036f518ddc | ||
![]() |
0e2fae2b69 | ||
![]() |
e06405c7be | ||
![]() |
1b97d9cb76 | ||
![]() |
26be74bfe5 | ||
![]() |
92c543e71f | ||
![]() |
d4161b2748 | ||
![]() |
1ce7b27297 | ||
![]() |
aae4fdcffd | ||
![]() |
8b584c570a | ||
![]() |
a1f752ad00 | ||
![]() |
f5e0c1742a | ||
![]() |
42e24f3c24 | ||
![]() |
52aaac9b6d | ||
![]() |
619bb3cf4d | ||
![]() |
2a8504cf1b | ||
![]() |
af8b211c23 | ||
![]() |
0b0cda8f8f | ||
![]() |
e9cd5d934b | ||
![]() |
1c51d15649 | ||
![]() |
4b0cd53fee | ||
![]() |
9ab81d4581 | ||
![]() |
19439033de | ||
![]() |
fc202ede16 | ||
![]() |
6d3a08a936 | ||
![]() |
87e5f49f8d | ||
![]() |
6eba53767f | ||
![]() |
81c15e88af | ||
![]() |
8a072437cc | ||
![]() |
4d937f551f | ||
![]() |
924077e04c | ||
![]() |
db301dfd7f | ||
![]() |
73d2ada0de | ||
![]() |
67eaf8c916 | ||
![]() |
72908d6b0d | ||
![]() |
43ea4dbb83 | ||
![]() |
295811a88f | ||
![]() |
e5d85d69ef | ||
![]() |
af8ff65f84 | ||
![]() |
cfae7de6a8 | ||
![]() |
83519a58c7 | ||
![]() |
024d52a67e | ||
![]() |
29253004b6 | ||
![]() |
6f19af1542 | ||
![]() |
38cdf2722b | ||
![]() |
adca1ebdf6 | ||
![]() |
d7dd188651 | ||
![]() |
55d16e1602 | ||
![]() |
fcaec49675 | ||
![]() |
995e4ba7fa | ||
![]() |
5c43197f10 | ||
![]() |
6e8f584d88 | ||
![]() |
2bdda9d0a0 | ||
![]() |
3910e4ee15 | ||
![]() |
9fd8e1c9b0 | ||
![]() |
616fe857f7 | ||
![]() |
7e2efe0155 | ||
![]() |
2d37e3a1af | ||
![]() |
78a9956b73 | ||
![]() |
7651308787 | ||
![]() |
4a3ed17160 | ||
![]() |
bb0307290b | ||
![]() |
2677db34ba | ||
![]() |
93efa506da | ||
![]() |
0051a6935a | ||
![]() |
b0a0004a85 | ||
![]() |
4f6f588fb5 | ||
![]() |
356232677a | ||
![]() |
4172232eb7 | ||
![]() |
060d7d890a | ||
![]() |
96026a5e90 | ||
![]() |
c72567dbd2 | ||
![]() |
03276fbec5 | ||
![]() |
d62bbaab82 | ||
![]() |
fb0540650c | ||
![]() |
64e9f0016a | ||
![]() |
bd31b4085c | ||
![]() |
d16d9a5455 | ||
![]() |
ac0c492663 | ||
![]() |
49902b8c56 | ||
![]() |
bb3a3178f1 | ||
![]() |
f5b0e4b5b8 | ||
![]() |
a67d1754d4 | ||
![]() |
6257bfa926 | ||
![]() |
1b09d56718 | ||
![]() |
a4e18a2ae8 | ||
![]() |
1a10293b04 | ||
![]() |
e2810f348b | ||
![]() |
3c64ec8f91 | ||
![]() |
be8c10496f | ||
![]() |
8b104f544a | ||
![]() |
224ae730c1 | ||
![]() |
db43cedcfd | ||
![]() |
ef2b067c03 | ||
![]() |
08adf4a07d | ||
![]() |
7d73b3ffa0 | ||
![]() |
8676beef90 | ||
![]() |
582492d6d8 | ||
![]() |
2bf0e7471c | ||
![]() |
2aea74bd71 | ||
![]() |
6376bbff80 | ||
![]() |
3756016f42 | ||
![]() |
50bdd097df | ||
![]() |
4fadaad8c0 | ||
![]() |
6607c1e4bd | ||
![]() |
0492f28aa1 | ||
![]() |
240ec7672a | ||
![]() |
8eae635668 | ||
![]() |
5e3338f8d3 | ||
![]() |
bb3e65f7a8 | ||
![]() |
c94281121e | ||
![]() |
3599e8e2da | ||
![]() |
82f3961a71 | ||
![]() |
5a65c35479 | ||
![]() |
f03c7978c7 | ||
![]() |
b3e34f7f43 | ||
![]() |
7e128636b3 | ||
![]() |
3ebe9e7c53 | ||
![]() |
257cef24ba | ||
![]() |
0f86ffef04 | ||
![]() |
74e39cbf69 | ||
![]() |
0f3dbfc4a1 | ||
![]() |
eff5af0318 | ||
![]() |
419f1d89c2 | ||
![]() |
30d1ce36af | ||
![]() |
70a1eb25a5 | ||
![]() |
97d8db3f74 | ||
![]() |
0305baf211 | ||
![]() |
d87bee37f7 | ||
![]() |
809930c021 | ||
![]() |
5bd59991cb | ||
![]() |
6e759f9196 | ||
![]() |
e2afd00627 | ||
![]() |
3ba3b37187 | ||
![]() |
1d35bdf291 | ||
![]() |
41734ec523 | ||
![]() |
e8ea94325b | ||
![]() |
a67007f4b7 | ||
![]() |
0c4a7207e4 | ||
![]() |
a1819e8cab | ||
![]() |
3382192b89 | ||
![]() |
2e8e3c07c4 | ||
![]() |
7f30d70295 | ||
![]() |
83c0be5177 | ||
![]() |
4db7d6be64 | ||
![]() |
3120ff3ec9 | ||
![]() |
af3244741d | ||
![]() |
d9aaf59105 | ||
![]() |
b0b7f569ee | ||
![]() |
f2595cc254 | ||
![]() |
9622f28e25 | ||
![]() |
480f74cab6 | ||
![]() |
6757104aa4 | ||
![]() |
126c31c37d | ||
![]() |
14d13fb03e | ||
![]() |
611fbe2c61 | ||
![]() |
0e8ea5eb72 | ||
![]() |
ddd62c1eef | ||
![]() |
468d8b600d | ||
![]() |
b5cee63999 | ||
![]() |
94627f0875 | ||
![]() |
79876f7b12 | ||
![]() |
3066b5ad97 | ||
![]() |
353e74fb5f | ||
![]() |
a258f35f38 | ||
![]() |
a4d7e46141 | ||
![]() |
c5097ed599 | ||
![]() |
b2b614ed2a | ||
![]() |
5bd267d774 | ||
![]() |
11cdce02a0 | ||
![]() |
f73c55f16c | ||
![]() |
261ef85c14 | ||
![]() |
c031f22995 | ||
![]() |
b09cc0de6a | ||
![]() |
704f0500ba | ||
![]() |
36a471ebce | ||
![]() |
318ab570aa | ||
![]() |
cf07e977bd | ||
![]() |
fe27483886 | ||
![]() |
28a326a8a1 | ||
![]() |
0ef35f8770 | ||
![]() |
abae787186 | ||
![]() |
581e31af81 | ||
![]() |
dfe9b0f6c7 | ||
![]() |
211769dc65 | ||
![]() |
7952139731 | ||
![]() |
bb72c1278d | ||
![]() |
f4843b1deb | ||
![]() |
c1e0bb8310 | ||
![]() |
b06d4ca299 | ||
![]() |
3f656be574 | ||
![]() |
881d695bff | ||
![]() |
3adb2c92d9 | ||
![]() |
58560138cd | ||
![]() |
06ffd5d220 | ||
![]() |
feb7cea4c5 | ||
![]() |
da1ac48cde | ||
![]() |
4070133ed6 | ||
![]() |
77d461ec08 | ||
![]() |
3684ab585e | ||
![]() |
ae90107e6d | ||
![]() |
a813e7da07 | ||
![]() |
5fc7b791db | ||
![]() |
bff6ce7abb | ||
![]() |
9239c8b807 | ||
![]() |
8f7727e823 | ||
![]() |
944fed3c45 | ||
![]() |
98c0decaa4 | ||
![]() |
7e267ab498 | ||
![]() |
b09f5ddc15 | ||
![]() |
ac8bc4f006 | ||
![]() |
861f9d1022 | ||
![]() |
3cd7b144bb | ||
![]() |
81cb6ad246 | ||
![]() |
6485df8126 | ||
![]() |
aa5631b02b | ||
![]() |
8d2e4b68dc | ||
![]() |
4898a9e753 | ||
![]() |
701da5f6cc | ||
![]() |
cb51847085 | ||
![]() |
df218ad658 | ||
![]() |
8851c9ed29 | ||
![]() |
b6dde34bfb | ||
![]() |
e0b8640fb9 | ||
![]() |
253578afdf | ||
![]() |
b3ce18f0f9 | ||
![]() |
4429315291 | ||
![]() |
72be31e870 | ||
![]() |
938e929f39 | ||
![]() |
695ad5b83d | ||
![]() |
67b9d06b25 | ||
![]() |
565ff136e5 | ||
![]() |
642d4d8d93 | ||
![]() |
a9d0baffe6 | ||
![]() |
4153d8d088 | ||
![]() |
72228946dc | ||
![]() |
bfd6018d8d | ||
![]() |
0441f2ed7a | ||
![]() |
663811a819 | ||
![]() |
cc8489df2f | ||
![]() |
350a15dfbf | ||
![]() |
5c81e1f23f | ||
![]() |
1b2a34ea80 | ||
![]() |
1188a44f47 | ||
![]() |
a2c932aa5a | ||
![]() |
ae8c5fff3c | ||
![]() |
a7f2a2a3b6 | ||
![]() |
7764ee0d20 | ||
![]() |
d9f2a0e4a1 | ||
![]() |
eda9c57a62 | ||
![]() |
2609fe9c3e | ||
![]() |
d4b2baa9b6 | ||
![]() |
2ceea8d1fe | ||
![]() |
b6de867dec | ||
![]() |
ad022fc0b7 | ||
![]() |
354af7085b | ||
![]() |
814f613a2f | ||
![]() |
a369a0a94d | ||
![]() |
c22adbd92f | ||
![]() |
7ee5fc1b76 | ||
![]() |
f663b5eff8 | ||
![]() |
bc22fc9fdb | ||
![]() |
d7a69628b1 | ||
![]() |
5f0dd8270b | ||
![]() |
66ea1a3a12 | ||
![]() |
23bd7ead59 | ||
![]() |
7c25fc517e | ||
![]() |
1cbc7f6bed | ||
![]() |
89ada11cf9 | ||
![]() |
20f0c574d5 | ||
![]() |
2938182ce6 | ||
![]() |
c8826d6702 | ||
![]() |
8dfdec1d3b | ||
![]() |
e4118cb21e | ||
![]() |
e6e7886a6e | ||
![]() |
711e786be5 | ||
![]() |
4d0de87f79 | ||
![]() |
efb2683cfc | ||
![]() |
04a87f7029 | ||
![]() |
284a491100 | ||
![]() |
44351ec9b7 | ||
![]() |
71ae623916 | ||
![]() |
76eb9579a3 | ||
![]() |
15dde15a36 | ||
![]() |
8887af26d6 | ||
![]() |
1dea4dbcf6 | ||
![]() |
cd19c2da00 | ||
![]() |
7e3fedefb2 | ||
![]() |
201d6b5efc | ||
![]() |
63c6405ab7 | ||
![]() |
453aa8a4eb | ||
![]() |
e3e39f2235 | ||
![]() |
649ec5dfa1 | ||
![]() |
32269d32b6 | ||
![]() |
b31caefdeb | ||
![]() |
bd7678c574 | ||
![]() |
42d3b986c4 | ||
![]() |
d04d4bf095 | ||
![]() |
4043d2af3f | ||
![]() |
0e5187ff24 | ||
![]() |
60fbf8b0de | ||
![]() |
6b64b36b01 | ||
![]() |
221000db5b | ||
![]() |
c7f2537930 | ||
![]() |
8ea4e50c8e | ||
![]() |
f6b6ab374e | ||
![]() |
01eaee997e | ||
![]() |
412a83923d | ||
![]() |
dce54d5d0f | ||
![]() |
3df008f0b9 | ||
![]() |
4399a512be | ||
![]() |
a79ce7fa68 | ||
![]() |
757df8fceb | ||
![]() |
a9a1581720 | ||
![]() |
1e5946c795 | ||
![]() |
9bbae903fe | ||
![]() |
cce35e5109 | ||
![]() |
e40351796e | ||
![]() |
5124f8cebc | ||
![]() |
ac8757a031 | ||
![]() |
31009f0bfa | ||
![]() |
9b767139ef | ||
![]() |
0f49736957 | ||
![]() |
d251c43344 | ||
![]() |
ace6211176 | ||
![]() |
0ea7dd161b | ||
![]() |
ad6b766886 | ||
![]() |
14140ad41b | ||
![]() |
d1fa191bc0 | ||
![]() |
76a51a3b45 | ||
![]() |
5ebab397b2 | ||
![]() |
2796c2dd00 | ||
![]() |
700c7ed908 | ||
![]() |
ba0043b8a7 | ||
![]() |
14f8458374 | ||
![]() |
5cb21d0d4d | ||
![]() |
163e20b886 | ||
![]() |
3024006f63 | ||
![]() |
024576e330 | ||
![]() |
e4c6e897cf | ||
![]() |
8c5cd865f4 | ||
![]() |
1f6ed2cc70 | ||
![]() |
2291b7f787 | ||
![]() |
8627c9f76d | ||
![]() |
829e28aa90 | ||
![]() |
0bd0a4a647 | ||
![]() |
85d2aa1365 | ||
![]() |
d69c1839cd | ||
![]() |
b9d65338bc | ||
![]() |
2711d0f7f0 | ||
![]() |
4df0d6c01c | ||
![]() |
c1a0da60be | ||
![]() |
efc40da4fb | ||
![]() |
07dcb32fc2 | ||
![]() |
f4c54881ac | ||
![]() |
25317f23e3 | ||
![]() |
be79f0688a | ||
![]() |
c0d3726b00 | ||
![]() |
a37da1c968 | ||
![]() |
2ab940c603 | ||
![]() |
bac6cd601b | ||
![]() |
3a4d283169 | ||
![]() |
e0aa67677d | ||
![]() |
6a4c493213 | ||
![]() |
f653b94e77 | ||
![]() |
ca057713e2 | ||
![]() |
8616728ce0 | ||
![]() |
d4a37b6df2 | ||
![]() |
3b283ec00f | ||
![]() |
531f17cb68 | ||
![]() |
df0b2afda1 | ||
![]() |
18041efa2f | ||
![]() |
627b95e0b3 | ||
![]() |
fbe9b60d95 | ||
![]() |
960e1ff6e8 | ||
![]() |
1304341868 | ||
![]() |
6f8d89c6c5 | ||
![]() |
7211f6e019 | ||
![]() |
f6cc76acd7 | ||
![]() |
1df48a226d | ||
![]() |
f7fde60b67 | ||
![]() |
e110ea0b84 | ||
![]() |
0f17596aac | ||
![]() |
0618b53464 | ||
![]() |
47ce3bec75 | ||
![]() |
73e830d0ac | ||
![]() |
8ab4623f8e | ||
![]() |
087465a0cd | ||
![]() |
528c5fc4c4 | ||
![]() |
80159545a5 | ||
![]() |
d90ca4b1ad | ||
![]() |
082f04f2d4 | ||
![]() |
9dc43eae38 | ||
![]() |
8c4e0ff1c4 |
709
COPYING
709
COPYING
@ -1,73 +1,668 @@
|
|||||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
|
||||||
Files: *
|
Files: *
|
||||||
Copyright: 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
Copyright: 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
License: GPL-3+-with-additional-terms-1
|
License: AGPL-3+
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
License: AGPL-3+
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
(at your option) any later version.
|
Version 3, 19 November 2007
|
||||||
.
|
.
|
||||||
This program is distributed in the hope that it will be useful,
|
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
of this license document, but changing it is not allowed.
|
||||||
GNU General Public License for more details.
|
|
||||||
.
|
.
|
||||||
You should have received a copy of the GNU General Public License
|
Preamble
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU General Public
|
The GNU Affero General Public License is a free, copyleft license for
|
||||||
License version 3 can be found in the file
|
software and other kinds of works, specifically designed to ensure
|
||||||
`/usr/share/common-licenses/GPL-3'.
|
cooperation with the community in the case of network server software.
|
||||||
.
|
.
|
||||||
ADDITIONAL TERMS APPLICABLE per GNU GPL version 3 section 7
|
The licenses for most software and other practical works are designed
|
||||||
|
to take away your freedom to share and change the works. By contrast,
|
||||||
|
our General Public Licenses are intended to guarantee your freedom to
|
||||||
|
share and change all versions of a program--to make sure it remains free
|
||||||
|
software for all its users.
|
||||||
.
|
.
|
||||||
1. Replacement of Section 15. Section 15 of the GPL shall be deleted in its
|
When we speak of free software, we are referring to freedom, not
|
||||||
entirety and replaced with the following:
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
them if you wish), that you receive source code or can get it if you
|
||||||
|
want it, that you can change the software or use pieces of it in new
|
||||||
|
free programs, and that you know you can do these things.
|
||||||
.
|
.
|
||||||
15. Disclaimer of Warranty.
|
Developers that use our General Public Licenses protect your rights
|
||||||
|
with two steps: (1) assert copyright on the software, and (2) offer
|
||||||
|
you this License which gives you legal permission to copy, distribute
|
||||||
|
and/or modify the software.
|
||||||
.
|
.
|
||||||
THE PROGRAM IS PROVIDED WITHOUT ANY WARRANTIES, WHETHER EXPRESSED OR IMPLIED,
|
A secondary benefit of defending all users' freedom is that
|
||||||
INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
|
improvements made in alternate versions of the program, if they
|
||||||
PURPOSE, NON-INFRINGEMENT, TITLE AND MERCHANTABILITY. THE PROGRAM IS BEING
|
receive widespread use, become available for other developers to
|
||||||
DELIVERED OR MADE AVAILABLE 'AS IS', 'WITH ALL FAULTS' AND WITHOUT WARRANTY OR
|
incorporate. Many developers of free software are heartened and
|
||||||
REPRESENTATION. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
encouraged by the resulting cooperation. However, in the case of
|
||||||
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
software used on network servers, this result may fail to come about.
|
||||||
|
The GNU General Public License permits making a modified version and
|
||||||
|
letting the public access it on a server without ever releasing its
|
||||||
|
source code to the public.
|
||||||
|
.
|
||||||
|
The GNU Affero General Public License is designed specifically to
|
||||||
|
ensure that, in such cases, the modified source code becomes available
|
||||||
|
to the community. It requires the operator of a network server to
|
||||||
|
provide the source code of the modified version running there to the
|
||||||
|
users of that server. Therefore, public use of a modified version, on
|
||||||
|
a publicly accessible server, gives the public access to the source
|
||||||
|
code of the modified version.
|
||||||
|
.
|
||||||
|
An older license, called the Affero General Public License and
|
||||||
|
published by Affero, was designed to accomplish similar goals. This is
|
||||||
|
a different license, not a version of the Affero GPL, but Affero has
|
||||||
|
released a new version of the Affero GPL which permits relicensing under
|
||||||
|
this license.
|
||||||
|
.
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
.
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
.
|
||||||
|
0. Definitions.
|
||||||
|
.
|
||||||
|
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||||
|
.
|
||||||
|
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||||
|
works, such as semiconductor masks.
|
||||||
|
.
|
||||||
|
"The Program" refers to any copyrightable work licensed under this
|
||||||
|
License. Each licensee is addressed as "you". "Licensees" and
|
||||||
|
"recipients" may be individuals or organizations.
|
||||||
|
.
|
||||||
|
To "modify" a work means to copy from or adapt all or part of the work
|
||||||
|
in a fashion requiring copyright permission, other than the making of an
|
||||||
|
exact copy. The resulting work is called a "modified version" of the
|
||||||
|
earlier work or a work "based on" the earlier work.
|
||||||
|
.
|
||||||
|
A "covered work" means either the unmodified Program or a work based
|
||||||
|
on the Program.
|
||||||
|
.
|
||||||
|
To "propagate" a work means to do anything with it that, without
|
||||||
|
permission, would make you directly or secondarily liable for
|
||||||
|
infringement under applicable copyright law, except executing it on a
|
||||||
|
computer or modifying a private copy. Propagation includes copying,
|
||||||
|
distribution (with or without modification), making available to the
|
||||||
|
public, and in some countries other activities as well.
|
||||||
|
.
|
||||||
|
To "convey" a work means any kind of propagation that enables other
|
||||||
|
parties to make or receive copies. Mere interaction with a user through
|
||||||
|
a computer network, with no transfer of a copy, is not conveying.
|
||||||
|
.
|
||||||
|
An interactive user interface displays "Appropriate Legal Notices"
|
||||||
|
to the extent that it includes a convenient and prominently visible
|
||||||
|
feature that (1) displays an appropriate copyright notice, and (2)
|
||||||
|
tells the user that there is no warranty for the work (except to the
|
||||||
|
extent that warranties are provided), that licensees may convey the
|
||||||
|
work under this License, and how to view a copy of this License. If
|
||||||
|
the interface presents a list of user commands or options, such as a
|
||||||
|
menu, a prominent item in the list meets this criterion.
|
||||||
|
.
|
||||||
|
1. Source Code.
|
||||||
|
.
|
||||||
|
The "source code" for a work means the preferred form of the work
|
||||||
|
for making modifications to it. "Object code" means any non-source
|
||||||
|
form of a work.
|
||||||
|
.
|
||||||
|
A "Standard Interface" means an interface that either is an official
|
||||||
|
standard defined by a recognized standards body, or, in the case of
|
||||||
|
interfaces specified for a particular programming language, one that
|
||||||
|
is widely used among developers working in that language.
|
||||||
|
.
|
||||||
|
The "System Libraries" of an executable work include anything, other
|
||||||
|
than the work as a whole, that (a) is included in the normal form of
|
||||||
|
packaging a Major Component, but which is not part of that Major
|
||||||
|
Component, and (b) serves only to enable use of the work with that
|
||||||
|
Major Component, or to implement a Standard Interface for which an
|
||||||
|
implementation is available to the public in source code form. A
|
||||||
|
"Major Component", in this context, means a major essential component
|
||||||
|
(kernel, window system, and so on) of the specific operating system
|
||||||
|
(if any) on which the executable work runs, or a compiler used to
|
||||||
|
produce the work, or an object code interpreter used to run it.
|
||||||
|
.
|
||||||
|
The "Corresponding Source" for a work in object code form means all
|
||||||
|
the source code needed to generate, install, and (for an executable
|
||||||
|
work) run the object code and to modify the work, including scripts to
|
||||||
|
control those activities. However, it does not include the work's
|
||||||
|
System Libraries, or general-purpose tools or generally available free
|
||||||
|
programs which are used unmodified in performing those activities but
|
||||||
|
which are not part of the work. For example, Corresponding Source
|
||||||
|
includes interface definition files associated with source files for
|
||||||
|
the work, and the source code for shared libraries and dynamically
|
||||||
|
linked subprograms that the work is specifically designed to require,
|
||||||
|
such as by intimate data communication or control flow between those
|
||||||
|
subprograms and other parts of the work.
|
||||||
|
.
|
||||||
|
The Corresponding Source need not include anything that users
|
||||||
|
can regenerate automatically from other parts of the Corresponding
|
||||||
|
Source.
|
||||||
|
.
|
||||||
|
The Corresponding Source for a work in source code form is that
|
||||||
|
same work.
|
||||||
|
.
|
||||||
|
2. Basic Permissions.
|
||||||
|
.
|
||||||
|
All rights granted under this License are granted for the term of
|
||||||
|
copyright on the Program, and are irrevocable provided the stated
|
||||||
|
conditions are met. This License explicitly affirms your unlimited
|
||||||
|
permission to run the unmodified Program. The output from running a
|
||||||
|
covered work is covered by this License only if the output, given its
|
||||||
|
content, constitutes a covered work. This License acknowledges your
|
||||||
|
rights of fair use or other equivalent, as provided by copyright law.
|
||||||
|
.
|
||||||
|
You may make, run and propagate covered works that you do not
|
||||||
|
convey, without conditions so long as your license otherwise remains
|
||||||
|
in force. You may convey covered works to others for the sole purpose
|
||||||
|
of having them make modifications exclusively for you, or provide you
|
||||||
|
with facilities for running those works, provided that you comply with
|
||||||
|
the terms of this License in conveying all material for which you do
|
||||||
|
not control copyright. Those thus making or running the covered works
|
||||||
|
for you must do so exclusively on your behalf, under your direction
|
||||||
|
and control, on terms that prohibit them from making any copies of
|
||||||
|
your copyrighted material outside their relationship with you.
|
||||||
|
.
|
||||||
|
Conveying under any other circumstances is permitted solely under
|
||||||
|
the conditions stated below. Sublicensing is not allowed; section 10
|
||||||
|
makes it unnecessary.
|
||||||
|
.
|
||||||
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||||
|
.
|
||||||
|
No covered work shall be deemed part of an effective technological
|
||||||
|
measure under any applicable law fulfilling obligations under article
|
||||||
|
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||||
|
similar laws prohibiting or restricting circumvention of such
|
||||||
|
measures.
|
||||||
|
.
|
||||||
|
When you convey a covered work, you waive any legal power to forbid
|
||||||
|
circumvention of technological measures to the extent such circumvention
|
||||||
|
is effected by exercising rights under this License with respect to
|
||||||
|
the covered work, and you disclaim any intention to limit operation or
|
||||||
|
modification of the work as a means of enforcing, against the work's
|
||||||
|
users, your or third parties' legal rights to forbid circumvention of
|
||||||
|
technological measures.
|
||||||
|
.
|
||||||
|
4. Conveying Verbatim Copies.
|
||||||
|
.
|
||||||
|
You may convey verbatim copies of the Program's source code as you
|
||||||
|
receive it, in any medium, provided that you conspicuously and
|
||||||
|
appropriately publish on each copy an appropriate copyright notice;
|
||||||
|
keep intact all notices stating that this License and any
|
||||||
|
non-permissive terms added in accord with section 7 apply to the code;
|
||||||
|
keep intact all notices of the absence of any warranty; and give all
|
||||||
|
recipients a copy of this License along with the Program.
|
||||||
|
.
|
||||||
|
You may charge any price or no price for each copy that you convey,
|
||||||
|
and you may offer support or warranty protection for a fee.
|
||||||
|
.
|
||||||
|
5. Conveying Modified Source Versions.
|
||||||
|
.
|
||||||
|
You may convey a work based on the Program, or the modifications to
|
||||||
|
produce it from the Program, in the form of source code under the
|
||||||
|
terms of section 4, provided that you also meet all of these conditions:
|
||||||
|
.
|
||||||
|
a) The work must carry prominent notices stating that you modified
|
||||||
|
it, and giving a relevant date.
|
||||||
|
.
|
||||||
|
b) The work must carry prominent notices stating that it is
|
||||||
|
released under this License and any conditions added under section
|
||||||
|
7. This requirement modifies the requirement in section 4 to
|
||||||
|
"keep intact all notices".
|
||||||
|
.
|
||||||
|
c) You must license the entire work, as a whole, under this
|
||||||
|
License to anyone who comes into possession of a copy. This
|
||||||
|
License will therefore apply, along with any applicable section 7
|
||||||
|
additional terms, to the whole of the work, and all its parts,
|
||||||
|
regardless of how they are packaged. This License gives no
|
||||||
|
permission to license the work in any other way, but it does not
|
||||||
|
invalidate such permission if you have separately received it.
|
||||||
|
.
|
||||||
|
d) If the work has interactive user interfaces, each must display
|
||||||
|
Appropriate Legal Notices; however, if the Program has interactive
|
||||||
|
interfaces that do not display Appropriate Legal Notices, your
|
||||||
|
work need not make them do so.
|
||||||
|
.
|
||||||
|
A compilation of a covered work with other separate and independent
|
||||||
|
works, which are not by their nature extensions of the covered work,
|
||||||
|
and which are not combined with it such as to form a larger program,
|
||||||
|
in or on a volume of a storage or distribution medium, is called an
|
||||||
|
"aggregate" if the compilation and its resulting copyright are not
|
||||||
|
used to limit the access or legal rights of the compilation's users
|
||||||
|
beyond what the individual works permit. Inclusion of a covered work
|
||||||
|
in an aggregate does not cause this License to apply to the other
|
||||||
|
parts of the aggregate.
|
||||||
|
.
|
||||||
|
6. Conveying Non-Source Forms.
|
||||||
|
.
|
||||||
|
You may convey a covered work in object code form under the terms
|
||||||
|
of sections 4 and 5, provided that you also convey the
|
||||||
|
machine-readable Corresponding Source under the terms of this License,
|
||||||
|
in one of these ways:
|
||||||
|
.
|
||||||
|
a) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by the
|
||||||
|
Corresponding Source fixed on a durable physical medium
|
||||||
|
customarily used for software interchange.
|
||||||
|
.
|
||||||
|
b) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by a
|
||||||
|
written offer, valid for at least three years and valid for as
|
||||||
|
long as you offer spare parts or customer support for that product
|
||||||
|
model, to give anyone who possesses the object code either (1) a
|
||||||
|
copy of the Corresponding Source for all the software in the
|
||||||
|
product that is covered by this License, on a durable physical
|
||||||
|
medium customarily used for software interchange, for a price no
|
||||||
|
more than your reasonable cost of physically performing this
|
||||||
|
conveying of source, or (2) access to copy the
|
||||||
|
Corresponding Source from a network server at no charge.
|
||||||
|
.
|
||||||
|
c) Convey individual copies of the object code with a copy of the
|
||||||
|
written offer to provide the Corresponding Source. This
|
||||||
|
alternative is allowed only occasionally and noncommercially, and
|
||||||
|
only if you received the object code with such an offer, in accord
|
||||||
|
with subsection 6b.
|
||||||
|
.
|
||||||
|
d) Convey the object code by offering access from a designated
|
||||||
|
place (gratis or for a charge), and offer equivalent access to the
|
||||||
|
Corresponding Source in the same way through the same place at no
|
||||||
|
further charge. You need not require recipients to copy the
|
||||||
|
Corresponding Source along with the object code. If the place to
|
||||||
|
copy the object code is a network server, the Corresponding Source
|
||||||
|
may be on a different server (operated by you or a third party)
|
||||||
|
that supports equivalent copying facilities, provided you maintain
|
||||||
|
clear directions next to the object code saying where to find the
|
||||||
|
Corresponding Source. Regardless of what server hosts the
|
||||||
|
Corresponding Source, you remain obligated to ensure that it is
|
||||||
|
available for as long as needed to satisfy these requirements.
|
||||||
|
.
|
||||||
|
e) Convey the object code using peer-to-peer transmission, provided
|
||||||
|
you inform other peers where the object code and Corresponding
|
||||||
|
Source of the work are being offered to the general public at no
|
||||||
|
charge under subsection 6d.
|
||||||
|
.
|
||||||
|
A separable portion of the object code, whose source code is excluded
|
||||||
|
from the Corresponding Source as a System Library, need not be
|
||||||
|
included in conveying the object code work.
|
||||||
|
.
|
||||||
|
A "User Product" is either (1) a "consumer product", which means any
|
||||||
|
tangible personal property which is normally used for personal, family,
|
||||||
|
or household purposes, or (2) anything designed or sold for incorporation
|
||||||
|
into a dwelling. In determining whether a product is a consumer product,
|
||||||
|
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||||
|
product received by a particular user, "normally used" refers to a
|
||||||
|
typical or common use of that class of product, regardless of the status
|
||||||
|
of the particular user or of the way in which the particular user
|
||||||
|
actually uses, or expects or is expected to use, the product. A product
|
||||||
|
is a consumer product regardless of whether the product has substantial
|
||||||
|
commercial, industrial or non-consumer uses, unless such uses represent
|
||||||
|
the only significant mode of use of the product.
|
||||||
|
.
|
||||||
|
"Installation Information" for a User Product means any methods,
|
||||||
|
procedures, authorization keys, or other information required to install
|
||||||
|
and execute modified versions of a covered work in that User Product from
|
||||||
|
a modified version of its Corresponding Source. The information must
|
||||||
|
suffice to ensure that the continued functioning of the modified object
|
||||||
|
code is in no case prevented or interfered with solely because
|
||||||
|
modification has been made.
|
||||||
|
.
|
||||||
|
If you convey an object code work under this section in, or with, or
|
||||||
|
specifically for use in, a User Product, and the conveying occurs as
|
||||||
|
part of a transaction in which the right of possession and use of the
|
||||||
|
User Product is transferred to the recipient in perpetuity or for a
|
||||||
|
fixed term (regardless of how the transaction is characterized), the
|
||||||
|
Corresponding Source conveyed under this section must be accompanied
|
||||||
|
by the Installation Information. But this requirement does not apply
|
||||||
|
if neither you nor any third party retains the ability to install
|
||||||
|
modified object code on the User Product (for example, the work has
|
||||||
|
been installed in ROM).
|
||||||
|
.
|
||||||
|
The requirement to provide Installation Information does not include a
|
||||||
|
requirement to continue to provide support service, warranty, or updates
|
||||||
|
for a work that has been modified or installed by the recipient, or for
|
||||||
|
the User Product in which it has been modified or installed. Access to a
|
||||||
|
network may be denied when the modification itself materially and
|
||||||
|
adversely affects the operation of the network or violates the rules and
|
||||||
|
protocols for communication across the network.
|
||||||
|
.
|
||||||
|
Corresponding Source conveyed, and Installation Information provided,
|
||||||
|
in accord with this section must be in a format that is publicly
|
||||||
|
documented (and with an implementation available to the public in
|
||||||
|
source code form), and must require no special password or key for
|
||||||
|
unpacking, reading or copying.
|
||||||
|
.
|
||||||
|
7. Additional Terms.
|
||||||
|
.
|
||||||
|
"Additional permissions" are terms that supplement the terms of this
|
||||||
|
License by making exceptions from one or more of its conditions.
|
||||||
|
Additional permissions that are applicable to the entire Program shall
|
||||||
|
be treated as though they were included in this License, to the extent
|
||||||
|
that they are valid under applicable law. If additional permissions
|
||||||
|
apply only to part of the Program, that part may be used separately
|
||||||
|
under those permissions, but the entire Program remains governed by
|
||||||
|
this License without regard to the additional permissions.
|
||||||
|
.
|
||||||
|
When you convey a copy of a covered work, you may at your option
|
||||||
|
remove any additional permissions from that copy, or from any part of
|
||||||
|
it. (Additional permissions may be written to require their own
|
||||||
|
removal in certain cases when you modify the work.) You may place
|
||||||
|
additional permissions on material, added by you to a covered work,
|
||||||
|
for which you have or can give appropriate copyright permission.
|
||||||
|
.
|
||||||
|
Notwithstanding any other provision of this License, for material you
|
||||||
|
add to a covered work, you may (if authorized by the copyright holders of
|
||||||
|
that material) supplement the terms of this License with terms:
|
||||||
|
.
|
||||||
|
a) Disclaiming warranty or limiting liability differently from the
|
||||||
|
terms of sections 15 and 16 of this License; or
|
||||||
|
.
|
||||||
|
b) Requiring preservation of specified reasonable legal notices or
|
||||||
|
author attributions in that material or in the Appropriate Legal
|
||||||
|
Notices displayed by works containing it; or
|
||||||
|
.
|
||||||
|
c) Prohibiting misrepresentation of the origin of that material, or
|
||||||
|
requiring that modified versions of such material be marked in
|
||||||
|
reasonable ways as different from the original version; or
|
||||||
|
.
|
||||||
|
d) Limiting the use for publicity purposes of names of licensors or
|
||||||
|
authors of the material; or
|
||||||
|
.
|
||||||
|
e) Declining to grant rights under trademark law for use of some
|
||||||
|
trade names, trademarks, or service marks; or
|
||||||
|
.
|
||||||
|
f) Requiring indemnification of licensors and authors of that
|
||||||
|
material by anyone who conveys the material (or modified versions of
|
||||||
|
it) with contractual assumptions of liability to the recipient, for
|
||||||
|
any liability that these contractual assumptions directly impose on
|
||||||
|
those licensors and authors.
|
||||||
|
.
|
||||||
|
All other non-permissive additional terms are considered "further
|
||||||
|
restrictions" within the meaning of section 10. If the Program as you
|
||||||
|
received it, or any part of it, contains a notice stating that it is
|
||||||
|
governed by this License along with a term that is a further
|
||||||
|
restriction, you may remove that term. If a license document contains
|
||||||
|
a further restriction but permits relicensing or conveying under this
|
||||||
|
License, you may add to a covered work material governed by the terms
|
||||||
|
of that license document, provided that the further restriction does
|
||||||
|
not survive such relicensing or conveying.
|
||||||
|
.
|
||||||
|
If you add terms to a covered work in accord with this section, you
|
||||||
|
must place, in the relevant source files, a statement of the
|
||||||
|
additional terms that apply to those files, or a notice indicating
|
||||||
|
where to find the applicable terms.
|
||||||
|
.
|
||||||
|
Additional terms, permissive or non-permissive, may be stated in the
|
||||||
|
form of a separately written license, or stated as exceptions;
|
||||||
|
the above requirements apply either way.
|
||||||
|
.
|
||||||
|
8. Termination.
|
||||||
|
.
|
||||||
|
You may not propagate or modify a covered work except as expressly
|
||||||
|
provided under this License. Any attempt otherwise to propagate or
|
||||||
|
modify it is void, and will automatically terminate your rights under
|
||||||
|
this License (including any patent licenses granted under the third
|
||||||
|
paragraph of section 11).
|
||||||
|
.
|
||||||
|
However, if you cease all violation of this License, then your
|
||||||
|
license from a particular copyright holder is reinstated (a)
|
||||||
|
provisionally, unless and until the copyright holder explicitly and
|
||||||
|
finally terminates your license, and (b) permanently, if the copyright
|
||||||
|
holder fails to notify you of the violation by some reasonable means
|
||||||
|
prior to 60 days after the cessation.
|
||||||
|
.
|
||||||
|
Moreover, your license from a particular copyright holder is
|
||||||
|
reinstated permanently if the copyright holder notifies you of the
|
||||||
|
violation by some reasonable means, this is the first time you have
|
||||||
|
received notice of violation of this License (for any work) from that
|
||||||
|
copyright holder, and you cure the violation prior to 30 days after
|
||||||
|
your receipt of the notice.
|
||||||
|
.
|
||||||
|
Termination of your rights under this section does not terminate the
|
||||||
|
licenses of parties who have received copies or rights from you under
|
||||||
|
this License. If your rights have been terminated and not permanently
|
||||||
|
reinstated, you do not qualify to receive new licenses for the same
|
||||||
|
material under section 10.
|
||||||
|
.
|
||||||
|
9. Acceptance Not Required for Having Copies.
|
||||||
|
.
|
||||||
|
You are not required to accept this License in order to receive or
|
||||||
|
run a copy of the Program. Ancillary propagation of a covered work
|
||||||
|
occurring solely as a consequence of using peer-to-peer transmission
|
||||||
|
to receive a copy likewise does not require acceptance. However,
|
||||||
|
nothing other than this License grants you permission to propagate or
|
||||||
|
modify any covered work. These actions infringe copyright if you do
|
||||||
|
not accept this License. Therefore, by modifying or propagating a
|
||||||
|
covered work, you indicate your acceptance of this License to do so.
|
||||||
|
.
|
||||||
|
10. Automatic Licensing of Downstream Recipients.
|
||||||
|
.
|
||||||
|
Each time you convey a covered work, the recipient automatically
|
||||||
|
receives a license from the original licensors, to run, modify and
|
||||||
|
propagate that work, subject to this License. You are not responsible
|
||||||
|
for enforcing compliance by third parties with this License.
|
||||||
|
.
|
||||||
|
An "entity transaction" is a transaction transferring control of an
|
||||||
|
organization, or substantially all assets of one, or subdividing an
|
||||||
|
organization, or merging organizations. If propagation of a covered
|
||||||
|
work results from an entity transaction, each party to that
|
||||||
|
transaction who receives a copy of the work also receives whatever
|
||||||
|
licenses to the work the party's predecessor in interest had or could
|
||||||
|
give under the previous paragraph, plus a right to possession of the
|
||||||
|
Corresponding Source of the work from the predecessor in interest, if
|
||||||
|
the predecessor has it or can get it with reasonable efforts.
|
||||||
|
.
|
||||||
|
You may not impose any further restrictions on the exercise of the
|
||||||
|
rights granted or affirmed under this License. For example, you may
|
||||||
|
not impose a license fee, royalty, or other charge for exercise of
|
||||||
|
rights granted under this License, and you may not initiate litigation
|
||||||
|
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||||
|
any patent claim is infringed by making, using, selling, offering for
|
||||||
|
sale, or importing the Program or any portion of it.
|
||||||
|
.
|
||||||
|
11. Patents.
|
||||||
|
.
|
||||||
|
A "contributor" is a copyright holder who authorizes use under this
|
||||||
|
License of the Program or a work on which the Program is based. The
|
||||||
|
work thus licensed is called the contributor's "contributor version".
|
||||||
|
.
|
||||||
|
A contributor's "essential patent claims" are all patent claims
|
||||||
|
owned or controlled by the contributor, whether already acquired or
|
||||||
|
hereafter acquired, that would be infringed by some manner, permitted
|
||||||
|
by this License, of making, using, or selling its contributor version,
|
||||||
|
but do not include claims that would be infringed only as a
|
||||||
|
consequence of further modification of the contributor version. For
|
||||||
|
purposes of this definition, "control" includes the right to grant
|
||||||
|
patent sublicenses in a manner consistent with the requirements of
|
||||||
|
this License.
|
||||||
|
.
|
||||||
|
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||||
|
patent license under the contributor's essential patent claims, to
|
||||||
|
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||||
|
propagate the contents of its contributor version.
|
||||||
|
.
|
||||||
|
In the following three paragraphs, a "patent license" is any express
|
||||||
|
agreement or commitment, however denominated, not to enforce a patent
|
||||||
|
(such as an express permission to practice a patent or covenant not to
|
||||||
|
sue for patent infringement). To "grant" such a patent license to a
|
||||||
|
party means to make such an agreement or commitment not to enforce a
|
||||||
|
patent against the party.
|
||||||
|
.
|
||||||
|
If you convey a covered work, knowingly relying on a patent license,
|
||||||
|
and the Corresponding Source of the work is not available for anyone
|
||||||
|
to copy, free of charge and under the terms of this License, through a
|
||||||
|
publicly available network server or other readily accessible means,
|
||||||
|
then you must either (1) cause the Corresponding Source to be so
|
||||||
|
available, or (2) arrange to deprive yourself of the benefit of the
|
||||||
|
patent license for this particular work, or (3) arrange, in a manner
|
||||||
|
consistent with the requirements of this License, to extend the patent
|
||||||
|
license to downstream recipients. "Knowingly relying" means you have
|
||||||
|
actual knowledge that, but for the patent license, your conveying the
|
||||||
|
covered work in a country, or your recipient's use of the covered work
|
||||||
|
in a country, would infringe one or more identifiable patents in that
|
||||||
|
country that you have reason to believe are valid.
|
||||||
|
.
|
||||||
|
If, pursuant to or in connection with a single transaction or
|
||||||
|
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||||
|
covered work, and grant a patent license to some of the parties
|
||||||
|
receiving the covered work authorizing them to use, propagate, modify
|
||||||
|
or convey a specific copy of the covered work, then the patent license
|
||||||
|
you grant is automatically extended to all recipients of the covered
|
||||||
|
work and works based on it.
|
||||||
|
.
|
||||||
|
A patent license is "discriminatory" if it does not include within
|
||||||
|
the scope of its coverage, prohibits the exercise of, or is
|
||||||
|
conditioned on the non-exercise of one or more of the rights that are
|
||||||
|
specifically granted under this License. You may not convey a covered
|
||||||
|
work if you are a party to an arrangement with a third party that is
|
||||||
|
in the business of distributing software, under which you make payment
|
||||||
|
to the third party based on the extent of your activity of conveying
|
||||||
|
the work, and under which the third party grants, to any of the
|
||||||
|
parties who would receive the covered work from you, a discriminatory
|
||||||
|
patent license (a) in connection with copies of the covered work
|
||||||
|
conveyed by you (or copies made from those copies), or (b) primarily
|
||||||
|
for and in connection with specific products or compilations that
|
||||||
|
contain the covered work, unless you entered into that arrangement,
|
||||||
|
or that patent license was granted, prior to 28 March 2007.
|
||||||
|
.
|
||||||
|
Nothing in this License shall be construed as excluding or limiting
|
||||||
|
any implied license or other defenses to infringement that may
|
||||||
|
otherwise be available to you under applicable patent law.
|
||||||
|
.
|
||||||
|
12. No Surrender of Others' Freedom.
|
||||||
|
.
|
||||||
|
If conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot convey a
|
||||||
|
covered work so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you may
|
||||||
|
not convey it at all. For example, if you agree to terms that obligate you
|
||||||
|
to collect a royalty for further conveying from those to whom you convey
|
||||||
|
the Program, the only way you could satisfy both those terms and this
|
||||||
|
License would be to refrain entirely from conveying the Program.
|
||||||
|
.
|
||||||
|
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||||
|
.
|
||||||
|
Notwithstanding any other provision of this License, if you modify the
|
||||||
|
Program, your modified version must prominently offer all users
|
||||||
|
interacting with it remotely through a computer network (if your version
|
||||||
|
supports such interaction) an opportunity to receive the Corresponding
|
||||||
|
Source of your version by providing access to the Corresponding Source
|
||||||
|
from a network server at no charge, through some standard or customary
|
||||||
|
means of facilitating copying of software. This Corresponding Source
|
||||||
|
shall include the Corresponding Source for any work covered by version 3
|
||||||
|
of the GNU General Public License that is incorporated pursuant to the
|
||||||
|
following paragraph.
|
||||||
|
.
|
||||||
|
Notwithstanding any other provision of this License, you have
|
||||||
|
permission to link or combine any covered work with a work licensed
|
||||||
|
under version 3 of the GNU General Public License into a single
|
||||||
|
combined work, and to convey the resulting work. The terms of this
|
||||||
|
License will continue to apply to the part which is the covered work,
|
||||||
|
but the work with which it is combined will remain governed by version
|
||||||
|
3 of the GNU General Public License.
|
||||||
|
.
|
||||||
|
14. Revised Versions of this License.
|
||||||
|
.
|
||||||
|
The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the GNU Affero General Public License from time to time. Such new versions
|
||||||
|
will be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
.
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Program specifies that a certain numbered version of the GNU Affero General
|
||||||
|
Public License "or any later version" applies to it, you have the
|
||||||
|
option of following the terms and conditions either of that numbered
|
||||||
|
version or of any later version published by the Free Software
|
||||||
|
Foundation. If the Program does not specify a version number of the
|
||||||
|
GNU Affero General Public License, you may choose any version ever published
|
||||||
|
by the Free Software Foundation.
|
||||||
|
.
|
||||||
|
If the Program specifies that a proxy can decide which future
|
||||||
|
versions of the GNU Affero General Public License can be used, that proxy's
|
||||||
|
public statement of acceptance of a version permanently authorizes you
|
||||||
|
to choose that version for the Program.
|
||||||
|
.
|
||||||
|
Later license versions may give you additional or different
|
||||||
|
permissions. However, no additional obligations are imposed on any
|
||||||
|
author or copyright holder as a result of your choosing to follow a
|
||||||
|
later version.
|
||||||
|
.
|
||||||
|
15. Disclaimer of Warranty.
|
||||||
|
.
|
||||||
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||||
|
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||||
|
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||||
|
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||||
|
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
.
|
.
|
||||||
2. Replacement of Section 16. Section 16 of the GPL shall be deleted in its
|
16. Limitation of Liability.
|
||||||
entirety and replaced with the following:
|
|
||||||
.
|
.
|
||||||
16. LIMITATION OF LIABILITY.
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||||
|
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||||
|
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||||
|
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||||
|
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||||
|
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGES.
|
||||||
.
|
.
|
||||||
UNDER NO CIRCUMSTANCES SHALL ANY COPYRIGHT HOLDER OR ITS AFFILIATES, OR ANY
|
17. Interpretation of Sections 15 and 16.
|
||||||
OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE
|
|
||||||
LIABLE TO YOU, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, FOR ANY
|
|
||||||
DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, DIRECT, INDIRECT, SPECIAL,
|
|
||||||
INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES ARISING FROM, OUT OF OR IN
|
|
||||||
CONNECTION WITH THE USE OR INABILITY TO USE THE PROGRAM OR OTHER DEALINGS WITH
|
|
||||||
THE PROGRAM(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
|
|
||||||
INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
|
|
||||||
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), WHETHER OR NOT ANY COPYRIGHT HOLDER
|
|
||||||
OR SUCH OTHER PARTY RECEIVES NOTICE OF ANY SUCH DAMAGES AND WHETHER OR NOT SUCH
|
|
||||||
DAMAGES COULD HAVE BEEN FORESEEN.
|
|
||||||
.
|
.
|
||||||
3. LEGAL NOTICES; NO TRADEMARK LICENSE; ORIGIN. You must reproduce faithfully
|
If the disclaimer of warranty and limitation of liability provided
|
||||||
all trademark, copyright and other proprietary and legal notices on any copies
|
above cannot be given local legal effect according to their terms,
|
||||||
of the Program or any other required author attributions. This license does not
|
reviewing courts shall apply local law that most closely approximates
|
||||||
grant you rights to use any copyright holder or any other party's name, logo, or
|
an absolute waiver of all civil liability in connection with the
|
||||||
trademarks. Neither the name of the copyright holder or its affiliates, or any
|
Program, unless a warranty or assumption of liability accompanies a
|
||||||
other party who modifies and/or conveys the Program may be used to endorse or
|
copy of the Program in return for a fee.
|
||||||
promote products derived from this software without specific prior written
|
|
||||||
permission. The origin of the Program must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original Program. Altered source versions must be
|
|
||||||
plainly marked as such, and must not be misrepresented as being the original
|
|
||||||
Program.
|
|
||||||
.
|
.
|
||||||
4. INDEMNIFICATION. IF YOU CONVEY A COVERED WORK AND AGREE WITH ANY RECIPIENT
|
END OF TERMS AND CONDITIONS
|
||||||
OF THAT COVERED WORK THAT YOU WILL ASSUME ANY LIABILITY FOR THAT COVERED WORK,
|
.
|
||||||
YOU HEREBY AGREE TO INDEMNIFY, DEFEND AND HOLD HARMLESS THE OTHER LICENSORS AND
|
How to Apply These Terms to Your New Programs
|
||||||
AUTHORS OF THAT COVERED WORK FOR ANY DAMAGES, DEMANDS, CLAIMS, LOSSES, CAUSES OF
|
.
|
||||||
ACTION, LAWSUITS, JUDGMENTS EXPENSES (INCLUDING WITHOUT LIMITATION REASONABLE
|
If you develop a new program, and you want it to be of the greatest
|
||||||
ATTORNEYS' FEES AND EXPENSES) OR ANY OTHER LIABILITY ARISING FROM, RELATED TO OR
|
possible use to the public, the best way to achieve this is to make it
|
||||||
IN CONNECTION WITH YOUR ASSUMPTIONS OF LIABILITY.
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
.
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
state the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
.
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
.
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
.
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
.
|
||||||
|
If your software can interact with users remotely through a computer
|
||||||
|
network, you should also make sure that it provides a way for users to
|
||||||
|
get its source. For example, if your program is a web application, its
|
||||||
|
interface could display a "Source" link that leads users to an archive
|
||||||
|
of the code. There are many ways you could offer source, and different
|
||||||
|
solutions will be better for different programs; see section 13 for the
|
||||||
|
specific requirements.
|
||||||
|
.
|
||||||
|
You should also get your employer (if you work as a programmer) or school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||||
|
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||||
|
<https://www.gnu.org/licenses/>.
|
||||||
|
674
GPLv3
674
GPLv3
@ -1,674 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The GNU General Public License is a free, copyleft license for
|
|
||||||
software and other kinds of works.
|
|
||||||
|
|
||||||
The licenses for most software and other practical works are designed
|
|
||||||
to take away your freedom to share and change the works. By contrast,
|
|
||||||
the GNU General Public License is intended to guarantee your freedom to
|
|
||||||
share and change all versions of a program--to make sure it remains free
|
|
||||||
software for all its users. We, the Free Software Foundation, use the
|
|
||||||
GNU General Public License for most of our software; it applies also to
|
|
||||||
any other work released this way by its authors. You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
them if you wish), that you receive source code or can get it if you
|
|
||||||
want it, that you can change the software or use pieces of it in new
|
|
||||||
free programs, and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to prevent others from denying you
|
|
||||||
these rights or asking you to surrender the rights. Therefore, you have
|
|
||||||
certain responsibilities if you distribute copies of the software, or if
|
|
||||||
you modify it: responsibilities to respect the freedom of others.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must pass on to the recipients the same
|
|
||||||
freedoms that you received. You must make sure that they, too, receive
|
|
||||||
or can get the source code. And you must show them these terms so they
|
|
||||||
know their rights.
|
|
||||||
|
|
||||||
Developers that use the GNU GPL protect your rights with two steps:
|
|
||||||
(1) assert copyright on the software, and (2) offer you this License
|
|
||||||
giving you legal permission to copy, distribute and/or modify it.
|
|
||||||
|
|
||||||
For the developers' and authors' protection, the GPL clearly explains
|
|
||||||
that there is no warranty for this free software. For both users' and
|
|
||||||
authors' sake, the GPL requires that modified versions be marked as
|
|
||||||
changed, so that their problems will not be attributed erroneously to
|
|
||||||
authors of previous versions.
|
|
||||||
|
|
||||||
Some devices are designed to deny users access to install or run
|
|
||||||
modified versions of the software inside them, although the manufacturer
|
|
||||||
can do so. This is fundamentally incompatible with the aim of
|
|
||||||
protecting users' freedom to change the software. The systematic
|
|
||||||
pattern of such abuse occurs in the area of products for individuals to
|
|
||||||
use, which is precisely where it is most unacceptable. Therefore, we
|
|
||||||
have designed this version of the GPL to prohibit the practice for those
|
|
||||||
products. If such problems arise substantially in other domains, we
|
|
||||||
stand ready to extend this provision to those domains in future versions
|
|
||||||
of the GPL, as needed to protect the freedom of users.
|
|
||||||
|
|
||||||
Finally, every program is threatened constantly by software patents.
|
|
||||||
States should not allow patents to restrict development and use of
|
|
||||||
software on general-purpose computers, but in those that do, we wish to
|
|
||||||
avoid the special danger that patents applied to a free program could
|
|
||||||
make it effectively proprietary. To prevent this, the GPL assures that
|
|
||||||
patents cannot be used to render the program non-free.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
0. Definitions.
|
|
||||||
|
|
||||||
"This License" refers to version 3 of the GNU General Public License.
|
|
||||||
|
|
||||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
|
||||||
works, such as semiconductor masks.
|
|
||||||
|
|
||||||
"The Program" refers to any copyrightable work licensed under this
|
|
||||||
License. Each licensee is addressed as "you". "Licensees" and
|
|
||||||
"recipients" may be individuals or organizations.
|
|
||||||
|
|
||||||
To "modify" a work means to copy from or adapt all or part of the work
|
|
||||||
in a fashion requiring copyright permission, other than the making of an
|
|
||||||
exact copy. The resulting work is called a "modified version" of the
|
|
||||||
earlier work or a work "based on" the earlier work.
|
|
||||||
|
|
||||||
A "covered work" means either the unmodified Program or a work based
|
|
||||||
on the Program.
|
|
||||||
|
|
||||||
To "propagate" a work means to do anything with it that, without
|
|
||||||
permission, would make you directly or secondarily liable for
|
|
||||||
infringement under applicable copyright law, except executing it on a
|
|
||||||
computer or modifying a private copy. Propagation includes copying,
|
|
||||||
distribution (with or without modification), making available to the
|
|
||||||
public, and in some countries other activities as well.
|
|
||||||
|
|
||||||
To "convey" a work means any kind of propagation that enables other
|
|
||||||
parties to make or receive copies. Mere interaction with a user through
|
|
||||||
a computer network, with no transfer of a copy, is not conveying.
|
|
||||||
|
|
||||||
An interactive user interface displays "Appropriate Legal Notices"
|
|
||||||
to the extent that it includes a convenient and prominently visible
|
|
||||||
feature that (1) displays an appropriate copyright notice, and (2)
|
|
||||||
tells the user that there is no warranty for the work (except to the
|
|
||||||
extent that warranties are provided), that licensees may convey the
|
|
||||||
work under this License, and how to view a copy of this License. If
|
|
||||||
the interface presents a list of user commands or options, such as a
|
|
||||||
menu, a prominent item in the list meets this criterion.
|
|
||||||
|
|
||||||
1. Source Code.
|
|
||||||
|
|
||||||
The "source code" for a work means the preferred form of the work
|
|
||||||
for making modifications to it. "Object code" means any non-source
|
|
||||||
form of a work.
|
|
||||||
|
|
||||||
A "Standard Interface" means an interface that either is an official
|
|
||||||
standard defined by a recognized standards body, or, in the case of
|
|
||||||
interfaces specified for a particular programming language, one that
|
|
||||||
is widely used among developers working in that language.
|
|
||||||
|
|
||||||
The "System Libraries" of an executable work include anything, other
|
|
||||||
than the work as a whole, that (a) is included in the normal form of
|
|
||||||
packaging a Major Component, but which is not part of that Major
|
|
||||||
Component, and (b) serves only to enable use of the work with that
|
|
||||||
Major Component, or to implement a Standard Interface for which an
|
|
||||||
implementation is available to the public in source code form. A
|
|
||||||
"Major Component", in this context, means a major essential component
|
|
||||||
(kernel, window system, and so on) of the specific operating system
|
|
||||||
(if any) on which the executable work runs, or a compiler used to
|
|
||||||
produce the work, or an object code interpreter used to run it.
|
|
||||||
|
|
||||||
The "Corresponding Source" for a work in object code form means all
|
|
||||||
the source code needed to generate, install, and (for an executable
|
|
||||||
work) run the object code and to modify the work, including scripts to
|
|
||||||
control those activities. However, it does not include the work's
|
|
||||||
System Libraries, or general-purpose tools or generally available free
|
|
||||||
programs which are used unmodified in performing those activities but
|
|
||||||
which are not part of the work. For example, Corresponding Source
|
|
||||||
includes interface definition files associated with source files for
|
|
||||||
the work, and the source code for shared libraries and dynamically
|
|
||||||
linked subprograms that the work is specifically designed to require,
|
|
||||||
such as by intimate data communication or control flow between those
|
|
||||||
subprograms and other parts of the work.
|
|
||||||
|
|
||||||
The Corresponding Source need not include anything that users
|
|
||||||
can regenerate automatically from other parts of the Corresponding
|
|
||||||
Source.
|
|
||||||
|
|
||||||
The Corresponding Source for a work in source code form is that
|
|
||||||
same work.
|
|
||||||
|
|
||||||
2. Basic Permissions.
|
|
||||||
|
|
||||||
All rights granted under this License are granted for the term of
|
|
||||||
copyright on the Program, and are irrevocable provided the stated
|
|
||||||
conditions are met. This License explicitly affirms your unlimited
|
|
||||||
permission to run the unmodified Program. The output from running a
|
|
||||||
covered work is covered by this License only if the output, given its
|
|
||||||
content, constitutes a covered work. This License acknowledges your
|
|
||||||
rights of fair use or other equivalent, as provided by copyright law.
|
|
||||||
|
|
||||||
You may make, run and propagate covered works that you do not
|
|
||||||
convey, without conditions so long as your license otherwise remains
|
|
||||||
in force. You may convey covered works to others for the sole purpose
|
|
||||||
of having them make modifications exclusively for you, or provide you
|
|
||||||
with facilities for running those works, provided that you comply with
|
|
||||||
the terms of this License in conveying all material for which you do
|
|
||||||
not control copyright. Those thus making or running the covered works
|
|
||||||
for you must do so exclusively on your behalf, under your direction
|
|
||||||
and control, on terms that prohibit them from making any copies of
|
|
||||||
your copyrighted material outside their relationship with you.
|
|
||||||
|
|
||||||
Conveying under any other circumstances is permitted solely under
|
|
||||||
the conditions stated below. Sublicensing is not allowed; section 10
|
|
||||||
makes it unnecessary.
|
|
||||||
|
|
||||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
|
||||||
|
|
||||||
No covered work shall be deemed part of an effective technological
|
|
||||||
measure under any applicable law fulfilling obligations under article
|
|
||||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
|
||||||
similar laws prohibiting or restricting circumvention of such
|
|
||||||
measures.
|
|
||||||
|
|
||||||
When you convey a covered work, you waive any legal power to forbid
|
|
||||||
circumvention of technological measures to the extent such circumvention
|
|
||||||
is effected by exercising rights under this License with respect to
|
|
||||||
the covered work, and you disclaim any intention to limit operation or
|
|
||||||
modification of the work as a means of enforcing, against the work's
|
|
||||||
users, your or third parties' legal rights to forbid circumvention of
|
|
||||||
technological measures.
|
|
||||||
|
|
||||||
4. Conveying Verbatim Copies.
|
|
||||||
|
|
||||||
You may convey verbatim copies of the Program's source code as you
|
|
||||||
receive it, in any medium, provided that you conspicuously and
|
|
||||||
appropriately publish on each copy an appropriate copyright notice;
|
|
||||||
keep intact all notices stating that this License and any
|
|
||||||
non-permissive terms added in accord with section 7 apply to the code;
|
|
||||||
keep intact all notices of the absence of any warranty; and give all
|
|
||||||
recipients a copy of this License along with the Program.
|
|
||||||
|
|
||||||
You may charge any price or no price for each copy that you convey,
|
|
||||||
and you may offer support or warranty protection for a fee.
|
|
||||||
|
|
||||||
5. Conveying Modified Source Versions.
|
|
||||||
|
|
||||||
You may convey a work based on the Program, or the modifications to
|
|
||||||
produce it from the Program, in the form of source code under the
|
|
||||||
terms of section 4, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The work must carry prominent notices stating that you modified
|
|
||||||
it, and giving a relevant date.
|
|
||||||
|
|
||||||
b) The work must carry prominent notices stating that it is
|
|
||||||
released under this License and any conditions added under section
|
|
||||||
7. This requirement modifies the requirement in section 4 to
|
|
||||||
"keep intact all notices".
|
|
||||||
|
|
||||||
c) You must license the entire work, as a whole, under this
|
|
||||||
License to anyone who comes into possession of a copy. This
|
|
||||||
License will therefore apply, along with any applicable section 7
|
|
||||||
additional terms, to the whole of the work, and all its parts,
|
|
||||||
regardless of how they are packaged. This License gives no
|
|
||||||
permission to license the work in any other way, but it does not
|
|
||||||
invalidate such permission if you have separately received it.
|
|
||||||
|
|
||||||
d) If the work has interactive user interfaces, each must display
|
|
||||||
Appropriate Legal Notices; however, if the Program has interactive
|
|
||||||
interfaces that do not display Appropriate Legal Notices, your
|
|
||||||
work need not make them do so.
|
|
||||||
|
|
||||||
A compilation of a covered work with other separate and independent
|
|
||||||
works, which are not by their nature extensions of the covered work,
|
|
||||||
and which are not combined with it such as to form a larger program,
|
|
||||||
in or on a volume of a storage or distribution medium, is called an
|
|
||||||
"aggregate" if the compilation and its resulting copyright are not
|
|
||||||
used to limit the access or legal rights of the compilation's users
|
|
||||||
beyond what the individual works permit. Inclusion of a covered work
|
|
||||||
in an aggregate does not cause this License to apply to the other
|
|
||||||
parts of the aggregate.
|
|
||||||
|
|
||||||
6. Conveying Non-Source Forms.
|
|
||||||
|
|
||||||
You may convey a covered work in object code form under the terms
|
|
||||||
of sections 4 and 5, provided that you also convey the
|
|
||||||
machine-readable Corresponding Source under the terms of this License,
|
|
||||||
in one of these ways:
|
|
||||||
|
|
||||||
a) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by the
|
|
||||||
Corresponding Source fixed on a durable physical medium
|
|
||||||
customarily used for software interchange.
|
|
||||||
|
|
||||||
b) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by a
|
|
||||||
written offer, valid for at least three years and valid for as
|
|
||||||
long as you offer spare parts or customer support for that product
|
|
||||||
model, to give anyone who possesses the object code either (1) a
|
|
||||||
copy of the Corresponding Source for all the software in the
|
|
||||||
product that is covered by this License, on a durable physical
|
|
||||||
medium customarily used for software interchange, for a price no
|
|
||||||
more than your reasonable cost of physically performing this
|
|
||||||
conveying of source, or (2) access to copy the
|
|
||||||
Corresponding Source from a network server at no charge.
|
|
||||||
|
|
||||||
c) Convey individual copies of the object code with a copy of the
|
|
||||||
written offer to provide the Corresponding Source. This
|
|
||||||
alternative is allowed only occasionally and noncommercially, and
|
|
||||||
only if you received the object code with such an offer, in accord
|
|
||||||
with subsection 6b.
|
|
||||||
|
|
||||||
d) Convey the object code by offering access from a designated
|
|
||||||
place (gratis or for a charge), and offer equivalent access to the
|
|
||||||
Corresponding Source in the same way through the same place at no
|
|
||||||
further charge. You need not require recipients to copy the
|
|
||||||
Corresponding Source along with the object code. If the place to
|
|
||||||
copy the object code is a network server, the Corresponding Source
|
|
||||||
may be on a different server (operated by you or a third party)
|
|
||||||
that supports equivalent copying facilities, provided you maintain
|
|
||||||
clear directions next to the object code saying where to find the
|
|
||||||
Corresponding Source. Regardless of what server hosts the
|
|
||||||
Corresponding Source, you remain obligated to ensure that it is
|
|
||||||
available for as long as needed to satisfy these requirements.
|
|
||||||
|
|
||||||
e) Convey the object code using peer-to-peer transmission, provided
|
|
||||||
you inform other peers where the object code and Corresponding
|
|
||||||
Source of the work are being offered to the general public at no
|
|
||||||
charge under subsection 6d.
|
|
||||||
|
|
||||||
A separable portion of the object code, whose source code is excluded
|
|
||||||
from the Corresponding Source as a System Library, need not be
|
|
||||||
included in conveying the object code work.
|
|
||||||
|
|
||||||
A "User Product" is either (1) a "consumer product", which means any
|
|
||||||
tangible personal property which is normally used for personal, family,
|
|
||||||
or household purposes, or (2) anything designed or sold for incorporation
|
|
||||||
into a dwelling. In determining whether a product is a consumer product,
|
|
||||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
|
||||||
product received by a particular user, "normally used" refers to a
|
|
||||||
typical or common use of that class of product, regardless of the status
|
|
||||||
of the particular user or of the way in which the particular user
|
|
||||||
actually uses, or expects or is expected to use, the product. A product
|
|
||||||
is a consumer product regardless of whether the product has substantial
|
|
||||||
commercial, industrial or non-consumer uses, unless such uses represent
|
|
||||||
the only significant mode of use of the product.
|
|
||||||
|
|
||||||
"Installation Information" for a User Product means any methods,
|
|
||||||
procedures, authorization keys, or other information required to install
|
|
||||||
and execute modified versions of a covered work in that User Product from
|
|
||||||
a modified version of its Corresponding Source. The information must
|
|
||||||
suffice to ensure that the continued functioning of the modified object
|
|
||||||
code is in no case prevented or interfered with solely because
|
|
||||||
modification has been made.
|
|
||||||
|
|
||||||
If you convey an object code work under this section in, or with, or
|
|
||||||
specifically for use in, a User Product, and the conveying occurs as
|
|
||||||
part of a transaction in which the right of possession and use of the
|
|
||||||
User Product is transferred to the recipient in perpetuity or for a
|
|
||||||
fixed term (regardless of how the transaction is characterized), the
|
|
||||||
Corresponding Source conveyed under this section must be accompanied
|
|
||||||
by the Installation Information. But this requirement does not apply
|
|
||||||
if neither you nor any third party retains the ability to install
|
|
||||||
modified object code on the User Product (for example, the work has
|
|
||||||
been installed in ROM).
|
|
||||||
|
|
||||||
The requirement to provide Installation Information does not include a
|
|
||||||
requirement to continue to provide support service, warranty, or updates
|
|
||||||
for a work that has been modified or installed by the recipient, or for
|
|
||||||
the User Product in which it has been modified or installed. Access to a
|
|
||||||
network may be denied when the modification itself materially and
|
|
||||||
adversely affects the operation of the network or violates the rules and
|
|
||||||
protocols for communication across the network.
|
|
||||||
|
|
||||||
Corresponding Source conveyed, and Installation Information provided,
|
|
||||||
in accord with this section must be in a format that is publicly
|
|
||||||
documented (and with an implementation available to the public in
|
|
||||||
source code form), and must require no special password or key for
|
|
||||||
unpacking, reading or copying.
|
|
||||||
|
|
||||||
7. Additional Terms.
|
|
||||||
|
|
||||||
"Additional permissions" are terms that supplement the terms of this
|
|
||||||
License by making exceptions from one or more of its conditions.
|
|
||||||
Additional permissions that are applicable to the entire Program shall
|
|
||||||
be treated as though they were included in this License, to the extent
|
|
||||||
that they are valid under applicable law. If additional permissions
|
|
||||||
apply only to part of the Program, that part may be used separately
|
|
||||||
under those permissions, but the entire Program remains governed by
|
|
||||||
this License without regard to the additional permissions.
|
|
||||||
|
|
||||||
When you convey a copy of a covered work, you may at your option
|
|
||||||
remove any additional permissions from that copy, or from any part of
|
|
||||||
it. (Additional permissions may be written to require their own
|
|
||||||
removal in certain cases when you modify the work.) You may place
|
|
||||||
additional permissions on material, added by you to a covered work,
|
|
||||||
for which you have or can give appropriate copyright permission.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, for material you
|
|
||||||
add to a covered work, you may (if authorized by the copyright holders of
|
|
||||||
that material) supplement the terms of this License with terms:
|
|
||||||
|
|
||||||
a) Disclaiming warranty or limiting liability differently from the
|
|
||||||
terms of sections 15 and 16 of this License; or
|
|
||||||
|
|
||||||
b) Requiring preservation of specified reasonable legal notices or
|
|
||||||
author attributions in that material or in the Appropriate Legal
|
|
||||||
Notices displayed by works containing it; or
|
|
||||||
|
|
||||||
c) Prohibiting misrepresentation of the origin of that material, or
|
|
||||||
requiring that modified versions of such material be marked in
|
|
||||||
reasonable ways as different from the original version; or
|
|
||||||
|
|
||||||
d) Limiting the use for publicity purposes of names of licensors or
|
|
||||||
authors of the material; or
|
|
||||||
|
|
||||||
e) Declining to grant rights under trademark law for use of some
|
|
||||||
trade names, trademarks, or service marks; or
|
|
||||||
|
|
||||||
f) Requiring indemnification of licensors and authors of that
|
|
||||||
material by anyone who conveys the material (or modified versions of
|
|
||||||
it) with contractual assumptions of liability to the recipient, for
|
|
||||||
any liability that these contractual assumptions directly impose on
|
|
||||||
those licensors and authors.
|
|
||||||
|
|
||||||
All other non-permissive additional terms are considered "further
|
|
||||||
restrictions" within the meaning of section 10. If the Program as you
|
|
||||||
received it, or any part of it, contains a notice stating that it is
|
|
||||||
governed by this License along with a term that is a further
|
|
||||||
restriction, you may remove that term. If a license document contains
|
|
||||||
a further restriction but permits relicensing or conveying under this
|
|
||||||
License, you may add to a covered work material governed by the terms
|
|
||||||
of that license document, provided that the further restriction does
|
|
||||||
not survive such relicensing or conveying.
|
|
||||||
|
|
||||||
If you add terms to a covered work in accord with this section, you
|
|
||||||
must place, in the relevant source files, a statement of the
|
|
||||||
additional terms that apply to those files, or a notice indicating
|
|
||||||
where to find the applicable terms.
|
|
||||||
|
|
||||||
Additional terms, permissive or non-permissive, may be stated in the
|
|
||||||
form of a separately written license, or stated as exceptions;
|
|
||||||
the above requirements apply either way.
|
|
||||||
|
|
||||||
8. Termination.
|
|
||||||
|
|
||||||
You may not propagate or modify a covered work except as expressly
|
|
||||||
provided under this License. Any attempt otherwise to propagate or
|
|
||||||
modify it is void, and will automatically terminate your rights under
|
|
||||||
this License (including any patent licenses granted under the third
|
|
||||||
paragraph of section 11).
|
|
||||||
|
|
||||||
However, if you cease all violation of this License, then your
|
|
||||||
license from a particular copyright holder is reinstated (a)
|
|
||||||
provisionally, unless and until the copyright holder explicitly and
|
|
||||||
finally terminates your license, and (b) permanently, if the copyright
|
|
||||||
holder fails to notify you of the violation by some reasonable means
|
|
||||||
prior to 60 days after the cessation.
|
|
||||||
|
|
||||||
Moreover, your license from a particular copyright holder is
|
|
||||||
reinstated permanently if the copyright holder notifies you of the
|
|
||||||
violation by some reasonable means, this is the first time you have
|
|
||||||
received notice of violation of this License (for any work) from that
|
|
||||||
copyright holder, and you cure the violation prior to 30 days after
|
|
||||||
your receipt of the notice.
|
|
||||||
|
|
||||||
Termination of your rights under this section does not terminate the
|
|
||||||
licenses of parties who have received copies or rights from you under
|
|
||||||
this License. If your rights have been terminated and not permanently
|
|
||||||
reinstated, you do not qualify to receive new licenses for the same
|
|
||||||
material under section 10.
|
|
||||||
|
|
||||||
9. Acceptance Not Required for Having Copies.
|
|
||||||
|
|
||||||
You are not required to accept this License in order to receive or
|
|
||||||
run a copy of the Program. Ancillary propagation of a covered work
|
|
||||||
occurring solely as a consequence of using peer-to-peer transmission
|
|
||||||
to receive a copy likewise does not require acceptance. However,
|
|
||||||
nothing other than this License grants you permission to propagate or
|
|
||||||
modify any covered work. These actions infringe copyright if you do
|
|
||||||
not accept this License. Therefore, by modifying or propagating a
|
|
||||||
covered work, you indicate your acceptance of this License to do so.
|
|
||||||
|
|
||||||
10. Automatic Licensing of Downstream Recipients.
|
|
||||||
|
|
||||||
Each time you convey a covered work, the recipient automatically
|
|
||||||
receives a license from the original licensors, to run, modify and
|
|
||||||
propagate that work, subject to this License. You are not responsible
|
|
||||||
for enforcing compliance by third parties with this License.
|
|
||||||
|
|
||||||
An "entity transaction" is a transaction transferring control of an
|
|
||||||
organization, or substantially all assets of one, or subdividing an
|
|
||||||
organization, or merging organizations. If propagation of a covered
|
|
||||||
work results from an entity transaction, each party to that
|
|
||||||
transaction who receives a copy of the work also receives whatever
|
|
||||||
licenses to the work the party's predecessor in interest had or could
|
|
||||||
give under the previous paragraph, plus a right to possession of the
|
|
||||||
Corresponding Source of the work from the predecessor in interest, if
|
|
||||||
the predecessor has it or can get it with reasonable efforts.
|
|
||||||
|
|
||||||
You may not impose any further restrictions on the exercise of the
|
|
||||||
rights granted or affirmed under this License. For example, you may
|
|
||||||
not impose a license fee, royalty, or other charge for exercise of
|
|
||||||
rights granted under this License, and you may not initiate litigation
|
|
||||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
|
||||||
any patent claim is infringed by making, using, selling, offering for
|
|
||||||
sale, or importing the Program or any portion of it.
|
|
||||||
|
|
||||||
11. Patents.
|
|
||||||
|
|
||||||
A "contributor" is a copyright holder who authorizes use under this
|
|
||||||
License of the Program or a work on which the Program is based. The
|
|
||||||
work thus licensed is called the contributor's "contributor version".
|
|
||||||
|
|
||||||
A contributor's "essential patent claims" are all patent claims
|
|
||||||
owned or controlled by the contributor, whether already acquired or
|
|
||||||
hereafter acquired, that would be infringed by some manner, permitted
|
|
||||||
by this License, of making, using, or selling its contributor version,
|
|
||||||
but do not include claims that would be infringed only as a
|
|
||||||
consequence of further modification of the contributor version. For
|
|
||||||
purposes of this definition, "control" includes the right to grant
|
|
||||||
patent sublicenses in a manner consistent with the requirements of
|
|
||||||
this License.
|
|
||||||
|
|
||||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
|
||||||
patent license under the contributor's essential patent claims, to
|
|
||||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
|
||||||
propagate the contents of its contributor version.
|
|
||||||
|
|
||||||
In the following three paragraphs, a "patent license" is any express
|
|
||||||
agreement or commitment, however denominated, not to enforce a patent
|
|
||||||
(such as an express permission to practice a patent or covenant not to
|
|
||||||
sue for patent infringement). To "grant" such a patent license to a
|
|
||||||
party means to make such an agreement or commitment not to enforce a
|
|
||||||
patent against the party.
|
|
||||||
|
|
||||||
If you convey a covered work, knowingly relying on a patent license,
|
|
||||||
and the Corresponding Source of the work is not available for anyone
|
|
||||||
to copy, free of charge and under the terms of this License, through a
|
|
||||||
publicly available network server or other readily accessible means,
|
|
||||||
then you must either (1) cause the Corresponding Source to be so
|
|
||||||
available, or (2) arrange to deprive yourself of the benefit of the
|
|
||||||
patent license for this particular work, or (3) arrange, in a manner
|
|
||||||
consistent with the requirements of this License, to extend the patent
|
|
||||||
license to downstream recipients. "Knowingly relying" means you have
|
|
||||||
actual knowledge that, but for the patent license, your conveying the
|
|
||||||
covered work in a country, or your recipient's use of the covered work
|
|
||||||
in a country, would infringe one or more identifiable patents in that
|
|
||||||
country that you have reason to believe are valid.
|
|
||||||
|
|
||||||
If, pursuant to or in connection with a single transaction or
|
|
||||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
|
||||||
covered work, and grant a patent license to some of the parties
|
|
||||||
receiving the covered work authorizing them to use, propagate, modify
|
|
||||||
or convey a specific copy of the covered work, then the patent license
|
|
||||||
you grant is automatically extended to all recipients of the covered
|
|
||||||
work and works based on it.
|
|
||||||
|
|
||||||
A patent license is "discriminatory" if it does not include within
|
|
||||||
the scope of its coverage, prohibits the exercise of, or is
|
|
||||||
conditioned on the non-exercise of one or more of the rights that are
|
|
||||||
specifically granted under this License. You may not convey a covered
|
|
||||||
work if you are a party to an arrangement with a third party that is
|
|
||||||
in the business of distributing software, under which you make payment
|
|
||||||
to the third party based on the extent of your activity of conveying
|
|
||||||
the work, and under which the third party grants, to any of the
|
|
||||||
parties who would receive the covered work from you, a discriminatory
|
|
||||||
patent license (a) in connection with copies of the covered work
|
|
||||||
conveyed by you (or copies made from those copies), or (b) primarily
|
|
||||||
for and in connection with specific products or compilations that
|
|
||||||
contain the covered work, unless you entered into that arrangement,
|
|
||||||
or that patent license was granted, prior to 28 March 2007.
|
|
||||||
|
|
||||||
Nothing in this License shall be construed as excluding or limiting
|
|
||||||
any implied license or other defenses to infringement that may
|
|
||||||
otherwise be available to you under applicable patent law.
|
|
||||||
|
|
||||||
12. No Surrender of Others' Freedom.
|
|
||||||
|
|
||||||
If conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot convey a
|
|
||||||
covered work so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you may
|
|
||||||
not convey it at all. For example, if you agree to terms that obligate you
|
|
||||||
to collect a royalty for further conveying from those to whom you convey
|
|
||||||
the Program, the only way you could satisfy both those terms and this
|
|
||||||
License would be to refrain entirely from conveying the Program.
|
|
||||||
|
|
||||||
13. Use with the GNU Affero General Public License.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, you have
|
|
||||||
permission to link or combine any covered work with a work licensed
|
|
||||||
under version 3 of the GNU Affero General Public License into a single
|
|
||||||
combined work, and to convey the resulting work. The terms of this
|
|
||||||
License will continue to apply to the part which is the covered work,
|
|
||||||
but the special requirements of the GNU Affero General Public License,
|
|
||||||
section 13, concerning interaction through a network will apply to the
|
|
||||||
combination as such.
|
|
||||||
|
|
||||||
14. Revised Versions of this License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions of
|
|
||||||
the GNU General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the
|
|
||||||
Program specifies that a certain numbered version of the GNU General
|
|
||||||
Public License "or any later version" applies to it, you have the
|
|
||||||
option of following the terms and conditions either of that numbered
|
|
||||||
version or of any later version published by the Free Software
|
|
||||||
Foundation. If the Program does not specify a version number of the
|
|
||||||
GNU General Public License, you may choose any version ever published
|
|
||||||
by the Free Software Foundation.
|
|
||||||
|
|
||||||
If the Program specifies that a proxy can decide which future
|
|
||||||
versions of the GNU General Public License can be used, that proxy's
|
|
||||||
public statement of acceptance of a version permanently authorizes you
|
|
||||||
to choose that version for the Program.
|
|
||||||
|
|
||||||
Later license versions may give you additional or different
|
|
||||||
permissions. However, no additional obligations are imposed on any
|
|
||||||
author or copyright holder as a result of your choosing to follow a
|
|
||||||
later version.
|
|
||||||
|
|
||||||
15. Disclaimer of Warranty.
|
|
||||||
|
|
||||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
|
||||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
|
||||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
|
||||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
|
||||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
|
||||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. Limitation of Liability.
|
|
||||||
|
|
||||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
|
||||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
|
||||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
|
||||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
|
||||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
|
||||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
|
||||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGES.
|
|
||||||
|
|
||||||
17. Interpretation of Sections 15 and 16.
|
|
||||||
|
|
||||||
If the disclaimer of warranty and limitation of liability provided
|
|
||||||
above cannot be given local legal effect according to their terms,
|
|
||||||
reviewing courts shall apply local law that most closely approximates
|
|
||||||
an absolute waiver of all civil liability in connection with the
|
|
||||||
Program, unless a warranty or assumption of liability accompanies a
|
|
||||||
copy of the Program in return for a fee.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
state the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program does terminal interaction, make it output a short
|
|
||||||
notice like this when it starts in an interactive mode:
|
|
||||||
|
|
||||||
<program> Copyright (C) <year> <name of author>
|
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, your program's commands
|
|
||||||
might be different; for a GUI interface, you would use an "about box".
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or school,
|
|
||||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
|
||||||
For more information on this, and how to apply and follow the GNU GPL, see
|
|
||||||
<http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
The GNU General Public License does not permit incorporating your program
|
|
||||||
into proprietary programs. If your program is a subroutine library, you
|
|
||||||
may consider it more useful to permit linking proprietary applications with
|
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
|
||||||
Public License instead of this License. But first, please read
|
|
||||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
|
18
Makefile
18
Makefile
@ -1,18 +0,0 @@
|
|||||||
#!/usr/bin/make -f
|
|
||||||
|
|
||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## genmkfile - Makefile - version 1.5
|
|
||||||
|
|
||||||
## This is a copy.
|
|
||||||
## master location:
|
|
||||||
## https://github.com/Whonix/genmkfile/blob/master/usr/share/genmkfile/Makefile
|
|
||||||
|
|
||||||
GENMKFILE_PATH ?= /usr/share/genmkfile
|
|
||||||
GENMKFILE_ROOT_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
|
||||||
|
|
||||||
export GENMKFILE_PATH
|
|
||||||
export GENMKFILE_ROOT_DIR
|
|
||||||
|
|
||||||
include $(GENMKFILE_PATH)/makefile-full
|
|
68
README_generic.md
Normal file
68
README_generic.md
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Enhances Miscellaneous Security Settings #
|
||||||
|
|
||||||
|
https://github.com/Kicksecure/security-misc/blob/master/README.md
|
||||||
|
|
||||||
|
https://www.kicksecure.com/wiki/Security-misc
|
||||||
|
|
||||||
|
Discussion:
|
||||||
|
|
||||||
|
Happening primarily in Whonix forums.
|
||||||
|
https://forums.whonix.org/t/kernel-hardening/7296
|
||||||
|
|
||||||
|
## How to install `security-misc` using apt-get ##
|
||||||
|
|
||||||
|
1\. Download the APT Signing Key.
|
||||||
|
|
||||||
|
```
|
||||||
|
wget https://www.kicksecure.com/keys/derivative.asc
|
||||||
|
```
|
||||||
|
|
||||||
|
Users can [check the Signing Key](https://www.kicksecure.com/wiki/Signing_Key) for better security.
|
||||||
|
|
||||||
|
2\. Add the APT Signing Key.
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo cp ~/derivative.asc /usr/share/keyrings/derivative.asc
|
||||||
|
```
|
||||||
|
|
||||||
|
3\. Add the derivative repository.
|
||||||
|
|
||||||
|
```
|
||||||
|
echo "deb [signed-by=/usr/share/keyrings/derivative.asc] https://deb.kicksecure.com bookworm main contrib non-free" | sudo tee /etc/apt/sources.list.d/derivative.list
|
||||||
|
```
|
||||||
|
|
||||||
|
4\. Update your package lists.
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo apt-get update
|
||||||
|
```
|
||||||
|
|
||||||
|
5\. Install `security-misc`.
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo apt-get install security-misc
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to Build deb Package from Source Code ##
|
||||||
|
|
||||||
|
Can be build using standard Debian package build tools such as:
|
||||||
|
|
||||||
|
```
|
||||||
|
dpkg-buildpackage -b
|
||||||
|
```
|
||||||
|
|
||||||
|
See instructions.
|
||||||
|
|
||||||
|
NOTE: Replace `generic-package` with the actual name of this package `security-misc`.
|
||||||
|
|
||||||
|
* **A)** [easy](https://www.kicksecure.com/wiki/Dev/Build_Documentation/generic-package/easy), _OR_
|
||||||
|
* **B)** [including verifying software signatures](https://www.kicksecure.com/wiki/Dev/Build_Documentation/generic-package)
|
||||||
|
|
||||||
|
## Contact ##
|
||||||
|
|
||||||
|
* [Free Forum Support](https://forums.kicksecure.com)
|
||||||
|
* [Premium Support](https://www.kicksecure.com/wiki/Premium_Support)
|
||||||
|
|
||||||
|
## Donate ##
|
||||||
|
|
||||||
|
`security-misc` requires [donations](https://www.kicksecure.com/wiki/Donate) to stay alive!
|
11194
changelog.upstream
11194
changelog.upstream
File diff suppressed because it is too large
Load Diff
2126
debian/changelog
vendored
2126
debian/changelog
vendored
File diff suppressed because it is too large
Load Diff
1
debian/compat
vendored
1
debian/compat
vendored
@ -1 +0,0 @@
|
|||||||
12
|
|
348
debian/control
vendored
348
debian/control
vendored
@ -1,331 +1,41 @@
|
|||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@kicksecure.com>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
Source: security-misc
|
Source: security-misc
|
||||||
Section: misc
|
Section: misc
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Patrick Schleizer <adrelanos@riseup.net>
|
Maintainer: Patrick Schleizer <adrelanos@kicksecure.com>
|
||||||
Build-Depends: debhelper (>= 12), genmkfile, config-package-dev, dh-apparmor,
|
Build-Depends: config-package-dev,
|
||||||
ronn
|
debhelper (>= 13),
|
||||||
Homepage: https://github.com/Whonix/security-misc
|
debhelper-compat (= 13),
|
||||||
Vcs-Browser: https://github.com/Whonix/security-misc
|
dh-apparmor,
|
||||||
Vcs-Git: https://github.com/Whonix/security-misc.git
|
po-debconf
|
||||||
Standards-Version: 4.3.0
|
Homepage: https://www.kicksecure.com/wiki/Security-misc
|
||||||
|
Vcs-Browser: https://github.com/Kicksecure/security-misc
|
||||||
|
Vcs-Git: https://github.com/Kicksecure/security-misc.git
|
||||||
|
Standards-Version: 4.6.2
|
||||||
|
Rules-Requires-Root: no
|
||||||
|
|
||||||
Package: security-misc
|
Package: security-misc
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: python, libglib2.0-bin, libpam-runtime, sudo, adduser, libcap2-bin,
|
Depends: adduser,
|
||||||
apparmor-profile-anondist, helper-scripts, ${misc:Depends}
|
apparmor-profile-dist,
|
||||||
Replaces: tcp-timestamps-disable
|
dmsetup,
|
||||||
Description: enhances misc security settings
|
helper-scripts,
|
||||||
Inspired by Kernel Self Protection Project (KSPP)
|
libcap2-bin,
|
||||||
|
libglib2.0-bin,
|
||||||
|
libpam-modules-bin,
|
||||||
|
libpam-runtime,
|
||||||
|
libpam-umask,
|
||||||
|
python3,
|
||||||
|
secure-delete,
|
||||||
|
sudo,
|
||||||
|
${misc:Depends}
|
||||||
|
Replaces: anon-gpg-tweaks, swappiness-lowest, tcp-timestamps-disable
|
||||||
|
Description: Enhances Miscellaneous Security Settings
|
||||||
|
https://github.com/Kicksecure/security-misc/blob/master/README.md
|
||||||
.
|
.
|
||||||
* Implements most if not all recommended Linux kernel settings (sysctl) and
|
https://www.kicksecure.com/wiki/Security-misc
|
||||||
kernel parameters by KSPP.
|
|
||||||
.
|
|
||||||
* https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project
|
|
||||||
.
|
|
||||||
kernel hardening:
|
|
||||||
.
|
|
||||||
* deactivates Netfilter's connection tracking helper
|
|
||||||
Netfilter's connection tracking helper module increases kernel attack
|
|
||||||
surface by enabling superfluous functionality such as IRC parsing in
|
|
||||||
the kernel. (!) Hence, this package disables this feature by shipping the
|
|
||||||
/etc/modprobe.d/30_nf_conntrack_helper_disable.conf configuration file.
|
|
||||||
.
|
|
||||||
* Kernel symbols in various files in /proc are hidden as they can be
|
|
||||||
very useful for kernel exploits.
|
|
||||||
.
|
|
||||||
* Kexec is disabled as it can be used to load a malicious kernel.
|
|
||||||
/etc/sysctl.d/kexec.conf
|
|
||||||
.
|
|
||||||
* ASLR effectiveness for mmap is increased.
|
|
||||||
.
|
|
||||||
* The TCP/IP stack is hardened by disabling ICMP redirect acceptance,
|
|
||||||
ICMP redirect sending and source routing to prevent man-in-the-middle attacks,
|
|
||||||
ignoring all ICMP requests, enabling TCP syncookies to prevent SYN flood
|
|
||||||
attacks, enabling RFC1337 to protect against time-wait assassination
|
|
||||||
attacks and enabling reverse path filtering to prevent IP spoofing and
|
|
||||||
mitigate vulnerabilities such as CVE-2019-14899.
|
|
||||||
.
|
|
||||||
* Some data spoofing attacks are made harder.
|
|
||||||
.
|
|
||||||
* SACK can be disabled as it is commonly exploited and is rarely used by
|
|
||||||
uncommenting settings in file /etc/sysctl.d/tcp_sack.conf.
|
|
||||||
.
|
|
||||||
* Slab merging is disabled as sometimes a slab can be used in a vulnerable
|
|
||||||
way which an attacker can exploit.
|
|
||||||
.
|
|
||||||
* Sanity checks and redzoning are enabled.
|
|
||||||
.
|
|
||||||
* Memory zeroing at allocation and free time is enabled.
|
|
||||||
.
|
|
||||||
* Machine checks (MCE) are disabled which makes the kernel panic
|
|
||||||
on uncorrectable errors in ECC memory that could be exploited.
|
|
||||||
.
|
|
||||||
* Kernel Page Table Isolation is enabled to mitigate Meltdown and increase
|
|
||||||
KASLR effectiveness.
|
|
||||||
.
|
|
||||||
* SMT is disabled as it can be used to exploit the MDS and other
|
|
||||||
vulnerabilities.
|
|
||||||
.
|
|
||||||
* All mitigations for the MDS vulnerability are enabled.
|
|
||||||
.
|
|
||||||
* A systemd service clears System.map on boot as these contain kernel symbols
|
|
||||||
that could be useful to an attacker.
|
|
||||||
/etc/kernel/postinst.d/30_remove-system-map
|
|
||||||
/lib/systemd/system/remove-system-map.service
|
|
||||||
/usr/lib/security-misc/remove-system.map
|
|
||||||
.
|
|
||||||
* Coredumps are disabled as they may contain important information such as
|
|
||||||
encryption keys or passwords.
|
|
||||||
/etc/security/limits.d/disable-coredumps.conf
|
|
||||||
/etc/sysctl.d/coredumps.conf
|
|
||||||
/lib/systemd/coredump.conf.d/disable-coredumps.conf
|
|
||||||
.
|
|
||||||
* The thunderbolt and firewire kernel modules are blacklisted as they can be
|
|
||||||
used for DMA (Direct Memory Access) attacks.
|
|
||||||
.
|
|
||||||
* IOMMU is enabled with a boot parameter to prevent DMA attacks.
|
|
||||||
.
|
|
||||||
* The kernel now panics on oopses to prevent it from continuing running a
|
|
||||||
flawed process.
|
|
||||||
.
|
|
||||||
* Bluetooth is blacklisted to reduce attack surface. Bluetooth also has
|
|
||||||
a history of security concerns.
|
|
||||||
https://en.wikipedia.org/wiki/Bluetooth#History_of_security_concerns
|
|
||||||
.
|
|
||||||
* A systemd service restricts /proc/cpuinfo, /proc/bus, /proc/scsi and
|
|
||||||
/sys to the root user only. This hides a lot of hardware identifiers from
|
|
||||||
unprivileged users and increases security as /sys exposes a lot of information
|
|
||||||
that shouldn't be accessible to unprivileged users. As this will break many
|
|
||||||
things, it is disabled by default and can optionally be enabled by running
|
|
||||||
`systemctl enable hide-hardware-info.service` as root.
|
|
||||||
/usr/lib/security-misc/hide-hardware-info
|
|
||||||
/lib/systemd/system/hide-hardware-info.service
|
|
||||||
/lib/systemd/system/user@.service.d/sysfs.conf
|
|
||||||
/etc/hide-hardware-info.d/30_default.conf
|
|
||||||
.
|
|
||||||
* The MSR kernel module is blacklisted to prevent CPU MSRs from being
|
|
||||||
abused to write to arbitrary memory.
|
|
||||||
.
|
|
||||||
* Vsyscalls are disabled as they are obsolete, are at fixed addresses and are
|
|
||||||
a target for ROP.
|
|
||||||
.
|
|
||||||
* Page allocator freelist randomization is enabled.
|
|
||||||
.
|
|
||||||
* The vivid kernel module is blacklisted as it's only required for testing
|
|
||||||
and has been the cause of multiple vulnerabilities.
|
|
||||||
.
|
|
||||||
* The kernel panics on oopses to prevent it from continuing to run a flawed
|
|
||||||
process and to deter brute forcing.
|
|
||||||
.
|
|
||||||
Improve Entropy Collection
|
|
||||||
.
|
|
||||||
* Load jitterentropy_rng kernel module.
|
|
||||||
/usr/lib/modules-load.d/30_security-misc.conf
|
|
||||||
.
|
|
||||||
* Distrusts the CPU for initial entropy at boot as it is not possible to
|
|
||||||
audit, may contain weaknesses or a backdoor.
|
|
||||||
* https://en.wikipedia.org/wiki/RDRAND#Reception
|
|
||||||
* https://twitter.com/pid_eins/status/1149649806056280069
|
|
||||||
* For more references, see:
|
|
||||||
* /etc/default/grub.d/40_distrust_cpu.cfg
|
|
||||||
.
|
|
||||||
Uncommon network protocols are blacklisted:
|
|
||||||
These are rarely used and may have unknown vulnerabilities.
|
|
||||||
/etc/modprobe.d/uncommon-network-protocols.conf
|
|
||||||
The network protocols that are blacklisted are:
|
|
||||||
.
|
|
||||||
* DCCP - Datagram Congestion Control Protocol
|
|
||||||
* SCTP - Stream Control Transmission Protocol
|
|
||||||
* RDS - Reliable Datagram Sockets
|
|
||||||
* TIPC - Transparent Inter-process Communication
|
|
||||||
* HDLC - High-Level Data Link Control
|
|
||||||
* AX25 - Amateur X.25
|
|
||||||
* NetRom
|
|
||||||
* X25
|
|
||||||
* ROSE
|
|
||||||
* DECnet
|
|
||||||
* Econet
|
|
||||||
* af_802154 - IEEE 802.15.4
|
|
||||||
* IPX - Internetwork Packet Exchange
|
|
||||||
* AppleTalk
|
|
||||||
* PSNAP - Subnetwork Access Protocol
|
|
||||||
* p8023 - Novell raw IEEE 802.3
|
|
||||||
* p8022 - IEEE 802.2
|
|
||||||
.
|
|
||||||
user restrictions:
|
|
||||||
.
|
|
||||||
* remount /home, /tmp, /dev/shm and /run with nosuid,nodev (default) and
|
|
||||||
noexec (opt-in). To disable this, run "sudo touch /etc/remount-disable". To
|
|
||||||
opt-in noexec, run "sudo touch /etc/noexec" and reboot (easiest).
|
|
||||||
Alternatively file /usr/local/etc/remount-disable or file
|
|
||||||
/usr/local/etc/noexec could be used.
|
|
||||||
/lib/systemd/system/remount-secure.service
|
|
||||||
/usr/lib/security-misc/remount-secure
|
|
||||||
.
|
|
||||||
* A systemd service mounts /proc with hidepid=2 at boot to prevent users from
|
|
||||||
seeing each other's processes.
|
|
||||||
.
|
|
||||||
* The kernel logs are restricted to root only.
|
|
||||||
.
|
|
||||||
* The BPF JIT compiler is restricted to the root user and is hardened.
|
|
||||||
.
|
|
||||||
* The ptrace system call is restricted to the root user only.
|
|
||||||
.
|
|
||||||
restricts access to the root account:
|
|
||||||
.
|
|
||||||
* `su` is restricted to only users within the group `sudo` which prevents
|
|
||||||
users from using `su` to gain root access or to switch user accounts.
|
|
||||||
/usr/share/pam-configs/wheel-security-misc
|
|
||||||
(Which results in a change in file `/etc/pam.d/common-auth`.)
|
|
||||||
.
|
|
||||||
* Add user `root` to group `sudo`. This is required to make above work so
|
|
||||||
login as a user in a virtual console is still possible.
|
|
||||||
debian/security-misc.postinst
|
|
||||||
.
|
|
||||||
* Abort login for users with locked passwords.
|
|
||||||
/usr/lib/security-misc/pam-abort-on-locked-password
|
|
||||||
.
|
|
||||||
* Logging into the root account from a virtual, serial, whatnot console is
|
|
||||||
prevented by shipping an existing and empty /etc/securetty.
|
|
||||||
(Deletion of /etc/securetty has a different effect.)
|
|
||||||
/etc/securetty.security-misc
|
|
||||||
.
|
|
||||||
* Console Lockdown.
|
|
||||||
Allow members of group 'console' to use console.
|
|
||||||
Everyone else except members of group
|
|
||||||
'console-unrestricted' are restricted from using console using ancient,
|
|
||||||
unpopular login methods such as using /bin/login over networks, which might
|
|
||||||
be exploitable. (CVE-2001-0797) Using pam_access.
|
|
||||||
Not enabled by default in this package since this package does not know which
|
|
||||||
users shall be added to group 'console' and would break console.
|
|
||||||
/usr/share/pam-configs/console-lockdown-security-misc
|
|
||||||
/etc/security/access-security-misc.conf
|
|
||||||
.
|
|
||||||
Protect Linux user accounts against brute force attacks.
|
|
||||||
Lock user accounts after 50 failed login attempts using pam_tally2.
|
|
||||||
/usr/share/pam-configs/tally2-security-misc
|
|
||||||
.
|
|
||||||
informational output during Linux PAM:
|
|
||||||
.
|
|
||||||
* Show failed and remaining password attempts.
|
|
||||||
* Document unlock procedure if Linux user account got locked.
|
|
||||||
* Point out, that there is no password feedback for `su`.
|
|
||||||
* Explain locked (root) account if locked.
|
|
||||||
* /usr/share/pam-configs/tally2-security-misc
|
|
||||||
* /usr/lib/security-misc/pam_tally2-info
|
|
||||||
* /usr/lib/security-misc/pam-abort-on-locked-password
|
|
||||||
.
|
|
||||||
access rights restrictions:
|
|
||||||
.
|
|
||||||
* Strong Linux User Account Separation.
|
|
||||||
Removes read, write and execute access for others for all users who have
|
|
||||||
home folders under folder /home by running for example
|
|
||||||
"chmod o-rwx /home/user"
|
|
||||||
during package installation, upgrade or pam mkhomedir. This will be done only
|
|
||||||
once per
|
|
||||||
folder in folder /home so users who wish to relax file permissions are free to
|
|
||||||
do so. This is to protect previously created files in user home folder which
|
|
||||||
were previously created with lax file permissions prior installation of this
|
|
||||||
package.
|
|
||||||
debian/security-misc.postinst
|
|
||||||
/usr/lib/security-misc/permission-lockdown
|
|
||||||
/usr/share/pam-configs/mkhomedir-security-misc
|
|
||||||
.
|
|
||||||
* SUID / GUID removal and permission hardening.
|
|
||||||
A systemd service removed SUID / GUID from non-essential binaries as these are
|
|
||||||
often used in privilege escalation attacks.
|
|
||||||
It is disabled by default for now during testing and can optionally be enabled
|
|
||||||
by running `systemctl enable permission-hardening.service` as root.
|
|
||||||
https://forums.whonix.org/t/disable-suid-binaries/7706
|
|
||||||
/usr/lib/security-misc/permission-hardening
|
|
||||||
/lib/systemd/system/permission-hardening.service
|
|
||||||
/etc/permission-hardening.d/30_default.conf
|
|
||||||
.
|
|
||||||
access rights relaxations:
|
|
||||||
.
|
|
||||||
Redirect calls for pkexec to lxqt-sudo because pkexec is incompatible with
|
|
||||||
hidepid.
|
|
||||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=860040
|
|
||||||
https://forums.whonix.org/t/cannot-use-pkexec/8129
|
|
||||||
/usr/bin/pkexec.security-misc
|
|
||||||
.
|
|
||||||
This package does (not yet) automatically lock the root account password.
|
|
||||||
It is not clear that would be sane in such a package.
|
|
||||||
It is recommended to lock and expire the root account.
|
|
||||||
In new Whonix builds, root account will be locked by package
|
|
||||||
anon-base-files.
|
|
||||||
https://www.whonix.org/wiki/Root
|
|
||||||
https://www.whonix.org/wiki/Dev/Permissions
|
|
||||||
https://forums.whonix.org/t/restrict-root-access/7658
|
|
||||||
However, a locked root password will break rescue and emergency shell.
|
|
||||||
Therefore this package enables passwordless resuce and emergency shell.
|
|
||||||
This is the same solution that Debian will likely addapt for Debian
|
|
||||||
installer.
|
|
||||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802211
|
|
||||||
Adverse security effects can be prevented by setting up BIOS password
|
|
||||||
protection, grub password protection and/or full disk encryption.
|
|
||||||
/etc/systemd/system/emergency.service.d/override.conf
|
|
||||||
/etc/systemd/system/rescue.service.d/override.conf
|
|
||||||
.
|
|
||||||
Disables TCP Time Stamps:
|
|
||||||
.
|
|
||||||
TCP time stamps (RFC 1323) allow for tracking clock
|
|
||||||
information with millisecond resolution. This may or may not allow an
|
|
||||||
attacker to learn information about the system clock at such
|
|
||||||
a resolution, depending on various issues such as network lag.
|
|
||||||
This information is available to anyone who monitors the network
|
|
||||||
somewhere between the attacked system and the destination server.
|
|
||||||
It may allow an attacker to find out how long a given
|
|
||||||
system has been running, and to distinguish several
|
|
||||||
systems running behind NAT and using the same IP address. It might
|
|
||||||
also allow one to look for clocks that match an expected value to find the
|
|
||||||
public IP used by a user.
|
|
||||||
.
|
|
||||||
Hence, this package disables this feature by shipping the
|
|
||||||
/etc/sysctl.d/tcp_timestamps.conf configuration file.
|
|
||||||
.
|
|
||||||
Note that TCP time stamps normally have some usefulness. They are
|
|
||||||
needed for:
|
|
||||||
.
|
|
||||||
* the TCP protection against wrapped sequence numbers; however, to
|
|
||||||
trigger a wrap, one needs to send roughly 2^32 packets in one
|
|
||||||
minute: as said in RFC 1700, "The current recommended default
|
|
||||||
time to live (TTL) for the Internet Protocol (IP) [45,105] is 64".
|
|
||||||
So, this probably won't be a practical problem in the context
|
|
||||||
of Anonymity Distributions.
|
|
||||||
* "Round-Trip Time Measurement", which is only useful when the user
|
|
||||||
manages to saturate their connection. When using Anonymity Distributions,
|
|
||||||
probably the limiting factor for transmission speed is rarely the capacity
|
|
||||||
of the user connection.
|
|
||||||
.
|
|
||||||
Application specific hardening:
|
|
||||||
.
|
|
||||||
* Enables APT seccomp-BPF sandboxing. /etc/apt/apt.conf.d/40sandbox
|
|
||||||
* Deactivates previews in Dolphin.
|
|
||||||
* Deactivates previews in Nautilus.
|
|
||||||
/usr/share/glib-2.0/schemas/30_security-misc.gschema.override
|
|
||||||
* Deactivates thumbnails in Thunar.
|
|
||||||
* Enables punycode (`network.IDN_show_punycode`) by default in Thunderbird
|
|
||||||
to make phising attacks more difficult. Fixing URL not showing real Domain
|
|
||||||
Name (Homograph attack).
|
|
||||||
.
|
|
||||||
Want more? Look into these:
|
|
||||||
.
|
|
||||||
* Linux Kernel Runtime Guard (LKRG). Kills whole Classes of Kernel Exploits.
|
|
||||||
* tirdad - TCP ISN CPU Information Leak Protection.
|
|
||||||
* Whonix ™ - Anonymous Operating System
|
|
||||||
* Kicksecure ™ - A Security-hardened, Non-anonymous Linux Distribution
|
|
||||||
* SecBrowser ™ - A Security-hardened, Non-anonymous Browser
|
|
||||||
* And more.
|
|
||||||
* https://www.whonix.org/wiki/Linux_Kernel_Runtime_Guard_LKRG
|
|
||||||
* https://github.com/Whonix/tirdad
|
|
||||||
* https://www.whonix.org
|
|
||||||
* https://www.whonix.org/wiki/Kicksecure
|
|
||||||
* https://www.whonix.org/wiki/SecBrowser
|
|
||||||
* https://github.com/Whonix
|
|
||||||
.
|
.
|
||||||
Discussion:
|
Discussion:
|
||||||
.
|
.
|
||||||
|
709
debian/copyright
vendored
709
debian/copyright
vendored
@ -1,73 +1,668 @@
|
|||||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
|
||||||
Files: *
|
Files: *
|
||||||
Copyright: 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
Copyright: 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
License: GPL-3+-with-additional-terms-1
|
License: AGPL-3+
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
License: AGPL-3+
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
(at your option) any later version.
|
Version 3, 19 November 2007
|
||||||
.
|
.
|
||||||
This program is distributed in the hope that it will be useful,
|
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
of this license document, but changing it is not allowed.
|
||||||
GNU General Public License for more details.
|
|
||||||
.
|
.
|
||||||
You should have received a copy of the GNU General Public License
|
Preamble
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU General Public
|
The GNU Affero General Public License is a free, copyleft license for
|
||||||
License version 3 can be found in the file
|
software and other kinds of works, specifically designed to ensure
|
||||||
`/usr/share/common-licenses/GPL-3'.
|
cooperation with the community in the case of network server software.
|
||||||
.
|
.
|
||||||
ADDITIONAL TERMS APPLICABLE per GNU GPL version 3 section 7
|
The licenses for most software and other practical works are designed
|
||||||
|
to take away your freedom to share and change the works. By contrast,
|
||||||
|
our General Public Licenses are intended to guarantee your freedom to
|
||||||
|
share and change all versions of a program--to make sure it remains free
|
||||||
|
software for all its users.
|
||||||
.
|
.
|
||||||
1. Replacement of Section 15. Section 15 of the GPL shall be deleted in its
|
When we speak of free software, we are referring to freedom, not
|
||||||
entirety and replaced with the following:
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
them if you wish), that you receive source code or can get it if you
|
||||||
|
want it, that you can change the software or use pieces of it in new
|
||||||
|
free programs, and that you know you can do these things.
|
||||||
.
|
.
|
||||||
15. Disclaimer of Warranty.
|
Developers that use our General Public Licenses protect your rights
|
||||||
|
with two steps: (1) assert copyright on the software, and (2) offer
|
||||||
|
you this License which gives you legal permission to copy, distribute
|
||||||
|
and/or modify the software.
|
||||||
.
|
.
|
||||||
THE PROGRAM IS PROVIDED WITHOUT ANY WARRANTIES, WHETHER EXPRESSED OR IMPLIED,
|
A secondary benefit of defending all users' freedom is that
|
||||||
INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
|
improvements made in alternate versions of the program, if they
|
||||||
PURPOSE, NON-INFRINGEMENT, TITLE AND MERCHANTABILITY. THE PROGRAM IS BEING
|
receive widespread use, become available for other developers to
|
||||||
DELIVERED OR MADE AVAILABLE 'AS IS', 'WITH ALL FAULTS' AND WITHOUT WARRANTY OR
|
incorporate. Many developers of free software are heartened and
|
||||||
REPRESENTATION. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
encouraged by the resulting cooperation. However, in the case of
|
||||||
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
software used on network servers, this result may fail to come about.
|
||||||
|
The GNU General Public License permits making a modified version and
|
||||||
|
letting the public access it on a server without ever releasing its
|
||||||
|
source code to the public.
|
||||||
|
.
|
||||||
|
The GNU Affero General Public License is designed specifically to
|
||||||
|
ensure that, in such cases, the modified source code becomes available
|
||||||
|
to the community. It requires the operator of a network server to
|
||||||
|
provide the source code of the modified version running there to the
|
||||||
|
users of that server. Therefore, public use of a modified version, on
|
||||||
|
a publicly accessible server, gives the public access to the source
|
||||||
|
code of the modified version.
|
||||||
|
.
|
||||||
|
An older license, called the Affero General Public License and
|
||||||
|
published by Affero, was designed to accomplish similar goals. This is
|
||||||
|
a different license, not a version of the Affero GPL, but Affero has
|
||||||
|
released a new version of the Affero GPL which permits relicensing under
|
||||||
|
this license.
|
||||||
|
.
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
.
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
.
|
||||||
|
0. Definitions.
|
||||||
|
.
|
||||||
|
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||||
|
.
|
||||||
|
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||||
|
works, such as semiconductor masks.
|
||||||
|
.
|
||||||
|
"The Program" refers to any copyrightable work licensed under this
|
||||||
|
License. Each licensee is addressed as "you". "Licensees" and
|
||||||
|
"recipients" may be individuals or organizations.
|
||||||
|
.
|
||||||
|
To "modify" a work means to copy from or adapt all or part of the work
|
||||||
|
in a fashion requiring copyright permission, other than the making of an
|
||||||
|
exact copy. The resulting work is called a "modified version" of the
|
||||||
|
earlier work or a work "based on" the earlier work.
|
||||||
|
.
|
||||||
|
A "covered work" means either the unmodified Program or a work based
|
||||||
|
on the Program.
|
||||||
|
.
|
||||||
|
To "propagate" a work means to do anything with it that, without
|
||||||
|
permission, would make you directly or secondarily liable for
|
||||||
|
infringement under applicable copyright law, except executing it on a
|
||||||
|
computer or modifying a private copy. Propagation includes copying,
|
||||||
|
distribution (with or without modification), making available to the
|
||||||
|
public, and in some countries other activities as well.
|
||||||
|
.
|
||||||
|
To "convey" a work means any kind of propagation that enables other
|
||||||
|
parties to make or receive copies. Mere interaction with a user through
|
||||||
|
a computer network, with no transfer of a copy, is not conveying.
|
||||||
|
.
|
||||||
|
An interactive user interface displays "Appropriate Legal Notices"
|
||||||
|
to the extent that it includes a convenient and prominently visible
|
||||||
|
feature that (1) displays an appropriate copyright notice, and (2)
|
||||||
|
tells the user that there is no warranty for the work (except to the
|
||||||
|
extent that warranties are provided), that licensees may convey the
|
||||||
|
work under this License, and how to view a copy of this License. If
|
||||||
|
the interface presents a list of user commands or options, such as a
|
||||||
|
menu, a prominent item in the list meets this criterion.
|
||||||
|
.
|
||||||
|
1. Source Code.
|
||||||
|
.
|
||||||
|
The "source code" for a work means the preferred form of the work
|
||||||
|
for making modifications to it. "Object code" means any non-source
|
||||||
|
form of a work.
|
||||||
|
.
|
||||||
|
A "Standard Interface" means an interface that either is an official
|
||||||
|
standard defined by a recognized standards body, or, in the case of
|
||||||
|
interfaces specified for a particular programming language, one that
|
||||||
|
is widely used among developers working in that language.
|
||||||
|
.
|
||||||
|
The "System Libraries" of an executable work include anything, other
|
||||||
|
than the work as a whole, that (a) is included in the normal form of
|
||||||
|
packaging a Major Component, but which is not part of that Major
|
||||||
|
Component, and (b) serves only to enable use of the work with that
|
||||||
|
Major Component, or to implement a Standard Interface for which an
|
||||||
|
implementation is available to the public in source code form. A
|
||||||
|
"Major Component", in this context, means a major essential component
|
||||||
|
(kernel, window system, and so on) of the specific operating system
|
||||||
|
(if any) on which the executable work runs, or a compiler used to
|
||||||
|
produce the work, or an object code interpreter used to run it.
|
||||||
|
.
|
||||||
|
The "Corresponding Source" for a work in object code form means all
|
||||||
|
the source code needed to generate, install, and (for an executable
|
||||||
|
work) run the object code and to modify the work, including scripts to
|
||||||
|
control those activities. However, it does not include the work's
|
||||||
|
System Libraries, or general-purpose tools or generally available free
|
||||||
|
programs which are used unmodified in performing those activities but
|
||||||
|
which are not part of the work. For example, Corresponding Source
|
||||||
|
includes interface definition files associated with source files for
|
||||||
|
the work, and the source code for shared libraries and dynamically
|
||||||
|
linked subprograms that the work is specifically designed to require,
|
||||||
|
such as by intimate data communication or control flow between those
|
||||||
|
subprograms and other parts of the work.
|
||||||
|
.
|
||||||
|
The Corresponding Source need not include anything that users
|
||||||
|
can regenerate automatically from other parts of the Corresponding
|
||||||
|
Source.
|
||||||
|
.
|
||||||
|
The Corresponding Source for a work in source code form is that
|
||||||
|
same work.
|
||||||
|
.
|
||||||
|
2. Basic Permissions.
|
||||||
|
.
|
||||||
|
All rights granted under this License are granted for the term of
|
||||||
|
copyright on the Program, and are irrevocable provided the stated
|
||||||
|
conditions are met. This License explicitly affirms your unlimited
|
||||||
|
permission to run the unmodified Program. The output from running a
|
||||||
|
covered work is covered by this License only if the output, given its
|
||||||
|
content, constitutes a covered work. This License acknowledges your
|
||||||
|
rights of fair use or other equivalent, as provided by copyright law.
|
||||||
|
.
|
||||||
|
You may make, run and propagate covered works that you do not
|
||||||
|
convey, without conditions so long as your license otherwise remains
|
||||||
|
in force. You may convey covered works to others for the sole purpose
|
||||||
|
of having them make modifications exclusively for you, or provide you
|
||||||
|
with facilities for running those works, provided that you comply with
|
||||||
|
the terms of this License in conveying all material for which you do
|
||||||
|
not control copyright. Those thus making or running the covered works
|
||||||
|
for you must do so exclusively on your behalf, under your direction
|
||||||
|
and control, on terms that prohibit them from making any copies of
|
||||||
|
your copyrighted material outside their relationship with you.
|
||||||
|
.
|
||||||
|
Conveying under any other circumstances is permitted solely under
|
||||||
|
the conditions stated below. Sublicensing is not allowed; section 10
|
||||||
|
makes it unnecessary.
|
||||||
|
.
|
||||||
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||||
|
.
|
||||||
|
No covered work shall be deemed part of an effective technological
|
||||||
|
measure under any applicable law fulfilling obligations under article
|
||||||
|
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||||
|
similar laws prohibiting or restricting circumvention of such
|
||||||
|
measures.
|
||||||
|
.
|
||||||
|
When you convey a covered work, you waive any legal power to forbid
|
||||||
|
circumvention of technological measures to the extent such circumvention
|
||||||
|
is effected by exercising rights under this License with respect to
|
||||||
|
the covered work, and you disclaim any intention to limit operation or
|
||||||
|
modification of the work as a means of enforcing, against the work's
|
||||||
|
users, your or third parties' legal rights to forbid circumvention of
|
||||||
|
technological measures.
|
||||||
|
.
|
||||||
|
4. Conveying Verbatim Copies.
|
||||||
|
.
|
||||||
|
You may convey verbatim copies of the Program's source code as you
|
||||||
|
receive it, in any medium, provided that you conspicuously and
|
||||||
|
appropriately publish on each copy an appropriate copyright notice;
|
||||||
|
keep intact all notices stating that this License and any
|
||||||
|
non-permissive terms added in accord with section 7 apply to the code;
|
||||||
|
keep intact all notices of the absence of any warranty; and give all
|
||||||
|
recipients a copy of this License along with the Program.
|
||||||
|
.
|
||||||
|
You may charge any price or no price for each copy that you convey,
|
||||||
|
and you may offer support or warranty protection for a fee.
|
||||||
|
.
|
||||||
|
5. Conveying Modified Source Versions.
|
||||||
|
.
|
||||||
|
You may convey a work based on the Program, or the modifications to
|
||||||
|
produce it from the Program, in the form of source code under the
|
||||||
|
terms of section 4, provided that you also meet all of these conditions:
|
||||||
|
.
|
||||||
|
a) The work must carry prominent notices stating that you modified
|
||||||
|
it, and giving a relevant date.
|
||||||
|
.
|
||||||
|
b) The work must carry prominent notices stating that it is
|
||||||
|
released under this License and any conditions added under section
|
||||||
|
7. This requirement modifies the requirement in section 4 to
|
||||||
|
"keep intact all notices".
|
||||||
|
.
|
||||||
|
c) You must license the entire work, as a whole, under this
|
||||||
|
License to anyone who comes into possession of a copy. This
|
||||||
|
License will therefore apply, along with any applicable section 7
|
||||||
|
additional terms, to the whole of the work, and all its parts,
|
||||||
|
regardless of how they are packaged. This License gives no
|
||||||
|
permission to license the work in any other way, but it does not
|
||||||
|
invalidate such permission if you have separately received it.
|
||||||
|
.
|
||||||
|
d) If the work has interactive user interfaces, each must display
|
||||||
|
Appropriate Legal Notices; however, if the Program has interactive
|
||||||
|
interfaces that do not display Appropriate Legal Notices, your
|
||||||
|
work need not make them do so.
|
||||||
|
.
|
||||||
|
A compilation of a covered work with other separate and independent
|
||||||
|
works, which are not by their nature extensions of the covered work,
|
||||||
|
and which are not combined with it such as to form a larger program,
|
||||||
|
in or on a volume of a storage or distribution medium, is called an
|
||||||
|
"aggregate" if the compilation and its resulting copyright are not
|
||||||
|
used to limit the access or legal rights of the compilation's users
|
||||||
|
beyond what the individual works permit. Inclusion of a covered work
|
||||||
|
in an aggregate does not cause this License to apply to the other
|
||||||
|
parts of the aggregate.
|
||||||
|
.
|
||||||
|
6. Conveying Non-Source Forms.
|
||||||
|
.
|
||||||
|
You may convey a covered work in object code form under the terms
|
||||||
|
of sections 4 and 5, provided that you also convey the
|
||||||
|
machine-readable Corresponding Source under the terms of this License,
|
||||||
|
in one of these ways:
|
||||||
|
.
|
||||||
|
a) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by the
|
||||||
|
Corresponding Source fixed on a durable physical medium
|
||||||
|
customarily used for software interchange.
|
||||||
|
.
|
||||||
|
b) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by a
|
||||||
|
written offer, valid for at least three years and valid for as
|
||||||
|
long as you offer spare parts or customer support for that product
|
||||||
|
model, to give anyone who possesses the object code either (1) a
|
||||||
|
copy of the Corresponding Source for all the software in the
|
||||||
|
product that is covered by this License, on a durable physical
|
||||||
|
medium customarily used for software interchange, for a price no
|
||||||
|
more than your reasonable cost of physically performing this
|
||||||
|
conveying of source, or (2) access to copy the
|
||||||
|
Corresponding Source from a network server at no charge.
|
||||||
|
.
|
||||||
|
c) Convey individual copies of the object code with a copy of the
|
||||||
|
written offer to provide the Corresponding Source. This
|
||||||
|
alternative is allowed only occasionally and noncommercially, and
|
||||||
|
only if you received the object code with such an offer, in accord
|
||||||
|
with subsection 6b.
|
||||||
|
.
|
||||||
|
d) Convey the object code by offering access from a designated
|
||||||
|
place (gratis or for a charge), and offer equivalent access to the
|
||||||
|
Corresponding Source in the same way through the same place at no
|
||||||
|
further charge. You need not require recipients to copy the
|
||||||
|
Corresponding Source along with the object code. If the place to
|
||||||
|
copy the object code is a network server, the Corresponding Source
|
||||||
|
may be on a different server (operated by you or a third party)
|
||||||
|
that supports equivalent copying facilities, provided you maintain
|
||||||
|
clear directions next to the object code saying where to find the
|
||||||
|
Corresponding Source. Regardless of what server hosts the
|
||||||
|
Corresponding Source, you remain obligated to ensure that it is
|
||||||
|
available for as long as needed to satisfy these requirements.
|
||||||
|
.
|
||||||
|
e) Convey the object code using peer-to-peer transmission, provided
|
||||||
|
you inform other peers where the object code and Corresponding
|
||||||
|
Source of the work are being offered to the general public at no
|
||||||
|
charge under subsection 6d.
|
||||||
|
.
|
||||||
|
A separable portion of the object code, whose source code is excluded
|
||||||
|
from the Corresponding Source as a System Library, need not be
|
||||||
|
included in conveying the object code work.
|
||||||
|
.
|
||||||
|
A "User Product" is either (1) a "consumer product", which means any
|
||||||
|
tangible personal property which is normally used for personal, family,
|
||||||
|
or household purposes, or (2) anything designed or sold for incorporation
|
||||||
|
into a dwelling. In determining whether a product is a consumer product,
|
||||||
|
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||||
|
product received by a particular user, "normally used" refers to a
|
||||||
|
typical or common use of that class of product, regardless of the status
|
||||||
|
of the particular user or of the way in which the particular user
|
||||||
|
actually uses, or expects or is expected to use, the product. A product
|
||||||
|
is a consumer product regardless of whether the product has substantial
|
||||||
|
commercial, industrial or non-consumer uses, unless such uses represent
|
||||||
|
the only significant mode of use of the product.
|
||||||
|
.
|
||||||
|
"Installation Information" for a User Product means any methods,
|
||||||
|
procedures, authorization keys, or other information required to install
|
||||||
|
and execute modified versions of a covered work in that User Product from
|
||||||
|
a modified version of its Corresponding Source. The information must
|
||||||
|
suffice to ensure that the continued functioning of the modified object
|
||||||
|
code is in no case prevented or interfered with solely because
|
||||||
|
modification has been made.
|
||||||
|
.
|
||||||
|
If you convey an object code work under this section in, or with, or
|
||||||
|
specifically for use in, a User Product, and the conveying occurs as
|
||||||
|
part of a transaction in which the right of possession and use of the
|
||||||
|
User Product is transferred to the recipient in perpetuity or for a
|
||||||
|
fixed term (regardless of how the transaction is characterized), the
|
||||||
|
Corresponding Source conveyed under this section must be accompanied
|
||||||
|
by the Installation Information. But this requirement does not apply
|
||||||
|
if neither you nor any third party retains the ability to install
|
||||||
|
modified object code on the User Product (for example, the work has
|
||||||
|
been installed in ROM).
|
||||||
|
.
|
||||||
|
The requirement to provide Installation Information does not include a
|
||||||
|
requirement to continue to provide support service, warranty, or updates
|
||||||
|
for a work that has been modified or installed by the recipient, or for
|
||||||
|
the User Product in which it has been modified or installed. Access to a
|
||||||
|
network may be denied when the modification itself materially and
|
||||||
|
adversely affects the operation of the network or violates the rules and
|
||||||
|
protocols for communication across the network.
|
||||||
|
.
|
||||||
|
Corresponding Source conveyed, and Installation Information provided,
|
||||||
|
in accord with this section must be in a format that is publicly
|
||||||
|
documented (and with an implementation available to the public in
|
||||||
|
source code form), and must require no special password or key for
|
||||||
|
unpacking, reading or copying.
|
||||||
|
.
|
||||||
|
7. Additional Terms.
|
||||||
|
.
|
||||||
|
"Additional permissions" are terms that supplement the terms of this
|
||||||
|
License by making exceptions from one or more of its conditions.
|
||||||
|
Additional permissions that are applicable to the entire Program shall
|
||||||
|
be treated as though they were included in this License, to the extent
|
||||||
|
that they are valid under applicable law. If additional permissions
|
||||||
|
apply only to part of the Program, that part may be used separately
|
||||||
|
under those permissions, but the entire Program remains governed by
|
||||||
|
this License without regard to the additional permissions.
|
||||||
|
.
|
||||||
|
When you convey a copy of a covered work, you may at your option
|
||||||
|
remove any additional permissions from that copy, or from any part of
|
||||||
|
it. (Additional permissions may be written to require their own
|
||||||
|
removal in certain cases when you modify the work.) You may place
|
||||||
|
additional permissions on material, added by you to a covered work,
|
||||||
|
for which you have or can give appropriate copyright permission.
|
||||||
|
.
|
||||||
|
Notwithstanding any other provision of this License, for material you
|
||||||
|
add to a covered work, you may (if authorized by the copyright holders of
|
||||||
|
that material) supplement the terms of this License with terms:
|
||||||
|
.
|
||||||
|
a) Disclaiming warranty or limiting liability differently from the
|
||||||
|
terms of sections 15 and 16 of this License; or
|
||||||
|
.
|
||||||
|
b) Requiring preservation of specified reasonable legal notices or
|
||||||
|
author attributions in that material or in the Appropriate Legal
|
||||||
|
Notices displayed by works containing it; or
|
||||||
|
.
|
||||||
|
c) Prohibiting misrepresentation of the origin of that material, or
|
||||||
|
requiring that modified versions of such material be marked in
|
||||||
|
reasonable ways as different from the original version; or
|
||||||
|
.
|
||||||
|
d) Limiting the use for publicity purposes of names of licensors or
|
||||||
|
authors of the material; or
|
||||||
|
.
|
||||||
|
e) Declining to grant rights under trademark law for use of some
|
||||||
|
trade names, trademarks, or service marks; or
|
||||||
|
.
|
||||||
|
f) Requiring indemnification of licensors and authors of that
|
||||||
|
material by anyone who conveys the material (or modified versions of
|
||||||
|
it) with contractual assumptions of liability to the recipient, for
|
||||||
|
any liability that these contractual assumptions directly impose on
|
||||||
|
those licensors and authors.
|
||||||
|
.
|
||||||
|
All other non-permissive additional terms are considered "further
|
||||||
|
restrictions" within the meaning of section 10. If the Program as you
|
||||||
|
received it, or any part of it, contains a notice stating that it is
|
||||||
|
governed by this License along with a term that is a further
|
||||||
|
restriction, you may remove that term. If a license document contains
|
||||||
|
a further restriction but permits relicensing or conveying under this
|
||||||
|
License, you may add to a covered work material governed by the terms
|
||||||
|
of that license document, provided that the further restriction does
|
||||||
|
not survive such relicensing or conveying.
|
||||||
|
.
|
||||||
|
If you add terms to a covered work in accord with this section, you
|
||||||
|
must place, in the relevant source files, a statement of the
|
||||||
|
additional terms that apply to those files, or a notice indicating
|
||||||
|
where to find the applicable terms.
|
||||||
|
.
|
||||||
|
Additional terms, permissive or non-permissive, may be stated in the
|
||||||
|
form of a separately written license, or stated as exceptions;
|
||||||
|
the above requirements apply either way.
|
||||||
|
.
|
||||||
|
8. Termination.
|
||||||
|
.
|
||||||
|
You may not propagate or modify a covered work except as expressly
|
||||||
|
provided under this License. Any attempt otherwise to propagate or
|
||||||
|
modify it is void, and will automatically terminate your rights under
|
||||||
|
this License (including any patent licenses granted under the third
|
||||||
|
paragraph of section 11).
|
||||||
|
.
|
||||||
|
However, if you cease all violation of this License, then your
|
||||||
|
license from a particular copyright holder is reinstated (a)
|
||||||
|
provisionally, unless and until the copyright holder explicitly and
|
||||||
|
finally terminates your license, and (b) permanently, if the copyright
|
||||||
|
holder fails to notify you of the violation by some reasonable means
|
||||||
|
prior to 60 days after the cessation.
|
||||||
|
.
|
||||||
|
Moreover, your license from a particular copyright holder is
|
||||||
|
reinstated permanently if the copyright holder notifies you of the
|
||||||
|
violation by some reasonable means, this is the first time you have
|
||||||
|
received notice of violation of this License (for any work) from that
|
||||||
|
copyright holder, and you cure the violation prior to 30 days after
|
||||||
|
your receipt of the notice.
|
||||||
|
.
|
||||||
|
Termination of your rights under this section does not terminate the
|
||||||
|
licenses of parties who have received copies or rights from you under
|
||||||
|
this License. If your rights have been terminated and not permanently
|
||||||
|
reinstated, you do not qualify to receive new licenses for the same
|
||||||
|
material under section 10.
|
||||||
|
.
|
||||||
|
9. Acceptance Not Required for Having Copies.
|
||||||
|
.
|
||||||
|
You are not required to accept this License in order to receive or
|
||||||
|
run a copy of the Program. Ancillary propagation of a covered work
|
||||||
|
occurring solely as a consequence of using peer-to-peer transmission
|
||||||
|
to receive a copy likewise does not require acceptance. However,
|
||||||
|
nothing other than this License grants you permission to propagate or
|
||||||
|
modify any covered work. These actions infringe copyright if you do
|
||||||
|
not accept this License. Therefore, by modifying or propagating a
|
||||||
|
covered work, you indicate your acceptance of this License to do so.
|
||||||
|
.
|
||||||
|
10. Automatic Licensing of Downstream Recipients.
|
||||||
|
.
|
||||||
|
Each time you convey a covered work, the recipient automatically
|
||||||
|
receives a license from the original licensors, to run, modify and
|
||||||
|
propagate that work, subject to this License. You are not responsible
|
||||||
|
for enforcing compliance by third parties with this License.
|
||||||
|
.
|
||||||
|
An "entity transaction" is a transaction transferring control of an
|
||||||
|
organization, or substantially all assets of one, or subdividing an
|
||||||
|
organization, or merging organizations. If propagation of a covered
|
||||||
|
work results from an entity transaction, each party to that
|
||||||
|
transaction who receives a copy of the work also receives whatever
|
||||||
|
licenses to the work the party's predecessor in interest had or could
|
||||||
|
give under the previous paragraph, plus a right to possession of the
|
||||||
|
Corresponding Source of the work from the predecessor in interest, if
|
||||||
|
the predecessor has it or can get it with reasonable efforts.
|
||||||
|
.
|
||||||
|
You may not impose any further restrictions on the exercise of the
|
||||||
|
rights granted or affirmed under this License. For example, you may
|
||||||
|
not impose a license fee, royalty, or other charge for exercise of
|
||||||
|
rights granted under this License, and you may not initiate litigation
|
||||||
|
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||||
|
any patent claim is infringed by making, using, selling, offering for
|
||||||
|
sale, or importing the Program or any portion of it.
|
||||||
|
.
|
||||||
|
11. Patents.
|
||||||
|
.
|
||||||
|
A "contributor" is a copyright holder who authorizes use under this
|
||||||
|
License of the Program or a work on which the Program is based. The
|
||||||
|
work thus licensed is called the contributor's "contributor version".
|
||||||
|
.
|
||||||
|
A contributor's "essential patent claims" are all patent claims
|
||||||
|
owned or controlled by the contributor, whether already acquired or
|
||||||
|
hereafter acquired, that would be infringed by some manner, permitted
|
||||||
|
by this License, of making, using, or selling its contributor version,
|
||||||
|
but do not include claims that would be infringed only as a
|
||||||
|
consequence of further modification of the contributor version. For
|
||||||
|
purposes of this definition, "control" includes the right to grant
|
||||||
|
patent sublicenses in a manner consistent with the requirements of
|
||||||
|
this License.
|
||||||
|
.
|
||||||
|
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||||
|
patent license under the contributor's essential patent claims, to
|
||||||
|
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||||
|
propagate the contents of its contributor version.
|
||||||
|
.
|
||||||
|
In the following three paragraphs, a "patent license" is any express
|
||||||
|
agreement or commitment, however denominated, not to enforce a patent
|
||||||
|
(such as an express permission to practice a patent or covenant not to
|
||||||
|
sue for patent infringement). To "grant" such a patent license to a
|
||||||
|
party means to make such an agreement or commitment not to enforce a
|
||||||
|
patent against the party.
|
||||||
|
.
|
||||||
|
If you convey a covered work, knowingly relying on a patent license,
|
||||||
|
and the Corresponding Source of the work is not available for anyone
|
||||||
|
to copy, free of charge and under the terms of this License, through a
|
||||||
|
publicly available network server or other readily accessible means,
|
||||||
|
then you must either (1) cause the Corresponding Source to be so
|
||||||
|
available, or (2) arrange to deprive yourself of the benefit of the
|
||||||
|
patent license for this particular work, or (3) arrange, in a manner
|
||||||
|
consistent with the requirements of this License, to extend the patent
|
||||||
|
license to downstream recipients. "Knowingly relying" means you have
|
||||||
|
actual knowledge that, but for the patent license, your conveying the
|
||||||
|
covered work in a country, or your recipient's use of the covered work
|
||||||
|
in a country, would infringe one or more identifiable patents in that
|
||||||
|
country that you have reason to believe are valid.
|
||||||
|
.
|
||||||
|
If, pursuant to or in connection with a single transaction or
|
||||||
|
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||||
|
covered work, and grant a patent license to some of the parties
|
||||||
|
receiving the covered work authorizing them to use, propagate, modify
|
||||||
|
or convey a specific copy of the covered work, then the patent license
|
||||||
|
you grant is automatically extended to all recipients of the covered
|
||||||
|
work and works based on it.
|
||||||
|
.
|
||||||
|
A patent license is "discriminatory" if it does not include within
|
||||||
|
the scope of its coverage, prohibits the exercise of, or is
|
||||||
|
conditioned on the non-exercise of one or more of the rights that are
|
||||||
|
specifically granted under this License. You may not convey a covered
|
||||||
|
work if you are a party to an arrangement with a third party that is
|
||||||
|
in the business of distributing software, under which you make payment
|
||||||
|
to the third party based on the extent of your activity of conveying
|
||||||
|
the work, and under which the third party grants, to any of the
|
||||||
|
parties who would receive the covered work from you, a discriminatory
|
||||||
|
patent license (a) in connection with copies of the covered work
|
||||||
|
conveyed by you (or copies made from those copies), or (b) primarily
|
||||||
|
for and in connection with specific products or compilations that
|
||||||
|
contain the covered work, unless you entered into that arrangement,
|
||||||
|
or that patent license was granted, prior to 28 March 2007.
|
||||||
|
.
|
||||||
|
Nothing in this License shall be construed as excluding or limiting
|
||||||
|
any implied license or other defenses to infringement that may
|
||||||
|
otherwise be available to you under applicable patent law.
|
||||||
|
.
|
||||||
|
12. No Surrender of Others' Freedom.
|
||||||
|
.
|
||||||
|
If conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot convey a
|
||||||
|
covered work so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you may
|
||||||
|
not convey it at all. For example, if you agree to terms that obligate you
|
||||||
|
to collect a royalty for further conveying from those to whom you convey
|
||||||
|
the Program, the only way you could satisfy both those terms and this
|
||||||
|
License would be to refrain entirely from conveying the Program.
|
||||||
|
.
|
||||||
|
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||||
|
.
|
||||||
|
Notwithstanding any other provision of this License, if you modify the
|
||||||
|
Program, your modified version must prominently offer all users
|
||||||
|
interacting with it remotely through a computer network (if your version
|
||||||
|
supports such interaction) an opportunity to receive the Corresponding
|
||||||
|
Source of your version by providing access to the Corresponding Source
|
||||||
|
from a network server at no charge, through some standard or customary
|
||||||
|
means of facilitating copying of software. This Corresponding Source
|
||||||
|
shall include the Corresponding Source for any work covered by version 3
|
||||||
|
of the GNU General Public License that is incorporated pursuant to the
|
||||||
|
following paragraph.
|
||||||
|
.
|
||||||
|
Notwithstanding any other provision of this License, you have
|
||||||
|
permission to link or combine any covered work with a work licensed
|
||||||
|
under version 3 of the GNU General Public License into a single
|
||||||
|
combined work, and to convey the resulting work. The terms of this
|
||||||
|
License will continue to apply to the part which is the covered work,
|
||||||
|
but the work with which it is combined will remain governed by version
|
||||||
|
3 of the GNU General Public License.
|
||||||
|
.
|
||||||
|
14. Revised Versions of this License.
|
||||||
|
.
|
||||||
|
The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the GNU Affero General Public License from time to time. Such new versions
|
||||||
|
will be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
.
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Program specifies that a certain numbered version of the GNU Affero General
|
||||||
|
Public License "or any later version" applies to it, you have the
|
||||||
|
option of following the terms and conditions either of that numbered
|
||||||
|
version or of any later version published by the Free Software
|
||||||
|
Foundation. If the Program does not specify a version number of the
|
||||||
|
GNU Affero General Public License, you may choose any version ever published
|
||||||
|
by the Free Software Foundation.
|
||||||
|
.
|
||||||
|
If the Program specifies that a proxy can decide which future
|
||||||
|
versions of the GNU Affero General Public License can be used, that proxy's
|
||||||
|
public statement of acceptance of a version permanently authorizes you
|
||||||
|
to choose that version for the Program.
|
||||||
|
.
|
||||||
|
Later license versions may give you additional or different
|
||||||
|
permissions. However, no additional obligations are imposed on any
|
||||||
|
author or copyright holder as a result of your choosing to follow a
|
||||||
|
later version.
|
||||||
|
.
|
||||||
|
15. Disclaimer of Warranty.
|
||||||
|
.
|
||||||
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||||
|
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||||
|
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||||
|
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||||
|
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
.
|
.
|
||||||
2. Replacement of Section 16. Section 16 of the GPL shall be deleted in its
|
16. Limitation of Liability.
|
||||||
entirety and replaced with the following:
|
|
||||||
.
|
.
|
||||||
16. LIMITATION OF LIABILITY.
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||||
|
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||||
|
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||||
|
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||||
|
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||||
|
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGES.
|
||||||
.
|
.
|
||||||
UNDER NO CIRCUMSTANCES SHALL ANY COPYRIGHT HOLDER OR ITS AFFILIATES, OR ANY
|
17. Interpretation of Sections 15 and 16.
|
||||||
OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE
|
|
||||||
LIABLE TO YOU, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, FOR ANY
|
|
||||||
DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, DIRECT, INDIRECT, SPECIAL,
|
|
||||||
INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES ARISING FROM, OUT OF OR IN
|
|
||||||
CONNECTION WITH THE USE OR INABILITY TO USE THE PROGRAM OR OTHER DEALINGS WITH
|
|
||||||
THE PROGRAM(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
|
|
||||||
INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
|
|
||||||
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), WHETHER OR NOT ANY COPYRIGHT HOLDER
|
|
||||||
OR SUCH OTHER PARTY RECEIVES NOTICE OF ANY SUCH DAMAGES AND WHETHER OR NOT SUCH
|
|
||||||
DAMAGES COULD HAVE BEEN FORESEEN.
|
|
||||||
.
|
.
|
||||||
3. LEGAL NOTICES; NO TRADEMARK LICENSE; ORIGIN. You must reproduce faithfully
|
If the disclaimer of warranty and limitation of liability provided
|
||||||
all trademark, copyright and other proprietary and legal notices on any copies
|
above cannot be given local legal effect according to their terms,
|
||||||
of the Program or any other required author attributions. This license does not
|
reviewing courts shall apply local law that most closely approximates
|
||||||
grant you rights to use any copyright holder or any other party's name, logo, or
|
an absolute waiver of all civil liability in connection with the
|
||||||
trademarks. Neither the name of the copyright holder or its affiliates, or any
|
Program, unless a warranty or assumption of liability accompanies a
|
||||||
other party who modifies and/or conveys the Program may be used to endorse or
|
copy of the Program in return for a fee.
|
||||||
promote products derived from this software without specific prior written
|
|
||||||
permission. The origin of the Program must not be misrepresented; you must not
|
|
||||||
claim that you wrote the original Program. Altered source versions must be
|
|
||||||
plainly marked as such, and must not be misrepresented as being the original
|
|
||||||
Program.
|
|
||||||
.
|
.
|
||||||
4. INDEMNIFICATION. IF YOU CONVEY A COVERED WORK AND AGREE WITH ANY RECIPIENT
|
END OF TERMS AND CONDITIONS
|
||||||
OF THAT COVERED WORK THAT YOU WILL ASSUME ANY LIABILITY FOR THAT COVERED WORK,
|
.
|
||||||
YOU HEREBY AGREE TO INDEMNIFY, DEFEND AND HOLD HARMLESS THE OTHER LICENSORS AND
|
How to Apply These Terms to Your New Programs
|
||||||
AUTHORS OF THAT COVERED WORK FOR ANY DAMAGES, DEMANDS, CLAIMS, LOSSES, CAUSES OF
|
.
|
||||||
ACTION, LAWSUITS, JUDGMENTS EXPENSES (INCLUDING WITHOUT LIMITATION REASONABLE
|
If you develop a new program, and you want it to be of the greatest
|
||||||
ATTORNEYS' FEES AND EXPENSES) OR ANY OTHER LIABILITY ARISING FROM, RELATED TO OR
|
possible use to the public, the best way to achieve this is to make it
|
||||||
IN CONNECTION WITH YOUR ASSUMPTIONS OF LIABILITY.
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
.
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
state the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
.
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
.
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
.
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
.
|
||||||
|
If your software can interact with users remotely through a computer
|
||||||
|
network, you should also make sure that it provides a way for users to
|
||||||
|
get its source. For example, if your program is a web application, its
|
||||||
|
interface could display a "Source" link that leads users to an archive
|
||||||
|
of the code. There are many ways you could offer source, and different
|
||||||
|
solutions will be better for different programs; see section 13 for the
|
||||||
|
specific requirements.
|
||||||
|
.
|
||||||
|
You should also get your employer (if you work as a programmer) or school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||||
|
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||||
|
<https://www.gnu.org/licenses/>.
|
||||||
|
7
debian/make-helper-overrides.bsh
vendored
Executable file
7
debian/make-helper-overrides.bsh
vendored
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2021 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## https://forums.whonix.org/t/blacklist-more-kernel-modules-to-reduce-attack-surface/7989/24
|
||||||
|
genmkfile_lintian_post_opts+=" --suppress-tags obsolete-command-in-modprobe.d-file --suppress-tags no-complete-debconf-translation"
|
1
debian/po/POTFILES.in
vendored
Normal file
1
debian/po/POTFILES.in
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
[type: gettext/rfc822deb] security-misc.templates
|
36
debian/po/templates.pot
vendored
Normal file
36
debian/po/templates.pot
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the security-misc package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: security-misc\n"
|
||||||
|
"Report-Msgid-Bugs-To: security-misc@packages.debian.org\n"
|
||||||
|
"POT-Creation-Date: 2025-01-14 09:31-0500\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#. Type: note
|
||||||
|
#. Description
|
||||||
|
#: ../security-misc.templates:1001
|
||||||
|
msgid "Manual intervention may be required for permission-hardener update"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Type: note
|
||||||
|
#. Description
|
||||||
|
#: ../security-misc.templates:1001
|
||||||
|
msgid ""
|
||||||
|
"No need to panic. Nothing is broken. A rare condition has been encountered. "
|
||||||
|
"permission-hardener is being updated to fix a minor bug that caused "
|
||||||
|
"corruption in the permission-hardener state file. If you installed your own "
|
||||||
|
"custom permission-hardener configuration, some manual intervention may be "
|
||||||
|
"required. See: https://www.kicksecure.com/wiki/"
|
||||||
|
"SUID_Disabler_and_Permission_Hardener#fixing_state_files"
|
||||||
|
msgstr ""
|
7
debian/rules
vendored
7
debian/rules
vendored
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
#export DH_VERBOSE=1
|
#export DH_VERBOSE=1
|
||||||
@ -10,8 +10,3 @@
|
|||||||
|
|
||||||
override_dh_installchangelogs:
|
override_dh_installchangelogs:
|
||||||
dh_installchangelogs changelog.upstream upstream
|
dh_installchangelogs changelog.upstream upstream
|
||||||
|
|
||||||
override_dh_install:
|
|
||||||
dh_apparmor --profile-name='usr.lib.security-misc.pam_tally2-info'
|
|
||||||
dh_apparmor --profile-name='usr.lib.security-misc.permission-lockdown'
|
|
||||||
dh_install
|
|
||||||
|
190
debian/security-misc.config
vendored
Executable file
190
debian/security-misc.config
vendored
Executable file
@ -0,0 +1,190 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2025 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
if [ -f /usr/libexec/helper-scripts/pre.bsh ]; then
|
||||||
|
source /usr/libexec/helper-scripts/pre.bsh
|
||||||
|
fi
|
||||||
|
|
||||||
|
source /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
## Not set by DPKG for '.config' script.
|
||||||
|
DPKG_MAINTSCRIPT_PACKAGE="security-misc"
|
||||||
|
DPKG_MAINTSCRIPT_NAME="config"
|
||||||
|
|
||||||
|
true "
|
||||||
|
#####################################################################
|
||||||
|
## INFO: BEGIN: $DPKG_MAINTSCRIPT_PACKAGE $DPKG_MAINTSCRIPT_NAME $*
|
||||||
|
#####################################################################
|
||||||
|
"
|
||||||
|
|
||||||
|
## NOTE: Code duplication.
|
||||||
|
## Copied from: helper-scripts /usr/libexec/helper-scripts/package_installed_check.bsh
|
||||||
|
##
|
||||||
|
## '.config' scripts are run very early. Even 'Pre-Depends: helper-scripts' would be insufficient.
|
||||||
|
## Therefore the code is duplicated here.
|
||||||
|
pkg_installed() {
|
||||||
|
local package_name dpkg_query_output
|
||||||
|
local requested_action status error_state
|
||||||
|
|
||||||
|
package_name="$1"
|
||||||
|
## Cannot use '&>' because it is a bashism.
|
||||||
|
dpkg_query_output="$(dpkg-query --show --showformat='${Status}' "$package_name" 2>/dev/null)" || true
|
||||||
|
## dpkg_query_output Examples:
|
||||||
|
## install ok half-configured
|
||||||
|
## install ok installed
|
||||||
|
|
||||||
|
requested_action=$(printf '%s' "$dpkg_query_output" | awk '{print $1}')
|
||||||
|
status=$(printf '%s' "$dpkg_query_output" | awk '{print $2}')
|
||||||
|
error_state=$(printf '%s' "$dpkg_query_output" | awk '{print $3}')
|
||||||
|
|
||||||
|
if [ "$requested_action" = 'install' ]; then
|
||||||
|
true "$0: INFO: $package_name is installed, ok."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
true "$0: INFO: $package_name is not installed, ok."
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
check_migrate_permission_hardener_state() {
|
||||||
|
local pkg_list modified_pkg_data_str custom_hardening_arr config_file
|
||||||
|
|
||||||
|
## If folder /var/lib/permission-hardener (version 1) does not exist, this migration is unneeded.
|
||||||
|
if [ ! -d '/var/lib/permission-hardener' ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
local orig_hardening_arr custom_hardening_arr config_file custom_config_file
|
||||||
|
if [ -f "/var/lib/security-misc/do_once/${FUNCNAME[0]}_version_2" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
mkdir --parents '/var/lib/security-misc/do_once'
|
||||||
|
|
||||||
|
orig_hardening_arr=(
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_passwd.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_sudo.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_bubblewrap.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_chromium.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_dbus.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_firejail.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_fuse.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_hardened_malloc.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_mount.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_pam.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_passwd.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_policykit.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_postfix.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_qubes.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_selinux.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_spice.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_ssh.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_sudo.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_unix_chkpwd.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/25_default_whitelist_virtualbox.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/20_user-sysmaint-split.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/30_ping.conf'
|
||||||
|
'/usr/lib/permission-hardener.d/30_default.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_passwd.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_sudo.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_bubblewrap.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_chromium.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_dbus.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_firejail.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_fuse.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_hardened_malloc.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_mount.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_pam.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_passwd.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_policykit.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_postfix.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_qubes.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_selinux.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_spice.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_ssh.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_sudo.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_unix_chkpwd.conf'
|
||||||
|
'/etc/permission-hardener.d/25_default_whitelist_virtualbox.conf'
|
||||||
|
'/etc/permission-hardener.d/20_user-sysmaint-split.conf'
|
||||||
|
'/etc/permission-hardener.d/30_ping.conf'
|
||||||
|
'/etc/permission-hardener.d/30_default.conf'
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_list=( "security-misc" )
|
||||||
|
if pkg_installed user-sysmaint-split ; then
|
||||||
|
pkg_list+=( "user-sysmaint-split" )
|
||||||
|
fi
|
||||||
|
if pkg_installed anon-apps-config ; then
|
||||||
|
pkg_list+=( "anon-apps-config" )
|
||||||
|
fi
|
||||||
|
|
||||||
|
## This will exit non-zero if some of the packages don't exist, but we
|
||||||
|
## don't care. The packages that *are* installed will still be scanned.
|
||||||
|
modified_pkg_data_str="$(dpkg --verify "${pkg_list[@]}")" || true
|
||||||
|
|
||||||
|
## Example modified_pkg_data_str:
|
||||||
|
#modified_pkg_data_str='missing /usr/lib/permission-hardener.d/20_user-sysmaint-split.conf'
|
||||||
|
|
||||||
|
readarray -t custom_hardening_arr < <(awk '/permission-hardener.d/{ print $NF }' <<< "${modified_pkg_data_str}")
|
||||||
|
|
||||||
|
## If the above `dpkg --verify` command doesn't return any permission-hardener
|
||||||
|
## related lines, the array will contain no meaningful info, just a single
|
||||||
|
## blank element at the start. Set the array to be explicitly empty in
|
||||||
|
## this scenario.
|
||||||
|
if [ -z "${custom_hardening_arr[0]}" ]; then
|
||||||
|
custom_hardening_arr=()
|
||||||
|
fi
|
||||||
|
|
||||||
|
for config_file in \
|
||||||
|
/usr/lib/permission-hardener.d/*.conf \
|
||||||
|
/etc/permission-hardener.d/*.conf \
|
||||||
|
/usr/local/etc/permission-hardener.d/*.conf \
|
||||||
|
/etc/permission-hardening.d/*.conf \
|
||||||
|
/usr/local/etc/permission-hardening.d/*.conf
|
||||||
|
do
|
||||||
|
# shellcheck disable=SC2076
|
||||||
|
if ! [[ " ${orig_hardening_arr[*]} " =~ " ${config_file} " ]]; then
|
||||||
|
if [ -f "${config_file}" ]; then
|
||||||
|
custom_hardening_arr+=( "${config_file}" )
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "${#custom_hardening_arr[@]}" != '0' ]; then
|
||||||
|
for custom_config_file in "${custom_hardening_arr[@]}"; do
|
||||||
|
if ! test -e "${custom_config_file}" ; then
|
||||||
|
echo "$0: INFO: Possible missing configuration file found: '${custom_config_file}'"
|
||||||
|
else
|
||||||
|
echo "$0: INFO: Possible custom configuration file found: '${custom_config_file}'"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
## db_input will return code 30 if the message won't be displayed, which
|
||||||
|
## causes a non-interactive install to error out if you don't use || true
|
||||||
|
db_input critical security-misc/alert-on-permission-hardener-v2-upgrade || true
|
||||||
|
## db_go can return code 30 too in some instances, we don't care here
|
||||||
|
# shellcheck disable=SC2119
|
||||||
|
db_go || true
|
||||||
|
fi
|
||||||
|
|
||||||
|
touch "/var/lib/security-misc/do_once/${FUNCNAME[0]}_version_2"
|
||||||
|
}
|
||||||
|
|
||||||
|
check_migrate_permission_hardener_state
|
||||||
|
|
||||||
|
true "INFO: debhelper beginning here."
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
|
|
||||||
|
true "INFO: Done with debhelper."
|
||||||
|
|
||||||
|
true "
|
||||||
|
#####################################################################
|
||||||
|
## INFO: END : $DPKG_MAINTSCRIPT_PACKAGE $DPKG_MAINTSCRIPT_NAME $*
|
||||||
|
#####################################################################
|
||||||
|
"
|
||||||
|
|
||||||
|
## Explicitly "exit 0", so eventually trapped errors can be ignored.
|
||||||
|
exit 0
|
4
debian/security-misc.displace
vendored
4
debian/security-misc.displace
vendored
@ -1,5 +1,5 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
/usr/bin/pkexec.security-misc
|
|
||||||
/etc/securetty.security-misc
|
/etc/securetty.security-misc
|
||||||
|
/etc/security/faillock.conf.security-misc
|
||||||
|
3
debian/security-misc.gconf-defaults
vendored
3
debian/security-misc.gconf-defaults
vendored
@ -1,3 +1,6 @@
|
|||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
/apps/nautilus/preview_sound never
|
/apps/nautilus/preview_sound never
|
||||||
/apps/nautilus/show_icon_text never
|
/apps/nautilus/show_icon_text never
|
||||||
/apps/nautilus/show-image-thumbnails never
|
/apps/nautilus/show-image-thumbnails never
|
||||||
|
8
debian/security-misc.install
vendored
Normal file
8
debian/security-misc.install
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
## Copyright (C) 2020 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## This file was generated using 'genmkfile debinstfile'.
|
||||||
|
|
||||||
|
etc/*
|
||||||
|
usr/*
|
||||||
|
var/*
|
5
debian/security-misc.links
vendored
Normal file
5
debian/security-misc.links
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
/etc/profile.d/30_security-misc.sh /etc/zprofile.d/30_security-misc.zsh
|
||||||
|
/etc/profile.d/30_security-misc.sh /etc/X11/Xsession.d/30_security-misc
|
105
debian/security-misc.maintscript
vendored
105
debian/security-misc.maintscript
vendored
@ -1,14 +1,111 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
rm_conffile /etc/sudoers.d/umask-security-misc
|
rm_conffile /etc/sudoers.d/umask-security-misc
|
||||||
|
|
||||||
## https://forums.whonix.org/t/allow-loading-signed-kernel-modules-by-default-disallow-kernel-module-loading-by-default/7880/23
|
|
||||||
rm_conffile /etc/default/grub.d/40_only_allow_signed_modules.cfg
|
|
||||||
|
|
||||||
## https://forums.whonix.org/t/sysrq-magic-sysrq-key/8079
|
## https://forums.whonix.org/t/sysrq-magic-sysrq-key/8079
|
||||||
rm_conffile /etc/sysctl.d/sysrq.conf
|
rm_conffile /etc/sysctl.d/sysrq.conf
|
||||||
|
|
||||||
## https://github.com/Whonix/security-misc/pull/45
|
## https://github.com/Whonix/security-misc/pull/45
|
||||||
rm_conffile /etc/apparmor.d/usr.lib.security-misc.pam_tally2-info
|
rm_conffile /etc/apparmor.d/usr.lib.security-misc.pam_tally2-info
|
||||||
rm_conffile /etc/apparmor.d/usr.lib.security-misc.permission-lockdown
|
rm_conffile /etc/apparmor.d/usr.lib.security-misc.permission-lockdown
|
||||||
|
|
||||||
|
## merged into 3 files /usr/lib/sysctl.d/30_security-misc_kexec-disable.conf, /usr/lib/sysctl.d/30_silent-kernel-printk.conf, and /usr/lib/sysctl.d/990-security-misc.conf
|
||||||
|
rm_conffile /etc/sysctl.d/fs_protected.conf
|
||||||
|
rm_conffile /etc/sysctl.d/kptr_restrict.conf
|
||||||
|
rm_conffile /etc/sysctl.d/suid_dumpable.conf
|
||||||
|
rm_conffile /etc/sysctl.d/harden_bpf.conf
|
||||||
|
rm_conffile /etc/sysctl.d/ptrace_scope.conf
|
||||||
|
rm_conffile /etc/sysctl.d/tcp_timestamps.conf
|
||||||
|
rm_conffile /etc/sysctl.d/mmap_aslr.conf
|
||||||
|
rm_conffile /etc/sysctl.d/dmesg_restrict.conf
|
||||||
|
rm_conffile /etc/sysctl.d/coredumps.conf
|
||||||
|
rm_conffile /etc/sysctl.d/kexec.conf
|
||||||
|
rm_conffile /etc/sysctl.d/tcp_hardening.conf
|
||||||
|
rm_conffile /etc/sysctl.d/tcp_sack.conf
|
||||||
|
|
||||||
|
## merged into 3 files /etc/modprobe.d/30_security-misc_blacklist.conf, 30_security-misc_conntrack.conf, and /etc/modprobe.d/30_security-misc_disable.conf
|
||||||
|
rm_conffile /etc/modprobe.d/uncommon-network-protocols.conf
|
||||||
|
rm_conffile /etc/modprobe.d/blacklist-bluetooth.conf
|
||||||
|
rm_conffile /etc/modprobe.d/vivid.conf
|
||||||
|
rm_conffile /etc/modprobe.d/blacklist-dma.conf
|
||||||
|
rm_conffile /etc/modprobe.d/msr.conf
|
||||||
|
rm_conffile /etc/modprobe.d/30_nf_conntrack_helper_disable.conf
|
||||||
|
rm_conffile /etc/modprobe.d/30_security-misc.conf
|
||||||
|
|
||||||
|
## renamed to /etc/security/limits.d/30_security-misc.conf
|
||||||
|
rm_conffile /etc/security/limits.d/disable-coredumps.conf
|
||||||
|
|
||||||
|
## moved to separate package ram-wipe
|
||||||
|
rm_conffile /etc/default/grub.d/40_cold_boot_attack_defense.cfg
|
||||||
|
|
||||||
|
rm_conffile /etc/X11/Xsession.d/50panic_on_oops
|
||||||
|
rm_conffile /etc/X11/Xsession.d/50security-misc
|
||||||
|
|
||||||
|
## moved to /usr/lib/sysctl.d
|
||||||
|
rm_conffile /etc/sysctl.d/30_security-misc.conf
|
||||||
|
rm_conffile /etc/sysctl.d/30_silent-kernel-printk.conf
|
||||||
|
rm_conffile /etc/sysctl.d/30_security-misc_kexec-disable.conf
|
||||||
|
|
||||||
|
## moved to /etc/permission-hardener.d
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_passwd.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_sudo.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_bubblewrap.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_chromium.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_dbus.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_firejail.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_fuse.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_hardened_malloc.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_mount.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_pam.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_policykit.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_qubes.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_selinux.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_spice.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_ssh.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_sudo.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_unix_chkpwd.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/25_default_whitelist_virtualbox.conf
|
||||||
|
rm_conffile /etc/permission-hardening.d/30_default.conf
|
||||||
|
|
||||||
|
## moved to /usr/lib/permission-hardener.d
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_passwd.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_sudo.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_bubblewrap.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_chromium.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_dbus.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_firejail.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_fuse.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_hardened_malloc.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_mount.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_pam.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_policykit.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_postfix.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_qubes.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_selinux.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_spice.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_ssh.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_sudo.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_unix_chkpwd.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/25_default_whitelist_virtualbox.conf
|
||||||
|
rm_conffile /etc/permission-hardener.d/30_default.conf
|
||||||
|
|
||||||
|
## merged into 1 file /etc/default/grub.d/40_kernel_hardening.cfg
|
||||||
|
rm_conffile /etc/default/grub.d/40_distrust_bootloader.cfg
|
||||||
|
rm_conffile /etc/default/grub.d/40_distrust_cpu.cfg
|
||||||
|
rm_conffile /etc/default/grub.d/40_enable_iommu.cfg
|
||||||
|
|
||||||
|
## renamed to /etc/default/grub.d/40_remount_secure.cfg
|
||||||
|
rm_conffile /etc/default/grub.d/40_remmount-secure.cfg
|
||||||
|
|
||||||
|
## renamed to /etc/default/grub.d/40_signed_modules.cfg
|
||||||
|
rm_conffile /etc/default/grub.d/40_only_allow_signed_modules.cfg
|
||||||
|
|
||||||
|
## renamed to /etc/default/grub.d/41_quiet_boot.cfg
|
||||||
|
rm_conffile /etc/default/grub.d/41_quiet.cfg
|
||||||
|
|
||||||
|
## moved to usability-misc
|
||||||
|
rm_conffile /etc/dkms/framework.conf.d/30_security-misc.conf
|
||||||
|
|
||||||
|
## renamed to reflect the fact that this uses a whitelist
|
||||||
|
rm_conffile /usr/lib/permission-hardener.d/25_default_passwd.conf
|
||||||
|
96
debian/security-misc.postinst
vendored
96
debian/security-misc.postinst
vendored
@ -1,29 +1,107 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
if [ -f /usr/lib/helper-scripts/pre.bsh ]; then
|
if [ -f /usr/libexec/helper-scripts/pre.bsh ]; then
|
||||||
source /usr/lib/helper-scripts/pre.bsh
|
source /usr/libexec/helper-scripts/pre.bsh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
## Required since this package uses debconf - this is mandatory even though
|
||||||
|
## the postinst itself does not use debconf commands.
|
||||||
|
source /usr/share/debconf/confmodule
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
true "
|
true "
|
||||||
#####################################################################
|
#####################################################################
|
||||||
## INFO: BEGIN: $DPKG_MAINTSCRIPT_PACKAGE $DPKG_MAINTSCRIPT_NAME $@
|
## INFO: BEGIN: $DPKG_MAINTSCRIPT_PACKAGE $DPKG_MAINTSCRIPT_NAME $*
|
||||||
#####################################################################
|
#####################################################################
|
||||||
"
|
"
|
||||||
|
|
||||||
|
permission_hardening_legacy_config_folder() {
|
||||||
|
if ! test -d /etc/permission-hardening.d ; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
rmdir --verbose --ignore-fail-on-non-empty /etc/permission-hardening.d || true
|
||||||
|
}
|
||||||
|
|
||||||
|
permission_hardening() {
|
||||||
|
echo "Running SUID Disabler and Permission Hardener... See also:"
|
||||||
|
echo "https://www.kicksecure.com/wiki/SUID_Disabler_and_Permission_Hardener"
|
||||||
|
echo "$0: INFO: running: permission-hardener enable"
|
||||||
|
if ! permission-hardener enable ; then
|
||||||
|
echo "$0: ERROR: Permission hardening failed." >&2
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
echo "$0: INFO: Permission hardening success."
|
||||||
|
}
|
||||||
|
|
||||||
|
migrate_permission_hardener_state() {
|
||||||
|
local existing_mode_dir new_mode_dir dpkg_statoverride_list
|
||||||
|
## If folder /var/lib/permission-hardener (version 1) does not exist, this migration is unneeded.
|
||||||
|
if [ ! -d '/var/lib/permission-hardener' ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "/var/lib/security-misc/do_once/${FUNCNAME[0]}_version_2" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
mkdir --parents '/var/lib/security-misc/do_once'
|
||||||
|
|
||||||
|
existing_mode_dir='/var/lib/permission-hardener-v2/existing_mode'
|
||||||
|
new_mode_dir='/var/lib/permission-hardener-v2/new_mode'
|
||||||
|
|
||||||
|
mkdir --parents "${existing_mode_dir}";
|
||||||
|
mkdir --parents "${new_mode_dir}";
|
||||||
|
|
||||||
|
cp --verbose '/usr/share/security-misc/permission-hardener-existing-mode-legacy-hardcoded' "${existing_mode_dir}/statoverride"
|
||||||
|
cp --verbose '/usr/share/security-misc/permission-hardener-new-mode-legacy-hardcoded' "${new_mode_dir}/statoverride"
|
||||||
|
|
||||||
|
dpkg_statoverride_list="$(dpkg-statoverride --admindir "${new_mode_dir}" --list)"
|
||||||
|
|
||||||
|
if [ "$(stat --format '%G' /usr/bin/sudo)" = 'sysmaint' ]; then
|
||||||
|
if ! [[ "${dpkg_statoverride_list}" =~ '/usr/bin/sudo' ]]; then
|
||||||
|
dpkg-statoverride --admindir "${new_mode_dir}" --add 'root' 'sysmaint' '4750' '/usr/bin/sudo'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$(stat --format '%G' /usr/bin/pkexec)" = 'sysmaint' ]; then
|
||||||
|
if ! [[ "${dpkg_statoverride_list}" =~ '/usr/bin/pkexec' ]]; then
|
||||||
|
dpkg-statoverride --admindir "${new_mode_dir}" --add 'root' 'sysmaint' '4750' '/usr/bin/pkexec'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
touch "/var/lib/security-misc/do_once/${FUNCNAME[0]}_version_2"
|
||||||
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
configure)
|
configure)
|
||||||
|
if [ -d /etc/skel/.gnupg ]; then
|
||||||
|
## Lintian warns against use of chmod --recursive.
|
||||||
|
chmod 700 /etc/skel/.gnupg
|
||||||
|
fi
|
||||||
|
|
||||||
## /usr/share/glib-2.0/schemas/30_security-misc.gschema.override
|
## /usr/share/glib-2.0/schemas/30_security-misc.gschema.override
|
||||||
glib-compile-schemas /usr/share/glib-2.0/schemas || true
|
glib-compile-schemas /usr/share/glib-2.0/schemas || true
|
||||||
|
|
||||||
|
## state dir for faillock
|
||||||
|
mkdir -p /var/lib/security-misc/faillock
|
||||||
|
|
||||||
|
## migrate permission_hardener state to v2 if applicable
|
||||||
|
migrate_permission_hardener_state
|
||||||
;;
|
;;
|
||||||
|
|
||||||
abort-upgrade|abort-remove|abort-deconfigure)
|
abort-upgrade|abort-remove|abort-deconfigure)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
triggered)
|
||||||
|
echo "INFO: triggered $DPKG_MAINTSCRIPT_PACKAGE: '$DPKG_MAINTSCRIPT_PACKAGE' $DPKG_MAINTSCRIPT_PACKAGE DPKG_MAINTSCRIPT_NAME: '$DPKG_MAINTSCRIPT_NAME' $\*: '$*' 2: '$2'"
|
||||||
|
/usr/share/security-misc/lkrg/lkrg-virtualbox || true
|
||||||
|
/usr/libexec/security-misc/mmap-rnd-bits || true
|
||||||
|
permission_hardening
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "$DPKG_MAINTSCRIPT_NAME called with unknown argument \`$1'" >&2
|
echo "$DPKG_MAINTSCRIPT_NAME called with unknown argument \`$1'" >&2
|
||||||
exit 1
|
exit 1
|
||||||
@ -32,7 +110,9 @@ esac
|
|||||||
|
|
||||||
pam-auth-update --package
|
pam-auth-update --package
|
||||||
|
|
||||||
/usr/lib/security-misc/permission-lockdown
|
/usr/libexec/security-misc/permission-lockdown
|
||||||
|
|
||||||
|
permission_hardening
|
||||||
|
|
||||||
## https://phabricator.whonix.org/T377
|
## https://phabricator.whonix.org/T377
|
||||||
## Debian has no update-grub trigger yet:
|
## Debian has no update-grub trigger yet:
|
||||||
@ -46,15 +126,19 @@ you should fix running 'update-grub', otherwise your system might no longer \
|
|||||||
boot." >&2
|
boot." >&2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
/usr/libexec/security-misc/mmap-rnd-bits || true
|
||||||
|
|
||||||
true "INFO: debhelper beginning here."
|
true "INFO: debhelper beginning here."
|
||||||
|
|
||||||
#DEBHELPER#
|
#DEBHELPER#
|
||||||
|
|
||||||
true "INFO: Done with debhelper."
|
true "INFO: Done with debhelper."
|
||||||
|
|
||||||
|
permission_hardening_legacy_config_folder
|
||||||
|
|
||||||
true "
|
true "
|
||||||
#####################################################################
|
#####################################################################
|
||||||
## INFO: END : $DPKG_MAINTSCRIPT_PACKAGE $DPKG_MAINTSCRIPT_NAME $@
|
## INFO: END : $DPKG_MAINTSCRIPT_PACKAGE $DPKG_MAINTSCRIPT_NAME $*
|
||||||
#####################################################################
|
#####################################################################
|
||||||
"
|
"
|
||||||
|
|
||||||
|
8
debian/security-misc.postrm
vendored
8
debian/security-misc.postrm
vendored
@ -1,10 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
if [ -f /usr/lib/helper-scripts/pre.bsh ]; then
|
if [ -f /usr/libexec/helper-scripts/pre.bsh ]; then
|
||||||
source /usr/lib/helper-scripts/pre.bsh
|
source /usr/libexec/helper-scripts/pre.bsh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
@ -18,6 +18,8 @@ true "
|
|||||||
## https://forums.whonix.org/t/is-security-misc-suitable-for-hardening-bridges-and-relays/8299/11
|
## https://forums.whonix.org/t/is-security-misc-suitable-for-hardening-bridges-and-relays/8299/11
|
||||||
pam-auth-update --package --remove "$DPKG_MAINTSCRIPT_PACKAGE"
|
pam-auth-update --package --remove "$DPKG_MAINTSCRIPT_PACKAGE"
|
||||||
|
|
||||||
|
rm -f /etc/sysctl.d/30_security-misc_aslr-mmap.conf
|
||||||
|
|
||||||
true "INFO: debhelper beginning here."
|
true "INFO: debhelper beginning here."
|
||||||
|
|
||||||
#DEBHELPER#
|
#DEBHELPER#
|
||||||
|
105
debian/security-misc.preinst
vendored
105
debian/security-misc.preinst
vendored
@ -1,10 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
if [ -f /usr/lib/helper-scripts/pre.bsh ]; then
|
if [ -f /usr/libexec/helper-scripts/pre.bsh ]; then
|
||||||
source /usr/lib/helper-scripts/pre.bsh
|
source /usr/libexec/helper-scripts/pre.bsh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
@ -16,13 +16,16 @@ true "
|
|||||||
"
|
"
|
||||||
|
|
||||||
user_groups_modifications() {
|
user_groups_modifications() {
|
||||||
## /usr/lib/security-misc/hide-hardware-info
|
## /usr/libexec/security-misc/hide-hardware-info
|
||||||
addgroup --system sysfs
|
addgroup --system sysfs
|
||||||
addgroup --system cpuinfo
|
addgroup --system cpuinfo
|
||||||
|
|
||||||
|
## /usr/lib/systemd/system/proc-hidepid.service
|
||||||
|
addgroup --system proc
|
||||||
|
|
||||||
## group 'sudo' membership required to use 'su'
|
## group 'sudo' membership required to use 'su'
|
||||||
## /usr/share/pam-configs/wheel-security-misc
|
## /usr/share/pam-configs/wheel-security-misc
|
||||||
addgroup root sudo
|
adduser root sudo
|
||||||
|
|
||||||
## Useful to create groups in preinst rather than postinst.
|
## Useful to create groups in preinst rather than postinst.
|
||||||
## Otherwise if a user saw an error message such as this:
|
## Otherwise if a user saw an error message such as this:
|
||||||
@ -44,8 +47,15 @@ user_groups_modifications() {
|
|||||||
## an "empty" /etc/securetty.
|
## an "empty" /etc/securetty.
|
||||||
## In case a system administrator edits /etc/securetty, there is no need to
|
## In case a system administrator edits /etc/securetty, there is no need to
|
||||||
## block for this to be still blocked by console lockdown. See also:
|
## block for this to be still blocked by console lockdown. See also:
|
||||||
## https://www.whonix.org/wiki/Root#Root_Login
|
## https://www.kicksecure.com/wiki/Root#Root_Login
|
||||||
addgroup root console
|
adduser root console
|
||||||
|
}
|
||||||
|
|
||||||
|
output_skip_checks() {
|
||||||
|
echo "security-misc '$0' INFO: Allow installation of security-misc anyway." >&2
|
||||||
|
echo "security-misc '$0' INFO: (technical reason: $@)" >&2
|
||||||
|
echo "security-misc '$0' INFO: If this is a chroot this is probably OK." >&2
|
||||||
|
echo "security-misc '$0' INFO: Otherwise you might not be able to login." >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
sudo_users_check () {
|
sudo_users_check () {
|
||||||
@ -56,6 +66,8 @@ sudo_users_check () {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local sudo_users user_with_sudo are_there_any_sudo_users OLD_IFS
|
||||||
|
|
||||||
sudo_users="$(getent group sudo | cut -d: -f4)"
|
sudo_users="$(getent group sudo | cut -d: -f4)"
|
||||||
## example sudo_users:
|
## example sudo_users:
|
||||||
## user,root
|
## user,root
|
||||||
@ -78,22 +90,41 @@ sudo_users_check () {
|
|||||||
IFS="$OLD_IFS"
|
IFS="$OLD_IFS"
|
||||||
export IFS
|
export IFS
|
||||||
|
|
||||||
|
if [ "$are_there_any_sudo_users" = "yes" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
## Prevent users from locking themselves out.
|
## Prevent users from locking themselves out.
|
||||||
## https://forums.whonix.org/t/is-security-misc-suitable-for-hardening-bridges-and-relays/8299/4
|
## https://forums.whonix.org/t/is-security-misc-suitable-for-hardening-bridges-and-relays/8299/4
|
||||||
if [ ! "$are_there_any_sudo_users" = "yes" ]; then
|
echo "$0: ERROR: No user is a member of group 'sudo'. Installation aborted." >&2
|
||||||
echo "$0: ERROR: No user is a member of group 'sudo'. Installation aborted." >&2
|
echo "$0: ERROR: You probably want to run:" >&2
|
||||||
echo "$0: ERROR: You probably want to run:" >&2
|
echo "$0: NOTE: Replace user 'user' with your actual Linux user account name." >&2
|
||||||
echo "" >&2
|
echo "" >&2
|
||||||
echo "sudo adduser user sudo" >&2
|
echo "sudo adduser user sudo" >&2
|
||||||
echo "sudo adduser user console" >&2
|
echo "sudo adduser user console" >&2
|
||||||
echo "" >&2
|
echo "" >&2
|
||||||
echo "$0: ERROR: See also installation instructions:" >&2
|
echo "$0: ERROR: See also installation instructions:" >&2
|
||||||
echo "https://www.whonix.org/wiki/security-misc#install" >&2
|
echo "https://www.kicksecure.com/wiki/security-misc#install" >&2
|
||||||
exit 200
|
|
||||||
|
if [ "$SECURITY_MISC_INSTALL" = "force" ]; then
|
||||||
|
output_skip_checks "Environment variable SECURITY_MISC_INSTALL is set to 'force'."
|
||||||
|
return 0
|
||||||
fi
|
fi
|
||||||
|
if test -f "/var/lib/security-misc/skip_install_check" ; then
|
||||||
|
output_skip_checks "File '/var/lib/security-misc/skip_install_check' exists."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 200
|
||||||
}
|
}
|
||||||
|
|
||||||
console_users_check() {
|
console_users_check() {
|
||||||
|
if [ "$SECURITY_MISC_INSTALL" = "force" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if test -f "/var/lib/security-misc/skip_install_check" ; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
if command -v "qubesdb-read" &>/dev/null; then
|
if command -v "qubesdb-read" &>/dev/null; then
|
||||||
## Qubes users can use dom0 to get a root terminal emulator.
|
## Qubes users can use dom0 to get a root terminal emulator.
|
||||||
## For example:
|
## For example:
|
||||||
@ -101,6 +132,8 @@ console_users_check() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local console_users console_unrestricted_users user_with_console are_there_any_console_users OLD_IFS
|
||||||
|
|
||||||
console_users="$(getent group console | cut -d: -f4)"
|
console_users="$(getent group console | cut -d: -f4)"
|
||||||
## example console_users:
|
## example console_users:
|
||||||
## user
|
## user
|
||||||
@ -126,16 +159,28 @@ console_users_check() {
|
|||||||
|
|
||||||
## Prevent users from locking themselves out.
|
## Prevent users from locking themselves out.
|
||||||
## https://forums.whonix.org/t/is-security-misc-suitable-for-hardening-bridges-and-relays/8299/4
|
## https://forums.whonix.org/t/is-security-misc-suitable-for-hardening-bridges-and-relays/8299/4
|
||||||
if [ ! "$are_there_any_console_users" = "yes" ]; then
|
if [ "$are_there_any_console_users" = "yes" ]; then
|
||||||
echo "$0: ERROR: No user is a member of group 'console'. Installation aborted." >&2
|
return 0
|
||||||
echo "$0: ERROR: You probably want to run:" >&2
|
|
||||||
echo "" >&2
|
|
||||||
echo "sudo adduser user console" >&2
|
|
||||||
echo "" >&2
|
|
||||||
echo "$0: ERROR: See also installation instructions:" >&2
|
|
||||||
echo "https://www.whonix.org/wiki/security-misc#install" >&2
|
|
||||||
exit 201
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "$0: ERROR: No user is a member of group 'console'. Installation aborted." >&2
|
||||||
|
echo "$0: ERROR: You probably want to run:" >&2
|
||||||
|
echo "" >&2
|
||||||
|
echo "sudo adduser user console" >&2
|
||||||
|
echo "" >&2
|
||||||
|
echo "$0: ERROR: See also installation instructions:" >&2
|
||||||
|
echo "https://www.whonix.org/wiki/security-misc#install" >&2
|
||||||
|
|
||||||
|
if [ "$SECURITY_MISC_INSTALL" = "force" ]; then
|
||||||
|
output_skip_checks "Environment variable SECURITY_MISC_INSTALL is set to 'force'."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if test -f "/var/lib/security-misc/skip_install_check" ; then
|
||||||
|
output_skip_checks "File '/var/lib/security-misc/skip_install_check' exists."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 201
|
||||||
}
|
}
|
||||||
|
|
||||||
legacy() {
|
legacy() {
|
||||||
@ -143,6 +188,8 @@ legacy() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local continue_yes user_to_be_created
|
||||||
|
|
||||||
if [ -f "/usr/share/whonix/marker" ]; then
|
if [ -f "/usr/share/whonix/marker" ]; then
|
||||||
continue_yes=true
|
continue_yes=true
|
||||||
fi
|
fi
|
||||||
@ -150,7 +197,7 @@ legacy() {
|
|||||||
continue_yes=true
|
continue_yes=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! "$continue_yes" = "yes" ]; then
|
if [ ! "$continue_yes" = "true" ]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -166,11 +213,11 @@ legacy() {
|
|||||||
user_to_be_created=user
|
user_to_be_created=user
|
||||||
|
|
||||||
if ! id "$user_to_be_created" &>/dev/null ; then
|
if ! id "$user_to_be_created" &>/dev/null ; then
|
||||||
true "INFO: user '$user_to_be_created' does not exist. Skipping addgroup console and pam-auth-update."
|
true "INFO: user '$user_to_be_created' does not exist. Skipping adduser console and pam-auth-update."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
addgroup "$user_to_be_created" console
|
adduser "$user_to_be_created" console
|
||||||
|
|
||||||
pam-auth-update --enable console-lockdown-security-misc
|
pam-auth-update --enable console-lockdown-security-misc
|
||||||
|
|
||||||
|
6
debian/security-misc.prerm
vendored
6
debian/security-misc.prerm
vendored
@ -1,10 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
if [ -f /usr/lib/helper-scripts/pre.bsh ]; then
|
if [ -f /usr/libexec/helper-scripts/pre.bsh ]; then
|
||||||
source /usr/lib/helper-scripts/pre.bsh
|
source /usr/libexec/helper-scripts/pre.bsh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
9
debian/security-misc.templates
vendored
Normal file
9
debian/security-misc.templates
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Template: security-misc/alert-on-permission-hardener-v2-upgrade
|
||||||
|
Type: note
|
||||||
|
_Description: Manual intervention may be required for permission-hardener update
|
||||||
|
No need to panic. Nothing is broken. A rare condition has been encountered.
|
||||||
|
permission-hardener is being updated to fix a minor bug that caused
|
||||||
|
corruption in the permission-hardener state file. If you installed your own
|
||||||
|
custom permission-hardener configuration, some manual intervention may be
|
||||||
|
required. See:
|
||||||
|
https://www.kicksecure.com/wiki/SUID_Disabler_and_Permission_Hardener#fixing_state_files
|
16
debian/security-misc.triggers
vendored
Normal file
16
debian/security-misc.triggers
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
## Copyright (C) 2024 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## use noawait
|
||||||
|
## https://github.com/Kicksecure/security-misc/issues/196
|
||||||
|
|
||||||
|
## Trigger permission hardener when new binaries are being installed.
|
||||||
|
interest-noawait /usr
|
||||||
|
interest-noawait /opt
|
||||||
|
|
||||||
|
## Trigger permission hardener when new configuration files are being installed.
|
||||||
|
interest-noawait /usr/lib/permission-hardener.d
|
||||||
|
interest-noawait /etc/permission-hardener.d
|
||||||
|
interest-noawait /usr/local/etc/permission-hardener.d
|
||||||
|
interest-noawait /etc/permission-hardening.d
|
||||||
|
interest-noawait /usr/local/etc/permission-hardening.d
|
4
debian/security-misc.undisplace
vendored
4
debian/security-misc.undisplace
vendored
@ -1,4 +1,6 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
/etc/login.defs.security-misc
|
/etc/login.defs.security-misc
|
||||||
|
/usr/bin/pkexec.security-misc
|
||||||
|
/etc/dkms/framework.conf.security-misc
|
||||||
|
2
debian/source/lintian-overrides
vendored
2
debian/source/lintian-overrides
vendored
@ -1,2 +1,2 @@
|
|||||||
## https://phabricator.whonix.org/T277
|
## https://phabricator.whonix.org/T277
|
||||||
debian-watch-does-not-check-gpg-signature
|
debian-watch-does-not-check-openpgp-signature
|
||||||
|
2
debian/watch
vendored
2
debian/watch
vendored
@ -1,4 +1,4 @@
|
|||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
version=4
|
version=4
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
if [ -x /usr/lib/security-misc/panic-on-oops ]; then
|
|
||||||
sudo --non-interactive /usr/lib/security-misc/panic-on-oops
|
|
||||||
fi
|
|
@ -1,7 +0,0 @@
|
|||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
if [ -z "$XDG_CONFIG_DIRS" ]; then
|
|
||||||
XDG_CONFIG_DIRS=/etc/xdg
|
|
||||||
fi
|
|
||||||
export XDG_CONFIG_DIRS=/usr/share/security-misc/:$XDG_CONFIG_DIRS
|
|
@ -1,7 +1,7 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
alias /etc/pam.d/common-session -> /etc/pam.d//etc/pam.d/common-session.security-misc,
|
alias /etc/pam.d/common-session -> /etc/pam.d/common-session.security-misc,
|
||||||
alias /etc/pam.d/common-session-noninteractive -> /etc/pam.d/common-session-noninteractive.security-misc,
|
alias /etc/pam.d/common-session-noninteractive -> /etc/pam.d/common-session-noninteractive.security-misc,
|
||||||
alias /etc/login.defs -> /etc/login.defs.security-misc,
|
alias /etc/login.defs -> /etc/login.defs.security-misc,
|
||||||
alias /etc/securetty -> /etc/securetty.security-misc,
|
alias /etc/securetty -> /etc/securetty.security-misc,
|
||||||
|
9
etc/apt/apt.conf.d/40error-on-any
Normal file
9
etc/apt/apt.conf.d/40error-on-any
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
## Copyright (C) 2021 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Make "sudo apt-get update" exit non-zero for transient failures.
|
||||||
|
## Same as "apt-get --error-on=any".
|
||||||
|
## https://forums.whonix.org/t/debian-bullseye-apt-get-error-on-any/12068
|
||||||
|
## https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594813
|
||||||
|
## https://salsa.debian.org/apt-team/apt/-/commit/c7123bea6a8dc2c9e327ce41ddfc25e29f1bb145
|
||||||
|
APT::Update::Error-Mode any;
|
@ -1,4 +1,4 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
## https://forums.whonix.org/t/apt-seccomp-bpf-sandboxing/7702
|
## https://forums.whonix.org/t/apt-seccomp-bpf-sandboxing/7702
|
||||||
|
33
etc/bluetooth/30_security-misc.conf
Normal file
33
etc/bluetooth/30_security-misc.conf
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
## Copyright (C) 2023 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
[General]
|
||||||
|
# How long to stay in pairable mode before going back to non-discoverable
|
||||||
|
# The value is in seconds. Default is 0.
|
||||||
|
# 0 = disable timer, i.e. stay pairable forever
|
||||||
|
PairableTimeout = 30
|
||||||
|
|
||||||
|
# How long to stay in discoverable mode before going back to non-discoverable
|
||||||
|
# The value is in seconds. Default is 180, i.e. 3 minutes.
|
||||||
|
# 0 = disable timer, i.e. stay discoverable forever
|
||||||
|
DiscoverableTimeout = 30
|
||||||
|
|
||||||
|
# Maximum number of controllers allowed to be exposed to the system.
|
||||||
|
# Default=0 (unlimited)
|
||||||
|
MaxControllers=1
|
||||||
|
|
||||||
|
# How long to keep temporary devices around
|
||||||
|
# The value is in seconds. Default is 30.
|
||||||
|
# 0 = disable timer, i.e. never keep temporary devices
|
||||||
|
TemporaryTimeout = 0
|
||||||
|
|
||||||
|
[Policy]
|
||||||
|
# AutoEnable defines option to enable all controllers when they are found.
|
||||||
|
# This includes adapters present on start as well as adapters that are plugged
|
||||||
|
# in later on. Defaults to 'true'.
|
||||||
|
AutoEnable=false
|
||||||
|
|
||||||
|
# network/on: A device will only accept advertising packets from peer
|
||||||
|
# devices that contain private addresses. It may not be compatible with some
|
||||||
|
# legacy devices since it requires the use of RPA(s) all the time.
|
||||||
|
Privacy=network/on
|
188
etc/default/grub.d/40_cpu_mitigations.cfg
Normal file
188
etc/default/grub.d/40_cpu_mitigations.cfg
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Definitions:
|
||||||
|
## KSPP=yes: compliant with recommendations by the KSPP
|
||||||
|
## KSPP=partial: partially compliant with recommendations by the KSPP
|
||||||
|
## KSPP=no: not (currently) compliant with recommendations by the KSPP
|
||||||
|
## If there is no explicit KSPP compliance notice, the setting is not mentioned by the KSPP.
|
||||||
|
|
||||||
|
## Enable known mitigations for CPU vulnerabilities.
|
||||||
|
## Note, the mitigations for SSB and Retbleed are not currently mentioned in the first link.
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/index.html
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
|
||||||
|
## https://forums.whonix.org/t/should-all-kernel-patches-for-cpu-bugs-be-unconditionally-enabled-vs-performance-vs-applicability/7647
|
||||||
|
|
||||||
|
## Check for potential updates directly from AMD and Intel.
|
||||||
|
## https://www.amd.com/en/resources/product-security.html
|
||||||
|
## https://www.intel.com/content/www/us/en/developer/topic-technology/software-security-guidance/advisory-guidance.html
|
||||||
|
## https://www.intel.com/content/www/us/en/developer/topic-technology/software-security-guidance/disclosure-documentation.html
|
||||||
|
|
||||||
|
## Tabular comparison between the utility and functionality of various mitigations.
|
||||||
|
## https://forums.whonix.org/t/kernel-hardening-security-misc/7296/587
|
||||||
|
|
||||||
|
## For complete protection, users must install the latest relevant security microcode update.
|
||||||
|
## BIOS/UEFI updates should only be obtained directly from OEMs and/or motherboard manufacturers.
|
||||||
|
## Note that incorrectly performing system BIOS/UEFI updates can potentially lead to serious functionality issues.
|
||||||
|
## The parameters below only provide (partial) protection at both the kernel and user space level.
|
||||||
|
|
||||||
|
## If using Secure Boot, users must also ensure the Secure Boot Forbidden Signature Database (DBX) is up to date.
|
||||||
|
## The UEFI Revocation List contains signatures of now revoked firmware and software used in booting systems.
|
||||||
|
## If using compatible hardware, the database can be updated directly in user space using fwupd.
|
||||||
|
## Note that incorrectly performing DBX updates can potentially lead to serious functionality issues.
|
||||||
|
## https://uefi.org/revocationlistfile
|
||||||
|
## https://github.com/fwupd/fwupd
|
||||||
|
|
||||||
|
## Enable a subset of known mitigations for some CPU vulnerabilities and disable SMT.
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameters.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX mitigations=auto,nosmt"
|
||||||
|
|
||||||
|
## Disable SMT as it has been the cause of and amplified numerous CPU exploits.
|
||||||
|
## The only full mitigation of cross-HT attacks is to disable SMT.
|
||||||
|
## Disabling will significantly decrease system performance on multi-threaded tasks.
|
||||||
|
## Note, this setting will prevent re-enabling SMT via the sysfs interface.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/core-scheduling.html
|
||||||
|
## https://forums.whonix.org/t/should-all-kernel-patches-for-cpu-bugs-be-unconditionally-enabled-vs-performance-vs-applicability/7647/17
|
||||||
|
## https://github.com/anthraxx/linux-hardened/issues/37#issuecomment-619597365
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameter.
|
||||||
|
##
|
||||||
|
## To re-enable SMT:
|
||||||
|
## - Remove "nosmt=force".
|
||||||
|
## - Remove all occurrences of ",nosmt" in this file (note the comma ",").
|
||||||
|
## - Downgrade "l1tf=full,force" protection to "l1tf=flush".
|
||||||
|
## - Regenerate the dracut initramfs and then reboot system.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX nosmt=force"
|
||||||
|
|
||||||
|
## Spectre Side Channels (BTI and BHI):
|
||||||
|
## Unconditionally enable mitigation for Spectre Variant 2 (branch target injection).
|
||||||
|
## Enable mitigation for the Intel branch history injection vulnerability.
|
||||||
|
## Currently affects both AMD and Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/spectre.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX spectre_v2=on"
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX spectre_bhi=on"
|
||||||
|
|
||||||
|
## Speculative Store Bypass (SSB):
|
||||||
|
## Mitigate Spectre Variant 4 by disabling speculative store bypass system-wide.
|
||||||
|
## Unconditionally enable the mitigation for both kernel and userspace.
|
||||||
|
## Currently affects both AMD and Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://en.wikipedia.org/wiki/Speculative_Store_Bypass
|
||||||
|
## https://www.suse.com/support/kb/doc/?id=000019189
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX spec_store_bypass_disable=on"
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX ssbd=force-on"
|
||||||
|
|
||||||
|
## L1 Terminal Fault (L1TF):
|
||||||
|
## Mitigate the vulnerability by disabling L1D flush runtime control and SMT.
|
||||||
|
## If L1D flushing is conditional, mitigate the vulnerability for certain KVM hypervisor configurations.
|
||||||
|
## Currently affects Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/l1tf.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX l1tf=full,force"
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX kvm-intel.vmentry_l1d_flush=always"
|
||||||
|
|
||||||
|
## Microarchitectural Data Sampling (MDS):
|
||||||
|
## Mitigate the vulnerability by clearing the CPU buffer cache and disabling SMT.
|
||||||
|
## Currently affects Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX mds=full,nosmt"
|
||||||
|
|
||||||
|
## TSX Asynchronous Abort (TAA):
|
||||||
|
## Mitigate the vulnerability by disabling TSX.
|
||||||
|
## If TSX is enabled, clear CPU buffer rings on transitions and disable SMT.
|
||||||
|
## Currently affects Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_async_abort.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX tsx=off"
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX tsx_async_abort=full,nosmt"
|
||||||
|
|
||||||
|
## iTLB Multihit:
|
||||||
|
## Mitigate the vulnerability by marking all huge pages in the EPT as non-executable.
|
||||||
|
## Currently affects Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/multihit.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX kvm.nx_huge_pages=force"
|
||||||
|
|
||||||
|
## Special Register Buffer Data Sampling (SRBDS):
|
||||||
|
## Mitigation of the vulnerability is only possible via microcode update from Intel.
|
||||||
|
## Currently affects Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/special-register-buffer-data-sampling.html
|
||||||
|
## https://access.redhat.com/solutions/5142691
|
||||||
|
|
||||||
|
## L1D Flushing:
|
||||||
|
## Mitigate leaks from the L1D cache on context switches by enabling the prctl() interface.
|
||||||
|
## Currently affects Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/l1d_flush.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX l1d_flush=on"
|
||||||
|
|
||||||
|
## Processor MMIO Stale Data:
|
||||||
|
## Mitigate the vulnerabilities by appropriately clearing the CPU buffer and disabling SMT.
|
||||||
|
## Currently affects Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/processor_mmio_stale_data.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX mmio_stale_data=full,nosmt"
|
||||||
|
|
||||||
|
## Arbitrary Speculative Code Execution with Return Instructions (Retbleed):
|
||||||
|
## Mitigate the vulnerability through CPU-dependent implementation and disable SMT.
|
||||||
|
## Currently affects both AMD Zen 1-2 and Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://en.wikipedia.org/wiki/Retbleed
|
||||||
|
## https://comsec.ethz.ch/research/microarch/retbleed/
|
||||||
|
## https://www.suse.com/support/kb/doc/?id=000020693
|
||||||
|
## https://access.redhat.com/solutions/retbleed
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX retbleed=auto,nosmt"
|
||||||
|
|
||||||
|
## Cross-Thread Return Address Predictions:
|
||||||
|
## Mitigate the vulnerability for certain KVM hypervisor configurations.
|
||||||
|
## Currently affects AMD Zen 1-2 CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/cross-thread-rsb.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX kvm.mitigate_smt_rsb=1"
|
||||||
|
|
||||||
|
## Speculative Return Stack Overflow (SRSO):
|
||||||
|
## Mitigate the vulnerability by ensuring all RET instructions speculate to a controlled location.
|
||||||
|
## Currently affects AMD Zen 1-4 CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/srso.html
|
||||||
|
##
|
||||||
|
## The default kernel setting will be utilized until provided sufficient evidence to modify.
|
||||||
|
## Using "spec_rstack_overflow=ipbp" may provide stronger security at a greater performance impact.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX spec_rstack_overflow=safe-ret"
|
||||||
|
|
||||||
|
## Gather Data Sampling (GDS):
|
||||||
|
## Mitigate the vulnerability either via microcode update or by disabling AVX.
|
||||||
|
## Note, without a suitable microcode update, this will entirely disable use of the AVX instructions set.
|
||||||
|
## Currently affects Intel CPUs.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/gather_data_sampling.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX gather_data_sampling=force"
|
||||||
|
|
||||||
|
## Register File Data Sampling (RFDS):
|
||||||
|
## Mitigate the vulnerability by appropriately clearing the CPU buffer.
|
||||||
|
## Currently affects Intel Atom CPUs (which encompasses E-cores on hybrid architectures).
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/reg-file-data-sampling.html
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX reg_file_data_sampling=on"
|
@ -1,11 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Distrusts the CPU for initial entropy at boot as it is not possible to
|
|
||||||
## audit, may contain weaknesses or a backdoor.
|
|
||||||
##
|
|
||||||
## https://en.wikipedia.org/wiki/RDRAND#Reception
|
|
||||||
## https://twitter.com/pid_eins/status/1149649806056280069
|
|
||||||
## https://archive.nytimes.com/www.nytimes.com/interactive/2013/09/05/us/documents-reveal-nsa-campaign-against-encryption.html
|
|
||||||
## https://forums.whonix.org/t/entropy-config-random-trust-cpu-yes-or-no-rng-core-default-quality/8566
|
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX random.trust_cpu=off"
|
|
@ -1,5 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Enables IOMMU to prevent DMA attacks.
|
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX intel_iommu=on amd_iommu=on"
|
|
@ -1,59 +1,329 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
kpkg="linux-image-$(dpkg --print-architecture)"
|
kpkg="linux-image-$(dpkg --print-architecture)" || true
|
||||||
kver="$(dpkg-query --show --showformat='${Version}' "$kpkg")"
|
kver="$(dpkg-query --show --showformat='${Version}' "$kpkg")" 2>/dev/null || true
|
||||||
#echo "## kver: $kver"
|
#echo "## kver: $kver"
|
||||||
|
|
||||||
## Disables the merging of slabs of similar sizes.
|
## Definitions:
|
||||||
## Sometimes a slab can be used in a vulnerable way which an attacker can exploit.
|
## KSPP=yes: compliant with recommendations by the KSPP
|
||||||
|
## KSPP=partial: partially compliant with recommendations by the KSPP
|
||||||
|
## KSPP=no: not (currently) compliant with recommendations by the KSPP
|
||||||
|
## If there is no explicit KSPP compliance notice, the setting is not mentioned by the KSPP.
|
||||||
|
|
||||||
|
## This configuration file is split into 4 sections:
|
||||||
|
## 1. Kernel Space
|
||||||
|
## 2. Direct Memory Access
|
||||||
|
## 3. Entropy
|
||||||
|
## 4. Networking
|
||||||
|
|
||||||
|
## See the documentation below for details on the majority of the selected commands:
|
||||||
|
## https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
|
||||||
|
## https://wiki.archlinux.org/title/Kernel_parameters#GRUB
|
||||||
|
|
||||||
|
## 1. Kernel Space:
|
||||||
|
##
|
||||||
|
## https://madaidans-insecurities.github.io/guides/linux-hardening.html#boot-parameters
|
||||||
|
## https://kspp.github.io/Recommended_Settings#kernel-command-line-options
|
||||||
|
|
||||||
|
## Disable merging of slabs with similar size.
|
||||||
|
## Reduces the risk of triggering heap overflows.
|
||||||
|
## Prevents overwriting objects from merged caches and limits influencing slab cache layout.
|
||||||
|
##
|
||||||
|
## https://www.openwall.com/lists/kernel-hardening/2017/06/19/33
|
||||||
|
## https://www.openwall.com/lists/kernel-hardening/2017/06/20/10
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameter and does not set CONFIG_SLAB_MERGE_DEFAULT.
|
||||||
|
##
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX slab_nomerge"
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX slab_nomerge"
|
||||||
|
|
||||||
if dpkg --compare-versions "$kver" ge "5.3"; then
|
## Enable sanity checks and red zoning of slabs via debugging options to detect corruption.
|
||||||
## Enables sanity checks (F) and redzoning (Z).
|
## As a by product of debugging, this will implicitly disabling kernel pointer hashing.
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX slub_debug=FZ"
|
## Enabling will therefore leak exact and all kernel memory addresses to root.
|
||||||
|
## Has the potential to cause a noticeable performance decrease.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/mm/slub.html
|
||||||
|
## https://lore.kernel.org/all/20210601182202.3011020-5-swboyd@chromium.org/T/#u
|
||||||
|
## https://gitlab.tails.boum.org/tails/tails/-/issues/19613
|
||||||
|
## https://github.com/Kicksecure/security-misc/issues/253
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameters and CONFIG_SLUB_DEBUG.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX slab_debug=FZ"
|
||||||
|
|
||||||
#echo "## $kver grater or equal 5.3: yes"
|
## Zero memory at allocation time and free time.
|
||||||
## Zero memory at allocation and free time.
|
## Fills newly allocated pages, freed pages, and heap objects with zeros.
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX init_on_alloc=1 init_on_free=1"
|
## Mitigates use-after-free exploits by erasing sensitive information in memory.
|
||||||
else
|
##
|
||||||
#echo "## $kver grater or equal 5.3: no"
|
## https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6471384af2a6530696fc0203bafe4de41a23c9ef
|
||||||
## SLUB poisoning and page poisoning is used if the kernel
|
##
|
||||||
## does not yet support init_on_{,alloc,free}.
|
## KSPP=yes
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX slub_debug=FZP"
|
## KSPP sets the kernel parameters, CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y, and CONFIG_INIT_ON_FREE_DEFAULT_ON=y.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX init_on_alloc=1"
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX init_on_free=1"
|
||||||
|
|
||||||
if command -v "qubesdb-read" >/dev/null 2>&1 ; then
|
## Enable the kernel page allocator to randomize free lists.
|
||||||
## https://github.com/QubesOS/qubes-issues/issues/5212#issuecomment-533873012
|
## During early boot, the page allocator has predictable FIFO behavior for physical pages.
|
||||||
true "skip adding page_poison=1 in Qubes"
|
## Limits some data exfiltration and ROP attacks that rely on inferring sensitive data location.
|
||||||
else
|
## Also improves performance by optimizing memory-side cache utilization.
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX page_poison=1"
|
##
|
||||||
fi
|
## https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e900a918b0984ec8f2eb150b8477a47b75d17692
|
||||||
fi
|
## https://en.wikipedia.org/wiki/Return-oriented_programming#Attacks
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameter and CONFIG_SHUFFLE_PAGE_ALLOCATOR=y.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX page_alloc.shuffle=1"
|
||||||
|
|
||||||
## Makes the kernel panic on uncorrectable errors in ECC memory that an attacker could exploit.
|
## Enable kernel page table isolation to harden against kernel ASLR (KASLR) bypasses.
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX mce=0"
|
## Mitigates the Meltdown CPU vulnerability.
|
||||||
|
##
|
||||||
## Enables Kernel Page Table Isolation which mitigates Meltdown and improves KASLR.
|
## https://en.wikipedia.org/wiki/Kernel_page-table_isolation
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameter and CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y.
|
||||||
|
##
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX pti=on"
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX pti=on"
|
||||||
|
|
||||||
## Enables all mitigations for the MDS vulnerability.
|
## Enable randomization of the kernel stack offset on syscall entries.
|
||||||
## Disables smt which can be used to exploit the MDS vulnerability.
|
## Hardens against memory corruption attacks due to increased entropy.
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX mds=full,nosmt"
|
## Limits attacks relying on deterministic stack addresses or cross-syscall address exposure.
|
||||||
|
##
|
||||||
|
## https://lkml.org/lkml/2019/3/18/246
|
||||||
|
## https://a13xp0p0v.github.io/2020/02/15/CVE-2019-18683.html
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameter and CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX randomize_kstack_offset=on"
|
||||||
|
|
||||||
## Vsyscalls are obsolete, are at fixed addresses and are a target for ROP.
|
## Disable vsyscalls to reduce attack surface as they have been replaced by vDSO.
|
||||||
|
## Vulnerable to ROP attacks as vsyscalls are located at fixed addresses in memory.
|
||||||
|
##
|
||||||
|
## https://lwn.net/Articles/446528/
|
||||||
|
## https://en.wikipedia.org/wiki/VDSO
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameter, CONFIG_LEGACY_VSYSCALL_NONE=y and does not set CONFIG_X86_VSYSCALL_EMULATION.
|
||||||
|
##
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX vsyscall=none"
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX vsyscall=none"
|
||||||
|
|
||||||
## Enables page allocator freelist randomization.
|
## Restrict access to debugfs by not registering the file system.
|
||||||
if dpkg --compare-versions "${kver}" ge "5.2"; then
|
## Deactivated since the file system can contain sensitive information.
|
||||||
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX page_alloc.shuffle=1"
|
##
|
||||||
fi
|
## https://lkml.org/lkml/2020/7/16/122
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX debugfs=off"
|
||||||
|
|
||||||
## Enables kernel lockdown.
|
## Force the kernel to panic on "oopses".
|
||||||
|
## Can sometimes potentially indicate and thwart certain kernel exploitation attempts.
|
||||||
|
## Panics may be due to false-positives such as bad drivers.
|
||||||
##
|
##
|
||||||
## Disabled for now as it enforces module signature verification which breaks
|
## https://en.wikipedia.org/wiki/Kernel_panic#Linux
|
||||||
## too many things.
|
## https://en.wikipedia.org/wiki/Linux_kernel_oops
|
||||||
## https://forums.whonix.org/t/enforce-kernel-module-software-signature-verification-module-signing-disallow-kernel-module-loading-by-default/7880
|
## https://forums.whonix.org/t/set-oops-panic-kernel-parameter-or-kernel-panic-on-oops-1-sysctl-for-better-security/7713
|
||||||
##
|
##
|
||||||
#if dpkg --compare-versions "${kver}" ge "5.4"; then
|
## KSPP=partial
|
||||||
# GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX lockdown=confidentiality"
|
## KSPP sets CONFIG_PANIC_ON_OOPS=y, but also requires CONFIG_PANIC_TIMEOUT=-1.
|
||||||
#fi
|
##
|
||||||
|
## See /usr/libexec/security-misc/panic-on-oops for implementation.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX oops=panic"
|
||||||
|
|
||||||
|
## Modify machine check exception handler.
|
||||||
|
## Can decide whether the system should panic or not based on the occurrence of an exception.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/arch/x86/x86_64/machinecheck.html
|
||||||
|
## https://www.kernel.org/doc/html/latest/arch/x86/x86_64/boot-options.html#machine-check
|
||||||
|
## https://forums.whonix.org/t/kernel-hardening/7296/494
|
||||||
|
##
|
||||||
|
## The default kernel setting will be utilized until provided sufficient evidence to modify.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX mce=0"
|
||||||
|
|
||||||
|
## Prevent sensitive kernel information leaks in the console during boot.
|
||||||
|
## Must be used in combination with the kernel.printk sysctl.
|
||||||
|
## See /usr/lib/sysctl.d/30_silent-kernel-printk.conf for implementation.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/core-api/printk-basics.html
|
||||||
|
## https://wiki.archlinux.org/title/silent_boot
|
||||||
|
##
|
||||||
|
## See /etc/default/grub.d/41_quiet_boot.cfg for implementation.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX loglevel=0"
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX quiet"
|
||||||
|
|
||||||
|
## Enable the kernel "Electric-Fence" sampling-based memory safety error detector.
|
||||||
|
## KFENCE detects heap out-of-bounds access, use-after-free, and invalid-free errors.
|
||||||
|
## Aims to have very low processing overhead at each sampling interval.
|
||||||
|
## Sampling interval is set to occur every 100 milliseconds as per KSPP recommendation.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/dev-tools/kfence.html
|
||||||
|
## https://google.github.io/kernel-sanitizers/KFENCE.html
|
||||||
|
## https://blogs.oracle.com/linux/post/linux-slub-allocator-internals-and-debugging-4
|
||||||
|
## https://lwn.net/Articles/835542/
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameter, CONFIG_KFENCE=y, and CONFIG_KFENCE_SAMPLE_INTERVAL=100.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX kfence.sample_interval=100"
|
||||||
|
|
||||||
|
## Disable 32-bit Virtual Dynamic Shared Object (vDSO) mappings.
|
||||||
|
## Legacy compatibility feature for superseded glibc versions.
|
||||||
|
##
|
||||||
|
## https://lore.kernel.org/lkml/20080409082927.BD59E26F992@magilla.localdomain/T/
|
||||||
|
## https://lists.openwall.net/linux-kernel/2014/03/11/3
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameter and does not set CONFIG_COMPAT_VDSO.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX vdso32=0"
|
||||||
|
|
||||||
|
## Switch (back) to using kCFI as the default Control Flow Integrity (CFI) implementation.
|
||||||
|
## The default implementation is FineIBT as of Linux kernel 6.2.
|
||||||
|
## The Intel-developed IBT (Indirect Branch Tracking) is only used if supported by the CPU.
|
||||||
|
## kCFI is software-only while FineIBT is a hybrid software/hardware implementation.
|
||||||
|
## FineIBT may result in some performance benefits as it only performs checking at destinations.
|
||||||
|
## FineIBT is considered weaker against attacks that can write arbitrary executables into memory.
|
||||||
|
## Upstream hardening work has provided users the ability to disable FineIBT based on requests.
|
||||||
|
## Choice of CFI implementation is highly dependent on user threat model as there are pros/cons to both.
|
||||||
|
## Do not modify from the default setting if unsure of implications.
|
||||||
|
##
|
||||||
|
## https://lore.kernel.org/all/20221027092842.699804264@infradead.org/
|
||||||
|
## https://lore.kernel.org/lkml/202210010918.4918F847C4@keescook/T/#u
|
||||||
|
## https://lore.kernel.org/lkml/202210182217.486CBA50@keescook/T/
|
||||||
|
## https://lore.kernel.org/lkml/202407150933.E1871BE@keescook/
|
||||||
|
## https://isopenbsdsecu.re/mitigations/forward_edge_cfi/
|
||||||
|
## https://docs.kernel.org/next/x86/shstk.html
|
||||||
|
## https://source.android.com/docs/security/test/kcfi
|
||||||
|
## https://lpc.events/event/16/contributions/1315/attachments/1067/2169/cfi.pdf
|
||||||
|
## https://forums.whonix.org/t/kernel-hardening-security-misc/7296/561
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameter.
|
||||||
|
##
|
||||||
|
## TODO: Debian 13 Trixie
|
||||||
|
## Applicable when using Linux kernel >= 6.2 (retained here for future-proofing and completeness).
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX cfi=kcfi"
|
||||||
|
|
||||||
|
## Disable support for x86 processes and syscalls.
|
||||||
|
## Unconditionally disables IA32 emulation to substantially reduce attack surface.
|
||||||
|
##
|
||||||
|
## https://lore.kernel.org/all/20230623111409.3047467-7-nik.borisov@suse.com/
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP does not set CONFIG_COMPAT, CONFIG_IA32_EMULATION, CONFIG_X86_X32, CONFIG_X86_X32_ABI, and CONFIG_MODIFY_LDT_SYSCALL.
|
||||||
|
##
|
||||||
|
## TODO: Debian 13 Trixie
|
||||||
|
## Applicable when using Linux kernel >= 6.7 (retained here for future-proofing and completeness).
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX ia32_emulation=0"
|
||||||
|
|
||||||
|
## Disable EFI persistent storage feature.
|
||||||
|
## Prevents the kernel from writing crash logs and other persistent data to the EFI variable store.
|
||||||
|
##
|
||||||
|
## https://blogs.oracle.com/linux/post/pstore-linux-kernel-persistent-storage-file-system
|
||||||
|
## https://www.ais.com/understanding-pstore-linux-kernel-persistent-storage-file-system/
|
||||||
|
## https://lwn.net/Articles/434821/
|
||||||
|
## https://manpages.debian.org/testing/systemd/systemd-pstore.service.8.en.html
|
||||||
|
## https://gitlab.tails.boum.org/tails/tails/-/issues/20813
|
||||||
|
## https://github.com/Kicksecure/security-misc/issues/299
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX efi_pstore.pstore_disable=1"
|
||||||
|
|
||||||
|
## 2. Direct Memory Access:
|
||||||
|
##
|
||||||
|
## https://madaidans-insecurities.github.io/guides/linux-hardening.html#dma-attacks
|
||||||
|
|
||||||
|
## Enable CPU manufacturer-specific IOMMU drivers to mitigate some DMA attacks.
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets CONFIG_INTEL_IOMMU=y, CONFIG_INTEL_IOMMU_DEFAULT_ON=y, CONFIG_INTEL_IOMMU_SVM=y, CONFIG_AMD_IOMMU=y, and CONFIG_AMD_IOMMU_V2=y.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX amd_iommu=force_isolation"
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX intel_iommu=on"
|
||||||
|
|
||||||
|
## Enable and force use of IOMMU translation to protect against some DMA attacks.
|
||||||
|
## Strictly force DMA unmap operations to synchronously invalidate IOMMU hardware TLBs.
|
||||||
|
## Ensures devices will never be able to access stale data contents.
|
||||||
|
##
|
||||||
|
## https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit
|
||||||
|
## https://en.wikipedia.org/wiki/DMA_attack
|
||||||
|
## https://lenovopress.lenovo.com/lp1467.pdf
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets the kernel parameters, CONFIG_IOMMU_SUPPORT=y, CONFIG_IOMMU_DEFAULT_DMA_STRICT=y, and does not set CONFIG_IOMMU_DEFAULT_PASSTHROUGH.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX iommu=force"
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX iommu.passthrough=0"
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX iommu.strict=1"
|
||||||
|
|
||||||
|
## Clear the busmaster bit on all PCI bridges during the EFI hand-off.
|
||||||
|
## Terminates all existing DMA transactions prior to the kernel's IOMMU setup.
|
||||||
|
## Forces third party PCI devices to then re-set their busmaster bit in order to perform DMA.
|
||||||
|
## Assumes that the motherboard chipset and firmware are not malicious.
|
||||||
|
## May cause complete boot failure on certain hardware with incompatible firmware.
|
||||||
|
##
|
||||||
|
## https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4444f8541dad16fefd9b8807ad1451e806ef1d94
|
||||||
|
## https://mjg59.dreamwidth.org/54433.html
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets CONFIG_EFI_DISABLE_PCI_DMA=y.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX efi=disable_early_pci_dma"
|
||||||
|
|
||||||
|
## 3. Entropy:
|
||||||
|
##
|
||||||
|
## https://madaidans-insecurities.github.io/guides/linux-hardening.html#rdrand
|
||||||
|
|
||||||
|
## Do not credit the CPU or bootloader seeds as entropy sources at boot.
|
||||||
|
## The RDRAND CPU (RNG) instructions are proprietary and closed-source.
|
||||||
|
## Numerous implementations of RDRAND have a long history of being defective.
|
||||||
|
## The RNG seed passed by the bootloader could also potentially be tampered.
|
||||||
|
## Maximizing the entropy pool at boot is desirable for all cryptographic operations.
|
||||||
|
## These settings ensure additional entropy is obtained from other sources to initialize the RNG.
|
||||||
|
## Note that distrusting these (relatively fast) sources of entropy will increase boot time.
|
||||||
|
##
|
||||||
|
## https://en.wikipedia.org/wiki/RDRAND#Reception
|
||||||
|
## https://systemd.io/RANDOM_SEEDS/
|
||||||
|
## https://www.kicksecure.com/wiki/Dev/Entropy#RDRAND
|
||||||
|
## https://arstechnica.com/gadgets/2019/10/how-a-months-old-amd-microcode-bug-destroyed-my-weekend/
|
||||||
|
## https://x.com/pid_eins/status/1149649806056280069
|
||||||
|
## https://archive.nytimes.com/www.nytimes.com/interactive/2013/09/05/us/documents-reveal-nsa-campaign-against-encryption.html
|
||||||
|
## https://forums.whonix.org/t/entropy-config-random-trust-cpu-yes-or-no-rng-core-default-quality/8566
|
||||||
|
## https://github.com/NixOS/nixpkgs/pull/165355
|
||||||
|
## https://lkml.org/lkml/2022/6/5/271
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets CONFIG_RANDOM_TRUST_BOOTLOADER=y and CONFIG_RANDOM_TRUST_CPU=y.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX random.trust_bootloader=off"
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX random.trust_cpu=off"
|
||||||
|
|
||||||
|
## Obtain more entropy during boot as the runtime memory allocator is being initialized.
|
||||||
|
## Entropy will be extracted from up to the first 4GB of RAM.
|
||||||
|
## Requires the linux-hardened kernel patch.
|
||||||
|
##
|
||||||
|
## https://www.kicksecure.com/wiki/Hardened-kernel#linux-hardened
|
||||||
|
## https://github.com/anthraxx/linux-hardened/commit/c3e7df1dba1eb8105d6d5143079a6a0ad9e9ebc7
|
||||||
|
## https://github.com/anthraxx/linux-hardened/commit/a04458f97fe1f7e95888c77c0165b646375db9c4
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX extra_latent_entropy"
|
||||||
|
|
||||||
|
## 4. Networking
|
||||||
|
##
|
||||||
|
## https://madaidans-insecurities.github.io/guides/linux-hardening.html#kasr-boot-parameters
|
||||||
|
|
||||||
|
## Disable the entire IPv6 stack functionality.
|
||||||
|
## Removes attack surface associated with the IPv6 module.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/networking/ipv6.html
|
||||||
|
## https://wiki.archlinux.org/title/IPv6#Disable_IPv6
|
||||||
|
##
|
||||||
|
## Enabling makes redundant many network hardening sysctl's in /usr/lib/sysctl.d/990-security-misc.conf.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX ipv6.disable=1"
|
||||||
|
31
etc/default/grub.d/40_remount_secure.cfg
Normal file
31
etc/default/grub.d/40_remount_secure.cfg
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
## Copyright (C) 2023 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Definitions:
|
||||||
|
## KSPP=yes: compliant with recommendations by the KSPP
|
||||||
|
## KSPP=partial: partially compliant with recommendations by the KSPP
|
||||||
|
## KSPP=no: not (currently) compliant with recommendations by the KSPP
|
||||||
|
## If there is no explicit KSPP compliance notice, the setting is not mentioned by the KSPP.
|
||||||
|
|
||||||
|
## Remount Secure provides enhanced security via mount options:
|
||||||
|
## https://www.kicksecure.com/wiki/Security-misc#Remount_Secure
|
||||||
|
|
||||||
|
## Option A (No Security):
|
||||||
|
## Disable Remount Secure.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX remountsecure=0"
|
||||||
|
|
||||||
|
## Option B (Low Security):
|
||||||
|
## Re-mount with nodev and nosuid only.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX remountsecure=1"
|
||||||
|
|
||||||
|
## Option C (Medium Security):
|
||||||
|
## Re-mount with nodev, nosuid, and noexec for most mount points, excluding /home.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX remountsecure=2"
|
||||||
|
|
||||||
|
## Option D (Highest Security):
|
||||||
|
## Re-mount with nodev, nosuid, and noexec for all mount points including /home.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX remountsecure=3"
|
37
etc/default/grub.d/40_signed_modules.cfg
Normal file
37
etc/default/grub.d/40_signed_modules.cfg
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Definitions:
|
||||||
|
## KSPP=yes: compliant with recommendations by the KSPP
|
||||||
|
## KSPP=partial: partially compliant with recommendations by the KSPP
|
||||||
|
## KSPP=no: not (currently) compliant with recommendations by the KSPP
|
||||||
|
## If there is no explicit KSPP compliance notice, the setting is not mentioned by the KSPP.
|
||||||
|
|
||||||
|
## Require every kernel module to be signed before being loaded.
|
||||||
|
## Any module that is unsigned or signed with an invalid key cannot be loaded.
|
||||||
|
## This prevents all out-of-tree kernel modules unless signed.
|
||||||
|
## This makes it harder to load a malicious module.
|
||||||
|
##
|
||||||
|
## https://forums.whonix.org/t/enforce-kernel-module-software-signature-verification-module-signing-disallow-kernel-module-loading-by-default/7880/61
|
||||||
|
## https://github.com/dell/dkms/issues/359
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets CONFIG_MODULE_SIG=y, CONFIG_MODULE_SIG_FORCE=y, and CONFIG_MODULE_SIG_ALL=y.
|
||||||
|
##
|
||||||
|
## Not enabled by default yet due to several issues.
|
||||||
|
##
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX module.sig_enforce=1"
|
||||||
|
|
||||||
|
## Enable kernel lockdown to enforce security boundary between user and kernel space.
|
||||||
|
## Confidentiality mode enforces module signature verification.
|
||||||
|
##
|
||||||
|
## https://forums.whonix.org/t/enforce-kernel-module-software-signature-verification-module-signing-disallow-kernel-module-loading-by-default/7880
|
||||||
|
##
|
||||||
|
## KSPP=yes
|
||||||
|
## KSPP sets CONFIG_SECURITY_LOCKDOWN_LSM=y, CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y, and CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY=y.
|
||||||
|
##
|
||||||
|
## Not enabled by default yet due to several issues.
|
||||||
|
##
|
||||||
|
#if dpkg --compare-versions "${kver}" ge "5.4"; then
|
||||||
|
# GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX lockdown=confidentiality"
|
||||||
|
#fi
|
35
etc/default/grub.d/41_quiet_boot.cfg
Normal file
35
etc/default/grub.d/41_quiet_boot.cfg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Definitions:
|
||||||
|
## KSPP=yes: compliant with recommendations by the KSPP
|
||||||
|
## KSPP=partial: partially compliant with recommendations by the KSPP
|
||||||
|
## KSPP=no: not (currently) compliant with recommendations by the KSPP
|
||||||
|
## If there is no explicit KSPP compliance notice, the setting is not mentioned by the KSPP.
|
||||||
|
|
||||||
|
## Some default configuration files automatically include the "quiet" parameter.
|
||||||
|
## Therefore, first remove "quiet" from GRUB_CMDLINE_LINUX_DEFAULT since "quiet" must be first.
|
||||||
|
## str_replace is provided by package helper-scripts.
|
||||||
|
##
|
||||||
|
## https://github.com/Kicksecure/security-misc/pull/233#issuecomment-2228792461
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="$(echo "$GRUB_CMDLINE_LINUX_DEFAULT" | str_replace "quiet" "")"
|
||||||
|
|
||||||
|
## Prevent sensitive kernel information leaks in the console during boot.
|
||||||
|
## Must be used in combination with the kernel.printk sysctl.
|
||||||
|
## See /usr/lib/sysctl.d/30_silent-kernel-printk.conf for implementation.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/core-api/printk-basics.html
|
||||||
|
## https://wiki.archlinux.org/title/silent_boot
|
||||||
|
##
|
||||||
|
## For easier debugging, these are not applied to the recovery boot option.
|
||||||
|
## Switch the pair of commands to universally apply parameters to all boot options.
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT loglevel=0"
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT quiet"
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX loglevel=0"
|
||||||
|
#GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX quiet"
|
||||||
|
|
||||||
|
## For Increased Log Verbosity:
|
||||||
|
## Adjust (or comment out) the kernel.printk sysctl in /usr/lib/sysctl.d/30_silent-kernel-printk.conf.
|
||||||
|
## Alternatively, installing the debug-misc package will undo these settings.
|
21
etc/default/grub.d/41_recovery_restrict.cfg
Normal file
21
etc/default/grub.d/41_recovery_restrict.cfg
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
## Copyright (C) 2024 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Definitions:
|
||||||
|
## KSPP=yes: compliant with recommendations by the KSPP
|
||||||
|
## KSPP=partial: partially compliant with recommendations by the KSPP
|
||||||
|
## KSPP=no: not (currently) compliant with recommendations by the KSPP
|
||||||
|
## If there is no explicit KSPP compliance notice, the setting is not mentioned by the KSPP.
|
||||||
|
|
||||||
|
## Disable access to single-user (recovery) mode.
|
||||||
|
##
|
||||||
|
## https://forums.kicksecure.com/t/remove-linux-recovery-mode-boot-option-from-default-grub-boot-menu/727
|
||||||
|
##
|
||||||
|
GRUB_DISABLE_RECOVERY="true"
|
||||||
|
|
||||||
|
## Disable access to Dracut's recovery console.
|
||||||
|
##
|
||||||
|
## https://forums.kicksecure.com/t/harden-dracut-initramfs-generator-by-disabling-recovery-console/724
|
||||||
|
##
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT rd.emergency=halt"
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT rd.shell=0"
|
7
etc/dracut.conf.d/30-security-misc.conf
Normal file
7
etc/dracut.conf.d/30-security-misc.conf
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
## Copyright (C) 2021 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
reproducible=yes
|
||||||
|
|
||||||
|
## Debugging.
|
||||||
|
#show_modules=yes
|
38
etc/gitconfig
Normal file
38
etc/gitconfig
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
## Copyright (C) 2024 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Lines starting with a hash symbol ('#') are comments.
|
||||||
|
## https://github.com/Kicksecure/security-misc/issues/225
|
||||||
|
|
||||||
|
[core]
|
||||||
|
## https://github.com/git/git/security/advisories/GHSA-8prw-h3cq-mghm
|
||||||
|
symlinks = false
|
||||||
|
|
||||||
|
## https://forums.whonix.org/t/git-users-enable-fsck-by-default-for-better-security/2066
|
||||||
|
[transfer]
|
||||||
|
fsckobjects = true
|
||||||
|
[fetch]
|
||||||
|
fsckobjects = true
|
||||||
|
[receive]
|
||||||
|
fsckobjects = true
|
||||||
|
|
||||||
|
## Generally a good idea but too intrusive to enable by default.
|
||||||
|
## Listed here as suggestions what users should put into their ~/.gitconfig
|
||||||
|
## file.
|
||||||
|
|
||||||
|
## Not enabled by default because it requires essential knowledge about OpenPG
|
||||||
|
## and an already existing local signing key. Otherwise would prevent all new
|
||||||
|
## commits.
|
||||||
|
#[commit]
|
||||||
|
# gpgsign = true
|
||||||
|
|
||||||
|
## Not enabled by default because it would break the 'git merge' command for
|
||||||
|
## unsigned commits and require the '--no-verify-signature' command line
|
||||||
|
## option.
|
||||||
|
#[merge]
|
||||||
|
# verifySignatures = true
|
||||||
|
|
||||||
|
## Not enabled by default because it would break for users who are not having
|
||||||
|
## an account at the git server and having added a SSH public key.
|
||||||
|
#[url "ssh://git@github.com/"]
|
||||||
|
# insteadOf = https://github.com/
|
@ -1,4 +1,4 @@
|
|||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
## Disable the /sys whitelist.
|
## Disable the /sys whitelist.
|
||||||
@ -6,3 +6,10 @@
|
|||||||
|
|
||||||
## Disable the /proc/cpuinfo whitelist.
|
## Disable the /proc/cpuinfo whitelist.
|
||||||
#cpuinfo_whitelist=0
|
#cpuinfo_whitelist=0
|
||||||
|
|
||||||
|
## Disable /sys hardening.
|
||||||
|
#sysfs=0
|
||||||
|
|
||||||
|
## Disable selinux mode.
|
||||||
|
## https://www.kicksecure.com/wiki/Security-misc#selinux
|
||||||
|
#selinux=0
|
||||||
|
21
etc/initramfs-tools/hooks/sysctl-initramfs
Executable file
21
etc/initramfs-tools/hooks/sysctl-initramfs
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PREREQ=""
|
||||||
|
prereqs()
|
||||||
|
{
|
||||||
|
echo "$PREREQ"
|
||||||
|
}
|
||||||
|
case $1 in
|
||||||
|
prereqs)
|
||||||
|
prereqs
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
. /usr/share/initramfs-tools/hook-functions
|
||||||
|
copy_exec /usr/sbin/sysctl /usr/sbin
|
26
etc/initramfs-tools/scripts/init-bottom/sysctl-initramfs
Executable file
26
etc/initramfs-tools/scripts/init-bottom/sysctl-initramfs
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
PREREQ=""
|
||||||
|
prereqs()
|
||||||
|
{
|
||||||
|
echo "$PREREQ"
|
||||||
|
}
|
||||||
|
case $1 in
|
||||||
|
prereqs)
|
||||||
|
prereqs
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
## Write to '/run/initramfs' folder.
|
||||||
|
## https://forums.whonix.org/t/kernel-hardening/7296/435
|
||||||
|
|
||||||
|
sysctl -p ${rootmnt}/etc/sysctl.conf >/dev/null 2> "/run/initramfs/sysctl-initramfs-error.log"
|
||||||
|
sysctl -p ${rootmnt}/etc/sysctl.d/*.conf >/dev/null 2>> "/run/initramfs/sysctl-initramfs-error.log"
|
||||||
|
|
||||||
|
grep -v "unprivileged_userfaultfd" "/run/initramfs/sysctl-initramfs-error.log"
|
||||||
|
|
||||||
|
true
|
@ -1,5 +1,8 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if test -x /usr/lib/security-misc/remove-system.map ; then
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
/usr/lib/security-misc/remove-system.map
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
if test -x /usr/libexec/security-misc/remove-system.map ; then
|
||||||
|
/usr/libexec/security-misc/remove-system.map
|
||||||
fi
|
fi
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
## https://phabricator.whonix.org/T486
|
|
||||||
options nf_conntrack nf_conntrack_helper=0
|
|
63
etc/modprobe.d/30_security-misc_blacklist.conf
Normal file
63
etc/modprobe.d/30_security-misc_blacklist.conf
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## See the following links for a community discussion and overview regarding the selections.
|
||||||
|
## https://forums.whonix.org/t/blacklist-more-kernel-modules-to-reduce-attack-surface/7989
|
||||||
|
## https://madaidans-insecurities.github.io/guides/linux-hardening.html#kasr-kernel-modules
|
||||||
|
|
||||||
|
## Blacklisting prevents kernel modules from automatically starting.
|
||||||
|
## Disabling prohibits kernel modules from starting.
|
||||||
|
|
||||||
|
## CD-ROM/DVD:
|
||||||
|
## Blacklist CD-ROM and DVD modules.
|
||||||
|
## Not disabled by default due to potential future ISO plans.
|
||||||
|
##
|
||||||
|
## https://nvd.nist.gov/vuln/detail/CVE-2018-11506
|
||||||
|
## https://forums.whonix.org/t/blacklist-more-kernel-modules-to-reduce-attack-surface/7989/31
|
||||||
|
##
|
||||||
|
blacklist cdrom
|
||||||
|
blacklist sr_mod
|
||||||
|
##
|
||||||
|
#install cdrom /usr/bin/disabled-cdrom-by-security-misc
|
||||||
|
#install sr_mod /usr/bin/disabled-cdrom-by-security-misc
|
||||||
|
|
||||||
|
## Miscellaneous:
|
||||||
|
|
||||||
|
## GrapheneOS:
|
||||||
|
## Partial selection of their infrastructure blacklist.
|
||||||
|
## Duplicate and already disabled modules have been omitted.
|
||||||
|
##
|
||||||
|
## https://github.com/GrapheneOS/infrastructure/blob/main/modprobe.d/local.conf
|
||||||
|
##
|
||||||
|
#blacklist cfg80211
|
||||||
|
#blacklist intel_agp
|
||||||
|
#blacklist ip_tables
|
||||||
|
blacklist joydev
|
||||||
|
#blacklist mousedev
|
||||||
|
#blacklist psmouse
|
||||||
|
## TODO: Re-check in Debian trixie
|
||||||
|
## In GrapheneOS list, yes, "should" be out-commented here.
|
||||||
|
## But not actually out-commented.
|
||||||
|
## Breaks VirtualBox audio device ICH AC97, which is unfortunately still required by some users.
|
||||||
|
## https://www.kicksecure.com/wiki/Dev/audio
|
||||||
|
## https://github.com/Kicksecure/security-misc/issues/271
|
||||||
|
#blacklist snd_intel8x0
|
||||||
|
#blacklist tls
|
||||||
|
#blacklist virtio_balloon
|
||||||
|
#blacklist virtio_console
|
||||||
|
|
||||||
|
## Ubuntu:
|
||||||
|
## Already disabled modules have been omitted.
|
||||||
|
##
|
||||||
|
## https://git.launchpad.net/ubuntu/+source/kmod/tree/debian/modprobe.d/blacklist.conf?h=ubuntu/disco
|
||||||
|
## https://git.launchpad.net/ubuntu/+source/kmod/tree/debian/modprobe.d/blacklist-ath_pci.conf?h=ubuntu/disco
|
||||||
|
##
|
||||||
|
blacklist amd76x_edac
|
||||||
|
blacklist ath_pci
|
||||||
|
blacklist evbug
|
||||||
|
blacklist pcspkr
|
||||||
|
blacklist snd_aw2
|
||||||
|
blacklist snd_intel8x0m
|
||||||
|
blacklist snd_pcsp
|
||||||
|
blacklist usbkbd
|
||||||
|
blacklist usbmouse
|
12
etc/modprobe.d/30_security-misc_conntrack.conf
Normal file
12
etc/modprobe.d/30_security-misc_conntrack.conf
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Conntrack:
|
||||||
|
## Disable Netfilter's automatic connection tracking helper assignment.
|
||||||
|
## This functionality adds unnecessary features, such as IRC protocol parsing, into the kernel.
|
||||||
|
## Disabling it reduces the kernel attack surface and improves security.
|
||||||
|
##
|
||||||
|
## https://conntrack-tools.netfilter.org/manual.html
|
||||||
|
## https://forums.whonix.org/t/disable-conntrack-helper/18917
|
||||||
|
##
|
||||||
|
options nf_conntrack nf_conntrack_helper=0
|
310
etc/modprobe.d/30_security-misc_disable.conf
Normal file
310
etc/modprobe.d/30_security-misc_disable.conf
Normal file
@ -0,0 +1,310 @@
|
|||||||
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## See the following links for a community discussion and overview regarding the selections:
|
||||||
|
## https://forums.whonix.org/t/blacklist-more-kernel-modules-to-reduce-attack-surface/7989
|
||||||
|
## https://madaidans-insecurities.github.io/guides/linux-hardening.html#kasr-kernel-modules
|
||||||
|
|
||||||
|
## Blacklisting prevents kernel modules from automatically starting.
|
||||||
|
## Disabling prohibits kernel modules from starting.
|
||||||
|
|
||||||
|
## This configuration file is split into 4 sections:
|
||||||
|
## 1. Hardware
|
||||||
|
## 2. File Systems
|
||||||
|
## 3. Networking
|
||||||
|
## 4. Miscellaneous
|
||||||
|
|
||||||
|
## 1. Hardware:
|
||||||
|
|
||||||
|
## Bluetooth:
|
||||||
|
## Disable Bluetooth to reduce the attack surface due to its long history of security vulnerabilities.
|
||||||
|
##
|
||||||
|
## https://en.wikipedia.org/wiki/Bluetooth#History_of_security_concerns
|
||||||
|
##
|
||||||
|
## Now replaced with a privacy- and security-preserving default Bluetooth configuration for better usability.
|
||||||
|
## https://github.com/Kicksecure/security-misc/pull/145
|
||||||
|
##
|
||||||
|
#install bluetooth /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install bluetooth_6lowpan /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install bt3c_cs /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btbcm /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btintel /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btmrvl /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btmrvl_sdio /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btmtk /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btmtksdio /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btmtkuart /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btnxpuart /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btqca /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btrsi /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btrtl /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btsdio /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install btusb /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
#install virtio_bt /usr/bin/disabled-bluetooth-by-security-misc
|
||||||
|
|
||||||
|
## FireWire (IEEE 1394):
|
||||||
|
## Disable IEEE 1394 (FireWire/i.LINK/Lynx) modules to prevent certain DMA attacks.
|
||||||
|
##
|
||||||
|
## https://en.wikipedia.org/wiki/IEEE_1394#Security_issues
|
||||||
|
##
|
||||||
|
install dv1394 /usr/bin/disabled-firewire-by-security-misc
|
||||||
|
install firewire-core /usr/bin/disabled-firewire-by-security-misc
|
||||||
|
install firewire-ohci /usr/bin/disabled-firewire-by-security-misc
|
||||||
|
install firewire-net /usr/bin/disabled-firewire-by-security-misc
|
||||||
|
install firewire-sbp2 /usr/bin/disabled-firewire-by-security-misc
|
||||||
|
install ohci1394 /usr/bin/disabled-firewire-by-security-misc
|
||||||
|
install raw1394 /usr/bin/disabled-firewire-by-security-misc
|
||||||
|
install sbp2 /usr/bin/disabled-firewire-by-security-misc
|
||||||
|
install video1394 /usr/bin/disabled-firewire-by-security-misc
|
||||||
|
|
||||||
|
## Global Positioning Systems (GPS):
|
||||||
|
## Disable GPS-related modules like GNSS (Global Navigation Satellite System).
|
||||||
|
##
|
||||||
|
install garmin_gps /usr/bin/disabled-gps-by-security-misc
|
||||||
|
install gnss /usr/bin/disabled-gps-by-security-misc
|
||||||
|
install gnss-mtk /usr/bin/disabled-gps-by-security-misc
|
||||||
|
install gnss-serial /usr/bin/disabled-gps-by-security-misc
|
||||||
|
install gnss-sirf /usr/bin/disabled-gps-by-security-misc
|
||||||
|
install gnss-ubx /usr/bin/disabled-gps-by-security-misc
|
||||||
|
install gnss-usb /usr/bin/disabled-gps-by-security-misc
|
||||||
|
|
||||||
|
## Intel Management Engine (ME):
|
||||||
|
## Partially disable the Intel ME interface with the OS.
|
||||||
|
## ME functionality has increasingly become intertwined with basic Intel system operation.
|
||||||
|
## Disabling it may lead to breakages in various components without clear debugging/error messages.
|
||||||
|
## It may affect firmware updates, security, power management, display, and DRM.
|
||||||
|
##
|
||||||
|
## https://www.kernel.org/doc/html/latest/driver-api/mei/mei.html
|
||||||
|
## https://en.wikipedia.org/wiki/Intel_Management_Engine#Security_vulnerabilities
|
||||||
|
## https://www.kicksecure.com/wiki/Out-of-band_Management_Technology#Intel_ME_Disabling_Disadvantages
|
||||||
|
## https://github.com/Kicksecure/security-misc/pull/236#issuecomment-2229092813
|
||||||
|
## https://github.com/Kicksecure/security-misc/issues/239
|
||||||
|
##
|
||||||
|
#install mei /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei-gsc /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei_gsc_proxy /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei_hdcp /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei-me /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei_phy /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei_pxp /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei-txe /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei-vsc /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei-vsc-hw /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install mei_wdt /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
#install microread_mei /usr/bin/disabled-intelme-by-security-misc
|
||||||
|
|
||||||
|
## Intel Platform Monitoring Technology (PMT) Telemetry:
|
||||||
|
## Disable certain functionalities of the Intel PMT components.
|
||||||
|
##
|
||||||
|
## https://github.com/intel/Intel-PMT
|
||||||
|
##
|
||||||
|
install pmt_class /usr/bin/disabled-intelpmt-by-security-misc
|
||||||
|
install pmt_crashlog /usr/bin/disabled-intelpmt-by-security-misc
|
||||||
|
install pmt_telemetry /usr/bin/disabled-intelpmt-by-security-misc
|
||||||
|
|
||||||
|
## Thunderbolt:
|
||||||
|
## Disable Thunderbolt modules to prevent certain DMA attacks.
|
||||||
|
##
|
||||||
|
## https://en.wikipedia.org/wiki/Thunderbolt_(interface)#Security_vulnerabilities
|
||||||
|
##
|
||||||
|
install intel-wmi-thunderbolt /usr/bin/disabled-thunderbolt-by-security-misc
|
||||||
|
install thunderbolt /usr/bin/disabled-thunderbolt-by-security-misc
|
||||||
|
install thunderbolt_net /usr/bin/disabled-thunderbolt-by-security-misc
|
||||||
|
|
||||||
|
## 2. File Systems:
|
||||||
|
|
||||||
|
## File Systems:
|
||||||
|
## Disable uncommon file systems to reduce attack surface.
|
||||||
|
## HFS/HFS+ are legacy Apple file systems that may be required depending on the EFI partition format.
|
||||||
|
##
|
||||||
|
install cramfs /usr/bin/disabled-filesys-by-security-misc
|
||||||
|
install freevxfs /usr/bin/disabled-filesys-by-security-misc
|
||||||
|
install hfs /usr/bin/disabled-filesys-by-security-misc
|
||||||
|
install hfsplus /usr/bin/disabled-filesys-by-security-misc
|
||||||
|
install jffs2 /usr/bin/disabled-filesys-by-security-misc
|
||||||
|
install jfs /usr/bin/disabled-filesys-by-security-misc
|
||||||
|
install reiserfs /usr/bin/disabled-filesys-by-security-misc
|
||||||
|
install udf /usr/bin/disabled-filesys-by-security-misc
|
||||||
|
|
||||||
|
## Network File Systems:
|
||||||
|
## Disable uncommon network file systems to reduce attack surface.
|
||||||
|
##
|
||||||
|
install gfs2 /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install ksmbd /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
##
|
||||||
|
## Common Internet File System (CIFS):
|
||||||
|
##
|
||||||
|
install cifs /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install cifs_arc4 /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install cifs_md4 /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
##
|
||||||
|
## Network File System (NFS):
|
||||||
|
##
|
||||||
|
install nfs /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install nfs_acl /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install nfs_layout_nfsv41_files /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install nfs_layout_flexfiles /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install nfsd /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install nfsv2 /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install nfsv3 /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
install nfsv4 /usr/bin/disabled-netfilesys-by-security-misc
|
||||||
|
|
||||||
|
## 2. Networking:
|
||||||
|
|
||||||
|
## Network Protocols:
|
||||||
|
## Disables rare and unneeded network protocols that are a common source of unknown vulnerabilities.
|
||||||
|
## Previously had blacklisted eepro100 and eth1394.
|
||||||
|
##
|
||||||
|
## https://tails.boum.org/blueprint/blacklist_modules/
|
||||||
|
## https://fedoraproject.org/wiki/Security_Features_Matrix#Blacklist_Rare_Protocols
|
||||||
|
## https://git.launchpad.net/ubuntu/+source/kmod/tree/debian/modprobe.d/blacklist-rare-network.conf?h=ubuntu/disco
|
||||||
|
## https://github.com/Kicksecure/security-misc/pull/234#issuecomment-2230732015
|
||||||
|
##
|
||||||
|
install af_802154 /usr/bin/disabled-network-by-security-misc
|
||||||
|
install appletalk /usr/bin/disabled-network-by-security-misc
|
||||||
|
install ax25 /usr/bin/disabled-network-by-security-misc
|
||||||
|
#install brcm80211 /usr/bin/disabled-network-by-security-misc
|
||||||
|
install decnet /usr/bin/disabled-network-by-security-misc
|
||||||
|
install dccp /usr/bin/disabled-network-by-security-misc
|
||||||
|
install econet /usr/bin/disabled-network-by-security-misc
|
||||||
|
install eepro100 /usr/bin/disabled-network-by-security-misc
|
||||||
|
install eth1394 /usr/bin/disabled-network-by-security-misc
|
||||||
|
install ipx /usr/bin/disabled-network-by-security-misc
|
||||||
|
install n-hdlc /usr/bin/disabled-network-by-security-misc
|
||||||
|
install netrom /usr/bin/disabled-network-by-security-misc
|
||||||
|
install p8022 /usr/bin/disabled-network-by-security-misc
|
||||||
|
install p8023 /usr/bin/disabled-network-by-security-misc
|
||||||
|
install psnap /usr/bin/disabled-network-by-security-misc
|
||||||
|
install rose /usr/bin/disabled-network-by-security-misc
|
||||||
|
install x25 /usr/bin/disabled-network-by-security-misc
|
||||||
|
##
|
||||||
|
## Asynchronous Transfer Mode (ATM):
|
||||||
|
##
|
||||||
|
install atm /usr/bin/disabled-network-by-security-misc
|
||||||
|
install ueagle-atm /usr/bin/disabled-network-by-security-misc
|
||||||
|
install usbatm /usr/bin/disabled-network-by-security-misc
|
||||||
|
install xusbatm /usr/bin/disabled-network-by-security-misc
|
||||||
|
##
|
||||||
|
## Controller Area Network (CAN) Protocol:
|
||||||
|
##
|
||||||
|
install c_can /usr/bin/disabled-network-by-security-misc
|
||||||
|
install c_can_pci /usr/bin/disabled-network-by-security-misc
|
||||||
|
install c_can_platform /usr/bin/disabled-network-by-security-misc
|
||||||
|
install can /usr/bin/disabled-network-by-security-misc
|
||||||
|
install can-bcm /usr/bin/disabled-network-by-security-misc
|
||||||
|
install can-dev /usr/bin/disabled-network-by-security-misc
|
||||||
|
install can-gw /usr/bin/disabled-network-by-security-misc
|
||||||
|
install can-isotp /usr/bin/disabled-network-by-security-misc
|
||||||
|
install can-raw /usr/bin/disabled-network-by-security-misc
|
||||||
|
install can-j1939 /usr/bin/disabled-network-by-security-misc
|
||||||
|
install can327 /usr/bin/disabled-network-by-security-misc
|
||||||
|
install ifi_canfd /usr/bin/disabled-network-by-security-misc
|
||||||
|
install janz-ican3 /usr/bin/disabled-network-by-security-misc
|
||||||
|
install m_can /usr/bin/disabled-network-by-security-misc
|
||||||
|
install m_can_pci /usr/bin/disabled-network-by-security-misc
|
||||||
|
install m_can_platform /usr/bin/disabled-network-by-security-misc
|
||||||
|
install phy-can-transceiver /usr/bin/disabled-network-by-security-misc
|
||||||
|
install slcan /usr/bin/disabled-network-by-security-misc
|
||||||
|
install ucan /usr/bin/disabled-network-by-security-misc
|
||||||
|
install vxcan /usr/bin/disabled-network-by-security-misc
|
||||||
|
install vcan /usr/bin/disabled-network-by-security-misc
|
||||||
|
##
|
||||||
|
## Transparent Inter Process Communication (TIPC):
|
||||||
|
##
|
||||||
|
install tipc /usr/bin/disabled-network-by-security-misc
|
||||||
|
install tipc_diag /usr/bin/disabled-network-by-security-misc
|
||||||
|
##
|
||||||
|
## Reliable Datagram Sockets (RDS):
|
||||||
|
##
|
||||||
|
install rds /usr/bin/disabled-network-by-security-misc
|
||||||
|
install rds_rdma /usr/bin/disabled-network-by-security-misc
|
||||||
|
install rds_tcp /usr/bin/disabled-network-by-security-misc
|
||||||
|
##
|
||||||
|
## Stream Control Transmission Protocol (SCTP):
|
||||||
|
##
|
||||||
|
install sctp /usr/bin/disabled-network-by-security-misc
|
||||||
|
install sctp_diag /usr/bin/disabled-network-by-security-misc
|
||||||
|
|
||||||
|
## 4. Miscellaneous:
|
||||||
|
|
||||||
|
## Amateur Radios:
|
||||||
|
##
|
||||||
|
install hamradio /usr/bin/disabled-miscellaneous-by-security-misc
|
||||||
|
|
||||||
|
## CPU Model-Specific Registers (MSRs):
|
||||||
|
## Disable CPU MSRs as they can be abused to write to arbitrary memory.
|
||||||
|
##
|
||||||
|
## https://security.stackexchange.com/questions/119712/methods-root-can-use-to-elevate-itself-to-kernel-mode
|
||||||
|
## https://github.com/Kicksecure/security-misc/issues/215
|
||||||
|
##
|
||||||
|
#install msr /usr/bin/disabled-miscellaneous-by-security-misc
|
||||||
|
|
||||||
|
## Floppy Disks:
|
||||||
|
##
|
||||||
|
install floppy /usr/bin/disabled-miscellaneous-by-security-misc
|
||||||
|
|
||||||
|
## Framebuffer (fbdev):
|
||||||
|
## Video drivers are known to be buggy, cause kernel panics, and are generally only used by legacy devices.
|
||||||
|
## These were all previously blacklisted.
|
||||||
|
##
|
||||||
|
## https://docs.kernel.org/fb/index.html
|
||||||
|
## https://en.wikipedia.org/wiki/Linux_framebuffer
|
||||||
|
## https://git.launchpad.net/ubuntu/+source/kmod/tree/debian/modprobe.d/blacklist-framebuffer.conf?h=ubuntu/disco
|
||||||
|
##
|
||||||
|
install aty128fb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install atyfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install cirrusfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install cyber2000fb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install cyblafb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install gx1fb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install hgafb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install i810fb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install intelfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install kyrofb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install lxfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install matroxfb_base /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install neofb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install nvidiafb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install pm2fb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install radeonfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install rivafb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install s1d13xxxfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install savagefb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install sisfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install sstfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install tdfxfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install tridentfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install vesafb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install vfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install viafb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install vt8623fb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
install udlfb /usr/bin/disabled-framebuffer-by-security-misc
|
||||||
|
|
||||||
|
## Replaced Modules:
|
||||||
|
## These legacy drivers have all been entirely replaced and superseded by newer drivers.
|
||||||
|
## These were all previously blacklisted.
|
||||||
|
##
|
||||||
|
## https://git.launchpad.net/ubuntu/+source/kmod/tree/debian/modprobe.d/blacklist.conf?h=ubuntu/disco
|
||||||
|
##
|
||||||
|
install asus_acpi /usr/bin/disabled-miscellaneous-by-security-misc
|
||||||
|
install bcm43xx /usr/bin/disabled-miscellaneous-by-security-misc
|
||||||
|
install de4x5 /usr/bin/disabled-miscellaneous-by-security-misc
|
||||||
|
install prism54 /usr/bin/disabled-miscellaneous-by-security-misc
|
||||||
|
|
||||||
|
## USB Video Device Class:
|
||||||
|
## Disables the USB-based video streaming driver for devices like some webcams and digital camcorders.
|
||||||
|
##
|
||||||
|
#install uvcvideo /usr/bin/disabled-miscellaneous-by-security-misc
|
||||||
|
|
||||||
|
## Vivid:
|
||||||
|
## Disables the vivid kernel module since it has been the cause of multiple vulnerabilities.
|
||||||
|
##
|
||||||
|
## https://forums.whonix.org/t/kernel-recompilation-for-better-hardening/7598/233
|
||||||
|
## https://www.openwall.com/lists/oss-security/2019/11/02/1
|
||||||
|
## https://github.com/a13xp0p0v/kconfig-hardened-check/commit/981bd163fa19fccbc5ce5d4182e639d67e484475
|
||||||
|
##
|
||||||
|
## No longer disabled by default:
|
||||||
|
## https://forums.whonix.org/t/testing-qubes-video-companion-on-whonix/21393
|
||||||
|
## https://github.com/Kicksecure/security-misc/issues/298
|
||||||
|
##
|
||||||
|
#install vivid /usr/bin/disabled-miscellaneous-by-security-misc
|
@ -1,6 +0,0 @@
|
|||||||
# Blacklists bluetooth to reduce attack surface.
|
|
||||||
# Bluetooth also has a history of security vulnerabilities:
|
|
||||||
#
|
|
||||||
# https://en.wikipedia.org/wiki/Bluetooth#History_of_security_concerns
|
|
||||||
install bluetooth /bin/false
|
|
||||||
install btusb /bin/false
|
|
@ -1,3 +0,0 @@
|
|||||||
# Blacklist thunderbolt and firewire to prevent some DMA attacks.
|
|
||||||
install firewire-core /bin/false
|
|
||||||
install thunderbolt /bin/false
|
|
@ -1,3 +0,0 @@
|
|||||||
# Blacklist CPU MSRs as they can be abused to write to
|
|
||||||
# arbitrary memory.
|
|
||||||
install msr /bin/false
|
|
@ -1,25 +0,0 @@
|
|||||||
# Disables unneeded network protocols that will likely not be used as these may have unknown vulnerabilties.
|
|
||||||
#
|
|
||||||
# Credit to Tails (https://tails.boum.org/blueprint/blacklist_modules/) for some of these.
|
|
||||||
#
|
|
||||||
# > Debian ships a long list of modules for wide support of devices, filesystems, protocols. Some of these modules have a pretty bad security track record, and some of those are simply not used by most of our users.
|
|
||||||
#
|
|
||||||
# > Other distributions like Ubuntu[1] and Fedora[2] already ship a blacklist for various network protocols which aren't much in use by users and have a poor security track record.
|
|
||||||
#
|
|
||||||
install dccp /bin/false
|
|
||||||
install sctp /bin/false
|
|
||||||
install rds /bin/false
|
|
||||||
install tipc /bin/false
|
|
||||||
install n-hdlc /bin/false
|
|
||||||
install ax25 /bin/false
|
|
||||||
install netrom /bin/false
|
|
||||||
install x25 /bin/false
|
|
||||||
install rose /bin/false
|
|
||||||
install decnet /bin/false
|
|
||||||
install econet /bin/false
|
|
||||||
install af_802154 /bin/false
|
|
||||||
install ipx /bin/false
|
|
||||||
install appletalk /bin/false
|
|
||||||
install psnap /bin/false
|
|
||||||
install p8023 /bin/false
|
|
||||||
install p8022 /bin/false
|
|
@ -1,10 +0,0 @@
|
|||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Blacklists the vivid kernel module as it's only required for
|
|
||||||
## testing and has been the cause of multiple vulnerabilities.
|
|
||||||
##
|
|
||||||
## https://forums.whonix.org/t/kernel-recompilation-for-better-hardening/7598/233
|
|
||||||
## https://www.openwall.com/lists/oss-security/2019/11/02/1
|
|
||||||
## https://github.com/a13xp0p0v/kconfig-hardened-check/commit/981bd163fa19fccbc5ce5d4182e639d67e484475
|
|
||||||
install vivid /bin/false
|
|
@ -1,146 +0,0 @@
|
|||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Please use "/etc/permission-hardening.d/20_user.conf" or
|
|
||||||
## "/usr/local/etc/permission-hardening.d/20_user.conf" for your custom
|
|
||||||
## configuration. When security-misc is updated, this file may be overwritten.
|
|
||||||
|
|
||||||
## File permission hardening.
|
|
||||||
##
|
|
||||||
## Syntax:
|
|
||||||
## [filename] [mode] [owner] [group] [capability]
|
|
||||||
##
|
|
||||||
## To remove all SUID/SGID binaries in a directory, you can use the "nosuid"
|
|
||||||
## argument.
|
|
||||||
|
|
||||||
## TODO: white spaces inside file name untested and probably will not work.
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# SUID disablewhitelist
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
## disablewhitelist disables below (or in lexically higher) files
|
|
||||||
## exactwhitelist and matchwhitelist. Add these here (discouraged) or better
|
|
||||||
## in file "/etc/permission-hardening.d/20_user.conf".
|
|
||||||
|
|
||||||
## For example, if you are not using SELinux the following might make sense to
|
|
||||||
## enable. TODO: research
|
|
||||||
#/utempter/utempter disablewhitelist
|
|
||||||
|
|
||||||
## If you are not going to use AppImages such as electrum Bitcoin wallet.
|
|
||||||
#/fusermount disablewhitelist
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# SUID exact match whitelist
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
/usr/bin/sudo exactwhitelist
|
|
||||||
/bin/sudo exactwhitelist
|
|
||||||
/usr/bin/bwrap exactwhitelist
|
|
||||||
/bin/bwrap exactwhitelist
|
|
||||||
/usr/lib/spice-gtk/spice-client-glib-usb-acl-helper exactwhitelist
|
|
||||||
/usr/lib/chromium/chrome-sandbox exactwhitelist
|
|
||||||
|
|
||||||
## https://forums.whonix.org/t/disable-suid-binaries/7706/61
|
|
||||||
## Protect from 'chmod -x' (and SUID removal).
|
|
||||||
## SUID will be removed below in separate step.
|
|
||||||
/bin/mount exactwhitelist
|
|
||||||
/usr/bin/mount exactwhitelist
|
|
||||||
|
|
||||||
## There is a controversy about firejail but those who choose to install it
|
|
||||||
## should be able to use it.
|
|
||||||
## https://www.whonix.org/wiki/Dev/Firejail#Security
|
|
||||||
/usr/bin/firejail exactwhitelist
|
|
||||||
|
|
||||||
## In case you need to use 'su'. See also:
|
|
||||||
## https://www.whonix.org/wiki/root#su
|
|
||||||
#/bin/su exactwhitelist
|
|
||||||
#/usr/bin/su exactwhitelist
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# SUID exact match whitelist
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
## https://manpages.debian.org/buster/xserver-xorg-legacy/Xorg.wrap.1.en.html
|
|
||||||
## https://lwn.net/Articles/590315/
|
|
||||||
## http://forums.whonix.org/t/permission-hardening/8655/25
|
|
||||||
#/usr/lib/xorg/Xorg.wrap whitelist
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# SUID regex match whitelist - research required
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
/usr/lib/virtualbox/ matchwhitelist
|
|
||||||
|
|
||||||
## https://github.com/QubesOS/qubes-core-agent-linux/blob/master/qubes-rpc/qfile-unpacker.c
|
|
||||||
## match both:
|
|
||||||
#/usr/lib/qubes/qfile-unpacker whitelist
|
|
||||||
#/lib/qubes/qfile-unpacker
|
|
||||||
/qubes/qfile-unpacker matchwhitelist
|
|
||||||
|
|
||||||
## match both:
|
|
||||||
#/usr/lib/policykit-1/polkit-agent-helper-1 matchwhitelist
|
|
||||||
#/lib/policykit-1/polkit-agent-helper-1
|
|
||||||
polkit-agent-helper-1 matchwhitelist
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# SUID regex match whitelist
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
dbus-daemon-launch-helper matchwhitelist
|
|
||||||
/utempter/utempter matchwhitelist
|
|
||||||
|
|
||||||
## required for AppImages such as electrum Bitcoin wallet
|
|
||||||
## https://forums.whonix.org/t/disable-suid-binaries/7706/57
|
|
||||||
/fusermount matchwhitelist
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# Permission Hardening
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
## Remove SUID from 'mount' but keep executable.
|
|
||||||
## https://forums.whonix.org/t/disable-suid-binaries/7706/61
|
|
||||||
/bin/mount 745 root root
|
|
||||||
/usr/bin/mount 745 root root
|
|
||||||
|
|
||||||
/home/ 0755 root root
|
|
||||||
/home/user/ 0700 user user
|
|
||||||
/root/ 0700 root root
|
|
||||||
/boot/ 0700 root root
|
|
||||||
/etc/permission-hardening.d 0600 root root
|
|
||||||
/usr/local/etc/permission-hardening.d 0600 root root
|
|
||||||
/lib/modules/ 0700 root root
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# SUID/SGID Removal
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
## Remove all SUID/SGID binaries/libraries.
|
|
||||||
|
|
||||||
/bin/ nosuid
|
|
||||||
/usr/bin/ nosuid
|
|
||||||
/usr/local/bin/ nosuid
|
|
||||||
/sbin/ nosuid
|
|
||||||
/usr/sbin/ nosuid
|
|
||||||
/usr/local/sbin/ nosuid
|
|
||||||
/lib/ nosuid
|
|
||||||
/lib32/ nosuid
|
|
||||||
/lib64/ nosuid
|
|
||||||
/usr/lib/ nosuid
|
|
||||||
/usr/lib32/ nosuid
|
|
||||||
/usr/lib64/ nosuid
|
|
||||||
/usr/local/lib/ nosuid
|
|
||||||
/usr/local/lib32/ nosuid
|
|
||||||
/usr/local/lib64/ nosuid
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# Capability Removal
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
## Ping doesn't work with Tor anyway so its capabilities are removed to
|
|
||||||
## reduce attack surface.
|
|
||||||
## anon-apps-config does this.
|
|
||||||
#/bin/ping 0744 root root none
|
|
||||||
|
|
||||||
## TODO: research
|
|
||||||
#/usr/lib/x86_64-linux-gnu/gstreamer1.0/grstreamer-1.0/gst-ptp-helper 0744 root root none
|
|
11
etc/profile.d/30_security-misc.sh
Executable file
11
etc/profile.d/30_security-misc.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
if [ -z "$XDG_CONFIG_DIRS" ]; then
|
||||||
|
XDG_CONFIG_DIRS=/etc/xdg
|
||||||
|
fi
|
||||||
|
if ! echo "$XDG_CONFIG_DIRS" | grep --quiet /usr/share/security-misc/ ; then
|
||||||
|
export XDG_CONFIG_DIRS=/usr/share/security-misc/:$XDG_CONFIG_DIRS
|
||||||
|
fi
|
@ -1,2 +1,5 @@
|
|||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
# /etc/securetty: list of terminals on which root is allowed to login.
|
# /etc/securetty: list of terminals on which root is allowed to login.
|
||||||
# See securetty(5) and login(1).
|
# See securetty(5) and login(1).
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## To enable root login, see:
|
||||||
|
## https://www.kicksecure.com/wiki/Root#Root_Login
|
||||||
|
|
||||||
## Console Lockdown
|
## Console Lockdown
|
||||||
## https://forums.whonix.org/t/etc-security-hardening/8592
|
## https://forums.whonix.org/t/etc-security-hardening/8592
|
||||||
|
|
||||||
@ -15,11 +18,24 @@
|
|||||||
## Usually tty7 is for X.
|
## Usually tty7 is for X.
|
||||||
## Qubes uses tty1 for X.
|
## Qubes uses tty1 for X.
|
||||||
|
|
||||||
## Allow members of group 'console' to use tty1 to tty7 and pts/0 to pts/9 and hvc0 to hvc9.
|
|
||||||
## Qubes has 'pts/0' when for example running "sudo" from a terminal emulator.
|
## Qubes has 'pts/0' when for example running "sudo" from a terminal emulator.
|
||||||
## Qubes uses 'hvc0' when using in dom0 "sudo xl console vm-name".
|
## Qubes uses 'hvc0' when using in dom0 "sudo xl console vm-name".
|
||||||
+:console:tty1 tty2 tty3 tty4 tty5 tty6 tty7 pts/0 pts/1 pts/2 pts/3 pts/4 pts/5 pts/6 pts/7 pts/8 pts/9 hvc0 hvc1 hvc2 hvc3 hvc4 hvc5 hvc6 hvc7 hvc8 hvc9
|
## When using systemd-nspawn (chroot) then `login` requires console 'console' to be permitted.
|
||||||
|
|
||||||
|
## Allow members of group `console` to use:
|
||||||
|
## - 'console'
|
||||||
|
## - 'tty1' to 'tty7'
|
||||||
|
## - 'pts/0' to 'pts/9'
|
||||||
|
## - 'hvc0' to 'hvc9'
|
||||||
|
## serial console
|
||||||
|
## https://forums.whonix.org/t/how-do-i-enter-the-whonix-shell-from-cli/7271/43
|
||||||
|
## - 'ttyS0' to 'ttyS9'
|
||||||
|
+:(console):console tty1 tty2 tty3 tty4 tty5 tty6 tty7 pts/0 pts/1 pts/2 pts/3 pts/4 pts/5 pts/6 pts/7 pts/8 pts/9 hvc0 hvc1 hvc2 hvc3 hvc4 hvc5 hvc6 hvc7 hvc8 hvc9 ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5 ttyS6 ttyS7 ttyS8 ttyS9
|
||||||
|
|
||||||
|
## Same as above also for members of group `sudo`.
|
||||||
|
## https://github.com/Whonix/security-misc/pull/74#issuecomment-607748407
|
||||||
|
+:(sudo):console tty1 tty2 tty3 tty4 tty5 tty6 tty7 pts/0 pts/1 pts/2 pts/3 pts/4 pts/5 pts/6 pts/7 pts/8 pts/9 hvc0 hvc1 hvc2 hvc3 hvc4 hvc5 hvc6 hvc7 hvc8 hvc9 ttyS0 ttyS1 ttyS2 ttyS3 ttyS4 ttyS5 ttyS6 ttyS7 ttyS8 ttyS9
|
||||||
|
|
||||||
## Everyone else except members of group 'console-unrestricted'
|
## Everyone else except members of group 'console-unrestricted'
|
||||||
## are restricted from everything else.
|
## are restricted from everything else.
|
||||||
-:ALL EXCEPT console-unrestricted :ALL
|
-:ALL EXCEPT (console-unrestricted):ALL
|
||||||
|
70
etc/security/faillock.conf.security-misc
Normal file
70
etc/security/faillock.conf.security-misc
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
## Copyright (C) 2021 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
# Configuration for locking the user after multiple failed
|
||||||
|
# authentication attempts.
|
||||||
|
#
|
||||||
|
# The directory where the user files with the failure records are kept.
|
||||||
|
# The default is /var/run/faillock.
|
||||||
|
dir = /var/lib/security-misc/faillock
|
||||||
|
#
|
||||||
|
# Will log the user name into the system log if the user is not found.
|
||||||
|
# Enabled if option is present.
|
||||||
|
audit
|
||||||
|
#
|
||||||
|
# Don't print informative messages.
|
||||||
|
# Enabled if option is present.
|
||||||
|
# silent
|
||||||
|
#
|
||||||
|
# Don't log informative messages via syslog.
|
||||||
|
# Enabled if option is present.
|
||||||
|
# no_log_info
|
||||||
|
#
|
||||||
|
# Only track failed user authentications attempts for local users
|
||||||
|
# in /etc/passwd and ignore centralized (AD, IdM, LDAP, etc.) users.
|
||||||
|
# The `faillock` command will also no longer track user failed
|
||||||
|
# authentication attempts. Enabling this option will prevent a
|
||||||
|
# double-lockout scenario where a user is locked out locally and
|
||||||
|
# in the centralized mechanism.
|
||||||
|
# Enabled if option is present.
|
||||||
|
# local_users_only
|
||||||
|
#
|
||||||
|
# Deny access if the number of consecutive authentication failures
|
||||||
|
# for this user during the recent interval exceeds n tries.
|
||||||
|
# The default is 3.
|
||||||
|
deny = 50
|
||||||
|
#
|
||||||
|
# The length of the interval during which the consecutive
|
||||||
|
# authentication failures must happen for the user account
|
||||||
|
# lock out is <replaceable>n</replaceable> seconds.
|
||||||
|
# The default is 900 (15 minutes).
|
||||||
|
# security-misc note: the interval should be set to infinity if possible,
|
||||||
|
# however pam_faillock arbitrarily limits this variable to a maximum of 604800
|
||||||
|
# seconds (7 days). See
|
||||||
|
# https://github.com/linux-pam/linux-pam/blob/539816e4a0a277dbb632412be91e482fff9d9d09/modules/pam_faillock/faillock_config.h#L59
|
||||||
|
# for details. Therefore we set this to the maximum allowable value of 7 days.
|
||||||
|
fail_interval = 604800
|
||||||
|
#
|
||||||
|
# The access will be re-enabled after n seconds after the lock out.
|
||||||
|
# The value 0 has the same meaning as value `never` - the access
|
||||||
|
# will not be re-enabled without resetting the faillock
|
||||||
|
# entries by the `faillock` command.
|
||||||
|
# The default is 600 (10 minutes).
|
||||||
|
unlock_time = never
|
||||||
|
#
|
||||||
|
# Root account can become locked as well as regular accounts.
|
||||||
|
# Enabled if option is present.
|
||||||
|
even_deny_root
|
||||||
|
#
|
||||||
|
# This option implies the `even_deny_root` option.
|
||||||
|
# Allow access after n seconds to root account after the
|
||||||
|
# account is locked. In case the option is not specified
|
||||||
|
# the value is the same as of the `unlock_time` option.
|
||||||
|
# root_unlock_time = 900
|
||||||
|
#
|
||||||
|
# If a group name is specified with this option, members
|
||||||
|
# of the group will be handled by this module the same as
|
||||||
|
# the root account (the options `even_deny_root>` and
|
||||||
|
# `root_unlock_time` will apply to them.
|
||||||
|
# By default, the option is not set.
|
||||||
|
# admin_group = <admin_group_name>
|
5
etc/security/limits.d/30_security-misc.conf
Normal file
5
etc/security/limits.d/30_security-misc.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Disable coredumps.
|
||||||
|
* hard core 0
|
@ -1,2 +0,0 @@
|
|||||||
# Disable coredumps.
|
|
||||||
* hard core 0
|
|
@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!-- ## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org> -->
|
||||||
|
<!-- ## See the file COPYING for copying conditions. -->
|
||||||
|
|
||||||
<!-- Configuration for Thunar. -->
|
<!-- Configuration for Thunar. -->
|
||||||
<!-- Changes date style to iso format. -->
|
<!-- Changes date style to iso format. -->
|
||||||
<!-- Disable thumbnails. -->
|
<!-- Disable thumbnails. -->
|
||||||
@ -13,4 +16,5 @@
|
|||||||
<value type="string" value="network:///"/>
|
<value type="string" value="network:///"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="misc-volume-management" type="bool" value="false"/>
|
<property name="misc-volume-management" type="bool" value="false"/>
|
||||||
|
<property name="misc-show-delete-action" type="bool" value="true"/>
|
||||||
</channel>
|
</channel>
|
||||||
|
350
etc/skel/.gnupg/gpg.conf
Normal file
350
etc/skel/.gnupg/gpg.conf
Normal file
@ -0,0 +1,350 @@
|
|||||||
|
# Options for GnuPG
|
||||||
|
# Copyright 1998, 1999, 2000, 2001, 2002, 2003,
|
||||||
|
# 2010 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; as a special exception the author gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved.
|
||||||
|
#
|
||||||
|
# This file is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# Unless you specify which option file to use (with the command line
|
||||||
|
# option "--options filename"), GnuPG uses the file ~/.gnupg/gpg.conf
|
||||||
|
# by default.
|
||||||
|
#
|
||||||
|
# An options file can contain any long options which are available in
|
||||||
|
# GnuPG. If the first non white space character of a line is a '#',
|
||||||
|
# this line is ignored. Empty lines are also ignored.
|
||||||
|
#
|
||||||
|
# See the man page for a list of options.
|
||||||
|
|
||||||
|
# Uncomment the following option to get rid of the copyright notice
|
||||||
|
|
||||||
|
#no-greeting
|
||||||
|
|
||||||
|
# If you have more than 1 secret key in your keyring, you may want to
|
||||||
|
# uncomment the following option and set your preferred keyid.
|
||||||
|
|
||||||
|
#default-key 621CC013
|
||||||
|
|
||||||
|
# If you do not pass a recipient to gpg, it will ask for one. Using
|
||||||
|
# this option you can encrypt to a default key. Key validation will
|
||||||
|
# not be done in this case. The second form uses the default key as
|
||||||
|
# default recipient.
|
||||||
|
|
||||||
|
#default-recipient some-user-id
|
||||||
|
#default-recipient-self
|
||||||
|
|
||||||
|
# Use --encrypt-to to add the specified key as a recipient to all
|
||||||
|
# messages. This is useful, for example, when sending mail through a
|
||||||
|
# mail client that does not automatically encrypt mail to your key.
|
||||||
|
# In the example, this option allows you to read your local copy of
|
||||||
|
# encrypted mail that you've sent to others.
|
||||||
|
|
||||||
|
#encrypt-to some-key-id
|
||||||
|
|
||||||
|
# By default GnuPG creates version 4 signatures for data files as
|
||||||
|
# specified by OpenPGP. Some earlier (PGP 6, PGP 7) versions of PGP
|
||||||
|
# require the older version 3 signatures. Setting this option forces
|
||||||
|
# GnuPG to create version 3 signatures.
|
||||||
|
|
||||||
|
#force-v3-sigs
|
||||||
|
|
||||||
|
# Because some mailers change lines starting with "From " to ">From "
|
||||||
|
# it is good to handle such lines in a special way when creating
|
||||||
|
# cleartext signatures; all other PGP versions do it this way too.
|
||||||
|
|
||||||
|
#no-escape-from-lines
|
||||||
|
|
||||||
|
# If you do not use the Latin-1 (ISO-8859-1) charset, you should tell
|
||||||
|
# GnuPG which is the native character set. Please check the man page
|
||||||
|
# for supported character sets. This character set is only used for
|
||||||
|
# metadata and not for the actual message which does not undergo any
|
||||||
|
# translation. Note that future version of GnuPG will change to UTF-8
|
||||||
|
# as default character set. In most cases this option is not required
|
||||||
|
# as GnuPG is able to figure out the correct charset at runtime.
|
||||||
|
|
||||||
|
#charset utf-8
|
||||||
|
|
||||||
|
# Group names may be defined like this:
|
||||||
|
# group mynames = paige 0x12345678 joe patti
|
||||||
|
#
|
||||||
|
# Any time "mynames" is a recipient (-r or --recipient), it will be
|
||||||
|
# expanded to the names "paige", "joe", and "patti", and the key ID
|
||||||
|
# "0x12345678". Note that there is only one level of expansion - you
|
||||||
|
# cannot make a group that points to another group. Note also that
|
||||||
|
# if there are spaces in the recipient name, this will appear as two
|
||||||
|
# recipients. In these cases it is better to use the key ID.
|
||||||
|
|
||||||
|
#group mynames = paige 0x12345678 joe patti
|
||||||
|
|
||||||
|
# Lock the file only once for the lifetime of a process. If you do
|
||||||
|
# not define this, the lock will be obtained and released every time
|
||||||
|
# it is needed, which is usually preferable.
|
||||||
|
|
||||||
|
#lock-once
|
||||||
|
|
||||||
|
# GnuPG can send and receive keys to and from a keyserver. These
|
||||||
|
# servers can be HKP, email, or LDAP (if GnuPG is built with LDAP
|
||||||
|
# support).
|
||||||
|
#
|
||||||
|
# High-risk users should stop using the keyserver network immediately.
|
||||||
|
# https://forums.whonix.org/t/gpg-recv-keys-fails-no-longer-use-keyservers-for-anything/5607/8
|
||||||
|
#
|
||||||
|
# Example HKP keyserver:
|
||||||
|
# hkp://keys.gnupg.net
|
||||||
|
# hkp://subkeys.pgp.net
|
||||||
|
#
|
||||||
|
# Example email keyserver:
|
||||||
|
# mailto:pgp-public-keys@keys.pgp.net
|
||||||
|
#
|
||||||
|
# Example LDAP keyservers:
|
||||||
|
# ldap://keyserver.pgp.com
|
||||||
|
#
|
||||||
|
# Regular URL syntax applies, and you can set an alternate port
|
||||||
|
# through the usual method:
|
||||||
|
# hkp://keyserver.example.net:22742
|
||||||
|
#
|
||||||
|
# Most users just set the name and type of their preferred keyserver.
|
||||||
|
# Note that most servers (with the notable exception of
|
||||||
|
# ldap://keyserver.pgp.com) synchronize changes with each other. Note
|
||||||
|
# also that a single server name may actually point to multiple
|
||||||
|
# servers via DNS round-robin. hkp://keys.gnupg.net is an example of
|
||||||
|
# such a "server", which spreads the load over a number of physical
|
||||||
|
# servers. To see the IP address of the server actually used, you may use
|
||||||
|
# the "--keyserver-options debug".
|
||||||
|
#
|
||||||
|
#keyserver hkp://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.onion
|
||||||
|
#keyserver mailto:pgp-public-keys@keys.nl.pgp.net
|
||||||
|
#keyserver ldap://keyserver.pgp.com
|
||||||
|
|
||||||
|
# Common options for keyserver functions:
|
||||||
|
#
|
||||||
|
# include-disabled : when searching, include keys marked as "disabled"
|
||||||
|
# on the keyserver (not all keyservers support this).
|
||||||
|
#
|
||||||
|
# no-include-revoked : when searching, do not include keys marked as
|
||||||
|
# "revoked" on the keyserver.
|
||||||
|
#
|
||||||
|
# verbose : show more information as the keys are fetched.
|
||||||
|
# Can be used more than once to increase the amount
|
||||||
|
# of information shown.
|
||||||
|
#
|
||||||
|
# use-temp-files : use temporary files instead of a pipe to talk to the
|
||||||
|
# keyserver. Some platforms (Win32 for one) always
|
||||||
|
# have this on.
|
||||||
|
#
|
||||||
|
# keep-temp-files : do not delete temporary files after using them
|
||||||
|
# (really only useful for debugging)
|
||||||
|
#
|
||||||
|
# http-proxy="proxy" : set the proxy to use for HTTP and HKP keyservers.
|
||||||
|
# This overrides the "http_proxy" environment variable,
|
||||||
|
# if any.
|
||||||
|
#
|
||||||
|
# auto-key-retrieve : automatically fetch keys as needed from the keyserver
|
||||||
|
# when verifying signatures or when importing keys that
|
||||||
|
# have been revoked by a revocation key that is not
|
||||||
|
# present on the keyring.
|
||||||
|
#
|
||||||
|
# no-include-attributes : do not include attribute IDs (aka "photo IDs")
|
||||||
|
# when sending keys to the keyserver.
|
||||||
|
|
||||||
|
#keyserver-options auto-key-retrieve
|
||||||
|
|
||||||
|
# Display photo user IDs in key listings
|
||||||
|
|
||||||
|
# list-options show-photos
|
||||||
|
|
||||||
|
# Display photo user IDs when a signature from a key with a photo is
|
||||||
|
# verified
|
||||||
|
|
||||||
|
# verify-options show-photos
|
||||||
|
|
||||||
|
# Use this program to display photo user IDs
|
||||||
|
#
|
||||||
|
# %i is expanded to a temporary file that contains the photo.
|
||||||
|
# %I is the same as %i, but the file isn't deleted afterwards by GnuPG.
|
||||||
|
# %k is expanded to the key ID of the key.
|
||||||
|
# %K is expanded to the long OpenPGP key ID of the key.
|
||||||
|
# %t is expanded to the extension of the image (e.g. "jpg").
|
||||||
|
# %T is expanded to the MIME type of the image (e.g. "image/jpeg").
|
||||||
|
# %f is expanded to the fingerprint of the key.
|
||||||
|
# %% is %, of course.
|
||||||
|
#
|
||||||
|
# If %i or %I are not present, then the photo is supplied to the
|
||||||
|
# viewer on standard input. If your platform supports it, standard
|
||||||
|
# input is the best way to do this as it avoids the time and effort in
|
||||||
|
# generating and then cleaning up a secure temp file.
|
||||||
|
#
|
||||||
|
# If no photo-viewer is provided, GnuPG will look for xloadimage, eog,
|
||||||
|
# or display (ImageMagick). On Mac OS X and Windows, the default is
|
||||||
|
# to use your regular JPEG image viewer.
|
||||||
|
#
|
||||||
|
# Some other viewers:
|
||||||
|
# photo-viewer "qiv %i"
|
||||||
|
# photo-viewer "ee %i"
|
||||||
|
#
|
||||||
|
# This one saves a copy of the photo ID in your home directory:
|
||||||
|
# photo-viewer "cat > ~/photoid-for-key-%k.%t"
|
||||||
|
#
|
||||||
|
# Use your MIME handler to view photos:
|
||||||
|
# photo-viewer "metamail -q -d -b -c %T -s 'KeyID 0x%k' -f GnuPG"
|
||||||
|
|
||||||
|
# Passphrase agent
|
||||||
|
#
|
||||||
|
# We support the old experimental passphrase agent protocol as well as
|
||||||
|
# the new Assuan based one (currently available in the "newpg" package
|
||||||
|
# at ftp.gnupg.org/gcrypt/alpha/aegypten/). To make use of the agent,
|
||||||
|
# you have to run an agent as daemon and use the option
|
||||||
|
#
|
||||||
|
# For Ubuntu we now use-agent by default to support more automatic
|
||||||
|
# use of GPG and S/MIME encryption by GUI programs. Depending on the
|
||||||
|
# program, users may still have to manually decide to install gnupg-agent.
|
||||||
|
|
||||||
|
#use-agent
|
||||||
|
|
||||||
|
# which tries to use the agent but will fallback to the regular mode
|
||||||
|
# if there is a problem connecting to the agent. The normal way to
|
||||||
|
# locate the agent is by looking at the environment variable
|
||||||
|
# GPG_AGENT_INFO which should have been set during gpg-agent startup.
|
||||||
|
# In certain situations the use of this variable is not possible, thus
|
||||||
|
# the option
|
||||||
|
#
|
||||||
|
# --gpg-agent-info=<path>:<pid>:1
|
||||||
|
#
|
||||||
|
# may be used to override it.
|
||||||
|
|
||||||
|
# Automatic key location
|
||||||
|
#
|
||||||
|
# GnuPG can automatically locate and retrieve keys as needed using the
|
||||||
|
# auto-key-locate option. This happens when encrypting to an email
|
||||||
|
# address (in the "user@example.com" form), and there are no
|
||||||
|
# user@example.com keys on the local keyring. This option takes the
|
||||||
|
# following arguments, in the order they are to be tried:
|
||||||
|
#
|
||||||
|
# cert = locate a key using DNS CERT, as specified in RFC-4398.
|
||||||
|
# GnuPG can handle both the PGP (key) and IPGP (URL + fingerprint)
|
||||||
|
# CERT methods.
|
||||||
|
#
|
||||||
|
# pka = locate a key using DNS PKA.
|
||||||
|
#
|
||||||
|
# ldap = locate a key using the PGP Universal method of checking
|
||||||
|
# "ldap://keys.(thedomain)". For example, encrypting to
|
||||||
|
# user@example.com will check ldap://keys.example.com.
|
||||||
|
#
|
||||||
|
# keyserver = locate a key using whatever keyserver is defined using
|
||||||
|
# the keyserver option.
|
||||||
|
#
|
||||||
|
# You may also list arbitrary keyservers here by URL.
|
||||||
|
#
|
||||||
|
# Try CERT, then PKA, then LDAP, then hkp://subkeys.net:
|
||||||
|
#auto-key-locate cert pka ldap hkp://subkeys.pgp.net
|
||||||
|
|
||||||
|
## Begin Anonymity Distribution /home/user/.gnupg/gpg.conf changes.
|
||||||
|
|
||||||
|
#### meta start
|
||||||
|
#### project Whonix
|
||||||
|
#### category networking and apps
|
||||||
|
#### description GnuPG gpg configuration
|
||||||
|
#### meta end
|
||||||
|
|
||||||
|
## source:
|
||||||
|
## https://raw.github.com/ioerror/torbirdy/master/gpg.conf
|
||||||
|
## https://github.com/ioerror/torbirdy/commit/e6d7c9e6e103f0b3289675d04ed3f92e92d8d7b3
|
||||||
|
|
||||||
|
## Out commented proxy settings, because uwt wrapper keeps care of that.
|
||||||
|
|
||||||
|
## gpg.conf optimized for privacy
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
## BEGIN some suggestions from TorBirdy setting extensions.enigmail.agentAdditionalParam
|
||||||
|
|
||||||
|
## Don't disclose the version
|
||||||
|
no-emit-version
|
||||||
|
|
||||||
|
## Don't add additional comments (may leak language, etc)
|
||||||
|
no-comments
|
||||||
|
|
||||||
|
## We want to force UTF-8 everywhere
|
||||||
|
display-charset utf-8
|
||||||
|
|
||||||
|
## Proxy settings
|
||||||
|
#keyserver-options http-proxy=socks5://TORIP:TORPORT
|
||||||
|
|
||||||
|
## https://gist.github.com/rjhansen/67ab921ffb4084c865b3618d6955275f
|
||||||
|
## https://dkg.fifthhorseman.net/blog/openpgp-certificate-flooding.html
|
||||||
|
## https://forums.whonix.org/t/gpg-recv-keys-fails-no-longer-use-keyservers-for-anything/5607
|
||||||
|
#keyserver hkps://keys.openpgp.org
|
||||||
|
|
||||||
|
## END some suggestions from TorBirdy TorBirdy setting extensions.enigmail.agentAdditionalParam
|
||||||
|
##################################################################
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
## BEGIN Some suggestions from Debian https://keyring.debian.org/creating-key.html
|
||||||
|
|
||||||
|
personal-digest-preferences SHA512
|
||||||
|
cert-digest-algo SHA512
|
||||||
|
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
|
||||||
|
|
||||||
|
## END Some suggestions from Debian https://keyring.debian.org/creating-key.html
|
||||||
|
##################################################################
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
## BEGIN Some suggestions added from riseup https://we.riseup.net/riseuplabs+paow/openpgp-best-practices
|
||||||
|
|
||||||
|
## When creating a key, individuals may designate a specific keyserver to use to pull their keys from.
|
||||||
|
## The above option will disregard this designation and use the pool, which is useful because (1) it
|
||||||
|
## prevents someone from designating an insecure method for pulling their key and (2) if the server
|
||||||
|
## designated uses hkps, the refresh will fail because the ca-cert will not match, so the keys will
|
||||||
|
## never be refreshed.
|
||||||
|
keyserver-options no-honor-keyserver-url
|
||||||
|
|
||||||
|
## when outputting certificates, view user IDs distinctly from keys:
|
||||||
|
fixed-list-mode
|
||||||
|
|
||||||
|
## long keyids are more collision-resistant than short keyids (it's trivial to make a key with any desired short keyid)
|
||||||
|
keyid-format 0xlong
|
||||||
|
|
||||||
|
## when multiple digests are supported by all recipients, choose the strongest one:
|
||||||
|
## already defined above
|
||||||
|
#personal-digest-preferences SHA512 SHA384 SHA256 SHA224
|
||||||
|
|
||||||
|
## preferences chosen for new keys should prioritize stronger algorithms:
|
||||||
|
## already defined above
|
||||||
|
#default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 BZIP2 ZLIB ZIP Uncompressed
|
||||||
|
|
||||||
|
## If you use a graphical environment (and even if you don't) you should be using an agent:
|
||||||
|
## (similar arguments as https://www.debian-administration.org/users/dkg/weblog/64)
|
||||||
|
use-agent
|
||||||
|
|
||||||
|
## You should always know at a glance which User IDs gpg thinks are legitimately bound to the keys in your keyring:
|
||||||
|
verify-options show-uid-validity
|
||||||
|
list-options show-uid-validity
|
||||||
|
|
||||||
|
## include an unambiguous indicator of which key made a signature:
|
||||||
|
## (see http://thread.gmane.org/gmane.mail.notmuch.general/3721/focus=7234)
|
||||||
|
sig-notation issuer-fpr@notations.openpgp.fifthhorseman.net=%g
|
||||||
|
|
||||||
|
## when making an OpenPGP certification, use a stronger digest than the default SHA1:
|
||||||
|
## already defined above
|
||||||
|
#cert-digest-algo SHA256
|
||||||
|
|
||||||
|
## END Some suggestions added from riseup https://we.riseup.net/riseuplabs+paow/openpgp-best-practices
|
||||||
|
##################################################################
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
## BEGIN Some suggestions from TorBirdy opt-in's
|
||||||
|
|
||||||
|
## Up to you whether you in comment it (remove the single # in front of
|
||||||
|
## it) or not. Disabled by default, because it causes too much complaints and
|
||||||
|
## confusion.
|
||||||
|
|
||||||
|
## Don't include keyids that may disclose the sender or any other non-obvious keyids
|
||||||
|
#throw-keyids
|
||||||
|
|
||||||
|
## END Some suggestions from TorBirdy opt-in's
|
||||||
|
##################################################################
|
||||||
|
|
||||||
|
## End of Anonymity Distribution /home/user/.gnupg/gpg.conf changes.
|
@ -1,7 +1,12 @@
|
|||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
## Copyright (C) 2012 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
## See the file COPYING for copying conditions.
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
user ALL=NOPASSWD: /usr/lib/security-misc/panic-on-oops
|
## Neither of these are needed.
|
||||||
%sudo ALL=NOPASSWD: /usr/lib/security-misc/panic-on-oops
|
#user ALL=NOPASSWD: /usr/libexec/security-misc/panic-on-oops
|
||||||
|
#%sudo ALL=NOPASSWD: /usr/libexec/security-misc/panic-on-oops
|
||||||
|
|
||||||
%sudo ALL=NOPASSWD: /usr/lib/security-misc/echo-path
|
## Use a more open umask when executing commands with sudo
|
||||||
|
## Can be overridden on a per-user basis using .[z]profile if desirable
|
||||||
|
## https://www.kicksecure.com/wiki/Dev/Strong_Linux_User_Account_Isolation#umask_hardening
|
||||||
|
Defaults umask_override
|
||||||
|
Defaults umask=0022
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Disables coredumps. This setting may be overwritten by systemd so this may not be useful.
|
|
||||||
## security-misc also disables coredumps in other ways.
|
|
||||||
kernel.core_pattern=|/bin/false
|
|
@ -1,5 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Restricts the kernel log to root only.
|
|
||||||
kernel.dmesg_restrict=1
|
|
@ -1,6 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Makes some data spoofing attacks harder.
|
|
||||||
fs.protected_fifos=2
|
|
||||||
fs.protected_regular=2
|
|
@ -1,6 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Hardens the BPF JIT compiler and restricts it to root.
|
|
||||||
kernel.unprivileged_bpf_disabled=1
|
|
||||||
net.core.bpf_jit_harden=2
|
|
@ -1,11 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Quote https://www.kernel.org/doc/html/latest/admin-guide/sysctl/kernel.html
|
|
||||||
##
|
|
||||||
## kexec_load_disabled:
|
|
||||||
##
|
|
||||||
## A toggle indicating if the kexec_load syscall has been disabled. This value defaults to 0 (false: kexec_load enabled), but can be set to 1 (true: kexec_load disabled). Once true, kexec can no longer be used, and the toggle cannot be set back to false. This allows a kexec image to be loaded before disabling the syscall, allowing a system to set up (and later use) an image without it being altered. Generally used together with the "modules_disabled" sysctl.
|
|
||||||
|
|
||||||
## Disables kexec which can be used to replace the running kernel.
|
|
||||||
kernel.kexec_load_disabled=1
|
|
@ -1,8 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Hides kernel addresses in various files in /proc.
|
|
||||||
## Kernel addresses can be very useful in certain exploits.
|
|
||||||
##
|
|
||||||
## https://kernsec.org/wiki/index.php/Bug_Classes/Kernel_pointer_leak
|
|
||||||
kernel.kptr_restrict=2
|
|
@ -1,6 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Improves ASLR effectiveness for mmap.
|
|
||||||
vm.mmap_rnd_bits=32
|
|
||||||
vm.mmap_rnd_compat_bits=16
|
|
@ -1,10 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Restricts the use of ptrace to root. This might break some programs running under WINE.
|
|
||||||
## A workaround for WINE would be to give the wineserver and wine-preloader ptrace capabilities. This can be done by running:
|
|
||||||
##
|
|
||||||
## sudo apt-get install libcap2-bin
|
|
||||||
## sudo setcap cap_sys_ptrace=eip /usr/bin/wineserver
|
|
||||||
## sudo setcap cap_sys_ptrace=eip /usr/bin/wine-preloader
|
|
||||||
kernel.yama.ptrace_scope=2
|
|
@ -1,5 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Prevent setuid processes from creating coredumps.
|
|
||||||
fs.suid_dumpable=0
|
|
@ -1,42 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
#### meta start
|
|
||||||
#### project Kicksecure
|
|
||||||
#### category networking and security
|
|
||||||
#### description
|
|
||||||
## TCP/IP stack hardening
|
|
||||||
|
|
||||||
## Protects against time-wait assassination.
|
|
||||||
## It drops RST packets for sockets in the time-wait state.
|
|
||||||
net.ipv4.tcp_rfc1337=1
|
|
||||||
|
|
||||||
## Disables ICMP redirect acceptance.
|
|
||||||
net.ipv4.conf.all.accept_redirects=0
|
|
||||||
net.ipv4.conf.default.accept_redirects=0
|
|
||||||
net.ipv4.conf.all.secure_redirects=0
|
|
||||||
net.ipv4.conf.default.secure_redirects=0
|
|
||||||
net.ipv6.conf.all.accept_redirects=0
|
|
||||||
net.ipv6.conf.default.accept_redirects=0
|
|
||||||
|
|
||||||
## Disables ICMP redirect sending.
|
|
||||||
net.ipv4.conf.all.send_redirects=0
|
|
||||||
net.ipv4.conf.default.send_redirects=0
|
|
||||||
|
|
||||||
## Ignores ICMP requests.
|
|
||||||
net.ipv4.icmp_echo_ignore_all=1
|
|
||||||
|
|
||||||
## Enables TCP syncookies.
|
|
||||||
net.ipv4.tcp_syncookies=1
|
|
||||||
|
|
||||||
## Disable source routing.
|
|
||||||
net.ipv4.conf.all.accept_source_route=0
|
|
||||||
net.ipv4.conf.default.accept_source_route=0
|
|
||||||
|
|
||||||
## Enable reverse path filtering to prevent IP spoofing and
|
|
||||||
## mitigate vulnerabilities such as CVE-2019-14899.
|
|
||||||
## https://forums.whonix.org/t/enable-reverse-path-filtering/8594
|
|
||||||
net.ipv4.conf.default.rp_filter=1
|
|
||||||
net.ipv4.conf.all.rp_filter=1
|
|
||||||
|
|
||||||
#### meta end
|
|
@ -1,8 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## Disables SACK as it is commonly exploited and likely not needed.
|
|
||||||
## https://forums.whonix.org/t/disabling-tcp-sack-dsack-fack/8109
|
|
||||||
#net.ipv4.tcp_sack=0
|
|
||||||
#net.ipv4.tcp_dsack=0
|
|
||||||
#net.ipv4.tcp_fack=0
|
|
@ -1,12 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
#### meta start
|
|
||||||
#### project Kicksecure
|
|
||||||
#### category networking and security
|
|
||||||
#### description
|
|
||||||
## disable IPv4 TCP Timestamps
|
|
||||||
|
|
||||||
net.ipv4.tcp_timestamps=0
|
|
||||||
|
|
||||||
#### meta end
|
|
@ -1,3 +1,6 @@
|
|||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
## https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802211
|
## https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802211
|
||||||
## https://salsa.debian.org/ah/user-setup/commit/bc5ca2de85ec27845d0b46059cb7cc02bae7b44d
|
## https://salsa.debian.org/ah/user-setup/commit/bc5ca2de85ec27845d0b46059cb7cc02bae7b44d
|
||||||
|
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
## https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802211
|
## https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802211
|
||||||
## https://salsa.debian.org/ah/user-setup/commit/bc5ca2de85ec27845d0b46059cb7cc02bae7b44d
|
## https://salsa.debian.org/ah/user-setup/commit/bc5ca2de85ec27845d0b46059cb7cc02bae7b44d
|
||||||
|
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
//#### meta start
|
|
||||||
//#### project Whonix and Kicksecure
|
|
||||||
//#### category security and apps
|
|
||||||
//#### description https://forums.whonix.org/t/enable-network-idn-show-punycode-by-default-in-thunderbird-to-fix-url-not-showing-real-domain-name-homograph-attack-punycode/8415
|
|
||||||
//#### meta end
|
|
||||||
|
|
||||||
// https://forums.whonix.org/t/enable-network-idn-show-punycode-by-default-in-thunderbird-to-fix-url-not-showing-real-domain-name-homograph-attack-punycode/8415
|
|
||||||
pref("network.IDN_show_punycode", true);
|
|
59
etc/thunderbird/pref/40_security-misc.js
Normal file
59
etc/thunderbird/pref/40_security-misc.js
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
//#### Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
//#### See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
//#### meta start
|
||||||
|
//#### project Whonix and Kicksecure
|
||||||
|
//#### category security and apps
|
||||||
|
//#### description https://forums.whonix.org/t/enable-network-idn-show-punycode-by-default-in-thunderbird-to-fix-url-not-showing-real-domain-name-homograph-attack-punycode/8415
|
||||||
|
//#### meta end
|
||||||
|
|
||||||
|
// https://forums.whonix.org/t/enable-network-idn-show-punycode-by-default-in-thunderbird-to-fix-url-not-showing-real-domain-name-homograph-attack-punycode/8415
|
||||||
|
pref("network.IDN_show_punycode", true);
|
||||||
|
|
||||||
|
// Disable all and any kind of telemetry by default
|
||||||
|
pref("toolkit.telemetry.enabled", false);
|
||||||
|
pref("toolkit.telemetry.unified", false);
|
||||||
|
pref("toolkit.telemetry.shutdownPingSender.enabled", false);
|
||||||
|
pref("toolkit.telemetry.updatePing.enabled", false);
|
||||||
|
pref("toolkit.telemetry.archive.enabled", false);
|
||||||
|
pref("toolkit.telemetry.bhrPing.enabled", false);
|
||||||
|
pref("toolkit.telemetry.firstShutdownPing.enabled", false);
|
||||||
|
pref("toolkit.telemetry.newProfilePing.enabled", false);
|
||||||
|
pref("toolkit.telemetry.server", ""); // Defense in depth
|
||||||
|
pref("toolkit.telemetry.server_owner", ""); // Defense in depth
|
||||||
|
pref("datareporting.healthreport.uploadEnabled", false);
|
||||||
|
pref("datareporting.policy.dataSubmissionEnabled", false);
|
||||||
|
pref("toolkit.telemetry.coverage.opt-out", true); // from Firefox
|
||||||
|
pref("toolkit.coverage.opt-out", true); // from Firefox
|
||||||
|
|
||||||
|
// Disable implicit outbound traffic
|
||||||
|
pref("network.connectivity-service.enabled", false);
|
||||||
|
pref("network.prefetch-next", false);
|
||||||
|
pref("network.dns.disablePrefetch", true);
|
||||||
|
pref("network.predictor.enabled", false);
|
||||||
|
|
||||||
|
// No need to explain the problems with javascript
|
||||||
|
// If you want javascript, use your browser
|
||||||
|
// Thunderbird needs no javascript
|
||||||
|
// pref("javascript.enabled", false); // Will break setting up services that require redirecting to their javascripted webpage for login, like gmail etc. So commented out for now.
|
||||||
|
|
||||||
|
// Disable scripting when viewing pdf files
|
||||||
|
user_pref("pdfjs.enableScripting", false);
|
||||||
|
|
||||||
|
// If you want cookies, use your browser
|
||||||
|
pref("network.cookie.cookieBehavior", 2);
|
||||||
|
|
||||||
|
// Do not send user agent information
|
||||||
|
// For email clients, this is more like a relic of the past
|
||||||
|
// Completely not necessary and just exposes a lot of information about the client
|
||||||
|
// Since v115.0 Thunderbird already minimizes the user agent
|
||||||
|
// But we want it gone for good for no information leak at all
|
||||||
|
// https://hg.mozilla.org/comm-central/rev/cbbbc8d93cd7
|
||||||
|
pref("mailnews.headers.sendUserAgent", false);
|
||||||
|
|
||||||
|
// Normally we send emails after marking them with a time stamp
|
||||||
|
// That includes our local time zone
|
||||||
|
// This option makes our local time zone appear as UTC
|
||||||
|
// And rounds the time stamp to the closes minute
|
||||||
|
// https://hg.mozilla.org/comm-central/rev/98aa0bf2e719
|
||||||
|
pref("mail.sanitize_date_header", true);
|
@ -1,2 +0,0 @@
|
|||||||
[Coredump]
|
|
||||||
Storage=none
|
|
@ -1,11 +0,0 @@
|
|||||||
## Copyright (C) 2012 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
## https://forums.whonix.org/t/restrict-hardware-information-to-root-testers-wanted/8618
|
|
||||||
disable hide-hardware-info.service
|
|
||||||
|
|
||||||
## Disable for now until development finished / tested.
|
|
||||||
disable permission-hardening.service
|
|
||||||
|
|
||||||
## Disable for now until development finished / tested.
|
|
||||||
disable remount-secure.service
|
|
@ -1,19 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
[Unit]
|
|
||||||
Description=SUID, SGID, Capability and File Permission Hardening
|
|
||||||
Documentation=https://github.com/Whonix/security-misc
|
|
||||||
|
|
||||||
DefaultDependencies=no
|
|
||||||
Before=sysinit.target
|
|
||||||
Requires=local-fs.target
|
|
||||||
After=local-fs.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
RemainAfterExit=yes
|
|
||||||
ExecStart=/usr/lib/security-misc/permission-hardening
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=sysinit.target
|
|
@ -1,21 +0,0 @@
|
|||||||
## Copyright (C) 2019 - 2019 ENCRYPTED SUPPORT LP <adrelanos@riseup.net>
|
|
||||||
## See the file COPYING for copying conditions.
|
|
||||||
|
|
||||||
[Unit]
|
|
||||||
Description=remount /home /tmp /dev/shm /run with nosuid,nodev (default) and noexec (opt-in)
|
|
||||||
Documentation=https://github.com/Whonix/security-misc
|
|
||||||
|
|
||||||
DefaultDependencies=no
|
|
||||||
Before=sysinit.target
|
|
||||||
Requires=local-fs.target
|
|
||||||
After=local-fs.target
|
|
||||||
|
|
||||||
After=qubes-sysinit.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
RemainAfterExit=yes
|
|
||||||
ExecStart=/usr/lib/security-misc/remount-secure
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=sysinit.target
|
|
@ -1,2 +0,0 @@
|
|||||||
[Service]
|
|
||||||
SupplementaryGroups=sysfs
|
|
@ -3,8 +3,8 @@ Version: @VERSION@
|
|||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: enhances misc security settings
|
Summary: enhances misc security settings
|
||||||
|
|
||||||
License: GPL-3+-with-additional-terms-1
|
License: AGPL-3+
|
||||||
URL: https://github.com/Whonix/security-misc
|
URL: https://github.com/Kicksecure/security-misc
|
||||||
Source0: %{name}-%{version}.tar.xz
|
Source0: %{name}-%{version}.tar.xz
|
||||||
|
|
||||||
BuildRequires: dpkg-dev
|
BuildRequires: dpkg-dev
|
||||||
@ -13,50 +13,7 @@ Requires: make
|
|||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The following settings are changed:
|
See README.
|
||||||
|
|
||||||
deactivates previews in Dolphin;
|
|
||||||
deactivates previews in Nautilus;
|
|
||||||
deactivates thumbnails in Thunar;
|
|
||||||
deactivates TCP timestamps;
|
|
||||||
deactivates Netfilter's connection tracking helper;
|
|
||||||
|
|
||||||
TCP time stamps (RFC 1323) allow for tracking clock
|
|
||||||
information with millisecond resolution. This may or may not allow an
|
|
||||||
attacker to learn information about the system clock at such
|
|
||||||
a resolution, depending on various issues such as network lag.
|
|
||||||
This information is available to anyone who monitors the network
|
|
||||||
somewhere between the attacked system and the destination server.
|
|
||||||
It may allow an attacker to find out how long a given
|
|
||||||
system has been running, and to distinguish several
|
|
||||||
systems running behind NAT and using the same IP address. It might
|
|
||||||
also allow one to look for clocks that match an expected value to find the
|
|
||||||
public IP used by a user.
|
|
||||||
|
|
||||||
Hence, this package disables this feature by shipping the
|
|
||||||
/etc/sysctl.d/tcp_timestamps.conf configuration file.
|
|
||||||
|
|
||||||
Note that TCP time stamps normally have some usefulness. They are
|
|
||||||
needed for:
|
|
||||||
|
|
||||||
* the TCP protection against wrapped sequence numbers; however, to
|
|
||||||
trigger a wrap, one needs to send roughly 2^32 packets in one
|
|
||||||
minute: as said in RFC 1700, "The current recommended default
|
|
||||||
time to live (TTL) for the Internet Protocol (IP) [45,105] is 64".
|
|
||||||
So, this probably won't be a practical problem in the context
|
|
||||||
of Anonymity Distributions.
|
|
||||||
|
|
||||||
* "Round-Trip Time Measurement", which is only useful when the user
|
|
||||||
manages to saturate their connection. When using Anonymity Distributions,
|
|
||||||
probably the limiting factor for transmission speed is rarely the capacity
|
|
||||||
of the user connection.
|
|
||||||
|
|
||||||
Netfilter's connection tracking helper module increases kernel attack
|
|
||||||
surface by enabling superfluous functionality such as IRC parsing in
|
|
||||||
the kernel. (!)
|
|
||||||
|
|
||||||
Hence, this package disables this feature by shipping the
|
|
||||||
/etc/sysctl.d/nf_conntrack_helper.conf configuration file.
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
@ -72,48 +29,9 @@ make %{?_smp_mflags}
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%license debian/copyright
|
%license debian/copyright
|
||||||
/etc/X11/Xsession.d/50panic_on_oops
|
/etc/*
|
||||||
/etc/X11/Xsession.d/50security-misc
|
/lib/*
|
||||||
/etc/apparmor.d/tunables/home.d/security-misc
|
/usr/*
|
||||||
/etc/apt/apt.conf.d/40sandbox
|
|
||||||
/etc/default/grub.d/40_enable_iommu.cfg
|
|
||||||
/etc/default/grub.d/40_kernel_hardening.cfg
|
|
||||||
/etc/login.defs.security-misc
|
|
||||||
/etc/modprobe.d/30_nf_conntrack_helper_disable.conf
|
|
||||||
/etc/modprobe.d/blacklist-dma.conf
|
|
||||||
/etc/modprobe.d/uncommon-network-protocols.conf
|
|
||||||
/etc/securetty.security-misc
|
|
||||||
/etc/security/limits.d/disable-coredumps.conf
|
|
||||||
/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
|
|
||||||
/etc/sudoers.d/security-misc
|
|
||||||
/etc/sysctl.d/coredumps.conf
|
|
||||||
/etc/sysctl.d/dmesg_restrict.conf
|
|
||||||
/etc/sysctl.d/fs_protected.conf
|
|
||||||
/etc/sysctl.d/harden_bpf.conf
|
|
||||||
/etc/sysctl.d/kexec.conf
|
|
||||||
/etc/sysctl.d/kptr_restrict.conf
|
|
||||||
/etc/sysctl.d/mmap_aslr.conf
|
|
||||||
/etc/sysctl.d/ptrace_scope.conf
|
|
||||||
/etc/sysctl.d/suid_dumpable.conf
|
|
||||||
/etc/sysctl.d/sysrq.conf
|
|
||||||
/etc/sysctl.d/tcp_hardening.conf
|
|
||||||
/etc/sysctl.d/tcp_sack.conf
|
|
||||||
/etc/sysctl.d/tcp_timestamps.conf
|
|
||||||
/etc/systemd/system/emergency.service.d/override.conf
|
|
||||||
/etc/systemd/system/rescue.service.d/override.conf
|
|
||||||
/lib/systemd/coredump.conf.d/disable-coredumps.conf
|
|
||||||
/lib/systemd/system/proc-hidepid.service
|
|
||||||
/lib/systemd/system/remove-system-map.service
|
|
||||||
/usr/lib/security-misc/apt-get-update
|
|
||||||
/usr/lib/security-misc/apt-get-update-sanity-test
|
|
||||||
/usr/lib/security-misc/apt-get-wrapper
|
|
||||||
/usr/lib/security-misc/panic-on-oops
|
|
||||||
/usr/lib/security-misc/remove-system.map
|
|
||||||
/usr/share/glib-2.0/schemas/30_security-misc.gschema.override
|
|
||||||
/usr/share/lintian/overrides/security-misc
|
|
||||||
/usr/share/pam-configs/usergroups
|
|
||||||
/usr/share/pam-configs/wheel
|
|
||||||
/usr/share/security-misc/dolphinrc
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
@CHANGELOG@
|
@CHANGELOG@
|
||||||
|
10
usr/bin/disabled-bluetooth-by-security-misc
Executable file
10
usr/bin/disabled-bluetooth-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This Bluetooth kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
10
usr/bin/disabled-cdrom-by-security-misc
Executable file
10
usr/bin/disabled-cdrom-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This CD-ROM/DVD kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
10
usr/bin/disabled-filesys-by-security-misc
Executable file
10
usr/bin/disabled-filesys-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This file system kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
10
usr/bin/disabled-firewire-by-security-misc
Executable file
10
usr/bin/disabled-firewire-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This FireWire (IEEE 1394) kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
10
usr/bin/disabled-framebuffer-by-security-misc
Executable file
10
usr/bin/disabled-framebuffer-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2024 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This framebuffer (fbdev) kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
10
usr/bin/disabled-gps-by-security-misc
Executable file
10
usr/bin/disabled-gps-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This Global Positioning System (GPS) kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
10
usr/bin/disabled-intelme-by-security-misc
Executable file
10
usr/bin/disabled-intelme-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This Intel Management Engine (ME) kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
10
usr/bin/disabled-intelpmt-by-security-misc
Executable file
10
usr/bin/disabled-intelpmt-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2024 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This Intel Platform Monitoring Technology (PMT) Telemetry kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
10
usr/bin/disabled-miscellaneous-by-security-misc
Executable file
10
usr/bin/disabled-miscellaneous-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
10
usr/bin/disabled-netfilesys-by-security-misc
Executable file
10
usr/bin/disabled-netfilesys-by-security-misc
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Copyright (C) 2019 - 2025 ENCRYPTED SUPPORT LLC <adrelanos@whonix.org>
|
||||||
|
## See the file COPYING for copying conditions.
|
||||||
|
|
||||||
|
## Alerts user that a kernel module failed to load due to it being explicitly disabled by default.
|
||||||
|
|
||||||
|
echo "$0: ALERT: This network file system kernel module is disabled by package security-misc by default. See the configuration file /etc/modprobe.d/30_security-misc_disable.conf for details. | args: $@" >&2
|
||||||
|
|
||||||
|
exit 1
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user