GNU wget — это инструмент командной строки для неинтерактивной загрузки файлов. Он не интерактивен, поскольку может выполняться в фоновом режиме, когда пользователь не вошел в систему. Это отличная гибкость с wget, так как большинство веб-браузеров требуют, чтобы пользователь вошел в систему во время выполнения любой задачи. Он может работать с протоколами HTTP, HTTPS и FTP, а также поддерживает загрузку файлов через HTTP-прокси.
Команда Wget аналогична команде curl и может быть установлена в Linux/Unix, Mac OS, Windows. Если задача загрузки зависла на полпути, вы можете возобновить ее с того места, где она была прервана.
В этой статье мы рассмотрим команду wget и узнаем, как использовать ее с прокси-сервером Squid.
wget — очень простой инструмент. При использовании без каких-либо параметров wget будет извлекать ресурсы по указанному URL-адресу и загружать их в текущий рабочий каталог. В качестве примера посмотрите на приведенный ниже пример:
$ wget https://tldp.org/LDP/intro-linux/intro-linux.pdf
Приведенный выше файл загружается в каталог, из которого использовалась команда wget.
Теперь давайте обратимся к нашей основной теме сегодня: настроить wget с прокси. Прокси-сервер имеет много преимуществ, из которых безопасность является главной задачей. В этом руководстве мы будем использовать прокси-сервер Squid, который уже настроен для нашей сети. Вот конфигурация Squid в нашем случае, измените ее под свои нужды:
Шаг 1. Мы установили Squid на нашу машину с Kali Linux с IP-адресом 192.168.186.161 . Если вы еще не установили squid, вы можете сделать это, просто выполнив команду:
$ sudo apt install squid
Шаг 2. Убедитесь, что Squid запущен с помощью команды:
$ sudo systemctl status squid
Шаг 3. Теперь измените конфигурацию Squid в соответствии с вашей сетью. Мы настроили Squid, чтобы разрешить устройствам в нашей сети использовать squid. Для этого можно просто открыть файл конфигурации:
$ sudo nano /etc/squid/squid.conf
и добавьте строку «acl localnet src» вместе с IP-адресом или сетевым адресом, для которого вы хотите разрешить доступ. Вот на картинке ниже видно, что мы разрешили нашей сети 192.168.186.1/24
Кроме того, найдите и установите значение “http_access” на “allow all”.
Наконец, перезапустите сервер Squid с помощью:
$ sudo systemctl restart squid
Хорошо, этого достаточно для настройки Squid. Теперь мы перейдем к настройке нашего клиента, из которого мы будем запускать «wget».
Шаг 4. На этом шаге начинается наша основная работа по настройке wget. Мы выбрали другую машину в нашей сети. Это наша машина Ubuntu 20.04 с IP 192.168.186.150 . Теперь откройте здесь терминал и откройте файл конфигурации wget:
$ sudo nano /etc/wgetrc
И найдите три строки:
#https_proxy = http://proxy.yoyodyne.com:18023/ #http_proxy = http://proxy.yoyodyne.com:18023/ #ftp_proxy = http://proxy.yoyodyne.com:18023/
Шаг 5. Теперь раскомментируйте строку, которую вы хотите использовать для своего прокси. В нашем случае мы используем только https-прокси, поэтому настроим его в следующем формате:
https_proxy = Proxy_server_address:proxy_port
В нашем случае это выглядит так:
https_proxy = http://192.168.186.161:3128/
Шаг 6. После изменения файла wgetrc давайте перейдем к проверке, работает ли наша конфигурация. Давайте снова загрузим файл с помощью wget:
$ wget https://tldp.org/LDP/intro-linux/intro-linux.pdf
На этот раз мы видим, что wget использует прокси-соединение для подключения к серверу.
В этом разделе мы настроим wget для использования аутентификации Squid. Если мы не передадим учетные данные, wget не будет загружать ресурсы. Давай сделаем это сейчас.
Шаг 1. Установите следующий пакет:
$ sudo apt install apache2-utils
Шаг 2. Создайте файл passwd в каталоге ‘/etc/squid/’
$ sudo touch /etc/squid/passwd
Установите владельца этого файла прокси пользователя Squid:
$ sudo chown proxy /etc/squid/passwd
Шаг 3. Теперь мы добавим нового пользователя «newuser» в Squid, чьи учетные данные будут использоваться для аутентификации:
$ sudo htpasswd /etc/squid/passwd newuser
Приведенная выше команда попросит ввести пароль для пользователя «newuser».
Шаг 4. Откройте конфигурационный файл Squid:
$ sudo nano /etc/squid/squid.conf
Шаг 5. Теперь найдите строку, содержащую строку «auth_param basic program», и приведите ее к следующему виду:
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd auth_param basic children 5 auth_param basic realm Squid Basic Authentication auth_param basic credentialsttl 2 hours acl auth_users proxy_auth REQUIRED
Если вы не найдете ни одной из строк, то просто добавьте их.
Шаг 6. Также добавьте следующую строку:
http_access allow auth_users
И ниже строки выше добавьте или измените “http_access allow all” на “http_access deny all”.
Шаг 7. Наконец, перезапустите службу squid:
$ sudo systemctl restart squid
Теперь сначала попробуйте запустить wget без учетных данных пользователя:
$ wget https://tldp.org/LDP/intro-linux/intro-linux.pdf
На этот раз он выдает ошибку, требующую аутентификации, как: “Proxy tunneling failed: Proxy Authentication RequiredUnable to establish SSL connection.”
Теперь запустите команду wget с учетными данными пользователя, которого мы только что добавили на шаге 3:
$ wget --proxy-user=newuser --proxy-password=123 https://tldp.org/LDP/intro-linux/intro-linux.pdf
Круто, на этот раз команда wget работает как charm.
На этом наша демонстрация настройки wget с прокси-сервером с проверкой подлинности и без него завершена. Надеюсь, вы узнали слишком много нового в этой статье. Следует быть осторожным с тем, что иногда конфигурация пакетов может различаться для разных дистрибутивов. Например, у Squid может быть немного другой файл конфигурации в Kali Linux и Ubuntu. В таких случаях файл конфигурации следует изменить с умом.