This post shows how to configure a TACACS+ server for system authentication in Juniper Netscreen SSG with open source tac_plus software.

Juniper Netscreen SSG Configuration
set auth-server TACACS id 1
set auth-server TACACS server-name
set auth-server TACACS backup1 (optional)
set auth-server TACACS account-type admin
set auth-server TACACS type tacacs
set auth-server TACACS tacacs secret Tacacssecret1
set auth-server TACACS tacacs port 49
set admin auth server TACACS
set admin auth remote primary
set admin auth remote root
set admin privilege get-external

tac_plus configuration
key = Tacacssecret1
group = netscreen
service = netscreen
vsys = root
privilege = root
user = nmsns {
default service = permit
login = file /etc/passwd
member = netscreen

This post shows how to configure a TACACS+ server for system authentication in Juniper SRX with open source tac_plus software.

Juniper SRX configuration
Connect to SRX and enter configure mode
[email protected]% cli
[email protected]> configure
warning: Clustering enabled; using private edit
warning: uncommitted changes will be discarded on exit
Entering configuration mode{primary:node1}[edit]
[email protected]#

Add a new TACACS+ server and set its IP address.
[email protected]#set tacplus-server address

Specify the shared secret (password) of the TACACS+ server.
[email protected]#set tacplus-server secret Tacacssecret1

Specify the device’s loopback address as the source address.
[email protected]#set tacplus-server source-address

Set for single connection authentication
[email protected]#set tacplus-server single-connection

Set authentication order
[email protected]# set system authentication-order tacplus
[email protected]# set system authentication-order password

Set accounting logging
[email protected]# set system accounting events login
[email protected]#set system accounting events change-log
[email protected]#set system accounting events interactive-commands
[email protected]#set system accounting destination tacplus

Verify configuration
[email protected]# show system tacplus-server
[email protected]# show system accounting

tac_plus configuration
key = Tacacssecret1
group = srx {
service = junos-exec
local-user-name = root

user = srxadmin {
default service = permit
login = file /etc/passwd
member = srx

The purpose of the tutorial is to setup an ads blocking using Bind9 DNS Server. Tutorial is divided into 2 section: Setup Pixelserv and Setup AdBlock script for Bind9.

1. Setup Pixelserv

Pixelserv is a super minimal webserver, it’s one and only purpose is serving a 1×1 pixel transparent gif file. We will redirect web requests, for adverts, to our pixelserv (running in the same bind9 server).

Install Pixelserv

cd /usr/local/bin/
curl > pixelserv
chmod 755 pixelserv

We now need a simple init script for starting/stopping pixelserv, as /etc/init.d/pixelserv.

#! /bin/sh
# /etc/init.d/pixelserv
# Carry out specific functions when asked to by the system
case "$1" in
echo "Starting pixelserv "
/usr/local/bin/pixelserv &
echo "Stopping script pixelserv"
killall pixelserv
echo "Usage: /etc/init.d/pixelserv {start|stop}"
exit 1

exit 0
chmod 755 /etc/init.d/pixelserv

Add pixelserv to startup

update-rc.d pixelserv defaults

Run pixelserv

/etc/init.d/pixelserv start


2. AdBlock for Bind9

Create new file, /etc/bind/

curl "" | sed 's/\/etc\/bind\/nullzonefile.txt/g' > ad-blacklist

Make it executable

chmod +x

Execute to download adservers file


Verify file content, make sure the path is changed from:

zone "" { type master; notify no; file ""; }; to zone "" { type master; notify no; file "/etc/bind/nullzonefile.txt"; };

Create adblock zone file, we named it as nullzonefile.txt

$TTL    86400   ; one day  
@       IN      SOA (
                    86400 )          
                A       $YOUR_DNS_SERVER_IP 
@       IN      A       $YOUR_DNS_SERVER_IP
*       IN      A       $YOUR_DNS_SERVER_IP

Reload bind9 configuration

rndc reload

Test your DNS Server

dig @localhost

Should returned your own server ip address.

The Best Ad Blocking Method

Using BIND to reduce ad server content

This article will guide you step by step to get Bind DNS running.

Install Dependencies:

[email protected]:~# apt-get update
[email protected]:~# apt-get upgrade
[email protected]:~# apt-get install build-essential openssl libssl-dev libdb5.1-dev

Download Bind:

[email protected]:~# wget

Unpack Bind:

[email protected]:~# tar zxvf bind-9.9.7.tar.gz

Configure and then compile Bind9 source pre:

[email protected]:~# fakeroot ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc/bind --localstatedir=/var --enable-threads --enable-largefile --with-libtool --enable-shared --enable-static --with-openssl=/usr  --with-gnu-ld --with-dlz-postgres=no --with-dlz-mysql=no --with-dlz-bdb=yes --with-dlz-filesystem=yes  --with-dlz-stub=yes  CFLAGS=-fno-strict-aliasing --enable-rrl --enable-newstats

If compile success, you will see below screen:

Configuration summary:
Optional features enabled:
Multiprocessing support (--enable-threads)
Response Rate Limiting (--enable-rrl)
New statistics (--enable-newstats)
Print backtrace on crash (--enable-backtrace)
Use symbol table for backtrace, named only (--enable-symtable)
Dynamically loadable zone (DLZ) drivers:
Berkeley DB (--with-dlz-bdb)
Filesystem (--with-dlz-filesystem)
Stub (--with-dlz-stub)

Features disabled or unavailable on this platform:
GSS-API (--with-gssapi)
PKCS#11/Cryptoki support (--with-pkcs11)
Allow 'fixed' rrset-order (--enable-fixed-rrset)
Automated Testing Framework (--with-atf)
XML statistics (--with-libxml2)

Compile and install bind9:

[email protected]:~# make install

Last step, we need to manually create the /var/cache/bind directory:

[email protected]:~# mkdir /var/cache/bind

Start the service:

[email protected]:~# sudo /etc/init.d bind9 start

Hopefully, bind9 will start just fine.


Tell Bind9 to utilize DLZ (Dynamically Loadable Zones) using BDB.


Enable Response Rate Limiting, to limit DNS answer and help mitigate DNS amplification attacks



I was under impression that allowing icmp in the service policy will enable tracert to work. I was wrong. After scouting around I found below tweaks that will enable tracert to run correctly.

1. Set decrement TTL
ASA# configure terminal
ASA(config)# policy-map global_policy
ASA(config-pmap)# class class-default
ASA(config-pmap-c)# set connection decrement-ttl
ASA(config-pmap-c)# exit

2. Permit icmp control messages
ASA(config)# access-list inbound permit icmp any any time-exceeded
ASA(config)# access-list inbound permit icmp any any unreachable

3. Permit icmp connection, which you should already have 😀
ASA(config)# access-list outbound permit icmp any any


Re-post from LYN forum. Credit to ansonlos.

After much try and error and research, I’ve managed to get pfSense to work with UniFi’s IPv6 allocation. For a bit of a background, I’m running the latest release of pfSense i.e. 2.2.1 and also I got this to work with my office’s UniFi which is on Biz 10.

I’d just like to share my settings here to benefit those who might want to get IPv6 to work for their pfSense box.

1. Under “System -> Advanced -> Networking”, make sure “Allow IPv6” is checked. Then go to “Interfaces”, click on “WAN”. Under IPv6 Configuration Type, choose “DHCP6”. MTU should be 1492.

2. Under DHCP6 client configuration section, put a tick mark on “Request a IPv6 prefix/information through the IPv4 connectivity link”. In the drop down list for DHCPv6 Prefix Delegation size, choose “56”. (I have no idea why this is the case, but the allocated subnet for both the PPPoE and LAN are actually 64. I’ve tried choosing 64 here, but it doesn’t work. Maybe 56 is for a Biz account. If 56 doesn’t work for you, try choosing 64 especially if you’re on home UniFi account.)

Also, put a tick mark for “Send an IPv6 prefix hint to indicate the desired prefix size for delegation”. Click on “Save”.

3. Now, go to “Interfaces”, click on “LAN”. Under IPv6 Configuration Type, choose “Track Interface”. Type 1492 for MTU.

4. Under Track IPv6 Interface section, ensure IPv6 Interface “WAN” is selected and as for IPv6 Prefix ID, just type 0 (zero) here.

5. Under Private networks section, ensure “Block Bogons networks” is unchecked. Then, click “Save”.


6. Finally, I’ve read that IPv6 requires ICMP to work. So under Firewall -> Rules, I’ve also created a rule to allow ICMP IPv6 traffic for both WAN and LAN.

I’m not entirely certain what the security implications are with the above settings to the firewall, so please be forewarned.

With the above settings, I’m able to get IPv6 addresses for PPPoE and LAN interfaces for pfSense and also devices connected to the LAN. Hope this helps those who are using pfSense.

Option 1 – Quick and Dirty

You can quickly turn on logging by typing in the following into the server shell:

[code]rndc querylog[/code]

Then you can follow the information in the standard syslog.

[code]tail -f /var/log/syslog[/code]

You should see output like the following letting you know that queries are now logged:

[code]Sep 14 22:23:20 ns01.companya.local named[7896]: query logging is now on[code]

<h3>Option 2 – Full and Stored Logs</h3>
If you want to store full logs that you can go back to at a later date you’ll need to make some changes to the BIND configuration.

Logon to your shell as usual, and type the following:
[code]nano /etc/bind/named.conf[/code]

Put in the following code at the bottom:

[code]logging {
channel query.log {
file “/var/log/query.log”;
severity debug 3;
category queries { query.log; };

Now we need to create the log:

[code]touch /var/log/query.log[/code]

Make it writable by the BIND process:

[code]chown named.named /var/log/query.log[/code]

Give BIND a reboot:

[code]service bind9 restart[/code]

And now you should be able to follow the queries as any other log:

[code]tail -f /var/log/query.log[/code]



Connect to xbian using ssh

Default username xbian password raspberry

Perform package update and upgrade

[email protected]:/home/xbian#apt-get update
[email protected]:/home/xbian#apt-get upgrade –y

Install xbian optimized transmission binary

[email protected]:/home/xbian#apt-get install -y -o Dpkg::Options::=”–force-confdef” -o Dpkg::Options::=”–force-confold” xbian-package-transmission


1. Default download location is at /home/xbian
2. Access webui via http://xbianip:9091
3. Default webui login admin password raspberry

It seems that Ubuntu/Debian (or perhaps other distros as well) prefer IPv6 DNS records instead of IPv4 when applicable and some times this results in loss of connectivity or similar problems.
I ran into this issue today while trying to update an old VPS with apt-get/aptitude. Specifically, was being resolved in an unreachable IPv6 address and I had to wait some minutes for timeout every time.
Fortunately, there is an easy fix for this; you just have to edit the file located at: /etc/gai.conf which is the configuration for getaddrinfo(). There you have to uncomment line ~54 which reads: “precedence ::ffff:0:0/96 100″, and you are all set! (assuming that every other option is commented out by default as in my case).



Network Topology

From Dashboard-Network Topology-click on any nodes and getting this error “It appears as though you do not have permission to view information for any of the services you requested…
If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file.”
Edit /omd/sites/xxx/etc/nagios/cgi.cfg, look for below variable and change to * (all authenticated users)

Then restart apache


Posted in NMS.