Showing posts with label Systems Administration. Show all posts
Showing posts with label Systems Administration. Show all posts

Saturday, March 13, 2010

FIREWALL: The APF Guide

As much as I would like to say that NIX systems are way too far secured than most systems.  But apparently they're not!  Crackers love the challenge of breaking into a system and they favor NIXES because of its well known notoriety for security.  In this article, again I will be sharing with you a snippet of one excellent post from the net which gives credible insight on how to set-up an intelligent firewall for you box.


What is APF (Advanced Policy Firewall)? APF FirewallAPF is a policy based iptables firewall system designed for ease of use and configuration. It employs a subset of features to satisfy the veteran Linux user and the novice alike. Packaged in tar.gz format and RPM formats, make APF ideal for deployment in many server environments based on Linux. APF is developed and maintained by R-fx Networks: http://www.rfxnetworks.com/apf.php

This guide will show you how to install and configure APF firewall, one of the better known Linux firewalls available.10

Limit SSH connections to one IP with APF in this advanced tutorial
Requirements:

- Root SSH access to your server

Lets begin!Login to your server through SSH and su to the root user.

1. cd /root/downloads or another temporary folder where you store your files.

2. wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz


3. tar -xvzf apf-current.tar.gz

4. cd apf-0.9.5-1/ or whatever the latest version is.

5. Run the install file: ./install.shYou will receive a message saying it has been installed

Installing APF 0.9.5-1: Completed.
Installation Details:
  Install path:         /etc/apf/
  Config path:          /etc/apf/conf.apf
  Executable path:      /usr/local/sbin/apf
  AntiDos install path: /etc/apf/ad/
  AntiDos config path:  /etc/apf/ad/conf.antidos
  DShield Client Parser:  /etc/apf/extras/dshield/
Other Details:
  Listening TCP ports: 1,21,22,25,53,80,110,111,143,443,465,993,995,2082,2083,2086,2087,2095,2096,3306
  Listening UDP ports: 53,55880
  Note: These ports are not auto-configured; they are simply presented for information purposes. You must manually configure all port options.

6. Lets configure the firewall: pico /etc/apf/conf.apfWe will go over the general configuration to get your firewall running. This isn't a complete detailed guide of every feature the firewall has. Look through the README and the configuration for an explanation of each feature.
We like to use DShield.org's "block" list of top networks that have exhibited
suspicious activity.
FIND: USE_DS="0"CHANGE TO: USE_DS="1"

7. Configuring Firewall Ports:

Cpanel ServersWe like to use the following on our Cpanel Servers

Common ingress (inbound) ports# Common ingress (inbound) TCP ports -3000_3500 = passive port range for Pure FTPD
IG_TCP_CPORTS="21,22,25,53,80,110,143,443,2082,2083, 2086,2087, 2095, 2096,3000_3500"
#
# Common ingress (inbound) UDP ports
IG_UDP_CPORTS="53"


Common egress (outbound) ports
# Egress filtering [0 = Disabled / 1 = Enabled]
EGF="1"

# Common egress (outbound) TCP ports
EG_TCP_CPORTS="21,25,80,443,43,2089"
#
# Common egress (outbound) UDP ports
EG_UDP_CPORTS="20,21,53"



Ensim Servers
We have found the following can be used on Ensim Servers - although we have not tried these ourselves as I don't run Ensim boxes.

Common ingress (inbound) ports# Common ingress (inbound) TCP ports
IG_TCP_CPORTS="21,22,25,53,80,110,143,443,19638"
#
# Common ingress (inbound) UDP ports
IG_UDP_CPORTS="53"


Common egress (outbound) ports
# Egress filtering [0 = Disabled / 1 = Enabled]
EGF="1"

# Common egress (outbound) TCP ports
EG_TCP_CPORTS="21,25,80,443,43"
#
# Common egress (outbound) UDP ports
EG_UDP_CPORTS="20,21,53"


Save the changes: Ctrl+X then Y

8. Starting the firewall
/usr/local/sbin/apf -s

Other commands:
usage ./apf [OPTION]
-s|--start ......................... load firewall policies
-r|--restart ....................... flush & load firewall
-f|--flush|--stop .................. flush firewall
-l|--list .......................... list chain rules
-st|--status ....................... firewall status
-a HOST CMT|--allow HOST COMMENT ... add host (IP/FQDN) to allow_hosts.rules and
                                     immediately load new rule into firewall
-d HOST CMT|--deny HOST COMMENT .... add host (IP/FQDN) to deny_hosts.rules and
                                     immediately load new rule into firewall


9. After everything is fine, change the DEV option
Stop the firewall from automatically clearing itself every 5 minutes from cron.
We recommend changing this back to "0" after you've had a chance to ensure everything is working well and tested the server out.

pico /etc/apf/conf.apf
FIND: DEVM="1"
CHANGE TO: DEVM="0"
10. Configure AntiDOS for APFRelatively new to APF is the new AntiDOS feature which can be found in: /etc/apf/ad
The log file will be located at /var/log/apfados_log so you might want to make note of it and watch it!

pico /etc/apf/ad/conf.antidos

There are various things you might want to fiddle with but I'll get the ones that will alert you by email.

# [E-Mail Alerts]
Under this heading we have the following:

# Organization name to display on outgoing alert emails
CONAME="Your Company"

Enter your company information name or server name..

# Send out user defined attack alerts [0=off,1=on]
USR_ALERT="0"

Change this to 1 to get email alerts

 # User for alerts to be mailed to
USR="your@email.com"

Enter your email address to receive the alerts

Save your changes! Ctrl+X then press Y
Restart the firewall: /usr/local/sbin/apf -r

11. Checking the APF Log

Will show any changes to allow and deny hosts among other things.
tail -f /var/log/apf_log

Example output:
Aug 23 01:25:55 ocean apf(31448): (insert) deny all to/from 185.14.157.123
Aug 23 01:39:43 ocean apf(32172): (insert) allow all to/from 185.14.157.123


12. New - Make APF Start automatically at boot timeTo autostart apf on reboot, run this:

chkconfig --level 2345 apf on
To remove it from autostart, run this:
chkconfig --del apf


13. Denying IPs with APF Firewall (Blocking) 

Now that you have your shiny new firewall you probably want to block a host right, of course you do! With this new version APF now supports comments as well. There are a few ways you can block an IP, I'll show you 2 of the easier methods.

A) /etc/apf/apf -d IPHERE COMMENTHERENOSPACES
> The -d flag means DENY the IP address
> IPHERE is the IP address you wish to block
> COMMENTSHERENOSPACES is obvious, add comments to why the IP is being blocked
These rules are loaded right away into the firewall, so they're instantly active.
Example:

./apf -d 185.14.157.123 TESTING

pico /etc/apf/deny_hosts.rules

Shows the following:

# added 185.14.157.123 on 08/23/05 01:25:55
# TESTING
185.14.157.123
B) pico /etc/apf/deny_hosts.rules
You can then just add a new line and enter the IP you wish to block. Before this becomes active though you'll need to reload the APF ruleset.

/etc/apf/apf -r

14. Allowing IPs with APF Firewall (Unblocking)

I know I know, you added an IP now you need it removed right away! You need to manually remove IPs that are blocked from deny_hosts.rules.
A)
pico /etc/apf/deny_hosts.rules

Find where the IP is listed and remove the line that has the IP.
After this is done save the file and reload apf to make the new changes active.

/etc/apf/apf -r

B) If the IP isn't already listed in deny_hosts.rules and you wish to allow it, this method adds the entry to allow_hosts.rules

 /etc/apf/apf -a IPHERE COMMENTHERENOSPACES
> The -a flag means ALLOW the IP address
> IPHERE is the IP address you wish to allow
> COMMENTSHERENOSPACES is obvious, add comments to why the IP is being removed These rules are loaded right away into the firewall, so they're instantly active.
Example:

./apf -a 185.14.157.123 UNBLOCKING

pico /etc/apf/allow_hosts.rules

# added 185.14.157.123 on 08/23/05 01:39:43
# UNBLOCKING
185.14.157.123


reference:  http://www.webhostgear.com/61_print.html

Wednesday, February 24, 2010

Embracing Basic Systems Administration to programming Databases using Microsoft Access

This is a continuation of my previous post..."Start of my open source stint"...

From my previous post, I was merely story telling how I became a fanatic computer addict by getting my hands dirty on a pentium 100 machine with 8 megs of ram installed with Windows 95! My first assumption was to determine whether I could really pass through administering stand alone ....sneaker net...set-up to understanding the underlying technologies at that time. The seamless efforts and sleepless nights paid off well, since I get a chance to really troubleshoot problems alot and with very limited access to internet resources... Books are the only resource that held me sane and comforts my deep questions to problems that we encounter on a daily basis. I guess during those days attending information tools training was a comfort but finding schools can be a very daunting task...I mean the foundation of learning and eagerness to learn new things with these tools is emmensely passionate. At least on my part its clear that 1996 was a turning point of my career as an IT professional and specializing on sysetms administration.

It was sometime around september of 1996 that my employeer found a suitable schooling for its candidate employees and lo and behold -- perhaps a great opportunity for me. After some time, I found myself siffing through alot of the day-to-day task in helping out my colleagues with their daily chores of finding solutions to obvious problems. Modesty aside, I begin to be the most in-demand employee of that office which eventually took much of my time working out solutions to problems numbering from word processing, spreadsheet and powerpoint issues. As you can say I became an expert in dealing with scenarios wherein I was literally doing their electronic document work for them!

A pain? yes...but it was until one time that I needed to understand that there is much more than just encoding those legal documents we have and turning them into soft-copy formats. Part of my work entails organizing alot of applications coming from its clientele and encoding them for soft-copies where we can store to tape. The never ending cycle of encoding without the avability to retrieve much needed usable data was beginning to dig down into my nerves! I was looking at ways on how to automate things.

....COME DATABASE SOFTWARE
as you would know part of the microsoft office product suite is a tool called access! Yes, microsoft access to be exact. I looked at it with prying eyes....deep down I begin to feel its energy and power expecially to organizations who has little to no knowledge of understanding microsoft access. I mean they have DBASE programs which they created but it has outlived its usefulness to the departmental arena. One day I fired up microsoft access and started creating tables with it. I then got to a bookstore and looked at books that could help. There, I found Sams edition of Microsoft Access in 21 Days!!! goodness.... I immediately saved money to buy that book and start working with my first database application. Soon after that I bought another book which covers a much deeper learning curve of just the basic tables, queries and forms features of microsoft access! Visual Basic for Applications took me by storm. I became adhorently facinated with its power and what it could do to my simple application, I was able to extend it to a certain degree but, that's it.

To be continued...