предотвращение петли переадресации сквида с IPtables

Если это - все еще проблема, я нашел, что следование наряду с инструкцией по установке Диспетчера очень сбивает с толку. И Ваш DNS и dhcp ключи должны быть тем же, тогда как в инструкции по установке это показывает два различных способа настроить ключи между DNS и dhcp.

Это - то, что наконец работало на меня: выполненный: ddns-confgen-k диспетчер-a hmac-md5

Это производит вывод, который похож на это:

 key "foreman" {
         algorithm hmac-md5;
         secret "GGd1oNCxaKsh8HA84sP1Ug=="; };

Помещенный этот блок текста в/etc/rndc.key

Теперь необходимо обновить конфигурации демона:
/etc/named.conf
/etc/zones.conf
/etc/dhcp/dhcpd.conf

/etc/named.conf:
Добавьте:

include "/etc/rndc.key";
controls  {
        inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "foreman"; };
};

Это говорит BIND читать ключ, названный "диспетчером" из/etc/rndc.key и позволять ключу, названному "диспетчером" соединяться с портом управления на 953, чтобы сделать обновления ddns.

Теперь, В [1 134]/etc/zones.conf, это от моего примера, я использую ".local" в качестве своего домена и 172.16.1.0/24 как моя сеть. Корректируйтесь соответственно.

zone "1.16.172.in-addr.arpa" {
    type master;
    file "/var/named/dynamic/db.1.16.172.in-addr.arpa";
    update-policy {
            grant foreman zonesub ANY;
    };
};
zone "local" {
    type master;
    file "/var/named/dynamic/db.local";
    update-policy {
            grant foreman zonesub ANY;
    };
};

важная часть:

update-policy {
                grant foreman zonesub ANY;
        };

Это говорит BIND, что ключевому диспетчеру разрешают обновить/добавить любую из записей в этих зонах.

Наконец, и это - то, что испортило меня, потому что руководство по установке использует другой синтаксис для сервера DHCP: /etc/dhcp/dhcpd.conf Добавьте:

omapi-port 7911;
key foreman {
algorithm HMAC-MD5;
secret "GGd1oNCxaKsh8HA84sP1Ug==";
};
omapi-key foreman;

Теперь Вы шли дальше к файлам конфигурации прокси диспетчером:
/etc/foreman-proxy/settings.d/dns.yml
/etc/foreman-proxy/settings.d/dhcp.yml


Содержание: /etc/foreman-proxy/settings.d/dns.yml

---
# DNS management
:enabled: true

# valid providers:
#   dnscmd (Microsoft Windows native implementation)
#   nsupdate
#   nsupdate_gss (for GSS-TSIG support)
#   virsh (simple implementation for libvirt)

:dns_provider: nsupdate
:dns_key: /etc/rndc.key

# use this setting if you are managing a dns server which is not localhost though this proxy
:dns_server: 127.0.0.1
# use this setting if you want to override default TTL setting (86400)
:dns_ttl: 86400

Содержание: /etc/foreman-proxy/settings.d/dhcp.yml

---
# Enable DHCP management
:enabled: true
# valid vendors:
#   - isc
#   - native_ms (Microsoft native implementation)
#   - virsh (simple implementation for libvirt)
:dhcp_vendor: isc
:dhcp_config: /etc/dhcp/dhcpd.conf
:dhcp_leases: /var/lib/dhcpd/dhcpd.leases
:dhcp_key_name: foreman
:dhcp_key_secret: GGd1oNCxaKsh8HA84sP1Ug==

По любой причине, настраивающей обоих с различными ключами, продолжал вызывать проблемы для меня. Это наконец зафиксировало его. Надежда, которая помогает.

, О, и как к вашему сведению те файлы /etc/rndc.key,/etc/dhcp/dhcpd.conf,/var/lib/dhcpd/dhcpd.leases должен быть читаемым прокси диспетчера, я выполнил это путем добавления прокси диспетчера к dhcp и назвал группы:

usermod -a -G dhcpd foreman-proxy
usermod -a -G named foreman-proxy

ls -l /etc/named.conf /etc/zones.conf /etc/rndc.key /etc/dhcp/dhcpd.conf /var/lib/dhcpd/dhcpd.leases
-rw-r--r--. 1 root  root   787 Apr 10 14:56 /etc/dhcp/dhcpd.conf
-rw-r-----. 1 root  named  275 Apr 10 14:45 /etc/named.conf
-rw-r-----. 1 root  named   77 Apr 10 14:41 /etc/rndc.key
-rw-r-----. 1 root  named  316 Apr 10 12:40 /etc/zones.conf
-rw-r--r--. 1 dhcpd dhcpd 1262 Apr 10 15:00 /var/lib/dhcpd/dhcpd.leases

id foreman-proxy
uid=498(foreman-proxy) gid=497(foreman-proxy) groups=497(foreman-proxy),52(puppet),177(dhcpd),25(named)
0
задан 11 May 2013 в 15:40
1 ответ

Проблема в том, что когда squid пытается подключиться к веб-серверу (через порт 8080), его запрос также перенаправляется самому себе. Вы должны ограничить область действия правила REDIRECT (например, на основе входящего интерфейса).

Если внешний интерфейс на вашем сервере - eth0, измените правило следующим образом:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 3128

Обновление: На второй мысли похоже Я не прав. Локальный (127.0.0.1) трафик не проходит через цепочку PREROUTING.

Как вы указали squid, какой восходящий веб-сервер использовать?

1
ответ дан 4 December 2019 в 21:17

Теги

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