top

Ankieta

Czy dział AKTUALNOŚCI->LINUX powinien zostać usunięty ?
 

Naszą witrynę przegląda teraz 3 gości 
POLECAMY:
HOSTING

Własny serwer DynDNS Email
Wtorek, 10 Czerwiec 2008 00:41

 

Jakiś czas temu potrzebowałem postawić własny serwer DynDNS, może komuś przyda się

opis instalacji i konfiguracji.

 

GnuDIP 2.3.5 + MySQL + BIND UBUNTU 7.04 Server

 

Instalacja wymaganego oprogramowania

 

apt-get 	 install bind9 apache 
mysql-server perl ?y

 

 

przejdź do /tmp i sciągnij GnuDIP 2.3.5

 

rozpakuj plik i skopiuj katalog /tmp/gnudip-2.3.5/gnudip do katalogu /usr/local

Baza mysql

Dołączony plik bazy danych wymaga modyfikacji w przeciwnym wypadku zgłasza błedy i nie kończy operacji stworzenia bazy danych i założenia użytkownika. Otwórz plik gnudip.mysql i w wierszach id int(10) usuń ?DEFAULT ?0?? . Powinien on wyglądać tak :

  	# commands to create database for GnuDIP 2.3         ######################################    # create GnuDIP database    #    create database gnudip2;    # ^ GnuDIP database         ######################################    # grant access to GnuDIP database tables to GnuDIP user    # the gnudip user will be created if needed         grant select, insert, update, delete on gnudip2.* to gnudip identified by 'gnudippass';    grant select, insert, update, delete on gnudip2.* to gnudip@localhost identified by 'gnudippass';    # ^ GnuDIP user ^ GnuDIP password         ######################################    # use GnuDIP database         use gnudip2;         ######################################    # domains         create table domains (    id int(10) not null auto_increment,    domain varchar(50),    changepass varchar(5),    addself varchar(5),    primary key (id)    );         ######################################    # globalprefs         create table globalprefs (    id int(10) not null auto_increment,    param varchar(30),    value varchar(255),    primary key (id)    );         ######################################    # users         create table users (    id int(10) not null auto_increment,    username varchar(20) default '' not null,    password varchar(32),    domain varchar(50) default '' not null,    email varchar(50),    createdate datetime,    forwardurl varchar(60),    updated datetime,    level enum('USER','ADMIN') default 'USER' not null,    currentip varchar(15),    autourlon varchar(5),    MXvalue varchar(60),    MXbackup enum('YES','NO') default 'NO' not null,    wildcard enum('YES','NO') default 'NO' not null,    allowwild enum('YES','NO') default 'NO' not null,    allowmx enum('YES','NO') default 'NO' not null,    primary key (id),    key domain (domain),    key username (username)    );   	  	 

Zapisz plik i zaimportuj bazę.

mysql -vp < /tmp/gnudip-2-3-5/gnudip.mysql

Enter password:

 

W odpowiedzi powinieneś otrzymać :

--------------

create database gnudip2

--------------

 

--------------

grant select, insert, update, delete on gnudip2.* to gnudip identified by 'gnudippass'

--------------

 

--------------

grant select, insert, update, delete on gnudip2.* to gnudip@localhost identified by 'gnudippass'

--------------

 

--------------

create table domains (

id int(10) not null auto_increment,

domain varchar(50),

changepass varchar(5),

addself varchar(5),

primary key (id)

)

--------------

 

--------------

create table globalprefs (

id int(10) not null auto_increment,

param varchar(30),

value varchar(255),

primary key (id)

)

--------------

 

--------------

create table users (

id int(10) not null auto_increment,

username varchar(20) default '' not null,

password varchar(32),

domain varchar(50) default '' not null,

email varchar(50),

createdate datetime,

forwardurl varchar(60),

updated datetime,

level enum('USER','ADMIN') default 'USER' not null,

currentip varchar(15),

autourlon varchar(5),

MXvalue varchar(60),

MXbackup enum('YES','NO') default 'NO' not null,

wildcard enum('YES','NO') default 'NO' not null,

allowwild enum('YES','NO') default 'NO' not null,

allowmx enum('YES','NO') default 'NO' not null,

primary key (id),

key domain (domain),

key username (username)

)

--------------

Konfiguracja GnuDIP

Usuń linki

rm /usr/local/gnudip/lib/dbprefs.pm

rm /usr/local/gnudip/lib/dbusers.pm

 

i stwórz aktualne

cd /usr/local/gnudip/lib/

ln -s dbprefs_flat.pm /usr/local/gnudip/lib/dbprefs.pm

ln -s dbusers_flat.pm /usr/local/gnudip/lib/dbusers.pm

 

Tworzenie kluczy do uwierzytelniania GnuDIP w BIND9

mkdir /etc/bind/tmp

cd /etc/bind/tmp/

dnssec-keygen -a hmac-md5 -b 128 -n HOST gnudip-key

ls ?l

Kgnudip-key.+157+04571.key

Kgnudip-key.+157+04571.private

 

 

cat ./Kgnudip-key.+157+04571.private

Private-key-format: v1.2

Algorithm: 157 (HMAC_MD5)

Key: QZcFJhB8W4L3Bz28s4RxOQ==

 

Wygenerowany klucz będzie potrzebny przy konfiguracji strefy w BIND. (QZcFJhB8W4L3Bz28s4RxOQ==)

Przenieś pliki ?Kgnudip-key.+157+04571.key? ? Kgnudip-key.+157+04571.private? do katalogu z /usr/local/gnudip/etc/.

Przejdź do katalogu

cd /usr/local/gnudip/etc/

vi ./gnudip.conf

w BIND9 zmień ścieżkę do pliku Kgnudip-key.+157+04571.private

nsupdate = /usr/bin/nsupdate -v ?k /usr/local/gnudip/etc/ Kgnudip-key.+157+04571.private

 

Konfiguracja BINDa

Stwórz plik do przechowywania danych klucza

touch /etc/bind/gnudip-keyfile

sprawdź i skopiuj klucz

cat /usr/local/gnudip/etc/Kgnudip-key.+157+04571.private

Private-key-format: v1.2

Algorithm: 157 (HMAC_MD5)

Key: QZcFJhB8W4L3Bz28s4RxOQ==

 

Plik gnudip-keyfile powinien mieć wpisy jak poniżej

vi /etc/bind/gnudip-keyfile

 

key gnudip-key {

algorithm hmac-md5;

// the TSIG key

secret "QZcFJhB8W4L3Bz28s4RxOQ==";

};

W pliku konfiguracyjnym BIND named.conf dopisz:

vi /etc/bind/named.conf

 

// GNUDIP key

include "/etc/bind/gnudip-keyfile";

 

 

// GnuDIP dynamic DNS zone

 

zone "12345.net" in {

type master;

file "master/zone-12345.net";

allow-query { any; };

// allow-update {key gnudip-key; };

update-policy { grant gnudip-key subdomain 12345.net; };

};

 

Stwórz strefę dla domeny która ma obsługiwać DynDNS

vi /var/cache/bind/master/zone-12345.net

 

$TTL 86400 ; default TTL (1 day)

@ IN SOA ns.12345.net. admin.12345.net. (

0 ; serial

3600 ; refresh (1 hour)

1800 ; retry (30 minutes)

604800 ; expire (1 week)

0 ; TTL for NACK-s (0 seconds)

)

@ NS ns.12345.net.

gnudip 60 IN A 192.168.1.63

 

chmod a+r /usr/local/gnudip/etc/*

chmod a+w /etc/bind/zone-12345.net

 

Konfiguracja Apache

 

Na końcu pliku /etc/apache2/apache2.conf dopisz:

 

Alias /gnudip/html/ /usr/local/gnudip/html/

 

Options Indexes

ReadmeName .README

HeaderName .HEADER

RemoveHandler .pl

RemoveType .pl

AddType text/plain .pl

 

ScriptAlias /gnudip/cgi-bin/ /usr/local/gnudip/cgi-bin/

 

I zrestartuj apache

/etc/init.d/apache2 restart

 

Uruchamianie demona

apt-get install xinetd

 

vi /etc/services

 

gnudip 3495/tcp

 

 

vi /etc/xinetd.conf

 

service gnudip

{

flags = REUSE

socket_type = stream

protocol = tcp

wait = no

user = nobody

server = /usr/local/gnudip/sbin/gdipinet.pl

bind = 0.0.0.0

only_from = 192.168.1.0/24

only_from += 127.0.0.1

only_from += 24.64.0.0/13

only_from += 64.5.210.224/31

only_from += 64.5.221.128/27

}

 

Prawa do plików

W katalogu /usr/local/gnudip/run/database/ i podkatalogach konieczne jest prawo zapisu i odczytu dla użytkownika na którym pracuje Apache. W przypadku Ubuntu 7.04 Server jest to www-data.

chown www-data:www-data /usr/local/gnudip/run/database/ - R

 

Do pliku ze strefą domeny głównej (12345.net) musi mieć prawa zapisu BIND.

 

chown root:bind /var/cache/bind/master/ -R

chmod 660 /var/cache/bind/master/ -R

 

 

 

 

Zakładanie domeny i użytkowników w GnuDIP

 

W celu konfiguracji domeny i użytkowników musisz wejść na stronę http://192.168.1.63/gnudip/cgi-bin/gnudip.cgi

Aby stworzyć konto administratora użyj polecenia:

 

/usr/local/gnudip/sbin/gdipadmin.pl admin haslo

 

Teraz już możesz się zalogować http://192.168.1.63/gnudip/cgi-bin/gnudip.cgi

Po zalogowaniu zacznij od stworzenia domeny w tym przypadku była to 12345.net. Następnie możesz przejść do zakładania użytkowników dla tej domeny. Subdomeny są tworzone automatyczne na zasadzie użytkownik.domena (np.: artur.12345.net).

 

Klient dla Windows

 

Konfiguracja polega na wpisaniu adresu IP serwera www udostępniającego interfejs do obsługi GnuDIP.

 

Potem wystarczy podać użytkownika, hasło i subdomenę istniejącą na serwerze.

 

 

 

Testy

Obserwacja logów podczas instalacji i konfiguracji. Ja zawsze używam polecenia tail dzięki czemu mogę na bieżąco śledzić logi.

tail ?f /var/log/syslog

 

poniższe logi przedstawiają poprawne działanie podczas łączenia się za pomocą klienta Windows:

Jul 4 14:24:55 gnudip gnudip-updt: 192.168.1.51 - User user.12345.net successful update to ip 192.168.1.51

Jul 4 14:27:32 gnudip named[5580]: client 127.0.0.1#4803: transfer of '12345.net/IN': AXFR started

Jul 4 14:27:32 gnudip named[5580]: client 127.0.0.1#4803: transfer of '12345.net/IN': AXFR ended

Jul 4 14:39:02 gnudip /USR/SBIN/CRON[5734]: (root) CMD ( [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm)

Jul 4 14:42:42 gnudip gnudip-updt: 192.168.1.51 - User user.12345.net remains at ip 192.168.1.51

Jul 4 14:42:56 gnudip last message repeated 2 times

Jul 4 14:43:56 gnudip gnudip-updt: 192.168.1.51 - Invalid login attempt from 192.168.1.51: user user11.12345.net

Jul 4 14:44:03 gnudip gnudip-updt: 192.168.1.51 - Invalid login attempt from 192.168.1.51: user user11.12345.net

Jul 4 14:44:07 gnudip gnudip-updt: 192.168.1.51 - User user.12345.net remains at ip 192.168.1.51

Jul 4 14:44:12 gnudip named[5580]: client 192.168.1.63#2552: updating zone '12345.net/IN': deleting rrset at 'user.12345.net' A

Jul 4 14:44:12 gnudip gnudip-updt: 192.168.1.51 - User user.12345.net successful remove from ip 192.168.1.51

Jul 4 14:44:18 gnudip named[5580]: client 192.168.1.63#2263: updating zone '12345.net/IN': deleting rrset at 'user.12345.net' A

Jul 4 14:44:18 gnudip named[5580]: client 192.168.1.63#2263: updating zone '12345.net/IN': adding an RR at 'user.12345.net' A

Jul 4 14:44:18 gnudip gnudip-updt: 192.168.1.51 - User user.12345.net successful update to ip 192.168.1.51

 

Odpytaj lokalny serwer DNS o swoją domenę , najprościej jest poleceniem dig. Jak widać poniżej została dopisana subdomena user.12345.net w strefie domeny głównej 12345.net

dig AXFR @localhost 12345.net

 

; <<>> DiG 9.3.4 <<>> AXFR @localhost 12345.net

; (1 server found)

;; global options: printcmd

12345.net. 86400 IN SOA ns.12345.net. admin.12345.net. 11 3600 1800 604800 0

12345.net. 86400 IN NS ns.12345.net.

12345.net. 86400 IN A 192.168.1.63

gnudip.12345.net. 86400 IN A 192.168.1.63

ns.12345.net. 86400 IN A 192.168.1.63

user.12345.net. 60 IN A 192.168.1.51

12345.net. 86400 IN SOA ns.12345.net. admin.12345.net. 11 3600 1800 604800 0

;; Query time: 4 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Wed Jul 4 14:27:32 2007

;; XFR size: 7 records (messages 1)

 

 

 

 


 

Komentarze

no comments

POLECAMY:
WUPRA Sklep z grami na linuksa
Polski serwis Nexuiz
Free Shooters
strony internetowe
przepisy kulinarne
übersetzer polnisch deutsch englisch
tłumacz przysięgły niemieckiego
american school warsaw
Tłoczna płyt CD DVD
Sportingbet - usługi informatyczne dla firm - Informacja Gran Canaria - Fala Zbrodni - agroturystyka noclegi - bilard - kredyty - uTorrent - Pożyczki gotówkowe - klamry na paznokcie kraków - Siec Serwerow Counter Strike - obsługa informatyczna wrocław - Tworzenie stron internetowych - spływy czarna hańcza - sprzęt fitness
Zakłady Sportowe Zakłady sportowe increase increase, increase Tworzenie stron Warszawa Artykuł o tworzeniu stron www Wiadomości Pozycjonowanie Skuteczne pozycjonowanie stron ec334 f988b 20916 c6b68 f6322 artykuły

bottom
top bottom