home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.lbl.gov / 2014.05.ftp.ee.lbl.gov.tar / ftp.ee.lbl.gov / acld-1.11.tar.gz / acld-1.11.tar / acld-1.11 / INSTALL < prev    next >
Text File  |  2011-05-18  |  7KB  |  200 lines

  1. @(#) $Id: INSTALL 736 2011-05-18 23:00:13Z leres $ (LBL)
  2.  
  3. To build acld run ./configure (a shell script) and then use make
  4. to compile the binary.
  5.  
  6. To use acld you will need to build and install expect. The one in
  7. FreeBSD's /usr/ports works nicely:
  8.  
  9.     /usr/ports/lang/expect
  10.  
  11. The expect language port depends on tk/tcl.
  12.  
  13. acld.conf.sample shows a setup for a Force 10 router. Force 10
  14. routers support individual user accounts; create a acld user using:
  15.  
  16.     conf
  17.     username acld password 0 CLEARTEXTPASS privilege 15
  18.     exit
  19.     copy running-config startup-config
  20.  
  21. If you later need to change the password, use:
  22.  
  23.     username acld password 0 CLEARTEXTPASS
  24.  
  25. The force10 expect script uses a program called socket to connect
  26. to acld. It's available as a FreeBSD port
  27.  
  28.     /usr/ports/sysutils/socket
  29.  
  30. or can be downloaded here:
  31.  
  32.     http://wolfram.schneider.org/src/socket-1.1.tar.gz
  33.  
  34. On a cisco, you need to configure both the connect and enable
  35. passwords.
  36.  
  37. Communications using Broccoli is supported; it can be downloaded
  38. from here:
  39.  
  40.     http://www.icir.org/christian/downloads/
  41.  
  42. Broccoli support is enabled if broccoli-config is found on PATH.
  43. You can force support to be enabled using:
  44.  
  45.     ./configure --with-broccoli
  46.  
  47. This has the advantage that configure will abort if it can't find
  48. Broccoli.
  49.  
  50. Note that there's a bug in Broccoli 1.5.0 and earlier that prevents
  51. the use of empty passphrases with openssl certificates. Included
  52. with this distribution is a patch that fixes this Broccoli bug:
  53.  
  54.     patch-broccoli-1.5.0-src-bro_lexer.l
  55.  
  56. When acld includes Broccoli support, it can field events generated
  57. by Bro to block hosts. A Bro module called acld.bro is included
  58. that provides functions acld::acld_block() and acld::acld_unblock()
  59. to block and unblock hosts. It has provides an event handler called
  60. acld::acld_reply() that can be used by Bro to learn the result of
  61. a For example, an unblock might have failed or a block might have
  62. succeeded but the host might have already been blocked.
  63.  
  64. Finally, aclc is a Broccoli program that can be used from the command
  65. line. It pretty much can do everything the acl.exp script does.
  66.  
  67. When using acld with Broccoli between hosts, it's recommended that
  68. you use ssl. Here are quick start instructions.
  69.  
  70. Start by downloading and installing create-cert:
  71.  
  72.     ftp://ee.lbl.gov/create-cert.tar.gz
  73.  
  74. This is a script that uses openssl(1) to create self-signed host
  75. certificates and private keys. It shields you from the many questions
  76. openssl asks and instead stores the answers in a configuration file.
  77.  
  78. Once this is installed on the server machine (where acld will run),
  79. create a self signed rootca and server and client keys:
  80.  
  81.     mkdir -p /usr/local/etc/acld-certs/run
  82.     chown nobody:nobody /usr/local/etc/acld-certs/run
  83.     cd /usr/local/etc/acld-certs
  84.     % Create default config
  85.     create-cert -I
  86.     % Customize config
  87.     vi etc/openssl.conf
  88.     % Create self-signed rootca
  89.     create-cert -R
  90.     % Create server and client certs
  91.     create-cert server.lbl.gov
  92.     create-cert client1.lbl.gov
  93.     [etc.]
  94.  
  95. Unfortunately, Broccoli requires the private key and public host cert
  96. to be in the same file. So there's an extra step:
  97.  
  98.     % cat private/server.lbl.gov.key certs/server.lbl.gov.pem > \
  99.     private/server.lbl.gov.key+crt
  100.     % cat private/client1.lbl.gov.key certs/client1.lbl.gov.pem > \
  101.     private/client1.lbl.gov.key+crt
  102.  
  103. Copy the client key and everything in the certs directory to the
  104. client:
  105.  
  106.     rdist -R -c \
  107.     /usr/local/etc/acld-certs/private/client1.key \
  108.     /usr/local/etc/acld-certs/private/client1.key+crt \
  109.     /usr/local/etc/acld-certs/certs \
  110.     client1.lbl.gov
  111.  
  112. On the acld server, configure broccoli.conf with something similar
  113. to:
  114.  
  115.     /broccoli/use_ssl yes
  116.     /broccoli/ca_cert /usr/local/etc/acld-certs/certs/rootca.pem
  117.     /broccoli/host_cert /usr/local/etc/acld-certs/private/server.lbl.gov.key+crt
  118.     /broccoli/host_pass ""
  119.  
  120. On a client host that will (for example) run aclc, use:
  121.  
  122.     /broccoli/use_ssl yes
  123.     /broccoli/ca_cert /usr/local/etc/acld-certs/certs/rootca.pem
  124.     /broccoli/host_cert /usr/local/etc/acld-certs/private/client1.lbl.gov.key+crt
  125.     /broccoli/host_pass ""
  126.  
  127. On a client host that will run Bro, use:
  128.  
  129.     redef ssl_ca_certificate = "/usr/local/etc/acld-certs/certs/rootca.pem";
  130.     redef ssl_private_key = "/usr/local/etc/acld-certs/private/client1.lbl.gov.key+crt";
  131.     redef ssl_passphrase = "";
  132.  
  133. FILES
  134. -----
  135. CHANGES        - description of differences between releases
  136. FILES        - list of files exported as part of the distribution
  137. INSTALL        - this file
  138. Makefile.in    - compilation rules (configure script template)
  139. README        - description of distribution
  140. VERSION        - version of this release
  141. acl.c        - ACL manipulation routines (configure script template)
  142. acl.exp.in    - acld interface script (configure script template)
  143. acl.h        - prototypes, defines and struct definitions
  144. aclc.8        - man page
  145. aclc.c        - Broccoli client
  146. aclcompact.sh.in - cron job script to compact acls (configure script template)
  147. acld-init.d.sh.in - Linux /etc/init.d script (configure script template)
  148. acld.8        - man page
  149. acld.bro    - Bro interface script
  150. acld.c        - main program
  151. acld.conf.sample - sample acld configuration
  152. acld.h        - prototypes, defines and struct definitions
  153. acld.sh.in    - FreeBSD rc.d script (configure script template)
  154. aclfw.sh.in    - rc.d script to restore ipfw blocks on bootup (template)
  155. aclocal.m4    - autoconf macros
  156. broccoli.c    - Broccoli routines
  157. broccoli.h    - prototypes, defines and struct definitions
  158. cf.c        - configuration parsing routines
  159. cf.h        - prototypes, defines and struct definitions
  160. cforce.c    - cForce blocking appliance routines
  161. cforcep.h    - prototypes, defines and struct definitions
  162. check_acld.py.in - nagios acld plugin (configure script template)
  163. child.c        - expect process routines
  164. child.h        - prototypes, defines and struct definitions
  165. cisco.expect    - Cisco version of the expect script
  166. client.c    - client routines
  167. client.h    - prototypes, defines and struct definitions
  168. config.guess    - autoconf support
  169. config.sub    - autoconf support
  170. configure    - configure script (run this first)
  171. configure.in    - configure script source (configure script template)
  172. daemon.c    - replacement when libc daemon() is missing
  173. debug.expect    - debugging version of the expect script
  174. force10-telnet.expect - Force 10 version of the expect script (telnet)
  175. force10.expect    - Force 10 version of the expect script (ssh)
  176. inet_aton.c    - replacement when libc inet_aton() is missing
  177. install-sh    - BSD style install script
  178. io.c        - server routines
  179. io.h        - prototypes, defines and struct definitions
  180. ipfw.expect    - ipfw version of the expect script
  181. lbl/gnuc.h    - gcc macros and defines
  182. mkdep        - construct Makefile dependency list
  183. patch-broccoli-1.5.0-src-bro_lexer.l - Broccoli lexer patch
  184. route.c        - routing routines
  185. route.h        - prototypes, defines and struct definitions
  186. server.c    - server routines
  187. server.h    - prototypes, defines and struct definitions
  188. setsignal.c    - OS independent signal() with BSD semantics
  189. setsignal.h    - prototypes, defines and struct definitions
  190. stats.c        - statistics routines
  191. stats.h        - prototypes, defines and struct definitions
  192. strerror.c    - replacement when libc strerror() is missing
  193. timer.c        - timer routines
  194. timer.h        - prototypes, defines and struct definitions
  195. util.c        - utility routines
  196. util.h        - prototypes, defines and struct definitions
  197. version.h    - prototypes, defines and struct definitions
  198. whitelist.c    - whitelist routines
  199. whitelist.h    - prototypes, defines and struct definitions
  200.