Installing A FreeBSD 7.0 DNS Server With BIND - Page 2

For the ports selection we will choose [YES] to avoid doing it manually later, so highlight the [Yes] button and then press [ENTER].

You will go back to the distribution screen so press [TAB] to highlight the OK button then press [ENTER].

As we have internet connection, we will go ahead and choose FTP, then highlight the [OK] button and then press [ENTER].

The best choice here would be the nearest server to you, so it would be the fastest, after you make your choice, highlight the [OK] button and then press [ENTER].

As we have chosen ftp we will have to configure the network, so we will chose the network card connected to the Internet, then highlight the [OK] button and then press [ENTER].

For IPv6 I choose [NO], as my network environment doesn't support IPv6.

If you have DHCP you can choose yes and change your IP later on (details covered below), however if you have a static IP you can configure it now.

Here is the network configuration, if you don't have a DHCP in your network you will have to fill this screen up manually, when finished [TAB] to [OK] and press [ENTER], if you want to use DHCP and configure these settings later go ahead and check the section below on how to configure static IP after installation, here I will go with Static IP:

Last Chance? highlight the [Yes] button and then press [ENTER].

After the installation you will get the below message, highlight the [OK] button and then press [ENTER].

You will then be asked if you want the server to be a network gateway, so we will go and choose [NO].

Also we will choose [NO] for the inetd.

Choose [YES] for the SSH login.

Share this page:

2 Comment(s)

Add comment


From: Anonymous at: 2009-02-13 10:44:12


Great post.

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


From: Anonymous at: 2012-01-24 09:35:36

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

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

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

#ping -c 3
#ee /root/ports-supfile

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

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

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

#> /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 netmask"

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:

Editing file named.conf:
#mcedit /var/named/etc/namedb/named.conf
 - delete localhost
 - set forwarders
 - add on the end of file:
 zone ""
 type master;
 file "master/";
 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/

Write into file:
    $TTL 3600 IN SOA
    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 IN NS

    ;Computer names IN A IN A

    www IN CNAME
    ww1 IN CNAME

    ;MX records IN MX 10

Then copy file
/var/named/etc/namedb/# cp working/

Change DNS servers on system:
#ee /etc/resolv.conf
Write into resolv.conf:

Set up config so BIND will start after reboot:
#ee /etc/rc.conf
Add this on the end:

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:

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

Open httpd.conf located in /usr/local/etc/apache22
#ee /usr/local/etc/apache22/httpd.conf
 - ServerAdmin   (put your e-mail address)
 - ServerName  (Remove comment add change address to

#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:

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

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:

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:

Log file of MySQL database

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
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();?>