forked from extern/shorewall_code
Compare commits
1121 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
2673e6e60c | ||
|
d1a8c19712 | ||
|
3c77d83260 | ||
|
d8e43cee2b | ||
|
b0839c30b2 | ||
|
5a66c1d9d6 | ||
|
de23e641f7 | ||
|
a8294ed495 | ||
|
393cd5043d | ||
|
0de5e88018 | ||
|
badf2fc9f0 | ||
|
5e8ce7d073 | ||
|
450a16f730 | ||
|
aae5baedfd | ||
|
95831e372f | ||
|
77317c1766 | ||
|
236b06d480 | ||
|
86244d8faf | ||
|
b8ef488f64 | ||
|
b7f2d1b22e | ||
|
c93817f30b | ||
|
5637385507 | ||
|
23f66180e9 | ||
|
c1e58f6faf | ||
|
8b0d829531 | ||
|
c941cf4bb5 | ||
|
e9e73a259b | ||
|
672c3420a0 | ||
|
ba87937f49 | ||
|
69f0d4d881 | ||
|
6681191c88 | ||
|
2ceeb2c934 | ||
|
97165ed41e | ||
|
5b0cacd9c4 | ||
|
eeec6f2396 | ||
|
2e7d1ac4a3 | ||
|
34c59dca32 | ||
|
9aa2a4b704 | ||
|
d363809859 | ||
|
6c4383b5ce | ||
|
877807943d | ||
|
378df2861a | ||
|
f84be9faa4 | ||
|
c6dea1525f | ||
|
a7505f3ecb | ||
|
8c10c96844 | ||
|
126c5ccd53 | ||
|
1ca886abd7 | ||
|
ca78c0221c | ||
|
e4c2122532 | ||
|
f16e666858 | ||
|
b5f3294adb | ||
|
8d4e79650e | ||
|
b253be8a69 | ||
|
4385264dc3 | ||
|
6cab1c3c8c | ||
|
fe7bb4abca | ||
|
63b477a4de | ||
|
2166251b97 | ||
|
9e6aec7687 | ||
|
b154803f22 | ||
|
09449d4c67 | ||
|
774be17a32 | ||
|
6120eba8f9 | ||
|
6e8b25f126 | ||
|
1dca860425 | ||
|
bb9d574bf8 | ||
|
4253f23d6b | ||
|
1e90a52b31 | ||
|
b11bea1d4d | ||
|
130b3e16e5 | ||
|
11aa92c5fc | ||
|
68c0897352 | ||
|
344bbeacb7 | ||
|
3073185b39 | ||
|
ef9c153dd5 | ||
|
fa010dc020 | ||
|
770637902f | ||
|
2f56edc1ed | ||
|
bc4c6637c3 | ||
|
0b80856eb6 | ||
|
92689b12bd | ||
|
070efee47a | ||
|
d03146491b | ||
|
995a939a37 | ||
|
ca19feae69 | ||
|
bc7082fb2a | ||
|
109ae7e038 | ||
|
b3ebcc8025 | ||
|
954c0185fa | ||
|
8d025e3821 | ||
|
49ba75252e | ||
|
c835fead34 | ||
|
ac221348c0 | ||
|
381a0ad8aa | ||
|
4b3f9ae1e7 | ||
|
89201bd294 | ||
|
b617c8d224 | ||
|
d1d8371eb8 | ||
|
5d58b5da72 | ||
|
4469ddb861 | ||
|
cd5409d633 | ||
|
2f58d4e368 | ||
|
31844d22cd | ||
|
628f5f0903 | ||
|
ce73c783dc | ||
|
e7318459f1 | ||
|
467d41f0cc | ||
|
ff64539de3 | ||
|
418f96082e | ||
|
b761a6eaa0 | ||
|
f8b7815375 | ||
|
d643f57bc1 | ||
|
d1c7b3d9da | ||
|
d399fd0815 | ||
|
3dc14e3575 | ||
|
7ba6ac71e3 | ||
|
10aef23ab1 | ||
|
e3f139bbdb | ||
|
e4f24f41fd | ||
|
d0e4c53bd0 | ||
|
43ac903085 | ||
|
28b92dae32 | ||
|
bac493c2c5 | ||
|
3ed1cdec94 | ||
|
3f5bdfd705 | ||
|
c9512dfaf8 | ||
|
5cc626fa1d | ||
|
a39ecf5b2b | ||
|
631bec2762 | ||
|
aa126270b7 | ||
|
af2b7e6fc1 | ||
|
01bfdabd5a | ||
|
c234a1a0ec | ||
|
4c50f3b9bf | ||
|
3390897a45 | ||
|
7ca18c410b | ||
|
e2aeed898d | ||
|
2eb1c88555 | ||
|
117e9ba5bd | ||
|
3ce04a8ef3 | ||
|
737aca6a3d | ||
|
d89d35a9f0 | ||
|
220e89755e | ||
|
1d875b2909 | ||
|
011638ad7d | ||
|
3f5c47695e | ||
|
fb14b0aafc | ||
|
54ab7cdeb5 | ||
|
aa47554604 | ||
|
07160c5ed1 | ||
|
527533ecb6 | ||
|
4ac64a545c | ||
|
6612ea6b8c | ||
|
2646ec79a5 | ||
|
023437a0e0 | ||
|
ffb6ac178e | ||
|
726d7cde65 | ||
|
c061d87919 | ||
|
5af7dce96b | ||
|
eb5bc3d8a4 | ||
|
b34474df11 | ||
|
16a3384a70 | ||
|
67b421dc00 | ||
|
c518887a19 | ||
|
5493a7e4a6 | ||
|
1093f1ac32 | ||
|
7882c87afe | ||
|
7343b19abc | ||
|
f27ab4704c | ||
|
e5e8e6fbc0 | ||
|
c11b647b1b | ||
|
5706c5a860 | ||
|
fd1d4a3f35 | ||
|
2bf9048057 | ||
|
d618fd5812 | ||
|
177cdb1b98 | ||
|
dddde56454 | ||
|
9b196e87e9 | ||
|
c30a4fd080 | ||
|
0a9d2d9a33 | ||
|
39de88563f | ||
|
e14798b4a2 | ||
|
3042ae815e | ||
|
86ebb22dd3 | ||
|
18360471ab | ||
|
086f7a0e6d | ||
|
057a2dec70 | ||
|
16af9ee2de | ||
|
cabadd4846 | ||
|
3c06be28be | ||
|
7d4d409799 | ||
|
32ca53706c | ||
|
0adb9c8f87 | ||
|
381d55760b | ||
|
88a799b860 | ||
|
5101a6be4a | ||
|
15ca726c49 | ||
|
27510d9ed6 | ||
|
f832846a8d | ||
|
64bf5882db | ||
|
6841fc9eb2 | ||
|
caa0290cb2 | ||
|
4e1262ec7e | ||
|
53b05aa5fb | ||
|
072053995c | ||
|
1be78f8f15 | ||
|
b6f5b6ba98 | ||
|
3c36d638a5 | ||
|
9d3da44dad | ||
|
a5d4cbd76c | ||
|
4e83d0788e | ||
|
a49a9f9f9d | ||
|
6dc99e77ae | ||
|
92b25d88b0 | ||
|
42a505c99d | ||
|
5e648a9379 | ||
|
ed2fa863c3 | ||
|
386dff4c33 | ||
|
e49f31fb42 | ||
|
3f0e4959a1 | ||
|
112c4dc38a | ||
|
137cc48779 | ||
|
f9003fab43 | ||
|
78da975989 | ||
|
be924ff765 | ||
|
6f484da821 | ||
|
82d2863b29 | ||
|
e855d03332 | ||
|
09712254e8 | ||
|
de39f7d3aa | ||
|
54a70e4632 | ||
|
c80462c283 | ||
|
a2e56492df | ||
|
3222a380c3 | ||
|
e82307f61e | ||
|
ae4f86a1e5 | ||
|
c33a72594c | ||
|
8496bf0ff3 | ||
|
a6c1cd6d7b | ||
|
2604378646 | ||
|
d24179173f | ||
|
803853c719 | ||
|
57f1f8658f | ||
|
0a34e4e685 | ||
|
b52a330f41 | ||
|
de761ac657 | ||
|
d3de75dd12 | ||
|
ca59556d44 | ||
|
639dc86e1b | ||
|
fa1aa4b481 | ||
|
3e2d7cf990 | ||
|
95d3486788 | ||
|
657673927c | ||
|
a345be20fb | ||
|
9f3534dc1f | ||
|
f63f0bb2f1 | ||
|
646f01a3a4 | ||
|
65e101f306 | ||
|
000f120c61 | ||
|
f221ca290f | ||
|
8b99f8caac | ||
|
8b2c79e5ce | ||
|
dcde2bfa4a | ||
|
1ec81b7d7b | ||
|
387b861759 | ||
|
f4e6d2fa56 | ||
|
6798c2f2b0 | ||
|
caa7475483 | ||
|
3f5e1b5b60 | ||
|
e8f49bc9c7 | ||
|
5021154867 | ||
|
f831d9a988 | ||
|
31b558b7f9 | ||
|
367a5f7d97 | ||
|
4efac2fda1 | ||
|
5f50b70618 | ||
|
b437f609e5 | ||
|
b897fe2b9d | ||
|
802ff1da4e | ||
|
f05bd969af | ||
|
7aaa04149e | ||
|
093e55083c | ||
|
c9eb443574 | ||
|
0aabb81c03 | ||
|
c763525e78 | ||
|
533e2472da | ||
|
08da235896 | ||
|
77cad81ba7 | ||
|
9213d7e707 | ||
|
157abcbd37 | ||
|
6da498510c | ||
|
2b7a37e42a | ||
|
84a220a651 | ||
|
51b9589c48 | ||
|
762df5e18c | ||
|
cb56991fee | ||
|
54c7e1a607 | ||
|
c4d5bb904b | ||
|
40f6192e19 | ||
|
7051daeb08 | ||
|
a9c42e1eaa | ||
|
8df70406df | ||
|
8b0cfdf779 | ||
|
c127cec76c | ||
|
6b21135ade | ||
|
2f66381a4a | ||
|
aa97b1b283 | ||
|
53495ec0a8 | ||
|
2f3f6ffa15 | ||
|
60f2f3b0d0 | ||
|
e626b77097 | ||
|
15dd14e167 | ||
|
83b586c192 | ||
|
d3fcb29f0d | ||
|
a4ed419aba | ||
|
e548043e96 | ||
|
443a4223c2 | ||
|
8f42a6a72b | ||
|
0982fec513 | ||
|
f5262dd050 | ||
|
8dcfd86f3a | ||
|
edc9e25f25 | ||
|
ef11ae834d | ||
|
9f423412d8 | ||
|
7f7fef3a4e | ||
|
b9d0821acb | ||
|
857539c8b1 | ||
|
429070d107 | ||
|
89725c530f | ||
|
8e5f67797a | ||
|
0eb0bace9a | ||
|
fab8cc055b | ||
|
bef8ec09b3 | ||
|
cf330afbd9 | ||
|
49731da807 | ||
|
f3ecbc185c | ||
|
a71a44346e | ||
|
4d278f4c20 | ||
|
45ec24ea42 | ||
|
bf3880ae59 | ||
|
9e838e6d04 | ||
|
d096db6a94 | ||
|
636d82414f | ||
|
cb3273b13b | ||
|
f0c75b5119 | ||
|
23bc6f1ab5 | ||
|
54e6412c49 | ||
|
1465035aa4 | ||
|
8473bf2200 | ||
|
0fe45b8f46 | ||
|
a4c87149c9 | ||
|
83359b098d | ||
|
3239fb3eb9 | ||
|
096f59b5bc | ||
|
9260be402b | ||
|
7bf7000941 | ||
|
840f8b904d | ||
|
61ac08dc7f | ||
|
f65b10c375 | ||
|
35c7f304f7 | ||
|
467544801e | ||
|
7cfe9ec272 | ||
|
6908a4bcf7 | ||
|
be2110b47e | ||
|
ad6401da8c | ||
|
2b6d657fb0 | ||
|
668cb6deda | ||
|
ddd8576ced | ||
|
98aad094fb | ||
|
8ed644a0ec | ||
|
86b82c53cf | ||
|
061ce3d781 | ||
|
45f8d31021 | ||
|
03d2088cf7 | ||
|
6534201284 | ||
|
282ca14182 | ||
|
4b7d346911 | ||
|
131a2cd40d | ||
|
ae90ab1f68 | ||
|
5e57c895b3 | ||
|
aab1df7421 | ||
|
9f3cc88cf0 | ||
|
aaa80882a0 | ||
|
1b6de901e0 | ||
|
56780a5d1f | ||
|
22c1bc2e9c | ||
|
5048e68cb5 | ||
|
1897794dbf | ||
|
4fca96f10e | ||
|
2d2ded7efc | ||
|
e5e427f278 | ||
|
5e8fd570d1 | ||
|
e8428cc298 | ||
|
aa94772fc6 | ||
|
732ae3ce19 | ||
|
9cbcb328af | ||
|
82e84f724d | ||
|
23cf8328d5 | ||
|
7c31f70dc8 | ||
|
f1eafdc314 | ||
|
69745caa41 | ||
|
0b49477e0d | ||
|
c195bab01d | ||
|
1b550baf7e | ||
|
d829093caa | ||
|
1fa77ac470 | ||
|
5083246266 | ||
|
c0d6c9e7c0 | ||
|
0d682fe78b | ||
|
410a20dda3 | ||
|
0685d0edfd | ||
|
474604b1fe | ||
|
6fef1f34ba | ||
|
93f0183550 | ||
|
5a599552f2 | ||
|
a42972644c | ||
|
b271c52603 | ||
|
49514e2d58 | ||
|
a265685e20 | ||
|
442e6ac152 | ||
|
14e5a2d5ca | ||
|
6e32f052c8 | ||
|
780eb0402c | ||
|
bfb9852eb6 | ||
|
a8b6a301f2 | ||
|
150f7ab798 | ||
|
b11d63a7bd | ||
|
84b283533b | ||
|
e36547f8be | ||
|
0632723a6c | ||
|
43543b5c32 | ||
|
ffc5a3c7df | ||
|
b6d1293b2e | ||
|
ec21b03c5b | ||
|
25dcf8c5d6 | ||
|
c02b71b530 | ||
|
78269d57bc | ||
|
fc91648315 | ||
|
067f435ac5 | ||
|
2039f38faf | ||
|
07654d8f8d | ||
|
b5e8f9bd50 | ||
|
f9995a9515 | ||
|
9c950082f6 | ||
|
defdd320cf | ||
|
fc44eb7516 | ||
|
bb89d509ea | ||
|
c2fe389da8 | ||
|
45d1ef3978 | ||
|
65e174a073 | ||
|
6822803802 | ||
|
66edd76b10 | ||
|
99be0ce970 | ||
|
98d5bf8f55 | ||
|
370901e873 | ||
|
c59ff50de4 | ||
|
3df5c032da | ||
|
b997bfcd97 | ||
|
7630d3cdb1 | ||
|
90df607d79 | ||
|
f012244acd | ||
|
5e2f1f573d | ||
|
011322992e | ||
|
16bb41db15 | ||
|
47a96e9ff9 | ||
|
4a1d8ba0f9 | ||
|
7c99059a66 | ||
|
609ee8dea2 | ||
|
299ea2b41f | ||
|
224400833a | ||
|
32f1ae1992 | ||
|
9b5468cd4a | ||
|
47a59cdd7c | ||
|
676ca872d6 | ||
|
ef28208c0e | ||
|
cdeb82bdab | ||
|
3be071ca3d | ||
|
6f6abfc8cd | ||
|
f99f3539d1 | ||
|
e08e239c00 | ||
|
02ed6f26a9 | ||
|
9e002a7689 | ||
|
34c5441768 | ||
|
c3d8cba042 | ||
|
8bc97bcd35 | ||
|
c1a74b54fc | ||
|
88547f5140 | ||
|
4a714b3ab9 | ||
|
7ad7598d5b | ||
|
4dfc6d90b9 | ||
|
0cb4a5c202 | ||
|
9a83365986 | ||
|
bc65d29650 | ||
|
9d3e8d6f6c | ||
|
8056b6fd85 | ||
|
db4a26cfa9 | ||
|
95e956c913 | ||
|
5e3795b5a4 | ||
|
3402b1efb6 | ||
|
24e21e730e | ||
|
421edccd3f | ||
|
cf8a48f110 | ||
|
12bbbbfa2a | ||
|
422911f06b | ||
|
2a12e0950a | ||
|
9869dd25d7 | ||
|
e47b57fd4a | ||
|
3cbe0e7a1c | ||
|
221753c3c0 | ||
|
b14924bd64 | ||
|
c0a608ef84 | ||
|
c518e85215 | ||
|
34fd10df41 | ||
|
e7004da47c | ||
|
1fc97c50f1 | ||
|
440d404780 | ||
|
91c76f7559 | ||
|
eb224e653f | ||
|
73b39abd62 | ||
|
3903fe5fd9 | ||
|
a3e10157de | ||
|
2e4af68b98 | ||
|
de9f29d7d4 | ||
|
99ddb17c9e | ||
|
8ea9d0bbef | ||
|
ebe09a95b8 | ||
|
f32b304eb6 | ||
|
7bdd69d151 | ||
|
a08f0cfe10 | ||
|
09a81ae574 | ||
|
7042d586b2 | ||
|
e17c4ac8af | ||
|
a6000ee963 | ||
|
0ab1464f51 | ||
|
789854adce | ||
|
37101a2031 | ||
|
40bcfd15e5 | ||
|
230ab06e5d | ||
|
09cda21dd4 | ||
|
9253f90ac5 | ||
|
f4cae55c1e | ||
|
fbee4a91fd | ||
|
cb7071a213 | ||
|
cdf5ad45d5 | ||
|
070a67d665 | ||
|
9796c58eb2 | ||
|
cabc20957f | ||
|
a9a379c5a5 | ||
|
3bf5066f82 | ||
|
b2c33a0f9a | ||
|
64f704a964 | ||
|
416224ee05 | ||
|
92ce1beddc | ||
|
4d6bf8564e | ||
|
fb4b362724 | ||
|
97de2be778 | ||
|
85cae3c7f8 | ||
|
acd425a3c2 | ||
|
4e6949f996 | ||
|
5d7dcc3122 | ||
|
23d498146b | ||
|
422d0b216a | ||
|
37ecbff23a | ||
|
491309a78a | ||
|
bc993c384c | ||
|
0e4c1cdac1 | ||
|
27a0f0f7a0 | ||
|
9ac075fd56 | ||
|
b2604583af | ||
|
62c6411cb0 | ||
|
6badf3ce1a | ||
|
1bc90beb01 | ||
|
eaccf033c6 | ||
|
056711d304 | ||
|
0aa0bebe07 | ||
|
1a68d87c94 | ||
|
c518cfaa4a | ||
|
196a56ea3c | ||
|
2c3f121835 | ||
|
18ba5c7311 | ||
|
c8774110c6 | ||
|
1479e955d4 | ||
|
09980cc75e | ||
|
e0a757ea03 | ||
|
550003f0f4 | ||
|
4f50303318 | ||
|
5053999442 | ||
|
6b5889177b | ||
|
71f8bad300 | ||
|
377c9f5708 | ||
|
45a164733b | ||
|
6f82bfe7d1 | ||
|
4e5b98d3d9 | ||
|
078c781dfa | ||
|
46f68c6dcb | ||
|
b42678269c | ||
|
9bd10c0c00 | ||
|
f861f8da35 | ||
|
9e3cb27d0a | ||
|
5b97800901 | ||
|
d8a22d13dd | ||
|
675e41e6a6 | ||
|
28f6379956 | ||
|
c9b58e203b | ||
|
9afe8daae0 | ||
|
43adcd26a1 | ||
|
65371437b5 | ||
|
cc2022e172 | ||
|
f2a565729f | ||
|
ea8b2a803a | ||
|
16832149ca | ||
|
7edf4918d7 | ||
|
d3a1dc1e2a | ||
|
f68f47d01b | ||
|
b1d1fa862a | ||
|
24acf25451 | ||
|
229c47ac6c | ||
|
38de9c1732 | ||
|
17f4fd7cd2 | ||
|
cfd02c1bb6 | ||
|
02caeb5aa0 | ||
|
19b7601c72 | ||
|
5a8e9cd0a3 | ||
|
b5a6067588 | ||
|
45468af2d2 | ||
|
6c018f478c | ||
|
dec3cacb2a | ||
|
4ab8e1f0a2 | ||
|
821d72093a | ||
|
42d5d13780 | ||
|
7121a0f1b1 | ||
|
ab12d63a4f | ||
|
6ba1d5413b | ||
|
4fc572f664 | ||
|
138e64c54a | ||
|
b04b65cac8 | ||
|
c907748b52 | ||
|
7f3414e3d8 | ||
|
c75fe2ea8d | ||
|
5dcb684efc | ||
|
3e87e5004a | ||
|
c89b113a61 | ||
|
7289175070 | ||
|
5aaf1e53de | ||
|
a9373d727b | ||
|
528b473f6b | ||
|
d22210c074 | ||
|
89d6009200 | ||
|
f411f7dd31 | ||
|
502e98eb9f | ||
|
f73bad440d | ||
|
f0cb3f50e4 | ||
|
23bc019a82 | ||
|
9d299ef866 | ||
|
2a9272ccd1 | ||
|
130ddff9de | ||
|
9cf298482d | ||
|
c5a586aa37 | ||
|
0670ecaf5e | ||
|
d3eebde464 | ||
|
832418585a | ||
|
605f61fb3c | ||
|
824f4ca570 | ||
|
9acdbb5acf | ||
|
8dfa0be611 | ||
|
ef8b85fc3e | ||
|
2b5613026a | ||
|
c7c318c0e7 | ||
|
b48e5a8932 | ||
|
d1976189aa | ||
|
6b4905c2c0 | ||
|
774b707352 | ||
|
c3bd58827f | ||
|
b35f1112f4 | ||
|
a0eb91cb90 | ||
|
105e6a3d01 | ||
|
77d9eeb915 | ||
|
17838c1443 | ||
|
5867ce6c3b | ||
|
84cd80eba9 | ||
|
9b02f7a922 | ||
|
f1975ae9b0 | ||
|
7b9f7c095d | ||
|
8ea96098bf | ||
|
02ed36332a | ||
|
15a3b29a32 | ||
|
cb4f9e7261 | ||
|
bfab002dda | ||
|
ddb12fcad9 | ||
|
42ce754961 | ||
|
5cd4d63bc5 | ||
|
5b567f2d8b | ||
|
39a3c72057 | ||
|
b47e633c38 | ||
|
1b55a37a28 | ||
|
a97dcd23d0 | ||
|
108b169d8d | ||
|
a9fbaa57ed | ||
|
317f12041b | ||
|
8469f983d8 | ||
|
f54acb665a | ||
|
3d2e9eb93e | ||
|
c6a939301f | ||
|
1cb98254cc | ||
|
baa791a1e3 | ||
|
8b4b965f63 | ||
|
8ee2d6246c | ||
|
a7be3dfece | ||
|
846e8c4ece | ||
|
e2bf7e6584 | ||
|
ff3994f6a1 | ||
|
494ec9c59c | ||
|
1cde92e8f3 | ||
|
721a1e3b33 | ||
|
84fa774cb7 | ||
|
c39bc7b65f | ||
|
2548e8741d | ||
|
0a31fba6bb | ||
|
9701c9c522 | ||
|
973d352209 | ||
|
91e59c2ed4 | ||
|
be5aabcbfb | ||
|
a8937e6bc8 | ||
|
e91bd9a0e9 | ||
|
5e1cf17ebc | ||
|
85a7ec6fe5 | ||
|
fb831e3128 | ||
|
2ed11c7e15 | ||
|
ef1353790e | ||
|
4f79d2e82b | ||
|
e6a2ba78a4 | ||
|
41ea3bdeda | ||
|
1065c2951b | ||
|
3b373f3f21 | ||
|
0c05ab3bff | ||
|
ef3a33e3f4 | ||
|
8a78fb6e77 | ||
|
b54a691110 | ||
|
90f33dd436 | ||
|
b7aef24d7c | ||
|
6f475cde3f | ||
|
6053a40af0 | ||
|
7e4dba7623 | ||
|
3d322d31b7 | ||
|
34e4fffd7d | ||
|
2e98d4375b | ||
|
419ff8903b | ||
|
390ac30be8 | ||
|
8cb98f16ea | ||
|
5a9f179e25 | ||
|
d8eca457de | ||
|
8641d53bd1 | ||
|
7e3521e221 | ||
|
0603f8e355 | ||
|
ddefde2d10 | ||
|
2beeedd8fe | ||
|
1a2647618e | ||
|
72293883dd | ||
|
c31397532c | ||
|
d0861e813b | ||
|
5d5bef105a | ||
|
da62bd2b32 | ||
|
a83c19cc33 | ||
|
96a33395e8 | ||
|
dabe8abe52 | ||
|
a504820d19 | ||
|
8db4265ccc | ||
|
4c2c1bcdf1 | ||
|
f2ee8013fc | ||
|
56c8f70b52 | ||
|
657215f9b5 | ||
|
5589ab76d9 | ||
|
ec0e6763e4 | ||
|
6425e5ae5d | ||
|
8521c6f750 | ||
|
c57edb0fbf | ||
|
80e6cd8a2f | ||
|
69a0061d0f | ||
|
5a24953e6c | ||
|
eea3cca90c | ||
|
a420ef04d9 | ||
|
e573436b12 | ||
|
7f44473387 | ||
|
cf9773c4de | ||
|
939f0e92a5 | ||
|
320d448684 | ||
|
975a14b94f | ||
|
cf3c304078 | ||
|
d1a21fb678 | ||
|
b9b7baf98d | ||
|
92e725de97 | ||
|
922bd9eeca | ||
|
d2b3fa476a | ||
|
4e978b687d | ||
|
2d0cb5c2d8 | ||
|
d9dc6bcfe2 | ||
|
ff51915b4f | ||
|
1ad796ba5d | ||
|
c8e2b4ae28 | ||
|
9d160d4342 | ||
|
1301848315 | ||
|
f050fc6e05 | ||
|
61b6898782 | ||
|
aee8c14ea6 | ||
|
ff2323b249 | ||
|
b4a06e9656 | ||
|
4122021344 | ||
|
71d50e0217 | ||
|
1b6f15d577 | ||
|
7515520b46 | ||
|
1e2030fd6f | ||
|
708644f7c9 | ||
|
2f5687c65a | ||
|
66d1fbd3aa | ||
|
c410459e27 | ||
|
987e54cd54 | ||
|
42a46d42b6 | ||
|
d8ef934f24 | ||
|
62a60ad995 | ||
|
b1ba05db2b | ||
|
57f7cb4f3c | ||
|
4cf60258af | ||
|
1061644ac7 | ||
|
4a262c0e1b | ||
|
29ffb7eb4b | ||
|
a775fdcb7c | ||
|
6338aa42b0 | ||
|
12a32d3a6b | ||
|
45d96a5d64 | ||
|
f21d6de4d6 | ||
|
965a8e8f68 | ||
|
eb26a467e9 | ||
|
28e3218041 | ||
|
bb70a3637b | ||
|
6c20cc7c4f | ||
|
d4e05f6163 | ||
|
6201f37913 | ||
|
7ee44d6b4b | ||
|
363b8f9802 | ||
|
d365a9ff18 | ||
|
00d4724fd8 | ||
|
749c8047d8 | ||
|
a00f2e6365 | ||
|
a46f19899b | ||
|
d2392c3a9b | ||
|
0763b27b0b | ||
|
8b90827611 | ||
|
8507c97b5a | ||
|
a6306f2c08 | ||
|
a79dc194a4 | ||
|
ccf9d73c72 | ||
|
bdcf93f92c | ||
|
6b84727886 | ||
|
5f445d9c2b | ||
|
31bd10ffdd | ||
|
c3303067fc | ||
|
55cf06d0a8 | ||
|
c36a7cd35b | ||
|
561efa595c | ||
|
158f6305b1 | ||
|
6407520a35 | ||
|
54336eaa80 | ||
|
5b85627fb8 | ||
|
a00d7217e3 | ||
|
54ef4e4ced | ||
|
a447d726fa | ||
|
c6050f9fbb | ||
|
fe29adbd66 | ||
|
4dc6be6b3b | ||
|
6ebc8f4266 | ||
|
c5c4211081 | ||
|
4010f9bce4 | ||
|
02bb717d7d | ||
|
046998ed84 | ||
|
24a014655b | ||
|
0b8945da8e | ||
|
da363880a9 | ||
|
b049d1805d | ||
|
037fe490f3 | ||
|
a8d7675322 | ||
|
b13014c9ab | ||
|
76aef6cb04 | ||
|
4c72b3ee58 | ||
|
d9071c5308 | ||
|
5729be6431 | ||
|
1a381f717c | ||
|
c534c458dd | ||
|
61435936fe | ||
|
2d4c1411bd | ||
|
655f260cb6 | ||
|
85d571d013 | ||
|
fdb78898fc | ||
|
d4c016d9c5 | ||
|
3d8d5aa469 | ||
|
49811d24fa | ||
|
fe4aaee1b4 | ||
|
0ec7bc846e | ||
|
dbcd4d9d16 | ||
|
5a996cbda7 | ||
|
6019adaae5 | ||
|
4f869c3506 | ||
|
e3c2874b21 | ||
|
e8a0142480 | ||
|
a4768776f7 | ||
|
8e000b158e | ||
|
f1d1ab6411 | ||
|
cd103bb715 | ||
|
5f1370f1b4 | ||
|
dc53fa2665 | ||
|
71d9a03697 | ||
|
137d4bcc90 | ||
|
356d3fa2dd | ||
|
80d93235b5 | ||
|
c1e7fce1c5 | ||
|
63ec936f21 | ||
|
dabe0bd205 | ||
|
63cf7dd699 | ||
|
0b3a32b365 | ||
|
a839a6f7d0 | ||
|
fec967a41d | ||
|
a7d45e9566 | ||
|
876d76b294 | ||
|
9075a6dd7a | ||
|
c900e3e51c | ||
|
e585ce04f4 | ||
|
61f5e3531c | ||
|
e8a5c45aae | ||
|
d20ad64739 | ||
|
7ffe8e4e4b | ||
|
7644e1d49f | ||
|
06c6a017d5 | ||
|
75fd8ccb37 | ||
|
c04845534a | ||
|
8c7e6fddfd | ||
|
e6ed4d425d | ||
|
783e438b4a | ||
|
27a620347a | ||
|
a496edef54 | ||
|
50a9b4cc6a | ||
|
22b044f350 | ||
|
c58efe7698 | ||
|
f48b2e715f | ||
|
f6f7e691d0 | ||
|
a9048b63f2 | ||
|
bc1df90829 | ||
|
09462cf92b | ||
|
315d4c39b8 | ||
|
42554f8f31 | ||
|
f0debcb6fb | ||
|
e8a9b8ddc8 | ||
|
20cc56f2f1 | ||
|
4e771083c7 | ||
|
a3fc110dc9 | ||
|
813f592b46 | ||
|
a6eebc8ecf | ||
|
6966270822 | ||
|
118e4f73c9 | ||
|
10b39f3855 | ||
|
c4f21ffefb | ||
|
a71b61c238 | ||
|
944888c04f | ||
|
48d301b2cf | ||
|
735919d8d3 | ||
|
b4561e97c8 | ||
|
66a63a4da5 | ||
|
8c9fb501fd | ||
|
977fa81d46 | ||
|
09fda9eb6c | ||
|
7e984af094 | ||
|
af8d4e32c2 | ||
|
ca33a7ef65 | ||
|
e91f414223 | ||
|
5cd2f26b51 | ||
|
dab9e1d7c4 | ||
|
b9471a2499 | ||
|
3b82721956 | ||
|
95ffada759 | ||
|
b2553fb008 | ||
|
8bc70674f3 | ||
|
cecb8a1950 | ||
|
079d862bb3 | ||
|
d50fdea2a7 | ||
|
4c97c58981 | ||
|
92133e5a6b | ||
|
686ca9d3a3 | ||
|
fa7ad6bd74 | ||
|
e45b96ca20 | ||
|
eac2639684 | ||
|
70a395892f | ||
|
d2d11df4f6 | ||
|
b985654600 | ||
|
62ff6d3fa5 | ||
|
2bbb5c8c1e | ||
|
33b4ee4d31 | ||
|
889ca756a1 | ||
|
d111e4f186 | ||
|
634c8debda | ||
|
71dd5d016b | ||
|
6b408869d2 | ||
|
edf08bf408 | ||
|
4a01e910ff | ||
|
2a010f827b | ||
|
9c3a82f628 | ||
|
e6933f4c8d | ||
|
cc3b8793e0 | ||
|
ac5fd195ec | ||
|
45b9ddf188 | ||
|
2d16fac9ed | ||
|
f23970b4f7 | ||
|
04112647d3 | ||
|
2ca1ae734a | ||
|
b36b07b567 | ||
|
64c249a174 | ||
|
0019ca53e5 | ||
|
0d2a5089a9 | ||
|
50d09e76cb | ||
|
73772efb85 | ||
|
568f461763 | ||
|
f12b78d518 | ||
|
a15b2918a4 | ||
|
cb150f9c09 | ||
|
19ce2093d8 | ||
|
b8c322a05f | ||
|
f68d3fd9fa | ||
|
386b137e9b | ||
|
ce68f84d9d | ||
|
5aed31d37a | ||
|
0b3d1b1d36 | ||
|
6be89b4e2d | ||
|
75a9e45caf | ||
|
2f9ef4dda7 | ||
|
26f181ef2a | ||
|
b0ea9db0bd | ||
|
7a3865bcfc | ||
|
5174fe0161 | ||
|
65bf33bcf3 | ||
|
638c7c5bca | ||
|
c4bbb46e3f | ||
|
7b96d41065 | ||
|
1b97783c23 | ||
|
c9f45277b8 | ||
|
7ce0cc3e2e | ||
|
541291b729 | ||
|
9dcac6012b | ||
|
1a95db73e9 | ||
|
dcade04fba | ||
|
7717de872d | ||
|
be5a8c440f | ||
|
7c63428e82 | ||
|
4c03aaa0fc | ||
|
8dce87e129 | ||
|
cabef548a6 | ||
|
4af278338f | ||
|
fa6167797d | ||
|
44e9c7780f | ||
|
3caedbbbef | ||
|
b2f07b0e44 | ||
|
a86ea0c00a | ||
|
20c764ca5c | ||
|
b33d853703 | ||
|
30331fecda | ||
|
6ff1833ae0 | ||
|
eaf58d18aa | ||
|
a9583aaf3a | ||
|
c2c2dc0b22 | ||
|
e3951cb5a3 | ||
|
eb3067c006 | ||
|
e4ec1c81ec | ||
|
d2890df8b9 | ||
|
73f74ad576 | ||
|
7be8c579a7 | ||
|
28359c40f3 | ||
|
2ec17ce608 | ||
|
1cb32e3127 | ||
|
bac6848362 | ||
|
fa8e92cbd3 | ||
|
56d4d01984 | ||
|
f502e5b2e3 | ||
|
154395c20f | ||
|
089ff4eb33 | ||
|
7ce5c31c68 | ||
|
273b02c6da | ||
|
095c9212f4 | ||
|
612eee64d1 | ||
|
08c6b80e1e | ||
|
cb7ab3908a | ||
|
b4d42507b2 | ||
|
094ccbf978 | ||
|
b756c63b1e | ||
|
eea9882953 | ||
|
cc937ffaba | ||
|
6a43dd1564 | ||
|
5ea3334a66 | ||
|
6c8dae45c4 | ||
|
a2e040998b | ||
|
53adfbe863 | ||
|
4a0a906510 | ||
|
7ceb0228e9 | ||
|
4a410c7b4c | ||
|
5ae062317f | ||
|
0e40c5a4a1 | ||
|
77e83f0afd | ||
|
a45fe692cc | ||
|
799b17210c | ||
|
01306e1230 | ||
|
963dea54c5 | ||
|
fbbcc812a1 | ||
|
87870ac46e | ||
|
d895a5d67c | ||
|
414c5c7b0c | ||
|
c561f8eb03 | ||
|
38c9165c39 | ||
|
bd2df4836d | ||
|
875c352473 | ||
|
dae060bbb4 | ||
|
de553e7b18 | ||
|
36517cdb1e | ||
|
bb5c3a50f5 | ||
|
8b99fe20b5 | ||
|
137b051e52 |
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*targetname export-ignore
|
@ -18,7 +18,7 @@ Shoreline Firewall (Shorewall) Version 5
|
|||||||
|
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
Please see http://www.shorewall.net/Install.htm for installation
|
Please see https://shorewall.org/Install.htm for installation
|
||||||
instructions.
|
instructions.
|
||||||
|
|
||||||
|
|
||||||
|
1
Shorewall-core/Shorewall-core-targetname
Normal file
1
Shorewall-core/Shorewall-core-targetname
Normal file
@ -0,0 +1 @@
|
|||||||
|
5.2.8-RC1
|
13
Shorewall-core/configure
vendored
13
Shorewall-core/configure
vendored
@ -1,10 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Shorewall Packet Filtering Firewall RPM configuration program - V4.6
|
# Shorewall Packet Filtering Firewall configuration program - V5.2
|
||||||
#
|
#
|
||||||
# (c) 2012,2014 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2012,2014,2017 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://www.shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -109,6 +109,9 @@ if [ -z "$vendor" ]; then
|
|||||||
opensuse)
|
opensuse)
|
||||||
vendor=suse
|
vendor=suse
|
||||||
;;
|
;;
|
||||||
|
alt|basealt|altlinux)
|
||||||
|
vendor=alt
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
vendor="$ID"
|
vendor="$ID"
|
||||||
;;
|
;;
|
||||||
@ -132,6 +135,8 @@ if [ -z "$vendor" ]; then
|
|||||||
if [ -f /etc/debian_version ]; then
|
if [ -f /etc/debian_version ]; then
|
||||||
params[HOST]=debian
|
params[HOST]=debian
|
||||||
ls -l /sbin/init | fgrep -q systemd && rcfile=shorewallrc.debian.systemd || rcfile=shorewallrc.debian.sysvinit
|
ls -l /sbin/init | fgrep -q systemd && rcfile=shorewallrc.debian.systemd || rcfile=shorewallrc.debian.sysvinit
|
||||||
|
elif [ -f /etc/altlinux-release ] ; then
|
||||||
|
params[HOST]=alt
|
||||||
elif [ -f /etc/redhat-release ]; then
|
elif [ -f /etc/redhat-release ]; then
|
||||||
params[HOST]=redhat
|
params[HOST]=redhat
|
||||||
rcfile=shorewallrc.redhat
|
rcfile=shorewallrc.redhat
|
||||||
@ -190,7 +195,7 @@ for p in ${!params[@]}; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
echo '#' > shorewallrc
|
echo '#' > shorewallrc
|
||||||
echo "# Created by Shorewall Core version $VERSION configure - " `date` >> shorewallrc
|
echo "# Created by Shorewall Core version $VERSION configure - " `date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}"` >> shorewallrc
|
||||||
echo "# rc file: $rcfile" >> shorewallrc
|
echo "# rc file: $rcfile" >> shorewallrc
|
||||||
echo '#' >> shorewallrc
|
echo '#' >> shorewallrc
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
#! /usr/bin/perl -w
|
#! /usr/bin/perl -w
|
||||||
#
|
#
|
||||||
# Shorewall Packet Filtering Firewall RPM configuration program - V4.5
|
# Shorewall Packet Filtering Firewall configuration program - V5.2
|
||||||
#
|
#
|
||||||
# (c) 2012, 2014 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2012, 2014 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://www.shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -74,6 +74,8 @@ unless ( defined $vendor ) {
|
|||||||
} elsif ( $id eq 'ubuntu' || $id eq 'debian' ) {
|
} elsif ( $id eq 'ubuntu' || $id eq 'debian' ) {
|
||||||
my $init = `ls -l /sbin/init`;
|
my $init = `ls -l /sbin/init`;
|
||||||
$vendor = $init =~ /systemd/ ? 'debian.systemd' : 'debian.sysvinit';
|
$vendor = $init =~ /systemd/ ? 'debian.systemd' : 'debian.sysvinit';
|
||||||
|
} elsif ( $id eq 'alt' || $id eq 'basealt' || $id eq 'altlinux' ) {
|
||||||
|
$vendor = 'alt';
|
||||||
} else {
|
} else {
|
||||||
$vendor = $id;
|
$vendor = $id;
|
||||||
}
|
}
|
||||||
@ -117,6 +119,9 @@ if ( defined $vendor ) {
|
|||||||
} else {
|
} else {
|
||||||
$rcfilename = 'shorewallrc.debian.sysvinit';
|
$rcfilename = 'shorewallrc.debian.sysvinit';
|
||||||
}
|
}
|
||||||
|
} elsif ( -f '/etc/altlinux-release' ){
|
||||||
|
$vendor = 'alt';
|
||||||
|
$rcfilename = 'shorewallrc.alt';
|
||||||
} elsif ( -f '/etc/redhat-release' ){
|
} elsif ( -f '/etc/redhat-release' ){
|
||||||
$vendor = 'redhat';
|
$vendor = 'redhat';
|
||||||
$rcfilename = 'shorewallrc.redhat';
|
$rcfilename = 'shorewallrc.redhat';
|
||||||
@ -173,7 +178,12 @@ my $outfile;
|
|||||||
|
|
||||||
open $outfile, '>', 'shorewallrc' or die "Can't open 'shorewallrc' for output: $!";
|
open $outfile, '>', 'shorewallrc' or die "Can't open 'shorewallrc' for output: $!";
|
||||||
|
|
||||||
printf $outfile "#\n# Created by Shorewall Core version %s configure.pl - %s %2d %04d %02d:%02d:%02d\n", VERSION, $abbr[$localtime[4]], $localtime[3], 1900 + $localtime[5] , @localtime[2,1,0];
|
if ( $ENV{SOURCE_DATE_EPOCH} ) {
|
||||||
|
printf $outfile "#\n# Created by Shorewall Core version %s configure.pl - %s\n", VERSION, `date --utc --date=\"\@$ENV{SOURCE_DATE_EPOCH}\"`;
|
||||||
|
} else {
|
||||||
|
printf $outfile "#\n# Created by Shorewall Core version %s configure.pl - %s %2d %04d %02d:%02d:%02d\n", VERSION, $abbr[$localtime[4]], $localtime[3], 1900 + $localtime[5] , @localtime[2,1,0];
|
||||||
|
}
|
||||||
|
|
||||||
print $outfile "# rc file: $rcfilename\n#\n";
|
print $outfile "# rc file: $rcfilename\n#\n";
|
||||||
|
|
||||||
print $outfile "# Input: @ARGV\n#\n" if @ARGV;
|
print $outfile "# Input: @ARGV\n#\n" if @ARGV;
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
#
|
#
|
||||||
# Script to install Shoreline Firewall Core Modules
|
# Script to install Shoreline Firewall Core Modules
|
||||||
#
|
#
|
||||||
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2000-2018 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -22,64 +22,20 @@
|
|||||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
VERSION=xxx #The Build script inserts the actual version
|
VERSION=xxx # The Build script inserts the actual version
|
||||||
|
|
||||||
PRODUCT=shorewall-core
|
PRODUCT=shorewall-core
|
||||||
Product="Shorewall Core"
|
Product="Shorewall Core"
|
||||||
|
|
||||||
usage() # $1 = exit status
|
usage() # $1 = exit status
|
||||||
{
|
{
|
||||||
ME=$(basename $0)
|
ME=$(basename $0)
|
||||||
echo "usage: $ME [ <configuration-file> ] "
|
echo "usage: $ME [ <option> ] [ <shorewallrc file> ]"
|
||||||
echo " $ME -v"
|
echo "where <option> is one of"
|
||||||
echo " $ME -h"
|
echo " -h"
|
||||||
|
echo " -v"
|
||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
fatal_error()
|
|
||||||
{
|
|
||||||
echo " ERROR: $@" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
split() {
|
|
||||||
local ifs
|
|
||||||
ifs=$IFS
|
|
||||||
IFS=:
|
|
||||||
set -- $1
|
|
||||||
echo $*
|
|
||||||
IFS=$ifs
|
|
||||||
}
|
|
||||||
|
|
||||||
qt()
|
|
||||||
{
|
|
||||||
"$@" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
mywhich() {
|
|
||||||
local dir
|
|
||||||
|
|
||||||
for dir in $(split $PATH); do
|
|
||||||
if [ -x $dir/$1 ]; then
|
|
||||||
echo $dir/$1
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
return 2
|
|
||||||
}
|
|
||||||
|
|
||||||
cant_autostart()
|
|
||||||
{
|
|
||||||
echo
|
|
||||||
echo "WARNING: Unable to configure shorewall to start automatically at boot" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
delete_file() # $1 = file to delete
|
|
||||||
{
|
|
||||||
rm -f $1
|
|
||||||
}
|
|
||||||
|
|
||||||
install_file() # $1 = source $2 = target $3 = mode
|
install_file() # $1 = source $2 = target $3 = mode
|
||||||
{
|
{
|
||||||
if cp -f $1 $2; then
|
if cp -f $1 $2; then
|
||||||
@ -98,16 +54,16 @@ install_file() # $1 = source $2 = target $3 = mode
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
require()
|
|
||||||
{
|
|
||||||
eval [ -n "\$$1" ] || fatal_error "Required option $1 not set"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Change to the directory containing this script
|
# Change to the directory containing this script
|
||||||
#
|
#
|
||||||
cd "$(dirname $0)"
|
cd "$(dirname $0)"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Source common functions
|
||||||
|
#
|
||||||
|
. ./lib.installer || { echo "ERROR: Can not load common functions." >&2; exit 1; }
|
||||||
|
|
||||||
#
|
#
|
||||||
# Parse the run line
|
# Parse the run line
|
||||||
#
|
#
|
||||||
@ -126,7 +82,7 @@ while [ $finished -eq 0 ]; do
|
|||||||
usage 0
|
usage 0
|
||||||
;;
|
;;
|
||||||
v)
|
v)
|
||||||
echo "Shorewall Firewall Installer Version $VERSION"
|
echo "$Product Firewall Installer Version $VERSION"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@ -148,14 +104,14 @@ done
|
|||||||
#
|
#
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
if [ -f ./shorewallrc ]; then
|
if [ -f ./shorewallrc ]; then
|
||||||
. ./shorewallrc
|
|
||||||
file=./shorewallrc
|
file=./shorewallrc
|
||||||
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
elif [ -f ~/.shorewallrc ]; then
|
elif [ -f ~/.shorewallrc ]; then
|
||||||
. ~/.shorewallrc || exit 1
|
|
||||||
file=~/.shorewallrc
|
file=~/.shorewallrc
|
||||||
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
||||||
. /usr/share/shorewall/shorewallrc
|
|
||||||
file=/usr/share/shorewall/shorewallrc
|
file=/usr/share/shorewall/shorewallrc
|
||||||
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
else
|
else
|
||||||
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
||||||
fi
|
fi
|
||||||
@ -169,7 +125,7 @@ elif [ $# -eq 1 ]; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
. $file
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
else
|
else
|
||||||
usage 1
|
usage 1
|
||||||
fi
|
fi
|
||||||
@ -216,6 +172,9 @@ if [ -z "$BUILD" ]; then
|
|||||||
opensuse)
|
opensuse)
|
||||||
BUILD=suse
|
BUILD=suse
|
||||||
;;
|
;;
|
||||||
|
alt|basealt|altlinux)
|
||||||
|
BUILD=alt
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
BUILD="$ID"
|
BUILD="$ID"
|
||||||
;;
|
;;
|
||||||
@ -224,6 +183,8 @@ if [ -z "$BUILD" ]; then
|
|||||||
BUILD=debian
|
BUILD=debian
|
||||||
elif [ -f /etc/gentoo-release ]; then
|
elif [ -f /etc/gentoo-release ]; then
|
||||||
BUILD=gentoo
|
BUILD=gentoo
|
||||||
|
elif [ -f /etc/altlinux-release ]; then
|
||||||
|
BUILD=alt
|
||||||
elif [ -f /etc/redhat-release ]; then
|
elif [ -f /etc/redhat-release ]; then
|
||||||
BUILD=redhat
|
BUILD=redhat
|
||||||
elif [ -f /etc/slackware-version ] ; then
|
elif [ -f /etc/slackware-version ] ; then
|
||||||
@ -282,16 +243,15 @@ case "$HOST" in
|
|||||||
apple)
|
apple)
|
||||||
echo "Installing Mac-specific configuration...";
|
echo "Installing Mac-specific configuration...";
|
||||||
;;
|
;;
|
||||||
debian|gentoo|redhat|slackware|archlinux|linux|suse|openwrt)
|
debian|gentoo|redhat|slackware|archlinux|linux|suse|openwrt|alt)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "ERROR: Unknown HOST \"$HOST\"" >&2
|
fatal_error "Unknown HOST \"$HOST\""
|
||||||
exit 1;
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ -z "$file" ]; then
|
if [ -z "$file" ]; then
|
||||||
if $HOST = linux; then
|
if [ $HOST = linux ]; then
|
||||||
file=shorewallrc.default
|
file=shorewallrc.default
|
||||||
else
|
else
|
||||||
file=shorewallrc.${HOST}
|
file=shorewallrc.${HOST}
|
||||||
@ -304,7 +264,8 @@ if [ -z "$file" ]; then
|
|||||||
echo "" >&2
|
echo "" >&2
|
||||||
echo "Example:" >&2
|
echo "Example:" >&2
|
||||||
echo "" >&2
|
echo "" >&2
|
||||||
echo " ./install.sh $file" &>2
|
echo " ./install.sh $file" >&2
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$DESTDIR" ]; then
|
if [ -n "$DESTDIR" ]; then
|
||||||
@ -315,45 +276,31 @@ if [ -n "$DESTDIR" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Installing Shorewall Core Version $VERSION"
|
echo "Installing $Product Version $VERSION"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Create directories
|
# Create directories
|
||||||
#
|
#
|
||||||
mkdir -p ${DESTDIR}${LIBEXECDIR}/shorewall
|
make_parent_directory ${DESTDIR}${LIBEXECDIR}/shorewall 0755
|
||||||
chmod 755 ${DESTDIR}${LIBEXECDIR}/shorewall
|
|
||||||
|
|
||||||
mkdir -p ${DESTDIR}${SHAREDIR}/shorewall
|
make_parent_directory ${DESTDIR}${SHAREDIR}/shorewall 0755
|
||||||
chmod 755 ${DESTDIR}${SHAREDIR}/shorewall
|
|
||||||
|
|
||||||
mkdir -p ${DESTDIR}${CONFDIR}
|
make_parent_directory ${DESTDIR}${CONFDIR} 0755
|
||||||
chmod 755 ${DESTDIR}${CONFDIR}
|
|
||||||
|
|
||||||
if [ -n "${SYSCONFDIR}" ]; then
|
[ -n "${SYSCONFDIR}" ] && make_parent_directory ${DESTDIR}${SYSCONFDIR} 0755
|
||||||
mkdir -p ${DESTDIR}${SYSCONFDIR}
|
|
||||||
chmod 755 ${DESTDIR}${SYSCONFDIR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "${SERVICEDIR}" ]; then
|
if [ -z "${SERVICEDIR}" ]; then
|
||||||
SERVICEDIR="$SYSTEMD"
|
SERVICEDIR="$SYSTEMD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${SERVICEDIR}" ]; then
|
[ -n "${SERVICEDIR}" ] && make_parent_directory ${DESTDIR}${SERVICEDIR} 0755
|
||||||
mkdir -p ${DESTDIR}${SERVICEDIR}
|
|
||||||
chmod 755 ${DESTDIR}${SERVICEDIR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p ${DESTDIR}${SBINDIR}
|
make_parent_directory ${DESTDIR}${SBINDIR} 0755
|
||||||
chmod 755 ${DESTDIR}${SBINDIR}
|
|
||||||
|
|
||||||
if [ -n "${MANDIR}" ]; then
|
[ -n "${MANDIR}" ] && make_parent_directory ${DESTDIR}${MANDIR} 0755
|
||||||
mkdir -p ${DESTDIR}${MANDIR}
|
|
||||||
chmod 755 ${DESTDIR}${MANDIR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${INITFILE}" ]; then
|
if [ -n "${INITFILE}" ]; then
|
||||||
mkdir -p ${DESTDIR}${INITDIR}
|
make_parent_directory ${DESTDIR}${INITDIR} 0755
|
||||||
chmod 755 ${DESTDIR}${INITDIR}
|
|
||||||
|
|
||||||
if [ -n "$AUXINITSOURCE" -a -f "$AUXINITSOURCE" ]; then
|
if [ -n "$AUXINITSOURCE" -a -f "$AUXINITSOURCE" ]; then
|
||||||
install_file $AUXINITSOURCE ${DESTDIR}${INITDIR}/$AUXINITFILE 0544
|
install_file $AUXINITSOURCE ${DESTDIR}${INITDIR}/$AUXINITFILE 0544
|
||||||
@ -365,21 +312,66 @@ fi
|
|||||||
# Note: ${VARDIR} is created at run-time since it has always been
|
# Note: ${VARDIR} is created at run-time since it has always been
|
||||||
# a relocatable directory on a per-product basis
|
# a relocatable directory on a per-product basis
|
||||||
#
|
#
|
||||||
|
# Install the CLI
|
||||||
|
#
|
||||||
|
install_file shorewall ${DESTDIR}${SBINDIR}/shorewall 0755
|
||||||
|
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SBINDIR}/shorewall
|
||||||
|
echo "Shorewall CLI program installed in ${DESTDIR}${SBINDIR}/shorewall"
|
||||||
|
#
|
||||||
# Install wait4ifup
|
# Install wait4ifup
|
||||||
#
|
#
|
||||||
install_file wait4ifup ${DESTDIR}${LIBEXECDIR}/shorewall/wait4ifup 0755
|
install_file wait4ifup ${DESTDIR}${LIBEXECDIR}/shorewall/wait4ifup 0755
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "wait4ifup installed in ${DESTDIR}${LIBEXECDIR}/shorewall/wait4ifup"
|
echo "wait4ifup installed in ${DESTDIR}${LIBEXECDIR}/shorewall/wait4ifup"
|
||||||
|
#
|
||||||
|
# Install stop_service
|
||||||
|
#
|
||||||
|
if [ -n "${STOPSERVICEFILE}" ]; then
|
||||||
|
install_file ${STOPSERVICEFILE} ${DESTDIR}${LIBEXECDIR}/shorewall/stop_service 0755
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "${STOPSERVICEFILE} installed in ${DESTDIR}${LIBEXECDIR}/shorewall/stop_service"
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install the libraries
|
# Install the libraries
|
||||||
#
|
#
|
||||||
for f in lib.* ; do
|
for f in lib.* ; do
|
||||||
install_file $f ${DESTDIR}${SHAREDIR}/shorewall/$f 0644
|
case $f in
|
||||||
echo "Library ${f#*.} file installed as ${DESTDIR}${SHAREDIR}/shorewall/$f"
|
*installer)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
install_file $f ${DESTDIR}${SHAREDIR}/shorewall/$f 0644
|
||||||
|
echo "Library ${f#*.} file installed as ${DESTDIR}${SHAREDIR}/shorewall/$f"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ $SHAREDIR != /usr/share ]; then
|
||||||
|
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/shorewall/lib.base
|
||||||
|
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/shorewall/lib.cli
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Install the Man Pages
|
||||||
|
#
|
||||||
|
if [ -n "$MANDIR" ]; then
|
||||||
|
cd manpages
|
||||||
|
|
||||||
|
[ -n "$INSTALLD" ] || make_parent_directory ${DESTDIR}${MANDIR}/man8 0755
|
||||||
|
|
||||||
|
for f in *.8; do
|
||||||
|
gzip -9c $f > $f.gz
|
||||||
|
install_file $f.gz ${DESTDIR}${MANDIR}/man8/$f.gz 0644
|
||||||
|
echo "Man page $f.gz installed to ${DESTDIR}${MANDIR}/man8/$f.gz"
|
||||||
|
done
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
echo "Man Pages Installed"
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Symbolically link 'functions' to lib.base
|
# Symbolically link 'functions' to lib.base
|
||||||
#
|
#
|
||||||
@ -388,7 +380,7 @@ ln -sf lib.base ${DESTDIR}${SHAREDIR}/shorewall/functions
|
|||||||
# Create the version file
|
# Create the version file
|
||||||
#
|
#
|
||||||
echo "$VERSION" > ${DESTDIR}${SHAREDIR}/shorewall/coreversion
|
echo "$VERSION" > ${DESTDIR}${SHAREDIR}/shorewall/coreversion
|
||||||
chmod 644 ${DESTDIR}${SHAREDIR}/shorewall/coreversion
|
chmod 0644 ${DESTDIR}${SHAREDIR}/shorewall/coreversion
|
||||||
|
|
||||||
if [ -z "${DESTDIR}" ]; then
|
if [ -z "${DESTDIR}" ]; then
|
||||||
if [ $update -ne 0 ]; then
|
if [ $update -ne 0 ]; then
|
||||||
@ -413,14 +405,20 @@ fi
|
|||||||
|
|
||||||
if [ ${SHAREDIR} != /usr/share ]; then
|
if [ ${SHAREDIR} != /usr/share ]; then
|
||||||
for f in lib.*; do
|
for f in lib.*; do
|
||||||
if [ $BUILD != apple ]; then
|
case $f in
|
||||||
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/shorewall/$f
|
*installer)
|
||||||
else
|
;;
|
||||||
eval sed -i \'\' -e \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/shorewall/$f
|
*)
|
||||||
fi
|
if [ $BUILD != apple ]; then
|
||||||
|
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/shorewall/$f
|
||||||
|
else
|
||||||
|
eval sed -i \'\' -e \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/shorewall/$f
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
#
|
#
|
||||||
# Report Success
|
# Report Success
|
||||||
#
|
#
|
||||||
echo "Shorewall Core Version $VERSION Installed"
|
echo "$Product Version $VERSION Installed"
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#
|
#
|
||||||
# Shorewall 5.0 -- /usr/share/shorewall/lib.base
|
# Shorewall 5.2 -- /usr/share/shorewall/lib.base
|
||||||
#
|
#
|
||||||
# (c) 1999-2015 - Tom Eastep (teastep@shorewall.net)
|
# (c) 1999-2017 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -20,412 +20,22 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
# This library contains the code common to all Shorewall components except the
|
# This library is a compatibility wrapper around lib.core.
|
||||||
# generated scripts.
|
|
||||||
#
|
#
|
||||||
|
|
||||||
SHOREWALL_LIBVERSION=40509
|
if [ -z "$PRODUCT" ]; then
|
||||||
|
|
||||||
[ -n "${g_program:=shorewall}" ]
|
|
||||||
|
|
||||||
if [ -z "$g_readrc" ]; then
|
|
||||||
#
|
#
|
||||||
# This is modified by the installer when ${SHAREDIR} != /usr/share
|
# This is modified by the installer when ${SHAREDIR} != /usr/share
|
||||||
#
|
#
|
||||||
. /usr/share/shorewall/shorewallrc
|
. /usr/share/shorewall/shorewallrc
|
||||||
|
|
||||||
g_sharedir="$SHAREDIR"/$g_program
|
g_basedir=${SHAREDIR}/shorewall
|
||||||
g_confdir="$CONFDIR"/$g_program
|
|
||||||
g_readrc=1
|
if [ -z "$SHOREWALL_LIBVERSION" ]; then
|
||||||
|
. ${g_basedir}/lib.core
|
||||||
|
fi
|
||||||
|
|
||||||
|
set_default_product
|
||||||
|
|
||||||
|
setup_product_environment
|
||||||
fi
|
fi
|
||||||
|
|
||||||
g_basedir=${SHAREDIR}/shorewall
|
|
||||||
|
|
||||||
case $g_program in
|
|
||||||
shorewall)
|
|
||||||
g_product="Shorewall"
|
|
||||||
g_family=4
|
|
||||||
g_tool=iptables
|
|
||||||
g_lite=
|
|
||||||
;;
|
|
||||||
shorewall6)
|
|
||||||
g_product="Shorewall6"
|
|
||||||
g_family=6
|
|
||||||
g_tool=ip6tables
|
|
||||||
g_lite=
|
|
||||||
;;
|
|
||||||
shorewall-lite)
|
|
||||||
g_product="Shorewall Lite"
|
|
||||||
g_family=4
|
|
||||||
g_tool=iptables
|
|
||||||
g_lite=Yes
|
|
||||||
;;
|
|
||||||
shorewall6-lite)
|
|
||||||
g_product="Shorewall6 Lite"
|
|
||||||
g_family=6
|
|
||||||
g_tool=ip6tables
|
|
||||||
g_lite=Yes
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -z "${VARLIB}" ]; then
|
|
||||||
VARLIB=${VARDIR}
|
|
||||||
VARDIR=${VARLIB}/$g_program
|
|
||||||
elif [ -z "${VARDIR}" ]; then
|
|
||||||
VARDIR="${VARLIB}/${PRODUCT}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Fatal Error
|
|
||||||
#
|
|
||||||
fatal_error() # $@ = Message
|
|
||||||
{
|
|
||||||
echo " ERROR: $@" >&2
|
|
||||||
exit 2
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Not configured Error
|
|
||||||
#
|
|
||||||
not_configured_error() # $@ = Message
|
|
||||||
{
|
|
||||||
echo " ERROR: $@" >&2
|
|
||||||
exit 6
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Conditionally produce message
|
|
||||||
#
|
|
||||||
progress_message() # $* = Message
|
|
||||||
{
|
|
||||||
local timestamp
|
|
||||||
timestamp=
|
|
||||||
|
|
||||||
if [ $VERBOSITY -gt 1 ]; then
|
|
||||||
[ -n "$g_timestamp" ] && timestamp="$(date +%H:%M:%S) "
|
|
||||||
echo "${timestamp}$@"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
progress_message2() # $* = Message
|
|
||||||
{
|
|
||||||
local timestamp
|
|
||||||
timestamp=
|
|
||||||
|
|
||||||
if [ $VERBOSITY -gt 0 ]; then
|
|
||||||
[ -n "$g_timestamp" ] && timestamp="$(date +%H:%M:%S) "
|
|
||||||
echo "${timestamp}$@"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
progress_message3() # $* = Message
|
|
||||||
{
|
|
||||||
local timestamp
|
|
||||||
timestamp=
|
|
||||||
|
|
||||||
if [ $VERBOSITY -ge 0 ]; then
|
|
||||||
[ -n "$g_timestamp" ] && timestamp="$(date +%H:%M:%S) "
|
|
||||||
echo "${timestamp}$@"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Undo the effect of 'separate_list()'
|
|
||||||
#
|
|
||||||
combine_list()
|
|
||||||
{
|
|
||||||
local f
|
|
||||||
local o
|
|
||||||
o=
|
|
||||||
|
|
||||||
for f in $* ; do
|
|
||||||
o="${o:+$o,}$f"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo $o
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Validate an IP address
|
|
||||||
#
|
|
||||||
valid_address() {
|
|
||||||
local x
|
|
||||||
local y
|
|
||||||
local ifs
|
|
||||||
ifs=$IFS
|
|
||||||
|
|
||||||
IFS=.
|
|
||||||
|
|
||||||
for x in $1; do
|
|
||||||
case $x in
|
|
||||||
[0-9]|[0-9][0-9]|[1-2][0-9][0-9])
|
|
||||||
[ $x -lt 256 ] || { IFS=$ifs; return 2; }
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
IFS=$ifs
|
|
||||||
return 2
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
IFS=$ifs
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Miserable Hack to work around broken BusyBox ash in OpenWRT
|
|
||||||
#
|
|
||||||
addr_comp() {
|
|
||||||
test $(bc <<EOF
|
|
||||||
$1 > $2
|
|
||||||
EOF
|
|
||||||
) -eq 1
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Enumerate the members of an IP range -- When using a shell supporting only
|
|
||||||
# 32-bit signed arithmetic, the range cannot span 128.0.0.0.
|
|
||||||
#
|
|
||||||
# Comes in two flavors:
|
|
||||||
#
|
|
||||||
# ip_range() - produces a mimimal list of network/host addresses that spans
|
|
||||||
# the range.
|
|
||||||
#
|
|
||||||
# ip_range_explicit() - explicitly enumerates the range.
|
|
||||||
#
|
|
||||||
ip_range() {
|
|
||||||
local first
|
|
||||||
local last
|
|
||||||
local l
|
|
||||||
local x
|
|
||||||
local y
|
|
||||||
local z
|
|
||||||
local vlsm
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
!*)
|
|
||||||
#
|
|
||||||
# Let iptables complain if it's a range
|
|
||||||
#
|
|
||||||
echo $1
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
[0-9]*.*.*.*-*.*.*.*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo $1
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
first=$(decodeaddr ${1%-*})
|
|
||||||
last=$(decodeaddr ${1#*-})
|
|
||||||
|
|
||||||
if addr_comp $first $last; then
|
|
||||||
fatal_error "Invalid IP address range: $1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
l=$(( $last + 1 ))
|
|
||||||
|
|
||||||
while addr_comp $l $first; do
|
|
||||||
vlsm=
|
|
||||||
x=31
|
|
||||||
y=2
|
|
||||||
z=1
|
|
||||||
|
|
||||||
while [ $(( $first % $y )) -eq 0 ] && ! addr_comp $(( $first + $y )) $l; do
|
|
||||||
vlsm=/$x
|
|
||||||
x=$(( $x - 1 ))
|
|
||||||
z=$y
|
|
||||||
y=$(( $y * 2 ))
|
|
||||||
done
|
|
||||||
|
|
||||||
echo $(encodeaddr $first)$vlsm
|
|
||||||
first=$(($first + $z))
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
ip_range_explicit() {
|
|
||||||
local first
|
|
||||||
local last
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
[0-9]*.*.*.*-*.*.*.*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo $1
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
first=$(decodeaddr ${1%-*})
|
|
||||||
last=$(decodeaddr ${1#*-})
|
|
||||||
|
|
||||||
if addr_comp $first $last; then
|
|
||||||
fatal_error "Invalid IP address range: $1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
while ! addr_comp $first $last; do
|
|
||||||
echo $(encodeaddr $first)
|
|
||||||
first=$(($first + 1))
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
[ -z "$LEFTSHIFT" ] && . ${g_basedir}/lib.common
|
|
||||||
|
|
||||||
#
|
|
||||||
# Netmask to VLSM
|
|
||||||
#
|
|
||||||
ip_vlsm() {
|
|
||||||
local mask
|
|
||||||
mask=$(decodeaddr $1)
|
|
||||||
local vlsm
|
|
||||||
vlsm=0
|
|
||||||
local x
|
|
||||||
x=$(( 128 << 24 )) # 0x80000000
|
|
||||||
|
|
||||||
while [ $(( $x & $mask )) -ne 0 ]; do
|
|
||||||
[ $mask -eq $x ] && mask=0 || mask=$(( $mask $LEFTSHIFT 1 )) # Not all shells shift 0x80000000 left properly.
|
|
||||||
vlsm=$(($vlsm + 1))
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $(( $mask & 2147483647 )) -ne 0 ]; then # 2147483647 = 0x7fffffff
|
|
||||||
echo "Invalid net mask: $1" >&2
|
|
||||||
else
|
|
||||||
echo $vlsm
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Set default config path
|
|
||||||
#
|
|
||||||
ensure_config_path() {
|
|
||||||
local F
|
|
||||||
F=${g_sharedir}/configpath
|
|
||||||
if [ -z "$CONFIG_PATH" ]; then
|
|
||||||
[ -f $F ] || { echo " ERROR: $F does not exist"; exit 2; }
|
|
||||||
. $F
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$g_shorewalldir" ]; then
|
|
||||||
[ "${CONFIG_PATH%%:*}" = "$g_shorewalldir" ] || CONFIG_PATH=$g_shorewalldir:$CONFIG_PATH
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Get fully-qualified name of file
|
|
||||||
#
|
|
||||||
resolve_file() # $1 = file name
|
|
||||||
{
|
|
||||||
local pwd
|
|
||||||
pwd=$PWD
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
/*)
|
|
||||||
echo $1
|
|
||||||
;;
|
|
||||||
.)
|
|
||||||
echo $pwd
|
|
||||||
;;
|
|
||||||
./*)
|
|
||||||
echo ${pwd}${1#.}
|
|
||||||
;;
|
|
||||||
..)
|
|
||||||
cd ..
|
|
||||||
echo $PWD
|
|
||||||
cd $pwd
|
|
||||||
;;
|
|
||||||
../*)
|
|
||||||
cd ..
|
|
||||||
resolve_file ${1#../}
|
|
||||||
cd $pwd
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo $pwd/$1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Determine how to do "echo -e"
|
|
||||||
#
|
|
||||||
|
|
||||||
find_echo() {
|
|
||||||
local result
|
|
||||||
|
|
||||||
result=$(echo "a\tb")
|
|
||||||
[ ${#result} -eq 3 ] && { echo echo; return; }
|
|
||||||
|
|
||||||
result=$(echo -e "a\tb")
|
|
||||||
[ ${#result} -eq 3 ] && { echo "echo -e"; return; }
|
|
||||||
|
|
||||||
result=$(which echo)
|
|
||||||
[ -n "$result" ] && { echo "$result -e"; return; }
|
|
||||||
|
|
||||||
echo echo
|
|
||||||
}
|
|
||||||
|
|
||||||
# Determine which version of mktemp is present (if any) and set MKTEMP accortingly:
|
|
||||||
#
|
|
||||||
# None - No mktemp
|
|
||||||
# BSD - BSD mktemp (Mandrake)
|
|
||||||
# STD - mktemp.org mktemp
|
|
||||||
#
|
|
||||||
find_mktemp() {
|
|
||||||
local mktemp
|
|
||||||
mktemp=`mywhich mktemp 2> /dev/null`
|
|
||||||
|
|
||||||
if [ -n "$mktemp" ]; then
|
|
||||||
if qt mktemp -V ; then
|
|
||||||
MKTEMP=STD
|
|
||||||
else
|
|
||||||
MKTEMP=BSD
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
MKTEMP=None
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# create a temporary file. If a directory name is passed, the file will be created in
|
|
||||||
# that directory. Otherwise, it will be created in a temporary directory.
|
|
||||||
#
|
|
||||||
mktempfile() {
|
|
||||||
|
|
||||||
[ -z "$MKTEMP" ] && find_mktemp
|
|
||||||
|
|
||||||
if [ $# -gt 0 ]; then
|
|
||||||
case "$MKTEMP" in
|
|
||||||
BSD)
|
|
||||||
mktemp $1/shorewall.XXXXXX
|
|
||||||
;;
|
|
||||||
STD)
|
|
||||||
mktemp -p $1 shorewall.XXXXXX
|
|
||||||
;;
|
|
||||||
None)
|
|
||||||
> $1/shorewall-$$ && echo $1/shorewall-$$
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
error_message "ERROR:Internal error in mktempfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
case "$MKTEMP" in
|
|
||||||
BSD)
|
|
||||||
mktemp ${TMPDIR:-/tmp}/shorewall.XXXXXX
|
|
||||||
;;
|
|
||||||
STD)
|
|
||||||
mktemp -t shorewall.XXXXXX
|
|
||||||
;;
|
|
||||||
None)
|
|
||||||
rm -f ${TMPDIR:-/tmp}/shorewall-$$
|
|
||||||
> ${TMPDIR:-}/shorewall-$$ && echo ${TMPDIR:-/tmp}/shorewall-$$
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
error_message "ERROR:Internal error in mktempfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,9 @@
|
|||||||
#
|
#
|
||||||
# Shorewall 5.0 -- /usr/share/shorewall/lib.common.
|
# Shorewall 5.2 -- /usr/share/shorewall/lib.common
|
||||||
#
|
#
|
||||||
# (c) 2010-2015 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2010-2018 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -55,13 +55,13 @@ startup_error() # $* = Error Message
|
|||||||
|
|
||||||
case $COMMAND in
|
case $COMMAND in
|
||||||
start)
|
start)
|
||||||
mylogger kern.err "ERROR:$g_product start failed:Firewall state not changed"
|
mylogger daemon.err "ERROR:$g_product start failed:Firewall state not changed"
|
||||||
;;
|
;;
|
||||||
restart)
|
restart)
|
||||||
mylogger kern.err "ERROR:$g_product restart failed:Firewall state not changed"
|
mylogger daemon.err "ERROR:$g_product restart failed:Firewall state not changed"
|
||||||
;;
|
;;
|
||||||
restore)
|
restore)
|
||||||
mylogger kern.err "ERROR:$g_product restore failed:Firewall state not changed"
|
mylogger daemon.err "ERROR:$g_product restore failed:Firewall state not changed"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -92,18 +92,20 @@ startup_error() # $* = Error Message
|
|||||||
#
|
#
|
||||||
run_it() {
|
run_it() {
|
||||||
local script
|
local script
|
||||||
local options
|
local options='-'
|
||||||
|
|
||||||
export VARDIR
|
export VARDIR
|
||||||
|
|
||||||
script=$1
|
script=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
if [ x$1 = xtrace -o x$1 = xdebug ]; then
|
|
||||||
options="$1 -"
|
if [ "$g_debugging" = debug ]; then
|
||||||
shift;
|
options='-D'
|
||||||
|
elif [ "$g_debugging" = trace ]; then
|
||||||
|
options='-T'
|
||||||
else
|
else
|
||||||
options='-'
|
options='-';
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -n "$g_noroutes" ] && options=${options}n
|
[ -n "$g_noroutes" ] && options=${options}n
|
||||||
@ -269,53 +271,48 @@ loadmodule() # $1 = module name, $2 - * arguments
|
|||||||
{
|
{
|
||||||
local modulename
|
local modulename
|
||||||
modulename=$1
|
modulename=$1
|
||||||
|
shift
|
||||||
|
local moduleoptions
|
||||||
|
moduleoptions=$*
|
||||||
local modulefile
|
local modulefile
|
||||||
local suffix
|
local suffix
|
||||||
|
|
||||||
if [ -d /sys/module/ ]; then
|
if [ -d /sys/module/ ]; then
|
||||||
if ! list_search $modulename $DONT_LOAD; then
|
if ! list_search $modulename $DONT_LOAD; then
|
||||||
if [ ! -d /sys/module/$modulename ]; then
|
if [ ! -d /sys/module/$modulename ]; then
|
||||||
shift
|
case $moduleloader in
|
||||||
|
insmod)
|
||||||
for suffix in $MODULE_SUFFIX ; do
|
for directory in $moduledirectories; do
|
||||||
for directory in $moduledirectories; do
|
for modulefile in $directory/${modulename}.*; do
|
||||||
modulefile=$directory/${modulename}.${suffix}
|
if [ -f $modulefile ]; then
|
||||||
|
insmod $modulefile $moduleoptions
|
||||||
if [ -f $modulefile ]; then
|
return
|
||||||
case $moduleloader in
|
fi
|
||||||
insmod)
|
done
|
||||||
insmod $modulefile $*
|
done
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
modprobe $modulename $*
|
modprobe -q $modulename $moduleoptions
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
elif ! list_search $modulename $DONT_LOAD $MODULES; then
|
elif ! list_search $modulename $DONT_LOAD $MODULES; then
|
||||||
shift
|
case $moduleloader in
|
||||||
|
insmod)
|
||||||
for suffix in $MODULE_SUFFIX ; do
|
for directory in $moduledirectories; do
|
||||||
for directory in $moduledirectories; do
|
for modulefile in $directory/${modulename}.*; do
|
||||||
modulefile=$directory/${modulename}.${suffix}
|
if [ -f $modulefile ]; then
|
||||||
|
insmod $modulefile $moduleoptions
|
||||||
if [ -f $modulefile ]; then
|
return
|
||||||
case $moduleloader in
|
fi
|
||||||
insmod)
|
done
|
||||||
insmod $modulefile $*
|
done
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
modprobe $modulename $*
|
modprobe -q $modulename $moduleoptions
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -338,8 +335,6 @@ reload_kernel_modules() {
|
|||||||
moduleloader=insmod
|
moduleloader=insmod
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -n "${MODULE_SUFFIX:=ko ko.gz ko.xz o o.gz o.xz gz xz}" ]
|
|
||||||
|
|
||||||
if [ -n "$MODULESDIR" ]; then
|
if [ -n "$MODULESDIR" ]; then
|
||||||
case "$MODULESDIR" in
|
case "$MODULESDIR" in
|
||||||
+*)
|
+*)
|
||||||
@ -394,8 +389,6 @@ load_kernel_modules() # $1 = Yes, if we are to save moduleinfo in $VARDIR
|
|||||||
moduleloader=insmod
|
moduleloader=insmod
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -n "${MODULE_SUFFIX:=o gz xz ko o.gz o.xz ko.gz ko.xz}" ]
|
|
||||||
|
|
||||||
if [ -n "$MODULESDIR" ]; then
|
if [ -n "$MODULESDIR" ]; then
|
||||||
case "$MODULESDIR" in
|
case "$MODULESDIR" in
|
||||||
+*)
|
+*)
|
||||||
@ -420,7 +413,7 @@ load_kernel_modules() # $1 = Yes, if we are to save moduleinfo in $VARDIR
|
|||||||
[ -d $directory ] && moduledirectories="$moduledirectories $directory"
|
[ -d $directory ] && moduledirectories="$moduledirectories $directory"
|
||||||
done
|
done
|
||||||
|
|
||||||
[ -n "$LOAD_HELPERS_ONLY" ] && modules=$(find_file helpers) || modules=$(find_file modules)
|
modules=$(find_file helpers)
|
||||||
|
|
||||||
if [ -f $modules -a -n "$moduledirectories" ]; then
|
if [ -f $modules -a -n "$moduledirectories" ]; then
|
||||||
[ -d /sys/module/ ] || MODULES=$(lsmod | cut -d ' ' -f1)
|
[ -d /sys/module/ ] || MODULES=$(lsmod | cut -d ' ' -f1)
|
||||||
@ -428,7 +421,7 @@ load_kernel_modules() # $1 = Yes, if we are to save moduleinfo in $VARDIR
|
|||||||
. $modules
|
. $modules
|
||||||
if [ $savemoduleinfo = Yes ]; then
|
if [ $savemoduleinfo = Yes ]; then
|
||||||
[ -d ${VARDIR} ] || mkdir -p ${VARDIR}
|
[ -d ${VARDIR} ] || mkdir -p ${VARDIR}
|
||||||
echo MODULESDIR="$MODULESDIR" > ${VARDIR}/.modulesdir
|
echo MODULESDIR=\"$MODULESDIR\" > ${VARDIR}/.modulesdir
|
||||||
cp -f $modules ${VARDIR}/.modules
|
cp -f $modules ${VARDIR}/.modules
|
||||||
fi
|
fi
|
||||||
elif [ $savemoduleinfo = Yes ]; then
|
elif [ $savemoduleinfo = Yes ]; then
|
||||||
@ -510,7 +503,7 @@ ip_network() {
|
|||||||
|
|
||||||
#
|
#
|
||||||
# The following hack is supplied to compensate for the fact that many of
|
# The following hack is supplied to compensate for the fact that many of
|
||||||
# the popular light-weight Bourne shell derivatives don't support XOR ("^").
|
# the popular light-weight Bourne shell derivatives do not support XOR ("^").
|
||||||
#
|
#
|
||||||
ip_broadcast() {
|
ip_broadcast() {
|
||||||
local x
|
local x
|
||||||
@ -745,8 +738,8 @@ truncate() # $1 = length
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Call this function to assert mutual exclusion with Shorewall. If you invoke the
|
# Call this function to assert mutual exclusion with Shorewall. If you invoke the
|
||||||
# /sbin/shorewall program while holding mutual exclusion, you should pass "nolock" as
|
# /sbin/shorewall program while holding mutual exclusion, you should pass -N as
|
||||||
# the first argument. Example "shorewall nolock refresh"
|
# the first argument. Example "shorewall -N refresh"
|
||||||
#
|
#
|
||||||
# This function uses the lockfile utility from procmail if it exists.
|
# This function uses the lockfile utility from procmail if it exists.
|
||||||
# Otherwise, it uses a somewhat race-prone algorithm to attempt to simulate the
|
# Otherwise, it uses a somewhat race-prone algorithm to attempt to simulate the
|
||||||
@ -760,36 +753,44 @@ mutex_on()
|
|||||||
lockf=${LOCKFILE:=${VARDIR}/lock}
|
lockf=${LOCKFILE:=${VARDIR}/lock}
|
||||||
local lockpid
|
local lockpid
|
||||||
local lockd
|
local lockd
|
||||||
|
local lockbin
|
||||||
|
local openwrt
|
||||||
|
|
||||||
MUTEX_TIMEOUT=${MUTEX_TIMEOUT:-60}
|
MUTEX_TIMEOUT=${MUTEX_TIMEOUT:-60}
|
||||||
|
|
||||||
if [ $MUTEX_TIMEOUT -gt 0 ]; then
|
if [ -z "$g_havemutex" -a $MUTEX_TIMEOUT -gt 0 ]; then
|
||||||
|
|
||||||
lockd=$(dirname $LOCKFILE)
|
lockd=$(dirname $LOCKFILE)
|
||||||
|
|
||||||
[ -d "$lockd" ] || mkdir -p "$lockd"
|
[ -d "$lockd" ] || mkdir -p "$lockd"
|
||||||
|
|
||||||
|
lockbin=$(mywhich lock)
|
||||||
|
[ -n "$lockbin" -a -h "$lockbin" ] && openwrt=Yes
|
||||||
|
|
||||||
if [ -f $lockf ]; then
|
if [ -f $lockf ]; then
|
||||||
lockpid=`cat ${lockf} 2> /dev/null`
|
lockpid=`cat ${lockf} 2> /dev/null`
|
||||||
if [ -z "$lockpid" -o $lockpid = 0 ]; then
|
if [ -z "$lockpid" ] || [ $lockpid = 0 ]; then
|
||||||
rm -f ${lockf}
|
rm -f ${lockf}
|
||||||
error_message "WARNING: Stale lockfile ${lockf} removed"
|
error_message "WARNING: Stale lockfile ${lockf} removed"
|
||||||
elif [ $lockpid -eq $$ ]; then
|
elif [ -z "$openwrt" ]; then
|
||||||
return 0
|
if [ $lockpid -eq $$ ]; then
|
||||||
elif ! ps | grep -v grep | qt grep ${lockpid}; then
|
fatal_error "Mutex_on confusion"
|
||||||
rm -f ${lockf}
|
elif ! qt ps --pid ${lockpid}; then
|
||||||
error_message "WARNING: Stale lockfile ${lockf} from pid ${lockpid} removed"
|
rm -f ${lockf}
|
||||||
|
error_message "WARNING: Stale lockfile ${lockf} from pid ${lockpid} removed"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if qt mywhich lockfile; then
|
if [ -n "$openwrt" ]; then
|
||||||
lockfile -${MUTEX_TIMEOUT} -r1 ${lockf}
|
lock ${lockf} || fatal_error "Can't lock ${lockf}"
|
||||||
|
g_havemutex="lock -u ${lockf}"
|
||||||
|
elif qt mywhich lockfile; then
|
||||||
|
lockfile -${MUTEX_TIMEOUT} -r1 ${lockf} || fatal_error "Can't lock ${lockf}"
|
||||||
|
g_havemutex="rm -f ${lockf}"
|
||||||
chmod u+w ${lockf}
|
chmod u+w ${lockf}
|
||||||
echo $$ > ${lockf}
|
echo $$ > ${lockf}
|
||||||
chmod u-w ${lockf}
|
chmod u-w ${lockf}
|
||||||
elif qt mywhich lock; then
|
|
||||||
lock ${lockf}
|
|
||||||
chmod u=r ${lockf}
|
|
||||||
else
|
else
|
||||||
while [ -f ${lockf} -a ${try} -lt ${MUTEX_TIMEOUT} ] ; do
|
while [ -f ${lockf} -a ${try} -lt ${MUTEX_TIMEOUT} ] ; do
|
||||||
sleep 1
|
sleep 1
|
||||||
@ -799,10 +800,15 @@ mutex_on()
|
|||||||
if [ ${try} -lt ${MUTEX_TIMEOUT} ] ; then
|
if [ ${try} -lt ${MUTEX_TIMEOUT} ] ; then
|
||||||
# Create the lockfile
|
# Create the lockfile
|
||||||
echo $$ > ${lockf}
|
echo $$ > ${lockf}
|
||||||
|
g_havemutex="rm -f ${lockf}"
|
||||||
else
|
else
|
||||||
echo "Giving up on lock file ${lockf}" >&2
|
echo "Giving up on lock file ${lockf}" >&2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$g_havemutex" ]; then
|
||||||
|
trap mutex_off EXIT
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -811,7 +817,10 @@ mutex_on()
|
|||||||
#
|
#
|
||||||
mutex_off()
|
mutex_off()
|
||||||
{
|
{
|
||||||
[ -f ${CONFDIR}/rc.common ] && lock -u ${LOCKFILE:=${VARDIR}/lock}
|
if [ -n "$g_havemutex" ]; then
|
||||||
rm -f ${LOCKFILE:=${VARDIR}/lock}
|
eval $g_havemutex
|
||||||
|
g_havemutex=
|
||||||
|
trap '' exit
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
447
Shorewall-core/lib.core
Normal file
447
Shorewall-core/lib.core
Normal file
@ -0,0 +1,447 @@
|
|||||||
|
#
|
||||||
|
# Shorewall 5.2 -- /usr/share/shorewall/lib.core
|
||||||
|
#
|
||||||
|
# (c) 1999-2017 - Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is part of Shorewall.
|
||||||
|
#
|
||||||
|
# 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 2 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/>.
|
||||||
|
#
|
||||||
|
# This library contains the code common to all Shorewall components except the
|
||||||
|
# generated scripts.
|
||||||
|
#
|
||||||
|
|
||||||
|
SHOREWALL_LIBVERSION=50108
|
||||||
|
|
||||||
|
#
|
||||||
|
# Fatal Error
|
||||||
|
#
|
||||||
|
fatal_error() # $@ = Message
|
||||||
|
{
|
||||||
|
echo " ERROR: $@" >&2
|
||||||
|
exit 2
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_product_environment() { # $1 = if non-empty, source shorewallrc again now that we have the correct product
|
||||||
|
g_basedir=${SHAREDIR}/shorewall
|
||||||
|
|
||||||
|
g_sharedir="$SHAREDIR"/$PRODUCT
|
||||||
|
g_confdir="$CONFDIR"/$PRODUCT
|
||||||
|
|
||||||
|
case $PRODUCT in
|
||||||
|
shorewall)
|
||||||
|
g_product="Shorewall"
|
||||||
|
g_family=4
|
||||||
|
g_tool=iptables
|
||||||
|
g_lite=
|
||||||
|
;;
|
||||||
|
shorewall6)
|
||||||
|
g_product="Shorewall6"
|
||||||
|
g_family=6
|
||||||
|
g_tool=ip6tables
|
||||||
|
g_lite=
|
||||||
|
;;
|
||||||
|
shorewall-lite)
|
||||||
|
g_product="Shorewall Lite"
|
||||||
|
g_family=4
|
||||||
|
g_tool=iptables
|
||||||
|
g_lite=Yes
|
||||||
|
;;
|
||||||
|
shorewall6-lite)
|
||||||
|
g_product="Shorewall6 Lite"
|
||||||
|
g_family=6
|
||||||
|
g_tool=ip6tables
|
||||||
|
g_lite=Yes
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
fatal_error "Unknown PRODUCT ($PRODUCT)"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
[ -f ${SHAREDIR}/${PRODUCT}/version ] || fatal_error "$g_product does not appear to be installed on this system"
|
||||||
|
#
|
||||||
|
# We need to do this again, now that we have the correct product
|
||||||
|
#
|
||||||
|
[ -n "$1" ] && . ${g_basedir}/shorewallrc
|
||||||
|
|
||||||
|
if [ -z "${VARLIB}" ]; then
|
||||||
|
VARLIB=${VARDIR}
|
||||||
|
VARDIR=${VARLIB}/${PRODUCT}
|
||||||
|
elif [ -z "${VARDIR}" ]; then
|
||||||
|
VARDIR="${VARLIB}/${PRODUCT}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_default_product() {
|
||||||
|
case $(basename $0) in
|
||||||
|
shorewall6)
|
||||||
|
PRODUCT=shorewall6
|
||||||
|
;;
|
||||||
|
shorewall4)
|
||||||
|
PRODUCT=shorewall
|
||||||
|
;;
|
||||||
|
shorewall-lite)
|
||||||
|
PRODUCT=shorewall-lite
|
||||||
|
;;
|
||||||
|
shorewall6-lite)
|
||||||
|
PRODUCT=shorewall6-lite
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [ -f ${g_basedir}/version ]; then
|
||||||
|
PRODUCT=shorewall
|
||||||
|
elif [ -f ${SHAREDIR}/shorewall-lite/version ]; then
|
||||||
|
PRODUCT=shorewall-lite
|
||||||
|
elif [ -f ${SHAREDIR}/shorewall6-lite/version ]; then
|
||||||
|
PRODUCT=shorewall6-lite
|
||||||
|
else
|
||||||
|
fatal_error "No Shorewall firewall product is installed"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Not configured Error
|
||||||
|
#
|
||||||
|
not_configured_error() # $@ = Message
|
||||||
|
{
|
||||||
|
echo " ERROR: $@" >&2
|
||||||
|
exit 6
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Conditionally produce message
|
||||||
|
#
|
||||||
|
progress_message() # $* = Message
|
||||||
|
{
|
||||||
|
local timestamp
|
||||||
|
timestamp=
|
||||||
|
|
||||||
|
if [ $VERBOSITY -gt 1 ]; then
|
||||||
|
[ -n "$g_timestamp" ] && timestamp="$(date +%H:%M:%S) "
|
||||||
|
echo "${timestamp}$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
progress_message2() # $* = Message
|
||||||
|
{
|
||||||
|
local timestamp
|
||||||
|
timestamp=
|
||||||
|
|
||||||
|
if [ $VERBOSITY -gt 0 ]; then
|
||||||
|
[ -n "$g_timestamp" ] && timestamp="$(date +%H:%M:%S) "
|
||||||
|
echo "${timestamp}$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
progress_message3() # $* = Message
|
||||||
|
{
|
||||||
|
local timestamp
|
||||||
|
timestamp=
|
||||||
|
|
||||||
|
if [ $VERBOSITY -ge 0 ]; then
|
||||||
|
[ -n "$g_timestamp" ] && timestamp="$(date +%H:%M:%S) "
|
||||||
|
echo "${timestamp}$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Undo the effect of 'separate_list()'
|
||||||
|
#
|
||||||
|
combine_list()
|
||||||
|
{
|
||||||
|
local f
|
||||||
|
local o
|
||||||
|
o=
|
||||||
|
|
||||||
|
for f in $* ; do
|
||||||
|
o="${o:+$o,}$f"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo $o
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Validate an IP address
|
||||||
|
#
|
||||||
|
valid_address() {
|
||||||
|
local x
|
||||||
|
local y
|
||||||
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
|
|
||||||
|
IFS=.
|
||||||
|
|
||||||
|
for x in $1; do
|
||||||
|
case $x in
|
||||||
|
[0-9]|[0-9][0-9]|[1-2][0-9][0-9])
|
||||||
|
[ $x -lt 256 ] || { IFS=$ifs; return 2; }
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
IFS=$ifs
|
||||||
|
return 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
IFS=$ifs
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Miserable Hack to work around broken BusyBox ash in OpenWRT
|
||||||
|
#
|
||||||
|
addr_comp() {
|
||||||
|
test $(bc <<EOF
|
||||||
|
$1 > $2
|
||||||
|
EOF
|
||||||
|
) -eq 1
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enumerate the members of an IP range -- When using a shell supporting only
|
||||||
|
# 32-bit signed arithmetic, the range cannot span 128.0.0.0.
|
||||||
|
#
|
||||||
|
# Comes in two flavors:
|
||||||
|
#
|
||||||
|
# ip_range() - produces a mimimal list of network/host addresses that spans
|
||||||
|
# the range.
|
||||||
|
#
|
||||||
|
# ip_range_explicit() - explicitly enumerates the range.
|
||||||
|
#
|
||||||
|
ip_range() {
|
||||||
|
local first
|
||||||
|
local last
|
||||||
|
local l
|
||||||
|
local x
|
||||||
|
local y
|
||||||
|
local z
|
||||||
|
local vlsm
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
!*)
|
||||||
|
#
|
||||||
|
# Let iptables complain if it's a range
|
||||||
|
#
|
||||||
|
echo $1
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
[0-9]*.*.*.*-*.*.*.*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $1
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
first=$(decodeaddr ${1%-*})
|
||||||
|
last=$(decodeaddr ${1#*-})
|
||||||
|
|
||||||
|
if addr_comp $first $last; then
|
||||||
|
fatal_error "Invalid IP address range: $1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
l=$(( $last + 1 ))
|
||||||
|
|
||||||
|
while addr_comp $l $first; do
|
||||||
|
vlsm=
|
||||||
|
x=31
|
||||||
|
y=2
|
||||||
|
z=1
|
||||||
|
|
||||||
|
while [ $(( $first % $y )) -eq 0 ] && ! addr_comp $(( $first + $y )) $l; do
|
||||||
|
vlsm=/$x
|
||||||
|
x=$(( $x - 1 ))
|
||||||
|
z=$y
|
||||||
|
y=$(( $y * 2 ))
|
||||||
|
done
|
||||||
|
|
||||||
|
echo $(encodeaddr $first)$vlsm
|
||||||
|
first=$(($first + $z))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
ip_range_explicit() {
|
||||||
|
local first
|
||||||
|
local last
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
[0-9]*.*.*.*-*.*.*.*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $1
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
first=$(decodeaddr ${1%-*})
|
||||||
|
last=$(decodeaddr ${1#*-})
|
||||||
|
|
||||||
|
if addr_comp $first $last; then
|
||||||
|
fatal_error "Invalid IP address range: $1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
while ! addr_comp $first $last; do
|
||||||
|
echo $(encodeaddr $first)
|
||||||
|
first=$(($first + 1))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -z "$LEFTSHIFT" ] && . ${g_basedir}/lib.common
|
||||||
|
|
||||||
|
#
|
||||||
|
# Netmask to VLSM
|
||||||
|
#
|
||||||
|
ip_vlsm() {
|
||||||
|
local mask
|
||||||
|
mask=$(decodeaddr $1)
|
||||||
|
local vlsm
|
||||||
|
vlsm=0
|
||||||
|
local x
|
||||||
|
x=$(( 128 << 24 )) # 0x80000000
|
||||||
|
|
||||||
|
while [ $(( $x & $mask )) -ne 0 ]; do
|
||||||
|
[ $mask -eq $x ] && mask=0 || mask=$(( $mask $LEFTSHIFT 1 )) # Not all shells shift 0x80000000 left properly.
|
||||||
|
vlsm=$(($vlsm + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $(( $mask & 2147483647 )) -ne 0 ]; then # 2147483647 = 0x7fffffff
|
||||||
|
echo "Invalid net mask: $1" >&2
|
||||||
|
else
|
||||||
|
echo $vlsm
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Set default config path
|
||||||
|
#
|
||||||
|
ensure_config_path() {
|
||||||
|
local F
|
||||||
|
F=${g_sharedir}/configpath
|
||||||
|
if [ -z "$CONFIG_PATH" ]; then
|
||||||
|
[ -f $F ] || { echo " ERROR: $F does not exist"; exit 2; }
|
||||||
|
. $F
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$g_shorewalldir" ] && [ "${CONFIG_PATH%%:*}" = "$g_shorewalldir" ];then
|
||||||
|
case $CONFIG_PATH in
|
||||||
|
:*)
|
||||||
|
CONFIG_PATH=${g_shorewalldir}${CONFIG_PATH}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
CONFIG_PATH=$g_shorewalldir:$CONFIG_PATH
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get fully-qualified name of file
|
||||||
|
#
|
||||||
|
resolve_file() # $1 = file name
|
||||||
|
{
|
||||||
|
local pwd
|
||||||
|
pwd=$PWD
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
/*)
|
||||||
|
echo $1
|
||||||
|
;;
|
||||||
|
.)
|
||||||
|
echo $pwd
|
||||||
|
;;
|
||||||
|
./*)
|
||||||
|
echo ${pwd}${1#.}
|
||||||
|
;;
|
||||||
|
..)
|
||||||
|
cd ..
|
||||||
|
echo $PWD
|
||||||
|
cd $pwd
|
||||||
|
;;
|
||||||
|
../*)
|
||||||
|
cd ..
|
||||||
|
resolve_file ${1#../}
|
||||||
|
cd $pwd
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $pwd/$1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Determine which version of mktemp is present (if any) and set MKTEMP accortingly:
|
||||||
|
#
|
||||||
|
# None - No mktemp
|
||||||
|
# BSD - BSD mktemp (Mandrake)
|
||||||
|
# STD - mktemp.org mktemp
|
||||||
|
#
|
||||||
|
find_mktemp() {
|
||||||
|
local mktemp
|
||||||
|
mktemp=`mywhich mktemp 2> /dev/null`
|
||||||
|
|
||||||
|
if [ -n "$mktemp" ]; then
|
||||||
|
if qt mktemp -V ; then
|
||||||
|
MKTEMP=STD
|
||||||
|
else
|
||||||
|
MKTEMP=BSD
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
MKTEMP=None
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# create a temporary file. If a directory name is passed, the file will be created in
|
||||||
|
# that directory. Otherwise, it will be created in a temporary directory.
|
||||||
|
#
|
||||||
|
mktempfile() {
|
||||||
|
|
||||||
|
[ -z "$MKTEMP" ] && find_mktemp
|
||||||
|
|
||||||
|
if [ $# -gt 0 ]; then
|
||||||
|
case "$MKTEMP" in
|
||||||
|
BSD)
|
||||||
|
mktemp $1/shorewall.XXXXXX
|
||||||
|
;;
|
||||||
|
STD)
|
||||||
|
mktemp -p $1 shorewall.XXXXXX
|
||||||
|
;;
|
||||||
|
None)
|
||||||
|
> $1/shorewall-$$ && echo $1/shorewall-$$
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
error_message "ERROR:Internal error in mktempfile"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
case "$MKTEMP" in
|
||||||
|
BSD)
|
||||||
|
mktemp ${TMPDIR:-/tmp}/shorewall.XXXXXX
|
||||||
|
;;
|
||||||
|
STD)
|
||||||
|
mktemp -t shorewall.XXXXXX
|
||||||
|
;;
|
||||||
|
None)
|
||||||
|
rm -f ${TMPDIR:-/tmp}/shorewall-$$
|
||||||
|
> ${TMPDIR:-}/shorewall-$$ && echo ${TMPDIR:-/tmp}/shorewall-$$
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
error_message "ERROR:Internal error in mktempfile"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
88
Shorewall-core/lib.installer
Normal file
88
Shorewall-core/lib.installer
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
#
|
||||||
|
# Shorewall 5.2 -- /usr/share/shorewall/lib.installer
|
||||||
|
#
|
||||||
|
# (c) 2017 - Tom Eastep (teastep@shorewall.net)
|
||||||
|
# (c) 2017 - Matt Darfeuille (matdarf@gmail.com)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is part of Shorewall.
|
||||||
|
#
|
||||||
|
# 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 2 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/>.
|
||||||
|
#
|
||||||
|
# The purpose of this library is to hold those functions used by the products installer.
|
||||||
|
#
|
||||||
|
#########################################################################################
|
||||||
|
|
||||||
|
fatal_error()
|
||||||
|
{
|
||||||
|
echo " ERROR: $@" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
split() {
|
||||||
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
|
IFS=:
|
||||||
|
set -- $1
|
||||||
|
echo $*
|
||||||
|
IFS=$ifs
|
||||||
|
}
|
||||||
|
|
||||||
|
qt()
|
||||||
|
{
|
||||||
|
"$@" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
mywhich() {
|
||||||
|
local dir
|
||||||
|
|
||||||
|
for dir in $(split $PATH); do
|
||||||
|
if [ -x $dir/$1 ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
delete_file() # $1 = file to delete
|
||||||
|
{
|
||||||
|
rm -f $1
|
||||||
|
}
|
||||||
|
|
||||||
|
require()
|
||||||
|
{
|
||||||
|
eval [ -n "\$$1" ] || fatal_error "Required option $1 not set"
|
||||||
|
}
|
||||||
|
|
||||||
|
make_directory() # $1 = directory , $2 = mode
|
||||||
|
{
|
||||||
|
mkdir $1
|
||||||
|
chmod $2 $1
|
||||||
|
[ -n "$OWNERSHIP" ] && chown $OWNERSHIP $1
|
||||||
|
}
|
||||||
|
|
||||||
|
make_parent_directory() # $1 = directory , $2 = mode
|
||||||
|
{
|
||||||
|
mkdir -p $1
|
||||||
|
chmod $2 $1
|
||||||
|
[ -n "$OWNERSHIP" ] && chown $OWNER:$GROUP $1
|
||||||
|
}
|
||||||
|
|
||||||
|
cant_autostart()
|
||||||
|
{
|
||||||
|
echo
|
||||||
|
echo "WARNING: Unable to configure $Product to start automatically at boot" >&2
|
||||||
|
}
|
105
Shorewall-core/lib.uninstaller
Normal file
105
Shorewall-core/lib.uninstaller
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
#
|
||||||
|
# Shorewall 5.2 -- /usr/share/shorewall/lib.installer
|
||||||
|
#
|
||||||
|
# (c) 2017 - Tom Eastep (teastep@shorewall.net)
|
||||||
|
# (c) 2017 - Matt Darfeuille (matdarf@gmail.com)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is part of Shorewall.
|
||||||
|
#
|
||||||
|
# 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 2 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/>.
|
||||||
|
#
|
||||||
|
# The purpose of this library is to hold those functions used by the products uninstaller.
|
||||||
|
#
|
||||||
|
#########################################################################################
|
||||||
|
|
||||||
|
fatal_error()
|
||||||
|
{
|
||||||
|
echo " ERROR: $@" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
split() {
|
||||||
|
local ifs
|
||||||
|
ifs=$IFS
|
||||||
|
IFS=:
|
||||||
|
set -- $1
|
||||||
|
echo $*
|
||||||
|
IFS=$ifs
|
||||||
|
}
|
||||||
|
|
||||||
|
qt()
|
||||||
|
{
|
||||||
|
"$@" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
mywhich() {
|
||||||
|
local dir
|
||||||
|
|
||||||
|
for dir in $(split $PATH); do
|
||||||
|
if [ -x $dir/$1 ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_file() # $1 = file to remove
|
||||||
|
{
|
||||||
|
if [ -n "$1" ] ; then
|
||||||
|
if [ -f $1 -o -h $1 ] ; then
|
||||||
|
rm -f $1
|
||||||
|
echo "$1 Removed"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_directory() # $1 = directory to remove
|
||||||
|
{
|
||||||
|
if [ -n "$1" ] ; then
|
||||||
|
if [ -d $1 ] ; then
|
||||||
|
rm -rf $1
|
||||||
|
echo "$1 Removed"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_file_with_wildcard() # $1 = file with wildcard to remove
|
||||||
|
{
|
||||||
|
if [ -n "$1" ] ; then
|
||||||
|
for f in $1; do
|
||||||
|
if [ -d $f ] ; then
|
||||||
|
rm -rf $f
|
||||||
|
echo "$f Removed"
|
||||||
|
elif [ -f $f -o -h $f ] ; then
|
||||||
|
rm -f $f
|
||||||
|
echo "$f Removed"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_file() # $1 = file to restore
|
||||||
|
{
|
||||||
|
if [ -f ${1}-shorewall.bkout ]; then
|
||||||
|
if (mv -f ${1}-shorewall.bkout $1); then
|
||||||
|
echo
|
||||||
|
echo "$1 restored"
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -1,11 +1,11 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Shorewall Packet Filtering Firewall Control Program - V5.0
|
# Shorewall Packet Filtering Firewall Control Program - V5.2
|
||||||
#
|
#
|
||||||
# (c) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2014,2015 -
|
# (c) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2014,2015-2017
|
||||||
# Tom Eastep (teastep@shorewall.net)
|
# Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://www.shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -25,6 +25,10 @@
|
|||||||
# For a list of supported commands, type 'shorewall help' or 'shorewall6 help'
|
# For a list of supported commands, type 'shorewall help' or 'shorewall6 help'
|
||||||
#
|
#
|
||||||
################################################################################################
|
################################################################################################
|
||||||
|
#
|
||||||
|
# Default product is Shorewall. PRODUCT will be set based on $0 and on passed -[46] and -l
|
||||||
|
# options
|
||||||
|
#
|
||||||
PRODUCT=shorewall
|
PRODUCT=shorewall
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -32,11 +36,8 @@ PRODUCT=shorewall
|
|||||||
#
|
#
|
||||||
. /usr/share/shorewall/shorewallrc
|
. /usr/share/shorewall/shorewallrc
|
||||||
|
|
||||||
g_program=$PRODUCT
|
g_basedir=${SHAREDIR}/shorewall
|
||||||
g_sharedir="$SHAREDIR"/shorewall
|
|
||||||
g_confdir="$CONFDIR"/shorewall
|
|
||||||
g_readrc=1
|
|
||||||
|
|
||||||
. $g_sharedir/lib.cli
|
. ${g_basedir}/lib.cli
|
||||||
|
|
||||||
shorewall_cli $@
|
shorewall_cli $@
|
25
Shorewall-core/shorewallrc.alt
Normal file
25
Shorewall-core/shorewallrc.alt
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#
|
||||||
|
# ALT/BaseALT/ALTLinux Shorewall 5.2 rc file
|
||||||
|
#
|
||||||
|
BUILD= #Default is to detect the build system
|
||||||
|
HOST=alt
|
||||||
|
PREFIX=/usr #Top-level directory for shared files, libraries, etc.
|
||||||
|
SHAREDIR=${PREFIX}/share #Directory for arch-neutral files.
|
||||||
|
LIBEXECDIR=${PREFIX}/libexec #Directory for executable scripts.
|
||||||
|
PERLLIBDIR=${SHAREDIR}/perl5 #Directory to install Shorewall Perl module directory
|
||||||
|
CONFDIR=/etc #Directory where subsystem configurations are installed
|
||||||
|
SBINDIR=/sbin #Directory where system administration programs are installed
|
||||||
|
MANDIR=${SHAREDIR}/man #Directory where manpages are installed.
|
||||||
|
INITDIR=${CONFDIR}/rc.d/init.d #Directory where SysV init scripts are installed.
|
||||||
|
INITFILE=$PRODUCT #Name of the product's installed SysV init script
|
||||||
|
INITSOURCE=init.alt.sh #Name of the distributed file to be installed as the SysV init script
|
||||||
|
ANNOTATED= #If non-zero, annotated configuration files are installed
|
||||||
|
SERVICEDIR=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
|
||||||
|
SYSCONFFILE=sysconfig #Name of the distributed file to be installed as $SYSCONFDIR/$PRODUCT
|
||||||
|
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
|
||||||
|
SYSCONFDIR=/etc/sysconfig/ #Directory where SysV init parameter files are installed
|
||||||
|
SERVICEDIR=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
|
||||||
|
SPARSE= #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
|
||||||
|
VARLIB=/var/lib #Directory where product variable data is stored.
|
||||||
|
VARDIR=${VARLIB}/$PRODUCT #Directory where product variable data is stored.
|
||||||
|
DEFAULT_PAGER=/usr/bin/less #Pager to use if none specified in shorewall[6].conf
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Apple OS X Shorewall 5.0 rc file
|
# Apple OS X Shorewall 5.2 rc file
|
||||||
#
|
#
|
||||||
BUILD=apple
|
BUILD=apple
|
||||||
HOST=apple
|
HOST=apple
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Arch Linux Shorewall 5.0 rc file
|
# Arch Linux Shorewall 5.2 rc file
|
||||||
#
|
#
|
||||||
BUILD= #Default is to detect the build system
|
BUILD= #Default is to detect the build system
|
||||||
HOST=archlinux
|
HOST=archlinux
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Cygwin Shorewall 5.0 rc file
|
# Cygwin Shorewall 5.2 rc file
|
||||||
#
|
#
|
||||||
BUILD=cygwin
|
BUILD=cygwin
|
||||||
HOST=cygwin
|
HOST=cygwin
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Debian Shorewall 4.5 rc file
|
# Debian Shorewall 5.2 rc file
|
||||||
#
|
#
|
||||||
BUILD= #Default is to detect the build system
|
BUILD= #Default is to detect the build system
|
||||||
HOST=debian
|
HOST=debian
|
||||||
@ -13,12 +13,13 @@ MANDIR=${PREFIX}/share/man #Directory where manpages are installed.
|
|||||||
INITDIR= #Directory where SysV init scripts are installed.
|
INITDIR= #Directory where SysV init scripts are installed.
|
||||||
INITFILE= #Name of the product's installed SysV init script
|
INITFILE= #Name of the product's installed SysV init script
|
||||||
INITSOURCE=init.debian.sh #Name of the distributed file to be installed as the SysV init script
|
INITSOURCE=init.debian.sh #Name of the distributed file to be installed as the SysV init script
|
||||||
ANNOTATED= #If non-zero, annotated configuration files are installed
|
ANNOTATED= #If non-empty, annotated configuration files are installed
|
||||||
SYSCONFFILE=default.debian #Name of the distributed file to be installed in $SYSCONFDIR
|
SYSCONFFILE=default.debian.systemd #Name of the distributed file to be installed in $SYSCONFDIR
|
||||||
SERVICEFILE=$PRODUCT.service.debian #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
|
SERVICEFILE=$PRODUCT.service.debian #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
|
||||||
SYSCONFDIR=/etc/default #Directory where SysV init parameter files are installed
|
SYSCONFDIR=/etc/default #Directory where SysV init parameter files are installed
|
||||||
SERVICEDIR=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
|
SERVICEDIR=/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
|
||||||
SPARSE=Yes #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
|
SPARSE=Yes #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
|
||||||
VARLIB=/var/lib #Directory where product variable data is stored.
|
VARLIB=/var/lib #Directory where product variable data is stored.
|
||||||
VARDIR=${VARLIB}/$PRODUCT #Directory where product variable data is stored.
|
VARDIR=${VARLIB}/$PRODUCT #Directory where product variable data is stored.
|
||||||
DEFAULT_PAGER=/usr/bin/less #Pager to use if none specified in shorewall[6].conf
|
DEFAULT_PAGER=/usr/bin/less #Pager to use if none specified in shorewall[6].conf
|
||||||
|
STOPSERVICEFILE=stop_service.debian #Name of script to stop systemd service that honours `SAFESTOP`.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Debian Shorewall 4.5 rc file
|
# Debian Shorewall 5.2 rc file
|
||||||
#
|
#
|
||||||
BUILD= #Default is to detect the build system
|
BUILD= #Default is to detect the build system
|
||||||
HOST=debian
|
HOST=debian
|
||||||
@ -14,7 +14,7 @@ INITDIR=/etc/init.d #Directory where SysV init scripts are i
|
|||||||
INITFILE=$PRODUCT #Name of the product's installed SysV init script
|
INITFILE=$PRODUCT #Name of the product's installed SysV init script
|
||||||
INITSOURCE=init.debian.sh #Name of the distributed file to be installed as the SysV init script
|
INITSOURCE=init.debian.sh #Name of the distributed file to be installed as the SysV init script
|
||||||
ANNOTATED= #If non-zero, annotated configuration files are installed
|
ANNOTATED= #If non-zero, annotated configuration files are installed
|
||||||
SYSCONFFILE=default.debian #Name of the distributed file to be installed in $SYSCONFDIR
|
SYSCONFFILE=default.debian.sysvinit #Name of the distributed file to be installed in $SYSCONFDIR
|
||||||
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
|
SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service
|
||||||
SYSCONFDIR=/etc/default #Directory where SysV init parameter files are installed
|
SYSCONFDIR=/etc/default #Directory where SysV init parameter files are installed
|
||||||
SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
|
SERVICEDIR= #Directory where .service files are installed (systems running systemd only)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#
|
#
|
||||||
# Default Shorewall 5.0 rc file
|
# Default Shorewall 5.2 rc file
|
||||||
#
|
#
|
||||||
HOST=linux #Generic Linux
|
|
||||||
BUILD= #Default is to detect the build system
|
BUILD= #Default is to detect the build system
|
||||||
|
HOST=linux #Generic Linux
|
||||||
PREFIX=/usr #Top-level directory for shared files, libraries, etc.
|
PREFIX=/usr #Top-level directory for shared files, libraries, etc.
|
||||||
SHAREDIR=${PREFIX}/share #Directory for arch-neutral files.
|
SHAREDIR=${PREFIX}/share #Directory for arch-neutral files.
|
||||||
LIBEXECDIR=${PREFIX}/share #Directory for executable scripts.
|
LIBEXECDIR=${PREFIX}/share #Directory for executable scripts.
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#
|
#
|
||||||
# Created by Shorewall Core version 5.0.2-RC1 configure - Fri, Nov 06, 2015 10:02:03 AM
|
# OpenWRT/LEDE Shorewall 5.2 rc file
|
||||||
#
|
|
||||||
# Input: host=openwrt
|
|
||||||
#
|
#
|
||||||
|
BUILD= #Default is to detect the build system
|
||||||
|
HOST=openwrt
|
||||||
PREFIX=/usr #Top-level directory for shared files, libraries, etc.
|
PREFIX=/usr #Top-level directory for shared files, libraries, etc.
|
||||||
SHAREDIR=${PREFIX}/share #Directory for arch-neutral files.
|
SHAREDIR=${PREFIX}/share #Directory for arch-neutral files.
|
||||||
LIBEXECDIR=${PREFIX}/share #Directory for executable scripts.
|
LIBEXECDIR=${PREFIX}/share #Directory for executable scripts.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# RedHat/FedoraShorewall 5.0 rc file
|
# RedHat/FedoraShorewall 5.2 rc file
|
||||||
#
|
#
|
||||||
BUILD= #Default is to detect the build system
|
BUILD= #Default is to detect the build system
|
||||||
HOST=redhat
|
HOST=redhat
|
||||||
|
28
Shorewall-core/shorewallrc.sandbox
Normal file
28
Shorewall-core/shorewallrc.sandbox
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#
|
||||||
|
# Shorewall 5.2 rc file for installing into a Sandbox
|
||||||
|
#
|
||||||
|
BUILD= # Default is to detect the build system
|
||||||
|
HOST=linux
|
||||||
|
INSTALLDIR= # Set this to the directory where you want Shorewall installed
|
||||||
|
PREFIX=${INSTALLDIR}/usr # Top-level directory for shared files, libraries, etc.
|
||||||
|
SHAREDIR=${PREFIX}/share # Directory for arch-neutral files.
|
||||||
|
LIBEXECDIR=${PREFIX}/share # Directory for executable scripts.
|
||||||
|
PERLLIBDIR=${PREFIX}/share/shorewall # Directory to install Shorewall Perl module directory
|
||||||
|
CONFDIR=${INSTALLDIR}/etc # Directory where subsystem configurations are installed
|
||||||
|
SBINDIR=${INSTALLDIR}/sbin # Directory where system administration programs are installed
|
||||||
|
MANDIR= # Leave empty
|
||||||
|
INITDIR= # Leave empty
|
||||||
|
INITSOURCE= # Leave empty
|
||||||
|
INITFILE= # Leave empty
|
||||||
|
AUXINITSOURCE= # Leave empty
|
||||||
|
AUXINITFILE= # Leave empty
|
||||||
|
SERVICEDIR= # Leave empty
|
||||||
|
SERVICEFILE= # Leave empty
|
||||||
|
SYSCONFFILE= # Leave empty
|
||||||
|
SYSCONFDIR= # Leave empty
|
||||||
|
SPARSE= # Leave empty
|
||||||
|
ANNOTATED= # If non-empty, annotated configuration files are installed
|
||||||
|
VARLIB=${INSTALLDIR}/var/lib # Directory where product variable data is stored.
|
||||||
|
VARDIR=${VARLIB}/$PRODUCT # Directory where product variable data is stored.
|
||||||
|
DEFAULT_PAGER=/usr/bin/less # Pager to use if none specified in shorewall[6].conf
|
||||||
|
SANDBOX=Yes # Indicates SANDBOX installation
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Slackware Shorewall 5.0 rc file
|
# Slackware Shorewall 5.2 rc file
|
||||||
#
|
#
|
||||||
BUILD=slackware
|
BUILD=slackware
|
||||||
HOST=slackware
|
HOST=slackware
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SuSE Shorewall 5.0 rc file
|
# SuSE Shorewall 5.2 rc file
|
||||||
#
|
#
|
||||||
BUILD= #Default is to detect the build system
|
BUILD= #Default is to detect the build system
|
||||||
HOST=suse
|
HOST=suse
|
||||||
|
19
Shorewall-core/stop_service.debian
Normal file
19
Shorewall-core/stop_service.debian
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
PRODUCT=$1
|
||||||
|
|
||||||
|
. /etc/default/${PRODUCT}
|
||||||
|
|
||||||
|
if [ "$SAFESTOP" = 1 ]; then
|
||||||
|
COMMAND=stop
|
||||||
|
else
|
||||||
|
COMMAND=clear
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${PRODUCT}" = shorewall6 ]; then
|
||||||
|
EXEC="/sbin/shorewall -6"
|
||||||
|
else
|
||||||
|
EXEC="/sbin/${PRODUCT}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec ${EXEC} ${OPTIONS} ${COMMAND}
|
@ -1,10 +1,10 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Script to back uninstall Shoreline Firewall
|
# Script to back uninstall Shoreline Firewall Core Modules
|
||||||
#
|
#
|
||||||
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://www.shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -26,64 +26,75 @@
|
|||||||
# You may only use this script to uninstall the version
|
# You may only use this script to uninstall the version
|
||||||
# shown below. Simply run this script to remove Shorewall Firewall
|
# shown below. Simply run this script to remove Shorewall Firewall
|
||||||
|
|
||||||
VERSION=xxx #The Build script inserts the actual version
|
VERSION=xxx # The Build script inserts the actual version
|
||||||
PRODUCT="shorewall-core"
|
PRODUCT=shorewall-core
|
||||||
Product="Shorewall Core"
|
Product="Shorewall Core"
|
||||||
|
|
||||||
usage() # $1 = exit status
|
usage() # $1 = exit status
|
||||||
{
|
{
|
||||||
ME=$(basename $0)
|
ME=$(basename $0)
|
||||||
echo "usage: $ME [ <shorewallrc file> ]"
|
echo "usage: $ME [ <option> ] [ <shorewallrc file> ]"
|
||||||
|
echo "where <option> is one of"
|
||||||
|
echo " -h"
|
||||||
|
echo " -v"
|
||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
fatal_error()
|
|
||||||
{
|
|
||||||
echo " ERROR: $@" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
qt()
|
|
||||||
{
|
|
||||||
"$@" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
restore_file() # $1 = file to restore
|
|
||||||
{
|
|
||||||
if [ -f ${1}-shorewall.bkout ]; then
|
|
||||||
if (mv -f ${1}-shorewall.bkout $1); then
|
|
||||||
echo
|
|
||||||
echo "$1 restored"
|
|
||||||
else
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_file() # $1 = file to restore
|
|
||||||
{
|
|
||||||
if [ -f $1 -o -L $1 ] ; then
|
|
||||||
rm -f $1
|
|
||||||
echo "$1 Removed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Change to the directory containing this script
|
# Change to the directory containing this script
|
||||||
#
|
#
|
||||||
cd "$(dirname $0)"
|
cd "$(dirname $0)"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Source common functions
|
||||||
|
#
|
||||||
|
. ./lib.uninstaller || { echo "ERROR: Can not load common functions." >&2; exit 1; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# Parse the run line
|
||||||
|
#
|
||||||
|
finished=0
|
||||||
|
|
||||||
|
while [ $finished -eq 0 ]; do
|
||||||
|
option=$1
|
||||||
|
|
||||||
|
case "$option" in
|
||||||
|
-*)
|
||||||
|
option=${option#-}
|
||||||
|
|
||||||
|
while [ -n "$option" ]; do
|
||||||
|
case $option in
|
||||||
|
h)
|
||||||
|
usage 0
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
echo "$Product Firewall Uninstaller Version $VERSION"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
finished=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
#
|
#
|
||||||
# Read the RC file
|
# Read the RC file
|
||||||
#
|
#
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
if [ -f ./shorewallrc ]; then
|
if [ -f ./shorewallrc ]; then
|
||||||
. ./shorewallrc
|
. ./shorewallrc || fatal_error "Can not load the RC file: ./shorewallrc"
|
||||||
elif [ -f ~/.shorewallrc ]; then
|
elif [ -f ~/.shorewallrc ]; then
|
||||||
. ~/.shorewallrc || exit 1
|
. ~/.shorewallrc || fatal_error "Can not load the RC file: ~/.shorewallrc"
|
||||||
file=./.shorewallrc
|
|
||||||
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
||||||
. /usr/share/shorewall/shorewallrc
|
. /usr/share/shorewall/shorewallrc || fatal_error "Can not load the RC file: /usr/share/shorewall/shorewallrc"
|
||||||
else
|
else
|
||||||
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
||||||
fi
|
fi
|
||||||
@ -93,11 +104,11 @@ elif [ $# -eq 1 ]; then
|
|||||||
/*|.*)
|
/*|.*)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
file=./$file
|
file=./$file || exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
. $file
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
else
|
else
|
||||||
usage 1
|
usage 1
|
||||||
fi
|
fi
|
||||||
@ -105,20 +116,27 @@ fi
|
|||||||
if [ -f ${SHAREDIR}/shorewall/coreversion ]; then
|
if [ -f ${SHAREDIR}/shorewall/coreversion ]; then
|
||||||
INSTALLED_VERSION="$(cat ${SHAREDIR}/shorewall/coreversion)"
|
INSTALLED_VERSION="$(cat ${SHAREDIR}/shorewall/coreversion)"
|
||||||
if [ "$INSTALLED_VERSION" != "$VERSION" ]; then
|
if [ "$INSTALLED_VERSION" != "$VERSION" ]; then
|
||||||
echo "WARNING: Shorewall Core Version $INSTALLED_VERSION is installed"
|
echo "WARNING: $Product Version $INSTALLED_VERSION is installed"
|
||||||
echo " and this is the $VERSION uninstaller."
|
echo " and this is the $VERSION uninstaller."
|
||||||
VERSION="$INSTALLED_VERSION"
|
VERSION="$INSTALLED_VERSION"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "WARNING: Shorewall Core Version $VERSION is not installed"
|
echo "WARNING: $Product Version $VERSION is not installed"
|
||||||
VERSION=""
|
VERSION=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Uninstalling Shorewall Core $VERSION"
|
echo "Uninstalling $Product $VERSION"
|
||||||
|
|
||||||
rm -rf ${SHAREDIR}/shorewall
|
if [ -n "${MANDIR}" ]; then
|
||||||
rm -f ~/.shorewallrc
|
remove_file_with_wildcard ${MANDIR}/man5/shorewall\*
|
||||||
|
remove_file_with_wildcard ${MANDIR}/man8/shorewall\*
|
||||||
echo "Shorewall Core Uninstalled"
|
fi
|
||||||
|
|
||||||
|
remove_directory ${SHAREDIR}/shorewall
|
||||||
|
remove_file ~/.shorewallrc
|
||||||
|
remove_file ${SBINDIR}/shorewall
|
||||||
|
|
||||||
|
#
|
||||||
|
# Report Success
|
||||||
|
#
|
||||||
|
echo "$Product $VERSION Uninstalled"
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Shorewall interface helper utility - V4.2
|
# Shorewall interface helper utility - V5.2
|
||||||
#
|
#
|
||||||
# (c) 2007,2014 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2007,2014 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# This file is installed in /usr/share/shorewall/wait4ifup
|
# This file is installed in /usr/share/shorewall/wait4ifup
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://www.shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
|
21
Shorewall-init/default.debian.systemd
Normal file
21
Shorewall-init/default.debian.systemd
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# List the Shorewall products that Shorewall-init is to
|
||||||
|
# initialize (space-separated list).
|
||||||
|
#
|
||||||
|
# Sample: PRODUCTS="shorewall shorewall6"
|
||||||
|
#
|
||||||
|
PRODUCTS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Set this to 1 if you want Shorewall-init to react to
|
||||||
|
# ifup/ifdown and NetworkManager events
|
||||||
|
#
|
||||||
|
IFUPDOWN=0
|
||||||
|
#
|
||||||
|
# Where Up/Down events get logged
|
||||||
|
#
|
||||||
|
LOGFILE=/var/log/shorewall-ifupdown.log
|
||||||
|
|
||||||
|
# Startup options - set verbosity to 0 (minimal reporting)
|
||||||
|
OPTIONS="-V0"
|
||||||
|
|
||||||
|
# IOF
|
27
Shorewall-init/default.debian.sysvinit
Normal file
27
Shorewall-init/default.debian.sysvinit
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# List the Shorewall products that Shorewall-init is to
|
||||||
|
# initialize (space-separated list).
|
||||||
|
#
|
||||||
|
# Sample: PRODUCTS="shorewall shorewall6"
|
||||||
|
#
|
||||||
|
PRODUCTS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Set this to 1 if you want Shorewall-init to react to
|
||||||
|
# ifup/ifdown and NetworkManager events
|
||||||
|
#
|
||||||
|
IFUPDOWN=0
|
||||||
|
#
|
||||||
|
# Set this to the name of the file that is to hold
|
||||||
|
# ipset contents. Shorewall-init will load those ipsets
|
||||||
|
# during 'start' and will save them there during 'stop'.
|
||||||
|
#
|
||||||
|
SAVE_IPSETS=""
|
||||||
|
#
|
||||||
|
# Where Up/Down events get logged
|
||||||
|
#
|
||||||
|
LOGFILE=/var/log/shorewall-ifupdown.log
|
||||||
|
|
||||||
|
# Startup options - set verbosity to 0 (minimal reporting)
|
||||||
|
OPTIONS="-V0"
|
||||||
|
|
||||||
|
# IOF
|
@ -6,7 +6,7 @@
|
|||||||
#
|
#
|
||||||
# (c) 2010,2013 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2010,2013 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
@ -31,8 +31,10 @@ setstatedir() {
|
|||||||
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
if [ ! -x $STATEDIR/firewall ]; then
|
if [ ! -x $STATEDIR/firewall ]; then
|
||||||
if [ $PRODUCT = shorewall -o $PRODUCT = shorewall6 ]; then
|
if [ $PRODUCT = shorewall ]; then
|
||||||
${SBINDIR}/$PRODUCT compile
|
${SBINDIR}/shorewall compile
|
||||||
|
elif [ $PRODUCT = shorewall6 ]; then
|
||||||
|
${SBINDIR}/shorewall -6 compile
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -108,7 +110,7 @@ case $0 in
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
#
|
#
|
||||||
# Debian ifupdown system
|
# Debian ifupdown system - MODE and INTERFACE inherited from the environment
|
||||||
#
|
#
|
||||||
INTERFACE="$IFACE"
|
INTERFACE="$IFACE"
|
||||||
|
|
||||||
@ -125,10 +127,21 @@ esac
|
|||||||
[ -n "$LOGFILE" ] || LOGFILE=/dev/null
|
[ -n "$LOGFILE" ] || LOGFILE=/dev/null
|
||||||
|
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
|
if [ -n "$ADDRFAM" -a ${COMMAND} = up ]; then
|
||||||
|
case $PRODUCT in
|
||||||
|
*6*)
|
||||||
|
[ ${ADDRFAM} = inet6 ] || continue
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
[ ${ADDRFAM} = inet ] || continue
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
setstatedir
|
setstatedir
|
||||||
|
|
||||||
if [ -x $VARLIB/$PRODUCT/firewall ]; then
|
if [ -x $VARLIB/$PRODUCT/firewall ]; then
|
||||||
( ${VARLIB}/$PRODUCT/firewall -V0 $COMMAND $INTERFACE >> $LOGFILE 2>&1 ) || true
|
( ${VARLIB}/$PRODUCT/firewall -V0 $COMMAND $INTERFACE >> $LOGFILE 2>&1 ) || true
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#
|
#
|
||||||
# (c) 2010,2013 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2010,2013 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
@ -33,9 +33,11 @@ setstatedir() {
|
|||||||
|
|
||||||
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
if [ ! -x "$STATEDIR/firewall" ]; then
|
if [ ! -x $STATEDIR/firewall ]; then
|
||||||
if [ $PRODUCT == shorewall -o $PRODUCT == shorewall6 ]; then
|
if [ $PRODUCT = shorewall ]; then
|
||||||
${SBINDIR}/$PRODUCT $OPTIONS compile
|
${SBINDIR}/shorewall compile
|
||||||
|
elif [ $PRODUCT = shorewall6 ]; then
|
||||||
|
${SBINDIR}/shorewall -6 compile
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -88,7 +90,14 @@ case $0 in
|
|||||||
COMMAND=down
|
COMMAND=down
|
||||||
;;
|
;;
|
||||||
*dispatcher.d*)
|
*dispatcher.d*)
|
||||||
COMMAND="$2"
|
case "$2" in
|
||||||
|
up|down)
|
||||||
|
COMMAND="$2"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#
|
#
|
||||||
# (c) 2010,2013 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2010,2013 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
@ -31,8 +31,10 @@ setstatedir() {
|
|||||||
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
if [ ! -x $STATEDIR/firewall ]; then
|
if [ ! -x $STATEDIR/firewall ]; then
|
||||||
if [ $PRODUCT = shorewall -o $PRODUCT = shorewall6 ]; then
|
if [ $PRODUCT = shorewall ]; then
|
||||||
${SBINDIR}/$PRODUCT compile
|
${SBINDIR}/shorewall compile
|
||||||
|
elif [ $PRODUCT = shorewall6 ]; then
|
||||||
|
${SBINDIR}/shorewall -6 compile
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -118,7 +120,14 @@ case $0 in
|
|||||||
case $0 in
|
case $0 in
|
||||||
*dispatcher.d*)
|
*dispatcher.d*)
|
||||||
INTERFACE="$1"
|
INTERFACE="$1"
|
||||||
COMMAND="$2"
|
case "$2" in
|
||||||
|
up|down)
|
||||||
|
COMMAND="$2"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
;;
|
;;
|
||||||
*if-up.d*)
|
*if-up.d*)
|
||||||
COMMAND=up
|
COMMAND=up
|
||||||
|
150
Shorewall-init/init.alt.sh
Executable file
150
Shorewall-init/init.alt.sh
Executable file
@ -0,0 +1,150 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Shorewall init script
|
||||||
|
#
|
||||||
|
# chkconfig: - 09 91
|
||||||
|
# description: Initialize the shorewall firewall at boot time
|
||||||
|
#
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: shorewall-init
|
||||||
|
# Required-Start: $local_fs
|
||||||
|
# Required-Stop: $local_fs
|
||||||
|
# Default-Start: 3 4 5
|
||||||
|
# Default-Stop: 0 1 2 6
|
||||||
|
# Short-Description: Initialize the shorewall firewall at boot time
|
||||||
|
# Description: Place the firewall in a safe state at boot time
|
||||||
|
# prior to bringing up the network.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
# Do not load RH compatibility interface.
|
||||||
|
WITHOUT_RC_COMPAT=1
|
||||||
|
|
||||||
|
# Source function library.
|
||||||
|
. /etc/init.d/functions
|
||||||
|
|
||||||
|
#
|
||||||
|
# The installer may alter this
|
||||||
|
#
|
||||||
|
. /usr/share/shorewall/shorewallrc
|
||||||
|
NAME="Shorewall-init firewall"
|
||||||
|
PROG="shorewall-init"
|
||||||
|
SHOREWALL="$SBINDIR/$PROG"
|
||||||
|
LOGGER="logger -i -t $PROG"
|
||||||
|
|
||||||
|
# Get startup options (override default)
|
||||||
|
OPTIONS=
|
||||||
|
|
||||||
|
LOCKFILE=/var/lock/subsys/shorewall-init
|
||||||
|
|
||||||
|
# check if shorewall-init is configured or not
|
||||||
|
if [ -f "/etc/sysconfig/shorewall-init" ]; then
|
||||||
|
. /etc/sysconfig/shorewall-init
|
||||||
|
if [ -z "$PRODUCTS" ]; then
|
||||||
|
echo "No PRODUCTS configured"
|
||||||
|
exit 6
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "/etc/sysconfig/shorewall-init not found"
|
||||||
|
exit 6
|
||||||
|
fi
|
||||||
|
|
||||||
|
RETVAL=0
|
||||||
|
|
||||||
|
# set the STATEDIR variable
|
||||||
|
setstatedir() {
|
||||||
|
local statedir
|
||||||
|
if [ -f ${CONFDIR}/${PRODUCT}/vardir ]; then
|
||||||
|
statedir=$( . /${CONFDIR}/${PRODUCT}/vardir && echo $VARDIR )
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
|
if [ -x ${STATEDIR}/firewall ]; then
|
||||||
|
return 0
|
||||||
|
elif [ $PRODUCT = shorewall ]; then
|
||||||
|
${SBINDIR}/shorewall compile
|
||||||
|
elif [ $PRODUCT = shorewall6 ]; then
|
||||||
|
${SBINDIR}/shorewall -6 compile
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
local PRODUCT
|
||||||
|
local STATEDIR
|
||||||
|
|
||||||
|
printf "Initializing \"Shorewall-based firewalls\": "
|
||||||
|
|
||||||
|
for PRODUCT in $PRODUCTS; do
|
||||||
|
if setstatedir; then
|
||||||
|
$STATEDIR/$PRODUCT/firewall ${OPTIONS} stop 2>&1 | "$LOGGER"
|
||||||
|
RETVAL=$?
|
||||||
|
else
|
||||||
|
RETVAL=6
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
|
||||||
|
ipset -R < "$SAVE_IPSETS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
local PRODUCT
|
||||||
|
local STATEDIR
|
||||||
|
|
||||||
|
printf "Clearing \"Shorewall-based firewalls\": "
|
||||||
|
for PRODUCT in $PRODUCTS; do
|
||||||
|
if setstatedir; then
|
||||||
|
${STATEDIR}/firewall ${OPTIONS} clear 2>&1 | "$LOGGER"
|
||||||
|
RETVAL=$?
|
||||||
|
else
|
||||||
|
RETVAL=6
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$SAVE_IPSETS" ]; then
|
||||||
|
mkdir -p $(dirname "$SAVE_IPSETS")
|
||||||
|
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
||||||
|
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS" || rm -f "${SAVE_IPSETS}.tmp"
|
||||||
|
else
|
||||||
|
rm -f "${SAVE_IPSETS}.tmp"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
# See how we were called.
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
restart|reload|condrestart|condreload)
|
||||||
|
# "Not implemented"
|
||||||
|
;;
|
||||||
|
condstop)
|
||||||
|
if [ -e "$LOCKFILE" ]; then
|
||||||
|
stop
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status "$PROG"
|
||||||
|
RETVAL=$?
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $"Usage: ${0##*/} {start|stop|restart|reload|condrestart|condstop|status}"
|
||||||
|
RETVAL=1
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $RETVAL
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.0
|
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.2
|
||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
@ -8,7 +8,7 @@
|
|||||||
#
|
#
|
||||||
# On most distributions, this file should be called /etc/init.d/shorewall.
|
# On most distributions, this file should be called /etc/init.d/shorewall.
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
@ -73,10 +73,16 @@ setstatedir() {
|
|||||||
|
|
||||||
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
if [ $PRODUCT = shorewall -o $PRODUCT = shorewall6 ]; then
|
if [ -x ${STATEDIR}/firewall ]; then
|
||||||
${SBINDIR}/$PRODUCT ${OPTIONS} compile -c
|
return 0
|
||||||
else
|
else
|
||||||
return 0
|
if [ $PRODUCT = shorewall ]; then
|
||||||
|
${SBINDIR}/shorewall compile
|
||||||
|
elif [ $PRODUCT = shorewall6 ]; then
|
||||||
|
${SBINDIR}/shorewall -6 compile
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,20 +108,18 @@ shorewall_start () {
|
|||||||
local PRODUCT
|
local PRODUCT
|
||||||
local STATEDIR
|
local STATEDIR
|
||||||
|
|
||||||
echo -n "Initializing \"Shorewall-based firewalls\": "
|
printf "Initializing \"Shorewall-based firewalls\": "
|
||||||
|
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
if setstatedir; then
|
if setstatedir; then
|
||||||
if [ -x ${STATEDIR}/firewall ]; then
|
#
|
||||||
#
|
# Run in a sub-shell to avoid name collisions
|
||||||
# Run in a sub-shell to avoid name collisions
|
#
|
||||||
#
|
(
|
||||||
(
|
if ! ${STATEDIR}/firewall status > /dev/null 2>&1; then
|
||||||
if ! ${STATEDIR}/firewall status > /dev/null 2>&1; then
|
${STATEDIR}/firewall ${OPTIONS} stop
|
||||||
${STATEDIR}/firewall ${OPTIONS} stop
|
fi
|
||||||
fi
|
)
|
||||||
)
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -123,7 +127,7 @@ shorewall_start () {
|
|||||||
|
|
||||||
if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
|
if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
|
||||||
|
|
||||||
echo -n "Restoring ipsets: "
|
printf "Restoring ipsets: "
|
||||||
|
|
||||||
if ! ipset -R < "$SAVE_IPSETS"; then
|
if ! ipset -R < "$SAVE_IPSETS"; then
|
||||||
echo_notdone
|
echo_notdone
|
||||||
@ -140,12 +144,10 @@ shorewall_stop () {
|
|||||||
local PRODUCT
|
local PRODUCT
|
||||||
local STATEDIR
|
local STATEDIR
|
||||||
|
|
||||||
echo -n "Clearing \"Shorewall-based firewalls\": "
|
printf "Clearing \"Shorewall-based firewalls\": "
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
if setstatedir; then
|
if setstatedir; then
|
||||||
if [ -x ${STATEDIR}/firewall ]; then
|
${STATEDIR}/firewall ${OPTIONS} clear
|
||||||
${STATEDIR}/firewall ${OPTIONS} clear
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -157,8 +159,9 @@ shorewall_stop () {
|
|||||||
|
|
||||||
mkdir -p $(dirname "$SAVE_IPSETS")
|
mkdir -p $(dirname "$SAVE_IPSETS")
|
||||||
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
||||||
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS"
|
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS" || rm -f "${SAVE_IPSETS}.tmp"
|
||||||
else
|
else
|
||||||
|
rm -f "${SAVE_IPSETS}.tmp"
|
||||||
echo_notdone
|
echo_notdone
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -44,10 +44,14 @@ setstatedir() {
|
|||||||
|
|
||||||
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
if [ $PRODUCT == shorewall -o $PRODUCT == shorewall6 ]; then
|
if [ -x ${STATEDIR}/firewall ]; then
|
||||||
${SBINDIR}/$PRODUCT $OPTIONS compile -c
|
|
||||||
else
|
|
||||||
return 0
|
return 0
|
||||||
|
elif [ $PRODUCT = shorewall ]; then
|
||||||
|
${SBINDIR}/shorewall compile
|
||||||
|
elif [ $PRODUCT = shorewall6 ]; then
|
||||||
|
${SBINDIR}/shorewall -6 compile
|
||||||
|
else
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,22 +66,22 @@ start () {
|
|||||||
return 6 #Not configured
|
return 6 #Not configured
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -n "Initializing \"Shorewall-based firewalls\": "
|
printf "Initializing \"Shorewall-based firewalls\": "
|
||||||
|
|
||||||
|
if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
|
||||||
|
ipset -R < "$SAVE_IPSETS"
|
||||||
|
fi
|
||||||
|
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
setstatedir
|
setstatedir
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
if [ $retval -eq 0 ]; then
|
if [ $retval -eq 0 ]; then
|
||||||
if [ -x "${STATEDIR}/firewall" ]; then
|
${STATEDIR}/firewall ${OPTIONS} stop 2>&1 | $logger
|
||||||
${STATEDIR}/firewall ${OPTIONS} stop 2>&1 | $logger
|
retval=${PIPESTATUS[0]}
|
||||||
retval=${PIPESTATUS[0]}
|
[ $retval -ne 0 ] && break
|
||||||
[ $retval -ne 0 ] && break
|
|
||||||
else
|
|
||||||
retval=6 #Product not configured
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
|
retval=6 #Product not configured
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -97,27 +101,32 @@ stop () {
|
|||||||
local PRODUCT
|
local PRODUCT
|
||||||
local STATEDIR
|
local STATEDIR
|
||||||
|
|
||||||
echo -n "Clearing \"Shorewall-based firewalls\": "
|
printf "Clearing \"Shorewall-based firewalls\": "
|
||||||
|
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
setstatedir
|
setstatedir
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
if [ $retval -eq 0 ]; then
|
if [ $retval -eq 0 ]; then
|
||||||
if [ -x "${STATEDIR}/firewall" ]; then
|
${STATEDIR}/firewall ${OPTIONS} clear 2>&1 | $logger
|
||||||
${STATEDIR}/firewall ${OPTIONS} clear 2>&1 | $logger
|
retval=${PIPESTATUS[0]}
|
||||||
retval=${PIPESTATUS[0]}
|
[ $retval -ne 0 ] && break
|
||||||
[ $retval -ne 0 ] && break
|
|
||||||
else
|
|
||||||
retval=6 #Product not configured
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
|
retval=6 #Product not configured
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ $retval -eq 0 ]; then
|
if [ $retval -eq 0 ]; then
|
||||||
|
if [ -n "$SAVE_IPSETS" ]; then
|
||||||
|
mkdir -p $(dirname "$SAVE_IPSETS")
|
||||||
|
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
||||||
|
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS" || rm -f "${SAVE_IPSETS}.tmp"
|
||||||
|
else
|
||||||
|
rm -f "${SAVE_IPSETS}.tmp"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
rm -f $lockfile
|
rm -f $lockfile
|
||||||
success
|
success
|
||||||
else
|
else
|
||||||
|
34
Shorewall-init/init.openwrt.sh
Normal file → Executable file
34
Shorewall-init/init.openwrt.sh
Normal file → Executable file
@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.0
|
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.2
|
||||||
#
|
#
|
||||||
# (c) 2010,2012-2014 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2010,2012-2014 - Tom Eastep (teastep@shorewall.net)
|
||||||
# (c) 2016 - Matt Darfeuille (matdarf@gmail.com)
|
# (c) 2016 - Matt Darfeuille (matdarf@gmail.com)
|
||||||
@ -75,10 +75,14 @@ setstatedir() {
|
|||||||
|
|
||||||
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
if [ $PRODUCT = shorewall -o $PRODUCT = shorewall6 ]; then
|
if [ -x ${STATEDIR}/firewall ]; then
|
||||||
${SBINDIR}/$PRODUCT ${OPTIONS} compile $STATEDIR/firewall
|
|
||||||
else
|
|
||||||
return 0
|
return 0
|
||||||
|
elif [ $PRODUCT = shorewall ]; then
|
||||||
|
${SBINDIR}/shorewall compile
|
||||||
|
elif [ $PRODUCT = shorewall6 ]; then
|
||||||
|
${SBINDIR}/shorewall -6 compile
|
||||||
|
else
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,13 +91,11 @@ start () {
|
|||||||
local PRODUCT
|
local PRODUCT
|
||||||
local STATEDIR
|
local STATEDIR
|
||||||
|
|
||||||
echo -n "Initializing \"Shorewall-based firewalls\": "
|
printf "Initializing \"Shorewall-based firewalls\": "
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
if setstatedir; then
|
if setstatedir; then
|
||||||
if [ -x ${STATEDIR}/firewall ]; then
|
if ! ${SBIN}/$PRODUCT status > /dev/null 2>&1; then
|
||||||
if ! ${SBIN}/$PRODUCT status > /dev/null 2>&1; then
|
${STATEDIR}/firewall ${OPTIONS} stop
|
||||||
${STATEDIR}/firewall ${OPTIONS} stop
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -101,6 +103,8 @@ start () {
|
|||||||
if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
|
if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
|
||||||
ipset -R < "$SAVE_IPSETS"
|
ipset -R < "$SAVE_IPSETS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
boot () {
|
boot () {
|
||||||
@ -112,20 +116,22 @@ stop () {
|
|||||||
local PRODUCT
|
local PRODUCT
|
||||||
local STATEDIR
|
local STATEDIR
|
||||||
|
|
||||||
echo -n "Clearing \"Shorewall-based firewalls\": "
|
printf "Clearing \"Shorewall-based firewalls\": "
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
if setstatedir; then
|
if setstatedir; then
|
||||||
if [ -x ${STATEDIR}/firewall ]; then
|
${STATEDIR}/firewall ${OPTIONS} clear
|
||||||
${STATEDIR}/firewall ${OPTIONS} clear
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -n "$SAVE_IPSETS" ]; then
|
if [ -n "$SAVE_IPSETS" ]; then
|
||||||
mkdir -p $(dirname "$SAVE_IPSETS")
|
mkdir -p $(dirname "$SAVE_IPSETS")
|
||||||
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
||||||
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS"
|
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS" || rm -f "${SAVE_IPSETS}.tmp"
|
||||||
|
else
|
||||||
|
rm -f "${SAVE_IPSETS}.tmp"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#! /bin/bash
|
#! /bin/bash
|
||||||
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.0
|
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.2
|
||||||
#
|
#
|
||||||
# (c) 2010,2012-2014 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2010,2012-2014 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
@ -69,10 +69,12 @@ setstatedir() {
|
|||||||
|
|
||||||
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
if [ $PRODUCT = shorewall -o $PRODUCT = shorewall6 ]; then
|
if [ -x ${STATEDIR}/firewall ]; then
|
||||||
|
return 0
|
||||||
|
elif [ $PRODUCT = shorewall -o $PRODUCT = shorewall6 ]; then
|
||||||
${SBINDIR}/$PRODUCT ${OPTIONS} compile $STATEDIR/firewall
|
${SBINDIR}/$PRODUCT ${OPTIONS} compile $STATEDIR/firewall
|
||||||
else
|
else
|
||||||
return 0
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,13 +83,11 @@ shorewall_start () {
|
|||||||
local PRODUCT
|
local PRODUCT
|
||||||
local STATEDIR
|
local STATEDIR
|
||||||
|
|
||||||
echo -n "Initializing \"Shorewall-based firewalls\": "
|
printf "Initializing \"Shorewall-based firewalls\": "
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
if setstatedir; then
|
if setstatedir; then
|
||||||
if [ -x ${STATEDIR}/firewall ]; then
|
if ! ${SBIN}/$PRODUCT status > /dev/null 2>&1; then
|
||||||
if ! ${SBIN}/$PRODUCT status > /dev/null 2>&1; then
|
${STATEDIR}/firewall ${OPTIONS} stop
|
||||||
${STATEDIR}/firewall ${OPTIONS} stop
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -104,19 +104,19 @@ shorewall_stop () {
|
|||||||
local PRODUCT
|
local PRODUCT
|
||||||
local STATEDIR
|
local STATEDIR
|
||||||
|
|
||||||
echo -n "Clearing \"Shorewall-based firewalls\": "
|
printf "Clearing \"Shorewall-based firewalls\": "
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
if setstatedir; then
|
if setstatedir; then
|
||||||
if [ -x ${STATEDIR}/firewall ]; then
|
${STATEDIR}/firewall ${OPTIONS} clear
|
||||||
${STATEDIR}/firewall ${OPTIONS} clear
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -n "$SAVE_IPSETS" ]; then
|
if [ -n "$SAVE_IPSETS" ]; then
|
||||||
mkdir -p $(dirname "$SAVE_IPSETS")
|
mkdir -p $(dirname "$SAVE_IPSETS")
|
||||||
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
||||||
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS"
|
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS" || rm -f "${SAVE_IPSETS}.tmp"
|
||||||
|
else
|
||||||
|
rm -f "${SAVE_IPSETS}.tmp"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#! /bin/bash
|
#! /bin/bash
|
||||||
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.0
|
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.2
|
||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
# On most distributions, this file should be called /etc/init.d/shorewall.
|
# On most distributions, this file should be called /etc/init.d/shorewall.
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
@ -79,10 +79,14 @@ setstatedir() {
|
|||||||
|
|
||||||
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
if [ $PRODUCT = shorewall -o $PRODUCT = shorewall6 ]; then
|
if [ -x ${STATEDIR}/firewall ]; then
|
||||||
${SBINDIR}/$PRODUCT ${OPTIONS} compile -c
|
|
||||||
else
|
|
||||||
return 0
|
return 0
|
||||||
|
elif [ $PRODUCT = shorewall ]; then
|
||||||
|
${SBINDIR}/shorewall compile
|
||||||
|
elif [ $PRODUCT = shorewall6 ]; then
|
||||||
|
${SBINDIR}/shorewall -6 compile
|
||||||
|
else
|
||||||
|
return 6
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,13 +95,11 @@ shorewall_start () {
|
|||||||
local PRODUCT
|
local PRODUCT
|
||||||
local STATEDIR
|
local STATEDIR
|
||||||
|
|
||||||
echo -n "Initializing \"Shorewall-based firewalls\": "
|
printf "Initializing \"Shorewall-based firewalls\": "
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
if setstatedir; then
|
if setstatedir; then
|
||||||
if [ -x $STATEDIR/firewall ]; then
|
if ! ${SBIN}/$PRODUCT status > /dev/null 2>&1; then
|
||||||
if ! ${SBIN}/$PRODUCT status > /dev/null 2>&1; then
|
$STATEDIR/$PRODUCT/firewall ${OPTIONS} stop
|
||||||
$STATEDIR/$PRODUCT/firewall ${OPTIONS} stop
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -112,19 +114,19 @@ shorewall_stop () {
|
|||||||
local PRODUCT
|
local PRODUCT
|
||||||
local STATEDIR
|
local STATEDIR
|
||||||
|
|
||||||
echo -n "Clearing \"Shorewall-based firewalls\": "
|
printf "Clearing \"Shorewall-based firewalls\": "
|
||||||
for PRODUCT in $PRODUCTS; do
|
for PRODUCT in $PRODUCTS; do
|
||||||
if setstatedir; then
|
if setstatedir; then
|
||||||
if [ -x ${STATEDIR}/firewall ]; then
|
${STATEDIR}/firewall ${OPTIONS} clear
|
||||||
${STATEDIR}/firewall ${OPTIONS} clear
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -n "$SAVE_IPSETS" ]; then
|
if [ -n "$SAVE_IPSETS" ]; then
|
||||||
mkdir -p $(dirname "$SAVE_IPSETS")
|
mkdir -p $(dirname "$SAVE_IPSETS")
|
||||||
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
||||||
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS"
|
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS" || rm -f "${SAVE_IPSETS}.tmp"
|
||||||
|
else
|
||||||
|
rm -f "${SAVE_IPSETS}.tmp"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
||||||
# (c) 2010 - Roberto C. Sanchez (roberto@connexer.com)
|
# (c) 2010 - Roberto C. Sanchez (roberto@connexer.com)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -27,58 +27,21 @@
|
|||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
#
|
#
|
||||||
|
|
||||||
VERSION=xxx #The Build script inserts the actual version.
|
VERSION=xxx # The Build script inserts the actual version
|
||||||
PRODUCT=shorewall-init
|
PRODUCT=shorewall-init
|
||||||
Product="Shorewall Init"
|
Product="Shorewall Init"
|
||||||
|
|
||||||
usage() # $1 = exit status
|
usage() # $1 = exit status
|
||||||
{
|
{
|
||||||
ME=$(basename $0)
|
ME=$(basename $0)
|
||||||
echo "usage: $ME [ <configuration-file> ]"
|
echo "usage: $ME [ <option> ] [ <shorewallrc file> ]"
|
||||||
echo " $ME -v"
|
echo "where <option> is one of"
|
||||||
echo " $ME -h"
|
echo " -h"
|
||||||
echo " $ME -n"
|
echo " -v"
|
||||||
|
echo " -n"
|
||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
fatal_error()
|
|
||||||
{
|
|
||||||
echo " ERROR: $@" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
split() {
|
|
||||||
local ifs
|
|
||||||
ifs=$IFS
|
|
||||||
IFS=:
|
|
||||||
set -- $1
|
|
||||||
echo $*
|
|
||||||
IFS=$ifs
|
|
||||||
}
|
|
||||||
|
|
||||||
qt()
|
|
||||||
{
|
|
||||||
"$@" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
mywhich() {
|
|
||||||
local dir
|
|
||||||
|
|
||||||
for dir in $(split $PATH); do
|
|
||||||
if [ -x $dir/$1 ]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
return 2
|
|
||||||
}
|
|
||||||
|
|
||||||
cant_autostart()
|
|
||||||
{
|
|
||||||
echo
|
|
||||||
echo "WARNING: Unable to configure shorewall init to start automatically at boot" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
install_file() # $1 = source $2 = target $3 = mode
|
install_file() # $1 = source $2 = target $3 = mode
|
||||||
{
|
{
|
||||||
if cp -f $1 $2; then
|
if cp -f $1 $2; then
|
||||||
@ -97,23 +60,16 @@ install_file() # $1 = source $2 = target $3 = mode
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
make_directory() # $1 = directory , $2 = mode
|
|
||||||
{
|
|
||||||
mkdir -p $1
|
|
||||||
chmod 0755 $1
|
|
||||||
[ -n "$OWNERSHIP" ] && chown $OWNERSHIP $1
|
|
||||||
}
|
|
||||||
|
|
||||||
require()
|
|
||||||
{
|
|
||||||
eval [ -n "\$$1" ] || fatal_error "Required option $1 not set"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Change to the directory containing this script
|
# Change to the directory containing this script
|
||||||
#
|
#
|
||||||
cd "$(dirname $0)"
|
cd "$(dirname $0)"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Source common functions
|
||||||
|
#
|
||||||
|
. ./lib.installer || { echo "ERROR: Can not load common functions." >&2; exit 1; }
|
||||||
|
|
||||||
#
|
#
|
||||||
# Parse the run line
|
# Parse the run line
|
||||||
#
|
#
|
||||||
@ -134,7 +90,7 @@ while [ $finished -eq 0 ] ; do
|
|||||||
usage 0
|
usage 0
|
||||||
;;
|
;;
|
||||||
v)
|
v)
|
||||||
echo "Shorewall-init Firewall Installer Version $VERSION"
|
echo "$Product Firewall Installer Version $VERSION"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
n*)
|
n*)
|
||||||
@ -159,17 +115,17 @@ done
|
|||||||
# Read the RC file
|
# Read the RC file
|
||||||
#
|
#
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
#
|
|
||||||
# Load packager's settings if any
|
|
||||||
#
|
|
||||||
if [ -f ./shorewallrc ]; then
|
if [ -f ./shorewallrc ]; then
|
||||||
. ./shorewallrc || exit 1
|
file=./shorewallrc
|
||||||
file=~/.shorewallrc
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
elif [ -f ~/.shorewallrc ]; then
|
elif [ -f ~/.shorewallrc ]; then
|
||||||
. ~/.shorewallrc || exit 1
|
file=~/.shorewallrc
|
||||||
file=./.shorewallrc
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
else
|
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
||||||
fatal_error "No configuration file specified and ~/.shorewallrc not found"
|
file=/usr/share/shorewall/shorewallrc
|
||||||
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
|
else
|
||||||
|
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
||||||
fi
|
fi
|
||||||
elif [ $# -eq 1 ]; then
|
elif [ $# -eq 1 ]; then
|
||||||
file=$1
|
file=$1
|
||||||
@ -177,11 +133,11 @@ elif [ $# -eq 1 ]; then
|
|||||||
/*|.*)
|
/*|.*)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
file=./$file
|
file=./$file || exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
. $file
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
else
|
else
|
||||||
usage 1
|
usage 1
|
||||||
fi
|
fi
|
||||||
@ -213,7 +169,7 @@ if [ -z "$BUILD" ]; then
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
if [ -f /etc/os-release ]; then
|
if [ -f /etc/os-release ]; then
|
||||||
eval $(cat /etc/os-release | grep ^ID=)
|
ID=$(grep '^ID=' /etc/os-release | sed 's/ID=//; s/"//g;')
|
||||||
|
|
||||||
case $ID in
|
case $ID in
|
||||||
fedora|rhel|centos|foobar)
|
fedora|rhel|centos|foobar)
|
||||||
@ -225,6 +181,9 @@ if [ -z "$BUILD" ]; then
|
|||||||
opensuse)
|
opensuse)
|
||||||
BUILD=suse
|
BUILD=suse
|
||||||
;;
|
;;
|
||||||
|
alt|basealt|altlinux)
|
||||||
|
BUILD=alt
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
BUILD="$ID"
|
BUILD="$ID"
|
||||||
;;
|
;;
|
||||||
@ -235,6 +194,8 @@ if [ -z "$BUILD" ]; then
|
|||||||
BUILD=debian
|
BUILD=debian
|
||||||
elif [ -f /etc/gentoo-release ]; then
|
elif [ -f /etc/gentoo-release ]; then
|
||||||
BUILD=gentoo
|
BUILD=gentoo
|
||||||
|
elif [ -f /etc/altlinux-release ]; then
|
||||||
|
BUILD=alt
|
||||||
elif [ -f /etc/redhat-release ]; then
|
elif [ -f /etc/redhat-release ]; then
|
||||||
BUILD=redhat
|
BUILD=redhat
|
||||||
elif [ -f /etc/SuSE-release ]; then
|
elif [ -f /etc/SuSE-release ]; then
|
||||||
@ -297,13 +258,14 @@ case "$HOST" in
|
|||||||
openwrt)
|
openwrt)
|
||||||
echo "Installing Openwrt-specific configuration..."
|
echo "Installing Openwrt-specific configuration..."
|
||||||
;;
|
;;
|
||||||
|
alt)
|
||||||
|
echo "Installing ALT-specific configuration...";
|
||||||
|
;;
|
||||||
linux)
|
linux)
|
||||||
echo "ERROR: Shorewall-init is not supported on this system" >&2
|
fatal_error "Shorewall-init is not supported on this system"
|
||||||
exit 1
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "ERROR: Unsupported HOST distribution: \"$HOST\"" >&2
|
fatal_error "Unsupported HOST distribution: \"$HOST\""
|
||||||
exit 1;
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -315,30 +277,27 @@ if [ -n "$DESTDIR" ]; then
|
|||||||
OWNERSHIP=""
|
OWNERSHIP=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
make_directory ${DESTDIR}${INITDIR} 0755
|
make_parent_directory ${DESTDIR}${INITDIR} 0755
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Installing Shorewall Init Version $VERSION"
|
echo "Installing $Product Version $VERSION"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check for /usr/share/shorewall-init/version
|
# Check for /usr/share/shorewall-init/version
|
||||||
#
|
#
|
||||||
if [ -f ${DESTDIR}${SHAREDIR}/shorewall-init/version ]; then
|
if [ -f ${DESTDIR}${SHAREDIR}/$PRODUCT/version ]; then
|
||||||
first_install=""
|
first_install=""
|
||||||
else
|
else
|
||||||
first_install="Yes"
|
first_install="Yes"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$DESTDIR" ]; then
|
[ -n "$DESTDIR" ] && make_parent_directory ${DESTDIR}${CONFDIR}/logrotate.d 0755
|
||||||
mkdir -p ${DESTDIR}${CONFDIR}/logrotate.d
|
|
||||||
chmod 0755 ${DESTDIR}${CONFDIR}/logrotate.d
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install the Firewall Script
|
# Install the Firewall Script
|
||||||
#
|
#
|
||||||
if [ -n "$INITFILE" ]; then
|
if [ -n "$INITFILE" ]; then
|
||||||
mkdir -p ${DESTDIR}${INITDIR}
|
make_parent_directory ${DESTDIR}${INITDIR} 0755
|
||||||
install_file $INITSOURCE ${DESTDIR}${INITDIR}/$INITFILE 0544
|
install_file $INITSOURCE ${DESTDIR}${INITDIR}/$INITFILE 0544
|
||||||
[ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${INITDIR}/$INITFILE
|
[ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${INITDIR}/$INITFILE
|
||||||
|
|
||||||
@ -357,25 +316,21 @@ if [ -z "${SERVICEDIR}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$SERVICEDIR" ]; then
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
mkdir -p ${DESTDIR}${SERVICEDIR}
|
make_parent_directory ${DESTDIR}${SERVICEDIR} 0755
|
||||||
[ -z "$SERVICEFILE" ] && SERVICEFILE=$PRODUCT.service
|
[ -z "$SERVICEFILE" ] && SERVICEFILE=$PRODUCT.service
|
||||||
install_file $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service 0644
|
install_file $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service 0644
|
||||||
[ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
|
[ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
|
||||||
echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
|
echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
|
||||||
if [ -n "$DESTDIR" -o $configure -eq 0 ]; then
|
[ -n "$DESTDIR" -o $configure -eq 0 ] && make_parent_directory ${DESTDIR}${SBINDIR} 0755
|
||||||
mkdir -p ${DESTDIR}${SBINDIR}
|
install_file $PRODUCT ${DESTDIR}${SBINDIR}/$PRODUCT 0700
|
||||||
chmod 0755 ${DESTDIR}${SBINDIR}
|
[ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SBINDIR}/$PRODUCT
|
||||||
fi
|
echo "CLI installed as ${DESTDIR}${SBINDIR}/$PRODUCT"
|
||||||
install_file shorewall-init ${DESTDIR}${SBINDIR}/shorewall-init 0700
|
|
||||||
[ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SBINDIR}/shorewall-init
|
|
||||||
echo "CLI installed as ${DESTDIR}${SBINDIR}/shorewall-init"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Create /usr/share/shorewall-init if needed
|
# Create /usr/share/shorewall-init if needed
|
||||||
#
|
#
|
||||||
mkdir -p ${DESTDIR}${SHAREDIR}/shorewall-init
|
make_parent_directory ${DESTDIR}${SHAREDIR}/$PRODUCT 0755
|
||||||
chmod 0755 ${DESTDIR}${SHAREDIR}/shorewall-init
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install logrotate file
|
# Install logrotate file
|
||||||
@ -388,55 +343,52 @@ fi
|
|||||||
#
|
#
|
||||||
# Create the version file
|
# Create the version file
|
||||||
#
|
#
|
||||||
echo "$VERSION" > ${DESTDIR}/${SHAREDIR}/shorewall-init/version
|
echo "$VERSION" > ${DESTDIR}/${SHAREDIR}/$PRODUCT/version
|
||||||
chmod 0644 ${DESTDIR}${SHAREDIR}/shorewall-init/version
|
chmod 0644 ${DESTDIR}${SHAREDIR}/$PRODUCT/version
|
||||||
|
|
||||||
#
|
#
|
||||||
# Remove and create the symbolic link to the init script
|
# Remove and create the symbolic link to the init script
|
||||||
#
|
#
|
||||||
if [ -z "$DESTDIR" ]; then
|
if [ -z "$DESTDIR" ]; then
|
||||||
rm -f ${SHAREDIR}/shorewall-init/init
|
rm -f ${SHAREDIR}/$PRODUCT/init
|
||||||
ln -s ${INITDIR}/${INITFILE} ${SHAREDIR}/shorewall-init/init
|
ln -s ${INITDIR}/${INITFILE} ${SHAREDIR}/$PRODUCT/init
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $HOST = debian ]; then
|
if [ $HOST = debian ]; then
|
||||||
if [ -n "${DESTDIR}" ]; then
|
if [ -n "${DESTDIR}" ]; then
|
||||||
mkdir -p ${DESTDIR}${ETC}/network/if-up.d/
|
make_parent_directory ${DESTDIR}${ETC}/network/if-up.d 0755
|
||||||
mkdir -p ${DESTDIR}${ETC}/network/if-down.d/
|
make_parent_directory ${DESTDIR}${ETC}/network/if-post-down.d 0755
|
||||||
mkdir -p ${DESTDIR}${ETC}/network/if-post-down.d/
|
|
||||||
elif [ $configure -eq 0 ]; then
|
elif [ $configure -eq 0 ]; then
|
||||||
mkdir -p ${DESTDIR}${CONFDIR}/network/if-up.d/
|
make_parent_directory ${CONFDIR}/network/if-up.d 0755
|
||||||
mkdir -p ${DESTDIR}${CONFDIR}/network/if-down.d/
|
make_parent_directory ${CONFDIR}/network/if-post-down.d 0755
|
||||||
mkdir -p ${DESTDIR}${CONFDIR}/network/if-post-down.d/
|
rm -f ${CONFDIR}/network/if-down.d/shorewall
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f ${DESTDIR}${CONFDIR}/default/shorewall-init ]; then
|
if [ ! -f ${DESTDIR}${CONFDIR}/default/$PRODUCT ]; then
|
||||||
if [ -n "${DESTDIR}" ]; then
|
[ -n "${DESTDIR}" ] && make_parent_directory ${DESTDIR}${ETC}/default 0755
|
||||||
mkdir -p ${DESTDIR}${ETC}/default
|
|
||||||
fi
|
|
||||||
|
|
||||||
[ $configure -eq 1 ] || mkdir -p ${DESTDIR}${CONFDIR}/default
|
[ $configure -eq 1 ] || make_parent_directory ${DESTDIR}${CONFDIR}/default 0755
|
||||||
install_file sysconfig ${DESTDIR}${ETC}/default/shorewall-init 0644
|
install_file ${SYSCONFFILE} ${DESTDIR}${ETC}/default/$PRODUCT 0644
|
||||||
echo "sysconfig file installed in ${DESTDIR}${SYSCONFDIR}/${PRODUCT}"
|
echo "${SYSCONFFILE} file installed in ${DESTDIR}${SYSCONFDIR}/${PRODUCT}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IFUPDOWN=ifupdown.debian.sh
|
IFUPDOWN=ifupdown.debian.sh
|
||||||
else
|
else
|
||||||
if [ -n "$DESTDIR" ]; then
|
if [ -n "$DESTDIR" ]; then
|
||||||
mkdir -p ${DESTDIR}${SYSCONFDIR}
|
make_parent_directory ${DESTDIR}${SYSCONFDIR} 0755
|
||||||
|
|
||||||
if [ -z "$RPM" ]; then
|
if [ -z "$RPM" ]; then
|
||||||
if [ $HOST = suse ]; then
|
if [ $HOST = suse ]; then
|
||||||
mkdir -p ${DESTDIR}${ETC}/sysconfig/network/if-up.d
|
make_parent_directory ${DESTDIR}${ETC}/sysconfig/network/if-up.d 0755
|
||||||
mkdir -p ${DESTDIR}${ETC}/sysconfig/network/if-down.d
|
make_parent_directory ${DESTDIR}${ETC}/sysconfig/network/if-down.d 0755
|
||||||
elif [ $HOST = gentoo ]; then
|
elif [ $HOST = gentoo ]; then
|
||||||
# Gentoo does not support if-{up,down}.d
|
# Gentoo does not support if-{up,down}.d
|
||||||
/bin/true
|
/bin/true
|
||||||
elif [ $HOST = openwrt ]; then
|
elif [ $HOST = openwrt ]; then
|
||||||
# Not implemented on openwrt
|
# Not implemented on OpenWRT
|
||||||
/bin/true
|
/bin/true
|
||||||
else
|
elif [ "$HOST" != debian ]; then
|
||||||
mkdir -p ${DESTDIR}/${ETC}/NetworkManager/dispatcher.d
|
make_parent_directory ${DESTDIR}/${ETC}/NetworkManager/dispatcher.d 0755
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -458,33 +410,36 @@ if [ $HOST != openwrt ]; then
|
|||||||
|
|
||||||
[ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ifupdown
|
[ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ifupdown
|
||||||
|
|
||||||
mkdir -p ${DESTDIR}${LIBEXECDIR}/shorewall-init
|
make_parent_directory ${DESTDIR}${LIBEXECDIR}/$PRODUCT 0755
|
||||||
|
|
||||||
install_file ifupdown ${DESTDIR}${LIBEXECDIR}/shorewall-init/ifupdown 0544
|
install_file ifupdown ${DESTDIR}${LIBEXECDIR}/$PRODUCT/ifupdown 0544
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d ${DESTDIR}/etc/NetworkManager ]; then
|
if [ -d ${DESTDIR}/etc/NetworkManager ]; then
|
||||||
[ $configure -eq 1 ] || mkdir -p ${DESTDIR}${CONFDIR}/NetworkManager/dispatcher.d/
|
if [ "$HOST" = debian ]; then
|
||||||
install_file ifupdown ${DESTDIR}${ETC}/NetworkManager/dispatcher.d/01-shorewall 0544
|
rm -f ${DESTDIR}${ETC}/NetworkManager/dispatcher.d/01-shorewall
|
||||||
|
else
|
||||||
|
[ $configure -eq 1 ] || make_parent_directory ${DESTDIR}${CONFDIR}/NetworkManager/dispatcher.d 0755
|
||||||
|
install_file ifupdown ${DESTDIR}${ETC}/NetworkManager/dispatcher.d/01-shorewall 0544
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case $HOST in
|
case $HOST in
|
||||||
debian)
|
debian)
|
||||||
if [ $configure -eq 1 ]; then
|
if [ $configure -eq 1 ]; then
|
||||||
install_file ifupdown ${DESTDIR}/etc/network/if-up.d/shorewall 0544
|
install_file ifupdown ${DESTDIR}/etc/network/if-up.d/shorewall 0544
|
||||||
install_file ifupdown ${DESTDIR}/etc/network/if-down.d/shorewall 0544
|
|
||||||
install_file ifupdown ${DESTDIR}/etc/network/if-post-down.d/shorewall 0544
|
install_file ifupdown ${DESTDIR}/etc/network/if-post-down.d/shorewall 0544
|
||||||
|
rm -f ${DESTDIR}/etc/network/if-down.d/shorewall
|
||||||
else
|
else
|
||||||
install_file ifupdown ${DESTDIR}${CONFDIR}/network/if-up.d/shorewall 0544
|
install_file ifupdown ${DESTDIR}${CONFDIR}/network/if-up.d/shorewall 0544
|
||||||
install_file ifupdown ${DESTDIR}${CONFDIR}/network/if-down.d/shorewall 0544
|
|
||||||
install_file ifupdown ${DESTDIR}${CONFDIR}/network/if-post-down.d/shorewall 0544
|
install_file ifupdown ${DESTDIR}${CONFDIR}/network/if-post-down.d/shorewall 0544
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
suse)
|
suse)
|
||||||
if [ -z "$RPM" ]; then
|
if [ -z "$RPM" ]; then
|
||||||
if [ $configure -eq 0 ]; then
|
if [ $configure -eq 0 ]; then
|
||||||
mkdir -p ${DESTDIR}${SYSCONFDIR}/network/if-up.d/
|
make_parent_directory ${DESTDIR}${SYSCONFDIR}/network/if-up.d 0755
|
||||||
mkdir -p ${DESTDIR}${SYSCONFDIR}/network/if-down.d/
|
make_parent_directory ${DESTDIR}${SYSCONFDIR}/network/if-down.d 0755
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_file ifupdown ${DESTDIR}${SYSCONFDIR}/network/if-up.d/shorewall 0544
|
install_file ifupdown ${DESTDIR}${SYSCONFDIR}/network/if-up.d/shorewall 0544
|
||||||
@ -518,17 +473,17 @@ if [ -z "$DESTDIR" ]; then
|
|||||||
if [ $HOST = debian ]; then
|
if [ $HOST = debian ]; then
|
||||||
if [ -n "$SERVICEDIR" ]; then
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
if systemctl enable ${PRODUCT}.service; then
|
if systemctl enable ${PRODUCT}.service; then
|
||||||
echo "Shorewall Init will start automatically at boot"
|
echo "$Product will start automatically at boot"
|
||||||
fi
|
fi
|
||||||
elif mywhich insserv; then
|
elif mywhich insserv; then
|
||||||
if insserv ${INITDIR}/shorewall-init; then
|
if insserv ${INITDIR}/$PRODUCT; then
|
||||||
echo "Shorewall Init will start automatically at boot"
|
echo "$Product will start automatically at boot"
|
||||||
else
|
else
|
||||||
cant_autostart
|
cant_autostart
|
||||||
fi
|
fi
|
||||||
elif mywhich update-rc.d ; then
|
elif mywhich update-rc.d ; then
|
||||||
if update-rc.d $PRODUCT enable; then
|
if update-rc.d $PRODUCT enable; then
|
||||||
echo "$PRODUCT will start automatically at boot"
|
echo "$Product will start automatically at boot"
|
||||||
echo "Set startup=1 in ${CONFDIR}/default/$PRODUCT to enable"
|
echo "Set startup=1 in ${CONFDIR}/default/$PRODUCT to enable"
|
||||||
else
|
else
|
||||||
cant_autostart
|
cant_autostart
|
||||||
@ -549,31 +504,31 @@ if [ -z "$DESTDIR" ]; then
|
|||||||
/bin/true
|
/bin/true
|
||||||
else
|
else
|
||||||
if [ -n "$SERVICEDIR" ]; then
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
if systemctl enable shorewall-init.service; then
|
if systemctl enable ${PRODUCT}.service; then
|
||||||
echo "Shorewall Init will start automatically at boot"
|
echo "$Product will start automatically at boot"
|
||||||
fi
|
fi
|
||||||
elif [ -x ${SBINDIR}/insserv -o -x /usr${SBINDIR}/insserv ]; then
|
elif [ -x ${SBINDIR}/insserv -o -x /usr${SBINDIR}/insserv ]; then
|
||||||
if insserv ${INITDIR}/shorewall-init ; then
|
if insserv ${INITDIR}/$PRODUCT ; then
|
||||||
echo "Shorewall Init will start automatically at boot"
|
echo "$Product will start automatically at boot"
|
||||||
else
|
else
|
||||||
cant_autostart
|
cant_autostart
|
||||||
fi
|
fi
|
||||||
elif [ -x ${SBINDIR}/chkconfig -o -x /usr${SBINDIR}/chkconfig ]; then
|
elif [ -x ${SBINDIR}/chkconfig -o -x /usr${SBINDIR}/chkconfig ]; then
|
||||||
if chkconfig --add shorewall-init ; then
|
if chkconfig --add $PRODUCT ; then
|
||||||
echo "Shorewall Init will start automatically in run levels as follows:"
|
echo "$Product will start automatically at boot"
|
||||||
chkconfig --list shorewall-init
|
chkconfig --list $PRODUCT
|
||||||
else
|
else
|
||||||
cant_autostart
|
cant_autostart
|
||||||
fi
|
fi
|
||||||
elif [ -x ${SBINDIR}/rc-update ]; then
|
elif [ -x ${SBINDIR}/rc-update ]; then
|
||||||
if rc-update add shorewall-init default; then
|
if rc-update add $PRODUCT default; then
|
||||||
echo "Shorewall Init will start automatically at boot"
|
echo "$Product will start automatically at boot"
|
||||||
else
|
else
|
||||||
cant_autostart
|
cant_autostart
|
||||||
fi
|
fi
|
||||||
elif [ $HOST = openwrt -a -f ${CONFDIR}/rc.common ]; then
|
elif [ $HOST = openwrt -a -f ${CONFDIR}/rc.common ]; then
|
||||||
/etc/init.d/$PRODUCT enable
|
/etc/init.d/$PRODUCT enable
|
||||||
if /etc/init.d/shorewall-init enabled; then
|
if /etc/init.d/$PRODUCT enabled; then
|
||||||
echo "$Product will start automatically at boot"
|
echo "$Product will start automatically at boot"
|
||||||
else
|
else
|
||||||
cant_autostart
|
cant_autostart
|
||||||
@ -587,11 +542,11 @@ else
|
|||||||
if [ $configure -eq 1 -a -n "$first_install" ]; then
|
if [ $configure -eq 1 -a -n "$first_install" ]; then
|
||||||
if [ $HOST = debian -a -z "$SERVICEDIR" ]; then
|
if [ $HOST = debian -a -z "$SERVICEDIR" ]; then
|
||||||
if [ -n "${DESTDIR}" ]; then
|
if [ -n "${DESTDIR}" ]; then
|
||||||
mkdir -p ${DESTDIR}/etc/rcS.d
|
make_parent_directory ${DESTDIR}/etc/rcS.d 0755
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ln -sf ../init.d/shorewall-init ${DESTDIR}${CONFDIR}/rcS.d/S38shorewall-init
|
ln -sf ../init.d/$PRODUCT ${DESTDIR}${CONFDIR}/rcS.d/S38${PRODUCT}
|
||||||
echo "Shorewall Init will start automatically at boot"
|
echo "$Product will start automatically at boot"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -602,8 +557,8 @@ if [ -d ${DESTDIR}/etc/ppp ]; then
|
|||||||
case $HOST in
|
case $HOST in
|
||||||
debian|suse)
|
debian|suse)
|
||||||
for directory in ip-up.d ip-down.d ipv6-up.d ipv6-down.d; do
|
for directory in ip-up.d ip-down.d ipv6-up.d ipv6-down.d; do
|
||||||
mkdir -p ${DESTDIR}/etc/ppp/$directory #SuSE doesn't create the IPv6 directories
|
make_parent_directory ${DESTDIR}/etc/ppp/$directory 0755 #SuSE doesn't create the IPv6 directories
|
||||||
cp -fp ${DESTDIR}${LIBEXECDIR}/shorewall-init/ifupdown ${DESTDIR}${CONFDIR}/ppp/$directory/shorewall
|
cp -fp ${DESTDIR}${LIBEXECDIR}/$PRODUCT/ifupdown ${DESTDIR}${CONFDIR}/ppp/$directory/shorewall
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
redhat)
|
redhat)
|
||||||
@ -614,19 +569,19 @@ if [ -d ${DESTDIR}/etc/ppp ]; then
|
|||||||
FILE=${DESTDIR}/etc/ppp/$file
|
FILE=${DESTDIR}/etc/ppp/$file
|
||||||
if [ -f $FILE ]; then
|
if [ -f $FILE ]; then
|
||||||
if grep -qF Shorewall-based $FILE ; then
|
if grep -qF Shorewall-based $FILE ; then
|
||||||
cp -fp ${DESTDIR}${LIBEXECDIR}/shorewall-init/ifupdown $FILE
|
cp -fp ${DESTDIR}${LIBEXECDIR}/$PRODUCT/ifupdown $FILE
|
||||||
else
|
else
|
||||||
echo "$FILE already exists -- ppp devices will not be handled"
|
echo "$FILE already exists -- ppp devices will not be handled"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
cp -fp ${DESTDIR}${LIBEXECDIR}/shorewall-init/ifupdown $FILE
|
cp -fp ${DESTDIR}${LIBEXECDIR}/$PRODUCT/ifupdown $FILE
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
#
|
#
|
||||||
# Report Success
|
# Report Success
|
||||||
#
|
#
|
||||||
echo "shorewall Init Version $VERSION Installed"
|
echo "shorewall Init Version $VERSION Installed"
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.0
|
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.2
|
||||||
#
|
#
|
||||||
# (c) 2012-2014 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2012-2014 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# On most distributions, this file should be called
|
# On most distributions, this file should be called
|
||||||
# /etc/init.d/shorewall.
|
# /etc/init.d/shorewall.
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -25,6 +25,7 @@
|
|||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# set the STATEDIR variable
|
# set the STATEDIR variable
|
||||||
|
|
||||||
setstatedir() {
|
setstatedir() {
|
||||||
local statedir
|
local statedir
|
||||||
if [ -f ${CONFDIR}/${PRODUCT}/vardir ]; then
|
if [ -f ${CONFDIR}/${PRODUCT}/vardir ]; then
|
||||||
@ -33,13 +34,76 @@ setstatedir() {
|
|||||||
|
|
||||||
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
[ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT}
|
||||||
|
|
||||||
if [ $PRODUCT = shorewall -o $PRODUCT = shorewall6 ]; then
|
if [ -x ${STATEDIR}/firewall ]; then
|
||||||
${SBINDIR}/$PRODUCT ${OPTIONS} compile -c
|
return 0
|
||||||
else
|
elif [ $PRODUCT = shorewall ]; then
|
||||||
return 0
|
${SBINDIR}/shorewall compile
|
||||||
|
elif [ $PRODUCT = shorewall6 ]; then
|
||||||
|
${SBINDIR}/shorewall -6 compile
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Initialize the firewalls
|
||||||
|
|
||||||
|
shorewall_init_start () {
|
||||||
|
local PRODUCT
|
||||||
|
local STATEDIR
|
||||||
|
|
||||||
|
printf "Initializing \"Shorewall-based firewalls\": "
|
||||||
|
|
||||||
|
if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
|
||||||
|
ipset -R < "$SAVE_IPSETS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for PRODUCT in $PRODUCTS; do
|
||||||
|
if setstatedir; then
|
||||||
|
#
|
||||||
|
# Run in a sub-shell to avoid name collisions
|
||||||
|
#
|
||||||
|
(
|
||||||
|
if ! ${STATEDIR}/firewall status > /dev/null 2>&1; then
|
||||||
|
${STATEDIR}/firewall ${OPTIONS} stop
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Clear the firewalls
|
||||||
|
|
||||||
|
shorewall_init_stop () {
|
||||||
|
local PRODUCT
|
||||||
|
local STATEDIR
|
||||||
|
|
||||||
|
printf "Clearing \"Shorewall-based firewalls\": "
|
||||||
|
|
||||||
|
for PRODUCT in $PRODUCTS; do
|
||||||
|
if setstatedir; then
|
||||||
|
#
|
||||||
|
# Run in sub-shell to avoid name collisions
|
||||||
|
#
|
||||||
|
(
|
||||||
|
if ! ${STATEDIR}/firewall status > /dev/null 2>&1; then
|
||||||
|
${STATEDIR}/firewall ${OPTIONS} clear
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$SAVE_IPSETS" ]; then
|
||||||
|
mkdir -p $(dirname "$SAVE_IPSETS")
|
||||||
|
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
||||||
|
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS" || rm -f "${SAVE_IPSETS}.tmp"
|
||||||
|
else
|
||||||
|
rm -f "${SAVE_IPSETS}.tmp"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# This is modified by the installer when ${SHAREDIR} <> /usr/share
|
# This is modified by the installer when ${SHAREDIR} <> /usr/share
|
||||||
#
|
#
|
||||||
@ -57,64 +121,12 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialize the firewall
|
|
||||||
shorewall_start () {
|
|
||||||
local PRODUCT
|
|
||||||
local STATEDIR
|
|
||||||
|
|
||||||
echo -n "Initializing \"Shorewall-based firewalls\": "
|
|
||||||
for PRODUCT in $PRODUCTS; do
|
|
||||||
if setstatedir; then
|
|
||||||
if [ -x ${STATEDIR}/firewall ]; then
|
|
||||||
#
|
|
||||||
# Run in a sub-shell to avoid name collisions
|
|
||||||
#
|
|
||||||
(
|
|
||||||
if ! ${STATEDIR}/firewall status > /dev/null 2>&1; then
|
|
||||||
${STATEDIR}/firewall ${OPTIONS} stop
|
|
||||||
fi
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
|
|
||||||
ipset -R < "$SAVE_IPSETS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# Clear the firewall
|
|
||||||
shorewall_stop () {
|
|
||||||
local PRODUCT
|
|
||||||
local STATEDIR
|
|
||||||
|
|
||||||
echo -n "Clearing \"Shorewall-based firewalls\": "
|
|
||||||
for PRODUCT in $PRODUCTS; do
|
|
||||||
if setstatedir; then
|
|
||||||
if [ -x ${STATEDIR}/firewall ]; then
|
|
||||||
${STATEDIR}/firewall ${OPTIONS} clear
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -n "$SAVE_IPSETS" ]; then
|
|
||||||
mkdir -p $(dirname "$SAVE_IPSETS")
|
|
||||||
if ipset -S > "${SAVE_IPSETS}.tmp"; then
|
|
||||||
grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
shorewall_start
|
shorewall_init_start
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
shorewall_stop
|
shorewall_init_stop
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: $0 {start|stop}"
|
echo "Usage: $0 {start|stop}"
|
||||||
|
@ -12,7 +12,7 @@ Wants=network-pre.target
|
|||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
EnvironmentFile=-/etc/sysconfig/shorewall-init
|
EnvironmentFile=-/etc/sysconfig/shorewall-init
|
||||||
StandardOutput=syslog
|
StandardOutput=journal
|
||||||
ExecStart=/sbin/shorewall-init start
|
ExecStart=/sbin/shorewall-init start
|
||||||
ExecStop=/sbin/shorewall-init stop
|
ExecStop=/sbin/shorewall-init stop
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#
|
#
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Shorewall firewall (bootup security)
|
Description=Shorewall firewall (bootup security)
|
||||||
|
Documentation=man:shorewall-init(8)
|
||||||
Before=network.target
|
Before=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Script to back uninstall Shoreline Firewall
|
# Script to back uninstall Shoreline Firewall Init
|
||||||
#
|
#
|
||||||
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
@ -26,62 +26,34 @@
|
|||||||
# You may only use this script to uninstall the version
|
# You may only use this script to uninstall the version
|
||||||
# shown below. Simply run this script to remove Shorewall Firewall
|
# shown below. Simply run this script to remove Shorewall Firewall
|
||||||
|
|
||||||
VERSION=xxx #The Build script inserts the actual version
|
VERSION=xxx # The Build script inserts the actual version
|
||||||
PRODUCT=shorewall-init
|
PRODUCT=shorewall-init
|
||||||
Product="Shorewall Init"
|
Product="Shorewall Init"
|
||||||
|
|
||||||
usage() # $1 = exit status
|
usage() # $1 = exit status
|
||||||
{
|
{
|
||||||
ME=$(basename $0)
|
ME=$(basename $0)
|
||||||
echo "usage: $ME [ <shorewallrc file> ]"
|
echo "usage: $ME [ <option> ] [ <shorewallrc file> ]"
|
||||||
|
echo "where <option> is one of"
|
||||||
|
echo " -h"
|
||||||
|
echo " -v"
|
||||||
|
echo " -n"
|
||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
fatal_error()
|
|
||||||
{
|
|
||||||
echo " ERROR: $@" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
qt()
|
|
||||||
{
|
|
||||||
"$@" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
split() {
|
|
||||||
local ifs
|
|
||||||
ifs=$IFS
|
|
||||||
IFS=:
|
|
||||||
set -- $1
|
|
||||||
echo $*
|
|
||||||
IFS=$ifs
|
|
||||||
}
|
|
||||||
|
|
||||||
mywhich() {
|
|
||||||
local dir
|
|
||||||
|
|
||||||
for dir in $(split $PATH); do
|
|
||||||
if [ -x $dir/$1 ]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
return 2
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_file() # $1 = file to restore
|
|
||||||
{
|
|
||||||
if [ -f $1 -o -L $1 ] ; then
|
|
||||||
rm -f $1
|
|
||||||
echo "$1 Removed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Change to the directory containing this script
|
# Change to the directory containing this script
|
||||||
#
|
#
|
||||||
cd "$(dirname $0)"
|
cd "$(dirname $0)"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Source common functions
|
||||||
|
#
|
||||||
|
. ./lib.uninstaller || { echo "ERROR: Can not load common functions." >&2; exit 1; }
|
||||||
|
|
||||||
|
#
|
||||||
|
# Parse the run line
|
||||||
|
#
|
||||||
finished=0
|
finished=0
|
||||||
configure=1
|
configure=1
|
||||||
|
|
||||||
@ -118,17 +90,17 @@ while [ $finished -eq 0 ]; do
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
#
|
#
|
||||||
# Read the RC file
|
# Read the RC file
|
||||||
#
|
#
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
if [ -f ./shorewallrc ]; then
|
if [ -f ./shorewallrc ]; then
|
||||||
. ./shorewallrc
|
. ./shorewallrc || fatal_error "Can not load the RC file: ./shorewallrc"
|
||||||
elif [ -f ~/.shorewallrc ]; then
|
elif [ -f ~/.shorewallrc ]; then
|
||||||
. ~/.shorewallrc || exit 1
|
. ~/.shorewallrc || fatal_error "Can not load the RC file: ~/.shorewallrc"
|
||||||
file=./.shorewallrc
|
|
||||||
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
||||||
. /usr/share/shorewall/shorewallrc
|
. /usr/share/shorewall/shorewallrc || fatal_error "Can not load the RC file: /usr/share/shorewall/shorewallrc"
|
||||||
else
|
else
|
||||||
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
||||||
fi
|
fi
|
||||||
@ -138,72 +110,72 @@ elif [ $# -eq 1 ]; then
|
|||||||
/*|.*)
|
/*|.*)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
file=./$file
|
file=./$file || exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
. $file || exit 1
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
else
|
else
|
||||||
usage 1
|
usage 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f ${SHAREDIR}/shorewall-init/version ]; then
|
if [ -f ${SHAREDIR}/$PRODUCT/version ]; then
|
||||||
INSTALLED_VERSION="$(cat ${SHAREDIR}/shorewall-init/version)"
|
INSTALLED_VERSION="$(cat ${SHAREDIR}/$PRODUCT/version)"
|
||||||
if [ "$INSTALLED_VERSION" != "$VERSION" ]; then
|
if [ "$INSTALLED_VERSION" != "$VERSION" ]; then
|
||||||
echo "WARNING: Shorewall Init Version $INSTALLED_VERSION is installed"
|
echo "WARNING: $Product Version $INSTALLED_VERSION is installed"
|
||||||
echo " and this is the $VERSION uninstaller."
|
echo " and this is the $VERSION uninstaller."
|
||||||
VERSION="$INSTALLED_VERSION"
|
VERSION="$INSTALLED_VERSION"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "WARNING: Shorewall Init Version $VERSION is not installed"
|
echo "WARNING: $Product Version $VERSION is not installed"
|
||||||
VERSION=""
|
VERSION=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -n "${LIBEXEC:=${SHAREDIR}}" ]
|
echo "Uninstalling $Product $VERSION"
|
||||||
|
|
||||||
echo "Uninstalling Shorewall Init $VERSION"
|
|
||||||
|
|
||||||
[ -n "$SANDBOX" ] && configure=0
|
[ -n "$SANDBOX" ] && configure=0
|
||||||
|
|
||||||
INITSCRIPT=${CONFDIR}/init.d/shorewall-init
|
[ -n "${LIBEXEC:=${SHAREDIR}}" ]
|
||||||
|
|
||||||
if [ -f "$INITSCRIPT" ]; then
|
remove_file ${SBINDIR}/$PRODUCT
|
||||||
|
|
||||||
|
FIREWALL=${CONFDIR}/init.d/$PRODUCT
|
||||||
|
|
||||||
|
if [ -f "$FIREWALL" ]; then
|
||||||
if [ $configure -eq 1 ]; then
|
if [ $configure -eq 1 ]; then
|
||||||
if [ $HOST = openwrt ]; then
|
if [ $HOST = openwrt ] ; then
|
||||||
if /etc/init.d/shorewall-init enabled; then
|
if /etc/init.d/$PRODUCT enabled; then
|
||||||
/etc/init.d/shorewall-init disable
|
/etc/init.d/$PRODUCT disable
|
||||||
fi
|
fi
|
||||||
elif mywhich updaterc.d ; then
|
|
||||||
updaterc.d shorewall-init remove
|
|
||||||
elif mywhich insserv ; then
|
elif mywhich insserv ; then
|
||||||
insserv -r $INITSCRIPT
|
insserv -r $FIREWALL
|
||||||
|
elif mywhich update-rc.d ; then
|
||||||
|
update-rc.d ${PRODUCT} remove
|
||||||
elif mywhich chkconfig ; then
|
elif mywhich chkconfig ; then
|
||||||
chkconfig --del $(basename $INITSCRIPT)
|
chkconfig --del $(basename $FIREWALL)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
remove_file $INITSCRIPT
|
remove_file $FIREWALL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "${SERVICEDIR}" ]; then
|
[ -z "${SERVICEDIR}" ] && SERVICEDIR="$SYSTEMD"
|
||||||
SERVICEDIR="$SYSTEMD"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$SERVICEDIR" ]; then
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
[ $configure -eq 1 ] && systemctl disable shorewall-init.service
|
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}.service
|
||||||
rm -f $SERVICEDIR/shorewall-init.service
|
remove_file $SERVICEDIR/${PRODUCT}.service
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $HOST = openwrt ]; then
|
if [ $HOST = openwrt ]; then
|
||||||
[ "$(readlink -q ${SBINDIR}/ifup-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifup-local
|
[ "$(readlink -q ${SBINDIR}/ifup-local)" = ${SHAREDIR}/$PRODUCT ] && remove_file ${SBINDIR}/ifup-local
|
||||||
[ "$(readlink -q ${SBINDIR}/ifdown-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifdown-local
|
[ "$(readlink -q ${SBINDIR}/ifdown-local)" = ${SHAREDIR}/$PRODUCT ] && remove_file ${SBINDIR}/ifdown-local
|
||||||
else
|
else
|
||||||
[ "$(readlink -m -q ${SBINDIR}/ifup-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifup-local
|
[ "$(readlink -m -q ${SBINDIR}/ifup-local)" = ${SHAREDIR}/$PRODUCT ] && remove_file ${SBINDIR}/ifup-local
|
||||||
[ "$(readlink -m -q ${SBINDIR}/ifdown-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifdown-local
|
[ "$(readlink -m -q ${SBINDIR}/ifdown-local)" = ${SHAREDIR}/$PRODUCT ] && remove_file ${SBINDIR}/ifdown-local
|
||||||
fi
|
fi
|
||||||
|
|
||||||
remove_file ${CONFDIR}/default/shorewall-init
|
remove_file ${CONFDIR}/default/$PRODUCT
|
||||||
remove_file ${CONFDIR}/sysconfig/shorewall-init
|
remove_file ${CONFDIR}/sysconfig/$PRODUCT
|
||||||
|
|
||||||
remove_file ${CONFDIR}/NetworkManager/dispatcher.d/01-shorewall
|
remove_file ${CONFDIR}/NetworkManager/dispatcher.d/01-shorewall
|
||||||
|
|
||||||
@ -228,10 +200,11 @@ if [ -d ${CONFDIR}/ppp ]; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${SBINDIR}/shorewall-init
|
remove_directory ${SHAREDIR}/$PRODUCT
|
||||||
rm -rf ${SHAREDIR}/shorewall-init
|
remove_directory ${LIBEXECDIR}/$PRODUCT
|
||||||
rm -rf ${LIBEXECDIR}/shorewall-init
|
remove_file ${CONFDIR}/logrotate.d/$PRODUCT
|
||||||
|
|
||||||
echo "Shorewall Init Uninstalled"
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Report Success
|
||||||
|
#
|
||||||
|
echo "$Product $VERSION Uninstalled"
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
# Shorewall Lite Makefile to restart if firewall script is newer than last restart
|
|
||||||
VARDIR=$(shell /sbin/shorewall-lite show vardir)
|
|
||||||
SHAREDIR=/usr/share/shorewall-lite
|
|
||||||
RESTOREFILE?=.restore
|
|
||||||
|
|
||||||
all: $(VARDIR)/$(RESTOREFILE)
|
|
||||||
|
|
||||||
$(VARDIR)/$(RESTOREFILE): $(VARDIR)/firewall
|
|
||||||
@/sbin/shorewall-lite -q save >/dev/null; \
|
|
||||||
if \
|
|
||||||
/sbin/shorewall-lite -q restart >/dev/null 2>&1; \
|
|
||||||
then \
|
|
||||||
/sbin/shorewall-lite -q save >/dev/null; \
|
|
||||||
else \
|
|
||||||
/sbin/shorewall-lite -q restart 2>&1 | tail >&2; exit 1; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
# EOF
|
|
1
Shorewall-lite/Shorewall-lite-targetname
Normal file
1
Shorewall-lite/Shorewall-lite-targetname
Normal file
@ -0,0 +1 @@
|
|||||||
|
5.2.4.1
|
26
Shorewall-lite/default.debian.systemd
Normal file
26
Shorewall-lite/default.debian.systemd
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#
|
||||||
|
# Global start/restart/reload/stop options
|
||||||
|
#
|
||||||
|
OPTIONS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start options
|
||||||
|
#
|
||||||
|
STARTOPTIONS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Restart options
|
||||||
|
#
|
||||||
|
RESTARTOPTIONS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Reload options
|
||||||
|
#
|
||||||
|
RELOADOPTIONS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Stop options
|
||||||
|
#
|
||||||
|
STOPOPTIONS=""
|
||||||
|
|
||||||
|
# EOF
|
@ -1,5 +1,5 @@
|
|||||||
# prevent startup with default configuration
|
# prevent startup with default configuration
|
||||||
# set the following varible to 1 in order to allow Shorewall-lite to start
|
# set the following variable to 1 in order to allow Shorewall-lite to start
|
||||||
|
|
||||||
startup=0
|
startup=0
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ startup=0
|
|||||||
# wait_interface=
|
# wait_interface=
|
||||||
|
|
||||||
#
|
#
|
||||||
# Startup options
|
# Global start/restart/reload/stop options
|
||||||
#
|
#
|
||||||
OPTIONS=""
|
OPTIONS=""
|
||||||
|
|
||||||
@ -30,6 +30,16 @@ STARTOPTIONS=""
|
|||||||
#
|
#
|
||||||
RESTARTOPTIONS=""
|
RESTARTOPTIONS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Reload options
|
||||||
|
#
|
||||||
|
RELOADOPTIONS=""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Stop options
|
||||||
|
#
|
||||||
|
STOPOPTIONS=""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Init Log -- if /dev/null, use the STARTUP_LOG defined in shorewall.conf
|
# Init Log -- if /dev/null, use the STARTUP_LOG defined in shorewall.conf
|
||||||
#
|
#
|
117
Shorewall-lite/init.alt.sh
Executable file
117
Shorewall-lite/init.alt.sh
Executable file
@ -0,0 +1,117 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Shorewall-Lite init script
|
||||||
|
#
|
||||||
|
# chkconfig: - 28 90
|
||||||
|
# description: Packet filtering firewall
|
||||||
|
#
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: shorewall-lite
|
||||||
|
# Required-Start: $local_fs $remote_fs $syslog $network
|
||||||
|
# Should-Start: $time $named
|
||||||
|
# Required-Stop:
|
||||||
|
# Default-Start: 3 4 5
|
||||||
|
# Default-Stop: 0 1 2 6
|
||||||
|
# Short-Description: Packet filtering firewall
|
||||||
|
# Description: The Shoreline Firewall, more commonly known as "Shorewall", is a
|
||||||
|
# Netfilter (iptables) based firewall
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
# Do not load RH compatibility interface.
|
||||||
|
WITHOUT_RC_COMPAT=1
|
||||||
|
|
||||||
|
# Source function library.
|
||||||
|
. /etc/init.d/functions
|
||||||
|
|
||||||
|
#
|
||||||
|
# The installer may alter this
|
||||||
|
#
|
||||||
|
. /usr/share/shorewall/shorewallrc
|
||||||
|
|
||||||
|
NAME="Shorewall-Lite firewall"
|
||||||
|
PROG="shorewall"
|
||||||
|
SHOREWALL="$SBINDIR/$PROG -l"
|
||||||
|
LOGGER="logger -i -t $PROG"
|
||||||
|
|
||||||
|
# Get startup options (override default)
|
||||||
|
OPTIONS=
|
||||||
|
|
||||||
|
SourceIfNotEmpty $SYSCONFDIR/${PROG}-lite
|
||||||
|
|
||||||
|
LOCKFILE="/var/lock/subsys/${PROG}-lite"
|
||||||
|
RETVAL=0
|
||||||
|
|
||||||
|
start() {
|
||||||
|
action $"Applying $NAME rules:" "$SHOREWALL" "$OPTIONS" start "$STARTOPTIONS" 2>&1 | "$LOGGER"
|
||||||
|
RETVAL=$?
|
||||||
|
[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
action $"Stoping $NAME :" "$SHOREWALL" "$OPTIONS" stop "$STOPOPTIONS" 2>&1 | "$LOGGER"
|
||||||
|
RETVAL=$?
|
||||||
|
[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
action $"Restarting $NAME rules: " "$SHOREWALL" "$OPTIONS" restart "$RESTARTOPTIONS" 2>&1 | "$LOGGER"
|
||||||
|
RETVAL=$?
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
reload() {
|
||||||
|
action $"Reloadinging $NAME rules: " "$SHOREWALL" "$OPTIONS" reload "$RELOADOPTIONS" 2>&1 | "$LOGGER"
|
||||||
|
RETVAL=$?
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
clear() {
|
||||||
|
action $"Clearing $NAME rules: " "$SHOREWALL" "$OPTIONS" clear 2>&1 | "$LOGGER"
|
||||||
|
RETVAL=$?
|
||||||
|
return $RETVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
# See how we were called.
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
restart
|
||||||
|
;;
|
||||||
|
reload)
|
||||||
|
reload
|
||||||
|
;;
|
||||||
|
clear)
|
||||||
|
clear
|
||||||
|
;;
|
||||||
|
condrestart)
|
||||||
|
if [ -e "$LOCKFILE" ]; then
|
||||||
|
restart
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
condreload)
|
||||||
|
if [ -e "$LOCKFILE" ]; then
|
||||||
|
restart
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
condstop)
|
||||||
|
if [ -e "$LOCKFILE" ]; then
|
||||||
|
stop
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
"$SHOREWALL" status
|
||||||
|
RETVAL=$?
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo $"Usage: ${0##*/} {start|stop|restart|reload|clear|condrestart|condstop|status}"
|
||||||
|
RETVAL=1
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $RETVAL
|
@ -13,8 +13,8 @@
|
|||||||
|
|
||||||
. /lib/lsb/init-functions
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
SRWL=/sbin/shorewall-lite
|
SRWL=/sbin/shorewall
|
||||||
SRWL_OPTS="-tvv"
|
SRWL_OPTS="-ltvv"
|
||||||
test -n ${INITLOG:=/var/log/shorewall-lite-init.log}
|
test -n ${INITLOG:=/var/log/shorewall-lite-init.log}
|
||||||
|
|
||||||
[ "$INITLOG" = "/dev/null" ] && SHOREWALL_INIT_SCRIPT=1 || SHOREWALL_INIT_SCRIPT=0
|
[ "$INITLOG" = "/dev/null" ] && SHOREWALL_INIT_SCRIPT=1 || SHOREWALL_INIT_SCRIPT=0
|
||||||
@ -85,7 +85,7 @@ fi
|
|||||||
|
|
||||||
# start the firewall
|
# start the firewall
|
||||||
shorewall_start () {
|
shorewall_start () {
|
||||||
echo -n "Starting \"Shorewall firewall\": "
|
printf "Starting \"Shorewall firewall\": "
|
||||||
$SRWL $SRWL_OPTS start $STARTOPTIONS >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
$SRWL $SRWL_OPTS start $STARTOPTIONS >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -93,10 +93,10 @@ shorewall_start () {
|
|||||||
# stop the firewall
|
# stop the firewall
|
||||||
shorewall_stop () {
|
shorewall_stop () {
|
||||||
if [ "$SAFESTOP" = 1 ]; then
|
if [ "$SAFESTOP" = 1 ]; then
|
||||||
echo -n "Stopping \"Shorewall Lite firewall\": "
|
printf "Stopping \"Shorewall Lite firewall\": "
|
||||||
$SRWL $SRWL_OPTS stop >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
$SRWL $SRWL_OPTS stop >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
||||||
else
|
else
|
||||||
echo -n "Clearing all \"Shorewall Lite firewall\" rules: "
|
printf "Clearing all \"Shorewall Lite firewall\" rules: "
|
||||||
$SRWL $SRWL_OPTS clear >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
$SRWL $SRWL_OPTS clear >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
@ -104,14 +104,14 @@ shorewall_stop () {
|
|||||||
|
|
||||||
# restart the firewall
|
# restart the firewall
|
||||||
shorewall_restart () {
|
shorewall_restart () {
|
||||||
echo -n "Restarting \"Shorewall firewall\": "
|
printf "Restarting \"Shorewall firewall\": "
|
||||||
$SRWL $SRWL_OPTS restart $RESTARTOPTIONS >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
$SRWL $SRWL_OPTS restart $RESTARTOPTIONS >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# refresh the firewall
|
# refresh the firewall
|
||||||
shorewall_refresh () {
|
shorewall_refresh () {
|
||||||
echo -n "Refreshing \"Shorewall firewall\": "
|
printf "Refreshing \"Shorewall firewall\": "
|
||||||
$SRWL $SRWL_OPTS refresh >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
$SRWL $SRWL_OPTS refresh >> $INITLOG 2>&1 && echo "done." || echo_notdone
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#
|
#
|
||||||
. /usr/share/shorewall/shorewallrc
|
. /usr/share/shorewall/shorewallrc
|
||||||
|
|
||||||
prog="shorewall-lite"
|
prog="shorewall -l"
|
||||||
shorewall="${SBINDIR}/$prog"
|
shorewall="${SBINDIR}/$prog"
|
||||||
logger="logger -i -t $prog"
|
logger="logger -i -t $prog"
|
||||||
lockfile="/var/lock/subsys/$prog"
|
lockfile="/var/lock/subsys/$prog"
|
||||||
@ -38,7 +38,7 @@ if [ -f ${SYSCONFDIR}/$prog ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
echo -n $"Starting Shorewall: "
|
printf $"Starting Shorewall: "
|
||||||
$shorewall $OPTIONS start $STARTOPTIONS 2>&1 | $logger
|
$shorewall $OPTIONS start $STARTOPTIONS 2>&1 | $logger
|
||||||
retval=${PIPESTATUS[0]}
|
retval=${PIPESTATUS[0]}
|
||||||
if [[ $retval == 0 ]]; then
|
if [[ $retval == 0 ]]; then
|
||||||
@ -52,7 +52,7 @@ start() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
echo -n $"Stopping Shorewall: "
|
printf $"Stopping Shorewall: "
|
||||||
$shorewall $OPTIONS stop 2>&1 | $logger
|
$shorewall $OPTIONS stop 2>&1 | $logger
|
||||||
retval=${PIPESTATUS[0]}
|
retval=${PIPESTATUS[0]}
|
||||||
if [[ $retval == 0 ]]; then
|
if [[ $retval == 0 ]]; then
|
||||||
@ -68,7 +68,7 @@ stop() {
|
|||||||
restart() {
|
restart() {
|
||||||
# Note that we don't simply stop and start since shorewall has a built in
|
# Note that we don't simply stop and start since shorewall has a built in
|
||||||
# restart which stops the firewall if running and then starts it.
|
# restart which stops the firewall if running and then starts it.
|
||||||
echo -n $"Restarting Shorewall: "
|
printf $"Restarting Shorewall: "
|
||||||
$shorewall $OPTIONS restart $RESTARTOPTIONS 2>&1 | $logger
|
$shorewall $OPTIONS restart $RESTARTOPTIONS 2>&1 | $logger
|
||||||
retval=${PIPESTATUS[0]}
|
retval=${PIPESTATUS[0]}
|
||||||
if [[ $retval == 0 ]]; then
|
if [[ $retval == 0 ]]; then
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
#
|
#
|
||||||
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V4.5
|
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.2
|
||||||
#
|
#
|
||||||
# (c) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2012,2014 - Tom Eastep (teastep@shorewall.net)
|
# (c) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2012,2014 - Tom Eastep (teastep@shorewall.net)
|
||||||
# (c) 2015 - Matt Darfeuille - (matdarf@gmail.com)
|
# (c) 2015 - Matt Darfeuille - (matdarf@gmail.com)
|
||||||
#
|
#
|
||||||
# On most distributions, this file should be called /etc/init.d/shorewall.
|
# On most distributions, this file should be called /etc/init.d/shorewall.
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -69,7 +69,7 @@ SHOREWALL_INIT_SCRIPT=1
|
|||||||
command="$action"
|
command="$action"
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
exec ${SBINDIR}/shorewall-lite $OPTIONS $command $STARTOPTIONS
|
exec ${SBINDIR}/shorewall -l $OPTIONS $command $STARTOPTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
boot() {
|
boot() {
|
||||||
@ -78,17 +78,17 @@ boot() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
restart() {
|
restart() {
|
||||||
exec ${SBINDIR}/shorewall-lite $OPTIONS $command $RESTARTOPTIONS
|
exec ${SBINDIR}/shorewall -l $OPTIONS $command $RESTARTOPTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
reload() {
|
reload() {
|
||||||
exec ${SBINDIR}/shorewall-lite $OPTIONS $command $RELOADOPTION
|
exec ${SBINDIR}/shorewall -l $OPTIONS $command $RELOADOPTION
|
||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
exec ${SBINDIR}/shorewall-lite $OPTIONS $command $STOPOPTIONS
|
exec ${SBINDIR}/shorewall -l $OPTIONS $command $STOPOPTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
status() {
|
status() {
|
||||||
exec ${SBINDIR}/shorewall-lite $OPTIONS $command $@
|
exec ${SBINDIR}/shorewall -l $OPTIONS $command $@
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
RCDLINKS="2,S41 3,S41 6,K41"
|
RCDLINKS="2,S41 3,S41 6,K41"
|
||||||
#
|
#
|
||||||
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V4.5
|
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.2
|
||||||
#
|
#
|
||||||
# (c) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2012,2014 - Tom Eastep (teastep@shorewall.net)
|
# (c) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2012,2014 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# On most distributions, this file should be called /etc/init.d/shorewall.
|
# On most distributions, this file should be called /etc/init.d/shorewall.
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V4.5
|
# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.2
|
||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
@ -8,7 +8,7 @@
|
|||||||
#
|
#
|
||||||
# On most distributions, this file should be called /etc/init.d/shorewall.
|
# On most distributions, this file should be called /etc/init.d/shorewall.
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Shorewall documentation is available at http://shorewall.net
|
# Shorewall documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
@ -22,62 +22,19 @@
|
|||||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
VERSION=xxx #The Build script inserts the actual version
|
VERSION=xxx # The Build script inserts the actual version
|
||||||
|
|
||||||
usage() # $1 = exit status
|
usage() # $1 = exit status
|
||||||
{
|
{
|
||||||
ME=$(basename $0)
|
ME=$(basename $0)
|
||||||
echo "usage: $ME [ <configuration-file> ]"
|
echo "usage: $ME [ <option> ] [ <shorewallrc file> ]"
|
||||||
echo " $ME -v"
|
echo "where <option> is one of"
|
||||||
echo " $ME -h"
|
echo " -h"
|
||||||
echo " $ME -n"
|
echo " -v"
|
||||||
|
echo " -n"
|
||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
fatal_error()
|
|
||||||
{
|
|
||||||
echo " ERROR: $@" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
split() {
|
|
||||||
local ifs
|
|
||||||
ifs=$IFS
|
|
||||||
IFS=:
|
|
||||||
set -- $1
|
|
||||||
echo $*
|
|
||||||
IFS=$ifs
|
|
||||||
}
|
|
||||||
|
|
||||||
qt()
|
|
||||||
{
|
|
||||||
"$@" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
mywhich() {
|
|
||||||
local dir
|
|
||||||
|
|
||||||
for dir in $(split $PATH); do
|
|
||||||
if [ -x $dir/$1 ]; then
|
|
||||||
echo $dir/$1
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
return 2
|
|
||||||
}
|
|
||||||
|
|
||||||
cant_autostart()
|
|
||||||
{
|
|
||||||
echo
|
|
||||||
echo "WARNING: Unable to configure $Product to start automatically at boot" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
delete_file() # $1 = file to delete
|
|
||||||
{
|
|
||||||
rm -f $1
|
|
||||||
}
|
|
||||||
|
|
||||||
install_file() # $1 = source $2 = target $3 = mode
|
install_file() # $1 = source $2 = target $3 = mode
|
||||||
{
|
{
|
||||||
if cp -f $1 $2; then
|
if cp -f $1 $2; then
|
||||||
@ -96,25 +53,12 @@ install_file() # $1 = source $2 = target $3 = mode
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
make_directory() # $1 = directory , $2 = mode
|
|
||||||
{
|
|
||||||
mkdir -p $1
|
|
||||||
chmod 755 $1
|
|
||||||
[ -n "$OWNERSHIP" ] && chown $OWNERSHIP $1
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
require()
|
|
||||||
{
|
|
||||||
eval [ -n "\$$1" ] || fatal_error "Required option $1 not set"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Change to the directory containing this script
|
# Change to the directory containing this script
|
||||||
#
|
#
|
||||||
cd "$(dirname $0)"
|
cd "$(dirname $0)"
|
||||||
|
|
||||||
if [ -f shorewall-lite ]; then
|
if [ -f shorewall-lite.service ]; then
|
||||||
PRODUCT=shorewall-lite
|
PRODUCT=shorewall-lite
|
||||||
Product="Shorewall Lite"
|
Product="Shorewall Lite"
|
||||||
else
|
else
|
||||||
@ -122,6 +66,11 @@ else
|
|||||||
Product="Shorewall6 Lite"
|
Product="Shorewall6 Lite"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Source common functions
|
||||||
|
#
|
||||||
|
. ./lib.installer || { echo "ERROR: Can not load common functions." >&2; exit 1; }
|
||||||
|
|
||||||
#
|
#
|
||||||
# Parse the run line
|
# Parse the run line
|
||||||
#
|
#
|
||||||
@ -168,12 +117,14 @@ done
|
|||||||
#
|
#
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
if [ -f ./shorewallrc ]; then
|
if [ -f ./shorewallrc ]; then
|
||||||
. ./shorewallrc || exit 1
|
|
||||||
file=./shorewallrc
|
file=./shorewallrc
|
||||||
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
elif [ -f ~/.shorewallrc ]; then
|
elif [ -f ~/.shorewallrc ]; then
|
||||||
. ~/.shorewallrc
|
file=~/.shorewallrc
|
||||||
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
||||||
. /usr/share/shorewall/shorewallrc
|
file=/usr/share/shorewall/shorewallrc
|
||||||
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
else
|
else
|
||||||
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
||||||
fi
|
fi
|
||||||
@ -183,11 +134,11 @@ elif [ $# -eq 1 ]; then
|
|||||||
/*|.*)
|
/*|.*)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
file=./$file
|
file=./$file || exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
. $file
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
else
|
else
|
||||||
usage 1
|
usage 1
|
||||||
fi
|
fi
|
||||||
@ -239,6 +190,9 @@ if [ -z "$BUILD" ]; then
|
|||||||
opensuse)
|
opensuse)
|
||||||
BUILD=suse
|
BUILD=suse
|
||||||
;;
|
;;
|
||||||
|
alt|basealt|altlinux)
|
||||||
|
BUILD=alt
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
BUILD="$ID"
|
BUILD="$ID"
|
||||||
;;
|
;;
|
||||||
@ -247,6 +201,8 @@ if [ -z "$BUILD" ]; then
|
|||||||
BUILD=debian
|
BUILD=debian
|
||||||
elif [ -f /etc/gentoo-release ]; then
|
elif [ -f /etc/gentoo-release ]; then
|
||||||
BUILD=gentoo
|
BUILD=gentoo
|
||||||
|
elif [ -f /etc/altlinux-release ]; then
|
||||||
|
BUILD=alt
|
||||||
elif [ -f ${CONFDIR}/redhat-release ]; then
|
elif [ -f ${CONFDIR}/redhat-release ]; then
|
||||||
BUILD=redhat
|
BUILD=redhat
|
||||||
elif [ -f ${CONFDIR}/SuSE-release ]; then
|
elif [ -f ${CONFDIR}/SuSE-release ]; then
|
||||||
@ -315,11 +271,13 @@ case "$HOST" in
|
|||||||
openwrt)
|
openwrt)
|
||||||
echo "Installing OpenWRT-specific configuration..."
|
echo "Installing OpenWRT-specific configuration..."
|
||||||
;;
|
;;
|
||||||
|
alt)
|
||||||
|
echo "Installing ALT-specific configuration...";
|
||||||
|
;;
|
||||||
linux)
|
linux)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "ERROR: Unknown HOST \"$HOST\"" >&2
|
fatal_error "ERROR: Unknown HOST \"$HOST\""
|
||||||
exit 1;
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -331,8 +289,7 @@ if [ -n "$DESTDIR" ]; then
|
|||||||
OWNERSHIP=""
|
OWNERSHIP=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
make_directory ${DESTDIR}${SBINDIR} 755
|
make_parent_directory ${DESTDIR}${INITDIR} 0755
|
||||||
make_directory ${DESTDIR}${INITDIR} 755
|
|
||||||
|
|
||||||
else
|
else
|
||||||
if [ ! -f ${SHAREDIR}/shorewall/coreversion ]; then
|
if [ ! -f ${SHAREDIR}/shorewall/coreversion ]; then
|
||||||
@ -362,9 +319,9 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check for ${SBINDIR}/$PRODUCT
|
# Check for ${SHAREDIR}/$PRODUCT/version
|
||||||
#
|
#
|
||||||
if [ -f ${DESTDIR}${SBINDIR}/$PRODUCT ]; then
|
if [ -f ${DESTDIR}${SHAREDIR}/$PRODUCT/version ]; then
|
||||||
first_install=""
|
first_install=""
|
||||||
else
|
else
|
||||||
first_install="Yes"
|
first_install="Yes"
|
||||||
@ -372,27 +329,20 @@ fi
|
|||||||
|
|
||||||
delete_file ${DESTDIR}/usr/share/$PRODUCT/xmodules
|
delete_file ${DESTDIR}/usr/share/$PRODUCT/xmodules
|
||||||
|
|
||||||
install_file $PRODUCT ${DESTDIR}${SBINDIR}/$PRODUCT 0544
|
[ -n "${INITFILE}" ] && make_parent_directory ${DESTDIR}${INITDIR} 0755
|
||||||
[ -n "${INITFILE}" ] && make_directory ${DESTDIR}${INITDIR} 755
|
|
||||||
|
|
||||||
echo "$Product control program installed in ${DESTDIR}${SBINDIR}/$PRODUCT"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Create ${CONFDIR}/$PRODUCT, /usr/share/$PRODUCT and /var/lib/$PRODUCT if needed
|
# Create ${CONFDIR}/$PRODUCT, /usr/share/$PRODUCT and /var/lib/$PRODUCT if needed
|
||||||
#
|
#
|
||||||
mkdir -p ${DESTDIR}${CONFDIR}/$PRODUCT
|
make_parent_directory ${DESTDIR}${CONFDIR}/$PRODUCT 0755
|
||||||
mkdir -p ${DESTDIR}${SHAREDIR}/$PRODUCT
|
make_parent_directory ${DESTDIR}${SHAREDIR}/$PRODUCT 0755
|
||||||
mkdir -p ${DESTDIR}${LIBEXECDIR}/$PRODUCT
|
make_parent_directory ${DESTDIR}${LIBEXECDIR}/$PRODUCT 0755
|
||||||
mkdir -p ${DESTDIR}${VARDIR}
|
make_parent_directory ${DESTDIR}${SBINDIR} 0755
|
||||||
|
make_parent_directory ${DESTDIR}${VARDIR} 0755
|
||||||
chmod 755 ${DESTDIR}${CONFDIR}/$PRODUCT
|
|
||||||
chmod 755 ${DESTDIR}${SHAREDIR}/$PRODUCT
|
|
||||||
|
|
||||||
if [ -n "$DESTDIR" ]; then
|
if [ -n "$DESTDIR" ]; then
|
||||||
mkdir -p ${DESTDIR}${CONFDIR}/logrotate.d
|
make_parent_directory ${DESTDIR}${CONFDIR}/logrotate.d 0755
|
||||||
chmod 755 ${DESTDIR}${CONFDIR}/logrotate.d
|
make_parent_directory ${DESTDIR}${INITDIR} 0755
|
||||||
mkdir -p ${DESTDIR}${INITDIR}
|
|
||||||
chmod 755 ${DESTDIR}${INITDIR}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$INITFILE" ]; then
|
if [ -n "$INITFILE" ]; then
|
||||||
@ -413,9 +363,9 @@ if [ -z "${SERVICEDIR}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$SERVICEDIR" ]; then
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
mkdir -p ${DESTDIR}${SERVICEDIR}
|
make_parent_directory ${DESTDIR}${SERVICEDIR} 0755
|
||||||
[ -z "$SERVICEFILE" ] && SERVICEFILE=$PRODUCT.service
|
[ -z "$SERVICEFILE" ] && SERVICEFILE=$PRODUCT.service
|
||||||
install_file $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service 644
|
install_file $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service 0644
|
||||||
[ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
|
[ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SERVICEDIR}/$PRODUCT.service
|
||||||
echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
|
echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service"
|
||||||
fi
|
fi
|
||||||
@ -433,15 +383,6 @@ elif [ $HOST = gentoo ]; then
|
|||||||
# Adjust SUBSYSLOCK path (see https://bugs.gentoo.org/show_bug.cgi?id=459316)
|
# Adjust SUBSYSLOCK path (see https://bugs.gentoo.org/show_bug.cgi?id=459316)
|
||||||
perl -p -w -i -e "s|^SUBSYSLOCK=.*|SUBSYSLOCK=/run/lock/$PRODUCT|;" ${DESTDIR}${CONFDIR}/$PRODUCT/$PRODUCT.conf
|
perl -p -w -i -e "s|^SUBSYSLOCK=.*|SUBSYSLOCK=/run/lock/$PRODUCT|;" ${DESTDIR}${CONFDIR}/$PRODUCT/$PRODUCT.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
|
||||||
# Install the Makefile
|
|
||||||
#
|
|
||||||
install_file Makefile ${DESTDIR}${CONFDIR}/$PRODUCT/Makefile 0600
|
|
||||||
[ $SHAREDIR = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${CONFDIR}/$PRODUCT/Makefile
|
|
||||||
[ $SBINDIR = /sbin ] || eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${CONFDIR}/$PRODUCT/Makefile
|
|
||||||
echo "Makefile installed as ${DESTDIR}${CONFDIR}/$PRODUCT/Makefile"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install the default config path file
|
# Install the default config path file
|
||||||
#
|
#
|
||||||
@ -453,8 +394,14 @@ echo "Default config path file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/confi
|
|||||||
#
|
#
|
||||||
for f in lib.* ; do
|
for f in lib.* ; do
|
||||||
if [ -f $f ]; then
|
if [ -f $f ]; then
|
||||||
install_file $f ${DESTDIR}${SHAREDIR}/$PRODUCT/$f 0644
|
case $f in
|
||||||
echo "Library ${f#*.} file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/$f"
|
*installer)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
install_file $f ${DESTDIR}${SHAREDIR}/$PRODUCT/$f 0644
|
||||||
|
echo "Library ${f#*.} file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/$f"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -479,18 +426,18 @@ echo "Capability file builder installed in ${DESTDIR}${LIBEXECDIR}/$PRODUCT/shor
|
|||||||
if [ -f modules ]; then
|
if [ -f modules ]; then
|
||||||
install_file modules ${DESTDIR}${SHAREDIR}/$PRODUCT/modules 0600
|
install_file modules ${DESTDIR}${SHAREDIR}/$PRODUCT/modules 0600
|
||||||
echo "Modules file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/modules"
|
echo "Modules file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/modules"
|
||||||
|
|
||||||
|
for f in modules.*; do
|
||||||
|
install_file $f ${DESTDIR}${SHAREDIR}/$PRODUCT/$f 0644
|
||||||
|
echo "Module file $f installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/$f"
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f helpers ]; then
|
if [ -f helpers ]; then
|
||||||
install_file helpers ${DESTDIR}${SHAREDIR}/$PRODUCT/helpers 600
|
install_file helpers ${DESTDIR}${SHAREDIR}/$PRODUCT/helpers 0600
|
||||||
echo "Helper modules file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/helpers"
|
echo "Helper modules file installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/helpers"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for f in modules.*; do
|
|
||||||
install_file $f ${DESTDIR}${SHAREDIR}/$PRODUCT/$f 644
|
|
||||||
echo "Module file $f installed as ${DESTDIR}${SHAREDIR}/$PRODUCT/$f"
|
|
||||||
done
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install the Man Pages
|
# Install the Man Pages
|
||||||
#
|
#
|
||||||
@ -498,17 +445,19 @@ done
|
|||||||
if [ -d manpages -a -n "$MANDIR" ]; then
|
if [ -d manpages -a -n "$MANDIR" ]; then
|
||||||
cd manpages
|
cd manpages
|
||||||
|
|
||||||
mkdir -p ${DESTDIR}${MANDIR}/man5/ ${DESTDIR}${MANDIR}/man8/
|
make_parent_directory ${DESTDIR}${MANDIR}/man5 0755
|
||||||
|
|
||||||
for f in *.5; do
|
for f in *.5; do
|
||||||
gzip -c $f > $f.gz
|
gzip -c $f > $f.gz
|
||||||
install_file $f.gz ${DESTDIR}${MANDIR}/man5/$f.gz 644
|
install_file $f.gz ${DESTDIR}${MANDIR}/man5/$f.gz 0644
|
||||||
echo "Man page $f.gz installed to ${DESTDIR}${MANDIR}/man5/$f.gz"
|
echo "Man page $f.gz installed to ${DESTDIR}${MANDIR}/man5/$f.gz"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
make_parent_directory ${DESTDIR}${MANDIR}/man8 0755
|
||||||
|
|
||||||
for f in *.8; do
|
for f in *.8; do
|
||||||
gzip -c $f > $f.gz
|
gzip -c $f > $f.gz
|
||||||
install_file $f.gz ${DESTDIR}${MANDIR}/man8/$f.gz 644
|
install_file $f.gz ${DESTDIR}${MANDIR}/man8/$f.gz 0644
|
||||||
echo "Man page $f.gz installed to ${DESTDIR}${MANDIR}/man8/$f.gz"
|
echo "Man page $f.gz installed to ${DESTDIR}${MANDIR}/man8/$f.gz"
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -518,7 +467,7 @@ if [ -d manpages -a -n "$MANDIR" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d ${DESTDIR}${CONFDIR}/logrotate.d ]; then
|
if [ -d ${DESTDIR}${CONFDIR}/logrotate.d ]; then
|
||||||
install_file logrotate ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT 644
|
install_file logrotate ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT 0644
|
||||||
echo "Logrotate file installed as ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT"
|
echo "Logrotate file installed as ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -526,7 +475,7 @@ fi
|
|||||||
# Create the version file
|
# Create the version file
|
||||||
#
|
#
|
||||||
echo "$VERSION" > ${DESTDIR}${SHAREDIR}/$PRODUCT/version
|
echo "$VERSION" > ${DESTDIR}${SHAREDIR}/$PRODUCT/version
|
||||||
chmod 644 ${DESTDIR}${SHAREDIR}/$PRODUCT/version
|
chmod 0644 ${DESTDIR}${SHAREDIR}/$PRODUCT/version
|
||||||
#
|
#
|
||||||
# Remove and create the symbolic link to the init script
|
# Remove and create the symbolic link to the init script
|
||||||
#
|
#
|
||||||
@ -540,14 +489,16 @@ delete_file ${DESTDIR}${SHAREDIR}/$PRODUCT/lib.common
|
|||||||
delete_file ${DESTDIR}${SHAREDIR}/$PRODUCT/lib.cli
|
delete_file ${DESTDIR}${SHAREDIR}/$PRODUCT/lib.cli
|
||||||
delete_file ${DESTDIR}${SHAREDIR}/$PRODUCT/wait4ifup
|
delete_file ${DESTDIR}${SHAREDIR}/$PRODUCT/wait4ifup
|
||||||
|
|
||||||
|
#
|
||||||
|
# Creatae the symbolic link for the CLI
|
||||||
|
#
|
||||||
|
ln -sf shorewall ${DESTDIR}${SBINDIR}/${PRODUCT}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Note -- not all packages will have the SYSCONFFILE so we need to check for its existance here
|
# Note -- not all packages will have the SYSCONFFILE so we need to check for its existance here
|
||||||
#
|
#
|
||||||
if [ -n "$SYSCONFFILE" -a -f "$SYSCONFFILE" -a ! -f ${DESTDIR}${SYSCONFDIR}/${PRODUCT} ]; then
|
if [ -n "$SYSCONFFILE" -a -f "$SYSCONFFILE" -a ! -f ${DESTDIR}${SYSCONFDIR}/${PRODUCT} ]; then
|
||||||
if [ ${DESTDIR} ]; then
|
[ ${DESTDIR} ] && make_parent_directory ${DESTDIR}${SYSCONFDIR} 0755
|
||||||
mkdir -p ${DESTDIR}${SYSCONFDIR}
|
|
||||||
chmod 755 ${DESTDIR}${SYSCONFDIR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
install_file ${SYSCONFFILE} ${DESTDIR}${SYSCONFDIR}/${PRODUCT} 0640
|
install_file ${SYSCONFFILE} ${DESTDIR}${SYSCONFDIR}/${PRODUCT} 0640
|
||||||
echo "$SYSCONFFILE file installed in ${DESTDIR}${SYSCONFDIR}/${PRODUCT}"
|
echo "$SYSCONFFILE file installed in ${DESTDIR}${SYSCONFDIR}/${PRODUCT}"
|
||||||
@ -555,7 +506,6 @@ fi
|
|||||||
|
|
||||||
if [ ${SHAREDIR} != /usr/share ]; then
|
if [ ${SHAREDIR} != /usr/share ]; then
|
||||||
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/${PRODUCT}/lib.base
|
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SHAREDIR}/${PRODUCT}/lib.base
|
||||||
eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SBINDIR}/$PRODUCT
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $configure -eq 1 -a -z "$DESTDIR" -a -n "$first_install" -a -z "${cygwin}${mac}" ]; then
|
if [ $configure -eq 1 -a -z "$DESTDIR" -a -n "$first_install" -a -z "${cygwin}${mac}" ]; then
|
||||||
@ -616,6 +566,6 @@ if [ $configure -eq 1 -a -z "$DESTDIR" -a -n "$first_install" -a -z "${cygwin}${
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Report Success
|
# Report Success
|
||||||
#
|
#
|
||||||
echo "$Product Version $VERSION Installed"
|
echo "$Product Version $VERSION Installed"
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#
|
#
|
||||||
# Shorewall 4.4 -- /usr/share/shorewall-lite/lib.base
|
# Shorewall 5.2 -- /usr/share/shorewall-lite/lib.base
|
||||||
#
|
#
|
||||||
# (c) 2011,2014 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2011,2014 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is part of Shorewall.
|
# This program is part of Shorewall.
|
||||||
#
|
#
|
||||||
|
@ -183,7 +183,7 @@
|
|||||||
<title>See ALSO</title>
|
<title>See ALSO</title>
|
||||||
|
|
||||||
<para><ulink
|
<para><ulink
|
||||||
url="http://www.shorewall.net/Documentation_Index.html">http://www.shorewall.net/Documentation_Index.html</ulink></para>
|
url="https://shorewall.org/Documentation_Index.html">https://shorewall.org/Documentation_Index.html</ulink></para>
|
||||||
|
|
||||||
<para>shorewall-lite(8), shorewall-accounting(5), shorewall-actions(5),
|
<para>shorewall-lite(8), shorewall-accounting(5), shorewall-actions(5),
|
||||||
shorewall-blacklist(5), shorewall-hosts(5), shorewall-interfaces(5),
|
shorewall-blacklist(5), shorewall-hosts(5), shorewall-interfaces(5),
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -28,7 +28,7 @@
|
|||||||
#
|
#
|
||||||
# On the target system (the system where the firewall program is to run):
|
# On the target system (the system where the firewall program is to run):
|
||||||
#
|
#
|
||||||
# [ IPTABLES=<iptables binary> ] [ MODULESDIR=<kernel modules directory> ] [ MODULE_SUFFIX="<module suffix list>" ] shorecap > capabilities
|
# [ IPTABLES=<iptables binary> ] [ MODULESDIR=<kernel modules directory> ] shorecap > capabilities
|
||||||
#
|
#
|
||||||
# Now move the capabilities file to the compilation system. The file must
|
# Now move the capabilities file to the compilation system. The file must
|
||||||
# be placed in a directory on the CONFIG_PATH to be used when compiling firewalls
|
# be placed in a directory on the CONFIG_PATH to be used when compiling firewalls
|
||||||
@ -38,26 +38,26 @@
|
|||||||
#
|
#
|
||||||
# IPTABLES - iptables
|
# IPTABLES - iptables
|
||||||
# MODULESDIR - /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter
|
# MODULESDIR - /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter
|
||||||
# MODULE_SUFFIX - "o gz xz ko o.gz o.xz ko.gz ko.xz"
|
|
||||||
#
|
#
|
||||||
# Shorewall need not be installed on the target system to run shorecap. If the '-e' flag is
|
# Shorewall need not be installed on the target system to run shorecap. If the '-e' flag is
|
||||||
# used during firewall compilation, then the generated firewall program will likewise not
|
# used during firewall compilation, then the generated firewall program will likewise not
|
||||||
# require Shorewall to be installed.
|
# require Shorewall to be installed.
|
||||||
|
|
||||||
|
|
||||||
g_program=shorewall-lite
|
PRODUCT=shorewall-lite
|
||||||
|
|
||||||
#
|
#
|
||||||
# This is modified by the installer when ${SHAREDIR} != /usr/share
|
# This is modified by the installer when ${SHAREDIR} != /usr/share
|
||||||
#
|
#
|
||||||
. /usr/share/shorewall/shorewallrc
|
. /usr/share/shorewall/shorewallrc
|
||||||
|
|
||||||
g_sharedir="$SHAREDIR"/shorewall-lite
|
g_basedir=${SHAREDIR}/shorewall
|
||||||
g_confdir="$CONFDIR"/shorewall-lite
|
|
||||||
g_readrc=1
|
|
||||||
|
|
||||||
. ${SHAREDIR}/shorewall/lib.cli
|
. ${SHAREDIR}/shorewall/lib.cli
|
||||||
. /usr/share/shorewall-lite/configpath
|
|
||||||
|
setup_product_environment
|
||||||
|
|
||||||
|
. ${SHAREDIR}/shorewall-lite/configpath
|
||||||
|
|
||||||
[ -n "$PATH" ] || PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
|
[ -n "$PATH" ] || PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
|
||||||
|
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Shorewall Lite Packet Filtering Firewall Control Program - V4.5
|
|
||||||
#
|
|
||||||
# (c) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2014 -
|
|
||||||
# Tom Eastep (teastep@shorewall.net)
|
|
||||||
#
|
|
||||||
# Shorewall documentation is available at http://www.shorewall.net
|
|
||||||
#
|
|
||||||
# This program is part of Shorewall.
|
|
||||||
#
|
|
||||||
# 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 2 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/>.
|
|
||||||
#
|
|
||||||
# For a list of supported commands, type 'shorewall help' or 'shorewall6 help'
|
|
||||||
#
|
|
||||||
################################################################################################
|
|
||||||
PRODUCT=shorewall-lite
|
|
||||||
|
|
||||||
#
|
|
||||||
# This is modified by the installer when ${SHAREDIR} != /usr/share
|
|
||||||
#
|
|
||||||
. /usr/share/shorewall/shorewallrc
|
|
||||||
|
|
||||||
g_program=$PRODUCT
|
|
||||||
g_sharedir="$SHAREDIR"/shorewall-lite
|
|
||||||
g_confdir="$CONFDIR"/shorewall-lite
|
|
||||||
g_readrc=1
|
|
||||||
|
|
||||||
. ${SHAREDIR}/shorewall/lib.cli
|
|
||||||
|
|
||||||
shorewall_cli $@
|
|
@ -8,7 +8,7 @@
|
|||||||
# "man shorewall-lite.conf"
|
# "man shorewall-lite.conf"
|
||||||
#
|
#
|
||||||
# Manpage also online at
|
# Manpage also online at
|
||||||
# http://www.shorewall.net/manpages/shorewall-lite.conf.html
|
# https://shorewall.org/manpages/shorewall-lite.conf.html
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# N 0 T E
|
# N 0 T E
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -13,7 +13,7 @@ Conflicts=iptables.service firewalld.service
|
|||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
EnvironmentFile=-/etc/sysconfig/shorewall-lite
|
EnvironmentFile=-/etc/sysconfig/shorewall-lite
|
||||||
StandardOutput=syslog
|
StandardOutput=journal
|
||||||
ExecStart=/sbin/shorewall-lite $OPTIONS start $STARTOPTIONS
|
ExecStart=/sbin/shorewall-lite $OPTIONS start $STARTOPTIONS
|
||||||
ExecStop=/sbin/shorewall-lite $OPTIONS stop
|
ExecStop=/sbin/shorewall-lite $OPTIONS stop
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#
|
#
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Shorewall IPv4 firewall (lite)
|
Description=Shorewall IPv4 firewall (lite)
|
||||||
|
Documentation=man:shorewall-lite(8)
|
||||||
Wants=network-online.target
|
Wants=network-online.target
|
||||||
After=network-online.target
|
After=network-online.target
|
||||||
Conflicts=iptables.service firewalld.service
|
Conflicts=iptables.service firewalld.service
|
||||||
@ -16,7 +17,7 @@ RemainAfterExit=yes
|
|||||||
EnvironmentFile=-/etc/default/shorewall-lite
|
EnvironmentFile=-/etc/default/shorewall-lite
|
||||||
StandardOutput=syslog
|
StandardOutput=syslog
|
||||||
ExecStart=/sbin/shorewall-lite $OPTIONS start $STARTOPTIONS
|
ExecStart=/sbin/shorewall-lite $OPTIONS start $STARTOPTIONS
|
||||||
ExecStop=/sbin/shorewall-lite $OPTIONS clear
|
ExecStop=/usr/share/shorewall/stop_service shorewall-lite
|
||||||
ExecReload=/sbin/shorewall-lite $OPTIONS reload $RELOADOPTIONS
|
ExecReload=/sbin/shorewall-lite $OPTIONS reload $RELOADOPTIONS
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Script to back uninstall Shoreline Firewall
|
# Script to back uninstall Shoreline Firewall Lite
|
||||||
#
|
#
|
||||||
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
# (c) 2000-2016 - Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
@ -26,9 +26,7 @@
|
|||||||
# You may only use this script to uninstall the version
|
# You may only use this script to uninstall the version
|
||||||
# shown below. Simply run this script to remove Shorewall Firewall
|
# shown below. Simply run this script to remove Shorewall Firewall
|
||||||
|
|
||||||
VERSION=xxx #The Build script inserts the actual version
|
VERSION=xxx # The Build script inserts the actual version
|
||||||
PRODUCT=shorewall-lite
|
|
||||||
Product="Shorewall Lite"
|
|
||||||
|
|
||||||
usage() # $1 = exit status
|
usage() # $1 = exit status
|
||||||
{
|
{
|
||||||
@ -41,46 +39,27 @@ usage() # $1 = exit status
|
|||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
fatal_error()
|
#
|
||||||
{
|
# Change to the directory containing this script
|
||||||
echo " ERROR: $@" >&2
|
#
|
||||||
exit 1
|
cd "$(dirname $0)"
|
||||||
}
|
|
||||||
|
|
||||||
qt()
|
if [ -f shorewall-lite.service ]; then
|
||||||
{
|
PRODUCT=shorewall-lite
|
||||||
"$@" >/dev/null 2>&1
|
Product="Shorewall Lite"
|
||||||
}
|
else
|
||||||
|
PRODUCT=shorewall6-lite
|
||||||
|
Product="Shorewall6 Lite"
|
||||||
|
fi
|
||||||
|
|
||||||
split() {
|
#
|
||||||
local ifs
|
# Source common functions
|
||||||
ifs=$IFS
|
#
|
||||||
IFS=:
|
. ./lib.uninstaller || { echo "ERROR: Can not load common functions." >&2; exit 1; }
|
||||||
set -- $1
|
|
||||||
echo $*
|
|
||||||
IFS=$ifs
|
|
||||||
}
|
|
||||||
|
|
||||||
mywhich() {
|
|
||||||
local dir
|
|
||||||
|
|
||||||
for dir in $(split $PATH); do
|
|
||||||
if [ -x $dir/$1 ]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
return 2
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_file() # $1 = file to restore
|
|
||||||
{
|
|
||||||
if [ -f $1 -o -L $1 ] ; then
|
|
||||||
rm -f $1
|
|
||||||
echo "$1 Removed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Parse the run line
|
||||||
|
#
|
||||||
finished=0
|
finished=0
|
||||||
configure=1
|
configure=1
|
||||||
|
|
||||||
@ -97,7 +76,7 @@ while [ $finished -eq 0 ]; do
|
|||||||
usage 0
|
usage 0
|
||||||
;;
|
;;
|
||||||
v)
|
v)
|
||||||
echo "$Product Firewall Installer Version $VERSION"
|
echo "$Product Firewall Uninstaller Version $VERSION"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
n*)
|
n*)
|
||||||
@ -117,17 +96,17 @@ while [ $finished -eq 0 ]; do
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
#
|
#
|
||||||
# Read the RC file
|
# Read the RC file
|
||||||
#
|
#
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
if [ -f ./shorewallrc ]; then
|
if [ -f ./shorewallrc ]; then
|
||||||
. ./shorewallrc
|
. ./shorewallrc || fatal_error "Can not load the RC file: ./shorewallrc"
|
||||||
elif [ -f ~/.shorewallrc ]; then
|
elif [ -f ~/.shorewallrc ]; then
|
||||||
. ~/.shorewallrc || exit 1
|
. ~/.shorewallrc || fatal_error "Can not load the RC file: ~/.shorewallrc"
|
||||||
file=./.shorewallrc
|
|
||||||
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
elif [ -f /usr/share/shorewall/shorewallrc ]; then
|
||||||
. /usr/share/shorewall/shorewallrc
|
. /usr/share/shorewall/shorewallrc || fatal_error "Can not load the RC file: /usr/share/shorewall/shorewallrc"
|
||||||
else
|
else
|
||||||
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
fatal_error "No configuration file specified and /usr/share/shorewall/shorewallrc not found"
|
||||||
fi
|
fi
|
||||||
@ -137,46 +116,50 @@ elif [ $# -eq 1 ]; then
|
|||||||
/*|.*)
|
/*|.*)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
file=./$file
|
file=./$file || exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
. $file
|
. $file || fatal_error "Can not load the RC file: $file"
|
||||||
else
|
else
|
||||||
usage 1
|
usage 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f ${SHAREDIR}/shorewall-lite/version ]; then
|
if [ -f ${SHAREDIR}/$PRODUCT/version ]; then
|
||||||
INSTALLED_VERSION="$(cat ${SHAREDIR}/shorewall-lite/version)"
|
INSTALLED_VERSION="$(cat ${SHAREDIR}/$PRODUCT/version)"
|
||||||
if [ "$INSTALLED_VERSION" != "$VERSION" ]; then
|
if [ "$INSTALLED_VERSION" != "$VERSION" ]; then
|
||||||
echo "WARNING: Shorewall Lite Version $INSTALLED_VERSION is installed"
|
echo "WARNING: $Product Version $INSTALLED_VERSION is installed"
|
||||||
echo " and this is the $VERSION uninstaller."
|
echo " and this is the $VERSION uninstaller."
|
||||||
VERSION="$INSTALLED_VERSION"
|
VERSION="$INSTALLED_VERSION"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "WARNING: Shorewall Lite Version $VERSION is not installed"
|
echo "WARNING: $Product Version $VERSION is not installed"
|
||||||
VERSION=""
|
VERSION=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Uninstalling Shorewall Lite $VERSION"
|
echo "Uninstalling $Product $VERSION"
|
||||||
|
|
||||||
[ -n "$SANDBOX" ] && configure=0
|
[ -n "$SANDBOX" ] && configure=0
|
||||||
|
|
||||||
if [ $configure -eq 1 ]; then
|
if [ $configure -eq 1 ]; then
|
||||||
if qt iptables -L shorewall -n && [ ! -f ${SBINDIR}/shorewall ]; then
|
if qt iptables -L shorewall -n && [ ! -f ${SBINDIR}/shorewall ]; then
|
||||||
shorewall-lite clear
|
${SBINDIR}/$PRODUCT clear
|
||||||
|
elif qt ip6tables -L shorewall -n && [ ! -f ${SBINDIR}/shorewall6 ]; then
|
||||||
|
${SBINDIR}/$PRODUCT clear
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -L ${SHAREDIR}/shorewall-lite/init ]; then
|
remove_file ${SBINDIR}/$PRODUCT
|
||||||
|
|
||||||
|
if [ -h ${SHAREDIR}/$PRODUCT/init ]; then
|
||||||
if [ $HOST = openwrt ]; then
|
if [ $HOST = openwrt ]; then
|
||||||
if [ $configure -eq 1 ] && /etc/init.d/shorewall-lite enabled; then
|
if [ $configure -eq 1 ] && /etc/init.d/$PRODUCT enabled; then
|
||||||
/etc/init.d/shorewall-lite disable
|
/etc/init.d/$PRODUCT disable
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FIREWALL=$(readlink ${SHAREDIR}/shorewall-lite/init)
|
FIREWALL=$(readlink ${SHAREDIR}/$PRODUCT/init)
|
||||||
else
|
else
|
||||||
FIREWALL=$(readlink -m -q ${SHAREDIR}/shorewall-lite/init)
|
FIREWALL=$(readlink -m -q ${SHAREDIR}/$PRODUCT/init)
|
||||||
fi
|
fi
|
||||||
elif [ -n "$INITFILE" ]; then
|
elif [ -n "$INITFILE" ]; then
|
||||||
FIREWALL=${INITDIR}/${INITFILE}
|
FIREWALL=${INITDIR}/${INITFILE}
|
||||||
@ -184,10 +167,10 @@ fi
|
|||||||
|
|
||||||
if [ -f "$FIREWALL" ]; then
|
if [ -f "$FIREWALL" ]; then
|
||||||
if [ $configure -eq 1 ]; then
|
if [ $configure -eq 1 ]; then
|
||||||
if mywhich updaterc.d ; then
|
if mywhich insserv ; then
|
||||||
updaterc.d shorewall-lite remove
|
|
||||||
elif mywhich insserv ; then
|
|
||||||
insserv -r $FIREWALL
|
insserv -r $FIREWALL
|
||||||
|
elif mywhich update-rc.d ; then
|
||||||
|
update-rc.d ${PRODUCT} remove
|
||||||
elif mywhich chkconfig ; then
|
elif mywhich chkconfig ; then
|
||||||
chkconfig --del $(basename $FIREWALL)
|
chkconfig --del $(basename $FIREWALL)
|
||||||
fi
|
fi
|
||||||
@ -196,26 +179,29 @@ if [ -f "$FIREWALL" ]; then
|
|||||||
remove_file $FIREWALL
|
remove_file $FIREWALL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -z "$SERVICEDIR" ] && SERVICEDIR="$SYSTEMD"
|
[ -z "${SERVICEDIR}" ] && SERVICEDIR="$SYSTEMD"
|
||||||
|
|
||||||
if [ -n "$SERVICEDIR" ]; then
|
if [ -n "$SERVICEDIR" ]; then
|
||||||
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}
|
[ $configure -eq 1 ] && systemctl disable ${PRODUCT}.service
|
||||||
rm -f $SERVICEDIR/shorewall-lite.service
|
remove_file $SERVICEDIR/${PRODUCT}.service
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${SBINDIR}/shorewall-lite
|
remove_directory ${CONFDIR}/$PRODUCT
|
||||||
|
remove_directory ${VARDIR}
|
||||||
|
remove_directory ${SHAREDIR}/$PRODUCT
|
||||||
|
remove_directory ${LIBEXECDIR}/$PRODUCT
|
||||||
|
remove_file ${CONFDIR}/logrotate.d/$PRODUCT
|
||||||
|
|
||||||
rm -rf ${CONFDIR}/shorewall-lite
|
if [ -n "$SYSCONFDIR" ]; then
|
||||||
rm -rf ${VARDIR}
|
[ -n "$SYSCONFFILE" ] && remove_file ${SYSCONFDIR}/${PRODUCT}
|
||||||
rm -rf ${SHAREDIR}/shorewall-lite
|
fi
|
||||||
rm -rf ${LIBEXECDIR}/shorewall-lite
|
|
||||||
rm -f ${CONFDIR}/logrotate.d/shorewall-lite
|
|
||||||
rm -f ${SYSCONFDIR}/shorewall-lite
|
|
||||||
|
|
||||||
if [ -n "${MANDIR}" ]; then
|
if [ -n "${MANDIR}" ]; then
|
||||||
rm -f ${MANDIR}/man5/shorewall-lite*
|
remove_file_with_wildcard ${MANDIR}/man5/${PRODUCT}\*
|
||||||
rm -f ${MANDIR}/man8/shorewall-lite*
|
remove_file_with_wildcard ${MANDIR}/man8/${PRODUCT}\*
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Shorewall Lite Uninstalled"
|
#
|
||||||
|
# Report Success
|
||||||
|
#
|
||||||
|
echo "$Product $VERSION Uninstalled"
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
#
|
#
|
||||||
# Shorewall -- /usr/share/shorewall/action.A_REJECTWITH
|
# Shorewall -- /usr/share/shorewall/action.A_REJECT
|
||||||
#
|
#
|
||||||
# A_REJECT Action.
|
# A_REJECT Action.
|
||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2012-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2012-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
@ -22,8 +22,9 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
#
|
#
|
||||||
# A_REJECTWITH[([<option>])] where <option> is a valid REJECT option.#
|
# A_REJECT[([<option>])] where <option> is a valid REJECT option.#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
?require AUDIT_TARGET
|
||||||
|
|
||||||
DEFAULTS -
|
DEFAULTS -
|
||||||
|
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2012-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2012-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
@ -22,8 +22,9 @@
|
|||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
#
|
#
|
||||||
# A_REJECTWITH[([<option>])] where <option> is a valid REJECT option.#
|
# A_REJECT[([<option>])] where <option> is a valid REJECT option.#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
?require AUDIT_TARGET
|
||||||
|
|
||||||
DEFAULTS -
|
DEFAULTS -
|
||||||
|
|
45
Shorewall/Actions/action.AllowICMPs
Normal file
45
Shorewall/Actions/action.AllowICMPs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.AllowICMPs
|
||||||
|
#
|
||||||
|
# This action ACCEPTs needed ICMP types.
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
#ACTION SOURCE DEST PROTO DPORT SPORT ORIGDEST RATE USER
|
||||||
|
|
||||||
|
DEFAULTS ACCEPT
|
||||||
|
|
||||||
|
?if __IPV4
|
||||||
|
@1 - - icmp fragmentation-needed {comment="Needed ICMP types"}
|
||||||
|
@1 - - icmp time-exceeded {comment="Needed ICMP types"}
|
||||||
|
?else
|
||||||
|
?COMMENT Needed ICMP types (RFC4890)
|
||||||
|
@1 - - ipv6-icmp destination-unreachable
|
||||||
|
@1 - - ipv6-icmp packet-too-big
|
||||||
|
@1 - - ipv6-icmp time-exceeded
|
||||||
|
@1 - - ipv6-icmp parameter-problem
|
||||||
|
|
||||||
|
# The following should have a ttl of 255 and must be allowed to transit a bridge
|
||||||
|
@1 - - ipv6-icmp router-solicitation
|
||||||
|
@1 - - ipv6-icmp neighbour-solicitation
|
||||||
|
@1 - - ipv6-icmp neighbour-advertisement
|
||||||
|
@1 - - ipv6-icmp 141 # Inverse neighbour discovery solicitation
|
||||||
|
@1 - - ipv6-icmp 142 # Inverse neighbour discovery advertisement
|
||||||
|
|
||||||
|
# The following must have a link local source address and must be allowed to transit a bridge
|
||||||
|
@1 fe80::/10 - ipv6-icmp 130 # Listener query
|
||||||
|
@1 fe80::/10 - ipv6-icmp 131 # Listener report
|
||||||
|
@1 fe80::/10 - ipv6-icmp 132 # Listener done
|
||||||
|
@1 fe80::/10 - ipv6-icmp router-advertisement
|
||||||
|
@1 :: - ipv6-icmp 143 # Listener report v2
|
||||||
|
@1 fe80::/10 - ipv6-icmp 143 # Listener report v2
|
||||||
|
|
||||||
|
# The following should be received with a ttl of 255 and must be allowed to transit a bridge
|
||||||
|
@1 :: - ipv6-icmp 148 # Certificate path solicitation
|
||||||
|
@1 fe80::/10 - ipv6-icmp 148 # Certificate path solicitation
|
||||||
|
@1 fe80::/10 - ipv6-icmp 149 # Certificate path advertisement
|
||||||
|
|
||||||
|
# The following should have a link local source address and a ttl of 1 and must be allowed to transit a bridge
|
||||||
|
@1 fe80::/10 - ipv6-icmp 151 # Multicast router advertisement
|
||||||
|
@1 fe80::/10 - ipv6-icmp 152 # Multicast router solicitation
|
||||||
|
@1 fe80::/10 - ipv6-icmp 153 # Multicast router termination
|
||||||
|
?endif
|
50
Shorewall/Actions/action.BLACKLIST
Normal file
50
Shorewall/Actions/action.BLACKLIST
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#
|
||||||
|
# Shorewall - /usr/share/shorewall/action.BLACKLIST
|
||||||
|
#
|
||||||
|
# This action:
|
||||||
|
#
|
||||||
|
# - Adds the sender to the dynamic blacklist ipset
|
||||||
|
# - Optionally acts on the packet (default is DROP)
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
#
|
||||||
|
# 1 - Action to take after adding the packet. Default is DROP.
|
||||||
|
# Pass -- if you don't want to take any action.
|
||||||
|
# 2 - Timeout for ipset entry. Default is the timeout specified in
|
||||||
|
# DYNAMIC_BLACKLIST or the one specified when the ipset was created.
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
# Note -- This action is defined with the 'section' option, so the first
|
||||||
|
# parameter is always the section name. That means that in the
|
||||||
|
# following text, the first parameter passed in the rule is actually
|
||||||
|
# @2.
|
||||||
|
###############################################################################
|
||||||
|
?if $1 eq 'BLACKLIST'
|
||||||
|
?if $BLACKLIST_LOG_LEVEL
|
||||||
|
blacklog
|
||||||
|
?else
|
||||||
|
$BLACKLIST_DISPOSITION
|
||||||
|
?endif
|
||||||
|
?else
|
||||||
|
?if ! "$SW_DBL_IPSET"
|
||||||
|
? error The BLACKLIST action may only be used with ipset-based dynamic blacklisting
|
||||||
|
?endif
|
||||||
|
|
||||||
|
DEFAULTS -,DROP,-
|
||||||
|
#
|
||||||
|
# Add to the blacklist
|
||||||
|
#
|
||||||
|
?if passed(@3)
|
||||||
|
ADD($SW_DBL_IPSET:src:@3)
|
||||||
|
?elsif $SW_DBL_TIMEOUT
|
||||||
|
ADD($SW_DBL_IPSET:src:$SW_DBL_TIMEOUT)
|
||||||
|
?else
|
||||||
|
ADD($SW_DBL_IPSET:src)
|
||||||
|
?endif
|
||||||
|
#
|
||||||
|
# Dispose of the packet if asked
|
||||||
|
#
|
||||||
|
?if passed(@2)
|
||||||
|
@2
|
||||||
|
?endif
|
||||||
|
?endif
|
65
Shorewall/Actions/action.Broadcast
Normal file
65
Shorewall/Actions/action.Broadcast
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.Broadcast
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Broadcast[([<action>|[,{audit|-}])]
|
||||||
|
#
|
||||||
|
# Default action is DROP
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS DROP,-
|
||||||
|
|
||||||
|
?if __ADDRTYPE
|
||||||
|
@1 - - - ;; -m addrtype --dst-type BROADCAST
|
||||||
|
@1 - - - ;; -m addrtype --dst-type ANYCAST
|
||||||
|
?else
|
||||||
|
?begin perl;
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use Shorewall::IPAddrs;
|
||||||
|
use Shorewall::Config;
|
||||||
|
use Shorewall::Chains;
|
||||||
|
|
||||||
|
my ( $action, $audit ) = get_action_params( 2 );
|
||||||
|
my $chainref = get_action_chain;
|
||||||
|
my ( $level, $tag ) = get_action_logging;
|
||||||
|
|
||||||
|
fatal_error "Invalid parameter to action Broadcast" if supplied $audit && $audit ne 'audit';
|
||||||
|
|
||||||
|
my $target = require_audit ( $action , $audit );
|
||||||
|
|
||||||
|
if ( $family == F_IPV4 ) {
|
||||||
|
add_commands $chainref, 'for address in $ALL_BCASTS; do';
|
||||||
|
} elsif ($family == F_IPV6 ) {
|
||||||
|
add_commands $chainref, 'for address in $ALL_ACASTS; do';
|
||||||
|
}
|
||||||
|
|
||||||
|
incr_cmd_level $chainref;
|
||||||
|
log_rule_limit $level, $chainref, 'Broadcast' , $action, '', $tag, 'add', ' -d $address ' if $level ne '';
|
||||||
|
add_jump $chainref, $target, 0, "-d \$address ";
|
||||||
|
decr_cmd_level $chainref;
|
||||||
|
add_commands $chainref, 'done';
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
?end perl;
|
||||||
|
?endif
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2011-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
10
Shorewall/Actions/action.DropDNSrep
Normal file
10
Shorewall/Actions/action.DropDNSrep
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.DropDNSrep
|
||||||
|
#
|
||||||
|
# This macro silently drops DNS UDP replies that are in the New state
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
#ACTION SOURCE DEST PROTO DPORT SPORT ORIGDEST RATE USER
|
||||||
|
|
||||||
|
DEFAULTS DROP
|
||||||
|
@1 - - udp - 53 { comment="Late DNS Replies" }
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2011-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
33
Shorewall/Actions/action.FIN
Normal file
33
Shorewall/Actions/action.FIN
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.FIN
|
||||||
|
#
|
||||||
|
# FIN Action
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# FIN[([<action>])]
|
||||||
|
#
|
||||||
|
# Default action is ACCEPT
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS ACCEPT,-
|
||||||
|
|
||||||
|
@1 - - ;;+ -p 6 --tcp-flags ACK,FIN ACK,FIN
|
@ -13,9 +13,9 @@
|
|||||||
DEFAULTS 2,0
|
DEFAULTS 2,0
|
||||||
|
|
||||||
?if @1 !~ /^\d+/ || ! @1 || @1 > 1024
|
?if @1 !~ /^\d+/ || ! @1 || @1 > 1024
|
||||||
?error Invalid value for Bricks (@1)
|
?error Invalid value (@1) for the GlusterFS Bricks argument
|
||||||
?elsif @2 !~ /^[01]$/
|
?elsif @2 !~ /^[01]$/
|
||||||
?error Invalid value for IB (@2)
|
?error Invalid value (@2) for the GlusterFS IB argument
|
||||||
?endif
|
?endif
|
||||||
|
|
||||||
#ACTION SOURCE DEST PROTO DPORT
|
#ACTION SOURCE DEST PROTO DPORT
|
@ -27,7 +27,7 @@
|
|||||||
# the IP address that are older than <duration> seconds.
|
# the IP address that are older than <duration> seconds.
|
||||||
# Disposition - Disposition for any event generated.
|
# Disposition - Disposition for any event generated.
|
||||||
#
|
#
|
||||||
# For additional information, see http://www.shorewall.net/Events.html
|
# For additional information, see https://shorewall.org/Events.html
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# DO NOT REMOVE THE FOLLOWING LINE
|
# DO NOT REMOVE THE FOLLOWING LINE
|
||||||
@ -107,10 +107,13 @@ if ( $command & $REAP_OPT ) {
|
|||||||
|
|
||||||
$duration .= '--rttl ' if $command & $TTL_OPT;
|
$duration .= '--rttl ' if $command & $TTL_OPT;
|
||||||
|
|
||||||
|
if ( ( $targets{$action} || 0 ) & NATRULE ) {
|
||||||
|
perl_action_helper( "${action}-", "-m recent --rcheck ${duration}--hitcount $hitcount" );
|
||||||
|
$action = 'ACCEPT';
|
||||||
|
}
|
||||||
|
|
||||||
if ( $command & $RESET_CMD ) {
|
if ( $command & $RESET_CMD ) {
|
||||||
require_capability 'MARK_ANYWHERE', '"reset"', 's';
|
require_capability 'MARK_ANYWHERE', '"reset"', 's';
|
||||||
|
|
||||||
print "Resetting....\n";
|
|
||||||
|
|
||||||
my $mark = $globals{EVENT_MARK};
|
my $mark = $globals{EVENT_MARK};
|
||||||
#
|
#
|
||||||
@ -130,7 +133,7 @@ if ( $command & $RESET_CMD ) {
|
|||||||
#
|
#
|
||||||
# if the event is armed, remove it and perform the action
|
# if the event is armed, remove it and perform the action
|
||||||
#
|
#
|
||||||
perl_action_helper( $action , "-m mark --mark $mark/$mark -m recent --remove --name $event" );
|
perl_action_helper( $action , "-m mark --mark $mark/$mark -m recent --remove --name $event $srcdst" );
|
||||||
} elsif ( $command & $UPDATE_CMD ) {
|
} elsif ( $command & $UPDATE_CMD ) {
|
||||||
perl_action_helper( $action, "-m recent --update ${duration}--hitcount $hitcount --name $event $srcdst" );
|
perl_action_helper( $action, "-m recent --update ${duration}--hitcount $hitcount --name $event $srcdst" );
|
||||||
} else {
|
} else {
|
@ -4,9 +4,9 @@
|
|||||||
# Invalid Action
|
# Invalid Action
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2011-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
70
Shorewall/Actions/action.Limit
Normal file
70
Shorewall/Actions/action.Limit
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.Limit
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Limit(<recent-set>,<num-connections>,<timeout>)
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS -,-,-
|
||||||
|
|
||||||
|
?begin perl
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use Shorewall::Config;
|
||||||
|
use Shorewall::Chains;
|
||||||
|
|
||||||
|
my $chainref = get_action_chain;
|
||||||
|
my @param = get_action_params(3);
|
||||||
|
my ( $level, $tag ) = get_action_logging;
|
||||||
|
|
||||||
|
@param = split( ',', $tag ), $tag = $param[0] unless supplied( join '', @param );
|
||||||
|
|
||||||
|
fatal_error 'Limit rules must include <set name>,<max connections>,<interval> as the log tag or as parameters' unless @param == 3;
|
||||||
|
|
||||||
|
my $set = $param[0];
|
||||||
|
|
||||||
|
for ( @param[1,2] ) {
|
||||||
|
fatal_error 'Max connections and interval in Limit rules must be numeric (' . join( ':', 'Limit', $level eq '' ? 'none' : $level, $tag ) . ')' unless /^\d+$/
|
||||||
|
}
|
||||||
|
|
||||||
|
my $count = $param[1] + 1;
|
||||||
|
|
||||||
|
require_capability( 'RECENT_MATCH' , 'Limit rules' , '' );
|
||||||
|
|
||||||
|
warning_message "The Limit action is deprecated in favor of per-IP rate limiting using the RATE LIMIT column";
|
||||||
|
|
||||||
|
add_irule $chainref, recent => "--name $set --set";
|
||||||
|
|
||||||
|
if ( $level ne '' ) {
|
||||||
|
my $xchainref = new_chain 'filter' , "$chainref->{name}%";
|
||||||
|
log_irule_limit( $level, $xchainref, '', 'DROP', [], $tag, 'add' , '' );
|
||||||
|
add_ijump $xchainref, j => 'DROP';
|
||||||
|
add_ijump $chainref, j => $xchainref, recent => "--name $set --update --seconds $param[2] --hitcount $count";
|
||||||
|
} else {
|
||||||
|
add_ijump $chainref, j => 'DROP', recent => "--update --name $set --seconds $param[2] --hitcount $count";
|
||||||
|
}
|
||||||
|
|
||||||
|
add_ijump $chainref, j => 'ACCEPT';
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
?end perl
|
56
Shorewall/Actions/action.Multicast
Normal file
56
Shorewall/Actions/action.Multicast
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.Multicast
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Multicast[([<action>|-[,{audit|-}])]
|
||||||
|
#
|
||||||
|
# Default action is DROP
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS DROP,-
|
||||||
|
|
||||||
|
?if __ADDRTYPE
|
||||||
|
@1 - - - ;; -m addrtype --dst-type MULTICAST
|
||||||
|
?else
|
||||||
|
?begin perl;
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use Shorewall::IPAddrs;
|
||||||
|
use Shorewall::Config;
|
||||||
|
use Shorewall::Chains;
|
||||||
|
|
||||||
|
my ( $action, $audit ) = get_action_params( 2 );
|
||||||
|
my $chainref = get_action_chain;
|
||||||
|
my ( $level, $tag ) = get_action_logging;
|
||||||
|
|
||||||
|
fatal_error "Invalid parameter to action Multicast" if supplied $audit && $audit ne 'audit';
|
||||||
|
|
||||||
|
my $target = require_audit ( $action , $audit );
|
||||||
|
my $dest = ( $family == F_IPV4 ) ? join( ' ', '-d', IPv4_MULTICAST . ' ' ) : join( ' ', '-d', IPv6_MULTICAST . ' ' );
|
||||||
|
|
||||||
|
log_rule_limit( $level, $chainref, 'Multicast' , $action, '', $tag, 'add', $dest ) if $level ne '';
|
||||||
|
add_jump $chainref, $target, 0, $dest;
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
?end perl;
|
||||||
|
?endif
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2011-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2011-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2012-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2012-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2011-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
@ -13,7 +13,7 @@
|
|||||||
# address (dst)
|
# address (dst)
|
||||||
# Disposition - Disposition for any rule generated.
|
# Disposition - Disposition for any rule generated.
|
||||||
#
|
#
|
||||||
# For additional information, see http://www.shorewall.net/Events.html
|
# For additional information, see https://shorewall.org/Events.html
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# DO NOT REMOVE THE FOLLOWING LINE
|
# DO NOT REMOVE THE FOLLOWING LINE
|
||||||
@ -41,6 +41,11 @@ fatal_error "Invalid Src or Dest ($destination)" unless $destination =~ /^(?:src
|
|||||||
set_action_disposition( $disposition) if supplied $disposition;
|
set_action_disposition( $disposition) if supplied $disposition;
|
||||||
set_action_name_to_caller;
|
set_action_name_to_caller;
|
||||||
|
|
||||||
|
if ( ( $targets{$action} || 0 ) & NATRULE ) {
|
||||||
|
perl_action_helper( "${action}-", "" );
|
||||||
|
$action = 'ACCEPT';
|
||||||
|
}
|
||||||
|
|
||||||
if ( $destination eq 'dst' ) {
|
if ( $destination eq 'dst' ) {
|
||||||
perl_action_helper( $action, '', '', "-m recent --name $event --remove --rdest" );
|
perl_action_helper( $action, '', '', "-m recent --name $event --remove --rdest" );
|
||||||
} else {
|
} else {
|
@ -13,7 +13,7 @@
|
|||||||
# address (dst)
|
# address (dst)
|
||||||
# Disposition - Disposition for any event generated.
|
# Disposition - Disposition for any event generated.
|
||||||
#
|
#
|
||||||
# For additional information, see http://www.shorewall.net/Events.html
|
# For additional information, see https://shorewall.org/Events.html
|
||||||
#
|
#
|
||||||
|
|
||||||
DEFAULTS -,ACCEPT,src
|
DEFAULTS -,ACCEPT,src
|
||||||
@ -37,6 +37,11 @@ fatal_error "Invalid Src or Dest ($destination)" unless $destination =~ /^(?:src
|
|||||||
set_action_disposition( $disposition) if supplied $disposition;
|
set_action_disposition( $disposition) if supplied $disposition;
|
||||||
set_action_name_to_caller;
|
set_action_name_to_caller;
|
||||||
|
|
||||||
|
if ( ( $targets{$action} || 0 ) & NATRULE ) {
|
||||||
|
perl_action_helper( "${action}-", "" );
|
||||||
|
$action = 'ACCEPT';
|
||||||
|
}
|
||||||
|
|
||||||
if ( $destination eq 'dst' ) {
|
if ( $destination eq 'dst' ) {
|
||||||
perl_action_helper( $action, '', '', "-m recent --name $event --set --rdest" );
|
perl_action_helper( $action, '', '', "-m recent --name $event --set --rdest" );
|
||||||
} else {
|
} else {
|
@ -26,4 +26,4 @@ $tcpflags_action - - ;;+ -p 6 --tcp-flags ALL FIN,URG,PSH
|
|||||||
$tcpflags_action - - ;;+ -p 6 --tcp-flags ALL NONE
|
$tcpflags_action - - ;;+ -p 6 --tcp-flags ALL NONE
|
||||||
$tcpflags_action - - ;;+ -p 6 --tcp-flags SYN,RST SYN,RST
|
$tcpflags_action - - ;;+ -p 6 --tcp-flags SYN,RST SYN,RST
|
||||||
$tcpflags_action - - ;;+ -p 6 --tcp-flags SYN,FIN SYN,FIN
|
$tcpflags_action - - ;;+ -p 6 --tcp-flags SYN,FIN SYN,FIN
|
||||||
$tcpflags_action - - ;;+ -p tcp --syn --sport 0
|
$tcpflags_action - - ;;+ -p 6 --syn --sport 0
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2011-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
38
Shorewall/Actions/action.allowBcast
Normal file
38
Shorewall/Actions/action.allowBcast
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.allowBcast
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# allowBcast[([audit])]
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS -
|
||||||
|
|
||||||
|
?if passed(@1)
|
||||||
|
?if @1 eq 'audit'
|
||||||
|
?require AUDIT_TARGET
|
||||||
|
Broadcast(A_ACCEPT)
|
||||||
|
?else
|
||||||
|
?error "Invalid argument (@1) to allowBcast"
|
||||||
|
?endif
|
||||||
|
?else
|
||||||
|
Broadcast(ACCEPT)
|
||||||
|
?endif
|
@ -3,9 +3,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2011-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
38
Shorewall/Actions/action.allowMcast
Normal file
38
Shorewall/Actions/action.allowMcast
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.allowMcast
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# allowMcast[([audit])]
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS -
|
||||||
|
|
||||||
|
?if passed(@1)
|
||||||
|
?if @1 eq 'audit'
|
||||||
|
?require AUDIT_TARGET
|
||||||
|
Multicast(A_ACCEPT)
|
||||||
|
?else
|
||||||
|
?error "Invalid argument (@1) to allowMcast"
|
||||||
|
?endif
|
||||||
|
?else
|
||||||
|
Multicast(ACCEPT)
|
||||||
|
?endif
|
40
Shorewall/Actions/action.allowinUPnP
Normal file
40
Shorewall/Actions/action.allowinUPnP
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.allowinUPnP
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# allowinUPnP[([audit])]
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS -
|
||||||
|
|
||||||
|
?if passed(@1)
|
||||||
|
?if @1 eq 'audit'
|
||||||
|
?require AUDIT_TARGET
|
||||||
|
A_ACCEPT - - 17 1900
|
||||||
|
A_ACCEPT - - 6 49152
|
||||||
|
?else
|
||||||
|
?error "Invalid argument (@1) to allowinUPnP"
|
||||||
|
?endif
|
||||||
|
?else
|
||||||
|
ACCEPT - - 17 1900
|
||||||
|
ACCEPT - - 6 49152
|
||||||
|
?endif
|
39
Shorewall/Actions/action.dropBcast
Normal file
39
Shorewall/Actions/action.dropBcast
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.dropBcast
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# dropBcast[([audit])]
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS -
|
||||||
|
|
||||||
|
?if passed(@1)
|
||||||
|
?if @1 eq 'audit'
|
||||||
|
?require AUDIT_TARGET
|
||||||
|
Broadcast(A_DROP)
|
||||||
|
?else
|
||||||
|
?error "Invalid argument (@1) to dropBcast"
|
||||||
|
?endif
|
||||||
|
?else
|
||||||
|
Broadcast(DROP)
|
||||||
|
?endif
|
||||||
|
|
39
Shorewall/Actions/action.dropBcasts
Normal file
39
Shorewall/Actions/action.dropBcasts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.dropBcasts
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# dropBcasts[([audit])]
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS -
|
||||||
|
|
||||||
|
?if passed(@1)
|
||||||
|
?if @1 eq 'audit'
|
||||||
|
?require AUDIT_TARGET
|
||||||
|
Broadcast(A_DROP)
|
||||||
|
?else
|
||||||
|
?error "Invalid argument (@1) to dropBcasts"
|
||||||
|
?endif
|
||||||
|
?else
|
||||||
|
Broadcast(DROP)
|
||||||
|
?endif
|
||||||
|
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
#
|
#
|
||||||
# (c) 2011-2016 Tom Eastep (teastep@shorewall.net)
|
# (c) 2011-2017 Tom Eastep (teastep@shorewall.net)
|
||||||
#
|
#
|
||||||
# Complete documentation is available at http://shorewall.net
|
# Complete documentation is available at https://shorewall.org
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of Version 2 of the GNU General Public License
|
# it under the terms of Version 2 of the GNU General Public License
|
38
Shorewall/Actions/action.dropMcast
Normal file
38
Shorewall/Actions/action.dropMcast
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.dropMcast
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# dropMcast[([audit])]
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS -
|
||||||
|
|
||||||
|
?if passed(@1)
|
||||||
|
?if @1 eq 'audit'
|
||||||
|
?require AUDIT_TARGET
|
||||||
|
Multicast(A_DROP)
|
||||||
|
?else
|
||||||
|
?error "Invalid argument (@1) to dropMcast"
|
||||||
|
?endif
|
||||||
|
?else
|
||||||
|
Multicast(DROP)
|
||||||
|
?endif
|
38
Shorewall/Actions/action.dropNotSyn
Normal file
38
Shorewall/Actions/action.dropNotSyn
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.dropNotSyn
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# dropNotSyn[([audit])]
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS -
|
||||||
|
|
||||||
|
?if passed(@1)
|
||||||
|
?if @1 eq 'audit'
|
||||||
|
?require AUDIT_TARGET
|
||||||
|
A_DROP {proto=6:!syn}
|
||||||
|
?else
|
||||||
|
?error "Invalid argument (@1) to dropNotSyn"
|
||||||
|
?endif
|
||||||
|
?else
|
||||||
|
DROP {proto=6:!syn}
|
||||||
|
?endif
|
43
Shorewall/Actions/action.forwardUPnP
Normal file
43
Shorewall/Actions/action.forwardUPnP
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#
|
||||||
|
# Shorewall -- /usr/share/shorewall/action.forwardUPnP
|
||||||
|
#
|
||||||
|
# This program is under GPL [http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt]
|
||||||
|
#
|
||||||
|
# (c) 2017 Tom Eastep (teastep@shorewall.net)
|
||||||
|
#
|
||||||
|
# Complete documentation is available at https://shorewall.org
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of Version 2 of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# 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, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# forwardUPnP
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DEFAULTS -
|
||||||
|
|
||||||
|
?begin perl
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use Shorewall::Config;
|
||||||
|
use Shorewall::Chains;
|
||||||
|
|
||||||
|
my $chainref = get_action_chain;
|
||||||
|
|
||||||
|
set_optflags( $chainref, DONT_OPTIMIZE );
|
||||||
|
|
||||||
|
add_commands( $chainref , '[ -f ${VARDIR}/.forwardUPnP ] && cat ${VARDIR}/.forwardUPnP >&3' );
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
?end perl
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user