Центральная конфигурация для DHCP, DNS и брандмауэра

Какое программное обеспечение вы используете для управления центральной сетью?

Я имею в виду, что вы записываете имя компьютера, MAC-адрес, открытые порты и другую информацию, а программа генерирует фрагменты конфигурации DHCP, DNS и брандмауэра, которые будут включены из основных файлов конфигурации.

Например, инструмент менеджера центральной сети имеет следующие поля в файле конфигурации:

machine1 | 10.0.0.22 | 01:23:45:67:89:ab | 80/tcp, 53/udp, 53/tcp | owner | room

Это становится три файла, один для DNS

machine1 IN A   10.0.0.22 ; owner , room

один для DHCP

host machine1 { hardware ethernet 01:23:45:67:89:ab; fixed-address 10.0.0.22; } # owner , room

один для брандмауэра (пример для Linux iptables)

-A mycustomchain -d 10.0.0.22 -p tcp --dport 80 -j ACCEPT  # machine1, owner, room
-A mycustomchain -d 10.0.0.22 -p udp --dport 53 -j ACCEPT # machine1, owner, room

Нетрудно написать что-то вручную, но есть ли хорошие готовые решения с хорошим послужным списком? Возможные плюсы: поддержка различных dns, dhcp, программ брандмауэра, поддержка плагинов для копирования обновленных конфигураций на соответствующие серверы и перезапуска сервисов.

Я ищу инструмент, ориентированный на системы Linux, но для полноты картины приветствуются решения только для Windows или только BSD.

3 ответа

Решение

Есть две программы для генерации файлов конфигурации;

Приведенный ниже скрипт не дает прямого ответа на ваш вопрос, но в качестве примера того, что вы можете сделать с помощью perl-скрипта, он может быть полезен. Моя установка - здание с 4 этажами и более ограниченной сетью администратора. Я использую сценарий для добавления новых машин по мере их поступления, записывая mac-адрес и давая им адрес, который соответствует этажу, на котором они находятся. Я использую файл $PWD/.floorN для записи адреса, чтобы я мог правильно увеличивать его. Он также добавляет прямые и обратные записи DNS и правила IPAC-NG для записи полосы пропускания. Скрипт делает некоторые предположения относительно расположения файлов и наличия некоторого текста в них, чтобы позволить замену новым записям.

#!/usr/bin/perl -w
##################
($firstname, $secondname, $mac, $floor) = @ARGV;
$mac2 = lc $mac;
@requires = qw/firstname secondname mac/;
foreach(@requires) {
unless($$_) {
print "\$$_ not found, Please run this as $0 Firstname Secondname MAC floor\n";
exit;
}
}
unless($floor) { $floor = "0"; }
open(IPS, "+<.floor$floor");
$count = 1;
while (<IPS>) { $count++; }
print IPS "$firstname$secondname :$count\n";
print <<END;
adding to /etc/dhcp3/dhcpd.conf

host $firstname$secondname {
hardware ethernet $mac2;
fixed-address 10.0.1$floor.$count;
option routers 10.0.1$floor.254; 
}
END
open(ORIG, "/etc/dhcp3/dhcpd.conf");
@orig = <ORIG>; 
close(ORIG);
$add = <<END;
host $firstname$secondname {
hardware ethernet $mac2;
fixed-address 10.0.1$floor.$count;
option routers 10.0.1$floor.254;
}
END
open(CONF, "+>/etc/dhcp3/dhcpd.conf");
foreach(@orig) {
$line = $_;
$line =~ s/  \# new entries here/$add\n  \# new entries here/;
print CONF $line;
}

close(CONF);
system("/etc/init.d/dhcp3-server restart");
close(IPS);
# add DNS records for this host
print "Adding DNS Entries ...\n";
open(REV, ">>/var/cache/bind/1$floor.0.10.in-addr.arpa");
print REV "$count\t\tPTR\t$firstname$secondname.zone.com.\n";
close(REV);
open(ZONE, ">>/var/cache/bind/zone.com");
print ZONE "$firstname$secondname\t28800\tIN\tA\t10.0.1$floor.$count\n";
close(ZONE);
system("rndc reload");
# Add two ipac rules, so we can see traffic going to/from this IP
print "Adding IP Accounting rules ...\n";
open(IPAC, ">>/etc/ipac-ng/rules.conf");
print IPAC <<END;
$firstname.$secondname in|ipac~i|+|all|0/0|10.0.1$floor.$count
$firstname.$secondname out|ipac~o|+|all|10.0.1$floor.$count|0/0
END
close(IPAC);

Это подпадает под более широкую категорию управления конфигурацией, которая рассматривается в другом месте на сервере (например, здесь). Я бы порекомендовал кукол для этого типа вещей.

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

Другие вопросы по тегам