| 
                   
                   6. Maintaining  
                   
                    - Overview 
                    
 - hwctl 
                    Utility 
                    
 - Dialog 
                    Menu 
                    
 - Web 
                    Interface 
                    
 - Operating 
                    System 
                    
 - Updates 
                    
  
                    
                  6.1 
                  Overview Once you have your Honeywall installed, 
                  configured and deployed, now what? How do you maintain the 
                  system, how do you keep it updated, how do you modify 
                  configurations? We will cover three different options for 
                  administering your Honeywall; hwctl, the Dialog Menu 
                  and Web Interface, We will then finish with updates, how you 
                  automate keeping the OS and Honeywall functionality current. 
                   Before we can begin with administration, you need to 
                  quickly understand how the system saves and uses the 
                  information you give it. All of the values you give the system 
                  (IP addresses, email addreses, etc) are stored as variables in 
                  a special configuration directory in /hw/conf. Each 
                  value is stored in its own unique filename, similar to how 
                  /proc file systeme works on many Unix systems. For example, 
                  the file /hw/conf/HwTCPRATE contains the value for the limit 
                  of how many outbound TCP connections are allowed. There are 
                  currently over 50 files (unique variables) stored in this 
                  location. The system scripts and Honeywall functionality use 
                  these to determine its behavior. Whenever you use one of the 
                  utilities below to configure or modify the system, you are 
                  changing the values stored in the variables. At no time should 
                  you manually modify any of these variables, such as trying to 
                  use vi(1). Instead, use one of the three interfaces we 
                  provide, as include a variety of internal checks. 
                   Now, trying to archive or transport these values can be a 
                  pain in the butt. So, in addition, we created the 
                  configuration file /etc/honeywall.conf. This is a simple 
                  ASCTII text file that takes all the variables and their values 
                  from /hw/conf, and stores them in a single file. This file is 
                  NOT used by the system. Instead, this is a simple way for you 
                  to store the system configuration (such as to a floppy) or 
                  transport to another system (such as over scp). This file is 
                  updated automatically everytime a variable is updated. For 
                  more information on how variables are stored and used, please 
                  refer to Sec 
                  9: Internals. 
                     
                  6.2 hwctl 
                  Utility /usr/local/bin/hwctl (which stands 
                  for "HoneywallControl") is a command line utility that allows 
                  you to change the values of Honeywall variables, updates and 
                  backs up /etc/honeywall.conf. In addition, when a variable is 
                  changed it gives you the option to automatically restart only 
                  those services that are affected by the variables changed. It 
                  is the only supported method of interacting with the Honeywall 
                  from the command line, and provides the interface for remote 
                  administration and management of your Honeywall. In addition, 
                  both the Dialog Menu and the Walleye interface call on 
                  the utility hwctl whenever they need to make a change 
                  to any variable or restart any service. Advanced users will 
                  most likely want to know about the command line interface, as 
                  well as the programming API methodology, to customize and 
                  enhance the Honeywall. If you know what variable you want to 
                  change, there is no need to go through the extra motions 
                  (mouse or keystrokes) of traversing menu interfaces just to 
                  set a single variable and make it take effect. This is where 
                  the command line interface, hwctl, comes in most handy. 
                  You can learn more about hwctl with its help command hwctl 
                  -h or reading the Sec 
                  9: Internals Section. 
                   Here are some examples. First, there is a variable named 
                  HwTCPRATE (stored as the file 
                  /hw/conf/HwTCPRATE) which holds the value for how many 
                  outbound TCP connections the system will allow before 
                  restricting anymore connections. You can see the value of this 
                  variable using hwctl like this:  
                  # hwctl HwTCPRATE HwTCPRATE = 20  
                  You can change the value of HwTCPRATE to 30 using this 
                  command:  
                  # hwctl HwTCPRATE="30" 
                   You can change the limits for TCP outbound connections and 
                  have those changes take effect immediately with the '-r' 
                  option. 
                   hwctl -r HwTCPRATE="30" 
                   You can have the system check to see if any variables have 
                  been changed, and if they have been changed, automatically 
                  start any services. If no variables have been changed, report 
                  as such. 
                   hwctl -r 
                   You can see all variables currently being used with the 
                  -A flag, as shown here: 
                  # hwctl 
                  -A HwUDPRATE=20 HwTCPRATE=20 HwFWBLACK=/etc/blacklist.txt HwMANAGE_NETMASK=255.255.255.0 HwWALLEYE=yes HwSEBEK=yes HwSEBEK_LOG=yes HwLAN_BCAST_ADDRESS=10.0.0.255 . 
                  . .  
                  [Note: Using -a does not put spaces around the 
                  equals signs, which is the same format as the 
                  /etc/honeywall.conf file. If you wish to parse the 
                  output easier with programs like awk, you can use the 
                  -a option and output will look more like the earlier 
                  example showing just HwTCPRATE.]  
                    
                  6.3 Dialog 
                  Menu The Dialog 
                  Menu is the classic interface to administering the 
                  Honeywall CDROM. It was originally used in the Eeyore 
                  version. The new version is very similar, except it has new 
                  features added (and is blue instead of red). While this 
                  interface has the advantage of working locally on the system, 
                  it has the disadvantage of not being very user friendly.  
                  To start the menu, execute the command menu. (It is 
                  in the PATH, but if you need to know, its location is 
                  /usr/sbin/menu.) You can have multiple instances of the 
                  menu running at the same time, but it is not advised to be in 
                  the Honeywall Configuration menu more than once (as there is 
                  no locking of variables and some scripts may not be in sync 
                  with changes made in another menu, or the Walleye admin 
                  interface for that matter.)  
                  The menu is pretty self explanatory. Whenever you highlight 
                  an option, you will see a description of that option in the 
                  lower-left hand corner. To find out what all the different 
                  options are, refer to the Dialog 
                  Menu document. To learn how the Dialog Menu works and the 
                  commands it executes, refer to Section 
                  9: Internals section. The one key point to remember is 
                  that your changes in the Dialog Menu do NOT take effect until 
                  after you "Return to previous menu". The reason for 
                  this is the Dialog Menu is collecting all changes within a sub 
                  menu and then take appropriate action when you "Return to 
                  previous menu". To take appropriate action on each and 
                  every change would likely get frustrating with all of the 
                  stopping and starting of services between each option. 
                     
                  6.4 Web 
                  Interface The Web 
                  Interface is the new and improved (at least we hope :) 
                  interface to administering the Honeywall. It allows you to 
                  remotely point and click the day to day administration of your 
                  system. This system is designed to be the primary method for 
                  remote administration. The web interface has all the 
                  functionality of the Dialog Menu and more. Not only can it be 
                  used for administration, but for full system data analysis. As 
                  such, we have given it the sexy name Walleye (either 
                  for "Eye on the Honeywall", or in tribute to the late 
                  Douglas Adams: So long, and thanks for the fish.) From 
                  this point on, any reference to Walleye means the web 
                  based user interface that is used for Honeywall 
                  administration, configuration, and data analysis. This is not 
                  enabled by default, unless you use the automatic configuration 
                  features. Most users will have to enable it from the Dialog 
                  Menu.  
                  To enable Walleye, go to your Dialog Menu and select 
                  option "4: Honeywall Configuration", then "3: Remote 
                  Management", then "11: Walleye". From here you will enable the 
                  Walleye functionality, including Argus and the web 
                  server, which will listen on port 443 (HTTPS using SSL). 
                  Before connecting to the Wallye interface for the first 
                  time, you will need to get 
                  the SSL certificate. This is used to confirm the identity 
                  of Walleye webserver the first time you 
                  access it with your browser. 
                   Make sure that during your initial setup process you 
                  allowed inbound management connections to port 443 on the 
                  management interface and from the IP address of your 
                  management system(s). Once Walleye is up and running, 
                  you can connect to it using your browser (we currently test 
                  and support either Firefox or IE). Also, ensure cookies and 
                  JavaScript are both enabled (we know, we prefer not to use 
                  these either, but we figure if you can't trust the webserver, 
                  you probably should not be using the Honeywall CDROM: Create a 
                  profile just for the Walleye, to be safe. :). The URL to 
                  Walleye should look like 
                   https://ip-address-mgmt-interface 
                   You will get a login 
                  screen. Just like the operating system, the default user 
                  account for Walleye is the user roo with the 
                  default password honey. Upon your first login you will 
                  be requested to change the password. Note, Walleye 
                  comes with a password checking mechanism to enforce good 
                  passwords (its pretty strict). Be sure to have a good password 
                  ready before you login for the first time. It requires 
                   
                    - 8 or more characters 
                    
 - One character must be a capital letter 
                    
 - One character must be a number 
                    
 - One character must be a symbol 
  
                  Once you have set the password, be advised the 
                  user interface has a lockout feature. After 3 failed login 
                  attempts, that user will be blocked for 15 minutes. After 15 
                  minutes have expired, you will be able to login again. 
                   Once you are successfully logged in, you can begin to 
                  adminster the system. First, you will want to select "System 
                  Admin" from the GUI. This will take you to a window that has 
                  very similar options to the Dialog Menu, but is web based. 
                  There are several difference between the Dialog Menu and the 
                  Walleye. The first is Walleye does not have the 
                  ability go through the initial setup, it cannot take you 
                  through the interview process and reconfigure your system. You 
                  have to use the Dialog Menu to do that. The second difference 
                  between the two is the addition of the "Manage 
                  Users" option. This allows you to add, modify, or delete 
                  users that can have access to "Walleye". Users can be assigned 
                  one of three roles. 
                   
                    - User: Has read access to only the data analysis section. 
                    
 - Admin Read-Only: Has read to the data analysis and 
                    status sections. 
                    
 - Admin: Has read and write access to everything. 
  
                    
                  6.5 Operating 
                  System Managing the operating system should be 
                  similar to any Fedora Core installation. However, there are 
                  some minor differences due to the modifications we have made 
                  for honeywall functionality. The biggest difference can 
                  probably be found in the startup scripts. A variety of scripts 
                  have been added. These scripts replace some of the existing 
                  startup scripts, so they should no longer be used. The reason 
                  the non-used startup scripts are still on the system is they 
                  are part of the RPM packages. These scripts are 
                   For Snort, use '/etc/init.d/hwflow-snort', do not use 
                  '/etc/init.d/snortd' For MYsql, use 
                  '/etc/init.d/hflow-mysqld', do not use 
                  '/etc/init.d/mysqld' For Apache, use 
                  '/etc/init.d/walleye-httpd', do not use 
'/etc/init.d/httpd' 
                     
                  6.6 
                  Updates Unlike the previous Honeywall CDROM 
                  Eeyore, with the new Roo you should have to burn 
                  and install the CDROM only once. After that the entire 
                  operating system and all functionality is installed on the 
                  local hard drive. To keep the system current, you use the 
                  system tool yum This tool can be used to query a remote 
                  source for updated RPM's, and if found download and install 
                  them, ensuring your systeme is up to date in a fully automated 
                  manner. You can find all yum configuration files at 
                   /etc/yum.repos.d/* 
                   After doing a fresh install you simply type (as root) 
                  yum update in order to update the entire honeywall. 
                  This includes both OS and Honeywall functionality. Yum will go 
                  out to the Fedora website and download/install all the latest 
                  OS updates and packages. In addition the Honeynet Project 
                  maintains honeywall specific RPMs in our own yum repository 
                  (repo). Specifically these are the packages that transpose 
                  Fedora CORE 3 (roo's base OS) into a fully functioning 
                  Honeywall. RPM updates come from one of the following repos: 
                   
                  By default, yum is not enabled to happen 
                  automatically every day. To enable this feature, you will want 
                  to use the chkconfig command. This will ensure yum will update 
                  your system every day at 0402 hours(default): 
                   chkconfig yum on /etc/init.d/yum start 
                   This will continue every day, including after 
                  reboots, until you: 
                   chkconfig yum off 
                   For security purposes, all RPMs are signed by 
                  their organizations respective GPG key (including all Honeynet 
                  Project RPM packages). Rather than install static public RPM 
                  GPG signing keys for each of the repos roo depends on, we 
                  decided to place links to respective keys for each repo. This 
                  should make it easier to retrieve new keys should the repo 
                  maintainer need to re-key at some point in the future. What 
                  this means is that the first time yum updates or installs RPMs 
                  from a given repo you will be prompted to "Confirm" 
                  download/install of a public RPM GPG signing key for the repo 
                  you are receiving files from. Once you have confirmed the key, 
                  just hit "y" to continue. 
                   For those of you new to Yum, here are some basic Yum 
                  commands. You can also learn more at http://www.phy.duke.edu/~rgb/General/yum_HOWTO/yum_HOWTO/. 
                   
                    - Update the entire system: yum update 
                    
 - Install new package "foo": yum install foo 
                    
 - Search for package "foo-something": yum search 
                    foo-* (regexes are ok here) 
                    
 - List available updates (but don't install them): yum 
                    check-update 
                    
 - Update only package "foo": yum update foo 
  
                    
                   
                   
                  <-Back 
                  Home 
                  Next-> 
                    |