Comments on Installing A FreeBSD 7.0 DNS Server With BIND

Installing A FreeBSD 7.0 DNS Server With BIND This tutorial shows how to set up a FreeBSD based server that offers DNS services. This tutorial is written for the 64-bit version of FreeBSD, but should apply to the 32-bit version.

3 Comment(s)

Add comment

Please register in our forum first to comment.

Comments

By: Anonymous

Hi,

Great post.

This is a complementary article that explains howto setup IPv6 DNS zones with bind.

Cheers.

By: Anonymous

Here is details on instalation php, bind, apache, mysql on freebsd:

After installation , run update:
#uname -a
#freebsd-update fetch
#freebsd-update install
#reboot
#uname -a

Port update:
#cp /usr/share/examples/cvsup/ports-supfile /root

#ping -c 3 cvsup6.freebsd.org
#ee /root/ports-supfile
(*default host=cvsup6.FreeBSD.org)

Starting update:
#csup -g -L 2 /root/ports-supfile

#whereis bash      //you can use: cd `whereis -q bash`    ; whereis -b bash    gives you path of binary
#cd /usr/ports/shells/bash
#make install
#hash
#rehash

#whereis portaudit
#cd /usr/ports/ports-mgmt/portaudit
#make install
#/usr/local/sbin/portaudit -Fda

#chsh -s /usr/local/bin/bash
#exit

#> /etc/motd     //write empty motd file, it displays on login

#whereis mc
#cd /usr/ports/misc/mc
#make install


Set static IP address:
#ee /etc/rc.conf
Add lines:
ifconfig_em0="inet 192.168.111.9 netmask 255.255.255.240"
defaultrouter="192.168.111.1"

Add user "user1" in group wheel so he can switch to root
#pw usermod student -G wheel



Installing BIND DNS service on FreeBSD:
#cd /usr/ports/dns/bind97/
#make config
#make install

Create file:
#cp /etc/make.conf /etc/make.conf.old
#ee /etc/make.conf
Add here this:
"NO_BIND = YES"

Editing file named.conf:
#mcedit /var/named/etc/namedb/named.conf
 - delete localhost 127.1.0.0
 - set forwarders
 - add on the end of file:
 zone "facebook.ba"
 {
 type master;
 file "master/facebook.ba";
 allow-transfer {localhost;};
 allow-update {key rndc-key;};
 }
 

Creating rndc key:
#rndc-confgen -a
#cd /var/named/etc/namedb
#cp named.conf named.conf.old
#cat rndc.key >> named.conf

Creating master file:
#cd /var/named/etc/namedb/
#mcedit facebook.ba

Write into facebook.ba file:
    $TTL 3600
    facebook.ba IN SOA server.facebook.ba root.facebook.ba
    (
    1 ; Serial ; Increment by one after every change
    10800 ; Refresh every hour
    3600 ; Retry every 15 minutes
    604800 ; Expire 1000 hours
    86400 ) ; Minimum 1 hour

    ;DNS servers
    facebook.ba IN NS server.facebook.ba.

    ;Computer names
    server.facebook.ba IN A 192.168.1.103
    komp.facebook.ba IN A 192.168.1.102

    ;Aliases
    www IN CNAME server.facebook.ba
    ww1 IN CNAME komp.facebook.ba

    ;MX records
    facebook.ba IN MX 10 mail.facebook.ba.

Then copy file facebook.ba:
/var/named/etc/namedb/# cp facebook.ba working/

Change DNS servers on system:
#ee /etc/resolv.conf
Write into resolv.conf:
domain facebook.ba
nameserver 192.168.1.103

Set up config so BIND will start after reboot:
#ee /etc/rc.conf
Add this on the end:
hostname="facebook.ba"
named_enable="YES"

Start BIND
#/etc/rc.d/named start

Create emty file: /var/named/etc/namedb/working/managed-keys.bind:
> working/managed-keys.bind

Test if everything works:
#dig www.facebook.ba
#dig www.google.ba



Installing APACHE service:
#cd /usr/ports/www/apache22
#make config
#make install   (On menu set all default, you can only desellect ipv6)

Configuration:
Open httpd.conf located in /usr/local/etc/apache22
#ee /usr/local/etc/apache22/httpd.conf
Change:
 - ServerAdmin [email protected]   (put your e-mail address)
 - ServerName www.exaple.com:80  (Remove comment add change address to www.facebok.ba:80)

Testing:
#apachectl configtest

Setting up  automatic start of Apache on system startup:
#ee /etc/rc.conf
Add on the end of file:
apache22_enabled = "YES"
apache22_http_accept_enable= "YES"

Restart apache server:
/usr/local/etc/rc.d/apache22 start

Webpage in this path:/usr/local/www/apache22/data/index.html

Log files are here:
/var/log/httpd-access.log
/var/log/httpd-error.log


Instalation of MySQL database:
#cd /usr/ports/databases/mysql55-server
#make -D BUILD_OPTIMIZED install
#hash



Configuration of MySQL database
#mysql_install_db --user=mysql

#mysql_safe &
#mysqladmin -u root password 'localpassword'

Copying existing configuration:
#cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf

Restricting remote using of database, throught network:
ee /var/db/mysql/my.cnf
Remove comment on line 45 so it looks like this:skip-networking

Configuration for startup of MySQL:
#ee /etc/rc.conf
Add on the end:
mysql_enable="YES"

Restart MySQL to apply all changes:
#/usr/local/etc/rc.d/mysql-server restart

Showing databases:
#mysqlshow -p

Check permissions of TMP folder:
#chown root:wheel /tmp
#chmod 777 /tmp
#chmod = t /tmp

Loging on server
#mysql -u root -p

Showing databases and working with dthat database:
#mysql> show databases;

Creating dtabase:
#mysql> create database ins2007;

Adding user with full permissions on database:
#mysql> grant all on ins2007. to vt@localhost identified by 'password';

Adding userwith read permissions on base:
#mysql> grant select on ins2007.* to vt@localhost identified by 'password'

Adding user with customized permisions on database:
#mysql grant (choose between select,insert,update,delete,create,drop) on ins2007.* vt@localhost identified by 'password'

Removing users form dbase:
#mysql> revoke all privileges on ins2007.* from vt@localhost;

Removing users from MySQL servera:
#mysql> revoke all privileges, grant option from vt@localhost;
#mysql> drop user vt@localhost;

Erasing base:
mysql>drop database ins2007;

Showing privilegies for each user:
#mysql> show grants for vt@localhost;

Backup of all MySQL databases:
#mysqldump -u root -p --all-databases > /path/nameofbackup.sql

Backup only one database:
#mysqldump -u root -p --databases fitbaza > /path/iee nameofbackup.sql

Restore database:
#mysql -u root -p ins2007 < /path/nameofbackup.sql

Configuration file of MySQL database:
/var/db/mysql/my.cnf

Log file of MySQL database
/var/db/mysql/server.facebook.ba.err



Instalation of PHP
#cd /usr/ports/loang/php5
#make config ; make install
When menu appears choose Apache (Build  apache module), other leave default.

Edit Apache httpd.conf for php support:
#ee /usr/local/etc/apache22/httpd.conf
Change path of index.php:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
On the end add text:
AddType application/x-http-php .php
AddType application/x-http-php-source .phps

Copy configuration file php.ini:
#cd /usr/local/etc
#cp php.ini-recommended php.ini

Specificate session save.path in configuration of php:
#ee /usr/local/etc/php.ini
Remove comment and set path:
session.save_path = "/tmp"

Save and restart Apache
#/usr/local/etc/rc.d/apache22 restart

Testing php:
#ee /usr/local/www/apache22/data/phpinfo.php
Add this line:<?php phpinfo();?>

By: hackensolo

Hi,

thanks for this but missing ";" after rndc-key