aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGoffredo Andreone <gandreone@pfsense.org>2007-02-23 07:18:28 +0000
committerGoffredo Andreone <gandreone@pfsense.org>2007-02-23 07:18:28 +0000
commitc0dbd950b3fa4e53f6348d7c49987461ef15f839 (patch)
treeb5f01c14b05a782453c119c693989840ba1a1153
parent1c91dfa91331efdb69886985ada7a8b6afecd39c (diff)
downloadpfsense-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.
-rw-r--r--packages/tinydns/tinydns.inc103
-rw-r--r--packages/tinydns/tinydns.xml2
-rw-r--r--packages/tinydns/tinydns_view_logs.php13
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