mirror of
https://github.com/webmin/webmin.git
synced 2026-02-06 15:32:20 +00:00
Compare commits
321 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d55206c69 | ||
|
|
c2fe651b16 | ||
|
|
ff81498f73 | ||
|
|
1d380f8665 | ||
|
|
d4aada9248 | ||
|
|
e0da240903 | ||
|
|
4cd05d0777 | ||
|
|
207570d6c6 | ||
|
|
df520db5bd | ||
|
|
6a725d590b | ||
|
|
f00784fce8 | ||
|
|
495ab59f09 | ||
|
|
7d69745da2 | ||
|
|
a32f9ab50f | ||
|
|
6922e89582 | ||
|
|
c8b583b848 | ||
|
|
78fa0a6d02 | ||
|
|
a6fc0360ac | ||
|
|
151fd07c20 | ||
|
|
34ba810c40 | ||
|
|
f67563902c | ||
|
|
fe9172c70e | ||
|
|
8c6b2a3021 | ||
|
|
3ee53333ca | ||
|
|
694a9ef746 | ||
|
|
62f88f3141 | ||
|
|
bc0faf3a27 | ||
|
|
bd3e9c7d06 | ||
|
|
b2412b46d8 | ||
|
|
ff6f59339b | ||
|
|
2cb7691e37 | ||
|
|
24d15b1444 | ||
|
|
4d39b7233c | ||
|
|
897f0d06fe | ||
|
|
95cafd87b1 | ||
|
|
5856d46c6c | ||
|
|
31d3aa2782 | ||
|
|
799a0e8efd | ||
|
|
028dc5a7bd | ||
|
|
27a1ccf257 | ||
|
|
22abe602ed | ||
|
|
524c6678a6 | ||
|
|
a74744d914 | ||
|
|
fe1e459d62 | ||
|
|
c1430d3c78 | ||
|
|
e41d7bbceb | ||
|
|
b5438d5e74 | ||
|
|
ed4f4574e7 | ||
|
|
9eea0dc202 | ||
|
|
188aef4d97 | ||
|
|
12ca5b702e | ||
|
|
1669d55c67 | ||
|
|
4c9d6774aa | ||
|
|
28b906abb2 | ||
|
|
1e6fd5eb7c | ||
|
|
155bf542f8 | ||
|
|
c9f43f70d6 | ||
|
|
3ec46a61db | ||
|
|
e663dc10fd | ||
|
|
2f9e91b9e1 | ||
|
|
8509f841ba | ||
|
|
1138bff9e4 | ||
|
|
6461d8f245 | ||
|
|
90bf845504 | ||
|
|
0c348a754f | ||
|
|
106607b967 | ||
|
|
8f7acb24bf | ||
|
|
1dbe198aa3 | ||
|
|
33247f4fab | ||
|
|
8a28399cb4 | ||
|
|
102047efa8 | ||
|
|
fbc19a3d1a | ||
|
|
aae1c32030 | ||
|
|
0301c4751d | ||
|
|
926f35e7e8 | ||
|
|
1d299ecd00 | ||
|
|
2a9e9e491f | ||
|
|
fe39f816b3 | ||
|
|
473b72f98c | ||
|
|
73498f60bb | ||
|
|
938965c9d2 | ||
|
|
64b3e7d792 | ||
|
|
9cdeb188d8 | ||
|
|
2efc68fcdc | ||
|
|
0e68254f26 | ||
|
|
4e9408b048 | ||
|
|
0213ee0371 | ||
|
|
f5ebb0a1cf | ||
|
|
9b12008cd1 | ||
|
|
5db4f95687 | ||
|
|
6fe30eb104 | ||
|
|
1709426f3f | ||
|
|
838f90c8d7 | ||
|
|
ef01659b5b | ||
|
|
dc3099abe8 | ||
|
|
fc098eaa15 | ||
|
|
17747f5e6a | ||
|
|
8cb9515e0b | ||
|
|
1faed086a6 | ||
|
|
121f5afa5e | ||
|
|
a058b34461 | ||
|
|
e39e25f637 | ||
|
|
96bf8e0429 | ||
|
|
a5db48b268 | ||
|
|
4cf90d07ac | ||
|
|
f7a864b15e | ||
|
|
bd1fb03888 | ||
|
|
d48b4c0432 | ||
|
|
9e37f09bea | ||
|
|
b077a832b5 | ||
|
|
f6e7b851d2 | ||
|
|
cd40658ada | ||
|
|
fcc9677c89 | ||
|
|
c6fa750dc8 | ||
|
|
39ae4107f2 | ||
|
|
250a3f7ce6 | ||
|
|
e9e453cc2d | ||
|
|
6efc7363b8 | ||
|
|
a45f60a969 | ||
|
|
3615770fbe | ||
|
|
9ccf4fd7df | ||
|
|
c89225bd68 | ||
|
|
7e5556f530 | ||
|
|
f8c8487ac3 | ||
|
|
cae261ed84 | ||
|
|
aabd5f7a4f | ||
|
|
77795a6c40 | ||
|
|
3673c08687 | ||
|
|
97b71af97c | ||
|
|
a623f44b84 | ||
|
|
39a4574aae | ||
|
|
ccc5f260c4 | ||
|
|
83400e5edc | ||
|
|
02ae0fc5ae | ||
|
|
47694dac77 | ||
|
|
ea6e798b0e | ||
|
|
16204e7dcd | ||
|
|
efa9057d30 | ||
|
|
c11deb3936 | ||
|
|
d5e23a92e5 | ||
|
|
d195ccbbf2 | ||
|
|
61322d3ccb | ||
|
|
2d6bec06dc | ||
|
|
3430c74fe2 | ||
|
|
16949927d6 | ||
|
|
a8cf0a8e78 | ||
|
|
3d5802bcaf | ||
|
|
fa3a61c5a7 | ||
|
|
5d55867393 | ||
|
|
81f657fa15 | ||
|
|
41b8d4da9a | ||
|
|
450264d182 | ||
|
|
be4da986ec | ||
|
|
98c2a76499 | ||
|
|
f1e2287b3a | ||
|
|
dfdacb3a26 | ||
|
|
9924f44c05 | ||
|
|
d055e86901 | ||
|
|
d9d94fd394 | ||
|
|
d35cffade9 | ||
|
|
cd6939bf8a | ||
|
|
5672b61358 | ||
|
|
8b564f10e3 | ||
|
|
39b80ee1ec | ||
|
|
7e1b9071e1 | ||
|
|
7930a03763 | ||
|
|
ae23abc827 | ||
|
|
f71283ae40 | ||
|
|
0832cd40a1 | ||
|
|
aa4532ff1b | ||
|
|
adecd320f5 | ||
|
|
8ec0c144d2 | ||
|
|
b2620accf8 | ||
|
|
f2d77a7bee | ||
|
|
f4bb5a843a | ||
|
|
5090c85338 | ||
|
|
f145fb02cf | ||
|
|
cdc89c352a | ||
|
|
4c537d0fd8 | ||
|
|
95a4c2c956 | ||
|
|
1a4d536351 | ||
|
|
4e4f82713e | ||
|
|
6434f896dc | ||
|
|
4a3dfb308b | ||
|
|
cb2eb0c95d | ||
|
|
b134e9e0d7 | ||
|
|
28b90e1b37 | ||
|
|
e9c0383a3c | ||
|
|
1118c2bb2f | ||
|
|
caea0eee60 | ||
|
|
573d39e146 | ||
|
|
3c41e0e816 | ||
|
|
eb950ff47d | ||
|
|
c9bde07cfd | ||
|
|
44a1b68426 | ||
|
|
d0ebb3783e | ||
|
|
f8a9353408 | ||
|
|
0eae027dbc | ||
|
|
278ec5cd76 | ||
|
|
a6a20642fb | ||
|
|
7efe201a27 | ||
|
|
39bb0a681c | ||
|
|
2d896443eb | ||
|
|
a6d1f74f1f | ||
|
|
8ab1cc4abc | ||
|
|
269bc80ec3 | ||
|
|
9871556169 | ||
|
|
e3ef1b9fce | ||
|
|
ad9bc2701d | ||
|
|
2468ea1001 | ||
|
|
cef1b1332a | ||
|
|
ed11ba25c6 | ||
|
|
efae515c1f | ||
|
|
a4412fcbe8 | ||
|
|
eba13b74c9 | ||
|
|
3548188c38 | ||
|
|
36968f5362 | ||
|
|
2b77e8f020 | ||
|
|
700b4f696e | ||
|
|
bb24d89ddb | ||
|
|
f0c0efb411 | ||
|
|
ea7d904d90 | ||
|
|
deed37b482 | ||
|
|
5cd13920a8 | ||
|
|
8227e56084 | ||
|
|
57efdd9a28 | ||
|
|
b36d0f955c | ||
|
|
5e5f6cd916 | ||
|
|
4e81ecb659 | ||
|
|
88679cff5a | ||
|
|
a6901947c2 | ||
|
|
8912154c0b | ||
|
|
6b34d179bb | ||
|
|
bb2f091a17 | ||
|
|
dfd337009f | ||
|
|
554cba6eba | ||
|
|
9d3e0e85ba | ||
|
|
7d670cc449 | ||
|
|
0cc0a893a2 | ||
|
|
b7190b1927 | ||
|
|
68890d8f2b | ||
|
|
03f4c9fd56 | ||
|
|
c813b1c068 | ||
|
|
aafb66e45c | ||
|
|
8f0d32b764 | ||
|
|
62bf3b6cd4 | ||
|
|
58a454dc23 | ||
|
|
5a74498b87 | ||
|
|
ac238e37d1 | ||
|
|
9e4269ebae | ||
|
|
dfb0db593d | ||
|
|
79e2bf69b4 | ||
|
|
c153fae3d8 | ||
|
|
c1105d0ac5 | ||
|
|
fdffa9ee42 | ||
|
|
cb008888bf | ||
|
|
86ce05ec3b | ||
|
|
a42fbc5bd0 | ||
|
|
441b9f1502 | ||
|
|
1e0100b424 | ||
|
|
288a377e71 | ||
|
|
12e2aecbda | ||
|
|
2d83ca6cdf | ||
|
|
f498f36bef | ||
|
|
2eb957fc04 | ||
|
|
9cff0de208 | ||
|
|
4b2ba48e58 | ||
|
|
d47ee41c32 | ||
|
|
22f3d49e5c | ||
|
|
a10dd02a49 | ||
|
|
52196635a3 | ||
|
|
59efd239ea | ||
|
|
1a1deef64a | ||
|
|
132ea695bc | ||
|
|
743d0d59ad | ||
|
|
7162dbaa8e | ||
|
|
c378e60ec7 | ||
|
|
9612e05536 | ||
|
|
f38442bbae | ||
|
|
cf0ddafbe0 | ||
|
|
1727c9917d | ||
|
|
18d16d7639 | ||
|
|
3d20f8c56e | ||
|
|
d4264be5fd | ||
|
|
6d553a10ad | ||
|
|
5f4180cf13 | ||
|
|
4aedfdb006 | ||
|
|
a3658ff653 | ||
|
|
d040242a7e | ||
|
|
019e5e15e6 | ||
|
|
2a8797c49c | ||
|
|
ab1095e529 | ||
|
|
30168f57bb | ||
|
|
0a2eb1d520 | ||
|
|
ec4f05ec5f | ||
|
|
7a9b4d0b2b | ||
|
|
b7b6624ee8 | ||
|
|
f455c24054 | ||
|
|
ee94c220da | ||
|
|
615f97f47e | ||
|
|
1ef26769b6 | ||
|
|
04ed6406e7 | ||
|
|
882dcb7384 | ||
|
|
f29f13f817 | ||
|
|
0a8abc529b | ||
|
|
72e2faa5b6 | ||
|
|
8291e1c98d | ||
|
|
df3fa20d6f | ||
|
|
4f532659b3 | ||
|
|
e1f086944d | ||
|
|
a13bce59e3 | ||
|
|
ad46361cb0 | ||
|
|
fd5f09a816 | ||
|
|
c38570cb9d | ||
|
|
324732d948 | ||
|
|
78c5892c6a | ||
|
|
a1e74e6659 | ||
|
|
4caa56aa80 | ||
|
|
95c494d9fc | ||
|
|
2dd92dc2b7 | ||
|
|
f5580c4046 |
11
CHANGELOG
11
CHANGELOG
@@ -217,3 +217,14 @@ More German translation updates, thanks to Raymond Vetter.
|
||||
Norwegian updates, thanks to Stein-Aksel Basma.
|
||||
The awesome new Authentic Theme by Ilia Rostovtsev is now included in the Webmin package.
|
||||
Catalan translation updates from Jaume Badiella.
|
||||
---- Changes since 1.740 ----
|
||||
Norwegian updates, thanks to Stein-Aksel Basma.
|
||||
Catalan translation updates from Jaume Badiella.
|
||||
More German translation updates, thanks to Raymond Vetter.
|
||||
---- Changes since 1.750 ----
|
||||
Norwegian updates, thanks to Stein-Aksel Basma.
|
||||
Catalan translation updates from Jaume Badiella.
|
||||
More German translation updates, thanks to Raymond Vetter.
|
||||
Fixed an XSS bug that allowed xmlrpc.cgi to be abused by a malicious link.
|
||||
---- Changes since 1.760 ----
|
||||
For new installs, switched the location of data files in many modules to /var/webmin instead of /etc/webmin.
|
||||
|
||||
2
README
2
README
@@ -1,4 +1,4 @@
|
||||
Webmin Version 1.740
|
||||
Webmin Version 1.770
|
||||
--------------------
|
||||
Webmin is a web-based interface for system administration for Unix.
|
||||
Using any browser that supports tables and forms, you can setup user
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -257,7 +257,11 @@ else{ /* end IE initialization, try to deal with real browsers now ;-) */
|
||||
/**
|
||||
* <p>Emulate IE's onreadystatechange attribute</p>
|
||||
*/
|
||||
XMLDocument.prototype.onreadystatechange = null;
|
||||
try {
|
||||
XMLDocument.prototype.onreadystatechange = null;
|
||||
} catch(err) {
|
||||
// May fail on Chrome 43+
|
||||
}
|
||||
/**
|
||||
* <p>Emulates IE's readyState property, which always gives an integer from 0 to 4:</p>
|
||||
* <ul><li>1 == LOADING,</li>
|
||||
|
||||
@@ -2,9 +2,9 @@ show_list=0
|
||||
httpd_dir=/etc/httpd
|
||||
httpd_path=/usr/sbin/httpd
|
||||
mime_types=/etc/mime.types
|
||||
start_cmd=service httpd start
|
||||
apply_cmd=service httpd reload
|
||||
stop_cmd=service httpd stop
|
||||
start_cmd=systemctl start httpd.service
|
||||
apply_cmd=systemctl reload httpd.service
|
||||
stop_cmd=systemctl stop httpd.service
|
||||
show_order=0
|
||||
max_servers=100
|
||||
test_config=1
|
||||
|
||||
@@ -2,9 +2,9 @@ show_list=0
|
||||
httpd_dir=/etc/httpd
|
||||
httpd_path=/usr/sbin/httpd
|
||||
mime_types=/etc/mime.types
|
||||
start_cmd=service httpd start
|
||||
apply_cmd=service httpd reload
|
||||
stop_cmd=service httpd stop
|
||||
start_cmd=systemctl start httpd.service
|
||||
apply_cmd=systemctl reload httpd.service
|
||||
stop_cmd=systemctl stop httpd.service
|
||||
show_order=0
|
||||
max_servers=100
|
||||
test_config=1
|
||||
|
||||
@@ -2,9 +2,9 @@ show_list=0
|
||||
httpd_dir=/etc/httpd
|
||||
httpd_path=/usr/sbin/httpd
|
||||
mime_types=/etc/mime.types
|
||||
start_cmd=service httpd start
|
||||
apply_cmd=service httpd reload
|
||||
stop_cmd=service httpd stop
|
||||
start_cmd=systemctl start httpd.service
|
||||
apply_cmd=systemctl reload httpd.service
|
||||
stop_cmd=systemctl stop httpd.service
|
||||
show_order=0
|
||||
max_servers=100
|
||||
test_config=1
|
||||
|
||||
@@ -366,6 +366,7 @@ if ($_[0]->{'version'} < 2.0) {
|
||||
}
|
||||
else {
|
||||
# Apache 2.0 just uses Listen directives
|
||||
local %doneport;
|
||||
for($i=0; $i<@blist; $i++) {
|
||||
if (&check_ip6address($blist[$i])) {
|
||||
$blist[$i] = "[".$blist[$i]."]";
|
||||
@@ -375,6 +376,10 @@ else {
|
||||
}
|
||||
elsif ($blist[$i] ne "*") { push(@l, $blist[$i]); }
|
||||
else { push(@l, "*:$plist[$i]"); }
|
||||
if ($doneport{$l[$#l]}++) {
|
||||
# Same listen given twice
|
||||
&error(&text('core_eduplisten', $l[$#l]));
|
||||
}
|
||||
if ($_[0]->{'version'} >= 2.4 && $slist[$i]) {
|
||||
$l[$#l] .= " ".$slist[$i];
|
||||
}
|
||||
|
||||
@@ -220,6 +220,11 @@ foreach $v (@virt) {
|
||||
if (&find_vdirective("SSLEngine", $vm, $conf, 1) eq "on") {
|
||||
$prot = "https";
|
||||
}
|
||||
elsif ($port == 443) {
|
||||
$prot = "https";
|
||||
}
|
||||
$sp = undef if ($sp == 80 && $prot eq "http" ||
|
||||
$sp == 443 && $prot eq "https");
|
||||
push(@vurl, $sp ? "$prot://$sn:$sp/" : "$prot://$sn/");
|
||||
}
|
||||
|
||||
@@ -368,10 +373,12 @@ else {
|
||||
print "<table width=100% cellpadding=5>\n";
|
||||
for($i=0; $i<@vname; $i++) {
|
||||
print "<tr class='mainbody ".($i % 2 ? 'row0' : 'row1')."'> <td valign=top align=center nowrap>";
|
||||
print '<div class="row icons-row inline-row">';
|
||||
&generate_icon("images/virt.gif", $vname[$i], $vlink[$i],
|
||||
undef, undef, undef,
|
||||
$vidx[$i] && $access{'vaddr'} ?
|
||||
&ui_checkbox("d", $vidx[$i]) : "");
|
||||
print "</div>\n";
|
||||
print "</td> <td valign=top>\n";
|
||||
print "$vdesc[$i]<br>\n";
|
||||
print "<table width=100%><tr>\n";
|
||||
|
||||
@@ -186,6 +186,7 @@ core_edefchar=Fehlender oder ungültiger Zeichensatz für die Dokumente
|
||||
core_edefmime=Der Standard MIME-Typ muss in der Form type/subtype sein
|
||||
core_edefport=Ungültiger Standardport
|
||||
core_edirlog=Fehlerprotokolldatei ist nicht im erlaubten Verzeichnis
|
||||
core_eduplisten=Lausche Adresse $1 zweimal aufgeführt
|
||||
core_eerror='$1' kein gültiger Fehlercode
|
||||
core_eerrordir=Das Verzeichnis für das Error-Logfile existiert nicht
|
||||
core_efilelog=Ungültige Fehlerprotokolldatei
|
||||
|
||||
@@ -367,6 +367,7 @@ core_eaddress='$1' is not a valid address
|
||||
core_eport='$1' is not a valid port
|
||||
core_eoneaddr=You must specify at least one address to listen on
|
||||
core_edefport=Invalid default port
|
||||
core_eduplisten=Listen address $1 is listed twice
|
||||
core_multi=Multiple requests per connection
|
||||
core_ekeep='$1' is not a valid number of keepalives
|
||||
core_ltwice=Lookup twice
|
||||
|
||||
1001
apache/lang/ru.UTF-8
Normal file
1001
apache/lang/ru.UTF-8
Normal file
File diff suppressed because it is too large
Load Diff
@@ -38,7 +38,7 @@ authg_none=
|
||||
vserv_delete=Удалить виртуальный сервер
|
||||
authu_edit=Редактирование пользователя
|
||||
restart_err=Ошибка при применении изменений
|
||||
virt_header=Для "$1"
|
||||
virt_header=Для $1
|
||||
htaccess_title=Файлы параметров для каждого каталога
|
||||
htaccess_edir='$1' не является допустимым каталогом
|
||||
type_0=Процессы и лимиты
|
||||
@@ -193,7 +193,7 @@ index_addr=
|
||||
restart_eunknown=Неизвестная причина
|
||||
index_type=Тип
|
||||
index_vdef=Обрабатывает все запросы, не обслуженные другими виртуальными серверами.
|
||||
htindex_header=Для "$1"
|
||||
htindex_header=Для $1
|
||||
authg_header=В файле $1
|
||||
virt_return=меню сервера
|
||||
htindex_create=Создание параметров для каждого файла
|
||||
@@ -908,3 +908,94 @@ core_minspare=
|
||||
core_satisfy=Клиенты должны удовлетворять требованиям
|
||||
mod_userdir_except=Всем пользователям, исключая
|
||||
manual_file=Редактирование директив в файле:
|
||||
core_eerrordir=Каталог для log file не существует
|
||||
acl_names=Отредактировать имена серверов?
|
||||
index_descglobal=Изменения этих параметров применяться ко всему серверу Apache, включая все виртуальные хосты.
|
||||
mod_auth_digest_edomain=Отсутствует URL-адреса и пути в одном домене
|
||||
mod_apachessl_forcessl=Сила доступа SSL/notSSL?
|
||||
mod_ssl_cafile=Файл сертификата авторизации
|
||||
log_mods=Изменена конфигурация модулей Apache
|
||||
acl_apply=Применить изменения?
|
||||
htaccess_file=Существующие параметры файлов
|
||||
mod_ssl_epassph=Не введен пароль SSL
|
||||
index_delete=Удалить выбранные серверы
|
||||
mod_apachessl_sesstimeout=Время в секундах, которое ключ сеанса будет кэшироваться
|
||||
core_portname=Протокол
|
||||
index_proxy=Карта URL
|
||||
mod_band_ebw='$1' не является допустимым ограничением пропускной способности
|
||||
acl_dirs0=Все
|
||||
core_minor=Только незначительная версия
|
||||
htaccess_err=Не удалось создать файл параметров
|
||||
delete_ecannot2=Вам не разрешено редактировать сервер $1
|
||||
mod_ssl_ecafile=Отсутствует файл ключа сертификата авторизации
|
||||
eafter=Сбой проверки конфигурации: $1 изменения не были сохранены.
|
||||
index_tablist=Существующие виртуальные хосты
|
||||
mod_php_admin_value=Значения конфигурации PHP Admin
|
||||
acl_dirs=Имеющиеся директивы Apache <br><font size=-1>(С учетом типов ограничить выше) </font>
|
||||
index_any0=Конкретный адрес...
|
||||
index_return2=Глобальная настройка
|
||||
mod_proxy_seconds=секунд
|
||||
index_newaddr=Обрабатывать запросы на адрес
|
||||
log_virts_delete=Удаленные виртуальные серверы $1
|
||||
log_manual=Вручную редактировать файл конфигурации $1
|
||||
mod_alias_edest2=Вы не можете использовать в $2 назначения '$1'
|
||||
mod_log_config_edir=Каталог для файла журнала '$1' не существует
|
||||
mod_band_enable=Включить ограничение скорости?
|
||||
index_apache=Веб-сервер Apache
|
||||
index_tabcreate=Создание виртуального хоста
|
||||
mod_ssl_builtin=Запрос при запуске
|
||||
mod_apachessl_ecacherundir=Отсутствует рабочий каталог gcache
|
||||
index_any1=То что не обработано другим сервером
|
||||
mod_band_ent=IP-адрес или домен
|
||||
acl_dirs2=Все, кроме перечисленных...
|
||||
mod_apachessl_nov2=Отключить SSL версии 2
|
||||
mod_band_max=Максимальное количество одновременных подключений
|
||||
manual_etest=Обнаружена ошибка конфигурации файла: $1
|
||||
defines_list=Определены параметры
|
||||
mod_band_size=Минимальный размер файла
|
||||
manual_editfile=Отредактировать конфигурационный файл:
|
||||
index_crnow=Создать сейчас
|
||||
delete_enone=Ничего не выбрано
|
||||
mod_dav_etimeout=Несуществующее или недопустимое время ожидания DAV
|
||||
cvirt_emissing=Был добавлен новый виртуальный сервер в $1, но этот файл не используется Apache. Проверьте <a href='$2'>модуль конфигурации</a> и убедитесь, что 'файл или каталог для добавления виртуальных серверов' является правильным.
|
||||
mod_php_admin_flag=Флаги конфигурации PHP Admin
|
||||
mod_band_client=Для клиентов
|
||||
index_any2=Любой адрес
|
||||
index_desclist=Список ниже показывает все определенные виртуальные хосты Apache, к которым в настоящее время у вас есть доступ. Опция <b>Сервер по умолчанию</ b> определяет параметры, которые применяются ко всем другим виртуальным хостам, если не переопределить.
|
||||
index_adddir=Allow access to this directory
|
||||
core_major=Только основная версия
|
||||
mod_apachessl_notssl=Запретить доступ по протоколу SSL
|
||||
mod_band_emax=Несуществующее или недопустимое количество одновременных подключений
|
||||
mod_band_epulse=Отсутствующий или недопустимый интервал между ограниченным пакетов
|
||||
index_url=URL
|
||||
index_tabglobal=Глобальная настройка
|
||||
mod_apachessl_esesstimeout=Время в секундах должно быть целым
|
||||
mod_proxy_not=Нет
|
||||
mod_band_bw=Предел (байт/сек)
|
||||
dir_proxyall=Все запросы через прокси
|
||||
delete_ecannot=Вы не можете удалять серверы
|
||||
manual_switch=Редактировать
|
||||
core_virtaddr_star=Включить все адреса
|
||||
mod_log_config_ifset=Если задать
|
||||
mod_band_esize=Размер файла отсутствует или недопустим для ограничение пропускной способности '$1'
|
||||
mod_band_bandwidth=Ограничения полосы пропускания клиента
|
||||
mod_apachessl_ramdomfilee=Socket
|
||||
acl_aliasdir=Лимит алиасов в каталоге
|
||||
mod_apachessl_eramdomfileb=Байт должен быть целым числом
|
||||
mod_auth_digest_domain=URL-адреса и пути в одном домене
|
||||
acl_dirs1=Только перечисленные...
|
||||
mod_band_all=Все
|
||||
mod_dav_active=Включен протокол WebDAV?
|
||||
delete_err=Не удалось удалить виртуальные серверы
|
||||
mod_auth_basic_dbm=База данных DBM
|
||||
index_fmode1d=Новый файл в каталоге виртуальных серверов $1
|
||||
mod_band_eclient=Отсутствующий или недопустимый IP клиента, сети или домен для ограничения пропускной способности '$1'
|
||||
mod_band_pulse=Интервал между ограниченным пакетов (в мс)
|
||||
mod_ssl_ecerton=Если протокол SSL включен, файл сертификата должен быть выбран
|
||||
index_desccreate=Эта форма может использоваться для добавления нового виртуального хоста Apache, который обслуживает контент из указанного каталога в ответ на запросы на конкретный IP-адрес или имя хоста.
|
||||
mod_auth_digest_al=Алгоритм хэширования
|
||||
mod_auth_basic_file=Текстовый файл
|
||||
cvirt_eroot4=Ни один пользователь, определенный в конфигурации Apache
|
||||
__norefs=Русский
|
||||
mod_apachessl_ramdomfilef=Файл
|
||||
index_view=Открытые...
|
||||
|
||||
1883
apache/lang/ru_SU
1883
apache/lang/ru_SU
File diff suppressed because it is too large
Load Diff
@@ -35,6 +35,7 @@ edit_schedyes=S
|
||||
edit_mods=Mòduls a copiar
|
||||
edit_dest=Destinació de la còpia
|
||||
edit_mods2=Mòduls a restaurar
|
||||
edit_other2=Altres fitxers a restaurar
|
||||
edit_dest2=Restaura de
|
||||
edit_what=Inclou en la còpia
|
||||
edit_webmin=Fitxers de configuració dels mòduls Webmin
|
||||
@@ -83,6 +84,7 @@ backup_failed=... ha fallat! $1
|
||||
backup_done=... completa. La mida final de la còpia és de $1 i conté $2 fitxers.
|
||||
|
||||
restore_err=La restauració ha fallat
|
||||
restore_emods=No has seleccionat cap mòdul ni cap altre fitxer
|
||||
restore_title=Configuració de Restauració
|
||||
restore_doing=S'està començant la restauració dels fitxers de configuració de mòduls de $1...
|
||||
restore_testing=S'està extraient el contingut de la còpia de $1...
|
||||
|
||||
@@ -43,6 +43,7 @@ edit_mods=Moduler som skal sikkerhetskopieres
|
||||
edit_mods2=Moduler som skal gjenopprettes
|
||||
edit_nofiles=Tjener konfigurasjonsfiler
|
||||
edit_other=Andre listede filer ..
|
||||
edit_other2=Andre filer å gjenopprette
|
||||
edit_post=Post-sikkerhetskopi kommando
|
||||
edit_pre=Pre-sikkerhetskopi kommando
|
||||
edit_return=backup skjema
|
||||
@@ -99,6 +100,7 @@ nice_upload=lastet opp fil
|
||||
restore_doing=Starter gjenoppretting av modulkonfigurasjonsfiler fra $1 ..
|
||||
restore_done=.. fullført. $1 filer ble gjenopprettet.
|
||||
restore_done2=.. filer i sikkerhetskopien er :
|
||||
restore_emods=Ingen moduler eller andre filer valgt
|
||||
restore_err=Gjenoppretting feilet
|
||||
restore_failed=.. feilet! $1
|
||||
restore_testing=Pakker ut innhold av sikkerhetskopi fra $1 ..
|
||||
|
||||
@@ -10,4 +10,4 @@ desc_pl.UTF-8=System kopii zapasowej Bacula
|
||||
desc_ru=СиÑ<C2B8>тема резервного копированиÑ<C2B8> Bacula
|
||||
desc_ms_MY=Sistem backup Bacula
|
||||
longdesc_ms_MY=Konfigurasi Bacula untuk melaksanakan salinan dan mengembalikan secara manual atau mengikut jadual, untuk satu atau banyak sistem.
|
||||
longdesc_de=Konfiguriert Bacula um Sicherungen zu erstellen und manuell wiederherzustellen oder nach Plan, für eine oder viele Systeme.
|
||||
longdesc_de=Konfiguriert Bacula um Sicherungen zu erstellen und manuell oder nach Plan wiederherzustellen, für eine oder viele Systeme.
|
||||
|
||||
@@ -116,7 +116,8 @@ foreach $clientjob (@clients) {
|
||||
}
|
||||
}
|
||||
&sysprint($h->{'infh'}, "done\n");
|
||||
$rv = &wait_for($h->{'outfh'}, 'OK to run.*:', 'no files selected');
|
||||
$rv = &wait_for($h->{'outfh'}, 'OK to run.*:', 'no files selected',
|
||||
'Select Restore Job.*:');
|
||||
print $wait_for_input;
|
||||
if ($rv == 0) {
|
||||
&sysprint($h->{'infh'}, "yes\n");
|
||||
@@ -124,6 +125,11 @@ foreach $clientjob (@clients) {
|
||||
elsif ($rv == 1) {
|
||||
&job_error($text{'restore_enofiles'});
|
||||
}
|
||||
elsif ($rv == 2) {
|
||||
&sysprint($h->{'infh'}, "1\n");
|
||||
&wait_for($h->{'outfh'}, 'OK to run.*:');
|
||||
&sysprint($h->{'infh'}, "yes\n");
|
||||
}
|
||||
else {
|
||||
&job_error($text{'backup_eok'});
|
||||
}
|
||||
|
||||
@@ -42,6 +42,26 @@ foreach $v (sort { $a->{'value'} cmp $b->{'value'} } @views) {
|
||||
}
|
||||
print "</select></td> </tr></table></td></tr>\n";
|
||||
|
||||
if (@views) {
|
||||
print "<tr> <td valign=top><b>$text{'acl_inviews'}</b></td>\n";
|
||||
print "<td colspan=3>\n";
|
||||
print &ui_radio("inviews_def", $_[0]->{'inviews'} eq "*" ? 1 : 0,
|
||||
[ [ 1, $text{'acl_vall'} ],
|
||||
[ 0, $text{'acl_vsel'} ] ]),"<br>\n";
|
||||
print "<select name=inviews multiple size=4 width=150>\n";
|
||||
local ($v, %vcan);
|
||||
map { $vcan{$_}++ } split(/\s+/, $_[0]->{'inviews'});
|
||||
printf "<option value='%s' %s>%s</option>\n",
|
||||
"_", $vcan{"_"} ? "selected" : "",
|
||||
"<".$text{'acl_toplevel'}.">";
|
||||
foreach $v (sort { $a->{'value'} cmp $b->{'value'} } @views) {
|
||||
printf "<option value='%s' %s>%s</option>\n",
|
||||
$v->{'value'},
|
||||
$vcan{$v->{'value'}} ? "selected" : "", $v->{'value'};
|
||||
}
|
||||
print "</select></td></tr>\n";
|
||||
}
|
||||
|
||||
print "<tr> <td><b>$text{'acl_types'}</b></td> <td colspan=3>\n";
|
||||
printf "<input type=radio name=types_def value=1 %s> %s\n",
|
||||
$_[0]->{'types'} ? "" : "checked", $text{'acl_types1'};
|
||||
@@ -204,6 +224,8 @@ elsif ($in{'zones_def'} == 2) {
|
||||
else {
|
||||
$_[0]->{'zones'} = join(" ", split(/\0/, $in{'zones'}));
|
||||
}
|
||||
$_[0]->{'inviews'} = !defined($in{'inviews'}) || $in{'inviews_def'} ? "*" :
|
||||
join(" ", split(/\0/, $in{'inviews'}));
|
||||
$_[0]->{'types'} = $in{'types_def'} ? undef : $in{'types'};
|
||||
$_[0]->{'master'} = $in{'master'} || 0;
|
||||
$_[0]->{'slave'} = $in{'slave'} || 0;
|
||||
|
||||
@@ -879,8 +879,20 @@ elsif ($access{'zones'} =~ /^\!/) {
|
||||
else {
|
||||
# List of allowed zones
|
||||
local $ok;
|
||||
foreach (split(/\s+/, $access{'zones'})) {
|
||||
$ok++ if ($_ eq $zn || ($vn && $_ eq $vn));
|
||||
foreach my $z (split(/\s+/, $access{'zones'})) {
|
||||
$ok++ if ($z eq $zn || ($vn && $z eq "view_".$vn));
|
||||
}
|
||||
return 0 if (!$ok);
|
||||
}
|
||||
|
||||
# Check allowed view
|
||||
if ($access{'inviews'} eq '*') {
|
||||
# All views are OK
|
||||
}
|
||||
else {
|
||||
local $ok;
|
||||
foreach my $v (split(/\s+/, $access{'inviews'})) {
|
||||
$ok++ if ($v eq ($vn || "_"));
|
||||
}
|
||||
return 0 if (!$ok);
|
||||
}
|
||||
@@ -3954,19 +3966,32 @@ sub get_ds_record
|
||||
{
|
||||
my ($zone) = @_;
|
||||
my $zonefile;
|
||||
my $dom;
|
||||
if ($zone->{'values'}) {
|
||||
# Zone object
|
||||
local $f = &find("file", $zone->{'members'});
|
||||
my $f = &find("file", $zone->{'members'});
|
||||
$zonefile = $f->{'values'}->[0];
|
||||
$dom = $zone->{'values'}->[0];
|
||||
}
|
||||
else {
|
||||
# Zone name object
|
||||
$zonefile = $zone->{'file'};
|
||||
$dom = $zone->{'name'};
|
||||
}
|
||||
if (&has_command("dnssec-dsfromkey")) {
|
||||
# Generate with a command
|
||||
my $out = &backquote_command("dnssec-dsfromkey -f ".quotemeta(&make_chroot(&absolute_path($zonefile)))." ZONE 2>/dev/null");
|
||||
return undef if ($?);
|
||||
$out =~ s/\r|\n//g;
|
||||
return $out;
|
||||
}
|
||||
else {
|
||||
# From dsset- file
|
||||
my $keydir = &get_keys_dir($zone);
|
||||
my $out = &read_file_contents($keydir."/dsset-".$dom.".");
|
||||
$out =~ s/\r|\n$//g;
|
||||
return $out;
|
||||
}
|
||||
my $out = &backquote_command("dnssec-dsfromkey -f ".quotemeta(&make_chroot(&absolute_path($zonefile)))." ZONE 2>/dev/null");
|
||||
return undef if ($?);
|
||||
$out =~ s/\r|\n//g;
|
||||
return $out;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
@@ -10,7 +10,7 @@ $zone = &get_zone_name_or_error($in{'zone'}, $in{'view'});
|
||||
$zconf = &zone_to_config($zone);
|
||||
|
||||
$access{'master'} || &error($text{'mcreate_ecannot'});
|
||||
$file = &find("file", $zconf->{'members'});
|
||||
$file = &find_value("file", $zconf->{'members'});
|
||||
if (!$file) {
|
||||
&error($text{'convert_efile'});
|
||||
}
|
||||
|
||||
@@ -22,3 +22,4 @@ delegation=1
|
||||
slaves=1
|
||||
findfree=1
|
||||
dnssec=1
|
||||
inviews=*
|
||||
|
||||
@@ -294,7 +294,10 @@ edit_espfinclude='$1' no
|
||||
edit_espfredirect='$1' no és un nom de domini alternatiu vàlid
|
||||
edit_espfexp='$1' és un nom de registre vàlid per a un missatge de rebuig
|
||||
edit_ensec3value2=Hi falfa el nombre d'iteracions o bé no és numèric
|
||||
edit_ensec3value2=Hi falta la sal o bé no és base64
|
||||
edit_ensec3value3=Hi falta la sal no base64 o bé és incorrecta
|
||||
edit_edmarcpct=El percentatge de missatges ha de ser un enter entre 0 i 100
|
||||
edit_edmarcrua=Hi falta l'adreça de la informació agregada
|
||||
edit_edmarcruf=Hi falta l'adreça de la informació forense
|
||||
|
||||
text_title=Edició del Fitxer de Registres
|
||||
text_title2=Visualització del Fitxer de Registres
|
||||
@@ -374,6 +377,7 @@ type_HINFO=Informaci
|
||||
type_NSEC3PARAM=Paràmetres DNSSEC
|
||||
type_TXT=Text
|
||||
type_SPF=Remitent Permès des de
|
||||
type_DMARC=DMARC
|
||||
type_WKS=Servei Conegut (WKS)
|
||||
type_RP=Persona Responsable
|
||||
type_PTR=Adreça Inversa
|
||||
@@ -390,6 +394,7 @@ edit_MX=Servidor de Correu
|
||||
edit_HINFO=Informació del Host
|
||||
edit_TXT=Text
|
||||
edit_SPF=Remitent Permès des de
|
||||
edit_DMARC=DMARC
|
||||
edit_WKS=Servei Conegut (WKS)
|
||||
edit_RP=Persona Responsable
|
||||
edit_PTR=Adreça Inversa
|
||||
@@ -407,6 +412,7 @@ recs_MX=Servidor de Correu
|
||||
recs_HINFO=Informació del Host
|
||||
recs_TXT=Text
|
||||
recs_SPF=Remitent Permès des de
|
||||
recs_DMARC=DMARC
|
||||
recs_WKS=Servei Conegut (WKS)
|
||||
recs_RP=Persona Responsable
|
||||
recs_PTR=Adreça Inversa
|
||||
@@ -442,6 +448,7 @@ value_KEY2=Protocol
|
||||
value_KEY3=Algoritme
|
||||
value_KEY4=Dades de la clau
|
||||
value_SPF1=Especificació SPF
|
||||
value_DMARC1=Especificació DMARC
|
||||
value_NSEC3PARAM1=Algoritme de hash
|
||||
value_NSEC3PARAM2=Banderes NSEC3
|
||||
value_NSEC3PARAM3=Nombre d'iteracions del hash
|
||||
@@ -468,6 +475,18 @@ value_spfredirect=Utilitza un registre SPF d'un domini alternatiu
|
||||
value_spfnoredirect=Utilitza el registre d'aquest domini
|
||||
value_spfexp=Registre TXT pel al motiu del rebuig
|
||||
value_spfnoexp=Cap
|
||||
value_dmarcnone=No prenguis cap acció
|
||||
value_dmarcquar=Posa el coreu en quarantena
|
||||
value_dmarcreject=Rebutja el correu
|
||||
value_dmarcp=Política per als correus que no passen SPF o DKIM
|
||||
value_dmarcpct=Percentatge de missatges a aplicar-hi la política
|
||||
value_dmarcrua=Envia la informació agregada a
|
||||
value_dmarcruf=Envia la informació forense a
|
||||
value_dmarcsp=Política dels subdominis
|
||||
value_dmarcnop=Igual que aquest domini
|
||||
value_dmarcaspf=Requereix alineació SPF estricta
|
||||
value_dmarcadkim=Requereix alineació DKIM estricta
|
||||
value_dmarcnor=No ho enviïs
|
||||
|
||||
warn=Avisa
|
||||
fail=Falla
|
||||
@@ -486,6 +505,8 @@ eipacl='$1' no
|
||||
acl_zones=Dominis que aquest usuari pot editar
|
||||
acl_zall=Totes les zones
|
||||
acl_zsel=Zones seleccionades...
|
||||
acl_inviews=Vistes sobre les quals aquest usuari pot editar dominis
|
||||
acl_toplevel=Fora de qualsevol vista
|
||||
acl_znsel=Totes excepte les zones seleccionades...
|
||||
acl_master=Pot crear zones mestres
|
||||
acl_slave=Pot crear zones esclaves/stub
|
||||
@@ -805,6 +826,9 @@ log_dnssec=S'ha canviat la resignatura de la clau
|
||||
|
||||
convert_err=No s'ha pogut convertir la zona
|
||||
convert_efile=Cal especificar un fitxer de registres abans de poder convertir una zona esclava a una de mestra.
|
||||
convert_efilesize=El fitxer de resistres $1 no existeix o bé està buit
|
||||
convert_ebinary=L'ordre necessària per convertir una zona esclava binària a format text mestre no està instal·lada
|
||||
convert_ecompile=La conversió de format binari a text ha fallat: $1
|
||||
|
||||
whois_title=Informació WHOIS
|
||||
whois_header=Resultat de l'ordre $1...
|
||||
@@ -864,9 +888,9 @@ vdelete_move=Despla
|
||||
gen_title=Generadors de Registres
|
||||
gen_desc=Aquesta pàgina permet definir generadors, cadascun dels quals crearà múltiples registres en aquesta zona utilitzant un comptador incremental. Això pot ser útil per a delegar parts de la zona inversa a un altre servidor.
|
||||
gen_range=Abast
|
||||
gen_name=Patró d'adreça
|
||||
gen_name=Patró del nom de registre
|
||||
gen_type=Tipus
|
||||
gen_value=Patró de nom de host
|
||||
gen_value=Patró del valor de registre
|
||||
gen_cmt=Comentari
|
||||
gen_skip=cada
|
||||
gen_show=Mostra els registres generats
|
||||
|
||||
@@ -506,6 +506,8 @@ acl_zones=Domains this user can edit
|
||||
acl_zall=All zones
|
||||
acl_zsel=Selected zones..
|
||||
acl_znsel=All except selected..
|
||||
acl_inviews=Views this user can edit domains in
|
||||
acl_toplevel=Outside any view
|
||||
acl_master=Can create master zones?
|
||||
acl_slave=Can create slave/stub zones?
|
||||
acl_forward=Can create forward zones?
|
||||
|
||||
@@ -749,6 +749,7 @@ local $rvword;
|
||||
while(@rv) {
|
||||
my $w = shift(@rv);
|
||||
if (length($rvword)+length($w)+1 >= 255) {
|
||||
$rvword .= " ";
|
||||
push(@rvwords, $rvword);
|
||||
$rvword = "";
|
||||
}
|
||||
|
||||
@@ -26,3 +26,4 @@ desc_sk.UTF-8=Napaľovanie CD
|
||||
desc_no=CD Brenner
|
||||
longdesc_ms_MY=Burn data CD dari imej ISO atau direktori yang dipilih.
|
||||
desc_ms_MY=CD Burner
|
||||
longdesc_de=Brennt Daten-CD von ISO-images oder ausgewählten Verzeichnissen.
|
||||
|
||||
@@ -11,7 +11,9 @@ cfd_ecmd=Die Configuration Engine daemon Befehl $1 wurde auf Ihrem System nicht
|
||||
cfd_none=Keine Einstellungen für die Configuration Engine Daemon wurde noch erstellt.
|
||||
cfd_return=Dämon Optionen
|
||||
cfd_start=Starte Configuration Engine Daemon
|
||||
cfd_startdesc=Klicke auf diese Schaltfläche, um den Configuration Engine Daemon mit den Einstellungen oben zu starten. Dies ermöglicht es andere Hosts die Konfiguration auf diesem Server auszuführen, und den geplanten Ablauf der Konfiguration (wenn aktiviert) zu starten.
|
||||
cfd_stop=Stoppe Configuration Engine Daemon
|
||||
cfd_stopdesc=Klicke auf diese Schaltfläche, um den laufenden Configuration Engine-Daemon zu stoppen. Dies wird anderen Hosts die laufende Konfiguration auf diesem Server verhindern, und stoppt das geplante Ausführen der Konfiguration.
|
||||
cfd_title=Configuration Engine Daemon
|
||||
cluster_failed=Fehlgeschlagen CFengine auf $1 : $2 auszuführen
|
||||
cluster_header=Führe Konfigurations-Engine auf allen Hosts im Cluster aus ..
|
||||
@@ -28,6 +30,7 @@ edit_cmdowner=Ausführen als Benutzer
|
||||
edit_cmdtimeout=Timeout
|
||||
edit_controlall=Alle Adressen
|
||||
edit_controlallow=Erlaube Verbindungen von
|
||||
edit_controlauto=Befehl, um nach Zeitplan auszuführen
|
||||
edit_controldef=Globale Definitionen
|
||||
edit_controldeny=Verbiete Verbindungen von
|
||||
edit_controldom=Domänenname
|
||||
@@ -81,6 +84,7 @@ edit_files_create=Erstelle Datei
|
||||
edit_files_fixall=Behebe alle Dateien
|
||||
edit_files_fixdirs=Behebe Verzeichnisse
|
||||
edit_files_fixplain=Behebe normale Dateien
|
||||
edit_files_linkchildren=Verlinke Kinder
|
||||
edit_files_touch=Erstelle Dateien
|
||||
edit_files_warnall=Warnungen über alle Dateien
|
||||
edit_files_warndirs=Warne über Verzeichnisse
|
||||
@@ -98,6 +102,7 @@ edit_filesowner=Setze Besitzer auf
|
||||
edit_filesrec=Rekursionstiefe
|
||||
edit_grant=$edit_admit
|
||||
edit_grantdir=Verzeichnis
|
||||
edit_granthosts=Hosts und Host-Muster
|
||||
edit_groupmems=Mitglieder
|
||||
edit_groupname=Gruppenname
|
||||
edit_groups=Gruppendefinitionen
|
||||
@@ -119,6 +124,7 @@ edit_nochange=Nicht ändern
|
||||
edit_none=Nichts
|
||||
edit_proc=Finde Prozesse passend
|
||||
edit_proc_bymatch=Signal Warnung Prozessen
|
||||
edit_proc_signal=Signal passende Prozesse
|
||||
edit_proc_warn=Nur Treffer anzeigen
|
||||
edit_procact=Signal Aktions-Modus
|
||||
edit_procgroup=Führe Befehl als Gruppe aus
|
||||
@@ -127,6 +133,7 @@ edit_procmat0=Warne niemals
|
||||
edit_procmat1=Genau
|
||||
edit_procmat2=Kleiner als
|
||||
edit_procmat3=Größer als
|
||||
edit_procnew=Fügen einen neuen treffenden Prozess-Muster hinzu
|
||||
edit_procowner=Führe Befehl als Benutzer aus
|
||||
edit_procrestart=Befehl, welcher nach dem killen ausgefühlt werden soll
|
||||
edit_procsig=Sende Signal zum Prozess
|
||||
@@ -140,6 +147,7 @@ edit_tidyage=Altersbeschränkung
|
||||
edit_tidyage0=$1 ist mehr als $2 Tage
|
||||
edit_tidyage1=Jedes Alter
|
||||
edit_tidyatime=Zugriffszeit
|
||||
edit_tidyctime=Inhalt Zeit
|
||||
edit_tidydir=Verzeichnis zum säubern
|
||||
edit_tidymtime=Änderungszeit
|
||||
edit_tidynew=Füge ein Verzeichnis zum säubern hinzu
|
||||
@@ -150,6 +158,7 @@ edit_tidysize1=Leere Dateien
|
||||
edit_tidysize2=Dateien größer als
|
||||
edit_title=Editiere Einstellungen für Klasse
|
||||
host_cfg=Aktuelle CFengine Konfiguration von $1
|
||||
host_delete=Lösche von verwalteter Liste
|
||||
host_header=Verwaltete CFengine Server Details
|
||||
host_name=Host Name
|
||||
host_os=Betriebssystem von Webmin
|
||||
@@ -164,12 +173,15 @@ hosts_nohosts=Keine Webmin Server, die CFengine ausführen, wurden bisher de
|
||||
hosts_opts=Optionen für die Ausführung von Konfigurationen
|
||||
hosts_return=Serverliste
|
||||
hosts_run=Führe Configuration Engine aus
|
||||
hosts_rundesc=Klicke auf diese Schaltfläche, um die Configuration Engine auf allen oben aufgeführten Server auszuführen, mit ihren aktuellen Konfigurationen.
|
||||
hosts_title=Webmin CFengine Cluster
|
||||
index_active=Aktiv?
|
||||
index_add=Füge Aktion des Typs hinzu:
|
||||
index_admit=Erlaube Verzeichnis $1
|
||||
index_admit2=Erlaube $1 Verzeichnisse
|
||||
index_cadd=Klasse hinzufügen..
|
||||
index_cfrun=Führe Befehl $1 aus
|
||||
index_classes=Anwenden zu Klassen
|
||||
index_control=Aktion $1 ausführen
|
||||
index_control2=$1 Aktionen ausführen
|
||||
index_copy=Kopiere $1 nach $2
|
||||
@@ -200,6 +212,8 @@ index_maybe=Vielleicht
|
||||
index_misc=Hänge $1 ein
|
||||
index_misc2=Hänge $1 NFS Dateisysteme ein
|
||||
index_none=Keine Konfigurationsaktionen sind bisher definiert.
|
||||
index_procs=Finde Prozesse treffend $1
|
||||
index_procs2=Finde $1 treffende Prozesse
|
||||
index_required=Prüfe Dateisystem $1
|
||||
index_required2=Prüfe $1 Dateisysteme
|
||||
index_return=Aktionsliste
|
||||
@@ -210,9 +224,14 @@ index_section=Aktionstyp
|
||||
index_shellcommands=Führe Befehl $1 aus
|
||||
index_shellcommands2=Führe $1 Befehle aus
|
||||
index_tidy=Lösche Dateien in $1
|
||||
index_tidy2=Lösche Dateien in $1 Verzeichnissen
|
||||
index_title=Configuration Engine
|
||||
index_version=CFengine Version $1
|
||||
log_create_class=Klasse in Aktion $1 hinzugefügt
|
||||
log_create_section=Klasse in Aktion $1 erstellt
|
||||
log_delete_class=Klasse in Aktion $1 gelöscht
|
||||
log_delete_section=Sektion $1 gelöscht
|
||||
log_modify_class=Klasse in Aktion $1 modifiziert
|
||||
log_prun=Host Konfigurationen ausgeführt
|
||||
log_push=Entfernte Konfigurations-Hosts geändert
|
||||
log_run=Konfigurations-Automat ausgeführt
|
||||
@@ -276,7 +295,9 @@ save_eeditfile=Fehlende Datei zum Editieren $1
|
||||
save_eeditscript=Fehlendes Editor-Skript für Datei $1
|
||||
save_efilesacl=Fehlender oder ungültiger ACL-Namen für Dateien im Verzeichnis $1
|
||||
save_efilesdir=Fehlendes Verzeichnis $1
|
||||
save_efilesexclude=Fehlendes oder ungültiges Muster für Dateien, nicht im Verzeichnis $1 zu überprüfen
|
||||
save_efilesgroup=Fehlende oder ungültige Gruppe für Dateien im Verzeichnis $1
|
||||
save_efilesinclude=Fehlendes oder ungültiges Muster für Dateien im Verzeichnis $1 zu überprüfen
|
||||
save_efilesmode=Fehlende oder ungültige Berechtigungen für Dateien im Verzeichnis $1
|
||||
save_efilesowner=Fehlender oder ungültiger Eigentümer für Dateien im Verzeichnis $1
|
||||
save_efilesrec=Fehlende oder ungültige Integer Rekursionsebene für Dateien im Verzeichnis $1
|
||||
|
||||
@@ -4,7 +4,6 @@ category=cluster
|
||||
desc_ca=Motor de Configuració
|
||||
desc_es=Motor de Configuración
|
||||
desc_de=Konfigurations-Automat
|
||||
longdesc=Configure the CFengine program, for checking and maintaining various system-administration settings.
|
||||
desc_fr=Moteur de configuration
|
||||
os_support=!windows
|
||||
desc_sv=Konfigurations Motor
|
||||
@@ -12,6 +11,5 @@ desc_cz=Konfigura
|
||||
desc_nl=Configuratie Engine
|
||||
desc_cz.UTF-8=KonfiguraÄ<61>nà stroj
|
||||
desc_pl=Konfiguracja silnika
|
||||
longdesc_ms_MY=Konfigurasi program CFengine, untuk memeriksa dan mengekalkan tetapan sistem pentadbiran pelbagai
|
||||
desc_ms_MY=Enjin Konfigurasi
|
||||
desc_no=Konfigurasjonsmotor
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
index_title=Canvi d'Idioma i Tema
|
||||
index_lang=Idioma de la interfície d'usuari de Webmin
|
||||
index_langglobal=Idioma global ($1)
|
||||
index_langglobal=Idioma global ... $1 ($2)
|
||||
index_langset=Tria personal...
|
||||
index_theme=Tema de la interfície d'usuari de Webmin
|
||||
index_overlay=Capa del tema
|
||||
|
||||
@@ -20,7 +20,7 @@ index_dlang=språket modulene vises i
|
||||
index_dpass=passordet brukt til å logge inn på
|
||||
index_dtheme=temaet som kontrollerer Webmins utseende
|
||||
index_lang=Webmin UI språk
|
||||
index_langglobal=Globalt språk ($1)
|
||||
index_langglobal2=Globalt språk .. $1 ($2)
|
||||
index_langset=Personlig valg
|
||||
index_ok=Lagre endringer
|
||||
index_overlay=Tema overstyring
|
||||
|
||||
@@ -2,6 +2,7 @@ __norefs=1
|
||||
index_all=<Wszystkie hosty>
|
||||
index_clear=Wyczyść historię
|
||||
index_cmd=Polecenie do uruchomienia
|
||||
index_edit=Edytuj poprzednie
|
||||
index_group=Użytkownicy z $1
|
||||
index_old=lub
|
||||
index_return=Indeks modułu
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
__norefs=1
|
||||
add_echeck=Serwer $1 nie posiada modułu pakietów oprogramowania
|
||||
add_err=Dodawanie serwera nie powiodło się
|
||||
add_esystem=Serwer $1 nie używa tego samego systemu pakietów jak ta maszyna
|
||||
add_gerr=Nie udało się dodać grupy
|
||||
add_gmsg=Dodawanie serwerów w grupie $1 ..
|
||||
add_msg=Dodawanie $1 ..
|
||||
add_ok=Dodano $1 z $2 pakietów.
|
||||
add_title=Dodaj serwery
|
||||
compare_all=Wszystkie serwery
|
||||
compare_desc=Ten formularz może być użyty do porównania pakietów zainstalowanych na dwóch lub większej ilości serwerów i znaleźć różnice w wersjach i dostępnych pakietach.
|
||||
compare_err=Nie udało się porównać pakietów
|
||||
compare_etwo=Ostatnie dwa serwery muszą być wybrane
|
||||
compare_got=OK
|
||||
@@ -24,6 +27,10 @@ delete_err=Usuwanie paczki $1 nie powiod
|
||||
delete_error=Nie powiodło się kasowanie z $1 : $2
|
||||
delete_header=Usuwanie paczki $1 ..
|
||||
delete_ok=Usuń
|
||||
delete_rusure=Czy na pewno chcesz usunąć pakiet $1 ze wszystkich serwerów? $2 pliki ($3 bajty) zostaną na zawsze usunięte.
|
||||
delete_rusure2=Czy na pewno chcesz usunąć pakiet $1 z $4? $2 pliki ($3 bajty) zostaną na zawsze usunięte.
|
||||
delete_rusure2none=Czy na pewno chcesz usunąć pakiet $1 z $4?
|
||||
delete_rusurenone=Czy na pewno chcesz usunąć pakiet $1 ze wszystkich serwerów?
|
||||
delete_success=Usunięto z $1
|
||||
delete_title=Usuwanie pakietów
|
||||
deletes_desc=Deinstalacja pakietów $1 ..
|
||||
@@ -32,6 +39,7 @@ deletes_err=Nie uda
|
||||
deletes_failed1=Nie udało się odinstalować $1 : $2
|
||||
deletes_failed2=Deinstalacja nie powiodła się : $1
|
||||
deletes_ok=Usuń je wszystkie
|
||||
deletes_rusure=Czy na pewno chcesz odinstalować pakiet $1 z wybranych hostów?
|
||||
deletes_success1=Odinstalowano $1
|
||||
deletes_success2=.. deinstalacja zakończona.
|
||||
deletes_title=Usuwanie pakietów
|
||||
@@ -41,23 +49,28 @@ do_class=Klasa
|
||||
do_desc=Opis
|
||||
do_details=Szczegółu pakietu
|
||||
do_done=.. gotowe
|
||||
do_edeleted=Plik instalacyjny został usunięty - wróć do indeksu modułu i spróbuj ponownie.
|
||||
do_failed=Nie można było zainstalować na $1 : $2
|
||||
do_header=Instalacja $1 na wszystkich hostach ..
|
||||
do_header3=Instalacja $1 na wszystkich hostach nie została jeszcze wykonana ..
|
||||
do_header4=Instalacja $1 użytkowników z grupy $2 ..
|
||||
do_header5=Instalacja $1 z $2 ..
|
||||
do_header6=Instalacja $1 na hostach, które już go posiadają ..
|
||||
do_inst=Zainstalowane
|
||||
do_none=Żaden
|
||||
do_pack=Pakiet
|
||||
do_success2=Zainstalowano $1 z $2.
|
||||
do_title=Instalacja pakietu
|
||||
do_vend=Producent
|
||||
do_ver=Wersja
|
||||
edit_all=<wszystkie hosty>
|
||||
edit_arch=Architektura
|
||||
edit_class=Klasa
|
||||
edit_desc=Opis
|
||||
edit_details=Szczegóły pakietu z $1
|
||||
edit_donthave=<hosts that don't have it>
|
||||
edit_group=Użytkownicy z $1
|
||||
edit_have=<hosty, które go posiadają>
|
||||
edit_hosts=Zainstalowane hosty
|
||||
edit_inst=Zainstalowane
|
||||
edit_list=Lista plików na:
|
||||
@@ -66,6 +79,7 @@ edit_pack=Pakiet
|
||||
edit_return=szczegóły pakietu
|
||||
edit_title=Edytuj pakiet
|
||||
edit_uninst=Deinstalacja z:
|
||||
edit_vend=Producent
|
||||
edit_ver=Wersja
|
||||
host_all=Wszystkie paczki
|
||||
host_close=Zamknij wszystko
|
||||
@@ -84,16 +98,19 @@ host_type=Typ serwera
|
||||
index_add=Dodaj serwer
|
||||
index_compare=Porównaj serwery
|
||||
index_count=($1 pakietów)
|
||||
index_down=Każdy serwer powinien ponowie pobrać pakiet
|
||||
index_ftp=Z FTP lub HTTP
|
||||
index_gadd=Dodaj serwery w grupie
|
||||
index_hosts=Zarządzanie serwerami
|
||||
index_install=Zainstaluj nowy pakiet
|
||||
index_installed=Zainstalowano pakiety
|
||||
index_installmsg=Wybierz lokalizację do zainstalowania nowych pakietów z..
|
||||
index_installok=Instalacja
|
||||
index_local=Z pliku lokalnego
|
||||
index_nohosts=Brak zarejestrowanych serwerów Webmina dla zarządzania oprogramowaniem.
|
||||
index_refresh=Odśwież listy pakietów
|
||||
index_return=lista serwerów
|
||||
index_search=Szukaj pakietu:
|
||||
index_tcount=Pakiety
|
||||
index_tdesc=Opis
|
||||
index_thost=Nazwa hosta
|
||||
@@ -101,7 +118,22 @@ index_title=Klaster - Pakiety oprogramowania
|
||||
index_ttype=Typ OS
|
||||
index_uploaded=Przez wysłanie pliku
|
||||
install_ealready=Wersja $1 jest już zainstalowana
|
||||
install_edir=Nieprawidłowy katalog $!
|
||||
install_efile=Nieprawidłowy plik $1
|
||||
install_elocal=Nie podano pliku lokalnego
|
||||
install_elocal2=`$1` nie istnieje
|
||||
install_err=Błąd instalacji pakietu
|
||||
install_erus=Ten serwer używa innego systemu aktualizacji od głównego serwera ($1 vs $2)
|
||||
install_eupdate=Wystąpił błąd podczas instalacji określonych aktualizacji
|
||||
install_eupload=Twoja przeglądarka nie obsługuje wysyłania plików
|
||||
install_eurl=Niezrozumiały adres URL '$1'
|
||||
install_ezip=Plik $1 jest niepoprawnie skompresowany lub spakowany
|
||||
install_header=Instalacja pakietów
|
||||
install_ok=Zainstalowano
|
||||
install_packs=Pakiet (y) do zainstalowania
|
||||
install_servers=Serwer (y) do zainstalowania na
|
||||
install_title=Instalacja pakietu
|
||||
list_files=Pliki pakietu $1 na $2
|
||||
list_group=Grupa
|
||||
list_ok=OK
|
||||
list_owner=Właściciel
|
||||
@@ -114,14 +146,22 @@ refresh_1=Od
|
||||
refresh_2=Odświeżono $1 (dodano $2)
|
||||
refresh_3=Odświeżono $1 (usunięto $2)
|
||||
refresh_4=Odświeżono $1 (bez zmian)
|
||||
refresh_del=Usunięto $1 z listy serwerów
|
||||
refresh_done=.. gotowe
|
||||
refresh_failed=Błąd odświeżania $1 : $2
|
||||
refresh_header=Odświeżanie list pakietów ze wszystkich serwerów ..
|
||||
refresh_header4=Ponowna prośba o listę pakietów od użytkowników z $2 ..
|
||||
refresh_header5=Odświeżanie list pakietów z $2 ..
|
||||
refresh_title=Odświeżanie list pakietów
|
||||
search_class=Klasa
|
||||
search_delete=Odinstalowanie wybranych pakietów z:
|
||||
search_desc=Opis
|
||||
search_invert=Odwróć zaznaczenie
|
||||
search_match=Pakiety pasujące do $1
|
||||
search_nomatch=Nie znaleziono pakietów pasujących do $1
|
||||
search_none=Brak
|
||||
search_pack=Paczka
|
||||
search_return=wyniki wyszukiwania
|
||||
search_selall=Zaznacz wszystko
|
||||
search_title=Wyszukiwanie pakietów
|
||||
this_server=ten serwer
|
||||
|
||||
@@ -18,3 +18,4 @@ desc_pl=Klaster - Pakiety oprogramowania
|
||||
longdesc_ms_MY=Pasang RPMs, debian dan pakej Solaris ke pelbagai pelayan dari satu sumber.
|
||||
desc_ms_MY=Kluster Pakej Software
|
||||
longdesc_de=Installiert RPMs, Debian- und Solaris-Pakete über mehrere Server aus einer Quelle.
|
||||
longdesc_pl=Instaluj pakiety RPM, debian i Solaris na wielu serwerach z jednego ¼ród³a.
|
||||
|
||||
@@ -5,8 +5,15 @@ BEGIN { push(@INC, ".."); };
|
||||
use WebminCore;
|
||||
&init_config();
|
||||
use Config;
|
||||
|
||||
$packages_file = "$module_config_directory/packages.txt.gz";
|
||||
if (!-r $packages_file) {
|
||||
$packages_file = "$module_var_directory/packages.txt.gz";
|
||||
}
|
||||
$available_packages_cache = "$module_config_directory/available-cache";
|
||||
if (!-r $available_packages_cache) {
|
||||
$available_packages_cache = "$module_var_directory/available-cache";
|
||||
}
|
||||
|
||||
# Get the paths to perl and perldoc
|
||||
$perl_path = &get_perl_path();
|
||||
|
||||
@@ -67,6 +67,7 @@ elsif ($in{'source'} == 3) {
|
||||
$in{'cpan'} || &error($text{'download_emodname'});
|
||||
$in{'cpan'} =~ s/^\s+//;
|
||||
$in{'cpan'} =~ s/\s+$//;
|
||||
$in{'cpan'} =~ s/\/+/::/g;
|
||||
@cpan = split(/\s+|\0/, $in{'cpan'});
|
||||
|
||||
# First check if YUM or APT can install this module for us
|
||||
|
||||
@@ -64,10 +64,13 @@ foreach $m (@ARGV) {
|
||||
}
|
||||
$flags = !-r $file ? "chf" : "rhf";
|
||||
system("cd /tmp/create-module && find . -name .svn | xargs rm -rf");
|
||||
system("cd /tmp/create-module && find . -name '*~' -o -name '*.rej' -o -name '*.orig' -o -name '.*.swp' | xargs rm -rf");
|
||||
unlink("/tmp/create-module/$subdir/IDEAS");
|
||||
system("cd /tmp/create-module && find . -name \\*.svn-work | xargs rm -rf");
|
||||
system("cd /tmp/create-module && find . -name \\*.svn-base | xargs rm -rf");
|
||||
system("cd /tmp/create-module && find . -name '*~' -o -name '*.rej' -o -name '*.orig' -o -name '.*.swp' | xargs rm -rf");
|
||||
system("cd /tmp/create-module && find . -name RELEASE -o -name RELEASE.sh | xargs rm -rf");
|
||||
system("cd /tmp/create-module && find . -name linux.sh -o -name freebsd.sh -o -name LICENCE -o -name README.md -o -name distrib | xargs rm -rf");
|
||||
system("cd /tmp/create-module && find . -name 'makemodule*.pl' | xargs rm -rf");
|
||||
unlink("/tmp/create-module/$subdir/IDEAS");
|
||||
system("cd /tmp/create-module && find . -name \\*.cgi | xargs chmod +x");
|
||||
system("cd /tmp/create-module && find . -name \\*.pl | xargs chmod +x");
|
||||
system("cd /tmp/create-module && tar $flags $file $subdir") && die "Failed to create tar file";
|
||||
|
||||
@@ -337,7 +337,7 @@ else {
|
||||
local $lref = &read_file_lines($cron_temp_file);
|
||||
$_[0]->{'line'} = scalar(@$lref);
|
||||
push(@$lref, &cron_job_line($_[0]));
|
||||
&flush_file_lines();
|
||||
&flush_file_lines($cron_temp_file);
|
||||
&set_ownership_permissions($_[0]->{'user'}, undef, undef,
|
||||
$cron_temp_file);
|
||||
©_crontab($_[0]->{'user'});
|
||||
@@ -1407,8 +1407,8 @@ sub extract_input
|
||||
local ($cmd) = @_;
|
||||
$cmd =~ s/\\%/\0/g;
|
||||
local ($cmd, $input) = split(/\%/, $cmd, 2);
|
||||
$cmd =~ s/\0/%/g;
|
||||
$input =~ s/\0/%/g;
|
||||
$cmd =~ s/\0/\\%/g;
|
||||
$input =~ s/\0/\\%/g;
|
||||
return ($cmd, $input);
|
||||
}
|
||||
|
||||
|
||||
@@ -79,6 +79,8 @@ else {
|
||||
&convert_range($job);
|
||||
$rangeable = 1;
|
||||
($command, $input) = &extract_input($job->{'command'});
|
||||
$command =~ s/\\%/%/g;
|
||||
$input =~ s/\\%/%/g;
|
||||
@lines = split(/%/, $input);
|
||||
print &ui_table_row($text{'edit_command'},
|
||||
&ui_textbox("cmd", $command, 60));
|
||||
|
||||
@@ -122,6 +122,8 @@ foreach $u (@ulist) {
|
||||
local $max = $config{'max_len'} || 10000;
|
||||
local ($cmd, $input) =
|
||||
&extract_input($job->{'command'});
|
||||
$cmd =~ s/\\%/%/g;
|
||||
$input =~ s/\\%/%/g;
|
||||
$cmd = length($cmd) > $max ?
|
||||
&html_escape(substr($cmd, 0, $max))." ..." :
|
||||
$cmd !~ /\S/ ? "BLANK" : &html_escape($cmd);
|
||||
|
||||
@@ -2,7 +2,7 @@ desc_ko_KR.euc=
|
||||
risk=medium high
|
||||
desc_ru_SU=ëÏÍÁÎÄÙ ÐÏÌØÚÏ×ÁÔÅÌÑ
|
||||
desc_zh_TW.Big5=¦Ûqªº©R¥O
|
||||
desc_pl=Wybrane polecenia
|
||||
desc_pl=W³asne polecenia
|
||||
desc_de=Eigene Befehle
|
||||
name=Custom
|
||||
desc_zh_CN=Óû§×Ô¶¨ÒåÃüÁî
|
||||
@@ -36,3 +36,4 @@ desc_no=Egendefinerte kommandoer
|
||||
longdesc_ms_MY=Buat butang untuk melaksanakan arahan yang biasa digunakan atau mengubah fail pada sistem anda.
|
||||
desc_ms_MY=Arahan suai langgan
|
||||
longdesc_de=Erstellt Schaltflächen zum Ausführen von häufig verwendeten Befehle oder bearbeitet Dateien auf Ihrem System.
|
||||
longdesc_pl=Twórz przyciski do wykonywania czêsto u¿ywanych poleceñ lub edytowania plików w twoim systemie.
|
||||
|
||||
@@ -2,7 +2,6 @@ start_cmd=service dhcpd start
|
||||
stop_cmd=service dhcpd stop
|
||||
restart_cmd=service dhcpd restart
|
||||
dhcpd_conf=/etc/dhcp/dhcpd.conf
|
||||
pid_file=/run/dhcpd.pid
|
||||
dhcpd_path=/usr/sbin/dhcpd
|
||||
lease_file=/var/lib/dhcpd/dhcpd.leases
|
||||
lease_sort=0
|
||||
|
||||
@@ -2,7 +2,6 @@ start_cmd=service dhcpd start
|
||||
stop_cmd=service dhcpd stop
|
||||
restart_cmd=service dhcpd restart
|
||||
dhcpd_conf=/etc/dhcp/dhcpd.conf
|
||||
pid_file=/run/dhcpd.pid
|
||||
dhcpd_path=/usr/sbin/dhcpd
|
||||
lease_file=/var/lib/dhcpd/dhcpd.leases
|
||||
lease_sort=0
|
||||
|
||||
@@ -964,17 +964,13 @@ return $file || $config{'pid_file'};
|
||||
sub expand_ip_range
|
||||
{
|
||||
local ($s, $e) = @_;
|
||||
local @rs = split(/\./, $s);
|
||||
local @re = split(/\./, $e);
|
||||
&foreign_require("net");
|
||||
local $si = &net::ip_to_integer($s);
|
||||
local $ei = &net::ip_to_integer($e);
|
||||
return ( ) if ($si > $ei);
|
||||
local @rv;
|
||||
for(my $i=$rs[0]; $i<=$re[0]; $i++) {
|
||||
for(my $j=$rs[1]; $j<=$re[1]; $j++) {
|
||||
for(my $k=$rs[2]; $k<=$re[2]; $k++) {
|
||||
for(my $l=$rs[3]; $l<=$re[3]; $l++) {
|
||||
push(@rv, "$i.$j.$k.$l");
|
||||
}
|
||||
}
|
||||
}
|
||||
for(my $i=$si; $i<=$ei; $i++) {
|
||||
push(@rv, &net::integer_to_ip($i));
|
||||
}
|
||||
return @rv;
|
||||
}
|
||||
|
||||
@@ -72,12 +72,12 @@ print "</td></tr>\n";
|
||||
if (!defined($in{'ret'})) {
|
||||
print "<tr><td valign=middle><b>$text{'esub_shnet'}</b></td>\n";
|
||||
print "<td valign=middle>";
|
||||
my @shn;
|
||||
push(@shn, [ "", "<$text{'esub_none'}>", ( $s_parent ? "" : "selected" ) ]);
|
||||
foreach $s (&find("shared-network", $conf)) {
|
||||
push(@shn, [ $s->{'index'}, ( &can('rw', \%access, $s) ? $s->{'values'}->[0] : "" ), ( $s eq $s_parent ? "" : "selected" ) ]);
|
||||
}
|
||||
print &ui_select("parent", undef, \@shn);
|
||||
my @shn;
|
||||
push(@shn, [ "", "<$text{'esub_none'}>" ]);
|
||||
foreach $s (&find("shared-network", $conf)) {
|
||||
push(@shn, [ $s->{'index'}, ( &can('rw', \%access, $s) ? $s->{'values'}->[0] : "" ) ]);
|
||||
}
|
||||
print &ui_select("parent", $s_parent ? $s_parent->{'index'} : "", \@shn);
|
||||
print "</td>\n";
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -72,9 +72,10 @@ if ($st[7] != $config{'dhcpd_size'} || $st[9] != $config{'dhcpd_mtime'}) {
|
||||
|
||||
# Create lookup type HTML
|
||||
# XXX change text, add to lookup_*
|
||||
$matches = ui_select("match", undef, [ [0,$text{'index_match0'},"selected"],
|
||||
[1,$text{'index_match1'},""],
|
||||
[2,$text{'index_match2'},""] ]);
|
||||
$matches = ui_select("match", $config{'match_default'} || 0,
|
||||
[ [0, $text{'index_match0'} ],
|
||||
[1, $text{'index_match1'} ],
|
||||
[2, $text{'index_match2'} ] ]);
|
||||
|
||||
# get top-level hosts
|
||||
foreach $h (&find("host", $conf)) {
|
||||
|
||||
@@ -80,6 +80,10 @@ else {
|
||||
if ($in{'hardware'} =~ /^([0-9a-f]{2})([0-9a-f]{2}).([0-9a-f]{2})([0-9a-f]{2}).([0-9a-f]{2})([0-9a-f]{2}).([0-9a-f]{2})([0-9a-f]{2})$/i) {
|
||||
$in{'hardware'} = "$1:$2:$3:$4:$5:$6";
|
||||
}
|
||||
# Handle an Ethernet address with no formatting at all
|
||||
if ($in{'hardware'} =~ /^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i) {
|
||||
$in{'hardware'} = "$1:$2:$3:$4:$5:$6";
|
||||
}
|
||||
$in{'hardware'} =~ /^([0-9a-f]{1,2}:)*[0-9a-f]{1,2}$/i ||
|
||||
&error(&text('shost_invalidhwa', $in{'hardware'},
|
||||
$in{'hardware_type'}) );
|
||||
|
||||
@@ -18,7 +18,6 @@ desc_ja_JP.euc=BIND 4 DNS
|
||||
depends=bind8
|
||||
desc_ru_RU=BIND 4 DNS Ñåðâåð
|
||||
desc_ca=Servidor DNS BIND 4
|
||||
longdesc=Create and edit domains and DNS records.
|
||||
desc_zh_TW.UTF-8=BIND 4 DNS 伺æœ<C3A6>器
|
||||
desc_zh_CN.UTF-8=BIND 4 DNS æœ<C3A6>务器
|
||||
desc_ja_JP.UTF-8=BIND 4 DNS サーãƒ<C3A3>
|
||||
|
||||
@@ -149,7 +149,15 @@ if (defined($sname)) {
|
||||
@rv = grep { $_->{'sectionname'} eq $sname &&
|
||||
$_->{'sectionvalue'} eq $svalue } @rv;
|
||||
}
|
||||
return wantarray ? @rv : $first ? $rv[0] : $rv[$#rv];
|
||||
if (wantarray) {
|
||||
return @rv;
|
||||
}
|
||||
elsif ($first) {
|
||||
return $rv[0];
|
||||
}
|
||||
else {
|
||||
return $rv[$#rv];
|
||||
}
|
||||
}
|
||||
|
||||
# find_value(name, &config, [disabled-mode], [sectionname], [sectionvalue])
|
||||
@@ -164,6 +172,9 @@ elsif (!@rv) {
|
||||
return undef;
|
||||
}
|
||||
else {
|
||||
# Prefer the last one that isn't self-referential
|
||||
my @unself = grep { $_->{'value'} !~ /\$\Q$name\E/ } @rv;
|
||||
@rv = @unself if (@unself);
|
||||
return $rv[$#rv]->{'value'};
|
||||
}
|
||||
}
|
||||
@@ -190,7 +201,19 @@ return wantarray ? @rv : $rv[0];
|
||||
sub save_directive
|
||||
{
|
||||
local ($conf, $name, $value, $sname, $svalue) = @_;
|
||||
local $dir = ref($name) ? $name : &find($name, $conf, 0, $sname, $svalue, 1);
|
||||
local $dir;
|
||||
if (ref($name)) {
|
||||
# Old directive given
|
||||
$dir = $name;
|
||||
}
|
||||
else {
|
||||
# Find by name, by prefer those that aren't self-referential
|
||||
my @dirs = &find($name, $conf, 0, $sname, $svalue, 1);
|
||||
($dir) = grep { $_->{'value'} !~ /\$\Q$name\E/ } @dirs;
|
||||
if (!$dir) {
|
||||
$dir = $dirs[0];
|
||||
}
|
||||
}
|
||||
local $newline = ref($name) ? "$name->{'name'} = $value" : "$name = $value";
|
||||
if ($sname) {
|
||||
$newline = " ".$newline;
|
||||
|
||||
@@ -10,7 +10,7 @@ print &ui_table_start($text{'ssl_header'}, "width=100%", 4);
|
||||
|
||||
# SSL cert and key files
|
||||
if (&find_value("ssl_cert", $conf, 2)) {
|
||||
$cert = &find_value("ssl_cert", $conf);
|
||||
$cert = &find_value("ssl_cert", $conf, 0, "");
|
||||
$cert =~ s/^<//;
|
||||
}
|
||||
else {
|
||||
@@ -21,7 +21,7 @@ print &ui_table_row($text{'ssl_cert'},
|
||||
[ undef, "nowrap" ]);
|
||||
|
||||
if (&find_value("ssl_key", $conf, 2)) {
|
||||
$key = &find_value("ssl_key", $conf);
|
||||
$key = &find_value("ssl_key", $conf, 0, "");
|
||||
$key =~ s/^<//;
|
||||
}
|
||||
else {
|
||||
@@ -39,7 +39,7 @@ print &ui_table_row($text{'ssl_pass'},
|
||||
|
||||
# SSL CA file
|
||||
if (&find_value("ssl_ca", $conf, 2)) {
|
||||
$ca = &find_value("ssl_ca", $conf);
|
||||
$ca = &find_value("ssl_ca", $conf, 0, "");
|
||||
$ca =~ s/^<//;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -13,7 +13,7 @@ $in{'cert_def'} || -r $in{'cert'} || $in{'cert'} =~ /^[<>\|]/ ||
|
||||
if (&find_value("ssl_cert", $conf, 2)) {
|
||||
$in{'cert'} = "<".$in{'cert'} if ($in{'cert'} =~ /^\//);
|
||||
&save_directive($conf, "ssl_cert",
|
||||
$in{'cert_def'} ? undef : $in{'cert'});
|
||||
$in{'cert_def'} ? undef : $in{'cert'}, "");
|
||||
}
|
||||
else {
|
||||
&save_directive($conf, "ssl_cert_file",
|
||||
@@ -24,7 +24,7 @@ $in{'key_def'} || -r $in{'key'} || $in{'key'} =~ /^[<>\|]/ ||
|
||||
if (&find_value("ssl_key", $conf, 2)) {
|
||||
$in{'key'} = "<".$in{'key'} if ($in{'key'} =~ /^\//);
|
||||
&save_directive($conf, "ssl_key",
|
||||
$in{'key_def'} ? undef : $in{'key'});
|
||||
$in{'key_def'} ? undef : $in{'key'}, "");
|
||||
}
|
||||
else {
|
||||
&save_directive($conf, "ssl_key_file",
|
||||
@@ -37,7 +37,7 @@ $in{'ca_def'} || -r $in{'ca'} || $in{'ca'} =~ /^[<>\|]/ ||
|
||||
if (&find_value("ssl_ca", $conf, 2)) {
|
||||
$in{'ca'} = "<".$in{'ca'} if ($in{'ca'} =~ /^\//);
|
||||
&save_directive($conf, "ssl_ca",
|
||||
$in{'ca_def'} ? undef : $in{'ca'});
|
||||
$in{'ca_def'} ? undef : $in{'ca'}, "");
|
||||
}
|
||||
else {
|
||||
&save_directive($conf, "ssl_ca_file",
|
||||
|
||||
@@ -42,13 +42,13 @@ else {
|
||||
# Regexp to match
|
||||
my $fail = &find_value("failregex", $def);
|
||||
print &ui_table_row($text{'filter_fail'},
|
||||
&ui_textarea("fail", $fail, 5, 80, "hard")."<br>\n".
|
||||
&ui_textarea("fail", $fail, 5, 80, "off")."<br>\n".
|
||||
$text{'filter_desc'});
|
||||
|
||||
# Regexp to not match
|
||||
my $ignore = &find_value("ignoreregex", $def);
|
||||
print &ui_table_row($text{'filter_ignore'},
|
||||
&ui_textarea("ignore", $ignore, 5, 80, "hard"));
|
||||
&ui_textarea("ignore", $ignore, 5, 80, "off"));
|
||||
|
||||
print &ui_table_end();
|
||||
if ($in{'new'}) {
|
||||
|
||||
@@ -73,6 +73,7 @@ my $protocol = &find_value("protocol", $jail);
|
||||
print &ui_table_row($text{'jail_defprotocol'},
|
||||
&ui_select("protocol", $protocol,
|
||||
[ [ '', "<$text{'jail_none'}>" ],
|
||||
[ 'all', $text{'jail_allprotocol'} ],
|
||||
[ 'tcp', 'TCP' ],
|
||||
[ 'udp', 'UDP' ],
|
||||
[ 'icmp', 'ICMP' ] ]));
|
||||
|
||||
@@ -116,6 +116,7 @@ my @rv;
|
||||
while(<$fh>) {
|
||||
s/\r|\n//g;
|
||||
s/^\s*#.*$//;
|
||||
s/^\s;.*$//;
|
||||
if (/^\[([^\]]+)\]/) {
|
||||
# Start of a section
|
||||
$sect = { 'name' => $1,
|
||||
|
||||
@@ -77,6 +77,7 @@ index_stopdesc=Klicke auf diese Taste, um den laufende Fail2Ban Server zu stoppe
|
||||
index_title=Fail2Ban Intrusionsdetektor
|
||||
jail_action=Aktion
|
||||
jail_actions=Aktion zum anwenden
|
||||
jail_allprotocol=Alle Protokolle
|
||||
jail_aname=Name
|
||||
jail_auto=Entscheide automatisch
|
||||
jail_backend=Prüfe auf Log-Datei Updates, welche
|
||||
|
||||
@@ -118,6 +118,7 @@ jail_destemail=Default notification email
|
||||
jail_none=None set
|
||||
jail_banaction=Default action to apply
|
||||
jail_defprotocol=Default protocol for actions
|
||||
jail_allprotocol=All protocols
|
||||
jail_edestemail=Missing or invalid default notification email address
|
||||
jail_eignoreip=Invalid IP address to ignore
|
||||
|
||||
|
||||
@@ -74,12 +74,13 @@ else {
|
||||
push(@opts, split(/\s+/, $in{"others_$i"}));
|
||||
push(@actions, $in{"action_$i"}."[".join(", ", @opts)."]");
|
||||
}
|
||||
@actions || &error($text{'jail_eactions'});
|
||||
|
||||
# Split and validate log file paths
|
||||
my @logpaths = split(/\r?\n/, $in{'logpath'});
|
||||
my @logpaths = grep { /\S/ } split(/\r?\n/, $in{'logpath'});
|
||||
@logpaths || &error($text{'jail_elogpaths'});
|
||||
foreach my $l (@logpaths) {
|
||||
$l =~ s/^\s*//;
|
||||
$l =~ s/\s*$//;
|
||||
$l =~ /^\/\S+$/ || &error($text{'jail_elogpath'});
|
||||
}
|
||||
|
||||
@@ -110,7 +111,8 @@ else {
|
||||
# Save directives within the section
|
||||
&save_directive("enabled", $in{'enabled'} ? 'true' : 'false', $jail);
|
||||
&save_directive("filter", $in{'filter'}, $jail);
|
||||
&save_directive("action", join("\n", @actions), $jail);
|
||||
&save_directive("action", @actions ? join("\n", @actions)
|
||||
: undef, $jail);
|
||||
&save_directive("logpath", join("\n", @logpaths), $jail);
|
||||
foreach my $f ("maxretry", "findtime", "bantime") {
|
||||
&save_directive($f, $in{$f."_def"} ? undef : $in{$f}, $jail);
|
||||
|
||||
@@ -87,6 +87,7 @@ else {
|
||||
$ucount > $config{'max_users'});
|
||||
}
|
||||
endpwent() if ($gconfig{'os_type'} ne 'hpux');
|
||||
@users = sort { $a->[1]->[0] cmp $b->[1]->[0] } @users;
|
||||
if (!@users) {
|
||||
# None found
|
||||
print "<br><b>$text{'index_none'}</b><p>\n";
|
||||
|
||||
@@ -13,12 +13,12 @@ print "Content-type: text/plain\n\n";
|
||||
|
||||
if (defined($in{'user'})) {
|
||||
$uid = $in{'user'} =~ /^\d+$/ ? $in{'user'} :
|
||||
defined(%user_to_uid) ? $user_to_uid{$in{'user'}} :
|
||||
getpwnam($in{'user'});
|
||||
%user_to_uid ? $user_to_uid{$in{'user'}} :
|
||||
getpwnam($in{'user'});
|
||||
&failure(&text('chmod_euser', $in{'user'})) if (!defined($uid));
|
||||
$gid = $in{'group'} =~ /^\d+$/ ? $in{'group'} :
|
||||
defined(%group_to_gid) ? $group_to_gid{$in{'group'}} :
|
||||
getgrnam($in{'group'});
|
||||
%group_to_gid ? $group_to_gid{$in{'group'}} :
|
||||
getgrnam($in{'group'});
|
||||
&failure(&text('chmod_egroup', $in{'group'})) if (!defined($gid));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
index_title=File Manager
|
||||
index_title=Java File Manager
|
||||
index_nojava=This module requires Java to function, but your browser does not support Java
|
||||
index_eremote=There is no Unix user matching the Webmin login $1.
|
||||
index_index=Return to <a href='$1'>Webmin index</a>.
|
||||
|
||||
@@ -1,36 +1,37 @@
|
||||
desc_ko_KR.euc=ÆÄÀÏ °ü¸®ÀÚ
|
||||
desc_ko_KR.euc=Java ÆÄÀÏ °ü¸®ÀÚ
|
||||
risk=high
|
||||
desc_ru_SU=íÅÎÅÄÖÅÒ ÆÁÊÌÏ×
|
||||
desc_zh_TW.Big5=Àɮ׺޲zªÌ
|
||||
desc_pl=Zarz±dzanie plikami
|
||||
desc_de=Datei-Manager (Java erforderlich)
|
||||
desc_ru_SU=Java íÅÎÅÄÖÅÒ ÆÁÊÌÏ×
|
||||
desc_zh_TW.Big5=Java Àɮ׺޲zªÌ
|
||||
desc_pl=Java Zarz±dzanie plikami
|
||||
desc_de=Java Datei-Manager (Java erforderlich)
|
||||
name=FileManager
|
||||
desc_zh_CN=Îļþ¹ÜÀíÆ÷
|
||||
desc_pt=Administrador de Ficheiros
|
||||
desc_tr=Dosya Yöneticisi
|
||||
desc=File Manager
|
||||
desc_es=Explorador de Archivos
|
||||
desc_sv=Filhanterare
|
||||
desc_fr=Gestionnaire de Fichiers
|
||||
desc_ja_JP.euc=¥Õ¥¡¥¤¥ë ¥Þ¥Í¡¼¥¸¥ã
|
||||
desc_ru_RU=Ìåíåäæåð ôàéëîâ
|
||||
desc_ca=Administrador de Fitxers
|
||||
desc_pt_BR=Gerenciador de Arquivos
|
||||
desc_sk=Správca Systému Súborov
|
||||
desc_zh_CN=Java Îļþ¹ÜÀíÆ÷
|
||||
desc_pt=Java Administrador de Ficheiros
|
||||
desc_tr=Java Dosya Yöneticisi
|
||||
desc=Java File Manager
|
||||
desc_es=Java Explorador de Archivos
|
||||
desc_sv=Java Filhanterare
|
||||
desc_fr=Java Gestionnaire de Fichiers
|
||||
desc_ja_JP.euc=Java ¥Õ¥¡¥¤¥ë ¥Þ¥Í¡¼¥¸¥ã
|
||||
desc_ru_RU=Java Ìåíåäæåð ôàéëîâ
|
||||
desc_ca=Java Administrador de Fitxers
|
||||
desc_pt_BR=Java Gerenciador de Arquivos
|
||||
desc_sk=Java Správca Systému Súborov
|
||||
longdesc=View, edit and change permissions on files and directories on your system with a Windows-like file manager.
|
||||
readonly=1
|
||||
desc_zh_TW.UTF-8=檔案管ç<C2A1>†è€…
|
||||
desc_zh_CN.UTF-8=文件管ç<C2A1>†å™¨
|
||||
desc_ja_JP.UTF-8=ファイル マãƒ<C3A3>ージャ
|
||||
desc_ko_KR.UTF-8=파ì<C592>¼ 관리ìž<C3AC>
|
||||
desc_cz=Správce souborù
|
||||
desc_ru.UTF-8=Менеджер файлов
|
||||
desc_it=File manager
|
||||
desc_cz.UTF-8=Správce souborů
|
||||
desc_pl.UTF-8=ZarzÄ…dzanie plikami
|
||||
desc_sk.UTF-8=Správca Systému Súborov
|
||||
desc_no=Filbehandler
|
||||
desc_nl=File Manager
|
||||
desc_hu=Fájlkezelõ
|
||||
desc_zh_TW.UTF-8=Java 檔案管ç<EFBFBD>†è€…
|
||||
desc_zh_CN.UTF-8=Java 文件管ç<EFBFBD>†å™¨
|
||||
desc_ja_JP.UTF-8=Java ファイル マãƒ<C3A3>ージャ
|
||||
desc_ko_KR.UTF-8=Java 파ì<EFBFBD>¼ 관리ìž<C3AC>
|
||||
desc_cz=Java Správce souborù
|
||||
desc_ru.UTF-8=Java Менеджер файлов
|
||||
desc_it=Java File manager
|
||||
desc_cz.UTF-8=Java Správce souborů
|
||||
desc_pl.UTF-8=Java ZarzÄ…dzanie plikami
|
||||
desc_sk.UTF-8=Java Správca Systému Súborov
|
||||
desc_no=Java Filbehandler
|
||||
desc_nl=Java File Manager
|
||||
desc_hu=Java Fájlkezelõ
|
||||
longdesc_ms_MY=Lihat, ubah dan ubah kebenaran pada fail dan direktori pada sistem dengan pengurus fail yang seakan Windows.
|
||||
desc_ms_MY=Pengurus Fail
|
||||
desc_ms_MY=Java Pengurus Fail
|
||||
longdesc_de=Zeigt, bearbeitet und ändert Berechtigungen für Dateien und Verzeichnisse auf Ihrem System mit einem Windows-ähnliche Dateimanager.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
virtualmin_spam=Camí complet del programa de consulta de spam d'usuaris de Virtualmin,3,No està instal·lat,40
|
||||
virtualmin_config=Camí complet del directori de configuració de Virtualmin,3,No instal·lat
|
||||
virtualmin_config=Camí complet del directori de configuracio de Virtualmin,3,No instal·lat
|
||||
virtualmin_spam=Camí complet del programa de consulta d'usuaris de spam de Virtualmin,3,No instal·lat,40
|
||||
warn_procmail=Mostra un avís si Procmail no està instal·lat,1,1-Sí,0-No
|
||||
forward_procmail=Crea fitxer .forward per executar procmail,1,1-Sí,0-No
|
||||
alias_files=Camí complet dels fitxers d'àlies globals,9,40,3,\t
|
||||
|
||||
13
firewall/config.info.pl
Normal file
13
firewall/config.info.pl
Normal file
@@ -0,0 +1,13 @@
|
||||
line0=Opcje konfiguracji,11
|
||||
view_condition=Wyświetlać stan na liście reguł?,1,1-Tak,0-Nie
|
||||
view_comment=Wyświetlać komentarz na liście reguł?,1,1-Tak,0-Nie
|
||||
comment_mod=Zapisuj komentarze jako,1,0-# zapis w pliku komentarzy,1---opcja komentarzy
|
||||
cluster_mode=Aktualizuj klaster serwerów,1,0-Zawsze, gdy wprowadzono zmianę,1-Po zastosowaniu konfiguracji
|
||||
force_init=Zawsze uruchamiaj firewall ze skryptem inita Debiana,1,1-Tak,0-Nie
|
||||
before_cmd=Polecenie do uruchomienia przed zmienieniem reguł,3,Brak
|
||||
after_cmd=Polecenie do uruchomienia po zmienieniu reguł,3,Brak
|
||||
before_apply_cmd=Polecenie do uruchomienia przed zastosowaniem konfiguracji,3,Brak
|
||||
after_apply_cmd=Polecenie do uruchomienia po zastosowaniu konfiguracji,3,Brak
|
||||
line1=Opcje systemu,11
|
||||
save_file=IPtables zapis pliku do edycji,3,Użyj systemu operacyjnego lub Webmina
|
||||
direct=Bezpośrednio edytuj reguły firewalla zamiast zapisywać do pliku?,1,1-Tak,0-Nie
|
||||
@@ -155,7 +155,7 @@ if (($table->{'name'} eq 'nat' && $rule->{'chain'} ne 'PREROUTING' &&
|
||||
&can_jump("SNAT")) {
|
||||
if ($rule->{'j'}->[1] eq 'SNAT') {
|
||||
if ($rule->{'to-source'}->[1] =~
|
||||
/^([0-9\.]+)(\-([0-9\.]+))?(:(\d+)(\-(\d+))?)?$/) {
|
||||
/^([0-9\.]+)?(\-([0-9\.]+))?(:(\d+)(\-(\d+))?)?$/) {
|
||||
$sipfrom = $1;
|
||||
$sipto = $3;
|
||||
$spfrom = $5;
|
||||
|
||||
@@ -139,7 +139,7 @@ sub save_table
|
||||
local $lref;
|
||||
if ($config{'direct'}) {
|
||||
# Read in the current iptables-save output
|
||||
$lref = &read_file_lines("iptables-save 2>/dev/null |");
|
||||
$lref = &read_file_lines("iptables-save 2>/dev/null |", 1);
|
||||
}
|
||||
else {
|
||||
# Updating the save file
|
||||
|
||||
@@ -49,6 +49,7 @@ if (!$config{'direct'} && &foreign_check("init")) {
|
||||
# rules, and offer to create a save file from them
|
||||
@livetables = &get_iptables_save("iptables-save 2>/dev/null |");
|
||||
&shorewall_message(\@livetables);
|
||||
&firewalld_message(\@livetables);
|
||||
if (!$config{'direct'} &&
|
||||
(!-s $iptables_save_file || $in{'reset'}) && $access{'setup'}) {
|
||||
@tables = @livetables;
|
||||
@@ -420,3 +421,13 @@ if ($filter->{'defaults'}->{'shorewall'}) {
|
||||
}
|
||||
}
|
||||
|
||||
sub firewalld_message
|
||||
{
|
||||
local ($filter) = grep { $_->{'name'} eq 'filter' } @{$_[0]};
|
||||
if ($filter->{'defaults'}->{'INPUT_ZONES'}) {
|
||||
print "<b><center>",
|
||||
&text('index_firewalld', "$gconfig{'webprefix'}/firewalld/"),
|
||||
"</b></center><p>\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,7 @@ index_auto5=Bloqueja-les totes excepte els ports utilitzats per a hostalatge vir
|
||||
index_auto=Configura el Tallafocs
|
||||
index_add=Afegeix
|
||||
index_shorewall=Atenció! Sembla que s'està utilitzant Shorewall per generar el tallafocs del sistema. Pot ser que hagis d'utilitzar el <a href='$1'>mòdul de Tallafocs Shoreline</a> en lloc d'aquest.
|
||||
index_firewalld=Atenció! Sembla que s'està utilitzant FirewallD per a generar el tallafocs del sistema. Potser hauries d'utilitzar el <a href='$1'>mòdul FirewallD</a> en lloc d'aquest.
|
||||
index_reset=Reinicia el Tallafocs
|
||||
index_resetdesc=Fes clic sobre aquest botó per eliminar totes les regles existents del tallafocs i establir-ne de noves per a una configuració inicial bàsica.
|
||||
index_cluster=Servidors del Cluster
|
||||
|
||||
@@ -23,6 +23,7 @@ apply_err=Fehlgeschlagen die Konfiguration anzuwenden
|
||||
apply_remote=Fehler von $1 : $2
|
||||
bootup_ecannot=Es ist Ihnen nicht erlaubt die Firewall beim Booten zu aktivieren oder zu deaktivieren
|
||||
clear_ecannot=Es ist Ihnen nicht erlaubt die Regeln zu leeren
|
||||
clear_rusure=Sind Sie sicher, dass Sie alle $2 Regeln von Kette $1 löschen möchten?
|
||||
clear_title=Regeln leeren
|
||||
cluster_add=Füge Server hinzu
|
||||
cluster_delete=Ausgewähltes löschen
|
||||
@@ -36,6 +37,7 @@ cluster_return=Cluster Server
|
||||
cluster_title=Cluster Firewall Server
|
||||
delete_ecannot=Es ist Ihnen nicht erlaubt die Regeln zu löschen
|
||||
delete_ok=Lösche jetzt
|
||||
delete_rusure=Sind Sie sicher, dass Sie die Kette $1 löschen möchten? $2 Regeln werden in ihr gelöscht.
|
||||
delete_title=Lösche Regel
|
||||
desc_always=Immer
|
||||
desc_and=und
|
||||
@@ -170,6 +172,7 @@ index_auto5=Blockiere alles ausgenommen Ports die für virtuelles Hosting be
|
||||
index_bootup=Aktiviere beim Booten
|
||||
index_bootupdesc=Ändert die Option, um zu kontrollieren, ob Ihre Firewall beim Booten aktiviert ist oder nicht.
|
||||
index_cclear=Lösche alle Regeln
|
||||
index_cdelete=Lösche Kette
|
||||
index_cdeletesel=Lösches ausgewähltes
|
||||
index_chain=Regel $1
|
||||
index_chain_forward=Weitergeleitete Pakete (FORWARD) - Gilt nur für Pakete, die dieser Host weitergeleitet hat
|
||||
@@ -182,11 +185,13 @@ index_cluster=Cluster Server
|
||||
index_clusterdesc=Klicken Sie auf diese Schaltfläche, um zusätzliche Webmin-Server einzurichten, mit denen die Firewall-Konfiguration automatisch kopiert werden.
|
||||
index_cmovesel=Verschiebe ausgewählte
|
||||
index_comm=Kommentar
|
||||
index_crename=Benenne Kette um
|
||||
index_desc=Bedingung
|
||||
index_ecommand=Der Befehl $1 wurde nicht auf Ihrem System gefunden. Webmin benötigt diesen Befehl um IPtables zu konfigurieren.
|
||||
index_editing=Regel Datei $1
|
||||
index_ekernel=Ein Fehler ist beim Überprüfen Ihrer aktuellen IPtables-Konfiguration aufgetreten : $1 Dies könnte darauf hindeuten, dass Ihr Kernel IPtables nicht unterstützt.
|
||||
index_existing=Webmin hat erkannt, dass $1 IPtables Firewall-Regel(n) derzeit in Benutzung sind, die nicht in der Datei $2 gespeichert wurden. Diese Regeln wurden vermutlich von einem Skript einrichtet, jedoch dieses Modul nicht in der Lage ist, dieses zu lesen und zu bearbeiten.<p>Wenn Sie dieses Modul benutzen wollen, um Ihre IPtables-Firewall verwalten zu lassen, klicken Sie auf die Schaltfläche unten, um die bestehenden Regeln zu einer Sicherungsdatei zu konvertieren und anschließend Ihr bestehendes Firewall-Skript zu deaktivieren.
|
||||
index_firewalld=Warnung! Es scheint, dass FirewallD verwendet wird, um das Firewall-System zu generieren. Vielleicht sollten Sie die <a href='$1'>FirewallD Firewall-Modul</a> verwenden.
|
||||
index_header=Firewall Konfiguration von $1
|
||||
index_headerex=Bestehende Firewall Konfiguration
|
||||
index_jump=Führe Regel $1 aus
|
||||
@@ -199,6 +204,7 @@ index_jump_masquerade=Maskieren
|
||||
index_jump_queue=<font color=#0000ff>Userspace</font>
|
||||
index_jump_redirect=Leite um
|
||||
index_jump_reject=<font color=#ff4400>Zurückweisen</font>
|
||||
index_jump_return=Beende Kette
|
||||
index_jump_snat=Quell NAT
|
||||
index_move=Verschieben
|
||||
index_policy=Setze Standard-Aktion auf:
|
||||
@@ -227,17 +233,24 @@ log_bootdown=Firewall beim Booten deaktiviert
|
||||
log_bootup=Firewall beim Booten aktiviert
|
||||
log_convert=Bestehende Firewall konvertiert
|
||||
log_openports=Firewallports $1 geöffnet
|
||||
log_rename_chain=Kette $1 in Tabelle $2 umbenannt
|
||||
log_setup=Firewall eingerichtet
|
||||
log_unapply=Konfiguration zurückgesetzt
|
||||
move_chain=Aktuelle Änderung
|
||||
move_count=Regeln ausgewählt
|
||||
move_dest=Ziel-Kette
|
||||
move_header=Regel Verschiebe-Optionen
|
||||
move_ok=Verschiebe jetzt
|
||||
move_title=Verschiebe Regeln
|
||||
new_ecannot=Es ist Ihnen nicht erlaubt Ketten zu erstellen
|
||||
new_ename=Fehlender oder ungültiger Ketten-Name
|
||||
new_err=Fehlgeschlagen eine Regel zu erstellen
|
||||
new_etaken=Eine Regeln mit diesem Namen existiert bereits
|
||||
redhat_einstalled=Kein <tt>iptables</tt> Systemstart Aktion wurde festgestellt, was darauf hinweist, dass das IPtables-Paket nicht auf Ihrem System installiert ist.
|
||||
redhat_eoutput=Ein Fehler ist beim Abrufen des IPtables Status von dem Befehl $1 aufgetreten. Dies ist wahrscheinlich darauf zurückzuführen, dass Ihr System so konfiguriert wurde, IPchains anstelle von IPtables zu benutzen.
|
||||
rename_chain=Aktueller Name
|
||||
rename_count=Regel in Kette
|
||||
rename_ecannot=Es ist Ihnen nicht erlaubt Ketten umzubenennen
|
||||
rename_name=Neuer Name
|
||||
rename_none=Nichts
|
||||
rename_ok=Umbenenne jetzt
|
||||
|
||||
@@ -68,6 +68,7 @@ index_auto5=Block all except ports used for virtual hosting, on interface:
|
||||
index_auto=Setup Firewall
|
||||
index_add=Add
|
||||
index_shorewall=Warning! It appears that Shorewall is being used to generate your system's firewall. Maybe you should use the <a href='$1'>Shoreline Firewall module</a> instead.
|
||||
index_firewalld=Warning! It appears that FirewallD is being used to generate your system's firewall. Maybe you should use the <a href='$1'>FirewallD module</a> instead.
|
||||
index_reset=Reset Firewall
|
||||
index_resetdesc=Click this button to clear all existing firewall rules and set up new rules for a basic initial configuration.
|
||||
index_cluster=Cluster Servers
|
||||
|
||||
259
firewall/lang/pl
Normal file
259
firewall/lang/pl
Normal file
@@ -0,0 +1,259 @@
|
||||
__norefs=1
|
||||
acl_apply=Może zastosować konfigurację?
|
||||
acl_bootup=Może włączyć firewall przy bootowaniu?
|
||||
acl_cluster=Może zarządzać firewallem klastra?
|
||||
acl_delchain=Może usuwać i czyścić łańcuchy?
|
||||
acl_jall=Wszystko
|
||||
acl_jumps=Dozwolone działania
|
||||
acl_newchain=Może tworzyć nowe łańcuchy?
|
||||
acl_policy=Można zmienić zasady domyślne?
|
||||
acl_setup=Może przeprowadzić wstępną konfigurację zapory?
|
||||
acl_tables=Dozwolone IPtables
|
||||
acl_unapply=Może przywrócić konfigurację?
|
||||
add_echeck=Serwer $1 nie posiada modułu Linux Firewall
|
||||
add_emissing=Brak polecenia $2 na serwerze $1
|
||||
add_err=Błąd dodawania serwera
|
||||
add_gerr=Błąd dodawania grupy
|
||||
add_gmsg=Dodawanie serwerów do grupy $1 ..
|
||||
add_msg=Dodawanie $1 ..
|
||||
add_ok=Dodano $1 z $2 aktywnymi regułami firewalla
|
||||
add_title=Dodawanie serwerów
|
||||
apply_ecannot=Nie masz uprawnień do zastosowania konfiguracji
|
||||
apply_err=Błąd zastosowania konfiguracji
|
||||
apply_remote=Błąd od $1 : $2
|
||||
bootup_ecannot=Nie masz uprawnień do włączenia i wyłączenia uruchamiania firewalla
|
||||
clear_ecannot=Nie masz uprawnień do czyszczenia łańcuchów
|
||||
clear_rusure=Jesteś pewny, że chcesz usunąć wszystkie $2 reguły z łańcucha $1 ?
|
||||
clear_title=Czyszczenie łańcucha
|
||||
cluster_add=Dodaj serwer
|
||||
cluster_delete=Usuń wybrane
|
||||
cluster_desc=Opis
|
||||
cluster_gadd=Dodaj serwery w grupie
|
||||
cluster_host=Nazwa hosta
|
||||
cluster_need=Musisz dodać serwer z loginem i hasłem w module Serwery Webmina nim będziesz mógł nimi tutaj zarządzać.
|
||||
cluster_none=Nie dodano żadnych serwerów do klastra firewalla.
|
||||
cluster_os=System operacyjny
|
||||
cluster_return=serwerów klastra
|
||||
cluster_title=Firewall serwerów klastra
|
||||
delete_ecannot=Nie masz uprawnień do usuwania łańcuchów
|
||||
delete_ok=Usunięto
|
||||
delete_rusure=Jesteś pewny, że chcesz usunąć łańcuch $1 ? Łańcuch posiada $2 reguł, zostaną one usunięte.
|
||||
delete_title=Usuwanie łańcucha
|
||||
desc_always=Zawsze
|
||||
desc_and=i
|
||||
desc_conds=Jeżeli $1
|
||||
desc_d=celem jest $1
|
||||
desc_d!=celem nie jest $1
|
||||
desc_dport=portem docelowym jest $1
|
||||
desc_dport!=portem docelowym nie jest $1
|
||||
desc_dports=portami docelowymi są $1
|
||||
desc_dports!=portami docelowymi nie są $1
|
||||
desc_f=pakiet jest fragmentem
|
||||
desc_f!=pakiet nie jest fragmentem
|
||||
desc_gid-owner=wysyłający jest grupą $1
|
||||
desc_gid-owner!=wysyłający nie jest grupą $1
|
||||
desc_i=Interfejsem wyjściowym jest $1
|
||||
desc_i!=Interfejsem wyjściowym nie jest $1
|
||||
desc_icmp-type=typ ICMP to $1
|
||||
desc_icmp-type!=typ ICMP to nie $1
|
||||
desc_mac-source=adres ethernet to $1
|
||||
desc_mac-source!=adres ethernet to nie jest $1
|
||||
desc_o=interfejs wyjściowy jest $1
|
||||
desc_o!=interfejs wyjściowy nie jest $1
|
||||
desc_p=protokół to $1
|
||||
desc_p!=protokół to nie jest $1
|
||||
desc_physdev-in=Fizyczny wejściowy interfejs jest $1
|
||||
desc_physdev-in!=Fizyczny wejściowy interfejs nie jest $1
|
||||
desc_physdev-out=Fizyczny wyjściowy interfejs jest $1
|
||||
desc_physdev-out!=Fizyczny wyjściowy interfejs nie jest $1
|
||||
desc_ports=źródłowe i docelowa porty są
|
||||
desc_ports!=źródłowe i docelowa porty nie są
|
||||
desc_s=źródłem jest $1
|
||||
desc_s!=źródłem nie jest $1
|
||||
desc_sid-owner=sesja grupy nadawcy jest $1
|
||||
desc_sid-owner!=sesja grupy nadawcy nie jest $1
|
||||
desc_sport=źródłowy port to $1
|
||||
desc_sport!=źródłowy port nie jest $1
|
||||
desc_sports=źródłowe porty są $1
|
||||
desc_sports!=źródłowe porty nie są $1
|
||||
desc_state=stan połączenia jest $1
|
||||
desc_state!=stan połączenia nie jest $1
|
||||
ecluster=Nie masz uprawnień do zarządzania klasterem firewalla
|
||||
edit_above=Powyżej
|
||||
edit_after=Po regule $1
|
||||
edit_any=Dowolny
|
||||
edit_args=Dodatkowe parametry
|
||||
edit_before=Przed regułą $1
|
||||
edit_below=Poniżej
|
||||
edit_chain=Jest częścią łańcucha
|
||||
edit_clone=Klonuj regułę
|
||||
edit_cmt=Komentarz do reguły
|
||||
edit_desc=Wybrane powyżej działanie będzie przeprowadzone tylko jeżeli <b>all</b> poniższe warunki zostaną spełnione.
|
||||
edit_dest=Docelowy adres lub sieć
|
||||
edit_dnat=porty i adresy IP dla DNAT
|
||||
edit_dnatip=Zasięg IP od $1 do $2
|
||||
edit_dport=Porty docelowe TCP lub UDP
|
||||
edit_frag=Fragmentacja
|
||||
edit_fragis=Jest fragmentem
|
||||
edit_fragnot=Nie jest fragmentem
|
||||
edit_header1=Szczegóły łańcucha i działania
|
||||
edit_header2=Szczegóły warunków
|
||||
edit_icmptype=Typ pakietu ICMP
|
||||
edit_ignore=Ignorowane
|
||||
edit_in=Interfejs przychodzący
|
||||
edit_is=Równe
|
||||
edit_jump=Działanie
|
||||
edit_jump_other=Uruchom łańcuch
|
||||
edit_mac=Adresy Ethernet
|
||||
edit_mods=Dodatkowe moduły IPtables
|
||||
edit_mtoports=Źródłowe porty dla masquerading
|
||||
edit_not=Nie jest równe
|
||||
edit_oifc=Inne..
|
||||
edit_out=Interfejs wychodzący
|
||||
edit_physdevin=Interfejs fizyczny przychodzący
|
||||
edit_physdevisin=Pakiety przychodzące na zmostkowanym interfejsie
|
||||
edit_physdevisout=Pakiety wychodzące na zmostkowanym interfejsie
|
||||
edit_physdevout=Interfejs fizyczny wychodzący
|
||||
edit_port0=Port (y)
|
||||
edit_port1=Zakres portów od $1 do $2
|
||||
edit_ports=Źródłowe i docelowe porty
|
||||
edit_prange=Zakres portów od $1 do $2
|
||||
edit_proto=Protokół sieciowy
|
||||
edit_rtoports=Docelowe porty dla przekierowania
|
||||
edit_rwithtype=Typ $1
|
||||
edit_snat=Porty i adresy IP dla SNAT
|
||||
edit_source=Źródłowy adres lub sieć
|
||||
edit_sport=Źródłowy port TCP lub UDP
|
||||
edit_state=Stany połączenia
|
||||
edit_state_established=Istniejące połączenie
|
||||
edit_state_invalid=Nie jest częścią żadnego połączenia
|
||||
edit_state_new=Nowe połączenie
|
||||
edit_tcpflags=Flagi TCP
|
||||
edit_title1=Dodawanie reguły
|
||||
edit_title2=Edycja reguły
|
||||
edit_title3=Klonowanie reguły
|
||||
ejump=Nie masz uprawnień do edycji tej reguły
|
||||
etable=Nie masz uprawnień do edycji tej tabeli IPtable
|
||||
index_action=Akcja
|
||||
index_add=Dodaj
|
||||
index_apply=Zastosuj konfigurację
|
||||
index_applydesc=Kliknij na ten przycisk, aby aktywować powyższą konfigurację firewalla. Każda aktualnie aktywna reguła zostanie zastąpiona
|
||||
index_applydesc2=Kliknij na ten przycisk, aby ustawić powyższą konfigurację firewalla na wszystkich serwerach w tym klastrze. Inne reguły aktualnie aktywne zostaną zastąpione.
|
||||
index_atboot=Włączyć firewall przy starcie systemu?
|
||||
index_auto2=Blokuj wszystkie przychodzące połączenia na zewnętrznym interfejsie:
|
||||
index_auto3=Blokuj wszystko za wyjątkiem SSH i IDENT na zewnętrznym interfejsie:
|
||||
index_auto4=Blokuj wszystko za wyjątkiem SSH, IDENT, ping i wyższych portów na interfejsie:
|
||||
index_auto5=Blokuj wszystko za wyjątkiem portów używanych dla wirtualnego hostingu na interfejsie:
|
||||
index_bootup=Aktywuj przy starcie
|
||||
index_bootupdesc=Wybierz czy firewall ma być aktywny przy starcie systemu czy nie.
|
||||
index_cadd=Dodaj nowy łańcuch o nazwie:
|
||||
index_cclear=Wyczyść wszystkie reguły
|
||||
index_cdelete=Usuń łańcuch
|
||||
index_cdeletesel=Usuń wybrane
|
||||
index_chain=Łańcuch $1
|
||||
index_chain_forward=Pakiety przekazywane (FORWARD) - Ma zastosowanie tylko dla pakietów przesyłanych przez tego hosta
|
||||
index_chain_input=Pakiety przychodzące (INPUT) - Ma zastosowanie tylko dla pakietów adresowanych dla tego hosta
|
||||
index_chain_output=Pakiety wychodzące (OUTPUT) - Ma zastosowanie tylko dla pakietów pochodzących z tego hosta
|
||||
index_change=Wyświetlane IPtable:
|
||||
index_cluster=Serwery klastra
|
||||
index_clusterdesc=Kliknij na ten przycisk, aby ustawić dodatkowe serwery Webmina do używania tej konfiguracji firewalla.
|
||||
index_cmovesel=Przenieś wybrane
|
||||
index_comm=Komentarz
|
||||
index_crename=Zmień nazwę łancucha
|
||||
index_desc=Stan
|
||||
index_ecommand=Polecenie $1 nie zostało znalezione w twoim systemie. Webmin potrzebuje tego polecenia do skonfigurowania IPtables.
|
||||
index_editing=Plik reguł $1
|
||||
index_jump=Skocz do łańcucha $1
|
||||
index_jump_=Nic nie rób
|
||||
index_jump_accept=<font color=#00aa00>Akceptuj</font>
|
||||
index_jump_return=Zamknij łańcuch
|
||||
index_move=Przenieś
|
||||
index_none=Brak zdefiniowanych reguł w tym łańcuchu.
|
||||
index_policy=Domyślne działanie:
|
||||
index_policy_accept=Akceptuj
|
||||
index_policy_drop=Odrzuć
|
||||
index_policy_return=Zamknij łańcuch
|
||||
index_radd=Dodaj regułę
|
||||
index_reset=Resetuj Firewall
|
||||
index_resetdesc=Kliknij na ten przycisk, aby wyczyścić wszystkie istniejące reguły firewalla i ustawić domyślną początkową konfigurację.
|
||||
index_return=listy reguł
|
||||
index_saveex=Zapisz reguły Firewalla
|
||||
index_title=Firewall Linuksa
|
||||
index_unapply=Przywróć konfigurację
|
||||
index_unapply2=Zapisz konfigurację
|
||||
index_unapply2desc=Kliknij na ten przycisk, aby zapisać powyższą konfigurację do pliku konfiguracyjnego firewalla.
|
||||
index_unapplydesc=Kliknij na ten przycisk, aby zresetować powyższą konfigurację do aktualnie aktywnej.
|
||||
log_add_group=Dodano klaster serwerów do grupy $1
|
||||
log_add_host=Dodano klaster serwera $1
|
||||
log_apply=Zastosowano konfigurację
|
||||
log_bootdown=Wyłączono firewall przy uruchamianiu
|
||||
log_bootup=Włączono firewall przy uruchamianiu
|
||||
log_clear_chain=Wyczyszczono łańcuch $1 w tabeli $2
|
||||
log_convert=Skonwertowano istniejący firewall
|
||||
log_create_chain=Utworzono łańcuch $1 w tabeli $2
|
||||
log_create_rule=Dodano regułę do łańcucha $1 w tabeli $2
|
||||
log_delete_chain=Usunięto łańcuch $1 z tabeli $2
|
||||
log_delete_group=Usunięto klaster $1 serwerów
|
||||
log_delete_host=Usunięto klaster serwera $1
|
||||
log_delete_rule=Usunięto regułę z łańcucha $1 w tabeli $2
|
||||
log_delsel_chain=Usunięto $3 reguły z łańcucha $1 w tabeli $2
|
||||
log_modify_chain=Ustawiono domyślne działanie dla łańcucha $1 w tabeli $2
|
||||
log_modify_rule=Zmodyfikowano regułę w łańcuchu $1 w tabeli $2
|
||||
log_move_rule=Przeniesiono regułę w łańcuchu $1 w tabeli $2
|
||||
log_movesel_chain=Przeniesiono $3 reguły z łańcucha $1 w tabeli $2
|
||||
log_openports=Otwarto porty firewalla $1
|
||||
log_rename_chain=Zmieniono nazwę łańcucha $1 w tabeli $2
|
||||
log_setup=Ustawiono firewall
|
||||
log_unapply=Przywrócono konfigurację
|
||||
move_chain=Aktualnie zmieniony
|
||||
move_count=Wybrane reguły
|
||||
move_dest=Docelowy łańcuch
|
||||
move_header=Opcje przeniesienia reguły
|
||||
move_ok=Przeniesiono
|
||||
move_title=Przenoszenie reguł
|
||||
new_ecannot=Nie masz uprawnień do tworzenia łańcuchów
|
||||
new_ename=Brakująca lub nieprawidłowa nazwa łańcucha
|
||||
new_err=Błąd tworzenia łańcucha
|
||||
new_etaken=Łańcuch o takiej nazwie już istnieje
|
||||
policy_ecannot=Nie masz uprawnień do zmiany domyślnego działania dla tego łańcucha
|
||||
rename_chain=Aktualna nazwa
|
||||
rename_count=Reguły w łańcuchu
|
||||
rename_ecannot=Nie masz uprawnień do zmiany nazwy łańcucha
|
||||
rename_header=Opcje zmiany nazwy łańcucha
|
||||
rename_name=Nowa nazwa
|
||||
rename_none=Brak
|
||||
rename_ok=Zmieniono nazwę
|
||||
rename_title=Zmiana nazwy łańcucha
|
||||
save_ecanjump=Nie masz uprawnień do tego działania
|
||||
save_echain=Brakujący lub nieprawidłowy łańcuch do uruchomienia
|
||||
save_edest=Brakujący lub nieprawidłowy docelowy adres lub sieć
|
||||
save_edipfrom=Brakujący lub nieprawidłowy początkowy adres IP dla DNAT
|
||||
save_edipto=Nieprawidłowy końcowy adres IP dla DNAT
|
||||
save_edpfrom=Nieprawidłowy początkowy adres IP dla DNAT
|
||||
save_edport=Brakujące lub nieprawidłowe porty docelowe
|
||||
save_edportfrom=Błędny zakres początkowy dla portów docelowych
|
||||
save_edportto=Błędny końcowy zakres lub docelowe porty
|
||||
save_edpto=Brakujący lub błędny końcowy port dla DNAT
|
||||
save_egidowner=Brakująca lub błędna grupa wysyłająca unix
|
||||
save_ein=Brakujący lub nieprawidłowy interfejs przychodzący
|
||||
save_emac=Brakujący lub błędny adres ethernet
|
||||
save_emtoports=Brakujący lub błędny port źródłowy masquerade
|
||||
save_eout=Brakujący lub błędny interfejs wychodzący
|
||||
save_ephysdevin=Brakujący lub błędny fizyczny interfejs przychodzący
|
||||
save_ephysdevout=Brakujący lub błędny fizyczny interfejs wychodzący
|
||||
save_eports=Brakujący lub błędny port docelowy lub źródło
|
||||
save_eproto=Nie wybrano protokołu
|
||||
save_err=Błąd zapisywania reguły
|
||||
save_ertoports=Brakujący lub błędny docelowy port przekierowania
|
||||
save_esipfrom=Brakujący lub błędny początkowy adres IP dla SNAT
|
||||
save_esipto=Błędny końcowy adres IP dla SNAT
|
||||
save_esource=Brakujący lub błędny źródłowy adres lub sieć
|
||||
save_espfrom=Błędny początkowy port dla SNAT
|
||||
save_esport=Brakujący lub błędny port źródłowy
|
||||
save_esportfrom=Błędny zasięg początkowy dla portów źródłowych
|
||||
save_espto=Brakujący lub błędny końcowy port dla SNAT
|
||||
save_estates=Nie wybrano stanów połączenia
|
||||
setup_ecannot=Nie masz uprawnień do ustawiania firewalla
|
||||
setup_eiface=Nie wpisano interfejsu zewnętrznego sieci
|
||||
unapply_ecannot=Nie masz uprawnień do przywracania konfiguracji
|
||||
unapply_err=Błąd przywracania konfiguracji
|
||||
@@ -21,3 +21,6 @@ desc_no=Linux brannmur
|
||||
desc_hu=Linux tûzfal (Iptables)
|
||||
longdesc_ms_MY=Mengkonfigurasi firewall linux menggunakan iptables. Membenarkan untuk mengubah kesemua jadual, kunci, aturan dan pilihan.
|
||||
desc_ms_MY=Firewall Linux
|
||||
longdesc_de=Konfiguriert eine Linux-Firewall mit iptables. Ermöglicht die Bearbeitung aller Tabellen, Ketten, Regeln und Optionen.
|
||||
desc_pl=Firewall Linuksa
|
||||
longdesc_pl=Konfiguracja firewall linuksa u¿ywaj±c iptables. Pozwala na edycjê wszystkich tabel, regu³ i opcji.
|
||||
|
||||
@@ -116,7 +116,8 @@ else {
|
||||
if ($table->{'name'} eq 'nat' && $rule->{'chain'} ne 'PREROUTING' &&
|
||||
$rule->{'chain'} ne 'OUTPUT') {
|
||||
if ($rule->{'j'}->[1] eq 'SNAT' && !$in{'snatdef'}) {
|
||||
&check_ipaddress($in{'sipfrom'}) ||
|
||||
(!$in{'sipfrom'} && !$in{'sipto'}) ||
|
||||
&check_ipaddress($in{'sipfrom'}) ||
|
||||
&error($text{'save_esipfrom'});
|
||||
!$in{'sipto'} || &check_ipaddress($in{'sipto'}) ||
|
||||
&error($text{'save_esipto'});
|
||||
@@ -406,9 +407,13 @@ else {
|
||||
|
||||
sub check_ipmask
|
||||
{
|
||||
return &to_ipaddress($_[0]) ||
|
||||
$_[0] =~ /^([0-9\.]+)\/([0-9\.]+)$/ &&
|
||||
&to_ipaddress("$1") &&
|
||||
(&check_ipaddress("$2") || ($2 =~ /^\d+$/ && $2 <= 32));
|
||||
foreach my $w (split(/,/, $_[0])) {
|
||||
my $ok = &to_ipaddress($w) ||
|
||||
$w =~ /^([0-9\.]+)\/([0-9\.]+)$/ &&
|
||||
&to_ipaddress("$1") &&
|
||||
(&check_ipaddress("$2") || ($2 =~ /^\d+$/ && $2 <= 32));
|
||||
return 0 if (!$ok);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
2
firewalld/CHANGELOG
Normal file
2
firewalld/CHANGELOG
Normal file
@@ -0,0 +1,2 @@
|
||||
---- Changes since 1.750 ----
|
||||
First version of this module, for configuring allowed ports and services in FirewallD.
|
||||
18
firewalld/bootup.cgi
Executable file
18
firewalld/bootup.cgi
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Enable or disable firewalld at boot time
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require './firewalld-lib.pl';
|
||||
our (%in, %config);
|
||||
&ReadParse();
|
||||
&foreign_require("init");
|
||||
if ($in{'boot'}) {
|
||||
&init::enable_at_boot($config{'init_name'});
|
||||
}
|
||||
else {
|
||||
&init::disable_at_boot($config{'init_name'});
|
||||
}
|
||||
&webmin_log($in{'boot'} ? "bootup" : "bootdown");
|
||||
&redirect("index.cgi?zone=".&urlize($in{'zone'}));
|
||||
|
||||
2
firewalld/config
Normal file
2
firewalld/config
Normal file
@@ -0,0 +1,2 @@
|
||||
firewall_cmd=firewall-cmd
|
||||
init_name=firewalld
|
||||
2
firewalld/config.info
Normal file
2
firewalld/config.info
Normal file
@@ -0,0 +1,2 @@
|
||||
firewall_cmd=Full path to firewall-cmd program,0
|
||||
init_name=FirewallD init script name,0
|
||||
2
firewalld/config.info.ca
Executable file
2
firewalld/config.info.ca
Executable file
@@ -0,0 +1,2 @@
|
||||
firewall_cmd=Camí complet del programa firewall-cmd,0
|
||||
init_name=Nom del script d'inici de FirewallD,0
|
||||
2
firewalld/config.info.de
Normal file
2
firewalld/config.info.de
Normal file
@@ -0,0 +1,2 @@
|
||||
firewall_cmd=Voller Pfad zum firewall-cmd Programm,0
|
||||
init_name=FirewallD init-script-Name,0
|
||||
77
firewalld/create_zone.cgi
Executable file
77
firewalld/create_zone.cgi
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Create a new zone, and add some allowed ports to it
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%text, %in);
|
||||
&ReadParse();
|
||||
&error_setup($text{'zone_err'});
|
||||
|
||||
# Validate inputs
|
||||
$in{'name'} =~ /^[a-z0-9\.\_\-]+$/i || &error($text{'zone_ename'});
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($clash) = grep { $_->{'name'} eq $in{'name'} } @zones;
|
||||
$clash && &error($text{'zone_eclash'});
|
||||
|
||||
# Add the zone
|
||||
my $err = &create_firewalld_zone($in{'name'});
|
||||
&error($err) if ($err);
|
||||
|
||||
# Find the Webmin port
|
||||
my @webminports;
|
||||
if (&foreign_installed("webmin")) {
|
||||
&foreign_require("webmin");
|
||||
my @socks = &webmin::get_miniserv_sockets();
|
||||
@webminports = &unique(map { $_->[1] } @webminports);
|
||||
}
|
||||
else {
|
||||
@webminports = ( $ENV{'SERVER_PORT'} || 10000 );
|
||||
}
|
||||
|
||||
# Work out which ports to allow
|
||||
my (@addports, @addservs);
|
||||
if ($in{'mode'} == 1) {
|
||||
# Copy from another zone
|
||||
my ($source) = grep { $_->{'name'} eq $in{'source'} } @zones;
|
||||
@addports = @{$source->{'ports'}};
|
||||
@addservs = @{$source->{'services'}};
|
||||
}
|
||||
elsif ($in{'mode'} >= 2) {
|
||||
# SSH, Webmin and Ident
|
||||
push(@addports, "ssh/tcp", "auth/tcp");
|
||||
foreach my $webminport (@webminports) {
|
||||
push(@addports, $webminport."-".($webminport+10)."/tcp");
|
||||
}
|
||||
|
||||
if ($in{'mode'} >= 3) {
|
||||
# High ports
|
||||
push(@addports, "1024-65535/tcp");
|
||||
}
|
||||
|
||||
if ($in{'mode'} >= 4) {
|
||||
# Other virtual hosting ports
|
||||
push(@addports, "53/tcp", "53/udp"); # DNS
|
||||
push(@addports, "80/tcp", "443/tcp"); # HTTP
|
||||
push(@addports, "25/tcp", "587/tcp"); # SMTP
|
||||
push(@addports, "20/tcp", "21/tcp"); # FTP
|
||||
push(@addports, "110/tcp", "995/tcp"); # POP3
|
||||
push(@addports, "143/tcp", "220/tcp", "993/tcp"); # IMAP
|
||||
push(@addports, "20000/tcp"); # Usermin
|
||||
}
|
||||
}
|
||||
|
||||
# Add the ports and services
|
||||
my $zone = { 'name' => $in{'name'} };
|
||||
foreach my $p (@addports) {
|
||||
my $err = &create_firewalld_port($zone, split(/\//, $p));
|
||||
&error($err) if ($err);
|
||||
}
|
||||
foreach my $s (@addservs) {
|
||||
my $err = &create_firewalld_service($zone, $s);
|
||||
&error($err) if ($err);
|
||||
}
|
||||
|
||||
&webmin_log("create", "zone", $in{'name'});
|
||||
&redirect("index.cgi?zone=".&urlize($in{'name'}));
|
||||
|
||||
21
firewalld/default_zone.cgi
Executable file
21
firewalld/default_zone.cgi
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Make a zone the default
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%text, %in);
|
||||
&ReadParse();
|
||||
&error_setup($text{'defzone_err'});
|
||||
|
||||
# Get the zone
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones;
|
||||
$zone || &error($text{'port_ezone'});
|
||||
|
||||
# Make the default
|
||||
my $err = &default_firewalld_zone($zone);
|
||||
&error($err) if ($err);
|
||||
|
||||
&webmin_log("default", "zone", $zone->{'name'});
|
||||
&redirect("index.cgi?zone=".&urlize($zone->{'name'}));
|
||||
32
firewalld/delete_rules.cgi
Executable file
32
firewalld/delete_rules.cgi
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Delete multiple ports or services
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%in, %text);
|
||||
&error_setup($text{'delete_err'});
|
||||
&ReadParse();
|
||||
my @d = split(/\0/, $in{'d'});
|
||||
@d || &error($text{'delete_enone'});
|
||||
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones;
|
||||
$zone || &error($text{'port_ezone'});
|
||||
|
||||
foreach my $d (@d) {
|
||||
my @w = split(/\//, $d);
|
||||
my $err;
|
||||
if ($w[0] eq "port") {
|
||||
$err = &delete_firewalld_port($zone, $w[1], $w[2]);
|
||||
}
|
||||
elsif ($w[0] eq "service") {
|
||||
$err = &delete_firewalld_service($zone, $w[1]);
|
||||
}
|
||||
else {
|
||||
next;
|
||||
}
|
||||
&error(&text('delete_edel', $d, $err)) if ($err);
|
||||
}
|
||||
&webmin_log("delete", "rules", scalar(@d));
|
||||
&redirect("index.cgi?zone=".&urlize($zone->{'name'}));
|
||||
39
firewalld/delete_zone.cgi
Executable file
39
firewalld/delete_zone.cgi
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Delete a zone, after asking for confirmation
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%text, %in);
|
||||
&ReadParse();
|
||||
&error_setup($text{'delzone_err'});
|
||||
|
||||
# Get the zone
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones;
|
||||
$zone || &error($text{'port_ezone'});
|
||||
$zone->{'default'} && &error($text{'delzone_edefault'});
|
||||
|
||||
if ($in{'confirm'}) {
|
||||
# Just do it
|
||||
my $err = &delete_firewalld_zone($zone);
|
||||
&error($err) if ($err);
|
||||
&webmin_log("delete", "zone", $zone->{'name'});
|
||||
&redirect("index.cgi");
|
||||
}
|
||||
else {
|
||||
# Ask first
|
||||
&ui_print_header(undef, $text{'delzone_title'}, "");
|
||||
|
||||
print &ui_confirmation_form("delete_zone.cgi",
|
||||
&text('delzone_rusure', "<tt>$zone->{'name'}</tt>",
|
||||
scalar(@{$zone->{'ports'}}),
|
||||
scalar(@{$zone->{'services'}})),
|
||||
[ [ 'zone', $zone->{'name'} ] ],
|
||||
[ [ 'confirm', $text{'delete'} ] ],
|
||||
);
|
||||
|
||||
&ui_print_footer("index.cgi?zone=".&urlize($in{'zone'}),
|
||||
$text{'index_return'});
|
||||
}
|
||||
|
||||
68
firewalld/edit_port.cgi
Executable file
68
firewalld/edit_port.cgi
Executable file
@@ -0,0 +1,68 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Show a form to edit one port or port range
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%in, %text);
|
||||
&ReadParse();
|
||||
|
||||
# Get the zone and rule
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones;
|
||||
$zone || &error($text{'port_ezone'});
|
||||
my ($mode, $ports, $proto, $port, $portlow, $porthigh);
|
||||
if (!$in{'new'}) {
|
||||
&ui_print_header(undef, $text{'port_edit'}, "");
|
||||
($ports, $proto) = split(/\//, $in{'id'});
|
||||
if ($ports =~ /^(\d+)\-(\d+)$/) {
|
||||
$mode = 1;
|
||||
($portlow, $porthigh) = ($1, $2);
|
||||
}
|
||||
else {
|
||||
$mode = 0;
|
||||
$port = $ports;
|
||||
}
|
||||
}
|
||||
else {
|
||||
&ui_print_header(undef, $text{'port_create'}, "");
|
||||
$mode = 0;
|
||||
$proto = "tcp";
|
||||
}
|
||||
|
||||
print &ui_form_start("save_port.cgi", "post");
|
||||
print &ui_hidden("zone", $in{'zone'});
|
||||
print &ui_hidden("id", $in{'id'});
|
||||
print &ui_hidden("new", $in{'new'});
|
||||
print &ui_table_start($text{'port_header'}, undef, 2);
|
||||
|
||||
# Zone name
|
||||
print &ui_table_row($text{'port_zone'},
|
||||
"<tt>".&html_escape($zone->{'name'})."</tt>");
|
||||
|
||||
# Port number or range
|
||||
print &ui_table_row($text{'port_port'},
|
||||
&ui_radio_table("mode", $mode,
|
||||
[ [ 0, $text{'port_mode0'},
|
||||
&ui_textbox("port", $port, 6) ],
|
||||
[ 1, $text{'port_mode1'},
|
||||
&ui_textbox("portlow", $portlow, 6)." - ".
|
||||
&ui_textbox("porthigh", $porthigh, 6) ] ]));
|
||||
|
||||
# Protocol name
|
||||
print &ui_table_row($text{'port_proto'},
|
||||
&ui_select("proto", $proto,
|
||||
[ [ "tcp", "TCP" ],
|
||||
[ "udp", "UDP" ] ], 1, 0, 1));
|
||||
|
||||
print &ui_table_end();
|
||||
if ($in{'new'}) {
|
||||
print &ui_form_end([ [ undef, $text{'create'} ] ]);
|
||||
}
|
||||
else {
|
||||
print &ui_form_end([ [ undef, $text{'save'} ],
|
||||
[ 'delete', $text{'delete'} ] ]);
|
||||
}
|
||||
|
||||
&ui_print_footer("index.cgi?zone=".&urlize($zone->{'name'}),
|
||||
$text{'index_return'});
|
||||
47
firewalld/edit_serv.cgi
Executable file
47
firewalld/edit_serv.cgi
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Show a form to edit one service
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%in, %text);
|
||||
&ReadParse();
|
||||
|
||||
# Get the zone and rule
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones;
|
||||
$zone || &error($text{'port_ezone'});
|
||||
my $serv;
|
||||
if (!$in{'new'}) {
|
||||
&ui_print_header(undef, $text{'serv_edit'}, "");
|
||||
$serv = $in{'id'};
|
||||
}
|
||||
else {
|
||||
&ui_print_header(undef, $text{'serv_create'}, "");
|
||||
}
|
||||
|
||||
print &ui_form_start("save_serv.cgi", "post");
|
||||
print &ui_hidden("zone", $in{'zone'});
|
||||
print &ui_hidden("id", $in{'id'});
|
||||
print &ui_hidden("new", $in{'new'});
|
||||
print &ui_table_start($text{'serv_header'}, undef, 2);
|
||||
|
||||
# Zone name
|
||||
print &ui_table_row($text{'port_zone'},
|
||||
"<tt>".&html_escape($zone->{'name'})."</tt>");
|
||||
|
||||
# Service name
|
||||
print &ui_table_row($text{'serv_name'},
|
||||
&ui_select("serv", $serv, [ &list_firewalld_services() ]));
|
||||
|
||||
print &ui_table_end();
|
||||
if ($in{'new'}) {
|
||||
print &ui_form_end([ [ undef, $text{'create'} ] ]);
|
||||
}
|
||||
else {
|
||||
print &ui_form_end([ [ undef, $text{'save'} ],
|
||||
[ 'delete', $text{'delete'} ] ]);
|
||||
}
|
||||
|
||||
&ui_print_footer("index.cgi?zone=".&urlize($zone->{'name'}),
|
||||
$text{'index_return'});
|
||||
220
firewalld/firewalld-lib.pl
Normal file
220
firewalld/firewalld-lib.pl
Normal file
@@ -0,0 +1,220 @@
|
||||
# Functions for managing firewalld
|
||||
|
||||
BEGIN { push(@INC, ".."); };
|
||||
use strict;
|
||||
use warnings;
|
||||
use WebminCore;
|
||||
&init_config();
|
||||
do 'md5-lib.pl';
|
||||
our ($module_root_directory, %text, %config, %gconfig);
|
||||
our %access = &get_module_acl();
|
||||
|
||||
# check_firewalld()
|
||||
# Returns an error message if firewalld is not installed, undef if all is OK
|
||||
sub check_firewalld
|
||||
{
|
||||
&has_command($config{'firewall_cmd'}) ||
|
||||
return &text('check_ecmd', "<tt>".$config{'firewall_cmd'}."</tt>");
|
||||
return undef;
|
||||
}
|
||||
|
||||
# is_firewalld_running()
|
||||
# Returns 1 if the server is running, 0 if not
|
||||
sub is_firewalld_running
|
||||
{
|
||||
my $ex = system("$config{'firewall_cmd'} --state >/dev/null 2>&1 </dev/null");
|
||||
return $ex ? 0 : 1;
|
||||
}
|
||||
|
||||
# list_firewalld_zones([active-only])
|
||||
# Returns an array of firewalld zones, each of which is a hash ref with fields
|
||||
# like services and ports
|
||||
sub list_firewalld_zones
|
||||
{
|
||||
my ($active) = @_;
|
||||
my @rv;
|
||||
my $out = &backquote_command("$config{'firewall_cmd'} --list-all-zones ".
|
||||
($active ? "" : "--permanent ")."</dev/null 2>&1");
|
||||
if ($?) {
|
||||
&error("Failed to list zones : $out");
|
||||
}
|
||||
my $zone;
|
||||
foreach my $l (split(/\r?\n/, $out)) {
|
||||
if ($l =~ /^(\S+)(\s+\(.*\))?/) {
|
||||
# New zone
|
||||
$zone = { 'name' => $1,
|
||||
'default' => $2 ? 1 : 0 };
|
||||
push(@rv, $zone);
|
||||
}
|
||||
elsif ($l =~ /^\s+(\S+):\s*(.*)/ && $zone) {
|
||||
# Option in some zone
|
||||
$zone->{$1} = [ split(/\s+/, $2) ];
|
||||
}
|
||||
}
|
||||
return @rv;
|
||||
}
|
||||
|
||||
# list_firewalld_services()
|
||||
# Returns an array of known service names
|
||||
sub list_firewalld_services
|
||||
{
|
||||
my $out = &backquote_command("$config{'firewall_cmd'} --get-services </dev/null 2>&1");
|
||||
if ($?) {
|
||||
&error("Failed to list services : $out");
|
||||
}
|
||||
$out =~ s/\r|\n//g;
|
||||
return split(/\s+/, $out);
|
||||
}
|
||||
|
||||
# create_firewalld_port(&zone, port|range, proto)
|
||||
# Adds a new allowed port to a zone. Returns undef on success or an error
|
||||
# message on failure
|
||||
sub create_firewalld_port
|
||||
{
|
||||
my ($zone, $port, $proto) = @_;
|
||||
my $out = &backquote_logged("$config{'firewall_cmd'} ".
|
||||
"--zone ".quotemeta($zone->{'name'})." ".
|
||||
"--permanent --add-port ".
|
||||
quotemeta($port)."/".quotemeta($proto)." 2>&1");
|
||||
return $? ? $out : undef;
|
||||
}
|
||||
|
||||
# delete_firewalld_port(&zone, port|range, proto)
|
||||
# Delete one existing port from a zone. Returns undef on success or an error
|
||||
# message on failure
|
||||
sub delete_firewalld_port
|
||||
{
|
||||
my ($zone, $port, $proto) = @_;
|
||||
my $out = &backquote_logged("$config{'firewall_cmd'} ".
|
||||
"--zone ".quotemeta($zone->{'name'})." ".
|
||||
"--permanent --remove-port ".
|
||||
quotemeta($port)."/".quotemeta($proto)." 2>&1");
|
||||
return $? ? $out : undef;
|
||||
}
|
||||
|
||||
# create_firewalld_service(&zone, service)
|
||||
# Adds a new allowed service to a zone. Returns undef on success or an error
|
||||
# message on failure
|
||||
sub create_firewalld_service
|
||||
{
|
||||
my ($zone, $service) = @_;
|
||||
my $out = &backquote_logged("$config{'firewall_cmd'} ".
|
||||
"--zone ".quotemeta($zone->{'name'})." ".
|
||||
"--permanent --add-service ".
|
||||
quotemeta($service)." 2>&1");
|
||||
return $? ? $out : undef;
|
||||
}
|
||||
|
||||
# delete_firewalld_service(&zone, service)
|
||||
# Delete one existing service from a zone. Returns undef on success or an error
|
||||
# message on failure
|
||||
sub delete_firewalld_service
|
||||
{
|
||||
my ($zone, $service) = @_;
|
||||
my $out = &backquote_logged("$config{'firewall_cmd'} ".
|
||||
"--zone ".quotemeta($zone->{'name'})." ".
|
||||
"--permanent --remove-service ".
|
||||
quotemeta($service)." 2>&1");
|
||||
return $? ? $out : undef;
|
||||
}
|
||||
|
||||
# apply_firewalld()
|
||||
# Make the current saved config active
|
||||
sub apply_firewalld
|
||||
{
|
||||
my $out = &backquote_logged("$config{'firewall_cmd'} --reload 2>&1");
|
||||
return $? ? $out : undef;
|
||||
}
|
||||
|
||||
# stop_firewalld()
|
||||
# Shut down the firewalld service
|
||||
sub stop_firewalld
|
||||
{
|
||||
&foreign_require("init");
|
||||
my ($ok, $err) = &init::stop_action($config{'init_name'});
|
||||
return $ok ? undef : $err;
|
||||
}
|
||||
|
||||
# start_firewalld()
|
||||
# Shut down the firewalld service
|
||||
sub start_firewalld
|
||||
{
|
||||
&foreign_require("init");
|
||||
my ($ok, $err) = &init::start_action($config{'init_name'});
|
||||
return $ok ? undef : $err;
|
||||
}
|
||||
|
||||
# list_system_interfaces()
|
||||
# Returns the list of all interfaces on the system
|
||||
sub list_system_interfaces
|
||||
{
|
||||
&foreign_require("net");
|
||||
my @rv = map { $_->{'name'} } &net::active_interfaces();
|
||||
push(@rv, map { $_->{'name'} } &net::boot_interfaces());
|
||||
return &unique(@rv);
|
||||
}
|
||||
|
||||
# update_zone_interfaces(&zone, &interface-list)
|
||||
# Update the interfaces a zone applies to
|
||||
sub update_zone_interfaces
|
||||
{
|
||||
my ($zone, $newifaces) = @_;
|
||||
my $oldifaces = $zone->{'interfaces'};
|
||||
foreach my $i (&list_system_interfaces()) {
|
||||
my $inold = &indexof($i, @$oldifaces) >= 0;
|
||||
my $innew = &indexof($i, @$newifaces) >= 0;
|
||||
my $args;
|
||||
if ($inold && !$innew) {
|
||||
# Remove from this zone
|
||||
$args = "--remove-interface ".quotemeta($i);
|
||||
}
|
||||
elsif (!$inold && $innew) {
|
||||
# Add to from this zone
|
||||
$args = "--add-interface ".quotemeta($i);
|
||||
}
|
||||
else {
|
||||
next;
|
||||
}
|
||||
my $cmd = "$config{'firewall_cmd'} ".
|
||||
"--zone ".quotemeta($zone->{'name'})." ".
|
||||
"--permanent ".$args;
|
||||
my $out = &backquote_logged($cmd." 2>&1 </dev/null");
|
||||
return $out if ($?);
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
||||
# create_firewalld_zone(name)
|
||||
# Add a new zone with the given name
|
||||
sub create_firewalld_zone
|
||||
{
|
||||
my ($name) = @_;
|
||||
my $cmd = "$config{'firewall_cmd'} --permanent --new-zone ".quotemeta($name);
|
||||
my $out = &backquote_logged($cmd." 2>&1 </dev/null");
|
||||
return $? ? $out : undef;
|
||||
}
|
||||
|
||||
# delete_firewalld_zone(&zone)
|
||||
# Removes the specified zone
|
||||
sub delete_firewalld_zone
|
||||
{
|
||||
my ($zone) = @_;
|
||||
my $cmd = "$config{'firewall_cmd'} --permanent --delete-zone ".
|
||||
quotemeta($zone->{'name'});
|
||||
my $out = &backquote_logged($cmd." 2>&1 </dev/null");
|
||||
return $? ? $out : undef;
|
||||
}
|
||||
|
||||
# default_firewalld_zone(&zone)
|
||||
# Makes the specified zone the default
|
||||
sub default_firewalld_zone
|
||||
{
|
||||
my ($zone) = @_;
|
||||
my $cmd = "$config{'firewall_cmd'} --set-default-zone ".
|
||||
quotemeta($zone->{'name'});
|
||||
my $out = &backquote_logged($cmd." 2>&1 </dev/null");
|
||||
return $? ? $out : undef;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
BIN
firewalld/images/icon.gif
Normal file
BIN
firewalld/images/icon.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
147
firewalld/index.cgi
Executable file
147
firewalld/index.cgi
Executable file
@@ -0,0 +1,147 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Show all firewalld rules and zones
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%in, %text, %config, %access, $base_remote_user);
|
||||
&ReadParse();
|
||||
if ($in{'addzone'}) {
|
||||
# Redirect to zone creation form
|
||||
&redirect("zone_form.cgi?zone=".&urlize($in{'zone'}));
|
||||
return;
|
||||
}
|
||||
if ($in{'delzone'}) {
|
||||
# Redirect to zone deletion form
|
||||
&redirect("delete_zone.cgi?zone=".&urlize($in{'zone'}));
|
||||
return;
|
||||
}
|
||||
if ($in{'defzone'}) {
|
||||
# Make a zone the default
|
||||
&redirect("default_zone.cgi?zone=".&urlize($in{'zone'}));
|
||||
return;
|
||||
}
|
||||
&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
|
||||
|
||||
# Is firewalld working?
|
||||
my $err = &check_firewalld();
|
||||
if ($err) {
|
||||
&ui_print_endpage(&text('index_cerr', $err));
|
||||
return;
|
||||
}
|
||||
|
||||
# Get rules and zones
|
||||
my @zones = &list_firewalld_zones();
|
||||
@zones || &error($text{'index_ezones'});
|
||||
my $zone;
|
||||
if ($in{'zone'}) {
|
||||
($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones;
|
||||
}
|
||||
else {
|
||||
($zone) = grep { $_->{'default'} } @zones;
|
||||
}
|
||||
$zone ||= $zones[0];
|
||||
my @azones = &list_firewalld_zones(1);
|
||||
my ($azone) = grep { $_->{'name'} eq $zone->{'name'} } @azones;
|
||||
|
||||
# Show zone selector
|
||||
print &ui_form_start("index.cgi");
|
||||
print "<b>$text{'index_zone'}</b> ",
|
||||
&ui_select("zone", $zone->{'name'},
|
||||
[ map { [ $_->{'name'},
|
||||
$_->{'name'}.($_->{'default'} ? ' (default)' : '') ]}
|
||||
@zones ], 1, 0, 0, 0,
|
||||
"onChange='form.submit()'")," ",
|
||||
&ui_submit($text{'index_zoneok'})," ",
|
||||
&ui_submit($text{'index_zonedef'}, "defzone")," ",
|
||||
&ui_submit($text{'index_zonedel'}, "delzone")," ",
|
||||
&ui_submit($text{'index_zoneadd'}, "addzone")," ",
|
||||
"<p>\n";
|
||||
print &ui_form_end();
|
||||
|
||||
# Show allowed ports and services in this zone
|
||||
my @links = ( &ui_link("edit_port.cgi?new=1&zone=".&urlize($zone->{'name'}),
|
||||
$text{'index_padd'}),
|
||||
&ui_link("edit_serv.cgi?new=1&zone=".&urlize($zone->{'name'}),
|
||||
$text{'index_sadd'}) );
|
||||
if (@{$zone->{'services'}} || @{$zone->{'ports'}}) {
|
||||
my @tds = ( "width=5" );
|
||||
unshift(@links, &select_all_link("d", 1),
|
||||
&select_invert_link("d", 1));
|
||||
print &ui_form_start("delete_rules.cgi", "post");
|
||||
print &ui_hidden("zone", $zone->{'name'});
|
||||
print &ui_links_row(\@links);
|
||||
print &ui_columns_start([ "", $text{'index_type'}, $text{'index_port'},
|
||||
$text{'index_proto'} ], 100, 0, \@tds);
|
||||
foreach my $s (@{$zone->{'services'}}) {
|
||||
my $url = "edit_serv.cgi?id=".&urlize($s).
|
||||
"&zone=".&urlize($zone->{'name'});
|
||||
print &ui_checked_columns_row([
|
||||
&ui_link($url, $text{'index_tservice'}),
|
||||
&ui_link($url, $s),
|
||||
"",
|
||||
], \@tds, "d", "service/".$s);
|
||||
}
|
||||
foreach my $p (@{$zone->{'ports'}}) {
|
||||
my $url = "edit_port.cgi?id=".&urlize($p).
|
||||
"&zone=".&urlize($zone->{'name'});
|
||||
my ($port, $proto) = split(/\//, $p);
|
||||
print &ui_checked_columns_row([
|
||||
&ui_link($url, $text{'index_tport'}),
|
||||
&ui_link($url, $port),
|
||||
&ui_link($url, uc($proto)),
|
||||
], \@tds, "d", "port/".$p);
|
||||
}
|
||||
print &ui_columns_end();
|
||||
print &ui_links_row(\@links);
|
||||
print &ui_form_end([ [ undef, $text{'index_delete'} ] ]);
|
||||
}
|
||||
else {
|
||||
print "<b>$text{'index_none'}</b> <p>\n";
|
||||
print &ui_links_row(\@links);
|
||||
}
|
||||
|
||||
# Show interfaces for this zone
|
||||
print &ui_form_start("save_ifaces.cgi");
|
||||
print &ui_hidden("zone", $zone->{'name'});
|
||||
print "<b>$text{'index_ifaces'}</b>\n";
|
||||
my %zifcs = map { $_, 1 } &unique(@{$azone->{'interfaces'}},
|
||||
@{$zone->{'interfaces'}});
|
||||
foreach my $i (&list_system_interfaces()) {
|
||||
print &ui_checkbox("iface", $i, $i, $zifcs{$i}),"\n";
|
||||
}
|
||||
print &ui_submit($text{'save'});
|
||||
print &ui_form_end();
|
||||
|
||||
# Show start/apply buttons
|
||||
print &ui_hr();
|
||||
print &ui_buttons_start();
|
||||
my $ok = &is_firewalld_running();
|
||||
if ($ok) {
|
||||
print &ui_buttons_row("restart.cgi", $text{'index_restart'},
|
||||
$text{'index_restartdesc'},
|
||||
[ [ "zone", $zone->{'name'} ] ]);
|
||||
print &ui_buttons_row("stop.cgi", $text{'index_stop'},
|
||||
$text{'index_stopdesc'},
|
||||
[ [ "zone", $zone->{'name'} ] ]);
|
||||
}
|
||||
else {
|
||||
print &ui_buttons_row("start.cgi", $text{'index_start'},
|
||||
$text{'index_startdesc'},
|
||||
[ [ "zone", $zone->{'name'} ] ]);
|
||||
}
|
||||
|
||||
# Enable at boot
|
||||
&foreign_require("init");
|
||||
my $st = &init::action_status($config{'init_name'});
|
||||
if ($st) {
|
||||
my $atboot = $st == 2 ? 1 : 0;
|
||||
print &ui_buttons_row("bootup.cgi", $text{'index_bootup'},
|
||||
$text{'index_bootupdesc'},
|
||||
[ [ "zone", $zone->{'name'} ] ],
|
||||
&ui_yesno_radio("boot", $atboot));
|
||||
}
|
||||
|
||||
print &ui_buttons_end();
|
||||
|
||||
&ui_print_footer("/", $text{'index'});
|
||||
20
firewalld/install_check.pl
Executable file
20
firewalld/install_check.pl
Executable file
@@ -0,0 +1,20 @@
|
||||
# install_check.pl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
do 'firewalld-lib.pl';
|
||||
|
||||
# is_installed(mode)
|
||||
# For mode 1, returns 2 if the server is installed and configured for use by
|
||||
# Webmin, 1 if installed but not configured, or 0 otherwise.
|
||||
# For mode 0, returns 1 if installed, 0 if not
|
||||
sub is_installed
|
||||
{
|
||||
my ($mode) = @_;
|
||||
return 0 if (&check_firewalld());
|
||||
if ($mode) {
|
||||
return &is_firewalld_running() ? 2 : 1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
98
firewalld/lang/ca
Executable file
98
firewalld/lang/ca
Executable file
@@ -0,0 +1,98 @@
|
||||
index_title=FirewallD
|
||||
index_atboot=Activa el tallafocs en engegar el sistema
|
||||
index_bootup=Activa en engegar
|
||||
index_bootupdesc=Canvia aquest opció per controlar si el tallafocs s'activa en engegar el sistema o no.
|
||||
index_apply=Aplica la Configuració
|
||||
index_applydesc=Fes clic sobre aquest botó per activar la configuracio del tallafocs llistada més amunt. Totes les regles del tallafocs que estiguin actualment en efecte seran descartades i substituïdes.
|
||||
index_restart=Aplica la Configuració
|
||||
index_restartdesc=Activa tots els serveis permesos i els ports llistats més amunr a totes les zones. Totes aquelles regles actives que no s'hagin creat de forma permanent seran substituïdes.
|
||||
index_start=Inicia FirewallD
|
||||
index_startdesc=Inicia el servidor FirewallD i aplica les regles llistades més amunt.
|
||||
index_stop=Atura FirewallD
|
||||
index_stopdesc=Tanca el servidor FirewallD i elimina totes les regles llistades és amunt.
|
||||
index_cerr=No es pot utilitzar el mòdul FirewallD: $1
|
||||
index_zone=Mostra les regles de la zone:
|
||||
index_zoneok=Cnvia
|
||||
index_zoneadd=Afegeix una Zona...
|
||||
index_zonedel=Suprimeix la Zona
|
||||
index_zonedef=Fes Zona per Defecte
|
||||
index_type=Tipus de Regla
|
||||
index_port=Port o servei
|
||||
index_proto=Protocol
|
||||
index_tservice=Servei
|
||||
index_tport=Port
|
||||
index_padd=Afegeix un port permès.
|
||||
index_sadd=Afegeix un servei permès.
|
||||
index_delete=Suprimeix les Regles Seleccionades
|
||||
index_return=a la llista de zones
|
||||
index_ezones=No s'ha trobat cap zona FirewallD!
|
||||
index_none=Aquesta zona encara no té cap port ni servei permès.
|
||||
index_ifaces=Aplica les regles a les interfícies:
|
||||
|
||||
port_edit=Edició de Port
|
||||
port_create=Addició de Port
|
||||
port_header=Opcións del port permès
|
||||
port_zone=Permès a la zona
|
||||
port_port=Port a permetre
|
||||
port_mode0=Un sol port
|
||||
port_mode1=Rang de ports
|
||||
port_proto=Protocol de xarxa
|
||||
port_ezone=La zona no existeix!
|
||||
port_err=No s'ha pogut desar el port
|
||||
port_eport=Hi falta el nom o número de port, o bé és invàlid
|
||||
port_eportlow=El port més baix ha de ser un número
|
||||
port_eporthigh=El port més alt ha de ser un número
|
||||
port_eportrange=El port més baix ha d'estar per sota del més alt
|
||||
|
||||
serv_edit=Edició de Servei
|
||||
serv_create=Addició de Servei
|
||||
serv_header=Opcions del servei permès
|
||||
serv_name=Servei a permetre
|
||||
serv_err=No s'ha pogut desar el servei
|
||||
|
||||
check_ecmd=No s'ha trobat al sistema l'ordre $1 de control de FirewallD
|
||||
|
||||
delete_err=NO s'han pogut suprimir les regles
|
||||
delete_enone=No n'has seleccionat cap!
|
||||
delete_edel=L'eliminació de $1 ha fallat: $2
|
||||
|
||||
zone_title=Creació de Zona
|
||||
zone_header=Opcions de la nova zona
|
||||
zone_name=Nom de la zona
|
||||
zone_mode=Ports i serveis permesos
|
||||
zone_mode0=Cap (es bloquejarà tot el trànsit)
|
||||
zone_mode1=Copia-ho de la zona
|
||||
zone_mode2=Només SSH, IDENT i Webmin
|
||||
zone_mode3=SSH, IDENT, Webmin i els ports alts
|
||||
zone_mode4=Ports utilitzats per a allotjament virtual
|
||||
zone_err=No s'ha pogut crear la zona
|
||||
zone_ename=Hi falta el nom de zona o bé és invàlid
|
||||
zone_eclash=Ja existeix una zona amb el mateix nom
|
||||
|
||||
delzone_title=Supressió de Zona
|
||||
delzone_err=No s'ha pogut suprimir la zona
|
||||
delzone_edefault=La zona per defecte no es pot eliminar
|
||||
delzone_rusure=Segur que vols suprimir la zona $1, que conté $2 ports i $3 serveis?
|
||||
|
||||
defzone_err=No s'ha pogut crear la zona per defecte
|
||||
|
||||
restart_err=No s'ha pogut aplicar la configuració
|
||||
stop_err=No s'ha pogut aturar FirewallD
|
||||
start_err=No s'ha pogut iniciar FirewallD
|
||||
|
||||
log_stop=S'ha aturat FirewallD
|
||||
log_start=S'ha iniciat FirewallD
|
||||
log_restart=S'ha aplicat la configuracio de FirewallD
|
||||
log_bootup=S'ha activat FirewallD en engegar
|
||||
log_bootdown=S'ha desactivat FirewallD en engegar
|
||||
log_create_port=S'ha afegit el port permès $1
|
||||
log_delete_port=S'ha eliminat el port permès $1
|
||||
log_update_port=S'ha actualitzat el port permès $1
|
||||
log_create_serv=S'ha afegit el servei permès $1
|
||||
log_delete_serv=S'ha eliminat el servei permès $1
|
||||
log_update_serv=S'ha actualitzat el servei permès $1
|
||||
log_delete_rules=S'han eliminat $1 ports permesos
|
||||
log_ifaces_zone=S'han actualitzat les interfícies de la zona $1
|
||||
log_create_zone=S'ha creat la zona $1
|
||||
log_delete_zone=S'ha suprimit la zona $1
|
||||
log_default_zone=S'ha fet la zona $1 com a zona per defecte
|
||||
89
firewalld/lang/de
Normal file
89
firewalld/lang/de
Normal file
@@ -0,0 +1,89 @@
|
||||
check_ecmd=Der FirewallD Steuer-Befehl $1 wurde auf Ihrem System nicht gefunden
|
||||
defzone_err=Fehlgeschlagen Zone zum Standard zu setzen
|
||||
delete_edel=Entfernen von $1 fehlgeschlagen : $2
|
||||
delete_enone=Nichts ausgewählt!
|
||||
delete_err=Fehlgeschlagen Regel zu löschen
|
||||
delzone_edefault=Die Standardzone kann nicht entfernt werden
|
||||
delzone_err=Fehlgeschlagen Zone zu löschen
|
||||
delzone_rusure=Sind Sie sich sicher die Zone $1, welche $2 Ports und $3 Dienste enthält, zu löschen?
|
||||
delzone_title=Lösche Zone
|
||||
index_apply=Konfiguration anwenden
|
||||
index_applydesc=Klicken auf diese Schaltfläche, um die Firewall-Konfiguration, welche oben aufgeführt ist, aktiv zu stellen. Alle Firewall-Regeln, welche derzeit aktiv sind, werden verworfen und ersetzt
|
||||
index_atboot=Aktiviere firewall beim Booten?
|
||||
index_bootup=Aktiviere beim Booten
|
||||
index_bootupdesc=Ändere diese Option, um zu kontrollieren, ob Ihre Firewall beim Systemstart aktiviert wird oder nicht.
|
||||
index_cerr=Das FirewallD Module kann nicht benutzt werden : $1
|
||||
index_delete=Lösche ausgewählte Regeln
|
||||
index_ezones=Keine FirewallD Zonen gefunden!
|
||||
index_ifaces=Wende Regeln an Schnittstelle an:
|
||||
index_none=Diese Zone hat bisher keine erlaubten Ports oder Dienste.
|
||||
index_padd=Füge erlaubten Port hinzu.
|
||||
index_port=Port oder Dienst
|
||||
index_proto=Protokoll
|
||||
index_restart=Konfiguration anwenden
|
||||
index_restartdesc=Aktiviert alle erlaubten Dienste und Ports, die oben aufgeführt sind, in allen Zonen. Alle aktiven Regeln, die nicht dauerhaft erstellt wurden, werden ersetzt.
|
||||
index_return=Liste an Zonen
|
||||
index_sadd=Füge erlaubten Dienst hinzu.
|
||||
index_start=Starte FirewallD
|
||||
index_startdesc=Starte den FirewallD Server und wende alle oben aufgeführten Regeln an.
|
||||
index_stop=Stoppe FirewallD
|
||||
index_stopdesc=Fahre den FirewallD Server herunter und entferne alle oben aufgeführten Regeln.
|
||||
index_title=FirewallD
|
||||
index_tport=Port
|
||||
index_tservice=Dienst
|
||||
index_type=Regel-Typ
|
||||
index_zone=Zeige Regel in Zone:
|
||||
index_zoneadd=Füge Zone hinzu..
|
||||
index_zonedef=Setze Standard
|
||||
index_zonedel=Lösche Zone
|
||||
index_zoneok=Ändern
|
||||
log_bootdown=FirewallD beim Booten deaktiviert
|
||||
log_bootup=FirewallD beim Booten aktiviert
|
||||
log_create_port=Erlaubter Port $1 hinzugefügt
|
||||
log_create_serv=Erlaubter Dienst $1 hinzugefügt
|
||||
log_create_zone=Zone $1 erstellt
|
||||
log_default_zone=Setze Zone $1 zum Standard
|
||||
log_delete_port=Erlaubter Dienst $1 gelöscht
|
||||
log_delete_rules=$1 erlaubte Ports gelöscht
|
||||
log_delete_serv=Erlaubter Dienst $1 gelöscht
|
||||
log_delete_zone=Zone $1 gelöscht
|
||||
log_ifaces_zone=Schnittstelle für Zone $1 aktualisiert
|
||||
log_restart=FirewallD Konfiguration angewendet
|
||||
log_start=FirewallD gestartet
|
||||
log_stop=FirewallD gestoppt
|
||||
log_update_port=Erlaubten Port $1 aktualisiert
|
||||
log_update_serv=Erlaubten Dienst $1 aktualisiert
|
||||
port_create=Füge erlaubten Port hinzu
|
||||
port_edit=Editiere erlaubten Port
|
||||
port_eport=Fehlender oder ungültiger Portnummer oder Name
|
||||
port_eporthigh=Hoher Port muss eine Zahl sein
|
||||
port_eportlow=Niedriger Port muss eine Zahl sein
|
||||
port_eportrange=Niedriger Port muss unter dem hohen Port liegen
|
||||
port_err=Fehlgeschlagen Port zu speichern
|
||||
port_ezone=Zone existiert nicht!
|
||||
port_header=Erlaubten Port Optionen
|
||||
port_mode0=Einzelner Port
|
||||
port_mode1=Port-Bereich
|
||||
port_port=Port zu erlauben
|
||||
port_proto=Netzwerkprotokoll
|
||||
port_zone=Erlaubt in Zone
|
||||
restart_err=Fehlgeschlagen Konfiguration anzuwenden
|
||||
serv_create=Füge Dienst hinzu
|
||||
serv_edit=Editiere Dienst
|
||||
serv_err=Fehlgeschlagen Dienst zu speichern
|
||||
serv_header=Erlaubte Dienste Optionen
|
||||
serv_name=Dienste zu erlauben
|
||||
start_err=Fehlgeschlagen FirewallD zu starten
|
||||
stop_err=Fehlgeschlagen FirewallD zu stoppen
|
||||
zone_eclash=Eine Zone mit dem gleichen Namen ist bereits vorhanden
|
||||
zone_ename=Fehlender oder ungültiger Zonen-Name
|
||||
zone_err=Fehlgeschlagen Zonen zu erstellen
|
||||
zone_header=Neue Zonen Optionen
|
||||
zone_mode=Erlaubte Ports und Dienste
|
||||
zone_mode0=Keine (gesamter Traffic wird blockiert)
|
||||
zone_mode1=Kopiere von ZOne
|
||||
zone_mode2=nur SSH, IDENT und Webmin
|
||||
zone_mode3=SSH, IDENT, Webmin und hohe Ports
|
||||
zone_mode4=Port, welche für das virtuelle Hosting verwendet werden
|
||||
zone_name=Zonen-Namen
|
||||
zone_title=Erstelle Zone
|
||||
98
firewalld/lang/en
Normal file
98
firewalld/lang/en
Normal file
@@ -0,0 +1,98 @@
|
||||
index_title=FirewallD
|
||||
index_atboot=Enable firewall at boot time?
|
||||
index_bootup=Activate at boot
|
||||
index_bootupdesc=Change this option to control whether your firewall is activated at boot time or not.
|
||||
index_apply=Apply Configuration
|
||||
index_applydesc=Click this button to make the firewall configuration listed above active. Any firewall rules currently in effect will be flushed and replaced
|
||||
index_restart=Apply Configuration
|
||||
index_restartdesc=Activate all the allowed services and ports listed above, in all zones. Any active rules that were not permanently created will be replaced.
|
||||
index_start=Start FirewallD
|
||||
index_startdesc=Start the FirewallD server and apply the rules listed above.
|
||||
index_stop=Stop FirewallD
|
||||
index_stopdesc=Shut down the FirewallD server and remove all the rules listed above.
|
||||
index_cerr=The FirewallD module cannot be used : $1
|
||||
index_zone=Show rules in zone:
|
||||
index_zoneok=Change
|
||||
index_zoneadd=Add Zone..
|
||||
index_zonedel=Delete Zone
|
||||
index_zonedef=Make Default
|
||||
index_type=Rule type
|
||||
index_port=Port or service
|
||||
index_proto=Protocol
|
||||
index_tservice=Service
|
||||
index_tport=Port
|
||||
index_padd=Add allowed port.
|
||||
index_sadd=Add allowed service.
|
||||
index_delete=Delete Selected Rules
|
||||
index_return=list of zones
|
||||
index_ezones=No FirewallD zones found!
|
||||
index_none=This zone does not have any allowed ports or services yet.
|
||||
index_ifaces=Apply rules to interfaces:
|
||||
|
||||
port_edit=Edit Port
|
||||
port_create=Add Port
|
||||
port_header=Allowed port options
|
||||
port_zone=Allowed in zone
|
||||
port_port=Port to allow
|
||||
port_mode0=Single port
|
||||
port_mode1=Port range
|
||||
port_proto=Network protocol
|
||||
port_ezone=Zone does not exist!
|
||||
port_err=Failed to save port
|
||||
port_eport=Missing or invalid port number or name
|
||||
port_eportlow=Low port must be a number
|
||||
port_eporthigh=High port must be a number
|
||||
port_eportrange=Low port must be below the high port
|
||||
|
||||
serv_edit=Edit Service
|
||||
serv_create=Add Service
|
||||
serv_header=Allowed service options
|
||||
serv_name=Service to allow
|
||||
serv_err=Failed to save service
|
||||
|
||||
check_ecmd=The FirewallD control command $1 was not found on your system
|
||||
|
||||
delete_err=Failed to delete rules
|
||||
delete_enone=None selected!
|
||||
delete_edel=Removal of $1 failed : $2
|
||||
|
||||
zone_title=Create Zone
|
||||
zone_header=New zone options
|
||||
zone_name=Zone name
|
||||
zone_mode=Allowed ports and services
|
||||
zone_mode0=None (all traffic will be blocked)
|
||||
zone_mode1=Copy from zone
|
||||
zone_mode2=SSH, IDENT and Webmin only
|
||||
zone_mode3=SSH, IDENT, Webmin and high ports
|
||||
zone_mode4=Ports used for virtual hosting
|
||||
zone_err=Failed to create zone
|
||||
zone_ename=Missing or invalid zone name
|
||||
zone_eclash=A zone with the same name already exists
|
||||
|
||||
delzone_title=Delete Zone
|
||||
delzone_err=Failed to delete zone
|
||||
delzone_edefault=The default zone cannot be removed
|
||||
delzone_rusure=Are you sure you want to delete the zone $1, which contains $2 ports and $3 services?
|
||||
|
||||
defzone_err=Failed to make zone the default
|
||||
|
||||
restart_err=Failed to apply configuration
|
||||
stop_err=Failed to stop FirewallD
|
||||
start_err=Failed to start FirewallD
|
||||
|
||||
log_stop=Stopped FirewallD
|
||||
log_start=Started FirewallD
|
||||
log_restart=Applied FirewallD configuration
|
||||
log_bootup=Enabled FirewallD at boot
|
||||
log_bootdown=Disabled FirewallD at boot
|
||||
log_create_port=Added allowed port $1
|
||||
log_delete_port=Removed allowed port $1
|
||||
log_update_port=Updated allowed port $1
|
||||
log_create_serv=Added allowed service $1
|
||||
log_delete_serv=Removed allowed service $1
|
||||
log_update_serv=Updated allowed service $1
|
||||
log_delete_rules=Removed $1 allowed ports
|
||||
log_ifaces_zone=Updated interfaces for zone $1
|
||||
log_create_zone=Created zone $1
|
||||
log_delete_zone=Deleted zone $1
|
||||
log_default_zone=Made zone $1 the default
|
||||
29
firewalld/log_parser.pl
Executable file
29
firewalld/log_parser.pl
Executable file
@@ -0,0 +1,29 @@
|
||||
# log_parser.pl
|
||||
# Functions for parsing this module's logs
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
do 'firewalld-lib.pl';
|
||||
our (%text);
|
||||
|
||||
# parse_webmin_log(user, script, action, type, object, ¶ms)
|
||||
# Converts logged information from this module into human-readable form
|
||||
sub parse_webmin_log
|
||||
{
|
||||
my ($user, $script, $action, $type, $object, $p) = @_;
|
||||
if ($type eq "port" || $type eq "serv") {
|
||||
return &text("log_${action}_${type}",
|
||||
"<tt>".&html_escape($object)."</tt>");
|
||||
}
|
||||
elsif ($type eq "rules") {
|
||||
return &text("log_${action}_${type}", &html_escape($object));
|
||||
}
|
||||
elsif ($type eq "zone") {
|
||||
return &text("log_${action}_${type}",
|
||||
"<tt>".&html_escape($object)."</tt>");
|
||||
}
|
||||
else {
|
||||
return $text{"log_${action}"};
|
||||
}
|
||||
}
|
||||
|
||||
9
firewalld/module.info
Normal file
9
firewalld/module.info
Normal file
@@ -0,0 +1,9 @@
|
||||
desc=FirewallD
|
||||
os_support=*-linux
|
||||
depends=net init
|
||||
category=net
|
||||
desc_de=FirewallD
|
||||
longdesc=Configure a Linux firewall using FirewallD, by editing allowed services and ports.
|
||||
longdesc_de=Konfiguriert eine Linux-Firewall mit FirewallD, indem es erlaubte Dienste und Ports editiert.
|
||||
desc_ca=FirewallD
|
||||
longdesc_ca=Configura un tallfocs Linux utilitzant FirewallD, bo i editant els serveis i els ports
|
||||
107
firewalld/open-ports.pl
Executable file
107
firewalld/open-ports.pl
Executable file
@@ -0,0 +1,107 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Open some ports on the firewall. Exit statuses are :
|
||||
# 0 - Nothing needed to be done
|
||||
# 1 - Given ports were opened up
|
||||
# 2 - IPtables is not installed or supported
|
||||
# 3 - No firewall is active
|
||||
# 4 - Could not apply configuration
|
||||
# 5 - Bad args
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
our ($module_name, $no_acl_check);
|
||||
$no_acl_check++;
|
||||
$ENV{'WEBMIN_CONFIG'} = "/etc/webmin";
|
||||
$ENV{'WEBMIN_VAR'} = "/var/webmin";
|
||||
if ($0 =~ /^(.*\/)[^\/]+$/) {
|
||||
chdir($1);
|
||||
}
|
||||
require './firewalld-lib.pl';
|
||||
if ($module_name ne 'firewalld') {
|
||||
print STDERR "Command must be run with full path\n";
|
||||
exit(5);
|
||||
}
|
||||
|
||||
# Parse args
|
||||
my $no_apply = 0;
|
||||
if ($ARGV[0] eq "--no-apply") {
|
||||
$no_apply = 1;
|
||||
shift(@ARGV);
|
||||
}
|
||||
if (!@ARGV) {
|
||||
print STDERR "Missing ports to open\n";
|
||||
exit(5);
|
||||
}
|
||||
foreach my $p (@ARGV) {
|
||||
if ($p !~ /^\d+$/ && $p !~ /^\d+:\d+$/ && $p !~ /^\d+(,\d+)*$/) {
|
||||
print STDERR "Port $p must be number or start:end range\n";
|
||||
exit(5);
|
||||
}
|
||||
}
|
||||
|
||||
# Check Firewalld support
|
||||
if (&foreign_installed($module_name, 1) != 2) {
|
||||
print STDERR "Firewalld is not available\n";
|
||||
exit(2);
|
||||
}
|
||||
if (!&is_firewalld_running()) {
|
||||
print STDERR "Firewalld is not running\n";
|
||||
exit(2);
|
||||
}
|
||||
|
||||
# Check if any zones are active
|
||||
my @azones = &list_firewalld_zones(1);
|
||||
if (!@azones) {
|
||||
print STDERR "No active FirewallD zones found\n";
|
||||
exit(3);
|
||||
}
|
||||
|
||||
# Get the default zone
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($zone) = grep { $_->{'default'} } @zones;
|
||||
if (!$zone) {
|
||||
print STDERR "Default FirewallD zone not found\n";
|
||||
exit(3);
|
||||
}
|
||||
|
||||
my @added = ( );
|
||||
foreach my $p (@ARGV) {
|
||||
# For each port, find existing rules
|
||||
$p =~ s/^(\d+):(\d+)/$1-$2/;
|
||||
print STDERR "Checking for port $p ..\n";
|
||||
if (&indexof($p."/tcp", @{$zone->{'ports'}}) >= 0) {
|
||||
print STDERR ".. already allowed\n";
|
||||
}
|
||||
else {
|
||||
# Need to add
|
||||
my $err = &create_firewalld_port($zone, $p, "tcp");
|
||||
if ($err) {
|
||||
print STDERR ".. failed : $err\n";
|
||||
}
|
||||
else {
|
||||
push(@added, $p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (@added) {
|
||||
# Added some ports - apply them
|
||||
print STDERR "Opened ports ",join(" ", @added),"\n";
|
||||
my $ex = 1;
|
||||
if (!$no_apply) {
|
||||
my $err = &apply_firewalld();
|
||||
if ($err) {
|
||||
print "Failed to apply configuration : $err\n";
|
||||
$ex = 4;
|
||||
}
|
||||
else {
|
||||
print "Applied configuration successfully\n";
|
||||
}
|
||||
}
|
||||
&webmin_log("openports", undef, undef, { 'ports' => \@added });
|
||||
exit($ex);
|
||||
}
|
||||
else {
|
||||
print STDERR "All ports are already open\n";
|
||||
exit(0);
|
||||
}
|
||||
12
firewalld/restart.cgi
Executable file
12
firewalld/restart.cgi
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Activate all saved firewalld rules
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require './firewalld-lib.pl';
|
||||
our (%text, %in);
|
||||
&error_setup($text{'restart_err'});
|
||||
my $err = &apply_firewalld();
|
||||
&error($err) if ($err);
|
||||
&webmin_log("restart");
|
||||
&redirect("index.cgi?zone=".&urlize($in{'zone'}));
|
||||
21
firewalld/save_ifaces.cgi
Executable file
21
firewalld/save_ifaces.cgi
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Update interface ports
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%in, %text);
|
||||
&error_setup($text{'ifaces_err'});
|
||||
&ReadParse();
|
||||
|
||||
# Get the zone
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones;
|
||||
$zone || &error($text{'port_ezone'});
|
||||
|
||||
# Update the interfaces list
|
||||
my $err = &update_zone_interfaces($zone, [ split(/\0/, $in{'iface'}) ]);
|
||||
&error($err) if ($err);
|
||||
|
||||
&webmin_log("ifaces", "zone", $zone->{'name'});
|
||||
&redirect("index.cgi?zone=".&urlize($zone->{'name'}));
|
||||
61
firewalld/save_port.cgi
Executable file
61
firewalld/save_port.cgi
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Create, update or delete a port
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%in, %text);
|
||||
&error_setup($text{'port_err'});
|
||||
&ReadParse();
|
||||
|
||||
# Get the zone and rule
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones;
|
||||
$zone || &error($text{'port_ezone'});
|
||||
my ($oldport, $oldproto);
|
||||
if ($in{'id'}) {
|
||||
($oldport, $oldproto) = split(/\//, $in{'id'});
|
||||
}
|
||||
|
||||
my $logport;
|
||||
if ($in{'delete'}) {
|
||||
# Just remove the existing rule
|
||||
my $err = &delete_firewalld_port($zone, $oldport, $oldproto);
|
||||
&error($err) if ($err);
|
||||
$logport = $oldport;
|
||||
}
|
||||
else {
|
||||
# Validate inputs
|
||||
my $port;
|
||||
if ($in{'mode'} == 0) {
|
||||
$in{'port'} =~ /^\d+$/ &&
|
||||
$in{'port'} > 0 && $in{'port'} < 65536 ||
|
||||
getservbyname($in{'port'}, $in{'proto'}) ||
|
||||
&error($text{'port_eport'});
|
||||
$port = $in{'port'};
|
||||
}
|
||||
else {
|
||||
$in{'portlow'} =~ /^\d+$/ &&
|
||||
$in{'portlow'} > 0 && $in{'portlow'} < 65536 ||
|
||||
&error($text{'port_eportlow'});
|
||||
$in{'porthigh'} =~ /^\d+$/ &&
|
||||
$in{'porthigh'} > 0 && $in{'porthigh'} < 65536 ||
|
||||
&error($text{'port_eporthigh'});
|
||||
$in{'portlow'} < $in{'porthigh'} ||
|
||||
&error($text{'port_eportrange'});
|
||||
$port = $in{'portlow'}."-".$in{'porthigh'};
|
||||
}
|
||||
my $proto = $in{'proto'};
|
||||
|
||||
# Create or update allowed port
|
||||
if (!$in{'new'}) {
|
||||
my $err = &delete_firewalld_port($zone, $oldport, $oldproto);
|
||||
&error($err) if ($err);
|
||||
}
|
||||
my $err = &create_firewalld_port($zone, $port, $proto);
|
||||
&error($err) if ($err);
|
||||
$logport = $port;
|
||||
}
|
||||
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'update',
|
||||
'port', $logport);
|
||||
&redirect("index.cgi?zone=".&urlize($zone->{'name'}));
|
||||
42
firewalld/save_serv.cgi
Executable file
42
firewalld/save_serv.cgi
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Create, update or delete a service
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%in, %text);
|
||||
&error_setup($text{'serv_err'});
|
||||
&ReadParse();
|
||||
|
||||
# Get the zone and rule
|
||||
my @zones = &list_firewalld_zones();
|
||||
my ($zone) = grep { $_->{'name'} eq $in{'zone'} } @zones;
|
||||
$zone || &error($text{'port_ezone'});
|
||||
my $oldserv;
|
||||
if ($in{'id'}) {
|
||||
$oldserv = $in{'id'};
|
||||
}
|
||||
|
||||
my $logserv;
|
||||
if ($in{'delete'}) {
|
||||
# Just remove the existing rule
|
||||
my $err = &delete_firewalld_service($zone, $oldserv);
|
||||
&error($err) if ($err);
|
||||
$logserv = $oldserv;
|
||||
}
|
||||
else {
|
||||
# Validate inputs
|
||||
my $serv = $in{'serv'};
|
||||
|
||||
# Create or update allowed port
|
||||
if (!$in{'new'}) {
|
||||
my $err = &delete_firewalld_service($zone, $oldserv);
|
||||
&error($err) if ($err);
|
||||
}
|
||||
my $err = &create_firewalld_service($zone, $serv);
|
||||
&error($err) if ($err);
|
||||
$logserv = $serv;
|
||||
}
|
||||
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'update',
|
||||
'serv', $logserv);
|
||||
&redirect("index.cgi?zone=".&urlize($zone->{'name'}));
|
||||
12
firewalld/start.cgi
Executable file
12
firewalld/start.cgi
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Start up firewalld
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require './firewalld-lib.pl';
|
||||
our (%text, %in);
|
||||
&error_setup($text{'start_err'});
|
||||
my $err = &start_firewalld();
|
||||
&error($err) if ($err);
|
||||
&webmin_log("start");
|
||||
&redirect("index.cgi?zone=".&urlize($in{'zone'}));
|
||||
12
firewalld/stop.cgi
Executable file
12
firewalld/stop.cgi
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Shut down firewalld
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require './firewalld-lib.pl';
|
||||
our (%text, %in);
|
||||
&error_setup($text{'stop_err'});
|
||||
my $err = &stop_firewalld();
|
||||
&error($err) if ($err);
|
||||
&webmin_log("stop");
|
||||
&redirect("index.cgi?zone=".&urlize($in{'zone'}));
|
||||
33
firewalld/zone_form.cgi
Executable file
33
firewalld/zone_form.cgi
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Show a form for creating a new zone, with some default rules
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
require 'firewalld-lib.pl';
|
||||
our (%text, %in);
|
||||
&ReadParse();
|
||||
&ui_print_header(undef, $text{'zone_title'}, "");
|
||||
|
||||
print &ui_form_start("create_zone.cgi", "post");
|
||||
print &ui_table_start($text{'zone_header'}, undef, 2);
|
||||
|
||||
# New zone name
|
||||
print &ui_table_row($text{'zone_name'},
|
||||
&ui_textbox("name", undef, 20));
|
||||
|
||||
# Initial ruleset
|
||||
print &ui_table_row($text{'zone_mode'},
|
||||
&ui_radio_table("mode", 0,
|
||||
[ [ 0, $text{'zone_mode0'} ],
|
||||
[ 1, $text{'zone_mode1'},
|
||||
&ui_select("source", $in{'zone'},
|
||||
[ map { $_->{'name'} } &list_firewalld_zones() ]) ],
|
||||
[ 2, $text{'zone_mode2'} ],
|
||||
[ 3, $text{'zone_mode3'} ],
|
||||
[ 4, $text{'zone_mode4'} ] ]));
|
||||
|
||||
print &ui_table_end();
|
||||
print &ui_form_end([ [ undef, $text{'create'} ] ]);
|
||||
|
||||
&ui_print_footer("index.cgi?zone=".&urlize($in{'zone'}),
|
||||
$text{'index_return'});
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user