Friday, 28 June 2013

Amazing, Free mind-mapper Xmind for Mac, Windows, and Linux




I hope this post will bring to your attention a free tool that has now become a great help to my everyday
life. The credit goes to a mind-mapper called Xmind; available for download (or purchase for premium features like more exporters.) at www.xmind.net
I absolutely love this thing. I can do everything in it. From organizing my thoughts, to planning my day, to solving problems, to starting and finishing projects. There are so many features and pros about this software, that I would recommend to pretty much anyone. 

I particularly have an intrest in the idea and practice of mind mapping. Getting an image of your mind out there on paper, presenting your thoughts in a structured, visual, and logical representation. I have tried other mind-mappers, but just dont find them as fluid and flexible as Xmind. Take Freemind for instance. Its what I started with but it's only good for completely structured mind mapping. You have to have a strict hierarchy. No multi-maps projects, no free-floating nodes, no lines for creating manual relationship between non-directly relating nodes. Xmind has all this and more.

Heres a map I made in xmind before i made this post. No need for a thousand words! All i wanted to say is simply covered in the mind map. No fuss. No Fluff.

(Click for larger view)

One of my favorite things to do with xmind is take notes. You can go so fast because it can be fully keyboard controlled, and you keep track of what leads to what during a conversation or lecture.

Anyway, thats far from all there is to this monster, but there you go; Thats my two bits. Enjoy. And I hope it helps you in some shape or form as it has me.

Saturday, 2 March 2013

Game Latency (Lag), Traceroute, Zenmap and Network Troubleshooting

Gamers and computer guys are similar in a few ways.  One way i would go so far as to say this is their desire for no lag, or latency.  A website designer hates when it takes so long to load a Wordpress.com page and a gamer hates when his "lag" is over 300 in an intense FPS.  There are many other scenarios, but I am here to tell you some of the ways i have learned to troubleshoot things like network speed, lag, latency and the like.

Before we proceed I will tell of a few necessary fundamentals you need to understand the following concepts. 

What is lag?
There are two kinds of "lag". Lag normally refers to hardware lag on the user's side such as Frames per second in a game. (FPS) or a freeze of the screen, and the spinning wheel of death on mac, or a "Glitch"

The other kind of lag, Latency, or the more understandable term: "Response time." It is the response time between the computer you are are, and the computer or server you are connected to. This also a cause of great distress for people who are particular about their internet speed. This network latency lag is what we will be talking more about.

What is the Internet really made of?
To understand what i will be telling you next you must understand this; the Internet or more properly defined in these terms, Intranet, is a globally wide connection or web of interconnected computers. (Experts, correct me if im wrong, but I think this is generally understood as the Intranet.)
Not to bore you with theory and history of the internet, but its not quite that simple. Sure, we could run cables from one computer to the next, and then from that computer to the next and so on but that would make it more big and bulky then the Internet needs to be. What is between the computers is what we are interested in. Its something most of us don't pay that much attention to. And for most of us its unnecessary but for some of us that run into problems, we want to know why they are happening, and how to solve them. 

There are hundreds of kinds of devices that lie between you, another country and a website. Plainly put, these devices comprise mostly of Switches, Routers, Domain name Servers, Your internet service provider, and large telecommunications cables that go under the sea. Or, smaller ones that go to the office or house next door.

With the continued use of the Internet Protocol Version 4, which allows only 4,294,967,296
addresses because of its addressing protocol, we couldn't just use a bunch of cables, connect everything and give every device an IP of its own. There are too many devices! We did, but we have more devices than that. So what we did next was make use of the idea of subnetworks and Local Area Networks (LAN).

 Now subnetworks is getting into a pretty complicated matter, so i will simplify. You have a main network, that is the internet, then attached to that network are smaller networks, often defined by entities such your ISP or a corporation or a hosting company, then, attached to those networks is you home LAN, your LAN has both an internal and an external IP in most cases, your router or firewall makes this possible. Your LAN gives you your very own mini-internet and each of the computers on that mini-internet have an IP address.
There is more in between you and a website, but those are normally hundreds of connections, not networks.

Heres how we can see those connections.

Traceroute
Traceroute is a multi-platform command line network diagnostic tool. And its named is very explicably chosen. It does what is sounds like. It traces routes. It traces routes, known as hops or nodes between the computer you are running it on, and your target. You target can be an IP address or a url such as:
www.google.com
You put in the the target address, run the trace, and it gives you the address (and more information) of all the nodes in between. AND LAG TIME!!! If you know what the program ping does (comment if you don't) its basically that, but it pings every node and the shows you the total ping time between you and the target address.
It is used on *NIX systems for the most part, but is open sourced and written in a language supported by all operating systems.

I use a Mac, so if you want to follow along it is included on every mac natively:


  1. Open up a Terminal.app window and type the following:
  2. traceroute www.google.com
Let it do its work, and when its finished you should see something like this.


Starting from the top you can see the command I entered, then the program starts to give its opinion of things. It tell us that www.google.com has multiple IPs, but its chooses the nearest. Thats how google works with so many people to serve and only one simple domain name.

Then it shows you each of the nodes on the route to the google server its trying to reach.
We can see at the bottom that there are a total of 12 hops from us and the server.
The last of the 3 pings is what you need to worry about. (Not sure what the other millisecond readings are. O.o)

OK, so what is this doing for me? How can it help me?
Well, lets say you were looking for a server to join for a game such as Minecraft. And you have the IP of 2 servers you are looking at. You could take those, replace www.google.com with the address of the server and run the program. Run it for both of the IP's and you can see which server will have the fastest response time. Generally the server that returns the fewest hops, will be best for you. (This does not measure CPU lag that is often a cause of lag in Minecraft servers actually, this is pure network.)

Is there any GUI version of this... traceroute? Its too many numbers! Im more visual!
Your in luck. Fortunately the guys over at nmap.org have created a GUI program called "zenmap" for the incredibly powerful command line program nmap. Now nmap is something quite juicy and will require another post for me to go into detail, but i think that with this background i have given you, you will be able to discover nmap for yourself (As nmap is the default function of zenmap and the traceroute is a subroutine that is just accessing that program for you.)
Download the program then I will show you how to do traceroute's in it.

This is the screen you get when you open it by default. Pretty self explanatory.


I will input the IP of my favorite Minecraft server and choose "Quick traceroute" from the Profile drop-down. Feel free to experiment with the other types of scans! (Curtain laws may apply in certain jurisdictions. ) Ask question in the comments if you like.



After the scan, this is what is returned


MORE NUMBERS!! No, wait, thats not all.
Switch to the Topology tab.


Yeah man! Now thats what im talking about!

Now, without closing the program put in a new address and run the quick traceroute scan again.
Then look at the topology map now and surprise yourself.
Now you can map out the whole internet! No, not really. It would crash your computer and you probably wouldn't see anything displayed. (I tried over 21,000 nodes once! And it froze LOL)



Oh, one more thing i forgot. In the controls toolbar, change the option so you can see latency displayed.


There are tons of other things that amazed me by just clicking around in zenmap. Go for it.

Thank you for reading, please comment and feel free to ask questions if you like.















Thursday, 3 January 2013

Understanding Apache Virtual Hosts, creating one in 6 steps

I have been using Apache2.2 web server for numerous applications as long i can remember. (4 years) And until last night i have been missing out on the real power behind the software and its ability to create virtual hosts. Now i have like 5 websites running on one server with the power of virtual hosts in Apache2.

It was one of those late nights that every student studying System Administration and Networking gets.
Out of necessity i was forced to finally break the brick wall between be ABLE to make an apache virtual hosts and NOT being able to create one.

It is from many blogs such as these and the long-lasting and extremely helpful *NIX community that i finally pieced together how to do it. I dont just write this to say i did it (Although i threw my hands up when i did) im writing this to contribute to the community of learners and teachers out the in the computer world. Hopefully i can simplify the steps down to their bare bones.

What you are trying to achieve:

  1. You want to serve multiple websites, but you only have one server....... CAN YOU? YES!
  2. Do something you thought you couldn't....... CAN YOU? YES!
Prerequisites:
  1. Linux Server (Debian or Ubuntu Server Edition Recommended - i use Debian)
  2. Apache web server 2.x
  3. Terminal or Shell access (Either through telnet, or SSH)
  4. Root or Sudo access Preferably (Not sure if needed, i will get back to you.)
  5. A domain. You need be able to create subdomains. Preferably from www.no-ip.com (They have free ones you can have 50 subdomains for any premium domain you buy, i own rudkerfern.net. I use it for testing. Its also my Minecraft IGN :p)
My Model System:
  •  I am using Debian GNU/Linux 6.0.6 Codename "Squeeze"
  • I am on an Apple Network with IP adresses that build upon the 10.0.1.0 framework (no 192 for me :p) 
  • I will be using sub.example.com as the example domain (sub.* means any subdomain you created)
  • I am doing most of my administration on a mac and ssh'ing in.
Note: "$" stands for the Linux Terminal Prompt

I did this on my home system so i have a dynamic IP (changing every few days) and premium domain registered at www.no-ip.com. You can still do this if you have a static IP. I will leave notes to tell you what to do if you have a static IP. I also have a firewall which mean i had to port forward the respective ports for anything i wanted to access on the inside from the outside world. You will need to do the same. I have another tutorial on port forwarding.

We will be using the standard http port 80
Nothing special.
Anything enclosed "<  >" means you need you fill in YOUR respective value
WE WILL BE MAKING A NAME-BASED VIRTUAL HOST

Let get started.

STEP 1, get shell access:

SSH or telnet into your server if you dont have physical access
Open up Terminal.app on Mac and enter the following


$ ssh <user>@<host/ip>

Example $ root@www.example.com

If you need to do this in Windows, you will need a telnet/ssh client called http://www.putty.org/
It works in a similar fashion.


STEP 2, get in the right directory:

On my Debian system the directory with all the configuration virtual hosts in under
 /etc/apache2/sites-available

$ cd /etc/apache2/sites-available



STEP 3, write the configuration:

Now that you are in the right directory you can make the config file with my favorite text editor "nano"


$ nano sub.example.com
Heres all i needed to get a virtual host working.
You can copy this over and edit it to your needs.


<VirtualHost *:80>
        ServerName sub.example.com

        DocumentRoot /path/to/files/to/serve
        <Directory /path/to/files/to/serve>
                Options FollowSymLinks
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>
         </VirtualHost>

You will need to change "ServerName" to the subdomain you setup with your domain registrar.
And change "DocumentRoot" to the directory that you want to server files from

"<VirtualHost *:80>" just says that you are listening to all requests from all ip on port 80
You can of course add any other standard apache2 directives into this config file for this particular site.

You might be interested in the "AllowOverride" directive. This tells apache2 wether or not to use Authentication for people that are requesting anything from this site. None means NO authentication. The only option i use would be "AuthConfig" instead of "None" on the "AllowOverride" directive.

Now

ctrl+o and the <ReturnKey> to save
and ctrl+x to exit nano

STEP 4, enable the newly configured site:
You can use the apache2 tools "a2ensite" and "a2dissite" to enable and disable site configs respectivly


$ a2ensite sub.example.com
It should enable the site and give you the next step. For you guys out there that HAVE to know what apache just did for you, here it is: it created a Symbolic Link aka an "Alias" on desktop systems in
/etc/apache2/sites-enabled/sub.example.com
If you want to see more on that, cd that directory and try the command $ ls -la
You will fond some interesting things next the site config file ;)

STEP 5, reload apache2:
Yep, what the step says...

$ /etc/init.d/apache2 reload



Apache is very good  at debugging config files, if something is wrong it will tell you what and where.
If you got no error then stand up and shout! You did it. No wait, never jump to soon, there will be plenty time for that, lets test it first!

Go to your browser and type in "sub.example.com" or whatever you domain and subdomain address is.
If you have nothing in the folder you wanted to serve from and it give you and "Index Of" page then you are in luck buddy. It worked, simply put in your content. E.g an index.html or index.php page.
  


STEP 6, post a comment if you have any problems:

Go ahead! Bring it.


Notes: to disable a site just use the "a2dissite <sitefile>" command then reload apache.










Wednesday, 18 April 2012

How to Port Forward on a DLink router for your server

It just hit me that most people in the world use Windows, (duh) so i had better do a quick tutorial on
port forwarding for various servers on a non-apple router, i will be using a DLink as an example.
Port forwarding on a Dlink is just as simple and straight forward as on an Apple Time capsule
or Airport Extreme.
Why would you need to Forward a port?
Simple answer: so people can access you server from outside you LAN or Local Area Network.
So lets get to it.
Note: this tutorial was requested by a Minecraft player i know by the name of Veyleus. ~Hope this helps :)

What you will need >>>

  • Username and Password to your Dlinks admin page
  • 5 minutes of time if all goes well
  • 7 minutes if you have trouble and need to ask a question on the mini-forum

Step 1, how to access the routers admin page:



First you need to determine if your Dlink will let you access the admin page via wifi.
Some dont allow this for security reasons. But you can change that setting.
Open up and browser and type in 192.168.0.1 this is the default address for a Dlink router
For a Linksys and most other router its 192.168.1.1

If you get a page not found or and you cant connect and itsnot prompting you for a username and
pasword, then its probably not allowing wireless administration. To fix this find an old Ethernet back in the back of your desk drawer and plug in one end to your computer and the other to the back of your router in the Ethernet port. (Assuming that you have a laptop and can go to where your router is or have a long enough Ethernet cord)

Then just enter the same address: 192.168.0.1 in your browser.
It should supply you with 2 fields to enter you password and user name.
The default to Dlink routers is Username: admin Password: private

But normally the password is not the default one, you have to know that password or ask someone who does.

If all go well the admin page should be served up.

Step 2, forwarding the port:

Click the "Port Forwarding" button on the side, a page similar to this should be displayed



Move down to where you see a table like this:


Pick and name of you choice. e.g. Mincraft server.
Then for IP Address put the local ip or you computer, you should know how to find the local ip of your computer but if you don't, drop me a comment. 

Under ports to open:
Put a range of ports instead of just one port, i find it works better for server FTP servers and Minecraft.
For Minecraft i would put the ports like this: 24000-26000 assuming you Minecraft server is running at the default port of 25565.
Put the same port range both the TCP and UDP fields.
You can leave the "Schedule" and "Inbound Filter" selection boxes as they are shown in the image.

Step 3, saving changes and testing:

Click save changes at the top and let your router do its thing and reconfigure.

After that to test it, turn on your server and test it with your local ip to confirm it is working and serving.
Then find your external IP and whatismyip.com and then you that ip to connect instead.

If you can connect to your server using your external ip then grab a bag of pretzels and a glass of Koolaid and just marvel at how you were able to get it to work the first time you tried it :)

But things never work the first time with me so if you have any trouble, drop me a comment and i will see if i can help.

Trouble Shooting:

Some routers may not support ranged port forwarding, so instead of putting 24000-26000 for the ports, just put 25565 or whatever port you are looking to forward.

Some routers may also not allow outside connections from your local network. So you might need to go a to a friends house or an internet cafe to test it. But this is rarely the case.

Make you that you server is running on the port you think it is and that you port forwarded that port.



Tuesday, 17 April 2012

How to port forward on an apple router


When i first needed to port forward some ports for my FTP server on my router, in this case
a Time Capsule i had a bit of trouble finding a tutorial on how to do it.
Most of the port forwarding tutorials out there are for Linksys, Netgear, and Cisco routers.

So in this little tutorial i will show you step my step how to forward ports on an Apple Time
Capsule router or Airport extreme. Now the interface for the Airport utility has changed a bit
it the last update. i will be showing you using the most recent version.

What you will need:

Full password privileges to the router
You need to know what ports you want to forward for you server
A few minutes of time


Step 1:


Go to spotlight and type in "airp" , the Airport utility should come up
hit enter and start up the program.




Step 2:


Click on the you main router if you have more than one for instance if you have
another one to extend you network. Then Click "Edit" to edit the router configuation.



Step 3:


Navigate to the "Network" tab, and go down to where is says "Port mapping"
Check "Enable NAT Port Mapping Protocol"
Click the "+" button to add a new Port map.



Step 4:


Notice i have allowed a range of 10 ports.


Fill out the form like this>

Add a Description of your choice.

For Public UDP Ports: put the range of ports you would like to forward. For example
putting 18-25 will forward ports 18 through 25. Even though the standard ftp port is 21,
i found you were better guaranteed a remote connection if you forwarded a few other ports in
that range. For you info this will also forward the ports for FPT, SSH, and TELNET
protocols. So you killed 3 birds with one stone.
Put the same value in all these fields also:

Public TCP Ports

Private UDP Ports

Private TCP Ports

Now for "Private IP Address" you will want to put the local ip of the computer
you want to forward the public requests to. E.g the LAN ip of the server that you
want to access from the outside.

Click save. You will then need to update the router. Click Update.
The router will be unavailable for a few seconds while it reconfigures.

When you see a green icon next to the router appear again, then the router is a ready
and now accepting external requests on the ports you just forwarded and is sending those
requests to the IP address on the computer on your LAN that you specified.


Step 5, Testing it:


Now i am assuming you have the server up and running that you wanted to connect to from outside
your LAN e.g. from any hotspot in the world (pretty cool eh?) wether it be FTP or Minecraft.

I will use FTP as an example.
Go to whatismyip.com to find your external ip, your networks id on the www.
Copy the ip to your clipboard.
Go to your favorite browser and type in the following:

ftp://your_external_ip:21

( replace "your_external_ip appropriately" )( replace 25 with the port you forwarded )

if you are prompted with a username and password by the browser then you did it!
Congrats!
However nothing ever works the first time i do it so if you have any trouble
just drop me a comment and i'll help you.

Extras>>> Common Ports:


  • FTP - 21
  • SFTP and SSH - 22
  • TELNET - 23
  • SMTP mail server - 25
  • NFS 2049
  • MySQL - 3306
  • Minecraft - 25565 (hehe :D)
  • VNC - 5900
  • For a complete list of known ports visit this wiki link


Security Note>>>

Remeber that forwarding these ports will allow people to connect from the outside world.
The only way to prevent evil-doers is to provide a strong password to you FTP os SFTP server.
If not people black-hat hackers can brute force the password to the FTP server, get in, steal you files and or delete them. Quite a serious matter. Btw just becuase i know how to brute force hack a network dosent make me a bad hacker, if you really know about the term, you will know it can used for good and bad. I use those skills to test my own network security.

If you would like me to do a tutorial on network security and penetration testing, just drop me a comment. I would be happy to.


Thursday, 12 April 2012

Blog Updates, new stuff

Hey readers!
Im back from my little break. Thank you Knome for standing in for me and posting that bit about be being away. Enough talk, lets get to the point. I would like to include some of the following as new features/pages to this site.
  • A Q&A page
    • Here you can ask me IT related questions or state a problem you might have
    • The least i can do for you readers is to check the site everyday and answer these
  • Tutorial Articles and links
    • I would like to get more tuts mixed in with my reviews
    • Reviews are good an all but when i go searching the net to find out how to
    • something i usually want a well-written blog tutorial
    • You can also request tutorials on the Q&A page
I have a couple a cool things i would like to make tutorials on, things that i did not know myself and then
went out and found a tutorial or a combination of tutorials to teach me how to get the job done.
So stay tuned, use Google listen to jango.com  and play on Epicraft! :D

Saturday, 17 March 2012

Busy

Hi, Knome here, owner of the blogs
I hope Rudker doesn't mind me posting this
Rudker has been quite busy recently and hasn't had time to make a post on this blog. Rest assured he shall return. When? I'm not sure, but I think it'll be soon
Stay happy, stay loyal, stay subscribed

        - Knome