AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 15886
Accepted
hayalci
hayalci
Asked: 2009-05-31 14:11:07 +0800 CST2009-05-31 14:11:07 +0800 CST 2009-05-31 14:11:07 +0800 CST

DHCP、DNS 和防火墙的集中配置

  • 772

您使用什么软件进行中央网络管理?

我的意思是,您记录机器的名称、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 的解决方案。

firewall domain-name-system networking dhcp network-management
  • 3 3 个回答
  • 851 Views

3 个回答

  • Voted
  1. pete
    2009-05-31T14:22:20+08:002009-05-31T14:22:20+08:00

    下面的脚本不会直接回答您的问题,但作为您可以使用 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);
    
    • 2
  2. Best Answer
    hayalci
    2010-01-18T14:54:07+08:002010-01-18T14:54:07+08:00

    有两个程序用于生成配置文件;

    • 主机数据库
    • 网络配置
    • 1
  3. Daniel Lawson
    2009-05-31T14:36:30+08:002009-05-31T14:36:30+08:00

    这属于更广泛的配置管理类别,该类别在 serverfault 的其他地方(例如此处)进行了讨论。我会推荐这种类型的木偶。

    这种方法比您谈论的简单示例更深入,但它也允许对您的系统进行更多控制

    • 0

相关问题

  • 10 Gb 网络:在光纤和双绞线之间做出决定

  • 如何在 Windows Server PPTP VPN 中自动为客户端分配路由?

  • 为什么我的电脑休眠时 VPN 连接会中断?[关闭]

  • 有什么软件可以模拟局域网?

  • 带宽利用工具?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve