vsftpd, не отвечающий на СПИСОК

Раздражаясь из-за IE для того, чтобы не иметь быстрый и простой способ выключить настройки прокси, этот вопрос вдохновил меня писать этот файл PAC в PHP.

Это определяет, выполнен ли запрос на файл от внутренне (в этом случае, используйте прокси-сервер), или внешне: пойдите прямые. Возможно, кто-то может скорректировать его для их собственных потребностей.

<?php
    $proxy = "192.168.0.x";
    $port  = "8080";

    header ("Content-type: application/x-ns-proxy-autoconfig");
    header ("Date: " . gmdate('D, d M Y H:i:s \G\M\T', time ()));
    header ("Last-Modified: " . gmdate('D, d M Y H:i:s \G\M\T', time ()));
    header ("Expires: " . gmdate('D, d M Y H:i:s \G\M\T', time () + 60 * 30));

    echo "// Request from: " . $_SERVER ['REMOTE_ADDR'] . "\n";

    if (substr ($_SERVER ['REMOTE_ADDR'], 0, 8) == "192.168.")
    {
?>
// We're inside the firewall
var external = false;
<?php
    }
    else
    {
?>
// We're outside the firewall
var external = true;
<?php
    }
?>

// Default connection
var direct = "DIRECT";

// Alternate Proxy Server
var proxy = "PROXY <?php echo $proxy; ?>:<?php echo $port; ?>";

//
// Proxy Logic
//

function FindProxyForURL(url, host)
{
    if (external || isPlainHostName(host) || shExpMatch(host, "192.168.*") || (dnsDomainIs(host, ".example.com")) && !localHostOrDomainIs(host, "www.example.com") || dnsDomainIs (host, ".example2.com"))
    {
        return direct;
    }
    else
    {
        return proxy;
    }
}

Я теперь скорректировал свои настройки Group Policy так, чтобы все браузеры указали на этот файл, который расположен на веб-сервере в брандмауэре. Теперь, если ноутбуки пойдут удаленные, то их файл прокси изменится автоматически без потребности реконфигурировать установку браузера прокси.

Править: обновленный для соответствия локальным хостам IP-адреса также...

1
задан 17 March 2016 в 21:44
3 ответа

Согласитесь с Luke404. Проверьте, что Вашему vsftpd.conf настроили следующие записи, и Ваш брандмауэр позволяет pasv_min, и pasv_max диапазоны портов (10000 - 100010 просто пример). Не забудьте перезапускать сервис, если изменения внесены в conf файл.


    pasv_enable=YES
    pasv_min_port=10000
    pasv_max_port=10010
    pasv_address=[Public IP address of your server]
4
ответ дан 3 December 2019 в 16:57

Вы используете режим PASV, таким образом, Ваш клиент попытается соединиться на "случайном" порте с сервером для передачи данных, это включает обе передачи файлов и списки каталогов.

Самая вероятная причина это не работает, состоит в том, что соединение TCP PASV для передачи данных не может быть установлено, обычно по одной из этих причин:

  • брандмауэр на стороне клиента, блокирующей исходящие соединения
  • брандмауэр на стороне сервера, блокирующей входящие соединения на высоких портах
  • сервер позади NAT только со статическими портами ftp 21,22 переданных и никакая проверка пакетов для с сохранением информации передачи более высоких портов
2
ответ дан 3 December 2019 в 16:57

Я решил эту же проблему

Решил это, редактируя конфигурацию /etc/sysconfig/iptables-config

в начале файла, изменил этот параметр: IPTABLES_MODULES

# Load additional iptables modules (nat helpers)
#   Default: -none-
# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
# are loaded after the firewall rules are applied. Options for the helpers are
# stored in /etc/modprobe.conf.
IPTABLES_MODULES="ip_conntrack_ftp"

После перезапуска iptables мог перечислить файлы в FileZilla. Надеюсь, это поможет.

0
ответ дан 3 December 2019 в 16:57

Теги

Похожие вопросы