Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->网络应用 ->服务器 ->用BIND架设DDNS Server提供DDNS服务
  相关分类: 
Firefox专题
服务器
搜索引擎优化SEO
网管天地
网络安全
网络工程
网络技术
无线技术
邮件服务器
  站内搜索: 
热门文章排行
热门文章排行 用BIND架设DDNS Server提供DDNS服务(04-11)
Linux代理服务器实现共享上网(04-12)
Windows 服务器系统的服务概述和网(04-12)
图解Web和FTP服" target="_blank">图解Web和FTP服(04-26)
Linux架设代理服务器(1)(04-12)
精采文章排行
精采文章排行 Windows Internet服务器安全配置实践(04-26)
Windows Internet服务器安全配置原理(04-26)
用SCW为Win2003服务器打造“铜墙铁壁(04-26)
VeriSign称计划大幅增加DNS根服务器(04-26)
用SSL加密增强FTP服务器安全性 (04-26)
  ·Windows Internet服务器安全配置原理篇 ·用SCW为Win2003服务器打造“铜墙铁壁” ·VeriSign称计划大幅增加DNS根服务器数量 ·用SSL加密增强FTP服务器安全性 ·如何防止垃圾邮件用你的邮件服务器转发 ·使用KWF工具打造与众不同的VPN服务器 ·详析邮件服务器邮件存储和日志 ·图解Web和FTP服务器" target="_blank">图解Web和FTP服务器·使用反向代理技术保护Web服务器

用BIND架设DDNS Server提供DDNS服务

作者:   来源:   点击:   日期:2007-04-11 [收藏] [投稿]

  IE是否经常中毒?推荐您

SN int(20) NOT NULL auto_increment,

USERNAME varchar(64) NOT NULL default '',

FQDN varchar(64) NOT NULL default '',

TTL int(5) NOT NULL default '60',

TYPE varchar(10) NOT NULL default '',

RDATA varchar(64) NOT NULL default '',

CREATE_TIME timestamp(14) NOT NULL,

PRIMARY KEY (SN),

KEY USERNAME (USERNAME),

KEY FQDN (FQDN),

KEY TTL (TTL),

KEY TYPE (TYPE),

KEY CREATE_TIME (CREATE_TIME)

) TYPE=MyISAM;

--

-- Table structure for table 'RR_LOG'

--

CREATE TABLE RR_LOG (

SN int(20) NOT NULL default '0',

USERNAME varchar(64) NOT NULL default '',

FQDN varchar(64) NOT NULL default '',

TTL int(5) NOT NULL default '60',

TYPE varchar(10) NOT NULL default '',

RDATA varchar(64) NOT NULL default '',

CREATE_TIME varchar(14) default NULL,

PRIMARY KEY (SN),

KEY USERNAME (USERNAME),

KEY FQDN (FQDN),

KEY CREATE_TIME (CREATE_TIME)

) TYPE=MyISAM;

--

-- Table structure for table 'USER'

--

CREATE TABLE USER (

SN int(20) NOT NULL auto_increment,

USERNAME varchar(64) NOT NULL default '',

PASSWD varchar(64) NOT NULL default '',

EMAIL varchar(64) NOT NULL default '',

MEMO varchar(255) NOT NULL default '',

PRIMARY KEY (SN),

UNIQUE KEY USERNAME (USERNAME)

) TYPE=MyISAM;

3.2 dyndns.cfg 设定档

这个设定文件主要为了给 CGI 程序及产生 nsupdate 的程序 (dyndns-cron.sh) 所使用,透过 eval 方式来执行,

以取得共同的变量

CODE:[Copy to clipboard]# mysql host/db/user/password

DBHOST=localhost

DBNAME=dyndns

DBUSER=UserName

DBPASS=Your_Passwd

MYSQL="mysql $DBNAME -h $DBHOST -u $DBUSER -p$DBPASS"

# dyndns domain

DOMAIN=dyndns.twnic.tw

# Master IP

DYNDNS_MASTER=127.0.0.1

# nsupdate command file

CMD_FILE=/tmp/nsupdate.cmd

# update freqency

UPD_FREQ=15

# RR valid time (seconds),default 20 mins

RR_ALIVE=1200

3.3 dyndns.cgi CGI 程序

这个 CGI 主要用于接收 USER 端来的信息,验证通过后即为把 USERNAME.DOMAIN 资料,A/MX 及对应 IP 存入Table RR 中,此外这个 CGI 以 shell script 做成,可以于多数人的环境执行 (chmod 755 及目录的 CGI 执行权限 ExecCGI 莫忘)

CODE:[Copy to clipboard]#!/bin/sh

echo -ne "Content-Type: text/html\n\n"

if [ -n "$QUERY_STRING" ];then

# 取得 QUERY_STRING,以下这个作法是危险的,因为没有检查数据的正确性就 eval

# 我的用意只在于说明作法

eval `echo "$QUERY_STRING" | sed "s/&/;/g"`

# 读取设定文件,这个路径您需要自行调整

eval `cat /home/abelyang/dyndns/dyndns.cfg `

sql0="select 1 from USER where USERNAME='$LOGIN' and PASSWD='$PASSWD'"

res=`echo $sql0 | $MYSQL `

# 如果 USER 密码正确, ${#res} 应为2,不对则为 0

if [ ${#res} -lt 1 ];then

echo "Login Failure"

else

# 取得 IP, 需判断有 Proxy 存在,但是不考虑 Proxy 后是 NAT 情形

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 3 45 6 7 下一页

上一篇:Linux CollegeLinux LiveServer 发布   下一篇:在Enterprise Server上配置SCSI磁带机
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·Windows Internet服务器安全配置实践篇

   文章评论:(2条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。