1
Работа с сетью / Re: Управление прокси-сервером через терминал
« Последний ответ от rits Сегодня в 10:01:42 »Хотя бы просто включать и выключать его.для SQUID (соответственным образом настроив)
Код: [Выделить]
# Для работы в прозрачном режиме, без указания порта в браузере, необходимо настроить iptables
touch /etc/rc.d/rc-firewall
echo '#!/bin/bash' > /etc/rc.d/rc-firewall
chmod +x /etc/rc.d/rc-firewall
nano -b /etc/rc.d/rc-firewall
# Вставить в файл rc-firewall скрипт и можно его запускать при старте системы:
##################################
# Локальная подсеть
LAN_RANGE="192.168.3.0/24"
# Сетевая карта шлюз смотрящая в локальную сеть
LAN="ether1"
# Правила для таблицы nat, для перенаправления портов 80 > 3128, 443 > 3129
iptables -t nat -A PREROUTING -i $LAN -s $LAN_RANGE -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i $LAN -s $LAN_RANGE -p tcp -m multiport --dport 443 -j REDIRECT --to-port 3129
##################################
Создание сервисного файла:
Сначала создайте файл с именем rc-firewall.service в директории /etc/systemd/system/:
# nano /etc/systemd/system/rc-firewall.service
Заполнение сервисного файла:
Вставьте в него следующий код:
[Unit]
Description=Custom Firewall Rules
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/bash -c "iptables -t nat -A PREROUTING -i ether0 -s 192.168.3.0/24 -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128; iptables -t nat -A PREROUTING -i ether0 -s 192.168.3.0/24 -p tcp -m multiport --dport 443 -j REDIRECT --to-port 3129"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
[Unit]:
Description: Краткое описание сервиса.
After=network.target: Обеспечивает выполнение скрипта после старта сетевых служб.
[Service]:
Type=oneshot: Скрипт выполняется один раз, и затем сервис завершает работу.
ExecStart=… : Указывает команду для запуска скрипта.
RemainAfterExit=yes: Указывает, что сервис должен считаться активным даже после завершения выполнения команды.
[Install]:
WantedBy=multi-user.target: Определяет, что сервис должен запускаться при старте системы в многопользовательском режиме.
Активирование и управление сервисом:
После того как вы создали и сохранили файл, выполните следующие команды:
# systemctl daemon-reload # Перезагрузить конфигурацию systemd
# systemctl enable rc-firewall.service # Включить сервис при старте системы
# systemctl start rc-firewall.service # Запустить сервис вручную
# systemctl status rc-firewall.service # Проверить статус сервиса
# Смотрим изменения
iptables -t nat -n -v -L --line-numbers
iptables -n -v -L --line-numbers
# Удаление правил
iptables -t nat -D PREROUTING 1
iptables -t nat -F PREROUTING - очистить все правила в PREROUTING
Т.е. запускаем сервис или скрипт (прокси постоянно включен) и весь трафик пошёл через прокси, если в терминале выполнить "iptables -t nat -F PREROUTING", то трафик пошел напрямую. И не надо ни какие ПО настраивать, все что использует http, https, будет заворачиваться на прокси с помощью iptables.Кстати, а в браузере включено, использование системного прокси? Приложениям плевать, на /etc/sysconfig/network, там лишь подсказка для вопрошающих через что ходить.