Compare commits

..

321 Commits
1.740 ... 1.770

Author SHA1 Message Date
Jamie Cameron
9d55206c69 Preserve IPv6 gateway http://virtualmin.com/node/38147 2015-10-02 22:39:00 -07:00
Jamie Cameron
c2fe651b16 Polish translation from Piotr Kozica 2015-10-01 22:06:36 -07:00
Jamie Cameron
ff81498f73 CentOS / RHEL 7 has no PID file https://github.com/webmin/webmin/issues/258 2015-09-29 13:18:59 -07:00
Jamie Cameron
1d380f8665 New version 2015-09-27 12:15:47 -07:00
Jamie Cameron
d4aada9248 Cache status of a password file, rather than re-reading it over and over 2015-09-27 10:43:46 -07:00
Jamie Cameron
e0da240903 Make color boxes appear by putting something into them 2015-09-27 10:07:24 -07:00
Jamie Cameron
4cd05d0777 ZFS mounts may be from a device that is just the pool name https://sourceforge.net/p/webadmin/bugs/4188/ 2015-09-27 09:42:00 -07:00
Jamie Cameron
207570d6c6 Reading from a command is read-only by definition https://sourceforge.net/p/webadmin/bugs/4647/ 2015-09-27 09:29:31 -07:00
Jamie Cameron
df520db5bd Flush only where needed 2015-09-27 09:26:51 -07:00
Jamie Cameron
6a725d590b Fix return link text http://virtualmin.com/node/38096 2015-09-26 10:57:02 -07:00
Jamie Cameron
f00784fce8 German translation updates from Raymond Vetter 2015-09-23 18:59:51 -07:00
Jamie Cameron
495ab59f09 Custom headers can't use the normal IMAP search http://virtualmin.com/node/38059 2015-09-21 18:47:54 -07:00
Jamie Cameron
7d69745da2 Version bump for new theme 2015-09-21 16:19:38 -07:00
Jamie Cameron
a32f9ab50f Add contributed modules to replacement list 2015-09-21 16:17:35 -07:00
Jamie Cameron
6922e89582 Fix perl warning https://sourceforge.net/p/webadmin/bugs/4645/ 2015-09-21 15:15:26 -07:00
Jamie Cameron
c8b583b848 Show more useful message fgor negated search https://sourceforge.net/p/webadmin/bugs/4643/ 2015-09-20 22:39:12 -07:00
Jamie Cameron
78fa0a6d02 Japanese updates from sakaeakanuma 2015-09-20 10:08:49 -07:00
Jamie Cameron
a6fc0360ac Japanese updates from sakaeakanuma 2015-09-20 10:08:48 -07:00
Jamie Cameron
151fd07c20 Japanese updates from sakaeakanuma 2015-09-20 10:08:48 -07:00
Jamie Cameron
34ba810c40 Japanese updates from sakaeakanuma 2015-09-20 10:08:47 -07:00
Jamie Cameron
f67563902c Japanese updates from sakaeakanuma 2015-09-20 10:08:42 -07:00
Jamie Cameron
fe9172c70e New version bump 2015-09-15 15:09:01 -07:00
Jamie Cameron
8c6b2a3021 Turn off authentic theme update message when installed as part of WEbmin 2015-09-15 13:24:22 -07:00
Jamie Cameron
3ee53333ca Assume HTTP for port 443 https://github.com/webmin/webmin/issues/217 2015-09-14 19:45:25 -07:00
Jamie Cameron
694a9ef746 Use the sntp command if ntpdate is missing http://virtualmin.com/node/37985 2015-09-13 10:24:28 -07:00
Jamie Cameron
62f88f3141 Handle blank lines https://sourceforge.net/p/webadmin/bugs/4636/ 2015-09-12 15:01:00 -07:00
Jamie Cameron
bc0faf3a27 German translation updates from Raymond Vetter 2015-09-12 14:57:31 -07:00
Jamie Cameron
bd3e9c7d06 Merge branch 'master' of git@github.com:webmin/webmin 2015-09-11 16:54:07 -07:00
Jamie Cameron
b2412b46d8 Protocol can be set to 'all' https://sourceforge.net/p/webadmin/bugs/4637/ 2015-09-11 16:45:11 -07:00
Jamie Cameron
ff6f59339b Merge pull request #255 from gerco/master
Fixed not calling switch_from_folder_user() for some types of maildir
2015-09-10 19:25:35 -07:00
Gerco Dries
2cb7691e37 Fixed not calling switch_from_folder_user() for some types of mail directories 2015-09-10 23:23:30 +02:00
Jamie Cameron
24d15b1444 SSL cert and key can alsobe defined for an IP address, so force use of the ones at the top level 2015-09-07 20:28:36 -07:00
Jamie Cameron
4d39b7233c Also prefer non-self-referential values when finding directives 2015-09-07 19:35:53 -07:00
Jamie Cameron
897f0d06fe When choosing a directive to replace, if there are multiple instances and some refer to previous values, pick one that is not self-referential http://virtualmin.com/node/25425 2015-09-07 19:29:46 -07:00
Jamie Cameron
95cafd87b1 German translation updates from Raymond Vetter 2015-09-03 19:48:51 -07:00
Jamie Cameron
5856d46c6c Add option to run post-backup command even if tar fails https://sourceforge.net/p/webadmin/bugs/4605/ 2015-09-02 18:19:28 -07:00
Jamie Cameron
31d3aa2782 Option for SSL cert enforcement 2015-09-01 22:58:58 -07:00
Jamie Cameron
799a0e8efd Add forgotten stat 2015-09-01 22:03:30 -07:00
Jamie Cameron
028dc5a7bd Japanese translation 2015-09-01 22:03:14 -07:00
Jamie Cameron
27a1ccf257 Add icon for manual edit 2015-09-01 22:02:56 -07:00
Jamie Cameron
22abe602ed Define first install file, which I forgot to checkin previously 2015-09-01 22:02:38 -07:00
Jamie Cameron
524c6678a6 Export new API function 2015-09-01 22:02:09 -07:00
Jamie Cameron
a74744d914 Work on verifiction of remote CA certs 2015-08-31 22:26:15 -07:00
Jamie Cameron
fe1e459d62 API work on SSL verification 2015-08-31 20:55:30 -07:00
Jamie Cameron
c1430d3c78 I have no idea why I added these valign tags 2015-08-30 19:58:50 -07:00
Jamie Cameron
e41d7bbceb Allow specification of perl modules with a / 2015-08-30 09:31:14 -07:00
Jamie Cameron
b5438d5e74 Hack to make generate_location work, because it calls old-style UI functions 2015-08-28 22:35:12 -07:00
Jamie Cameron
ed4f4574e7 Merge branch 'master' of git@github.com:webmin/webmin 2015-08-28 22:22:20 -07:00
Jamie Cameron
9eea0dc202 Fix useless right alignments 2015-08-28 22:21:59 -07:00
Jamie Cameron
188aef4d97 Merge pull request #250 from qooob/patch-3
Add Edit word instead of OK
2015-08-28 22:20:01 -07:00
Jamie Cameron
12ca5b702e Merge pull request #251 from qooob/patch-4
Get rid of weird align=right
2015-08-28 14:18:49 -07:00
Ilia Rostovtsev
1669d55c67 Get rid of weird align=right
It's better to remove align=right from this and other files, like `edit_lserv.cgi`,`edit_lserv.cgi`,`edit_aserv.cgi`,`edit_vserv.cgi` as it makes the module look different in a bad way compare to ALL others.
2015-08-28 23:54:29 +03:00
Ilia Rostovtsev
4c9d6774aa Add Edit word instead of OK
To be the same over all modules it rather should be EDIT and not OK. Why not adding EDIT to the lang and use it? ;)
2015-08-28 23:49:46 +03:00
Jamie Cameron
28b906abb2 German translation updates from Raymond Vetter 2015-08-27 20:54:12 -07:00
Jamie Cameron
1e6fd5eb7c Merge pull request #248 from claudius23/sarg-argument-list
execute sarg with all logfiles as parameter
2015-08-27 16:18:51 -07:00
Jamie Cameron
155bf542f8 Show samba password last changed fields, thanks to Ralf Habacker 2015-08-26 22:31:29 -07:00
Jamie Cameron
c9f43f70d6 Hide old java-based module for new webmin versions 2015-08-26 22:27:55 -07:00
Jamie Cameron
3ec46a61db Record version of Webmin at first install http://virtualmin.com/node/37800 2015-08-26 22:05:32 -07:00
Jamie Cameron
e663dc10fd Merge branch 'master' of git@github.com:webmin/webmin 2015-08-26 21:48:28 -07:00
Jamie Cameron
2f9e91b9e1 Deal with case where no software package system was detected 2015-08-26 21:26:29 -07:00
Jamie Cameron
8509f841ba Merge pull request #249 from claudius23/new-sarg-reports
add missing sarg reports for topusers and downloads
2015-08-26 16:57:57 -07:00
Claudius
1138bff9e4 Sarg needs a list of logfiles to generate reports.
Executing sarg multiple times generate only reports from last log file.
2015-08-26 13:46:14 +02:00
Claudius
6461d8f245 add missing sarg reports topusers and downloads 2015-08-26 13:16:43 +02:00
Jamie Cameron
90bf845504 Merge branch 'master' of git@github.com:webmin/webmin 2015-08-25 19:59:48 -07:00
Jamie Cameron
0c348a754f Disable all old TLS versions by default for new installs https://sourceforge.net/p/webadmin/bugs/4590/ 2015-08-25 19:50:33 -07:00
Jamie Cameron
106607b967 Merge pull request #246 from claudius23/patch-2
Fix Hostname in edit_cache_host.cgi
2015-08-25 16:23:22 -07:00
Jamie Cameron
8f7acb24bf Add UI for changing session-IP stickyness option https://github.com/webmin/webmin/issues/244 2015-08-24 21:46:06 -07:00
Jamie Cameron
1dbe198aa3 Support config option to limit sessions to the original IP https://github.com/webmin/webmin/issues/244 2015-08-24 21:41:23 -07:00
Jamie Cameron
33247f4fab Deal with case where OS doesn't export network interfaces http://virtualmin.com/node/37770 2015-08-24 19:16:58 -07:00
Claudius Herder
8a28399cb4 Fix Hostname in edit_cache_host.cgi
$ch[0] is hostname, $ch[2] is proxy port.
2015-08-24 15:00:56 +02:00
Jamie Cameron
102047efa8 For packaging, just call it 'File Manager' 2015-08-20 22:53:15 -07:00
Jamie Cameron
fbc19a3d1a Rename to Java File Manager 2015-08-20 22:49:30 -07:00
Jamie Cameron
aae1c32030 New version bump 2015-08-19 22:17:39 -07:00
Jamie Cameron
0301c4751d Add support for a Must-Autoreply-Regexp header for autoreplies 2015-08-19 21:52:00 -07:00
Jamie Cameron
926f35e7e8 Use dsset- file to get DS record as a backup 2015-08-18 22:44:11 -07:00
Jamie Cameron
1d299ecd00 Port special case for Debian apache2 package to Webmin 2015-08-18 20:58:00 -07:00
Jamie Cameron
2a9e9e491f Use the systemctl command instead of service, which just redirects to it anyway http://virtualmin.com/node/37710 2015-08-16 13:56:34 -07:00
Jamie Cameron
fe39f816b3 Don't include distribution files that are part of the filemin repo 2015-08-15 12:22:07 -07:00
Jamie Cameron
473b72f98c If there are no views, don't set the ACL field that controls which views domains can be edited in https://sourceforge.net/p/webadmin/bugs/4628/ 2015-08-11 19:12:16 -07:00
Jamie Cameron
73498f60bb Restore may ask for a backup job https://sourceforge.net/p/webadmin/bugs/4580/ 2015-08-05 22:13:18 -07:00
Jamie Cameron
938965c9d2 The X-Spam-Flag header can be set to NO in some cases! 2015-08-04 23:43:35 -07:00
Jamie Cameron
64b3e7d792 Don't break the cache structure hash - instead file out invalid lines http://virtualmin.com/node/37706 2015-08-02 22:24:14 -07:00
Jamie Cameron
9cdeb188d8 Dev version bump 2015-08-02 15:41:45 -07:00
Jamie Cameron
2efc68fcdc Calling define on an array is deprecated 2015-08-02 15:40:44 -07:00
Jamie Cameron
0e68254f26 Include filemin in standard package, and remove some contributor-specific files 2015-08-02 15:39:11 -07:00
Jamie Cameron
4e9408b048 Clean up some formal parameters and code formatting 2015-08-02 14:53:21 -07:00
Jamie Cameron
0213ee0371 Add support for parsing FTP URLs to the http parser function 2015-08-02 14:36:22 -07:00
Jamie Cameron
f5ebb0a1cf No need to use POSIX when it is already included up the top 2015-08-02 13:32:52 -07:00
Jamie Cameron
9b12008cd1 Exclude some files in the filemin repo from packaging 2015-08-02 13:30:02 -07:00
Jamie Cameron
5db4f95687 Xinha requires use of eval 2015-08-02 13:00:45 -07:00
Jamie Cameron
6fe30eb104 Allow users to edit config manually by default https://github.com/webmin/webmin/issues/242 2015-08-01 11:45:50 -07:00
Jamie Cameron
1709426f3f Add icon for manually editing the squid config files https://github.com/webmin/webmin/issues/242 2015-07-31 16:15:42 -07:00
Jamie Cameron
838f90c8d7 A regular rename coe call can fail if it crosses filesystems, so try the mv command as well http://virtualmin.com/node/37524 2015-07-28 22:08:25 -07:00
Jamie Cameron
ef01659b5b Make cookie path settable https://github.com/webmin/webmin/issues/240 2015-07-27 22:29:41 -07:00
Jamie Cameron
dc3099abe8 Skip github doc files 2015-07-26 21:22:45 -07:00
Jamie Cameron
fc098eaa15 Update DNSn lines on redhat systems https://github.com/webmin/webmin/issues/238 2015-07-26 13:51:54 -07:00
Jamie Cameron
17747f5e6a Prefer the dnf command to yum 2015-07-26 13:14:53 -07:00
Jamie Cameron
8cb9515e0b Re-factor code for OS-specific DNS configs https://github.com/webmin/webmin/issues/238 2015-07-26 13:13:08 -07:00
Jamie Cameron
1faed086a6 Prefer dnf command if installed 2015-07-26 07:38:52 -07:00
Jamie Cameron
121f5afa5e German translation updates from Raymond Vetter 2015-07-21 17:31:15 -07:00
Jamie Cameron
a058b34461 Prevent duplicate listen address http://virtualmin.com/node/37609 2015-07-19 13:18:53 -07:00
Jamie Cameron
e39e25f637 The inet word can appear before proto http://virtualmin.com/node/36645 2015-07-14 18:23:16 -07:00
Jamie Cameron
96bf8e0429 Catalan update from Jaume Badiella 2015-07-13 19:17:31 -07:00
Jamie Cameron
a5db48b268 Catalan update from Jaume Badiella 2015-07-13 19:17:03 -07:00
Jamie Cameron
4cf90d07ac The mppe-stateful directive doesn't have a require- prefix http://sourceforge.net/p/webadmin/bugs/4625/ 2015-07-11 18:59:09 -07:00
Jamie Cameron
f7a864b15e SuSE 13 renames the init script to cifs 2015-07-11 17:38:42 -07:00
Jamie Cameron
bd1fb03888 Remove useless version check 2015-07-10 22:50:01 -07:00
Jamie Cameron
d48b4c0432 Merge branch 'master' of git@github.com:webmin/webmin 2015-07-10 18:31:07 -07:00
Jamie Cameron
9e37f09bea Option is actually children, not concurrency 2015-07-10 18:28:01 -07:00
Jamie Cameron
b077a832b5 Merge pull request #229 from kkprince1998/cld-src
add child-src
2015-07-08 13:00:04 -07:00
Kaiden Prince
f6e7b851d2 add child-src
frame-src is now depreciated, added child-src for compatibility for new browsers.
2015-07-08 15:40:36 -04:00
Jamie Cameron
cd40658ada Merge branch 'master' of git@github.com:webmin/webmin 2015-07-05 23:18:19 -07:00
Jamie Cameron
fcc9677c89 Support DNF over YUM if installed https://github.com/webmin/webmin/issues/226 2015-07-05 22:40:52 -07:00
Jamie Cameron
c6fa750dc8 Merge pull request #224 from claudius23/patch-1
Update sarg-lib.pl
2015-07-02 09:32:41 -07:00
Claudius Herder
39ae4107f2 Update sarg-lib.pl
execute sarg with configured sarg.conf file
2015-07-02 17:57:57 +02:00
Jamie Cameron
250a3f7ce6 Fix permission grant for zones in a view https://sourceforge.net/p/webadmin/bugs/4621/ 2015-07-01 22:56:26 -07:00
Jamie Cameron
e9e453cc2d Updating the ssl_cipher and ssl_type at the same time can leave ssl_type empty, so do them separately https://sourceforge.net/p/webadmin/bugs/4622/ 2015-06-29 21:21:51 -07:00
Jamie Cameron
6efc7363b8 Fix typo 2015-06-29 20:50:33 -07:00
Jamie Cameron
a45f60a969 Allow callers to skip creation of mbox index files 2015-06-28 12:45:42 -07:00
Jamie Cameron
3615770fbe Move modules cache to /var/webmin 2015-06-27 20:37:29 -07:00
Jamie Cameron
9ccf4fd7df Prevent perl warning 2015-06-27 20:32:00 -07:00
Jamie Cameron
c89225bd68 By default zones in all views can be edited 2015-06-27 20:23:09 -07:00
Jamie Cameron
7e5556f530 Permissions fixes 2015-06-27 20:22:41 -07:00
Jamie Cameron
f8c8487ac3 Contributed Russian translations 2015-06-27 20:19:20 -07:00
Jamie Cameron
cae261ed84 Use /var/webmin for all read status DBMs 2015-06-27 20:19:00 -07:00
Jamie Cameron
aabd5f7a4f Use /var/webmin for the maildir cache directory 2015-06-27 17:44:47 -07:00
Jamie Cameron
77795a6c40 Use /var/webmin for index files if there aren't already in /etc/webmin 2015-06-27 17:37:22 -07:00
Jamie Cameron
3673c08687 Move logic for finding IMAP cache dir into a separate function, which respects /var/webmin 2015-06-27 17:36:50 -07:00
Jamie Cameron
97b71af97c Use /var/webmin for temp files 2015-06-27 16:14:38 -07:00
Jamie Cameron
a623f44b84 Use /var/webmin for temp files 2015-06-27 16:02:28 -07:00
Jamie Cameron
39a4574aae Use /var/webmin for temp files 2015-06-27 15:58:21 -07:00
Jamie Cameron
ccc5f260c4 Use /var/webmin for cache files 2015-06-27 15:51:59 -07:00
Jamie Cameron
83400e5edc Disallow an upgrade from the tar.gz if portage is in use http://sourceforge.net/p/webadmin/bugs/4619 2015-06-26 09:57:34 -07:00
Jamie Cameron
02ae0fc5ae changelog for /var move 2015-06-25 23:05:29 -07:00
Jamie Cameron
47694dac77 Use new cache dir under /var unless /etc/webmin is already in use 2015-06-25 23:02:13 -07:00
Jamie Cameron
ea6e798b0e Use new var directory for new installs 2015-06-25 09:45:09 -07:00
Jamie Cameron
16204e7dcd Create new per-module var directoiry 2015-06-25 09:44:24 -07:00
Jamie Cameron
efa9057d30 German translation updates from Raymond Vetter 2015-06-23 18:11:07 -07:00
Jamie Cameron
c11deb3936 Move manual edit link into above and below the table 2015-06-22 21:21:13 -07:00
Jamie Cameron
d5e23a92e5 Search and prioritize webmin docs 2015-06-21 22:56:54 -07:00
Jamie Cameron
d195ccbbf2 Show a more useful error if no package or update system was found https://sourceforge.net/p/webadmin/bugs/4615/ 2015-06-20 22:43:45 -07:00
Jamie Cameron
61322d3ccb German translation updates from Raymond Vetter 2015-06-20 16:00:17 -07:00
Jamie Cameron
2d6bec06dc German translation updates from Raymond Vetter 2015-06-20 16:00:16 -07:00
Jamie Cameron
3430c74fe2 New version bump 2015-06-20 10:31:56 -07:00
Jamie Cameron
16949927d6 Remove dupe string 2015-06-20 10:30:26 -07:00
Jamie Cameron
a8cf0a8e78 Fix missing var 2015-06-19 17:10:02 -07:00
Jamie Cameron
3d5802bcaf Fix missing var 2015-06-19 17:09:06 -07:00
Jamie Cameron
fa3a61c5a7 CLean up todo notes 2015-06-19 16:59:48 -07:00
Jamie Cameron
5d55867393 Completed ACL option to control allowed views for zones: 2015-06-19 16:18:22 -07:00
Jamie Cameron
81f657fa15 UI for selecting views the user can edit domains in 2015-06-18 17:41:36 -07:00
Jamie Cameron
41b8d4da9a changes for 1.750 2015-06-18 13:10:42 -07:00
Jamie Cameron
450264d182 Button to make a zone the default 2015-06-17 20:29:17 -07:00
Jamie Cameron
be4da986ec Use perl to filter out unwanted tables, as _ is a special character in SQL likes https://sourceforge.net/p/webadmin/bugs/4614/ 2015-06-17 19:55:13 -07:00
Jamie Cameron
98c2a76499 German translation updates from Raymond Vetter 2015-06-15 15:53:53 -07:00
Jamie Cameron
f1e2287b3a German translation updates from Raymond Vetter 2015-06-15 15:53:49 -07:00
Jamie Cameron
dfdacb3a26 Finished off zone creation 2015-06-14 19:17:58 -07:00
Jamie Cameron
9924f44c05 Button and script to delete a zone 2015-06-14 19:11:14 -07:00
Jamie Cameron
d055e86901 Form for adding a zone 2015-06-14 17:01:42 -07:00
Jamie Cameron
d9d94fd394 Use the new open-ports command 2015-06-14 16:01:32 -07:00
Jamie Cameron
d35cffade9 Add script to open ports on the command line 2015-06-14 14:23:40 -07:00
Jamie Cameron
cd6939bf8a Detect if firewalld is in use 2015-06-14 13:53:23 -07:00
Jamie Cameron
5672b61358 Script to update zone interfaces 2015-06-14 11:13:34 -07:00
Jamie Cameron
8b564f10e3 German translation updates from Raymond Vetter 2015-06-14 10:39:44 -07:00
Jamie Cameron
39b80ee1ec Function for updating a zone's interface 2015-06-13 17:22:10 -07:00
Jamie Cameron
7e1b9071e1 Logging script 2015-06-13 15:41:19 -07:00
Jamie Cameron
7930a03763 Show interfaces for zone 2015-06-12 20:42:06 -07:00
Jamie Cameron
ae23abc827 German translation updates from Raymond Vetter 2015-06-12 19:50:18 -07:00
Jamie Cameron
f71283ae40 Sometimes the ip command is used to add extra addresses http://virtualmin.com/node/37237 2015-06-10 23:00:50 -07:00
Jamie Cameron
0832cd40a1 Address and netmask could be on the same line http://virtualmin.com/node/37237 2015-06-10 22:57:25 -07:00
Jamie Cameron
aa4532ff1b Start and stop scripts 2015-06-09 22:55:11 -07:00
Jamie Cameron
adecd320f5 initial module changelog 2015-06-09 22:34:27 -07:00
Jamie Cameron
8ec0c144d2 Prepare module for inclusion in standard distribution 2015-06-09 22:32:37 -07:00
Jamie Cameron
b2620accf8 German translation updates from Raymond Vetter 2015-06-09 20:24:43 -07:00
Jamie Cameron
f2d77a7bee Button to apply saved rules 2015-06-08 22:50:34 -07:00
Jamie Cameron
f4bb5a843a CGI to delete firewalld rules 2015-06-08 22:38:01 -07:00
Jamie Cameron
5090c85338 German translation updates from Raymond Vetter 2015-06-08 15:23:41 -07:00
Jamie Cameron
f145fb02cf Script to enable or diosable at boot 2015-06-07 23:10:21 -07:00
Jamie Cameron
cdc89c352a Add module usability check script 2015-06-07 23:02:04 -07:00
Jamie Cameron
4c537d0fd8 Firewall service creation 2015-06-07 22:57:40 -07:00
Jamie Cameron
95a4c2c956 German translation updates from Raymond Vetter 2015-06-07 18:40:51 -07:00
Jamie Cameron
1a4d536351 German translation updates from Raymond Vetter 2015-06-07 18:40:50 -07:00
Jamie Cameron
4e4f82713e Handle zones with no ports 2015-06-07 16:36:47 -07:00
Jamie Cameron
6434f896dc Merge branch 'master' of git@github.com:webmin/webmin 2015-06-07 16:35:26 -07:00
Jamie Cameron
4a3dfb308b Functions for service management 2015-06-07 16:34:08 -07:00
Jamie Cameron
cb2eb0c95d Merge pull request #222 from stuchy3/master
Czech language update
2015-06-07 10:54:10 -07:00
Jan Štourač
b134e9e0d7 Added Czech translation for Gray framed theme 2015-06-07 13:33:48 +02:00
Jan Štourač
28b90e1b37 Added czech language for system-info 2015-06-07 13:24:21 +02:00
Jan Štourač
e9c0383a3c Czech language updated 2015-06-07 13:00:26 +02:00
Jamie Cameron
1118c2bb2f Scripts for saving, creating and deleting firewalld ports 2015-06-06 20:50:05 -07:00
Jamie Cameron
caea0eee60 Add refer checking to xmlrpc.cgi, while still allowing direct access 2015-06-06 10:26:37 -07:00
Jamie Cameron
573d39e146 Fix appending of version to package name https://github.com/webmin/webmin/issues/221 2015-06-06 10:16:03 -07:00
Jamie Cameron
3c41e0e816 Re-factor referer checking code to make it more readable 2015-06-06 07:19:24 -07:00
Jamie Cameron
eb950ff47d Generate new SHA2 key at install time 2015-06-05 20:48:34 -07:00
Jamie Cameron
c9bde07cfd API for listing services 2015-06-04 23:23:43 -07:00
Jamie Cameron
44a1b68426 UI for adding or editing a service 2015-06-04 23:23:15 -07:00
Jamie Cameron
d0ebb3783e Catalan update from Jaume Badiella 2015-06-04 19:29:32 -07:00
Jamie Cameron
f8a9353408 Catalan update from Jaume Badiella 2015-06-04 19:29:18 -07:00
Jamie Cameron
0eae027dbc German translation updates from Raymond Vetter 2015-06-04 19:27:08 -07:00
Jamie Cameron
278ec5cd76 Firewalld edit port page 2015-06-02 21:52:44 -07:00
Jamie Cameron
a6a20642fb Don't autoreply to spam https://sourceforge.net/p/webadmin/usermin-bugs/440/ 2015-06-02 19:48:26 -07:00
Jamie Cameron
7efe201a27 German translation updates from Raymond Vetter 2015-06-02 19:40:23 -07:00
Jamie Cameron
39bb0a681c No need to check deps on an upgrade 2015-06-01 22:55:01 -07:00
Jamie Cameron
2d896443eb Show zones and rules on the first page 2015-06-01 22:54:21 -07:00
Jamie Cameron
a6d1f74f1f German translation updates from Raymond Vetter 2015-05-31 14:12:32 -07:00
Jamie Cameron
8ab1cc4abc skeleton of firewalld module 2015-05-31 10:20:27 -07:00
Jamie Cameron
269bc80ec3 Postfix mail queue function can call error https://github.com/webmin/webmin/issues/218 2015-05-31 09:37:36 -07:00
Jamie Cameron
9871556169 remove un-necessary ports from link https://github.com/webmin/webmin/issues/217 2015-05-31 09:21:51 -07:00
Jamie Cameron
e3ef1b9fce Merge branch 'master' of git@github.com:webmin/webmin 2015-05-30 16:43:53 -07:00
Jamie Cameron
ad9bc2701d Also wrap icons in a div for use by authentic theme https://github.com/webmin/webmin/pull/216 2015-05-30 16:43:39 -07:00
Jamie Cameron
2468ea1001 Merge pull request #216 from qooob/patch-1
Important addition to make icons work with Authentic Theme
2015-05-30 16:41:55 -07:00
Ilia Rostovtsev
cef1b1332a Important addition to make icons work with Authentic Theme
Jamie, ok! It's very complicated to make things work in all possible situations. At the moment it doesn't work as in 90% of cases the certain rules are used. Those are that container for `&generate_icon` should be `<div class="row icons-row></div>`. In case it's done in funky way like in this module, I add extra class `inline-row` to make things work. For example, latest update 13.03 does great with style, that is used in Webmin Servers Index module. You can test it. Try using right mouse clicks for selects.

I strongly recommend, to try to recall all funky ways of using `&generate_icon` like in this module and add  `<div class="row icons-row></div>` wrapper.

It will not affect neither your nor Joe's themes.

Thanks!
2015-05-30 22:01:15 +03:00
Jamie Cameron
ed11ba25c6 fix expansion of IP range https://sourceforge.net/p/webadmin/bugs/4606/ 2015-05-29 17:26:07 -07:00
Jamie Cameron
efae515c1f Russian translations from 2015-05-28 22:13:17 -07:00
Jamie Cameron
a4412fcbe8 Handle case where no skip list is given https://sourceforge.net/p/webadmin/bugs/4609/ 2015-05-28 20:09:20 -07:00
Jamie Cameron
eba13b74c9 German translation updates from Raymond Vetter 2015-05-27 21:46:52 -07:00
Jamie Cameron
3548188c38 Mysqldump can print warnings even if it doesn't fail http://virtualmin.com/node/37195 2015-05-27 19:56:56 -07:00
Jamie Cameron
36968f5362 Add options to disable TLS 1.0, 1.1 and 1.2 in Usermin too https://sourceforge.net/p/webadmin/bugs/4590/ 2015-05-26 21:20:50 -07:00
Jamie Cameron
2b77e8f020 Add options to disable TLS 1.0, 1.1 and 1.2 https://sourceforge.net/p/webadmin/bugs/4590/ 2015-05-26 21:06:06 -07:00
Jamie Cameron
700b4f696e No / is needed 2015-05-26 18:04:01 -07:00
Jamie Cameron
bb24d89ddb Force through the upgrade even if there are missing dependencies 2015-05-25 14:39:44 -07:00
Jamie Cameron
f0c0efb411 Show a nicer message if no entries were found in /etc/inittab https://github.com/webmin/webmin/issues/211 2015-05-23 07:30:44 -07:00
Jamie Cameron
ea7d904d90 If the runlevel couldn't be detected any other way, assume 3 http://virtualmin.com/node/37100 2015-05-22 13:52:34 -07:00
Jamie Cameron
deed37b482 Chrome 43 throws and exception on this line https://github.com/webmin/webmin/issues/210 2015-05-21 17:30:07 -07:00
Jamie Cameron
5cd13920a8 Fix selection of current shared network https://sourceforge.net/p/webadmin/bugs/4601/ 2015-05-20 20:57:59 -07:00
Jamie Cameron
8227e56084 Tell boot systems like systemd that webmin's start script forks into the background 2015-05-19 21:57:20 -07:00
Jamie Cameron
57efdd9a28 use common function 2015-05-18 20:30:25 -07:00
Jamie Cameron
b36d0f955c Don't offer to upgrade when using bukkit 2015-05-18 20:29:46 -07:00
Jamie Cameron
5e5f6cd916 Re-factor jar getting code 2015-05-18 20:16:27 -07:00
Jamie Cameron
4e81ecb659 German translation updates from Raymond Vetter 2015-05-13 21:43:02 -07:00
Jamie Cameron
88679cff5a Fix perl warning https://github.com/webmin/webmin/issues/207 2015-05-12 14:42:15 -07:00
Jamie Cameron
a6901947c2 New version bump 2015-05-10 13:42:47 -07:00
Jamie Cameron
8912154c0b New Postfix version 2015-05-10 13:40:53 -07:00
Jamie Cameron
6b34d179bb changelog for pkgsrc support 2015-05-10 11:00:48 -07:00
Jamie Cameron
bb2f091a17 pkgsrc has no local install mode 2015-05-10 10:50:47 -07:00
Jamie Cameron
dfd337009f Translation function for pkgsrc package names 2015-05-10 10:41:07 -07:00
Jamie Cameron
554cba6eba MacOS is supported now, with pkgsrc 2015-05-10 10:28:46 -07:00
Jamie Cameron
9d3e0e85ba Correct version and description display for packages not installed yet 2015-05-10 10:25:29 -07:00
Jamie Cameron
7d670cc449 More work on MacOS pkgsrc support 2015-05-10 09:57:25 -07:00
Jamie Cameron
0cc0a893a2 Get list of files in a package on MacOS 2015-05-09 21:55:38 -07:00
Jamie Cameron
b7190b1927 Start of work on pkgsrc support 2015-05-09 15:36:55 -07:00
Jamie Cameron
68890d8f2b Remove from the distribution modules for ancient software 2015-05-07 16:50:00 -07:00
Jamie Cameron
03f4c9fd56 Dev version bump 2015-05-05 19:55:50 -07:00
Jamie Cameron
c813b1c068 Allow multiple comma-separated IPs 2015-05-05 18:42:38 -07:00
Jamie Cameron
aafb66e45c changelog for launchd support 2015-05-03 10:23:05 -07:00
Jamie Cameron
8f0d32b764 More changes needed to support launchd 2015-05-03 10:14:03 -07:00
Jamie Cameron
62bf3b6cd4 Change the usermin boot script slightly to work with launchd 2015-05-03 10:10:20 -07:00
Jamie Cameron
58a454dc23 Change the webmin boot script slightly to work with launchd 2015-05-03 10:08:10 -07:00
Jamie Cameron
5a74498b87 Mailcap module needs to access the user's config 2015-05-03 10:07:21 -07:00
Jamie Cameron
ac238e37d1 More work on launchd support for MacOS X 2015-05-02 15:33:36 -07:00
Jamie Cameron
9e4269ebae Add command line option to not fork 2015-05-02 15:09:53 -07:00
Jamie Cameron
dfb0db593d New Debian versions 2015-04-29 19:52:55 -07:00
Jamie Cameron
79e2bf69b4 Show at-boot setting 2015-04-28 21:34:52 -07:00
Jamie Cameron
c153fae3d8 Suppress warnings when gpg doesn't output anything http://virtualmin.com/node/36979 2015-04-28 20:57:18 -07:00
Jamie Cameron
c1105d0ac5 Add support for deleting launchd agents 2015-04-26 17:22:38 -07:00
Jamie Cameron
fdffa9ee42 Use consistent comment type 2015-04-26 16:52:34 -07:00
Jamie Cameron
cb008888bf Launchd action creation now working 2015-04-26 16:30:27 -07:00
Jamie Cameron
86ce05ec3b UI for adding a launchd agent 2015-04-26 15:35:31 -07:00
Jamie Cameron
a42fbc5bd0 Param for MAC address is actually hwaddress https://sourceforge.net/p/webadmin/bugs/4589/ 2015-04-26 15:28:09 -07:00
Jamie Cameron
441b9f1502 Show detailed CPU information on MacOS 2015-04-26 10:19:09 -07:00
Jamie Cameron
1e0100b424 Show memory usage in bytes too 2015-04-26 10:03:05 -07:00
Jamie Cameron
288a377e71 Collect RAM and swap usage on macos 2015-04-26 09:50:50 -07:00
Jamie Cameron
12e2aecbda Give credit for translations 2015-04-26 09:23:44 -07:00
Jamie Cameron
2d83ca6cdf Catalan update from Jaume Badiella 2015-04-26 09:23:16 -07:00
Jamie Cameron
f498f36bef Catalan update from Jaume Badiella 2015-04-26 09:23:04 -07:00
Jamie Cameron
2eb957fc04 German translation updates from Raymond Vetter 2015-04-26 09:21:06 -07:00
Jamie Cameron
9cff0de208 Correct function's documented return type 2015-04-25 22:00:29 -07:00
Jamie Cameron
4b2ba48e58 Work on launchd support 2015-04-25 22:00:07 -07:00
Jamie Cameron
d47ee41c32 Fix remote host to run command on after failure in the case where there are multiple hosts http://virtualmin.com/node/36948 2015-04-25 21:54:38 -07:00
Jamie Cameron
22f3d49e5c Show password DB type 2015-04-25 15:02:00 -07:00
Jamie Cameron
a10dd02a49 New Mint versions 2015-04-23 17:03:37 -07:00
Jamie Cameron
52196635a3 Use reload command by default to avoid cache re-read https://sourceforge.net/p/webadmin/bugs/4588/ 2015-04-21 14:52:10 -07:00
Jamie Cameron
59efd239ea Devel version bump 2015-04-17 12:39:51 -07:00
Jamie Cameron
1a1deef64a UNit names can have spaces or funny characters at the start 2015-04-16 19:04:25 -07:00
Jamie Cameron
132ea695bc UNit names can have spaces or funny characters at the start 2015-04-16 19:03:50 -07:00
Jamie Cameron
743d0d59ad Multi-part TXT records are not automatically joined by a space, so when creating an SPF record this has to be explicitly added 2015-04-15 21:19:52 -07:00
Jamie Cameron
7162dbaa8e Detect more IPsec variants 2015-04-15 18:47:25 -07:00
Jamie Cameron
c378e60ec7 Show process sizes using sensible units https://github.com/webmin/webmin/issues/202 2015-04-13 22:34:02 -07:00
Jamie Cameron
9612e05536 give credit for norwegian 2015-04-10 22:31:09 -07:00
Jamie Cameron
f38442bbae Sort users by login 2015-04-08 17:18:22 -07:00
Jamie Cameron
cf0ddafbe0 German translation updates from Raymond Vetter 2015-04-07 20:31:04 -07:00
Jamie Cameron
1727c9917d German translation updates from Raymond Vetter 2015-04-07 20:30:57 -07:00
Jamie Cameron
18d16d7639 Don't append the architecture un-necessarily, as this breaks upgrades that change it http://virtualmin.com/node/36740 2015-04-05 16:19:53 -07:00
Jamie Cameron
3d20f8c56e Jails can apparently have no actions http://virtualmin.com/node/36768 2015-04-05 14:45:13 -07:00
Jamie Cameron
d4264be5fd A max tick time of -1 means unlimited 2015-04-05 12:05:32 -07:00
Jamie Cameron
6d553a10ad Allow max ticks time to be edited 2015-04-05 12:02:40 -07:00
Jamie Cameron
5f4180cf13 Update docs to modern day 2015-04-02 21:08:27 -07:00
Jamie Cameron
4aedfdb006 Update docs to modern day 2015-04-02 21:07:28 -07:00
Jamie Cameron
a3658ff653 fix wording 2015-04-02 20:59:39 -07:00
Jamie Cameron
d040242a7e Also use yum updateinfo to get security updates 2015-04-02 19:12:50 -07:00
Jamie Cameron
019e5e15e6 Semicolon can be a comment character too 2015-04-02 16:57:38 -07:00
Jamie Cameron
2a8797c49c Merge pull request #199 from tandrup/httpOnly-cookies
Add httpOnly to cookies on login page. Solves #4565.
2015-04-01 21:03:44 -07:00
Jamie Cameron
ab1095e529 Disallow TRACE requests, which we don't even support 2015-04-01 16:54:38 -07:00
Mads Mætzke Tandrup
30168f57bb Add httpOnly to cookies on login page. Solves #4565.
Add httpOnly to pam_login and session_login to avoid security scans reporting false positives on cookies without httpOnly
2015-04-01 14:37:02 +02:00
Jamie Cameron
0a2eb1d520 --to-source can be followed by just a :port 2015-03-29 21:47:13 -07:00
Jamie Cameron
ec4f05ec5f Use correct permissions for MH format too 2015-03-29 18:09:18 -07:00
Jamie Cameron
7a9b4d0b2b Use correct permissions when moving email between users http://virtualmin.com/node/36696 2015-03-29 18:07:40 -07:00
Jamie Cameron
b7b6624ee8 Fix escaping of % in commands http://virtualmin.com/node/36673 2015-03-27 15:06:42 -07:00
Jamie Cameron
f455c24054 Make Net::SSLeay mandatory 2015-03-26 20:30:52 -07:00
Jamie Cameron
ee94c220da German translation updates from Raymond Vetter 2015-03-26 20:30:08 -07:00
Jamie Cameron
615f97f47e German translation updates from Raymond Vetter 2015-03-26 20:29:51 -07:00
Jamie Cameron
1ef26769b6 IPfilter live output can contain inet before 'from' http://virtualmin.com/node/36645 2015-03-26 17:22:29 -07:00
Jamie Cameron
04ed6406e7 Add separate command before/after blacklist refresh http://virtualmin.com/node/36643 2015-03-25 23:10:09 -07:00
Jamie Cameron
882dcb7384 Don't wrap regexps unexpectedly http://virtualmin.com/node/36656 2015-03-25 10:26:33 -07:00
Jamie Cameron
f29f13f817 Fix enabling of command block 2015-03-24 20:23:25 -07:00
Jamie Cameron
0a8abc529b German translation updates from Raymond Vetter 2015-03-23 20:22:53 -07:00
Jamie Cameron
72e2faa5b6 Dev version bump 2015-03-21 20:17:35 -07:00
Jamie Cameron
8291e1c98d Under NSLCD, scope and filter are separate directives 2015-03-21 20:09:06 -07:00
Jamie Cameron
df3fa20d6f Add button to restart LDAP client daemon, which is needed to apply settings 2015-03-21 18:01:08 -07:00
Jamie Cameron
4f532659b3 changelog for ldap fixes 2015-03-21 17:20:42 -07:00
Jamie Cameron
e1f086944d Permissions fix 2015-03-21 17:17:53 -07:00
Jamie Cameron
a13bce59e3 Fixes needed for CentOS 7 support 2015-03-21 17:17:39 -07:00
Jamie Cameron
ad46361cb0 for systemd services, the name may have .service appended 2015-03-21 17:11:19 -07:00
Jamie Cameron
fd5f09a816 Add Net::SSLeay as optional dependency to the Webmin RPM 2015-03-21 16:44:51 -07:00
Jamie Cameron
c38570cb9d In some cases, RPM mamay not list the file in the rpm --dump output if there are multiple hard links to it 2015-03-21 13:39:33 -07:00
Jamie Cameron
324732d948 Norwegian update from Stein-Aksel Basma 2015-03-20 15:45:13 -07:00
Jamie Cameron
78c5892c6a Handle different format for base directive in NSLCD http://virtualmin.com/node/36531 2015-03-18 21:53:55 -07:00
Jamie Cameron
a1e74e6659 Deal with long user/group names by requesting UIDs instead 2015-03-17 22:34:15 -07:00
Jamie Cameron
4caa56aa80 Deal with long user/group names by requesting UIDs instead 2015-03-17 22:33:31 -07:00
Jamie Cameron
95c494d9fc Handle un-formatted MAC addresses 2015-03-16 19:01:14 -07:00
Jamie Cameron
2dd92dc2b7 Allow default match mode to be configured 2015-03-16 18:59:29 -07:00
Jamie Cameron
f5580c4046 Exclude release scripts from modules 2015-03-15 11:49:39 -07:00
355 changed files with 12084 additions and 4835 deletions

View File

@@ -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
View File

@@ -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

View File

@@ -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>

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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];
}

View File

@@ -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";

View File

@@ -186,6 +186,7 @@ core_edefchar=Fehlender oder ung&#252;ltiger Zeichensatz f&#252;r die Dokumente
core_edefmime=Der Standard MIME-Typ muss in der Form type/subtype sein
core_edefport=Ung&#252;ltiger Standardport
core_edirlog=Fehlerprotokolldatei ist nicht im erlaubten Verzeichnis
core_eduplisten=Lausche Adresse $1 zweimal aufgef&#252;hrt
core_eerror='$1' kein g&#252;ltiger Fehlercode
core_eerrordir=Das Verzeichnis f&#252;r das Error-Logfile existiert nicht
core_efilelog=Ung&#252;ltige Fehlerprotokolldatei

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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=Открытые...

File diff suppressed because it is too large Load Diff

View File

@@ -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...

View File

@@ -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 &#229; 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&#248;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 ..

View File

@@ -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&#252;r eine oder viele Systeme.
longdesc_de=Konfiguriert Bacula um Sicherungen zu erstellen und manuell oder nach Plan wiederherzustellen, f&#252;r eine oder viele Systeme.

View File

@@ -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'});
}

View File

@@ -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" : "",
"&lt;".$text{'acl_toplevel'}."&gt;";
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;

View File

@@ -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;

View File

@@ -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'});
}

View File

@@ -22,3 +22,4 @@ delegation=1
slaves=1
findfree=1
dnssec=1
inviews=*

View File

@@ -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

View File

@@ -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?

View File

@@ -749,6 +749,7 @@ local $rvword;
while(@rv) {
my $w = shift(@rv);
if (length($rvword)+length($w)+1 >= 255) {
$rvword .= " ";
push(@rvwords, $rvword);
$rvword = "";
}

View File

@@ -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&#228;hlten Verzeichnissen.

View File

@@ -11,7 +11,9 @@ cfd_ecmd=Die Configuration Engine daemon Befehl $1 wurde auf Ihrem System nicht
cfd_none=Keine Einstellungen f&#252;r die Configuration Engine Daemon wurde noch erstellt.
cfd_return=D&#228;mon Optionen
cfd_start=Starte Configuration Engine Daemon
cfd_startdesc=Klicke auf diese Schaltfl&#228;che, um den Configuration Engine Daemon mit den Einstellungen oben zu starten. Dies erm&#246;glicht es andere Hosts die Konfiguration auf diesem Server auszuf&#252;hren, und den geplanten Ablauf der Konfiguration (wenn aktiviert) zu starten.
cfd_stop=Stoppe Configuration Engine Daemon
cfd_stopdesc=Klicke auf diese Schaltfl&#228;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&#252;hren der Konfiguration.
cfd_title=Configuration Engine Daemon
cluster_failed=Fehlgeschlagen CFengine auf $1 : $2 auszuf&#252;hren
cluster_header=F&#252;hre Konfigurations-Engine auf allen Hosts im Cluster aus ..
@@ -28,6 +30,7 @@ edit_cmdowner=Ausf&#252;hren als Benutzer
edit_cmdtimeout=Timeout
edit_controlall=Alle Adressen
edit_controlallow=Erlaube Verbindungen von
edit_controlauto=Befehl, um nach Zeitplan auszuf&#252;hren
edit_controldef=Globale Definitionen
edit_controldeny=Verbiete Verbindungen von
edit_controldom=Dom&#228;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 &#252;ber alle Dateien
edit_files_warndirs=Warne &#252;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 &#228;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&#252;hre Befehl als Gruppe aus
@@ -127,6 +133,7 @@ edit_procmat0=Warne niemals
edit_procmat1=Genau
edit_procmat2=Kleiner als
edit_procmat3=Gr&#246;&#223;er als
edit_procnew=F&#252;gen einen neuen treffenden Prozess-Muster hinzu
edit_procowner=F&#252;hre Befehl als Benutzer aus
edit_procrestart=Befehl, welcher nach dem killen ausgef&#252;hlt werden soll
edit_procsig=Sende Signal zum Prozess
@@ -140,6 +147,7 @@ edit_tidyage=Altersbeschr&#228;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&#228;ubern
edit_tidymtime=&#196;nderungszeit
edit_tidynew=F&#252;ge ein Verzeichnis zum s&#228;ubern hinzu
@@ -150,6 +158,7 @@ edit_tidysize1=Leere Dateien
edit_tidysize2=Dateien gr&#246;&#223;er als
edit_title=Editiere Einstellungen f&#252;r Klasse
host_cfg=Aktuelle CFengine Konfiguration von $1
host_delete=L&#246;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&#252;hren, wurden bisher de
hosts_opts=Optionen f&#252;r die Ausf&#252;hrung von Konfigurationen
hosts_return=Serverliste
hosts_run=F&#252;hre Configuration Engine aus
hosts_rundesc=Klicke auf diese Schaltfl&#228;che, um die Configuration Engine auf allen oben aufgef&#252;hrten Server auszuf&#252;hren, mit ihren aktuellen Konfigurationen.
hosts_title=Webmin CFengine Cluster
index_active=Aktiv?
index_add=F&#252;ge Aktion des Typs hinzu:
index_admit=Erlaube Verzeichnis $1
index_admit2=Erlaube $1 Verzeichnisse
index_cadd=Klasse hinzuf&#252;gen..
index_cfrun=F&#252;hre Befehl $1 aus
index_classes=Anwenden zu Klassen
index_control=Aktion $1 ausf&#252;hren
index_control2=$1 Aktionen ausf&#252;hren
index_copy=Kopiere $1 nach $2
@@ -200,6 +212,8 @@ index_maybe=Vielleicht
index_misc=H&#228;nge $1 ein
index_misc2=H&#228;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&#252;fe Dateisystem $1
index_required2=Pr&#252;fe $1 Dateisysteme
index_return=Aktionsliste
@@ -210,9 +224,14 @@ index_section=Aktionstyp
index_shellcommands=F&#252;hre Befehl $1 aus
index_shellcommands2=F&#252;hre $1 Befehle aus
index_tidy=L&#246;sche Dateien in $1
index_tidy2=L&#246;sche Dateien in $1 Verzeichnissen
index_title=Configuration Engine
index_version=CFengine Version $1
log_create_class=Klasse in Aktion $1 hinzugef&#252;gt
log_create_section=Klasse in Aktion $1 erstellt
log_delete_class=Klasse in Aktion $1 gel&#246;scht
log_delete_section=Sektion $1 gel&#246;scht
log_modify_class=Klasse in Aktion $1 modifiziert
log_prun=Host Konfigurationen ausgef&#252;hrt
log_push=Entfernte Konfigurations-Hosts ge&#228;ndert
log_run=Konfigurations-Automat ausgef&#252;hrt
@@ -276,7 +295,9 @@ save_eeditfile=Fehlende Datei zum Editieren $1
save_eeditscript=Fehlendes Editor-Skript f&#252;r Datei $1
save_efilesacl=Fehlender oder ung&#252;ltiger ACL-Namen f&#252;r Dateien im Verzeichnis $1
save_efilesdir=Fehlendes Verzeichnis $1
save_efilesexclude=Fehlendes oder ung&#252;ltiges Muster f&#252;r Dateien, nicht im Verzeichnis $1 zu &#252;berpr&#252;fen
save_efilesgroup=Fehlende oder ung&#252;ltige Gruppe f&#252;r Dateien im Verzeichnis $1
save_efilesinclude=Fehlendes oder ung&#252;ltiges Muster f&#252;r Dateien im Verzeichnis $1 zu &#252;berpr&#252;fen
save_efilesmode=Fehlende oder ung&#252;ltige Berechtigungen f&#252;r Dateien im Verzeichnis $1
save_efilesowner=Fehlender oder ung&#252;ltiger Eigent&#252;mer f&#252;r Dateien im Verzeichnis $1
save_efilesrec=Fehlende oder ung&#252;ltige Integer Rekursionsebene f&#252;r Dateien im Verzeichnis $1

View File

@@ -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>­ 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

View File

@@ -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

View File

@@ -20,7 +20,7 @@ index_dlang=spr&#229;ket modulene vises i
index_dpass=passordet brukt til &#229; logge inn p&#229;
index_dtheme=temaet som kontrollerer Webmins utseende
index_lang=Webmin UI spr&#229;k
index_langglobal=Globalt spr&#229;k ($1)
index_langglobal2=Globalt spr&#229;k .. $1 ($2)
index_langset=Personlig valg
index_ok=Lagre endringer
index_overlay=Tema overstyring

View File

@@ -2,6 +2,7 @@ __norefs=1
index_all=&lt;Wszystkie hosty&gt;
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

View File

@@ -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=&lt;wszystkie hosty&gt;
edit_arch=Architektura
edit_class=Klasa
edit_desc=Opis
edit_details=Szczegóły pakietu z $1
edit_donthave=&lt;hosts that don't have it&gt;
edit_group=Użytkownicy z $1
edit_have=&lt;hosty, które go posiadają&gt;
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

View File

@@ -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 &#252;ber mehrere Server aus einer Quelle.
longdesc_pl=Instaluj pakiety RPM, debian i Solaris na wielu serwerach z jednego ¼ród³a.

View File

@@ -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();

View File

@@ -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

View File

@@ -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";

View 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);
&copy_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);
}

View File

@@ -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));

View File

@@ -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);

View File

@@ -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&#228;chen zum Ausf&#252;hren von h&#228;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.

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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, [ "", "&lt;$text{'esub_none'}&gt;", ( $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, [ "", "&lt;$text{'esub_none'}&gt;" ]);
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 {

View File

@@ -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)) {

View File

@@ -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'}) );

View File

@@ -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>

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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",

View 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'}) {

View File

@@ -73,6 +73,7 @@ my $protocol = &find_value("protocol", $jail);
print &ui_table_row($text{'jail_defprotocol'},
&ui_select("protocol", $protocol,
[ [ '', "&lt;$text{'jail_none'}&gt;" ],
[ 'all', $text{'jail_allprotocol'} ],
[ 'tcp', 'TCP' ],
[ 'udp', 'UDP' ],
[ 'icmp', 'ICMP' ] ]));

View File

@@ -116,6 +116,7 @@ my @rv;
while(<$fh>) {
s/\r|\n//g;
s/^\s*#.*$//;
s/^\s;.*$//;
if (/^\[([^\]]+)\]/) {
# Start of a section
$sect = { 'name' => $1,

View File

@@ -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&#252;fe auf Log-Datei Updates, welche

View File

@@ -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

View File

@@ -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);

View File

@@ -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";

View File

@@ -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));
}

View File

@@ -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>.

View File

@@ -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 &#228;ndert Berechtigungen f&#252;r Dateien und Verzeichnisse auf Ihrem System mit einem Windows-&#228;hnliche Dateimanager.

View File

@@ -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
View 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-&#45;&#45;opcja komentarzy
cluster_mode=Aktualizuj klaster serwerów,1,0-Zawsze&#44; 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

View File

@@ -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;

View File

@@ -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

View 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";
}
}

View File

@@ -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

View File

@@ -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&#246;schen m&#246;chten?
clear_title=Regeln leeren
cluster_add=F&#252;ge Server hinzu
cluster_delete=Ausgew&#228;hltes l&#246;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&#246;schen
delete_ok=L&#246;sche jetzt
delete_rusure=Sind Sie sicher, dass Sie die Kette $1 l&#246;schen m&#246;chten? $2 Regeln werden in ihr gel&#246;scht.
delete_title=L&#246;sche Regel
desc_always=Immer
desc_and=und
@@ -170,6 +172,7 @@ index_auto5=Blockiere alles ausgenommen Ports die f&#252;r virtuelles Hosting be
index_bootup=Aktiviere beim Booten
index_bootupdesc=&#196;ndert die Option, um zu kontrollieren, ob Ihre Firewall beim Booten aktiviert ist oder nicht.
index_cclear=L&#246;sche alle Regeln
index_cdelete=L&#246;sche Kette
index_cdeletesel=L&#246;sches ausgew&#228;hltes
index_chain=Regel $1
index_chain_forward=Weitergeleitete Pakete (FORWARD) - Gilt nur f&#252;r Pakete, die dieser Host weitergeleitet hat
@@ -182,11 +185,13 @@ index_cluster=Cluster Server
index_clusterdesc=Klicken Sie auf diese Schaltfl&#228;che, um zus&#228;tzliche Webmin-Server einzurichten, mit denen die Firewall-Konfiguration automatisch kopiert werden.
index_cmovesel=Verschiebe ausgew&#228;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&#246;tigt diesen Befehl um IPtables zu konfigurieren.
index_editing=Regel Datei $1
index_ekernel=Ein Fehler ist beim &#220;berpr&#252;fen Ihrer aktuellen IPtables-Konfiguration aufgetreten : $1 Dies k&#246;nnte darauf hindeuten, dass Ihr Kernel IPtables nicht unterst&#252;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&#228;che unten, um die bestehenden Regeln zu einer Sicherungsdatei zu konvertieren und anschlie&#223;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&#252;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&#252;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&#246;ffnet
log_rename_chain=Kette $1 in Tabelle $2 umbenannt
log_setup=Firewall eingerichtet
log_unapply=Konfiguration zur&#252;ckgesetzt
move_chain=Aktuelle &#196;nderung
move_count=Regeln ausgew&#228;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&#252;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&#252;ckzuf&#252;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

View File

@@ -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
View 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

View File

@@ -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&#246;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.

View File

@@ -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
View 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
View 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
View File

@@ -0,0 +1,2 @@
firewall_cmd=firewall-cmd
init_name=firewalld

2
firewalld/config.info Normal file
View 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
View 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
View File

@@ -0,0 +1,2 @@
firewall_cmd=Voller Pfad zum firewall-cmd Programm,0
init_name=FirewallD init&#45;script&#45;Name,0

77
firewalld/create_zone.cgi Executable file
View 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
View 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
View 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
View 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
View 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
View 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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

147
firewalld/index.cgi Executable file
View 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'})," &nbsp; ",
&ui_submit($text{'index_zonedef'}, "defzone")," ",
&ui_submit($text{'index_zonedel'}, "delzone")," &nbsp; ",
&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
View 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
View 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
View 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&#228;hlt!
delete_err=Fehlgeschlagen Regel zu l&#246;schen
delzone_edefault=Die Standardzone kann nicht entfernt werden
delzone_err=Fehlgeschlagen Zone zu l&#246;schen
delzone_rusure=Sind Sie sich sicher die Zone $1, welche $2 Ports und $3 Dienste enth&#228;lt, zu l&#246;schen?
delzone_title=L&#246;sche Zone
index_apply=Konfiguration anwenden
index_applydesc=Klicken auf diese Schaltfl&#228;che, um die Firewall-Konfiguration, welche oben aufgef&#252;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=&#196;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&#246;sche ausgew&#228;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&#252;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&#252;hrt sind, in allen Zonen. Alle aktiven Regeln, die nicht dauerhaft erstellt wurden, werden ersetzt.
index_return=Liste an Zonen
index_sadd=F&#252;ge erlaubten Dienst hinzu.
index_start=Starte FirewallD
index_startdesc=Starte den FirewallD Server und wende alle oben aufgef&#252;hrten Regeln an.
index_stop=Stoppe FirewallD
index_stopdesc=Fahre den FirewallD Server herunter und entferne alle oben aufgef&#252;hrten Regeln.
index_title=FirewallD
index_tport=Port
index_tservice=Dienst
index_type=Regel-Typ
index_zone=Zeige Regel in Zone:
index_zoneadd=F&#252;ge Zone hinzu..
index_zonedef=Setze Standard
index_zonedel=L&#246;sche Zone
index_zoneok=&#196;ndern
log_bootdown=FirewallD beim Booten deaktiviert
log_bootup=FirewallD beim Booten aktiviert
log_create_port=Erlaubter Port $1 hinzugef&#252;gt
log_create_serv=Erlaubter Dienst $1 hinzugef&#252;gt
log_create_zone=Zone $1 erstellt
log_default_zone=Setze Zone $1 zum Standard
log_delete_port=Erlaubter Dienst $1 gel&#246;scht
log_delete_rules=$1 erlaubte Ports gel&#246;scht
log_delete_serv=Erlaubter Dienst $1 gel&#246;scht
log_delete_zone=Zone $1 gel&#246;scht
log_ifaces_zone=Schnittstelle f&#252;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&#252;ge erlaubten Port hinzu
port_edit=Editiere erlaubten Port
port_eport=Fehlender oder ung&#252;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&#252;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&#252;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&#252;r das virtuelle Hosting verwendet werden
zone_name=Zonen-Namen
zone_title=Erstelle Zone

98
firewalld/lang/en Normal file
View 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
View 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, &params)
# 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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