diff options
author | Goffredo Andreone <gandreone@pfsense.org> | 2007-02-23 07:18:28 +0000 |
---|---|---|
committer | Goffredo Andreone <gandreone@pfsense.org> | 2007-02-23 07:18:28 +0000 |
commit | c0dbd950b3fa4e53f6348d7c49987461ef15f839 (patch) | |
tree | b5f01c14b05a782453c119c693989840ba1a1153 /packages/tinydns | |
parent | 1c91dfa91331efdb69886985ada7a8b6afecd39c (diff) | |
download | pfsense-packages-c0dbd950b3fa4e53f6348d7c49987461ef15f839.tar.gz pfsense-packages-c0dbd950b3fa4e53f6348d7c49987461ef15f839.tar.bz2 pfsense-packages-c0dbd950b3fa4e53f6348d7c49987461ef15f839.zip |
Further updates to limit DNS server if DHCP logging is enabled. Forwarding can be concurrent with DNS server on Public IP as long as logging of DHCP is disabled. Started fixing Log Page.
Diffstat (limited to 'packages/tinydns')
-rw-r--r-- | packages/tinydns/tinydns.inc | 103 | ||||
-rw-r--r-- | packages/tinydns/tinydns.xml | 2 | ||||
-rw-r--r-- | packages/tinydns/tinydns_view_logs.php | 13 |
3 files changed, 69 insertions, 49 deletions
diff --git a/packages/tinydns/tinydns.inc b/packages/tinydns/tinydns.inc index 302f76f5..2736f3e2 100644 --- a/packages/tinydns/tinydns.inc +++ b/packages/tinydns/tinydns.inc @@ -141,8 +141,12 @@ function tinydns_custom_php_changeip_command() { $dnscacheip = $ip; $dnsuserip = $arr[0]; } - $dnsserverip = $config['installedpackages']['tinydns']['config'][0]['ipaddress']; - if($config['installedpackages']['tinydns']['config'][0]['enableforwarding']) +/* For now force $dnsserverip to to 127.0.0.1 when registration of 'local' DNS data is required */ + if($config['installedpackages']['tinydns']['config'][0]['enableforwarding']) + $dnsserverip = "127.0.0.1"; + if($config['installedpackages']['tinydns']['config'][0]['ipaddress']) + $dnsserverip = $config['installedpackages']['tinydns']['config'][0]['ipaddress']; + if($config['installedpackages']['tinydns']['config'][0]['regdhcpstatic'] OR $config['installedpackages']['tinydns']['config'][0]['regdhcp']) $dnsserverip = "127.0.0.1"; $updatecron = $config['installedpackages']['tinydns']['config'][0]['updatecron']; @@ -157,9 +161,8 @@ function tinydns_custom_php_changeip_command() { exec("echo {$dnsserverip} > /etc/tinydns/env/IP"); exec("/usr/bin/killall -9 tinydns"); - if($config['installedpackages']['tinydns']['config'][0]['enableforwarding']) - { - if(!is_dir("/service/dnscache")){ + if($config['installedpackages']['tinydns']['config'][0]['enableforwarding']) { + if(!is_dir("/service/dnscache")) { exec("/usr/sbin/pw useradd Gdnscache"); exec("/usr/local/bin/dnscache-conf Gdnscache Gdnslog /etc/dnscache {$dnscacheip}"); exec("/bin/ln -s /etc/dnscache /service/"); @@ -174,12 +177,13 @@ function tinydns_custom_php_changeip_command() { exec("echo domain {$config['system']['domain']} > /var/etc/resolv.conf"); exec("echo nameserver {$dnscacheip} >> /var/etc/resolv.conf"); exec("/usr/bin/killall -9 dnscache"); - } - else - { - exec("/bin/cp /var/etc/resolv.conf.original /var/etc/resolv.conf"); - exec("echo > /etc/dnscache/env/IP"); - exec("/usr/bin/killall -9 dnscache"); + } else { + if(file_exists("/var/etc/resolv.conf.original")) + exec("/bin/cp /var/etc/resolv.conf.original /var/etc/resolv.conf"); + if(is_dir("/etc/dnscache")) { + exec("echo > /etc/dnscache/env/IP"); + exec("/usr/bin/killall -9 dnscache"); + } } conf_mount_ro(); filter_configure(); @@ -307,45 +311,48 @@ function tinydns_create_zone_file() { return; } - /* Load the root servers if Forwarding is enabled */ - /* Register LAN IP and SOA Forward and Reverse DNS recors in TinyDNS Server*/ - if($config['installedpackages']['tinydns']['config'][0]['enableforwarding']) { - $forwardingservers = tinydns_register_root_servers(); - if($forwardingservers)fwrite($fd, $forwardingservers); - if($config['system']['hostname']['domain']) { - $dhcpdhostname = $config['system']['hostname']; - if($config['dhcpd']['lan'])$dhcpddomain = $config['system']['domain']; - $dhcpdlanip = $config['interfaces']['lan']['ipaddr']; - $dhcpdipmask = $config['interfaces']['lan']['subnet']; - $dhcpdfqdn = "{$dhcpdhostname}.{$dhcpddomain}"; - tinydns_complete_soa_record($fd, $dhcpdlanip, $dhcpdipmask, $dhcpdhostname, $dhcpddomain); - } - } - - /* Register Static IPs */ - if($config['installedpackages']['tinydns']['config'][0]['regdhcpstatic']) { - if(is_array($config['dhcpd']['lan']['staticmap'])) { - foreach($config['dhcpd']['lan']['staticmap'] as $dhcpdstatic){ - $dhcpdhostname = $dhcpdstatic['hostname']; + /* For now do not allow registration of 'local' DNS data if tinyDNS not bound to 127.0.0.1 */ + if($dnsserverip == "127.0.0.1") { + /* Load the root servers if Forwarding is enabled */ + /* Register LAN IP and SOA Forward and Reverse DNS recors in TinyDNS Server*/ + if($config['installedpackages']['tinydns']['config'][0]['enableforwarding']) { + $forwardingservers = tinydns_register_root_servers(); + if($forwardingservers)fwrite($fd, $forwardingservers); + if($config['system']['hostname']['domain']) { + $dhcpdhostname = $config['system']['hostname']; + if($config['dhcpd']['lan'])$dhcpddomain = $config['system']['domain']; + $dhcpdlanip = $config['interfaces']['lan']['ipaddr']; + $dhcpdipmask = $config['interfaces']['lan']['subnet']; $dhcpdfqdn = "{$dhcpdhostname}.{$dhcpddomain}"; - $dhcpdlanip = $dhcpdstatic['ipaddr']; - $dhcpda = "={$dhcpdfqdn}:{$dhcpdlanip}"; - if($dhcpdhostname)fwrite($fd, $dhcpda . "\n"); + tinydns_complete_soa_record($fd, $dhcpdlanip, $dhcpdipmask, $dhcpdhostname, $dhcpddomain); } } - } - - /* Register Dynamic IPs */ - if($config['installedpackages']['tinydns']['config'][0]['regdhcp']) { - $leasesfile = "{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases"; - $fl = fopen($leasesfile, "r"); - if(!$fl) { - log_error("Could not open {$leasesfile} for reading."); - return; + + /* Register Static IPs */ + if($config['installedpackages']['tinydns']['config'][0]['regdhcpstatic']) { + if(is_array($config['dhcpd']['lan']['staticmap'])) { + foreach($config['dhcpd']['lan']['staticmap'] as $dhcpdstatic){ + $dhcpdhostname = $dhcpdstatic['hostname']; + $dhcpdfqdn = "{$dhcpdhostname}.{$dhcpddomain}"; + $dhcpdlanip = $dhcpdstatic['ipaddr']; + $dhcpda = "={$dhcpdfqdn}:{$dhcpdlanip}"; + if($dhcpdhostname)fwrite($fd, $dhcpda . "\n"); + } + } } - tinydns_add_active_leases($fl,$fd, $dhcpddomain); - } + /* Register Dynamic IPs */ + if($config['installedpackages']['tinydns']['config'][0]['regdhcp']) { + $leasesfile = "{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases"; + $fl = fopen($leasesfile, "r"); + if(!$fl) { + log_error("Could not open {$leasesfile} for reading."); + return; + } + tinydns_add_active_leases($fl,$fd, $dhcpddomain); + } + } + if($config['installedpackages']['tinydnsdomains']) { foreach($config['installedpackages']['tinydnsdomains']['config'] as $domain) { $record_data = ""; @@ -682,15 +689,19 @@ function tinydns_dnscache_forwarding_servers() { } } fclose($fr); + if(is_dir("/etc/dnscache/root/servers/")) + exec("rm -R /etc/dnscache/root/servers/"); + exec("mkdir /etc/dnscache/root/servers/"); $fr = fopen("/etc/dnscache/root/servers/@", "w"); if (! $fr) { - printf("Error: cannot open resolv.conf in tinydns_dnscache_forwarding_servers().\n"); + printf("Error: cannot write to /etc/dnscache/root/servers/@ in tinydns_dnscache_forwarding_servers().\n"); return 1; } if($iprecords)fwrite($fr, $iprecords); fclose($fr); } +/* This routine adds filenames to /etc/dnscache/root/servers/ with the contents pointing to the tinyDNS server */ function tinydns_create_soa_domain_list($dnsserverip){ if(file_exists("/service/tinydns/root/data")) $tinydns_data = file_get_contents("/service/tinydns/root/data"); diff --git a/packages/tinydns/tinydns.xml b/packages/tinydns/tinydns.xml index cfe3524e..0a789446 100644 --- a/packages/tinydns/tinydns.xml +++ b/packages/tinydns/tinydns.xml @@ -140,7 +140,7 @@ <field> <fieldname>ipaddress</fieldname> <fielddescr>IP Address</fielddescr> - <description>Bind TinyDNS to this IP address. Enable DNS Forwarders bind it to the LAN IP.</description> + <description>Bind TinyDNS to this IP address. Enable DNS Forwarders bind TinyDNS to the LAN IP.</description> <type>input</type> </field> <field> diff --git a/packages/tinydns/tinydns_view_logs.php b/packages/tinydns/tinydns_view_logs.php index 99faeeeb..3d6242a4 100644 --- a/packages/tinydns/tinydns_view_logs.php +++ b/packages/tinydns/tinydns_view_logs.php @@ -38,8 +38,16 @@ if(!$config['installedpackages']['tinydns']['config'][0]) $pgtitle = "TinyDNS: View Logs"; include("head.inc"); +/* NEED TO FIX there are 2 logs /etc/tinydns/log/main/current and /etc/dnscache/log/main/current */ + $tinydnslogs = `cat /etc/tinydns/log/main/current | /usr/local/bin/tai64nlocal | php -f /usr/local/pkg/tinydns_parse_logs.php | grep -v ":0"`; +/* NEED TO FIX */ +if ($_POST['clear']) { +// exec("rm /etc/tinydns/log/main/current"); +// exec("touch /etc/tinydns/log/main/current"); +} + ?> <body link="#0000CC" vlink="#0000CC" alink="#0000CC"> <?php include("fbegin.inc"); ?> @@ -62,14 +70,14 @@ $tinydnslogs = `cat /etc/tinydns/log/main/current | /usr/local/bin/tai64nlocal | <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td class="tabcont" > - <form action="tinydns_status.php" method="post"> + <form action="tinydns_view_logs.php" method="post"> <br> <pre><?=$tinydnslogs?></pre> </td> </tr> </table> <td align="left" valign="top"> - <form id="filterform" name="filterform" action="diag_logs.php" method="post" style="margin-top: 14px;"> + <form id="filterform" name="filterform" action="tinydns_view_logs.php" method="post" style="margin-top: 14px;"> <input id="submit" name="clear" type="submit" class="formbtn" value="<?=gettext("Clear log");?>" /> </form> </td> @@ -79,3 +87,4 @@ $tinydnslogs = `cat /etc/tinydns/log/main/current | /usr/local/bin/tai64nlocal | </body> </html> +?>
\ No newline at end of file |