Check Point VPN-1/ FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions Complete implementation guide for VPN-1/FireWall-1 on AIX High Availabilty configuration for 24x7 operations New VPN-1/FireWall-1 Version 4.1 covered
Axel Bücker Rob Middleton Rahul Patel Anthony Michalakopoulos
ibm.com/redbooks
SG24-5492-01
International Technical Support Organization Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions May 2001
Take Note! Before using this information and the product it supports, be sure to read the general information in Appendix D, “Special notices” on page 365.
Second Edition (May 2001) This edition applies to Check Point VPN-1/FireWall-1 4.1 Service Pack 2 for use with the AIX 4.3.3 for RS/6000. The IBM Network Dispatcher V3.0 and IBM HACMP 4.4 have been used for high availability configurations. Comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. OSJB Building 003 Internal Zip 2834 11400 Burnet Road Austin, Texas 78758-3493 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. © Copyright International Business Machines Corporation 1999, 2001. All rights reserved. Note to U.S Government Users – Documentation related to restricted rights – Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp.
Contents Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii The team that wrote this redbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Comments welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Part 1. Implementing Check Point VPN-1/FireWall-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Chapter 1. The design of firewall environments . . . . . . 1.1 Basic firewall design . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Compartmentalized firewall environment design . . . . . 1.3 Need for highly available firewalls and load balancing 1.4 What’s new in VPN-1/FireWall-1 V4.1 and SP1 . . . . . 1.5 What’s new in VPN-1/FireWall-1 V4.1 SP2 . . . . . . . . .
.. .. .. .. .. ..
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.. .. .. .. .. ..
. . . . . .
. . . . . .
. . . . . .
. .3 . .3 . .6 . 11 . 12 . 20
Part 2. Making Check Point FireWall-1 highly available . . . . . . . . . . . . . . . . . . . . . . . . 23 Chapter 2. Implementation of VPN-1/FireWall-1 on AIX . . . . . . . . . . 2.1 Planning and preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Network plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Basic AIX installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Configuring AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Basic setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Configuration of AIX networking . . . . . . . . . . . . . . . . . . . . . . . 2.4 Basic installation of VPN-1/FireWall-1 . . . . . . . . . . . . . . . . . . . . . . 2.5 Basic configuration of VPN-1/FireWall-1 . . . . . . . . . . . . . . . . . . . . . 2.6 Hardening the AIX operating system . . . . . . . . . . . . . . . . . . . . . . . 2.7 Creating VPN-1/FireWall-1 Security Policies . . . . . . . . . . . . . . . . . 2.7.1 Installation of the VPN-1/FireWall-1 Windows GUI . . . . . . . . . 2.7.2 Creating a simple ruleset with VPN-1/FireWall-1 . . . . . . . . . . 2.7.3 Improving the security of a VPN-1/FireWall-1 Security Policy . 2.7.4 Creating network objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.5 Configuring protection from IP spoofing . . . . . . . . . . . . . . . . . 2.7.6 Creating a useful ruleset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.8 Configuring user authentication with VPN-1/FireWall-1. . . . . . . . . . 2.8.1 Configuring simple user authentication . . . . . . . . . . . . . . . . . . 2.8.2 Configuring client authentication . . . . . . . . . . . . . . . . . . . . . . .
© Copyright IBM Corp. 2001
. . 25 . . 25 . . 25 . . 26 . . 27 . . 35 . . 35 . . 49 . . 56 . . 70 . . 82 . . 85 . . 85 . . 86 . . 99 . 103 . 105 . 109 . 111 . 111 . 116
iii
2.9 Configuring network address translation with VPN-1/FireWall-1 . . . . 124 2.9.1 Static NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 2.9.2 Double-static NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 2.9.3 Dynamic (hide mode) NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 2.10 Configuring virtual private networking with VPN-1/FireWall-1 . . . . . 133 2.10.1 Configuring VPN-1/FireWall-1 for client encryption . . . . . . . . . 134 2.10.2 Installing and configuring SecuRemote . . . . . . . . . . . . . . . . . . 138 Chapter 3. High availability for VPN-1/FireWall-1 . . . . . . . . . . . . . . . . 149 3.1 Design considerations for highly available VPN-1/FireWall-1 . . . . . . 149 3.1.1 Test environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 3.1.2 Our HA design goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 3.1.3 Classical VPN-1/FireWall-1 HA design . . . . . . . . . . . . . . . . . . . 150 3.1.4 Our HA design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 3.2 Configuring AIX for highly available VPN-1/FireWall-1 . . . . . . . . . . . 154 3.3 Installing HACMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 3.4 Configuring HACMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 3.4.1 Cluster topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 3.4.2 Cluster resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 3.4.3 Cluster event customization . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 3.4.4 Solving the ARP cache problem . . . . . . . . . . . . . . . . . . . . . . . . 177 3.5 Custom shell scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 3.5.1 Custom shell scripts for HACMP events . . . . . . . . . . . . . . . . . . 178 3.5.2 Custom shell scripts for status gathering . . . . . . . . . . . . . . . . . 180 3.5.3 Custom shell scripts for starting and stopping HACMP . . . . . . . 184 3.5.4 Custom shell scripts for file synchronization . . . . . . . . . . . . . . . 184 3.6 Installing the second node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 3.6.1 Cloning the first node to the second HACMP node . . . . . . . . . . 194 3.6.2 Configuration of the second node . . . . . . . . . . . . . . . . . . . . . . . 199 3.7 Testing HACMP without VPN-1/FireWall-1 . . . . . . . . . . . . . . . . . . . . 202 3.7.1 Synchronize HACMP configuration . . . . . . . . . . . . . . . . . . . . . . 203 3.7.2 Start HACMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 3.7.3 Prepare test environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 3.7.4 Test the takeover scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 3.8 Configuring VPN-1/FireWall-1 for HACMP . . . . . . . . . . . . . . . . . . . . 214 3.8.1 Command line configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 3.8.2 GUI configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 3.8.3 VPN-1/FireWall-1 state table synchronization . . . . . . . . . . . . . . 221 3.8.4 Testing VPN-1/FireWall-1 HA with HACMP. . . . . . . . . . . . . . . . 222 3.8.5 HACMP service IP addresses-VPN-1/FireWall-1 Security Policy224 3.9 High availability issues with VPN-1/FireWall-1 . . . . . . . . . . . . . . . . . 229 3.9.1 Synchronizing VPN-1/FireWall-1 management . . . . . . . . . . . . . 229 3.9.2 NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
iv
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
3.9.3 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.4 Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10 Improving security for HACMP . . . . . . . . . . . . . . . . . . . . . 3.10.1 A more granular security policy for HACMP services 3.10.2 Replacing RSH with SSH (Secure Shell) . . . . . . . . . 3.11 Cluster failure alerting using clstat . . . . . . . . . . . . . . . . . . 3.11.1 The clstat X-Window system display. . . . . . . . . . . . . 3.11.2 Installing the clstat client. . . . . . . . . . . . . . . . . . . . . . 3.11.3 Installing Exceed on the GUI client . . . . . . . . . . . . . . 3.11.4 HACMP cluster event customizing . . . . . . . . . . . . . . 3.11.5 VPN-1/Firewall-1 rule additions . . . . . . . . . . . . . . . . 3.11.6 Testing the failover alerts . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. ..
. . . . . . . . . . . .
. . . . . . . . . . . .
. 233 . 234 . 235 . 235 . 238 . 249 . 249 . 252 . 252 . 252 . 254 . 255
Chapter 4. Using IBM Network Dispatcher for high availability . . . . . 259 4.1 Technical overview of ND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 4.1.1 Interactive Session Support (ISS) . . . . . . . . . . . . . . . . . . . . . . . 259 4.1.2 Network Dispatcher function . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 4.1.3 Content Based Routing (CBR) . . . . . . . . . . . . . . . . . . . . . . . . . 262 4.1.4 High availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 4.2 How does ND fit together with VPN-1/FW-1 . . . . . . . . . . . . . . . . . . . 263 4.2.1 Firewall technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 4.2.2 Integrating ND with VPN-1/FireWall-1. . . . . . . . . . . . . . . . . . . . 266 4.3 HACMP versus ND considerations . . . . . . . . . . . . . . . . . . . . . . . . . . 268 4.3.1 High availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 4.3.2 Load balancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 4.3.3 Cost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 4.3.4 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 4.4 Installing Network Dispatcher on AIX . . . . . . . . . . . . . . . . . . . . . . . . 271 4.5 Firewall configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 4.6 Understanding Network Dispatcher components . . . . . . . . . . . . . . . 274 4.6.1 Basic dispatcher functionality . . . . . . . . . . . . . . . . . . . . . . . . . . 274 4.7 Configure Network Dispatcher with different scenarios . . . . . . . . . . . 277 4.7.1 Basic environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 4.7.2 Scenario 1: High availability with ND . . . . . . . . . . . . . . . . . . . . 277 4.7.3 Scenario 2: High availability and load balancing proxied traffic . 286 4.7.4 Scenario 3: High availability and load balancing routed traffic. . 297 Chapter 5. Implementing High Availability with VPNs 5.1 SecuRemote Client installation . . . . . . . . . . . . . . . . . 5.1.1 Installation procedure . . . . . . . . . . . . . . . . . . . . 5.2 Test network design . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Test network topology . . . . . . . . . . . . . . . . . . . 5.3 VPN-/Firewall-1 configuration for VPNs . . . . . . . . . .
. . . . . .
.. .. .. .. .. ..
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.. .. .. .. .. ..
. . . . . .
. . . . . .
. 305 . 305 . 305 . 309 . 309 . 312
v
5.3.1 Configuring VPN-1/Firewall-1 state synchronization . . . . . . . . . 312 5.3.2 Changes to the Security Policy . . . . . . . . . . . . . . . . . . . . . . . . . 312 5.4 SecuRemote client configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 5.5 Testing and test plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 5.5.1 Firewall configuration synchronization . . . . . . . . . . . . . . . . . . . 329 5.5.2 VPN-1/Firewall-1 state table synchronization . . . . . . . . . . . . . . 329 5.5.3 Passive FTP using NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 5.5.4 Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 5.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Appendix A. Introduction to HACMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 A.1 Technical overview of HACMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 A.1.1 Quick review of basic concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 A.1.2 Components of HACMP software . . . . . . . . . . . . . . . . . . . . . . . . . . 338 A.1.3 HACMP log files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 A.1.4 HACMP cluster events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 A.1.5 Customizing events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 A.2 Design consideration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 A.3 How does HACMP fit together with the firewall? . . . . . . . . . . . . . . . . . . 349 Appendix B. An example of the HACMP planning worksheet . . . . . . . 351 Appendix C. Open Platform for Security (OPSEC) . . . . . . . . . . . . . . . . 355 Appendix D. Special notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Appendix E. Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 E.1 IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 E.2 IBM Redbooks collections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 E.3 Other resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 E.4 Referenced Web sites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 IBM Redbooks fax order form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 IBM Redbooks review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
vi
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figures 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
Simplest classic firewall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Classic DMZ firewall environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Modern firewall environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Network plan for stand-alone configuration . . . . . . . . . . . . . . . . . . . . . . . 25 VPN-1/FireWall-1 GUI login pop-up box . . . . . . . . . . . . . . . . . . . . . . . . . 87 Adding a rule to the bottom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Changing action to accept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Changing track to account. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Opening the Network Objects menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Creating a new workstation object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Workstation Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Interfaces tab of the firewall’s Workstation Properties. . . . . . . . . . . . . . . 94 Icon of a firewall gateway object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Installing the Security Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Implied rules warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Install Security Policy target selection . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 IP spoofing warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Install Security Policy results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Modified Check Point log viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 VPN-1/FireWall-1 Log Viewer: options . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Deactivating implied rules in policy properties. . . . . . . . . . . . . . . . . . . . 100 Making the implied pseudo rules visible . . . . . . . . . . . . . . . . . . . . . . . . 101 More implied rules in Policy -> Properties -> Services tab . . . . . . . . . . 102 IP Options Drop Track in Policy -> Properties -> Log and Alert tab . . . 103 A sample workstation type network object . . . . . . . . . . . . . . . . . . . . . . 104 A sample network type network object . . . . . . . . . . . . . . . . . . . . . . . . . 105 A sample group type network object . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A sample group that includes a group type network object . . . . . . . . . . 107 Sample panel of IP spoofing configuration . . . . . . . . . . . . . . . . . . . . . . 108 The ruleset we used for our examples . . . . . . . . . . . . . . . . . . . . . . . . . 110 Creating a new user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Entering the new users data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Choosing an authentication scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Changing the HTTP rule to user authentication . . . . . . . . . . . . . . . . . . 114 Enabling VPN-1/FireWall-1 password as authentication scheme . . . . . 115 Enabling user authenticated access to allow all HTTP servers. . . . . . . 115 Changing the ICMP rule to client authentication . . . . . . . . . . . . . . . . . . 117 Client Authentication Action Properties: Limits . . . . . . . . . . . . . . . . . . . 118 Client Authentication using Web browser: Login . . . . . . . . . . . . . . . . . . 119 Client Authentication using Web browser: Password . . . . . . . . . . . . . . 120
© Copyright IBM Corp. 2001
vii
41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83.
viii
Client Authentication using Web browser: Methods . . . . . . . . . . . . . . . 121 Client Authentication using Web browser: VPN-1/FireWall-1 message 122 Add a rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Workstation Properties of web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Workstation Properties of web: NAT tab . . . . . . . . . . . . . . . . . . . . . . . . 126 NAT: Configure routing warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Address translation rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Log Viewer: Ping IP packet getting rejected by rule 0 . . . . . . . . . . . . . . 129 Adding network object web to anti-spoofing group ip_tr0 . . . . . . . . . . . 130 Manually entered NAT rules for double static NAT . . . . . . . . . . . . . . . . 131 Network Properties of int_9.3.187.128 . . . . . . . . . . . . . . . . . . . . . . . . . 132 Network Properties of int_9.3.187.128: NAT tab . . . . . . . . . . . . . . . . . . 132 Address translation rules: Sequential nature of NAT rules . . . . . . . . . . 133 Creating a group object to serve as encryption domain . . . . . . . . . . . . 135 Editing User Properties: Encryption tab. . . . . . . . . . . . . . . . . . . . . . . . . 136 User’s ISAKMP Properties: Authentication tab . . . . . . . . . . . . . . . . . . . 136 User’s ISAKMP Properties: Encryption tab . . . . . . . . . . . . . . . . . . . . . . 137 The firewall’s ISAKMP Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Changing the rule to Client Encrypt. . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Task bar with SecuRemote icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 SecuRemote main panel: Create a new site . . . . . . . . . . . . . . . . . . . . . 140 SecuRemote Site menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 SecuRemote error message: Site is not a Certificate Authority . . . . . . 141 Firewall network object Workstation Properties: Encryption tab . . . . . . 142 Firewall’s FWZ Properties: CA Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 VPN-1/FireWall-1 confirmation request to generate new CA key . . . . . 143 Key created successfully . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Firewall’s FWZ Properties after generation of CA key. . . . . . . . . . . . . . 143 Policy Editor: Are you sure you want to generate a new key? . . . . . . . 144 FireWall FWZ properties: DH Key tab. . . . . . . . . . . . . . . . . . . . . . . . . . 144 Setting the Exportable option in the firewall’s network object . . . . . . . . 145 SecuRemote request to verify IP address and key ID of the firewall. . . 145 Site panel after successful site creation . . . . . . . . . . . . . . . . . . . . . . . . 146 SecuRemote User Authentication request . . . . . . . . . . . . . . . . . . . . . . 147 SecuRemote successful authentication . . . . . . . . . . . . . . . . . . . . . . . . 147 Abstract network plan for high availability . . . . . . . . . . . . . . . . . . . . . . . 150 Detailed network plan for high availability . . . . . . . . . . . . . . . . . . . . . . . 155 The VPN-1/FireWall-1 HA ruleset for ftp test. . . . . . . . . . . . . . . . . . . . . 219 Both firewalls are install targets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 The security policy is installed on both firewalls . . . . . . . . . . . . . . . . . . 220 Creating a network object for the HACMP service IP address . . . . . . . 225 The difference between service IP address objects and firewalls . . . . . 226 The network object group firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126.
The VPN-1/FireWall-1 ruleset for HACMP synchronization to work . . . 228 VPN-1/FireWall-1 Security Policy properties that allow RSH . . . . . . . . 236 Creating the godm service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 VPN-1/FireWall-1 ruleset including explicit services between firewalls. 238 The clstat X-Window System Display . . . . . . . . . . . . . . . . . . . . . . . . . . 249 The clstat window showing node cpfw1 down. . . . . . . . . . . . . . . . . . . . 250 The clstat window showing a cluster configuration change. . . . . . . . . . 250 The clstat window shows the node cpfw1 reintegrate into the cluster. . 251 The clstat node information display . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Rule changes for permitting the X-Windows display to the GUI client . 255 clstat test figure 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 clstat test figure 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 clstat test figure 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 ISS concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Network Dispatcher concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Application proxies versus NAT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 SMIT dialog box to install ND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Information flow with ND on AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 ND start script for high availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 goInterfaces script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 goStandby script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 goActive script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 goInOp script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Information flow with ND on AIX and load balancing. . . . . . . . . . . . . . . 287 ND start script for high availability and load balancing . . . . . . . . . . . . . 289 ISS configuration for ND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Information flow with NDs load balancing routed traffic. . . . . . . . . . . . . 299 ND start script for high availability and load balancing routed traffic . . . 300 SecuRemote Desktop Security option. . . . . . . . . . . . . . . . . . . . . . . . . . 306 SecuRemote FW1 Bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 SecuRemote destination location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 Network Topology for VPN-1y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 Properties Setup - High Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Gateway Cluster Properties -General Tab . . . . . . . . . . . . . . . . . . . . . . 314 Workstation Properties -General Tab . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Group Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Gateway Cluster Properties -Cluster Members Tab . . . . . . . . . . . . . . . 317 Gateway Cluster Properties -Authentication Tab . . . . . . . . . . . . . . . . . 318 Gateway Cluster Properties -VPN Tab . . . . . . . . . . . . . . . . . . . . . . . . . 319 Gateway Cluster Properties -VPN Tab -IKE Properties . . . . . . . . . . . . 320 Gateway Cluster Properties -VPN Tab -FWZ Properties . . . . . . . . . . . 321 Gateway Cluster Properties -VPN Tab -FWZ Properties . . . . . . . . . . . 322 User Properties -Encryption Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
ix
127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137.
x
User Properties -IKE Properties -Encryption Tab . . . . . . . . . . . . . . . . . 324 VPN-1/Firewall-1 Rules for SecuRemote Sessions. . . . . . . . . . . . . . . . 325 VPN-1/Firewall-1 SecuRemote panel . . . . . . . . . . . . . . . . . . . . . . . . . . 326 SecuRemote User Authentication panel . . . . . . . . . . . . . . . . . . . . . . . . 327 SecuRemote successful User Authentication . . . . . . . . . . . . . . . . . . . . 328 Adapter swap by a standby adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 IP address takeover in rotating resource. . . . . . . . . . . . . . . . . . . . . . . . 337 Node is brought up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Node fails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 Pre and post-event script flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 Takeover scenario on a firewall failure . . . . . . . . . . . . . . . . . . . . . . . . . 349
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Tables 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Nodes used for firewall environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 emacs-mode Korn shell key combinations . . . . . . . . . . . . . . . . . . . . . . . . 35 Workstation type network objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Network type network objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Group type network objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 HACMP adapter configuration for IP addresses . . . . . . . . . . . . . . . . . . . 163 HACMP adapter configuration for serial ports . . . . . . . . . . . . . . . . . . . . . 167 Hostnames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Firewall configuration for ND installed on AIX . . . . . . . . . . . . . . . . . . . . . 284 Firewall configuration for ISS and ND on AIX . . . . . . . . . . . . . . . . . . . . . 295 HACMP Topology for firewall adapters . . . . . . . . . . . . . . . . . . . . . . . . . . 310 H/W specification comparison between IBM RS/6000 43P and F50 . . . . 342 Pros and cons of rsh versus ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
© Copyright IBM Corp. 2001
xi
xii
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Preface This book has been written for technical professionals as an exercise book for a sample implementation of Check Point VPN-1/FireWall-1 with optional high availability. It discusses two subjects. The first part discusses how to implement FireWall-1 on a stand-alone RS/6000, step by step. The second part describes how to make the firewall and the VPN solution highly available. The high availability solutions discussed in this book are IBM HACMP and IBM Network Dispatcher. We include a comparison of each approach. To use this book, the recommended approach is to recreate our firewall design in your lab. After setting up the hardware environment, you can simply follow the steps in Chapter 2 to set up FireWall-1. After that, you can, optionally, follow the steps in Chapter 3 to make it highly available with HACMP, or Chapter 4 to use the IBM Network Dispatcher. Chapter 5 talks about configuring a high availability solution for VPN-1. We assumed almost no prior knowledge of the products used and tried to make this book as self-contained as possible. However, you should be prepared to read the product documentation. We hope this book will enable you to implement a similar solution to satisfy your needs.
The team that wrote this redbook This second release of the redbook was produced by a team of specialists from around the world working at the International Technical Support Organization, Austin Center. Axel Bücker is a Senior Software I/T Specialist at the International Technical Support Organization, Austin Center. He writes extensively and teaches IBM classes worldwide on areas of Software Security Architecture and Network Computing Technologies. He holds a degree in computer science from the University of Bremen, Germany. He has 14 years of experience in a variety of areas related to Workstation and Systems Management, Network Computing, and e-business solutions. Before joining the ITSO in March 2000, Axel was working for IBM in Germany as a Senior I/T Specialist in Software Security Architecture. Rob Middleton is an IT Security Specialist with the IBM Global Services Security and Privacy Practice in Canada. He has 15 years of experience in the Information Technology field. He holds a diploma in Electronics Engineering Technology from Northern Alberta Institute of Technology in Edmonton, Canada and is a Certified Network Management Engineer. His
© Copyright IBM Corp. 2001
xiii
areas of expertise include e-business Security, Network Problem Determination, Lotus Notes, and Project Management. Rahul Patel is a Network Security Specialist with AT&T Global Network Services in the UK. He has worked in the Internet Security field for just over two years. His areas of expertise include the design and implementation of various highly available firewall solutions using HACMP. He holds a degree in Aerospace Engineering from Kingston University in the UK and is a Certified Checkpoint Administrator. In this project, he has focused on VPN failover utilizing VPN-1/Firewall-1 and HACMP. Rahul can be reached at
[email protected] [email protected]. Anthony Michalakopoulos is an IT Security Specialist with AT&T Global Network Services in the UK. He has three years of experience in Internet Security and Firewalls. His areas of expertise include the design and implementation of load balanced Firewall farms using IBM Network Dispatcher. He holds a degree in Computer Systems Engineering from the University of Kent in the UK. Throughout this project, he focused on the integration of Checkpoint VPN-1/Firewall-1 with Network Dispatcher. Anthony can be reached at
[email protected]
The following people worked on the first release of this redbook: Viktor Mraz is a Security Consultant in Germany. He works for IBM Unternehmensberatung GmbH, which is part of the IBM Consulting Group. In the four years before joining IBM UBG, he designed many network security solutions and led their implementation at various customer sites. He specializes in IT security-related fields, including firewall environments, privacy and integrity (encryption), auditing, and infrastructure protection. He has also written articles on security topics for Germany’s c't computer magazine. In this project, he contributed the description of the implementation of FireWall-1 on AIX and the optional extension to high availability with HACMP. Viktor can be reached at
[email protected] Bernhard Weiser is a Security Specialist in Germany. He is working for the business partner HAITEC AG. He has three years of experience in Internet security and AIX. His areas of expertise include HACMP and other Internet technologies, such as Web and Mailserver. He has written extensively on eNetwork Dispatcher. Rob Priffer is an RS/6000 and AIX Technical Support Specialist in Canada. He has seven years experience dealing with network communications (ATM, X.25, TCP/IP, and IPX/SPX) and has spent the last four years working for IBM. He holds a degree in computer science from McMaster University.
xiv
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
During this assignment, he focused on the technical issues concerning the integration of eNetwork Firewall with HACMP. His areas of expertise also include network and performance troubleshooting on AIX. Christian Emmerich is a Security Consultant with IBM Germany. He has more than five years of experience in Internet security and firewall products. He has worked at IBM for three years. His areas of expertise include the design, planning, and implementation of security solutions, including IBM eNetwork Firewall and Check Point FireWall-1. He holds a degree in electrotechnical engineering from the University of Karlsruhe in Germany. Throughout this project, he focused on the technical issues regarding IBM eNetwork Firewall 3.3 for AIX and IBM HACMP 4.3. Daesung Chung is working at the ITSO, Austin Center and is in charge of e-business solutions on RS/6000. He has nine years of experience in AIX, HACMP, and parallel databases on SP, and he has been involved in numerous RS/6000 and SP benchmark cases. Before joining the ITSO, he worked as a Senior IT Specialist at IBM Korea. Thanks to the following people for their invaluable contributions to this project: International Tech Support Organization, Austin Center Wade Wallace Check Point TM Software Technologies, Inc. Brett Matesen Craig Johnson Jason Bandouveres IBM Austin Venkat Venkataraman IBM Canada Gordon Ip AT&T Global Network Services Graham Campbell
Comments welcome Your comments are important to us! We want our redbooks to be as helpful as possible. Please send us your comments about this or other redbooks in one of the following ways:
xv
• Fax the evaluation form found in “IBM Redbooks review” on page 379 to the fax number shown on the form. • Use the online evaluation form found at ibm.com/redbooks • Send your comments in an Internet note to
[email protected]
xvi
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Part 1. Implementing Check Point VPN-1/FireWall-1
© Copyright IBM Corp. 2001
1
2
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Chapter 1. The design of firewall environments This chapter is intended to provide a quick introduction to the design of firewall security environments.
1.1 Basic firewall design The most basic firewall system is one that separates two IP networks, for example, the Internet and the company LAN, as shown in Figure 1. All traffic between the two security zones must pass through the firewall system for it to be effective. The configuration of the firewall specifies which connections are permitted and which are not.
External Network
Firewall
Internal Network
Figure 1. Simplest classic firewall
Different technologies can be used for controlling the traffic flow between the networks. Packet filtering checks individual IP packets, and proxies work on the level of connections and application byte streams. In modern firewall products, these techniques are often combined in a hybrid design that supports both techniques in some way. It is important to keep in mind that a firewall is only able to check the traffic between the different attached networks. It can not prohibit unwanted connections within one security zone. This fact can lead to major security risks.
© Copyright IBM Corp. 2001
3
For example, if the company's public Web server is placed within the internal network, the firewall needs to be configured to allow HTTP connections to this system, so that everyone can get to the Web pages. If the Web server contains security holes (due to software bugs, configuration errors, insecure dynamic content, or any one of many other possible causes), an attacker can gain full access to the Web server system. The firewall can not prevent the attacker from leveraging this access to access other systems within one security zone (in other words, the internal network). Experience shows that it is not realistic to expect complex server software (such as Web servers) to be free of security holes. Major companies and government institutions (such as NATO, whitehouse.gov, and so on) have frequently been victim to these kinds of attacks. Everyday, new security holes are found and shared in the underground by hackers, and knowledge of this is delayed on public Internet sites, which can cause unknown security breaches. For more information on the phenomenon, see: http://www.atstake.com/security_news/transition/
Placing important servers outside the firewall in the external network is not recommended either, since they then cannot be protected by the firewall against attacks. More security can be gained by introducing a perimeter network placing servers in them. This is known as a Demilitarized Zone (DMZ). The classical DMZ setup has two firewalls and a DMZ server network between them, as shown in Figure 2 on page 5.
4
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
External Network
Firewall A
Public Server 1 (Web server)
DMZ Network
Public Server 2 (mail server)
Firewall B
Internal Network Figure 2. Classic DMZ firewall environment
The advantage of this setup is that the publicly accessible servers are now protected from the external network and also separated from the internal network. The obvious disadvantage of this setup is that you need two firewalls, which increases the complexity and the administrative overhead, especially if different technologies are used for the two firewalls. More importantly, in the worst case scenario, when Public Server 1 is broken into, more security is lost than necessary. For example: 1. The intruder that broke into Public Server 1 can now freely attack Public Server 2, because there is no firewall between them. 2. The intruder on Public Server 1 can easily monitor all network traffic (including company e-mail and other possibly sensitive information when collected systematically) that leaves Firewall A and Firewall B on the DMZ Network side. This technique is known as network sniffing. Analyzing who is talking to whom is called traffic analysis (even encrypted mail typically
Chapter 1. The design of firewall environments
5
has plain text From: and To: mail addresses information that allows some insight on possibly confidential transactions). The most frequently suggested approach to separate the systems in the DMZ is to use manageable switches or routers. A switch or router can prevent network sniffing, because packets are not sent to all attached systems by default. Access lists installed in switches or routers can somewhat limit the kind of connections allowed between the computer systems attached to them. However, as active network devices, switches and routers are designed with performance, speed, and convenience as primary objectives. Experience shows that they are, therefore, not dependable for security purposes. In addition to a lack of emphasis on security in development, they usually can not properly filter even common protocols, such as FTP, due to the very limited filtering capabilities. The configuration of filter access lists is typically cumbersome and error prone, which breaks the “keep it small and simple” rule of security without good reason. Switches and routers have even been known to contain hardwired backdoor passwords, allowing easy reconfiguration by a knowledgeable attacker. Switches and routers are usually configured by sending plain text (not encrypted) passwords over the network. These passwords can be easily captured, or even guessed, and are reusable. Switches and routers can be used to provide additional filters and alarms, but should never be relied on as a primary and dependable means of providing security. More information on classic firewall designs can be found in Building Internet Firewalls, ISBN 1-56592-124-0.
1.2 Compartmentalized firewall environment design A more secure and flexible approach suitable for complex environments is the compartmentalized firewall environment, in which a single firewall system is equipped with more than two network interfaces and can, therefore, mutually protect several different compartments (for example, DMZs or security zones) from each other. Compartment is a new name for security zones that are protected from each other by one firewall. We chose it to differentiate this approach from the single two-firewall DMZ or Secure Server Network. The design that emerged in recent years, and may be considered state of the art, looks similar to what is shown in Figure 3.
6
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
External Network
Public Server 1 (Web Server)
Firewall DMZ 1
DMZ 2
Public Server 2 (Mail Server)
Internal Network
Figure 3. Modern firewall environment
The different compartments (Web, mail, and external and internal networks) each have their own physical network connected to the firewall through dedicated network cards. The firewall is now able to control all the traffic between these compartments, and IP sniffing is almost useless to an attacker, because they can only see the traffic within the one compartment network they are able to break into. Since the compartments are independent, a security breach in one of the attached systems (for example, the Web server) does not lead to a total compromise of the environment. The damage is restricted within the network compartment of the affected server. It is important to plan for this case whenever you install externally accessible servers, because partial security breaches (successful attacks against one of the externally accessible servers) have happened and will continue to happen. The firewall system can not prevent this, but it can make sure that an intruder will not be able to read your e-mail just because your Web server has a security hole. A properly configured firewall should generate an alert if the intruder tries to leverage more access from the attacked system, for example, by having the Web server try to access the mail server. One of the main functions of a firewall is to generate alarms when suspicious activity is detected (for example, the Web server connecting to the mail server), because no security device will ever be able to protect you against all possible threats. It should sound an alarm when you are under attack and, therefore, enable you to react.
Chapter 1. The design of firewall environments
7
Be aware that the attackers are always one step ahead, because they have the initiative to choose and invent any attack, and only one has to be successful, whereas the defender has to defend against an infinite number of possible attacks. Obviously, the defender can only hope to detect a successful attack as soon as possible and initiate an investigation and countermeasures. One small disadvantage of the compartmentalized approach is the somewhat higher complexity (more network cards in the firewall and more routing issues), but the additional security is well worth the cost of the slightly higher networking complexity. The real problem in this setup (as well as all other firewall designs) is that if the firewall is broken into, all security is lost. Therefore, it is extremely important to make the firewall itself as secure as possible. The operating system should be hardened and always up-to-date (see www.ibm.com/security, www.cert.org, and the BUGTRAQ mailing list). Operating system insecurities due to low integrity and quality and incomplete hardening have been major factors in many security breaches. It is recommended to carefully plan ahead before installing additional software on a firewall system. Only software that was explicitly designed, tested, and audited for use in a firewall environment should be considered for use. Installing server applications on separate systems often prevents possible issues caused by improper management of them. Always keep the worst-case scenario in mind. A single software bug in the software usually enables the attacker to execute arbitrary binary code on the system that will enable them to eventually gain full control of the machine. Such a failure is reasonably harmless (because damage is limited to one compartment) if it happens on a separate server but disastrous if it happens on the main firewall system. You should also consider not installing any documentation packages on your firewall system. If a hacker manages to gain access to a firewall, offering him a full library of manuals, admin guides, and so on, is not a good idea. The firewall system described in Figure 3 on page 7 should perform network traffic control and nothing else; either IP filtering or secure proxies or any combination of both can be used for that purpose. Both have their own advantages. Using IP filtering makes it very difficult to break into the firewall system, because only IP packets are processed, and
8
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
the task is carried out by the kernel modules designed exclusively for that task. Proxies that are exclusively designed for firewall use can protect against certain rare network-level attacks, because new IP packets are generated by the operating system instead of forwarding the original IP packets that could possibly be harmful. The number of TCP or UDP server programs on the firewall should be kept to a minimum, because those kind of programs are usually the weak spots that can be taken advantage of by a potential intruder. Good candidates for (if possible, separate) compartments (server networks) are: • Mail servers While most firewall systems contain SMTP gateways, separating the mail system on another system can provide better flexibility and performance. If there is a need for an SMTP gateway, be sure to choose securely designed mail products. You might want to take a look at the software available from www.qmail.org and www.postfix.org. They are both very secure, fast, and flexible mail servers. The use of sendmail is very much discouraged, as it has no advantage over qmail or postfix (the reverse is the case), and sendmail has a very bad track record of security incidents. From a network security expert’s point of view, it is not possible to fix a product that was developed without having security as a top priority. • Web proxies and servers HTTP proxies can be used on a firewall system to supplement it. However, if you are more concerned about the performance of the Web proxy, separating the Web proxy on a dedicated server on a separate network compartment improves performance considerably. Flexibility is improved, as the dedicated Web proxy products offer more functionality (such as caching to avoid repeated downloads, filtering, authorization, and so on) and scalability is also improved, because it is much easier to replace or upgrade a dedicated Web proxy. It also improves administrative processes to have the server separate; for example, if you want to restrict outbound Web access, you might want to use the authentication mechanisms provided by the proxy software instead of the firewalls features, because this is usually not so much a security as a internal control issue. The administration of the Web-proxy accounts should then be delegated away from the security administrator since those tasks are not really
Chapter 1. The design of firewall environments
9
security related. The same principle applies to Web server pages that are protected with simple passwords. This is definitely a task for the Web server and not for the firewall, and the accounts should not be administrated by the security person either. • Mail/Web/FTP content-filtering/anti-virus proxies Virus checking of transferred files (mail, Web, and FTP) and other data laundering had better be conducted by servers in separate compartments (dedicated server networks). There is no good reason to integrate anti-virus proxies into the firewall. Usually, they are not very securely programmed because of the performance optimizations. Therefore, they should be kept as separate from the firewall as possible. They can be treated just like standard mail/Web/FTP proxies. If you have both anti-virus and standard proxies, you should set them up in the way that the client talks to the normal HTTP proxy, which, in turn, gets data through proxy chaining from the anti-virus HTTP proxy. This way, all pages get virus scanned only once before being cached, not every time they are requested. • Encryption devices Encryption is getting more popular, and its function is different from a firewall because it ensures privacy and not necessarily security, for example, your e-mail encryption program typically will not prevent an encrypted e-mail from containing a macro virus. Hardware encryption (for example, in encryption routers) is becoming more popular because it is faster than software encryption and can improve security by separating encryption from other security functions, which can be useful to extend separation of duties. An example of separation of duties would be if the firewall administrator did not know the encryption keys and was not responsible for the support and maintenance of the encryption system since that would be the job of a separate person. • Remote access servers It is probably a good idea to have the people that dial-in to the internal network be authenticated and monitored by the corporate firewall instead of allowing anyone, who might steal the right laptop, to have total, unaudited access to all internal resources. • All other applications or proxies, such as sap-router, and so on
10
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
1.3 Need for highly available firewalls and load balancing As we have discussed thus far, the network configuration of a firewall system is getting more complicated than ever. A single firewall system can protect many systems, such as multiple Web servers, mail servers, and so on. The continuous availability of a firewall is becoming a critical factor for companies doing e-business on the Internet. If your firewall is down for any reason, your customers lose access to your business applications. Your business assets could also be exposed to attacks by hackers if somebody disconnects the firewall and connects your network directly to the Internet without any protection. Because a firewall system must be available to keep a company's business going 24-hours-a-day, 7-days-a-week, a high availability solution for the firewall system is necessary. However, we always need to remember that keeping up network security is the area of most concern. Any high availability solution must be robust, dependable, and proven. In the following chapters, we explore the ways to tailor such high availability solutions to work together with the firewall. Two high availability solutions are discussed in this book. One is the IBM HACMP, and the other is the IBM Network dispatcher. We discuss the advantages and disadvantages of each approach as well as the implementation procedures. When talking about high availability, we assume that we will have at least two separate firewall machines configured. In the event of a failure on the first machine, the second machine will come to life and take over the firewall functionality. Why should the second machine remain in idle mode in order to only take over the work in case of a failure? The machine represents a valuable asset and should be used in normal operation mode as well. Can we use the two firewall machines as one balanced cluster? The answer is yes. When we use the IBM Network Dispatcher, we can run both machines configured as active firewalls. This approach helps leverage existing investments in hardware and software. It also opens a viable path to expand firewall functionality bandwidth by just adding another medium sized firewall machine to the cluster instead of investing in new expensive large hardware configurations (and ending up with older and smaller machines which nobody wants to maintain). This also helps the enterprise to react faster to increasing bandwidth demand, because they only have to add an additional firewall to the cluster. Chapter 4, “Using IBM Network Dispatcher for high availability” on page 259 talks about this configuration in greater detail.
Chapter 1. The design of firewall environments
11
1.4 What’s new in VPN-1/FireWall-1 V4.1 and SP1 This section describes the new functionality in the V4.1 releases of the following VPN-1 products: • VPN-1 Gateway • VPN-1 SecuRemote • VPN-1 SecureClient • VPN-1 SecureServer Features described herein are new to V4.1, as compared to V4.0. Those features that first became available in Check Point 2000 Edition, also known as SP1, are noted as such. VPN-1 Gateway New functionality specific to VPN-1 Gateway Open PKI Support Both VPN-1 Gateway V4.1 and VPN-1 SecuRemote V4.1 support the use of X.509 digital certificates issued and signed by leading Certificate Authorities (in addition to the Entrust CAs supported by VPN-1 V4.0). This support includes the ability to register, as well as validate, these certificates. Additional CA vendors, such as Verisign, Baltimore Technologies, and Netscape are being certified under the OPSEC "PKI Products and Services" category. OPSEC Certification and VPN-1 support for certificates is based on industry standards, such as X.509 and PKCS #7, #10, and #12, and is only available for IPSec VPN-1 implementations. Benefits: • Provides customers with the flexibility to choose the PKI solution that best meets their needs. • Ensures that PKI vendors' Certificate Authority products or services interoperate with Check Point VPN-1 and are in compliance with leading industry standards. Support for concurrent use of multi-vendor certificates VPN-1 Gateway V4.1 modules can simultaneously hold and use digital certificates from multiple Certificate Authorities. This capability enables a VPN-1 Gateway to establish multiple concurrent IPSec/IKE connections with
12
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
gateways using certificates from multiple CAs, and even certificates from different vendors. Benefit: • Enables the establishment of heterogeneous extranets with key business partners and customers. High Availability for IPSec/IKE VPN-1 Gateway V4.1 state table synchronization has been enhanced to handle IPSec/IKE session information, enabling high availability solutions that maintain IPSec/IKE connections during fail-over. IPSec/IKE synchronization and fail-over capabilities support both site-to-site and client-to-site VPN connections. These enhancements also enable third-party products to do load balancing between VPN-1 Gateways. High Availability solutions, which leverage these capabilities, are offered both by Check Point and by OPSEC partners. Benefits: • Mission-critical VPN gateways are always available. • In the event of a failure, users can continue working with complete transparency. Hybrid Mode Authentication (New in VPN-1/FireWall-1 V4.1 SP1) Check Points' Hybrid Mode Authentication for IPSec enables the use of widely deployed ("legacy") authentication techniques, such as token cards, RADIUS, and TACACS+, within IPSec VPNs. The hybrid mode authentication technology is currently an IETF draft, making Check Point the only vendor with a solution being considered for inclusion into the IPSec standard. Benefits: • Strong security through the IPSec standard and the technologies it supports, such as the Internet Key Exchange (IKE) and Triple DES encryption. • Standards-based interoperability that does not require the deployment of new authentication technologies such as X.509 certificates. Visual Policy Editor (Formerly known as the Topology GUI) (New in VPN-1/FireWall-1 V4.1 SP1) Provides a comprehensive picture of enterprise security deployment by drawing a map of security objects, such as firewalls, VPNs, servers,
Chapter 1. The design of firewall environments
13
networks, routers, and so on, and the relationships between them. The Visual Policy Editor illustrates the effect of individual security policy rules by color-coding relevant elements in the map to indicate source, destination and encryption method. Other powerful policy editing capabilities include the ability to visually locate objects in the topology, edit object parameters and define groups of objects in the Visual Policy Editor. Benefits: • Increases security managers' understanding and control of Internet security. • Validates the intent and integrity of the security policy. • Object-oriented interactions make the process of managing a security policy more efficient. Integrated Bandwidth Management FloodGate-1 V4.1 has been integrated into the VPN-1 Management Console under the "Bandwidth Management" tab. In V4.1, VPN-1 and FloodGate-1 also share network object definitions. The Management Console also provides fine-grain administrative access controls, so that Bandwidth Policy managers can not see or edit security policies. Benefit: • Improved interface eases management of enterprise security and bandwidth management policy. Wizards Wizards provide guided, step-by-step creation of new security policies and object definitions. Wizards are also available in VPN-1 V4.0, Service Pack 3 and later. Benefit: • Simplifies the creation of a new network and enterprise security policy. New Licensing Scheme Check Point has implemented a new licensing scheme. The new licensing uses longer keys, but replaces feature strings with SKUs. All 4.1 customers must re-license. Benefit: • Licensing is simplified with more straightforward feature strings.
14
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Single CD Check Point VPN-1 V4.1 products are delivered on a single CD. "Check Point 2000" refers to the CD that contains V4.1 SP1 and is the CD that will be widely distributed for upgrades and will be the new default version. Benefits: • Channel partners no longer have to order individual product evaluation CDs. • A new installation procedure enables guided, integrated installation of multiple products for greatly simplified product installations and upgrades. New services supported VPN-1/FireWall-1 V4.1 supports the following additional services: • RTSP • PCAnywhere • IIOP (IONA and Oracle) • NetBIOS with NAT VPN-1 SecuRemote New functionality specific to VPN-1 SecuRemote Resilient Remote Access Resilient Remote Access is the capability of VPN-1 SecuRemote (and VPN-1 SecureClient) to seamlessly connect to an alternate gateway in the event the primary VPN-1 Gateway becomes unreachable. The end user need not select the backup gateway, as the VPN-1 client software, sensing the primary gateway's outage, will try secondary, tertiary and other backup VPN-1 gateways simultaneously, and the first one to respond will provide the VPN with tunneling service into the organization. Resilient Remote Access applies to VPNs in which two or more geographically separated internal networks are connected to each other via a private WAN link, also called a "Multiple Entry Points" configuration. Benefits: • More cost-efficient than traditional High Availability solutions requiring redundant hardware. • Provides reliable access to corporate resources.
Chapter 1. The design of firewall environments
15
• Ease of use: When a gateway is unavailable, users do not have to manually choose an alternate. Secure Authentication API (SAA) (New in Check Point 2000) Secure Authentication API (or SAA) enables innovative new authentication products to be used with Check Point's VPN client solutions, VPN-1 SecuRemote and VPN-1 SecureClient. With SAA, new types of hardware-based authentication schemes (for example, biometrics, proximity, and so on) can be used to authenticate a user when requesting a VPN connection. SAA passes authentication information from the VPN-1 client through the Gateway and on to an authentication server like RADIUS. The authentication server then tells the Gateway whether or not the user has been authenticated. Benefits: • Provides additional flexibility in choosing best-of-breed technologies to meet specific needs. • Extends the open SVN architecture by enabling third-party products, such as authentication solutions, to interoperate with VPN-1 solutions. Secure Domain Login (New in VPN-1/FireWall-1 V4.1 SP1) Secure Domain Login enables Windows 9x and NT users whose primary login is to the network (as opposed to local desktop) to have their login take place AFTER the VPN-1 tunnel has been established, so that the login information is encrypted. Previous releases of VPN-1 clients did not start in time to allow the Primary Domain Controller (PDC) login to take place over the VPN tunnel. Note On Windows 9x, Secure Domain Login is supported only for LAN adapters, while it is supported for both LAN and dial-up adapters on Windows NT. Benefit: • Improves security by enabling mobile users to securely perform PDC logins when coming in via external VPN connections.
16
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Automatic Topology Update (New in VPN-1/FireWall-1 V4.1 SP1) Automatic Topology Updates enable VPN-1 administrators to configure the VPN-1 clients to automatically fetch network topology (that is, the site information) on a periodic basis. This functionality requires Version 4.1 SP1 of VPN-1 Gateway. Benefits: • Adds further user transparency to ongoing configuration maintenance of VPN-1 clients. • Increases management efficiency and reduces end user training/support. Partial Topology Configuration (New in VPN-1/FireWall-1 V4.1 SP1) VPN-1 Clients can be pre-configured with a partial site topology. This feature is useful when users download their VPN-1 SecuRemote installations from a publicly accessible site and enables the system administrator to include minimal site topology information (only the site's IP address) in the downloadable userc.C file. The first time the user connects to the site, the full topology is downloaded automatically (after the user is authenticated). Benefit: • Enhances security by reducing the exposure of potentially sensitive network topology information. Automatic Version Checking (New in VPN-1/FireWall-1 V4.1 SP1) Administrators can define/set a policy to control the required version of VPN-1 SecuRemote/SecureClient software on clients connecting to VPN-1 gateways. When their software is out of date, the VPN-1 clients can now pop up a dialog box with a launchable URL (for example, pointing to an intranet software distribution server). This functionality requires Version 4.1 SP1 of VPN-1 Gateway. Benefit: • Aids administrators in managing software distribution of VPN-1 clients. VPN-1/FireWall-1 SecureServer New functionality specific to VPN-1/FireWall-1 SecureServer
Chapter 1. The design of firewall environments
17
Security for Application Servers FireWall-1/VPN-1 SecureServer delivers access control, client and session authentication, network address translation, and auditing capabilities for application servers. FireWall-1 SecureServer was called the Host Inspection Module in V4.0. Benefit: • Provides a cost-effective solution for protecting a single server running mission-critical applications. Intranet VPNs VPN-1 SecureServer delivers the same capabilities as FireWall-1 SecureServer, plus encryption. VPN-1 SecureServer, when used with either VPN-1 SecureClient or VPN-1 SecuRemote, enables client-server VPN tunnels between local or remote users and sensitive application servers. These "Intranet VPN" connections support all authentication and encryption schemes supported by VPN-1, including IPSec/IKE. VPN-1 SecureServer was called the VPN Inspection Module in V4.0. Benefit: • Protects the privacy of communications between clients and sensitive application servers. VPN-1 SecureClient New functionality specific to VPN-1 SecureClient Desktop Security VPN-1 SecureClient provides basic access control for local and remote client machines. Four pre-defined policies are provided: • Allow All (No Policy) • Allow Outgoing • Allow Encrypted • Allow Outgoing and Encrypted In V4.1, the same policy must be installed on all desktops. Users must successfully authenticate in order to download a security policy and gain access to any network resources.
18
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Benefits: • Protects client machines against attack and intrusion. • Strengthens enterprise security by ensuring intruders can not break into the corporate network by hijacking a VPN connection with an insecure remote client. Security Configuration Control VPN-1 SecureClient enables network security managers to ensure that users' desktops are configured securely before they are granted network access. The security configuration of a client desktop or laptop is validated when the user attempts to connect through a VPN-1 gateway or VPN-1 SecureServer, thus denying resource access for non-conforming desktops. As of Check Point 2000, configuration verification is now supported for both encrypted and cleartext connections (using Session Authentication rule enhancements). The following conditions can be enforced on client machines: • A valid security policy is installed (user must successfully authenticate in order to have a policy). • The policy is installed on all NICs on the machine. • No non-IP protocols are in use. • IP forwarding is turned off. Benefit: • Strengthens security of the extended enterprise network by ensuring client machines are configured correctly. Desktop Policy Verification (New in VPN-1/FireWall-1 V4.1 SP1) Policy Servers now maintain open "stateful" connections with VPN-1 SecureClients and are immediately notified when a client is reconfigured. The administrator can specify that the desktop configuration be verified, and the action to take if the configuration is incorrect. Benefit: • Strengthens security of the extended enterprise network by continuously ensuring client machines are configured correctly. Additive licensing (New in VPN-1/FireWall-1 V4.1 SP1)
Chapter 1. The design of firewall environments
19
A single Policy Server/Desktop Manager can use multiple license strings (licenses are no longer "up to n users"). For example, a customer with 600 users can purchase a 500 user license + 100 user license, not a 1000-user license. Benefit: • Enables more flexible licensing scenarios.
1.5 What’s new in VPN-1/FireWall-1 V4.1 SP2 This document outlines new functionality in the V4.1 SP2 releases of the following VPN-1 products: • VPN-1/FireWall-1 V4.1 Gateway • VPN-1 SecuRemote More details can be found in the Check Point VPN-1/FireWall-1 Version 4.1 SP2 Release Notes. VPN-1/FireWall-1 V4.1 Gateway New functionality specific to VPN-1/FireWall-1 Gateway Improved State Synchronization Kernel-based UDP synchronization replaces the former user-mode TCP method of synching state tables for VPN failovers between gateways configured for redundancy, either with the Check Point High Availability Module or with third-party HA solutions from OPSEC partners. Benefits: • Improved performance for VPN failovers under heavy loads. Benefits customers using either Check Point or OPSEC High Availability solutions. Content Security Capabilities for All TCP Services The new generic TCP Security Server (TCPSS) enables any TCP service to access a Content Security Server. The TCPSS acts as a client, which passes traffic to the Content Security Server for inspection. Benefits: • Enables traffic from any TCP-based application, such as proprietary or e-commerce applications, to be scanned for malicious content.
20
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Improved HTTP Handling Two new features have been added for the handling of HTTP traffic: • UFP Caching enables VPN-1/FireWall-1 modules to cache IP addresses and the corresponding UFP categories, thus reducing the number of requests to the UFP server. • URL Logging enables VPN-1/FireWall-1 modules to generate logs without diverting connections to the HTTP Security Server. Benefits: • Both features dramatically improve the performance of handling HTTP traffic. DNS Validation VPN-1/FireWall-1 validates that port 53 (TCP or UDP) is only used for DNS transport. Benefits: • Enhanced security by ensuring that DNS ports are not misused. VPN-1 SecuRemote/SecureClient New functionality specific to VPN-1/FireWall-1 SecureServer/SecureClient IPSec/IKE behind NAT Devices (UDP Encapsulation Mode) VPN-1 SecuRemote and VPN-1 SecureClient can now establish IPSec/IKE connections from behind devices that do Network Address Translation. Additionally, more than one VPN-1 client can now use IPSec from behind a device which does port mapping (also known as dynamic NAT or Hide NAT). This capability is achieved by encapsulating IPSec packets inside UDP datagrams. Benefits: • Greater flexibility for remote users to establish secure connections from behind devices such as DSL and cable modems, as well as other networking or firewall devices. Branding and Customization VPN-1 SecuRemote and SecureClient can now be customized in the following ways:
Chapter 1. The design of firewall environments
21
• The bitmap can be replaced on the Authentication panel. • The text strings can be changed on the Success/Failure panels. Benefits: • Customers can provide their own "look and feel" for the client interface, increasing ease of use for their end users and thereby reducing their help desk and overall management costs. • Channel Partners and Service Providers can add value by customizing their remote access offerings as well. Enhancements for Multiple Entry Point (MEP) configurations Two new capabilities are available for VPN configurations in which VPN-1 SecuRemote/SecureClient users access resources through one of multiple possible gateways: • A VPN-1 client may now be configured to attempt to connect through each of the interfaces on each gateway, instead of just the primary IP address. • A "stickiness" feature enables the client to maintain the connection with the gateway, which responds first to its request. Benefits: • Both features improve the "Resilient Remote Access" capabilities of VPN-1 clients, enabling them to attain a superior level of reliability even in the absence of redundant failover configurations.
22
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Part 2. Making Check Point FireWall-1 highly available
© Copyright IBM Corp. 2001
23
24
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX This chapter is a “cookbook” on how to implement the previously described modern firewall environment with the VPN-1/FireWall-1 product on the AIX operating system. Most of the information about VPN-1/FireWall-1 is not specific to AIX. Note
Up to date information, for example, answers to FAQs, on Check Point VPN-1/FireWall-1 is available at: http://www.phoneboy.com/fw1/
2.1 Planning and preparation Develop a careful and detailed plan and prepare H/W and S/W prerequisites before you begin.
2.1.1 Network plan The single most important and most used part of your documentation will be the network plan of your firewall environment. Figure 4 shows our network plan for this chapter.
tr2
fw_out 10.2.2.0/24
.2
fw_dmz 10.3.3.0/24
.3
fw_adm 10.4.4.0/24
.4
tr0
internetpc web
fw3 .....193 tr3
tr1
fw_int 9.3.187.128/25 .189
gui intranet_client
Figure 4. Network plan for stand-alone configuration
For our network plan: • fw_out, fw_dmz, fw_adm, and fw_int are the network names.
© Copyright IBM Corp. 2001
25
• The netmask is given in CIDR notation (/24 = 255.255.255.0, /25 = 255.255.255.128). • .2, .3, .4, .189, and .193 are the host IP addresses on the attached network (for example, the IP address of internetpc is 10.2.2.2, the IP address of fw3 on the fw_out network is 10.2.2.193, on fw_int it is 9.3.187.193, and so forth). • tr0, tr1, tr2, and tr3 are the network interface names on fw3. The fw_adm network is used only to administer the firewall. It is not required in all circumstances, but has the advantage of higher security. If you use a workstation on the internal network as a firewall administration client, you run the risk that somebody could try to take over the administration client’s IP address (when it was turned off) and get access to the firewall. The internal network is widely accessible and, therefore, less secure from network sniffing than a dedicated administration network. The administration workstation should be in a secured environment and not in a open door office room. We included the adm network because it is very useful in the high availability solution that is implemented in Chapter 3, “High availability for VPN-1/FireWall-1” on page 149. Note on IP Addresses
Since you will probably have to use different IP addresses than we did, you should create a table to map the IP addresses used in this book to the IP addresses you will have to use.
2.1.2 Nodes In addition to the network plan, you have to describe the functions and specifications of all nodes (computers, routers, and so on) in your firewall environment. Now, let’s take a quick look at the nodes we attached to the networks, as shown in Table 1. Table 1. Nodes used for firewall environment
Node Name
OS
Software
Simulated Function
internetpc
WinNT 4
Netscape Browser, WWW server, VPN-1/FireWall GUI, and encryption client
Dial-in Internet, WWW and FTP client (also traveling salesman), remote Web server on the Internet; can also be remote VPN-1/FireWall management GUI
26
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Node Name
OS
Software
Simulated Function
web
WinNT 4
WWW server
Corporate Web server
fw3
AIX 4.3.3
VPN-1/FireWall 4.1 SP2
Corporate firewall
gui
WinNT 4
VPN-1/FireWall GUI
Administration workstation of the firewall
intranet_client
WinNT 4
Netscape Browser
WWW client in the internal corporate network
Note
Many steps described in this book look very simple and obvious. Its purpose is to provide as much information as possible to those who are not familiar with either Check Point VPN-1/FireWall-1 or AIX. We do think that our readers are all highly qualified professionals, but perhaps not all of them have a lifetime experience in all of the many subjects and products we use in this book (for example, AIX, firewalls, VPN-1/FireWall-1, high availability, and HACMP). We tried to write a step-by-step “cookbook” that will be useful to almost everybody, no matter what background the reader has or what part of this book he or she is interested in. Please try to follow the steps that we describe in detail. If you do not follow all the steps, you may run into a problem that would not have occurred if you had just followed them as exactly as possible. Some steps may not have an obvious benefit at first sight, but will be important to make it work later.
2.2 Basic AIX installation This section quickly reviews the basic AIX installation steps. Those who are familiar with the AIX installation procedure may skip to Section 2.3, “Configuring AIX” on page 35. We do a New and Complete Overwrite installation (including TCB) from CD-ROM. You may want to use a serial port to install AIX, because some packages will therefore not be installed (for example, X-windows and CDE). Usually, firewalls do not have a graphics adapter anyway, because it saves money, and the freed slot can be used for another network interface card.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
27
In case you are familiar with UNIX, but not with AIX, you may want to look at The AIX Survival Guide, ISBN 0-201-59388-2. The basic AIX installation panels are shown below. They are provided to show the steps necessary for proper installation. The numbers indicated in monospace type are the user-entered input. Complete the following steps: 1. Before starting the installation, disconnect all network connectivity to untrusted networks (for example, unplug the external side of the Internet router, if you have one). 2. Insert the first AIX CD and boot from the CD. The way to change the boot CD-ROM is dependent on the model of RS/6000. 3. After booting from CD-ROM, you will be prompted to key in a proper number to define a console:
******* Please define the System Console. ******* Type the F1 key and press Enter to use this display as the system console. Druk op de toets F1 en daarna op Enter om dit beeldstation als de systeemconsole te gebruiken. Pour definir ce terminal comme console systeme, appuyez sur la touche F1 puis sur Entree. Taste F1 und anschliessend die Eingabetaste druecken, um diese Anzeige als Systemkonsole zu verwenden. Premere il tasto F1 ed Invio per usare questo terminale come console per il sistema Pulse la tecla F1 y pulse Intro para utilizar esta pantalla como consola del sistema. Premeu la tecla F1 i despres Intro per utilitzar aquesta pantalla com a consola del sistema. Digite a tecla F1 a pressione Enter para utilizar este video como console do sistems.
4. Choose your language by pressing a number and then press Enter.
28
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
>>> 1 2 3 4 5 6 7 8
Type 1 and press Enter to have English during install. Entreu 2 i premeu Intro per veure la instal·lació en catal-. Entrez 3 pour effectuer l'installation en français. Für Installation in deutscher Sprache 4 eingeben und die Eingabetaste drücken. Immettere 5 e premere Invio per l'installazione in Italiano. Digite 6 e pressione Enter para usar Português na instalação. Escriba 7 y pulse Intro para usar el idioma español durante la instalación. Skriv 8 och tryck ned Enter = Svenska vid installationen.
88 Help ?
>>> Choice [1]: 1
5. To change the installation settings, choose 2 and press Enter.
Welcome to Base Operating System Installation and Maintenance Type the number of your choice and press Enter. Choice is indicated by >>>. >>> 1 Start Install Now with Default Settings 2 Change/Show Installation Settings and Install 3 Start Maintenance Mode for System Recovery
88 Help ? 99 Previous Menu >>> Choice [1]:
2
6. Choose 1 and Enter to change the System Settings.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
29
Installation and Settings Either type 0 and press Enter to install with current settings, or type the number of the setting you want to change and press Enter. 1 System Settings: Method of Installation.............Preservation Disk Where You Want to Install.....hdisk0... 2 Primary Language Environment Settings (AFTER Cultural Convention................English Language ..........................English Keyboard ..........................English Keyboard Type......................Default
Install): (United States) (United States) (United States)
3 Install Trusted Computing Base...... No >>> 0 Install AIX with the current settings listed above. +----------------------------------------------------88 Help ? | WARNING: Base Operating System Installation will 99 Previous Menu | destroy or impair recovery of SOME data on the | destination disk hdisk0. >>> Choice [0]: 1
7. Choose 1 and press Enter for a New and Complete Overwrite.
Change Method of Installation Type the number of the installation method and press Enter. 1 New and Complete Overwrite Overwrites EVERYTHING on the disk selected for installation. Warning: Only use this method if the disk is totally empty or if there is nothing on the disk you want to preserve. >>> 2 Preservation Install Preserves SOME of the existing data on the disk selected for installation. Warning: This method overwrites the usr (/usr), variable (/var), temporary (/tmp), and root (/) file systems. Other product (applications) files and configuration data will be destroyed.
88 Help ? 99 Previous Menu >>> Choice [2]:
1
8. Choose 0 and press Enter to use the default hard disk selection.
30
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Change Disk(s) Where You Want to Install Type one or more numbers for the disk(s) to be used for installation and press Enter. To cancel a choice, type the corresponding number and Press Enter. At least one bootable disk must be selected. The current choice is indicated by >>>. Name >>> 1 hdisk0 >>> 2 hdisk1
>>> 0 66 77 88 99
Location Code 10-80-00-4,0 10-80-00-5,0
Size(MB) VG Status 8678 rootvg 8678 rootvg
Bootable Yes Yes
Continue with choices indicated above Disks not known to Base Operating System Installation Display More Disk Information Help ? Previous Menu
>>> Choice [0]: 0
9. Choose 3 and press Enter to install the Trusted Computing Base.
Installation and Settings Either type 0 and press Enter to install with current settings, or type the number of the setting you want to change and press Enter. 1 System Settings: Method of Installation.............New and Complete Overwrite Disk Where You Want to Install.....hdisk0... 2 Primary Language Environment Settings (AFTER Cultural Convention................English Language ..........................English Keyboard ..........................English Keyboard Type......................Default
Install): (United States) (United States) (United States)
3 Install Trusted Computing Base...... No >>> 0 Install AIX with the current settings listed above. +----------------------------------------------------88 Help ? | WARNING: Base Operating System Installation will 99 Previous Menu | destroy or impair recovery of ALL data on the | destination disk hdisk0. >>> Choice [0]: 3
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
31
Note
If you ever want to be able to use the Trusted Computing Base, you must install it now because it cannot be added later without reinstalling AIX. 10. Choose 0 and then press Enter to install your selections.
Installation and Settings Either type 0 and press Enter to install with current settings, or type the number of the setting you want to change and press Enter. 1 System Settings: Method of Installation.............New and Complete Overwrite Disk Where You Want to Install.....hdisk0... 2 Primary Language Environment Settings (AFTER Cultural Convention................English Language ..........................English Keyboard ..........................English Keyboard Type......................Default
Install): (United States) (United States) (United States)
3 Install Trusted Computing Base...... Yes >>> 0 Install AIX with the current settings listed above. +----------------------------------------------------88 Help ? | WARNING: Base Operating System Installation will 99 Previous Menu | destroy or impair recovery of ALL data on the | destination disk hdisk0. >>> Choice [0]: 0
A panel appears that shows you how the installation is coming along. This will take some time (30 minutes or more) and there will be a lot of output. In the end, the system will automatically reboot.
32
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Installing Base Operating System If you used the system key to select SERVICE mode, turn the system key to the NORMAL position any time before the installation ends. Please wait...
Approximate % tasks complete
1
Elapsed time (in minutes)
1
Making boot logical volume.
[...] Rebooting . . . Saving Base Customize Data to boot disk Starting the sync daemon Starting the error daemon System initialization completed. Starting Multi-user Initialization Performing auto-varyon of Volume Groups Activating all paging spaces swapon: Paging device /dev/hd6 activated. /dev/rhd1 (/home): ** Unmounted cleanly - Check suppressed Performing all automatic mounts Multi-user initialization completed Checking for srcmstr active...complete Starting tcpip daemons: 0513-059 The syslogd Subsystem has been started. Subsystem PID is 5440. 0513-059 The sendmail Subsystem has been started. Subsystem PID is 5682. 0513-059 The portmap Subsystem has been started. Subsystem PID is 5934. 0513-059 The inetd Subsystem has been started. Subsystem PID is 6192. 0513-059 The snmpd Subsystem has been started. Subsystem PID is 6450. 0513-059 The dpid2 Subsystem has been started. Subsystem PID is 6708. Finished starting tcpip daemons. Starting NFS services: 0513-059 The biod Subsystem has been started. Subsystem PID is 7744. 0513-059 The rpc.statd Subsystem has been started. Subsystem PID is 8006.
11. If you did this installation from a serial port using a terminal (or emulation program), you have to enter your terminal type and then press Enter.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
33
Set Terminal Type The terminal is not properly initialized. Please enter a terminal type and press Enter. Some terminal types are not supported in non-English languages. ibm3101 ibm3151 ibm3161 ibm3162 ibm3163 ibm3164 ibmpc lft
tvi912 tvi920 tvi925 tvi950 vs100 vt100 vt320 sun
vt330 vt340 wyse30 wyse50 wyse60 wyse100 wyse350
+-----------------------Messages-----------------------| If the next screen is unreadable, press Break (Ctrl-c) | to return to this screen. | |
88 Help ? 99 Exit >>> Choice []: vt100
12. An Installation Assistant is automatically started. Do not do any configuration here; just exit using the down arrow key to go to Tasks Completed - Exit to AIX Login and press Enter.
Installation Assistant Move cursor to desired item and press Enter. Set Date and Time Set root Password Set Installation Device Configure Network Communications Manage System Storage and Paging Space (rootvg) Manage Language Environment Create Users Define Printers Import Existing Volume Groups Install Software Applications Back Up the System Using SMIT (information only) Tasks Completed - Exit to AIX Login
F1=Help Esc+9=Shell
34
F2=Refresh Esc+0=Exit
F3=Cancel Enter=Do
Esc+8=Image
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
2.3 Configuring AIX This section reviews the basic customization steps for AIX that are required before installing VPN-1/FireWall-1.
2.3.1 Basic setup Login as root and set your password. Make sure to set your TERM correctly or menus will not show up properly.
[...] AIX Version 4 (C) Copyrights by IBM and by others 1982, 1996. Console login: root ******************************************************************************* * * * * * Welcome to AIX Version 4.3! * * * * * * Please see the README file in /usr/lpp/bos for information pertinent to * * this release of the AIX Operating System. * * * * * *******************************************************************************
# passwd Changing password for "root" root's New password: Enter the new password again: # export TERM=vt100 #
You may want to make your shell more comfortable by executing: set -o emacs
This is a Korn shell feature that lets you use emacs-like key combinations for navigation, for example, to repeat the last command. See Table 2. Table 2. emacs-mode Korn shell key combinations
Action
Key combination
Previous command in history.
Ctrl-P
Next command in history.
Ctrl-N
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
35
Action
Key combination
Move cursor one character to left (Backward).
Ctrl-B
Move cursor one character to right (Forward).
Ctrl-F
Move cursor to End of line.
Ctrl-E
Move cursor to beginning of line.
Ctrl-A
Clear line.
Ctrl-U
Note
To save some typing, Korn shell in emacs-mode completes the filename if it is unique after you press the Esc key twice. For example, entering /us and pressing Esc twice will complete the name to /usr/. Then, you can enter another couple of characters and repeat the process until you have the whole path to your final destination. If your input cannot be completed because it is not unique, pressing Esc twice does not do anything. In that case, press Esc and then the = key to get a listing of possible matches.
You may also want to alias those commands to your arrow keys. To enter these Ctrl combinations, press the \ key and release it, then hold down the Ctrl key and press, for example, the P key: # # # # # #
alias alias alias alias
__A=\CTRL-P __B=\CTRL-N __C=\CTRL-F __D=\CTRL-B
You may want to add the previous lines to your ~/.profile so that it gets executed every time you log in. If your output gets messed up for some reason, for example, because you did a # cat ~/.profile, execute # echo \CTRL-O: # # # # # #
36
echo echo echo echo echo
set -o emacs alias __A=^P alias __B=^N alias __C=^F alias __D=^B
>> >> >> >> >>
~/.profile ~/.profile ~/.profile ~/.profile ~/.profile
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
# echo export TERM=vt100 >> ~/.profile #
You may want to exit your shell and login again to see if your settings in the ~/.profile are good: # # exit [...] AIX Version 4 (C) Copyrights by IBM and by others 1982, 1996. Console login: root root's Password: ******************************************************************************* * * * * * Welcome to AIX Version 4.3! * * * * * * Please see the README file in /usr/lpp/bos for information pertinent to * * this release of the AIX Operating System. * * * * * ******************************************************************************* Last login: Mon Aug 21 14:37:18 CDT 2000 on /dev/lft0 #
Note
If the .profile is not being executed after a logout, login and then check your .dtprofile file. Uncomment out the last line: DTSOURCEPROFILE=true
and try again. Set the time and date with # smitty chtz_date.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
37
Set Date and Time Move cursor to desired item and press Enter. Change / Show Date & Time Change Time Zone Using System Defined Values Change Time Zone Using User Inputted Values
F1=Help Esc+9=Shell
F2=Refresh Esc+0=Exit
F3=Cancel Enter=Do
Esc+8=Image
Set the hostname with # smitty mkhostname.
Set Hostname Please refer to Help for information concerning hostname / INTERNET address mapping Type or select values in entry fields. Press Enter AFTER making all desired changes.
* HOSTNAME (symbolic name of your machine)
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] [fw3]
F4=List Esc+8=Image
If you did not install from a serial line, you may want to get rid of the X-windows CDE login panel by commenting out the rc.dt line in /etc/inittab by inserting a colon at the beginning of the line: # vi /etc/inittab
38
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
You will need to install some additional software packages. This is a list of the ones we used: bos.acct 4.3.3.0
#Accounting Services; needed for vmstat and iostat
bos.data 4.3.0.0
# Base Operating System Data; needed for man pages (includes the /usr/share/man directories)
bos.dosutil 4.3.3.0
# DOS Utilities; needed for dosread/doswrite for floppy disks
bos.net.tcp.server 4.3.3.0 # TCP/IP Server; needed for tcpdump and iptrace bos.sysmgt.trace 4.3.3.0
# Software Trace Service Aids; needed for the trace command
bos.txt.tfs 4.3.3.0
# Text Formatting Services; needed for the formatting of man pages
Note
As mentioned earlier in the book, you should carefully consider installing any documentation packages on the firewall machines. If a hacker manages to gain access to a firewall, offering him a full library of manuals, admin guides, and so on, is not a good idea. This also applies to the packages bos.data and bos.txt.tfs To install the above filesets: 1. Execute # smitty install_latest. 2. Press F4 (or the Esc key and then 4), select the CD-ROM device, and press Enter.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
39
Install and Update from LATEST Available Software Type or select a value for the entry field. Press Enter AFTER making all desired changes. [Entry Fields] [/dev/cd0]
* INPUT device / directory for software
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
+
F4=List Esc+8=Image
3. Press F4 (or the Esc key and then 4) on the SOFTWARE to install line. 4. Use the arrow keys or / (=find) to position and press F7 (or the Esc key and then 7) to select: bos.acct bos.data bos.dosutil bos.net.tcp.server bos.txt.tfs bos.sysmgt.trace
5. Press Enter to finish the selection.
40
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Install and Update from LATEST Available Software Tylqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk Prx SOFTWARE to install x x x x Move cursor to desired item and press Esc+7. Use arrow keys to scroll. x * x ONE OR MORE items can be selected. x * x Press Enter AFTER making all selections. x+ x x+ x [MORE...376] x+ x @ 4.3.3.0 libpthreads Library x+ x @ 4.3.3.0 libqb Library x+ x @ 4.3.3.0 libs Library x+ x x+ x bos.64bit ALL x+ x + 4.3.3.0 Base Operating System 64 bit Runtime x+ x x+ x bos.INed ALL x+ x + 4.3.3.0 INed Editor x x x x > bos.acct ALL x x + 4.3.3.0 Accounting Services x x x x [MORE...1543] x x x x F1=Help F2=Refresh F3=Cancel x F1x Esc+7=Select Esc+8=Image Esc+0=Exit x Esx Enter=Do /=Find n=Find Next x Esmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
6. Use the arrow keys to go to the SAVE replaced files? and use the Tab key to change the setting to yes. 7. Change the settings to yes in VERIFY install and check file sizes? and DETAILED output?. 8. After doing that, press Enter twice to start the installation. The installation will take some time and the system may prompt you to change the CD. Insert a new CD and press Enter to continue the installation. Note that the SOFTWARE does not show all selected filesets, because the line is too long (symbolized by the > at the end of the line).
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
41
Install and Update from LATEST Available Software Type or select values in entry fields. Press Enter AFTER making all desired changes.
* INPUT device / directory for software * SOFTWARE to install PREVIEW only? (install operation will NOT occur) COMMIT software updates? SAVE replaced files? AUTOMATICALLY install requisite software? EXTEND file systems if space needed? OVERWRITE same or newer versions? VERIFY install and check file sizes? Include corresponding LANGUAGE filesets? DETAILED output? Process multiple volumes?
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] /dev/cd0 [bos.acct no yes yes yes yes no yes yes yes yes
> + + + + + + + + + + +
F4=List Esc+8=Image
9. When the installation is finished, the third line from the top will read Command: OK instead of Command: running. Press the Esc key and then the > key to get to the end of the output. It should look similar to the following output:
42
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
COMMAND STATUS Command: OK
stdout: yes
stderr: no
Before command completion, additional instructions may appear below. [MORE...1131] bos.txt.tfs bos.sysmgt.trace bos.sysmgt.trace bos.net.tcp.server bos.net.tcp.server bos.msg.en_US.txt.tfs printers.msg.en_US.rte bos.dosutil bos.data bos.acct bos.acct
4.3.3.0 4.3.3.0 4.3.3.0 4.3.3.0 4.3.3.0 4.3.3.0 4.3.3.0 4.3.3.0 4.3.0.0 4.3.3.0 4.3.3.0
USR USR ROOT USR ROOT USR USR USR SHARE USR ROOT
APPLY APPLY APPLY APPLY APPLY APPLY APPLY APPLY APPLY APPLY APPLY
SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS
[BOTTOM] F1=Help Esc+8=Image n=Find Next
F2=Refresh Esc+9=Shell
F3=Cancel Esc+0=Exit
Esc+6=Command /=Find
To access the contents of Check Point installation CD later, we need to create a CD-ROM filesystem. Follow the steps below: 1. Create a mount point by entering # mkdir /cdrom. 2. Execute # smitty crcdrfs. 3. Pressing F4 offers you a pop-up box with the installed CD devices (in our case, cd0). 4. Select one by pressing Enter. 5. Enter your MOUNT POINT (in our case, /cdrom). 6. Change Mount AUTOMATICALLY at system restart? with the Tab key to yes if that is what you want. 7. Press Enter to execute the changes. 8. When Command: OK appears, you can exit by pressing F10. You then can enter # mount /cdrom to make it immediately accessible.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
43
Add a CDROM File System Type or select values in entry fields. Press Enter AFTER making all desired changes.
DEVICE name MOUNT POINT Mount AUTOMATICALLY at system restart?
[Entry Fields] cd0 [/cdrom] yes
+ +
---------------------------------------------------------------------------| DEVICE name | | | | Move cursor to desired item and press Enter. | | | | cd0 | | | | F1=Help F2=Refresh F3=Cancel | F1| Esc+8=Image Esc+0=Exit Enter=Do | Es| /=Find n=Find Next | Es----------------------------------------------------------------------------
It is useful to create a /usr/local filesystem to contain all local data. To do this, complete the following steps: 1. Create a mount point first by entering # mkdir /usr/local. 2. Execute # smitty crjfs. 3. Choose Add a Standard Journaled File System. 4. A pop-up box will offer you a choice of volume groups. Select rootvg and press Enter.
44
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Add a Journaled File System Move cursor to desired item and press Enter. Add a Standard Journaled File System Add a Compressed Journaled File System Add a Large File Enabled Journaled File System
---------------------------------------------------------------------------| Volume Group Name | | | | Move cursor to desired item and press Enter. | | | | rootvg | | | | F1=Help F2=Refresh F3=Cancel | | Esc+8=Image Esc+0=Exit Enter=Do | F1| /=Find n=Find Next | Es----------------------------------------------------------------------------
1. AIX expects you to enter the SIZE of file system (in 512 byte blocks). One megabyte equals 2,000 512 bytes blocks (300 MB equals 600,000 blocks). Enter the size you want. 2. Enter /usr/local as the MOUNT POINT. 3. Change Mount AUTOMATICALLY at system restart? with the Tab key to yes. 4. Press Enter to execute the changes. 5. When Command: OK appears, you should exit by pressing F10 and make the filesystem immediately accessible by issuing # mount /usr/local.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
45
Add a Standard Journaled File System Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] rootvg [600000] [/usr/local] yes read/write [] no 4096 4096 8
Volume group name * SIZE of file system (in 512-byte blocks) * MOUNT POINT Mount AUTOMATICALLY at system restart? PERMISSIONS Mount OPTIONS Start Disk Accounting? Fragment Size (bytes) Number of bytes per inode Allocation Group Size (MBytes)
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
# + + + + + + +
F4=List Esc+8=Image
Next, download the AIX Program Temporary Fixes (PTFs), or patches, that are provided by IBM from: http://service.software.ibm.com/cgi-bin/support/rs6000.support/downloads
or use the FIXDIST utility provided by IBM. It can be downloaded, and installed, from ftp://service.software.ibm.com. 1. Copy your PTFs to /usr/local/aixptfs. The following shows the list of the PTFs we installed in our lab: # ls /usr/local/aixptfs bos.net.nfs.client.4.3.3.1.bff bos.net.tcp.client.4.3.3.1.bff bos.net.tcp.server.4.3.3.1.bff bos.rte.aio.4.3.3.1.bff bos.rte.control.4.3.3.1.bff bos.rte.libc.4.3.3.1.bff
bos.rte.libpthreads.4.3.3.1.bff bos.rte.lvm.4.3.3.1.bff bos.rte.man.4.3.3.1.bff bos.rte.security.4.3.3.1.bff bos.rte.shell.4.3.3.1.bff bos.rte.tty.4.3.3.1.bff
2. Now you should install the PTFs by issuing # smitty update_all. 3. Enter the directory /usr/local/aixptfs in INPUT device / directory for software. More options will become available to you after pressing the Enter key. 4. Before doing the real installation, we will want to do a preview to see if there any prerequisites that are not fulfilled at the moment.
46
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Therefore, press the Tab key to set PREVIEW only? (update operation will NOT occur) to yes. 5. We also want to be able to reverse the update process and keep backup files of the replaced files. Therefore, change COMMIT software updates? to no. 6. Just to be on the safe side, change VERIFY install and check file sizes? and DETAILED output? both to yes. Press Enter twice to start the preview.
Update Installed Software to Latest Level (Update All) Type or select values in entry fields. Press Enter AFTER making all desired changes.
* INPUT device / directory for software * SOFTWARE to update PREVIEW only? (update operation will NOT occur) COMMIT software updates? SAVE replaced files? AUTOMATICALLY install requisite software? EXTEND file systems if space needed? VERIFY install and check file sizes? DETAILED output? Process multiple volumes?
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] /usr/local/aixptfs _update_all yes no no yes yes yes yes yes
+ + + + + + + +
F4=List Esc+8=Image
7. Use search (the / key) and look for the words failure and failed in the output of the preview. Command: OK does not necessarily mean that all is fine.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
47
COMMAND STATUS Command: OK
stdout: yes
stderr: no
Before command completion, additional instructions may appear below. [MORE...42] when "auto-install" is specified (-g flag)). << End of Success Section >> FILESET STATISTICS -----------------12 Selected to be installed, of which: 12 Passed pre-installation verification ---12 Total to be installed RESOURCES [MORE...18] F1=Help Esc+8=Image n=Find Next
F2=Refresh Esc+9=Shell
F3=Cancel Esc+0=Exit
Esc+6=Command /=Find
8. When the installation of the PTFs is finished, the third line from the top will show Command: OK instead of Command: running. Press the Esc key and then the > key to get to the end of the output. It should look similar to the output in the following box:
48
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
COMMAND STATUS Command: OK
stdout: yes
stderr: no
Before command completion, additional instructions may appear below. [MORE...401] bos.net.tcp.client bos.net.tcp.client bos.net.tcp.server bos.rte.libc bos.rte.control bos.rte.shell bos.rte.aio bos.rte.aio bos.net.nfs.client bos.net.nfs.client bos.rte.man
4.3.3.1 4.3.3.1 4.3.3.1 4.3.3.1 4.3.3.1 4.3.3.1 4.3.3.1 4.3.3.1 4.3.3.1 4.3.3.1 4.3.3.1
USR ROOT USR USR USR USR USR ROOT USR ROOT USR
APPLY APPLY APPLY APPLY APPLY APPLY APPLY APPLY APPLY APPLY APPLY
SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS
[BOTTOM] F1=Help F8=Image
F2=Refresh F9=Shell
F3=Cancel F10=Exit
F6=Command /=Find
9. To actually install the PTFs, go back one step by pressing F3 and then change PREVIEW only? to no and press Enter twice. Installing the PTFs will take some time. When the installation is done, you can once again use the Esc and > keys to look at the last page of output that tells you of the successes of installation.
2.3.2 Configuration of AIX networking Since we use token ring, make sure that all your token ring network adapters are using the right ring speed. You can edit adapter setting by executing # smitty chgtok. You will get a pop-up box of adapters to choose from. Select the one you want to configure and press Enter.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
49
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x Token Ring Adapter x x x x Move cursor to desired item and press Enter. x x x x tok0 Available 10-90 IBM PCI Tokenring Adapter (14103e00) x x tok1 Available 1P-08 IBM PCI Tokenring Adapter (14103e00) x x tok2 Available 1P-10 IBM PCI Tokenring Adapter (14101800) x x tok3 Available 1P-18 IBM PCI Tokenring Adapter (14101800) x x x x F1=Help F2=Refresh F3=Cancel x x F8=Image F10=Exit Enter=Do x x /=Find n=Find Next x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
Check the RING speed setting and change it, if necessary, using Tab. Press Enter to execute the changes. Repeat for all token-ring interfaces.
Change / Show Characteristics Ring Adapter Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] tok0 IBM PCI Tokenring Adap> Available 10-90 [512] +# [64] +# [16] + yes + no + no + no + [0x] + no +
Token Ring Adapter Description Status Location TRANSMIT queue size HARDWARE RECEIVE queue size RING speed Full duplex Receive ATTENTION MAC frame Receive BEACON MAC frame Enable ALTERNATE TOKEN RING address ALTERNATE TOKEN RING address Apply change to DATABASE only
F1=Help F5=Reset
50
F2=Refresh F6=Command
F3=Cancel F7=Edit
F4=List F8=Image
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Note
If the change fails with this error message: Method error (/usr/lib/methods/chgtok): 0514-062 Cannot perform the requested function because the specified device is busy.
you should issue: # ifconfig tr0 down detach
and try again (replace tr0 with the actual network interface). In this case, the network interface was already in use and had to be restarted after changing the RING speed by using the Change/Show a Token-Ring Network Interface menu (explained in the next step).
Now, configure the network adapters according to your network plan: 1. Execute # smitty inet. 2. Move the cursor to Change/Show Characteristics of a Network Interface and press Enter. A box with the installed network interfaces pops up. 3. Select the first one you want to configure. If the adapter you are looking for is not available, you will have to use F3 to exit the pop-up box and then select Add a Network Interface in the menu. To figure out which of the hardware network adapters correspond to the symbolic interface names, such as tr3, you may want to use the # lsdev -Cc adapter command and look for hardware slot numbers.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
51
Network Interface Selection Move cursor to desired item and press Enter. List All Network Interfaces Add a Network Interface Change / Show Characteristics of a Network Interface Remove a Network Interface lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x Available Network Interfaces x x x x Move cursor to desired item and press Enter. x x x x en0 Standard Ethernet Network Interface x x et0 IEEE 802.3 Ethernet Network Interface x x tr0 Token Ring Network Interface x x tr1 Token Ring Network Interface x x tr2 Token Ring Network Interface x x tr3 Token Ring Network Interface x x x x F1=Help F2=Refresh F3=Cancel x x F8=Image F10=Exit Enter=Do x F1x /=Find n=Find Next x F9mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
4. After selecting the network interface, enter its IP address and netmask and change the state to up using the Tab key. Then execute your changes by pressing Enter. Repeat this step for each of your interfaces.
52
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Change / Show a Token-Ring Network Interface Type or select values in entry fields. Press Enter AFTER making all desired changes.
Network Interface Name INTERNET ADDRESS (dotted decimal) Network MASK (hexadecimal or dotted decimal) Current STATE Use Address Resolution Protocol (ARP)? Enable Hardware LOOPBACK Mode? BROADCAST ADDRESS (dotted decimal) Confine BROADCAST to LOCAL Token-Ring?
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] tr0 [10.3.3.193] [255.255.255.0] up yes no [] no
+ + + +
F4=List Esc+8=Image
After configuring your network interfaces, check the settings by issuing # ifconfig -a.
# ifconfig -a lo0: flags=e08084b
inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255 inet6 ::1/0 tr1: flags=e0a0043 inet 10.4.4.193 netmask 0xffffff00 broadcast 10.4.4.255 tr2: flags=e0a0043 inet 10.2.2.193 netmask 0xffffff00 broadcast 10.2.2.255 tr3: flags=e0a0043 inet 9.3.187.193 netmask 0xffffff80 broadcast 9.3.187.255 tr0: flags=e0a0043 inet 10.3.3.193 netmask 0xffffff00 broadcast 10.3.3.255
To set your default gateway (which will usually be the router on the extranet/Internet side of you firewall), complete the following steps: 1. Execute # smitty tcpip. 2. Choose Minimum Configuration & Startup and press Enter. 3. Choose the network interface to the external network (it is tr2 in our case) that is connected to your default gateway and press Enter again.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
53
TCP/IP Move cursor to desired item and press Enter. Minimum Configuration & Startup Further Configuration Use DHCP for TCPIP Configuration & Startup IPV6 Configuration Qualqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x Available Network Interfaces x x x x Move cursor to desired item and press Enter. x x x x en0 Standard Ethernet Network Interface x x et0 IEEE 802.3 Ethernet Network Interface x x tr0 Token Ring Network Interface x x tr1 Token Ring Network Interface x x tr2 Token Ring Network Interface x x tr3 Token Ring Network Interface x x x x F1=Help F2=Refresh F3=Cancel x x F8=Image F10=Exit Enter=Do x F1=Hex /=Find n=Find Next x F9=Shmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
4. You should move the cursor to Default GATEWAY Address and enter your default gateway. Using DNS on a firewall is not recommended, because it is insecure and slow. Do not enter a name server address. You may also want to change the START Now option to yes by pressing the Tab key before executing the changes by pressing Enter.
54
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Minimum Configuration & Startup To Delete existing configuration data, please use Further Configuration menus Type or select values in entry fields. Press Enter AFTER making all desired changes.
* HOSTNAME * Internet ADDRESS (dotted decimal) Network MASK (dotted decimal) * Network INTERFACE NAMESERVER Internet ADDRESS (dotted decimal) DOMAIN Name Default GATEWAY Address (dotted decimal or symbolic name) RING Speed START Now
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] [fw3] [10.2.2.193] [255.255.255.0] tr2 [] [] [] [16] no
+ +
F4=List Esc+8=Image
Now, you should create a /etc/hosts file that has all the IP addresses and hostnames that are critical to the operation of your firewall. The various IP addresses of the firewall are named after the network they are connected to. For example, fw3_out_boot is the IP address of the firewall that is attached to the network called out (the way to the Internet). web_official and intranet_hide are addresses that will be used for network address translation later in this chapter. For example: # cat > /etc/hosts 127.0.0.1 loopback localhost 10.2.2.2 internetpc 10.2.2.193 fw3_out_boot fw3 10.2.2.3 web_official 10.2.2.9 intranet_hide 10.3.3.3 web 10.3.3.193 fw3_dmz_boot 10.4.4.4 gui 10.4.4.193 fw3_adm_boot fw3_adm 9.3.187.189 intranet_client 9.3.187.193 fw3_int_boot CTRL-D #
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
55
As explained in Step 3 of Section 2.4, “Basic installation of VPN-1/FireWall-1” on page 56, DNS on a firewall is not recommended. Therefore, you may want to force AIX not to use DNS by doing the following: # echo "hosts=local" > /etc/netsvc.conf # mv /etc/resolv.conf /etc/resolv.conf.old
Next, test the network connectivity by using ping. Do ping to at least one IP address on each network that the firewall is connected to.
# for f in internetpc intranet_client web gui; do ping -c 1 $f; done PING internetpc: (10.2.2.2): 56 data bytes 64 bytes from 10.2.2.2: icmp_seq=0 ttl=128 time=0 ms ----internetpc PING Statistics---1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms PING intranet_client: (9.3.187.189): 56 data bytes 64 bytes from 9.3.187.189: icmp_seq=0 ttl=128 time=0 ms ----intranet_client PING Statistics---1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms PING web: (10.3.3.3): 56 data bytes 64 bytes from 10.3.3.3: icmp_seq=0 ttl=128 time=0 ms ----web PING Statistics---1 packets transmitted, 1 packets received, 0% packet loss PING gui: (10.4.4.4): 56 data bytes 64 bytes from 10.4.4.4: icmp_seq=0 ttl=128 time=0 ms ----gui PING Statistics---1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms
2.4 Basic installation of VPN-1/FireWall-1 This section is not meant to replace the VPN-1/FireWall-1 installation documentation. Therefore, you should refer to the FireWall-1 Quick Start Guide and read it while we walk through a step by step installation. It is strongly suggested to at least take a look at Chapter 1 "FireWall-1 Overview" in the Getting Started with FireWall-1 User Guide if you have not extensively used VPN-1/FireWall-1 in the past. You might notice that Chapter 2 "Installing FireWall-1" is identical to the contents of the Quick Start Guide. Even before starting, you should find and read the release notes that are shipped with your VPN-1/FireWall-1 release and keep hardcopies of them in a
56
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
handy place during installation and configuration. It will save you a lot of time, as known bugs and other new features are documented there. It is the minimum documentation that everybody should always read and keep in mind, regardless of how much experience he or she has with the products. You should not connect your systems to the Internet before your firewall is installed and you are 100 percent sure about its security. Refer to the first section "Before Installing FireWall-1" in Chapter 1 of the Quick Start Guide. It requires you to ping and Telnet from the inside through the firewall to the external side. For that reason, it may be a good idea to ping and Telnet from an internal workstation to the external router that is still disconnected from the Internet. To be able to route packets through the firewall, ipforwarding must be enabled. You can check the status of ipforwarding with the no command. To enable ipforwarding, use # no -o ipforwading=1 as follows: # no -a | grep ipforwarding ipforwarding = 0 # no -o ipforwarding=1 # no -a | grep ipforwarding ipforwarding = 1 #
Check if you are able to ping and telnet from you internal workstation to the external router. If you are not, then there is probably a routing problem on the internal workstation and/or the external router. Please note that all internal routing should usually have either directly, or over a router, a default route that points to the internal interface of the firewall. The external router will temporarily require routes for the internal networks to the external interface of the firewall for this test to work properly.
Note for HACMP
These routes should now point to the unique boot addresses of the firewall in this installation process, and will later need to point to the floating service addresses, to ensure high availability with HACMP. In the next step, the Quick Start Guide asks you to "Confirm that DNS is working properly." Using DNS on the firewall usually does more harm than good, because it is slow (if something hangs for two minutes and continues, it usually is a DNS problem), unreliable (you depend on servers that may be outside of your control), and insecure (because of DNS spoofing, which
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
57
enables hackers to create the illusion of a IP address or DNS name being part of a domain that it is not really part of). Even if your firewall does not use DNS, it does not prevent your clients, proxy servers, or anybody else from using DNS (that will be enabled in the VPN-1/FireWall ruleset). For security purposes, it is best only to use IP addresses and static /etc/hosts entries. It will save you a lot of trouble and confusion, even though it is not very pretty or convenient. We recommend not using DNS on a firewall server. Note
The advice given in the Quick Start Guide to connect to the Internet and surf on well-known Web servers to test DNS should be ignored, as this could be a big security risk without having the firewall installed and properly configured. As explained in the Quick Start Guide, your /etc/hosts file should list all important addresses especially all the gateways addresses. It is very important that your firewall’s hostname resolves to its external IP address for the VPN-1/FireWall-1 software (especially encryption) to work properly. If you have not worked with the latest versions of VPN-1/FireWall-1 much, you should read some of the Getting Started with FireWall-1 User Guide as suggested by the Quick Start Guide. You will need this information to understand the modular concept of VPN-1/FireWall-1 software installation. The concept is summarized in this way in the Quick Start Guide: To summarize, the Management Module (also known as the Management Server) is the computer on which the Rule Base is maintained. The Master is the computer to which logs and alerts are sent. A Firewalled host is a computer on which a FireWall Module has been installed and which enforces some part of the security policy. Based on this knowledge, it is recommended that you install both the management and the firewall module on the firewall. The VPN-1/FireWall-1 GUI Client is installed on a Windows 95 Workstation on the adm network. Then, you are asked to check the network connectivity between all involved workstations using the ping command before starting the software installation process. This takes less than one minute if everything is all right and may save you hours of debugging in the wrong direction later on.
58
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
# for f in internetpc intranet_client web gui; do ping -c 1 $f; done PING internetpc: (10.2.2.2): 56 data bytes 64 bytes from 10.2.2.2: icmp_seq=0 ttl=128 time=0 ms ----internetpc PING Statistics---1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms PING intranet_client: (9.3.187.189): 56 data bytes 64 bytes from 9.3.187.189: icmp_seq=0 ttl=128 time=0 ms ----intranet_client PING Statistics---1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms PING web: (10.3.3.3): 56 data bytes 64 bytes from 10.3.3.3: icmp_seq=0 ttl=128 time=0 ms ----web PING Statistics---1 packets transmitted, 1 packets received, 0% packet loss PING gui: (10.4.4.4): 56 data bytes 64 bytes from 10.4.4.4: icmp_seq=0 ttl=128 time=0 ms ----gui PING Statistics---1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms #
Now refer to the section "IBM AIX" under "Installing on Unix Platforms" in the Quick Start Guide. Please read the "Special Notes for IBM AIX." You should have the current VPN-1/FireWall-1 software on a CD-ROM or by some other means. Copy the AIX-related files from your VPN-1/FireWall media to the /usr/local/fw1 directory: # # # # # #
cd / mount /cdrom mount /usr/local mkdir /usr/local/fw1 cp -r /cdrom/aix /usr/local/fw1 umount /cdrom
Having all the data in /usr/local saves time later on. Now, we deviate a bit from the Quick Start Guide, but what we are doing is basically the same as explained there. The Quick Start Guide talks about the X-windows version of SMIT, which is not useful if there is no X-windows installed (because of security concerns). But the terminal version of SMIT, called SMITTY, also works fine in an xterm if you stick to X-windows. 1. Execute # smitty install_latest.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
59
2. Enter /usr/local/fw1/CPfw1-41 in INPUT device/directory for software and press Enter once. 3. Press F4 to list the available software, as shown in the screenshot of the next step:
Install and Update from LATEST Available Software Type or select values in entry fields. Press Enter AFTER making all desired changes.
* INPUT device / directory for software * SOFTWARE to install PREVIEW only? (install operation will NOT occur) COMMIT software updates? SAVE replaced files? AUTOMATICALLY install requisite software? EXTEND file systems if space needed? OVERWRITE same or newer versions? VERIFY install and check file sizes? Include corresponding LANGUAGE filesets? DETAILED output? Process multiple volumes?
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] /usr/local/fw1/CPfw1-41 [_all_latest] no yes no yes yes no no yes no yes
+ + + + + + + + + + +
F4=List Esc+8=Image
Use the down arrow to go to Check Point VPN-1/FireWall-1 For AIX and press F7 to select it. Press Enter to close the pop-up box.
60
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Install and Update from LATEST Available Software Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] * INPUT device / directory for software /usr/local/fw1/CPfw1-41 * SOFTWARE to install [_all_latest] + lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk+ x SOFTWARE to install x+ x x+ x Move cursor to desired item and press F7. Use arrow keys to scroll. x+ x ONE OR MORE items can be selected. x+ x Press Enter AFTER making all selections. x+ x x+ x #--------------------------------------------------------------------- x+ x # x+ x # KEY: x+ x # + = No license password required x x # x x #--------------------------------------------------------------------- x x x x CPfw1-41 ALL x x > + 4.1.0.0 Check Point FireWall-1 For AIX, 4.1.0.0 x x + 4.1.0.0 GUI for Check Point FireWall-1 For AIX, 4.1.0.0 x x x x F1=Help F2=Refresh F3=Cancel x F1x F7=Select F8=Image F10=Exit x F5x Enter=Do /=Find n=Find Next x F9mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
1. Change PREVIEW only? to yes, because we want to find the missing pre-requisites. 2. Change COMMIT software updates? to no. 3. Change VERIFY install and check file sizes? to yes. 4. Change DETAILED output? to yes.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
61
5. Press Enter twice to execute preview.
Install and Update from LATEST Available Software Type or select values in entry fields. Press Enter AFTER making all desired changes.
* INPUT device / directory for software * SOFTWARE to install PREVIEW only? (install operation will NOT occur) COMMIT software updates? SAVE replaced files? AUTOMATICALLY install requisite software? EXTEND file systems if space needed? OVERWRITE same or newer versions? VERIFY install and check file sizes? Include corresponding LANGUAGE filesets? DETAILED output? Process multiple volumes?
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] /usr/local/fw1/CPfw1-41 [+ 4.1.0.0 Check Point> yes no no yes yes no yes yes yes yes
+ + + + + + + + + + +
F4=List Esc+8=Image
When the installation preview is finished, the third line from the top reads Command: OK instead of Command: running. It may fail sometimes. Look into the detailed log messages. Command: OK does not necessarily mean that all is OK. In order to do this, perform the following steps: 1. Press the Esc key and then the > key to get to the end of the output. It will tell you how many filesets succeeded and how many failed. Our preview failed because some requisites were not fulfilled. 2. Press the Esc key and then the < key to get to the start of the output. 3. Press the Ctrl key and the V key at the same time to scroll down to MISSING REQUISITES. In our case, the fileset bos.adt.syscalls 4.0.5.1 was required by the VPN-1/FireWall-1 software, but not installed yet.
62
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
COMMAND STATUS Command: OK
stdout: yes
stderr: no
Before command completion, additional instructions may appear below. [MORE...30] MISSING REQUISITES: The following filesets are required by one or more of the selected filesets listed above. They are not currently installed and could not be found on the installation media. (Selected filesets which depend upon these requisites are referenced in parentheses.) bos.adt.syscalls 4.0.5.1 (dep #s: 1)
# Fileset Update
<< End of Failure Section >> FILESET STATISTICS [MORE...10] F1=Help Esc+8=Image n=Find Next
F2=Refresh Esc+9=Shell
F3=Cancel Esc+0=Exit
Esc+6=Command /=Find
In this case, you have to exit smitty by pressing the Esc and 0 keys and install the missing software first: 1. Insert volume 1 of the AIX CD-ROMs into the CD-ROM drive. You may need to unmount the currently inserted CD-ROM first if the CD-ROM drive does not eject the currently inserted CD-ROM. 2. Execute # smitty install_all. 3. Press F4, choose the CD device, and press Enter. 4. Press F4 again, this time to get to software selection. It takes a while for the selection box to pop up. 5. Press the / key and enter the fileset name (for example, bos.adt.syscalls) to search for and press Enter. 6. Press F7 to select the package and close the pop-up box with Enter. 7. Change COMMIT software updates? to no. 8. Change VERIFY install and check file sizes? to yes. 9. Change DETAILED output? to yes. 10. Press Enter twice to install the package.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
63
Install and Update from ALL Available Software Type or select values in entry fields. Press Enter AFTER making all desired changes.
* INPUT device / directory for software * SOFTWARE to install PREVIEW only? (install operation will NOT occur) COMMIT software updates? SAVE replaced files? AUTOMATICALLY install requisite software? EXTEND file systems if space needed? OVERWRITE same or newer versions? VERIFY install and check file sizes? Include corresponding LANGUAGE filesets? DETAILED output? Process multiple volumes?
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] /dev/cd0 [+ 4.3.3.0 System Call> + no + no + no + yes + yes + no + yes + yes + yes + yes +
F4=List Esc+8=Image
When installation is finished, press the Esc key and then the > key to get to the end of the output. It should look similar to the following panel:
64
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
COMMAND STATUS Command: OK
stdout: yes
stderr: no
Before command completion, additional instructions may appear below. [MORE...95] Finished processing all filesets. (Total time: 15 secs). +-----------------------------------------------------------------------------+ Summaries: +-----------------------------------------------------------------------------+ Installation Summary -------------------Name Level Part Event Result ------------------------------------------------------------------------------bos.adt.syscalls 4.3.3.0 USR APPLY SUCCESS [BOTTOM] F1=Help Esc+8=Image
F2=Refresh Esc+9=Shell
F3=Cancel Esc+0=Exit
Esc+6=Command /=Find
Exit with F10 and execute # smitty install_latest. 1. Enter /usr/local/fw1/CPfw1-41 in INPUT device/directory for software and press Enter once. 2. Press F4 to list the available software. 3. Select Check Point FireWall-1 For AIX by pressing F7. 4. Press Enter to close the pop-up box.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
65
Install and Update from LATEST Available Software Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] * INPUT device / directory for software /cdrom/aix/CPfw1-41 * SOFTWARE to install [+ 4.1.0.0 Check Point> + PREVIEW only? (install operation will NOT occur) no + lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk+ x SOFTWARE to install x+ x x+ x Move cursor to desired item and press F7. Use arrow keys to scroll. x+ x ONE OR MORE items can be selected. x+ x Press Enter AFTER making all selections. x+ x x+ x #--------------------------------------------------------------------- x+ x # x+ x # KEY: x x # + = No license password required x x # x x #--------------------------------------------------------------------- x x x x CPfw1-41 ALL x x > + 4.1.0.0 Check Point FireWall-1 For AIX, 4.1.0.0 x x + 4.1.0.0 GUI for Check Point FireWall-1 For AIX, 4.1.0.0 x x x x F1=Help F2=Refresh F3=Cancel x F1x F7=Select F8=Image F10=Exit x F5x Enter=Do /=Find n=Find Next x F9mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
5. Change PREVIEW only? to yes, because we want to find out if all requisites are fulfilled now. 6. Change COMMIT software updates? to no. 7. Change VERIFY install and check file sizes? to yes. 8. Change DETAILED output? to yes. 9. Press Enter twice to execute the preview.
66
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Install and Update from LATEST Available Software Type or select values in entry fields. Press Enter AFTER making all desired changes.
* INPUT device / directory for software * SOFTWARE to install PREVIEW only? (install operation will NOT occur) COMMIT software updates? SAVE replaced files? AUTOMATICALLY install requisite software? EXTEND file systems if space needed? OVERWRITE same or newer versions? VERIFY install and check file sizes? Include corresponding LANGUAGE filesets? DETAILED output? Process multiple volumes?
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] /usr/local/fw1/CPfw1-4> [+ 4.1.0.0 Check Point> yes no no yes yes no yes yes yes yes
+ + + + + + + + + + +
F4=List Esc+8=Image
10. Scroll down with the Ctrl and V keys and check if the VPN-1/FireWall-1 software is listed under SUCCESSES somewhere in the middle of the output.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
67
COMMAND STATUS Command: OK
stdout: yes
stderr: no
Before command completion, additional instructions may appear below. [MORE...17] SUCCESSES --------Filesets listed in this section passed pre-installation verification and will be installed. -- Filesets are listed in the order in which they will be installed. -- The reason for installing each fileset is indicated with a keyword in parentheses and explained by a "Success Key" following this list. CPfw1-41.fw 4.1.0.0 (Selected) Check Point FileWall-1 For AIX, 4.1.0.0
[MORE...43] F1=Help Esc+8=Image n=Find Next
F2=Refresh Esc+9=Shell
F3=Cancel Esc+0=Exit
Esc+6=Command /=Find
11. Press F3 to go back, change PREVIEW only? to no, and press Enter twice to do the real installation. When the installation is finished, press the Esc and > keys to get to the end of the output. It should look similar to the following panel.
68
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
COMMAND STATUS Command: OK
stdout: yes
stderr: no
Before command completion, additional instructions may appear below. [MORE...298] Finished processing all filesets. (Total time: 30 secs). +-----------------------------------------------------------------------------+ Summaries: +-----------------------------------------------------------------------------+ Installation Summary -------------------Name Level Part Event Result ------------------------------------------------------------------------------CPfw1-41.fw 4.1.0.0 USR APPLY SUCCESS [BOTTOM] F1=Help Esc+8=Image n=Find Next
F2=Refresh Esc+9=Shell
F3=Cancel Esc+0=Exit
Esc+6=Command /=Find
12. Press F12 to exit. Now, you only need to add the VPN-1/FireWall-1 directory to your PATH and MANPATH, and you can start to configure your VPN-1/FireWall-1. Exit your shell and login again to see if your PATH is OK.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
69
# cat >> ~/.profile FWDIR=/usr/lpp/CPfw1-41 ; export FWDIR PATH=$PATH:$FWDIR/bin:/usr/local/bin ; export PATH MANPATH=$MANPATH:$FWDIR/man ; export MANPATH CTRL-D # # exit [...] AIX Version 4 (C) Copyrights by IBM and by others 1982, 1996. Console login: root root's Password: ******************************************************************************* * * * * * Welcome to AIX Version 4.3! * * * * Please see the README file in /usr/lpp/bos for information pertinent to * * this release of the AIX Operating System. * * * ******************************************************************************* # echo $PATH /usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/lpp/CPfw1-41/bin:/usr /local/bin #
2.5 Basic configuration of VPN-1/FireWall-1 Now, we are back on track with the "Configuring FireWall-1" section in the Quick Start Guide. Start cpconfig and press Enter to continue (after being asked to do so): # cpconfig Welcome to VPN-1 & FireWall-1 Configuration Program ================================================= Please read the following license agreement. Hit 'ENTER' to continue...
Read the license agreement (you can exit any time by pressing q), and accept the license by entering y and pressing Enter: [...] Do you accept all the terms of this license agreement (y/n) ? y
A menu appears. We want to be able to install both VPN-1/FireWall-1 modules onto one machine, but be able to manage Gateway/Server Modules
70
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
on other machines, so we select the Distributed Installation option. Press 2 and press Enter: Checking available options. Please wait..................... Choosing Installation -----------------------(1) VPN-1 & FireWall-1 Stand Alone Installation (2) VPN-1 & FireWall-1 Distributed Installation Option (1) will install VPN-1 & FireWall-1 Internet GateWay (Management Server and Enforcement Module) on a single machine. Option (2) will allow you to install specific components of the VPN-1 & FireWall-1 Enterprise Products on different machines. Enter your selection (1-2/a): 2
You are prompted to decide if you want both the Enterprise Management and Gateway/Server Module installed or just one of them. We want both, so Press 1 and Enter: Installing VPN-1 & FireWall-1 Distributed Installation.
Which Module would you like to install ? ------------------------------------------(1) VPN-1 & FireWall-1 Enterprise Management and Gateway/Server Module (2) VPN-1 & FireWall-1 Gateway/Server Module (3) VPN-1 & FireWall-1 Enterprise Management Enter your selection (1-3/a) [1]: 1
We want the Unlimited hosts module installed, so press 2 and Enter: Which Module would you like to install ? ------------------------------------------(1) VPN-1 & FireWall-1 - Limited hosts (25, 50, 100 or 250) (2) VPN-1 & FireWall-1 - Unlimited hosts (3) VPN-1 & FireWall-1 - SecureServer Enter your selection (1-3/a) [2]: 2
We do not wish to have VPN-1/FireWall started automatically. Instead, we will do it manually later. Press n, then press Enter:
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
71
Do you wish to start VPN-1 & FireWall-1 automatically from /etc/rc.net (y/n) [y] ? n
We do not add a license now. We will do that later in a better way: Do you want to add licenses (y/n) [n] ? n
Now, we need to create at least one VPN-1/FireWall administrative account. Create an VPN-1/FireWall Administrator called root with a root password. Give it read/write permission as follows: Configuring Administrators... ============================= No VPN-1 & FireWall-1 Administrators are currently defined for this Management Station. Do you want to add users (y/n) [y] ? y User: root Permissions ([M]onitor-only,[R]ead-only,[U]sers-edit,read/[W]rite): W Password: Verify Password: User root added successfully Add another one (y/n) [n] ? n
The next step is to configure the VPN-1/FireWall GUI clients. Press y and Enter. Whenever you change this list using the cpconfig menu, you need to re-enter all of the GUI clients. Enter the IP addresses of all nodes that will be allowed to use a VPN-1/FireWall-1 GUI to connect to this firewall. Input at least the IP address of the GUI workstation in the adm network and press Enter. When you are finished, press the Ctrl and D keys at the same time. You are asked if your input was correct. If your answer is not y, the step will be repeated. Configuring GUI clients... ========================== GUI clients are trusted hosts from which VPN-1 & FireWall-1 Administrators are allowed to log on to this Management Station using Windows/X-Motif GUI. Do you want to add GUI clients (y/n) [y] ? y
72
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Please enter the list hosts that will be GUI clients. Enter hostname or IP address, one per line, terminating with CTRL-D or your EOF character. 10.4.4.4 10.2.2.2 CTRL-D Is this correct (y/n) [y] ? y
Note
This editing method feels unusual because it uses cat > $FWDIR/conf/gui-clients as an editing command. If you have many fw1 GUI clients, you may want to edit the $FWDIR/conf/gui-clients file with vi to make new entries. We will not configure any remote modules now. Press n and Enter: Configuring Remote Modules... ============================= Remote Modules are Check Point Modules that will be controlled by this Management Station. Do you want to add Remote Modules (y/n) [n] ? n
You can configure the SMTP server now if you really want to, but you also can do that later. Use of the SMTP server is not really recommended. Press n and then Enter: Configuring SMTP Server... ========================== Following are the current values of the SMTP Server configuration: timeout: 900 scan_period: 2 resend_period: 600 abandon_time: 432000 maxrecipients: 50 rundir: postmaster: postmaster default_server: error_server: Would you like to modify the above configuration (y/n) [y] ? n
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
73
We also do not want to configure SNMP Extensions now. Press n and Enter: Configuring SNMP Extension... ============================= The SNMP daemon enables VPN-1 & FireWall-1 module to export its status to external network management tools. Would you like to activate VPN-1 & FireWall-1 SNMP daemon ? (y/n) [n] ? n
We usually do not want UNIX groups on the firewall. Press Enter and then y and Enter: Configuring Groups... ===================== VPN-1 & FireWall-1 access and execution permissions ------------------------------------------Usually, a VPN-1 & FireWall-1 module is given group permission for access and execution. You may now name such a group or instruct the installation procedure to give no group permissions to the VPN-1 & FireWall-1 module. In the latter case, only the Super-User will be able to access and execute the VPN-1 & FireWall-1 module. Please specify group name [ for no group permissions]: ENTER No group permissions will be granted. Is this ok (y/n) [y] ? y
If you have a encryption version of VPN-1/FireWall-1, you are asked to type randomly on your keyboard to create some random numbers for use in encryption calculations. Just follow the instructions: Configuring Random Pool... ========================== You are now asked to perform a short random keystroke session. The random data collected in this session will be used for generating Certificate Authority RSA keys. Please enter random text containing at least six different characters. You will see the '*' symbol after keystrokes that are too fast or too similar to preceding keystrokes. These keystrokes will be ignored.
74
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Please keep typing until you hear the beep and the bar is full. [....................] Thank you.
If your VPN-1/FireWall-1 license supports Entrust encryption technology, you will get an additional panel. Answer n unless you want to use Entrust PKI: Configuring Entrust PKI... ========================== VPN-1 & FireWall-1 can use certificate management software from Entrust® Technologies, Inc. Do you want to configure VPN-1 & FireWall-1 to work with an Entrust PKI? (y/n) [n] ? n
Generating keys can take some time and should only be done when required later on. Answer n for all questions concerning key generation: Configuring CA Keys... ====================== Do you want to create an FWZ Certificate Authority key (y/n) [y] ? n Do you want to create a SKIP Certificate Authority key (y/n) [y] ? n
We do not wish to start the firewall now, because the license key is not installed yet. Press n and then Enter: ************* Installation completed successfully *************
Do you wish to start VPN-1 & FireWall-1 now? (y/n) [y] ? n To start VPN-1 & FireWall-1 at any later time, run 'fwstart' #
You need your VPN-1/FireWall-1 license. VPN-1/FireWall-1 licenses are usually bound to an IP address. We made an IP alias address that is exclusively used to license VPN-1/FireWall. This gives us more flexibility if we need to change IP addresses in the future. On every boot process, we need to set the alias address with ifconfig. Therefore, you need to create a local boot time script /etc/rc.local. Make it executable and add a entry to inittab that makes sure it is executed once in every boot process:
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
75
# echo "/usr/sbin/ifconfig lo0 alias 10.1.1.1" >> /etc/rc.local # chmod +x /etc/rc.local # /etc/rc.local # ifconfig -a lo0: flags=e08084b inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255 inet6 ::1/0 inet 10.1.1.1 netmask 0xff000000 broadcast 10.255.255.255 tr1: flags=e0a0043 inet 10.4.4.193 netmask 0xffffff00 broadcast 10.4.4.255 tr2: flags=e0a0043 inet 10.2.2.193 netmask 0xffffff00 broadcast 10.2.2.255 tr3: flags=e0a0043 inet 9.3.187.193 netmask 0xffffff80 broadcast 9.3.187.255 tr0: flags=e0a0043 inet 10.3.3.193 netmask 0xffffff00 broadcast 10.3.3.255 # mkitab "rclocal:2:once:/etc/rc.local >/dev/console 2>&1"
Instead of typing all of the license information at the prompt or in the cpconfig menus, it is much more useful to put it in a fw1lic script in /usr/local/bin. You will need it in the future (for entering the license after updates, for example). The easiest way is to copy the license command that you received from the license Web site or by e-mail to a file called fw1lic: # cd /usr/local/bin # chmod +x fw1lic # vi fw1lic
At the end, it will look similar to the following panel (Remember to put all in one line!):
76
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
fw putlic 10.1.1.1 09Sep2000 aEc86ZVFY-t5HHGaCLM-yNUYGrJZZ-uitmacFsr cpsuit e-eval-des-v41 cprs:4.1:rs5 cpsuite-eval-des-v41 cprs:4.1:rs5 CK-78AB8F0EFE5A ~ ~ ~ ~ ~ ~ ~ "fw1lic" 1 line, 133 characters
Execute fw1lic, and VPN-1/FireWall accepts your license: # ./fw1lic This is VPN-1(TM) & FireWall-1 Version 4.1 (23Aug2000 13:52:49) Host Expiration Features 10.1.1.1 10Sep2000 cpsuite-eval-des-v41 cprs:4.1:rs5 cpsuite-eval-des-v41 cprs:4.1:rs5 CK-78AB8F0EFE5A #
Now, let us take a look at the menu cpconfig shows you (from now on) if you rerun it. You can change all the options you configured until now with the exception of the first question (about which software to install). Note that these numbers for the options are not always the same across firewalls. For example, if you looked at the cpconfig menu before you added your license, it might have looked different from the one you are seeing now. Some of the options (especially the encryption related ones) depend on the license you have. Always read the menu before selecting a number. Use the number written to the left of Exit: # cpconfig
Welcome to VPN-1 & FireWall-1 Configuration Program ================================================= This program will let you re-configure your VPN-1 & FireWall-1 configuration.
Configuration Options: ---------------------(1) Licenses (2) Administrators (3) GUI clients
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
77
(4) (5) (6) (7)
Remote Modules SMTP Server SNMP Extension Groups
(10) Exit Enter your choice (1-8) : 8 Thank You... #
We still need to customize the VPN-1/FireWall start and stop scripts because VPN-1/FireWall-1 does not support control of ipforwarding on AIX. This fact is documented under the heading "Special Notes for IBM AIX" in the Quick Start Guide. Please read them now unless you have done so already. For this reason, we need to enable ipforwarding after starting VPN-1/FireWall-1 and disable it before stopping VPN-1/FireWall-1. We created the scripts start-fw1 and stop-fw1 to be used instead of fwstart and fwstop (to prevent them from being used, we removed the execute permissions). This is what we did: # cd /usr/lpp/CPfw1-41/bin/ # chmod -x fwstart fwstop # fwstart ksh: fwstart: 0403-006 Execute permission denied. # fwstop ksh: fwstop: 0403-006 Execute permission denied. # # cd /usr/local/bin # # cat > stop-fw1 /usr/sbin/no -o ipforwarding=0 /usr/sbin/no -a | grep ipforwarding csh -f /usr/lpp/CPfw1-41/bin/fwstop CTRL-D # # cat > start-fw1 csh -f /usr/lpp/CPfw1-41/bin/fwstart /usr/sbin/no -o ipforwarding=1 /usr/sbin/no -a | grep ipforwarding CTRL-D # chmod 770 stop-fw1 start-fw1
78
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
You should also add the line containing /usr/local/bin/start-fw1 to /etc/rc.local; this will start the firewall automatically in the boot process and test to see if fwstart and fwstop work as expected: # echo "/usr/local/bin/start-fw1" >> /etc/rc.local # start-fw1 FW-1: driver installed FireWall-1: Starting fwd FireWall-1: Starting fwm (Remote Management Server) fwm: FireWall-1 Management Server is running FireWall-1: Fetching Security Policy from localhost Trying to fetch Security Policy from localhost: Failed to Load Security Policy: No State Saved Fetching Security Policy from localhost failed FireWall-1 started ipforwarding = 1 # stop-fw1 ipforwarding = 0 fwm: Firewall-1 Management Server going to die on sig 15 Uninstalling Security Policy from all.all@fw3 Done. FW-1: driver removed #
At this point, make a backup (before updating VPN-1/FireWall-1). If you have a tape device, and want to create a backup, do the following: 1. Insert a tape that is not write-protected into the tape drive. 2. Execute # smitty mksysb. 3. Enter your tape device (for example, /dev/rmt0) and press Enter.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
79
Back Up the System Type or select values in entry fields. Press Enter AFTER making all desired changes. [TOP] WARNING: Execution of the mksysb command will result in the loss of all material previously stored on the selected output medium. This command backs up only rootvg volume group. * Backup DEVICE or FILE Create MAP files? EXCLUDE files? List files as they are backed up? Generate new /image.data file? EXPAND /tmp if needed? Disable software packing of backup? [MORE...2] F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
[Entry Fields]
[/dev/rmt0] no no no yes no no
F3=Cancel Esc+7=Edit Enter=Do
+/ + + + + + +
F4=List Esc+8=Image
After the backup is done, check to see if there are any new VPN-1/FireWall-1 service packs or patches available. If there are, install them now. Here is what we did to install them, but you should follow the installation instructions that came with the service pack as closely as possible. We had a new service pack on the Check Point CD. It was copied to the /usr/local/fw1 directory with the other contents of the CD. Here is the contents of the /usr/local/fw1/patches/CPfw1-41-1 directory: # ls -l /usr/local/fw1/patches/CPfw1-41-1 total 16712 -r--r--r-1 root sys 204 Aug 23 15:25 .toc -r--r--r-1 root sys 8550400 Aug 23 15:25 CPfw1-41.fw.usr.4.1.1.0
In our case, the file to be installed was named CPfw1-41.fw.usr.4.1.1.0. To install it, use # smitty install_latest. Enter /usr/local/fw1/patches/CPfw1-41-1 for the INPUT device/directory for software. Select 4.1.1.0 Check Point FireWall-1 for AIX SP1, 4.1.1.0 for Software to install.
80
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Install and Update from LATEST Available Software Type or select values in entry fields. Press Enter AFTER making all desired changes.
INPUT device / directory for software SOFTWARE to install PREVIEW only? (install operation will NOT occur) COMMIT software updates? SAVE replaced files? AUTOMATICALLY install requisite software? EXTEND file systems if space needed? OVERWRITE same or newer versions? VERIFY install and check file sizes? Include corresponding LANGUAGE filesets? DETAILED output? Process multiple volumes?
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] /usr/local/fw1/patches> [+ 4.1.1.0 Check Point> no no yes yes yes no yes yes yes yes
+ + + + + + + + + + +
F4=List Esc+8=Image
We also downloaded patch number 2 from the Check Point ( www.checkpoint.com/support) Web site (understand that you must have a password to access this site; see www.checkpoint.com for more details). After using zcat and tar, it was stored in the directory /usr/local/fw1/patches/CPfw1-41-2. It was applied using the same process as for patch number 1.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
81
COMMAND STATUS Command: OK
stdout: yes
stderr: no
Before command completion, additional instructions may appear below. [MORE...123] Finished processing all filesets. (Total time: 24 secs). +-----------------------------------------------------------------------------+ Summaries: +-----------------------------------------------------------------------------+ Installation Summary -------------------Name Level Part Event Result ------------------------------------------------------------------------------CPfw1-41.fw 4.1.2.0 USR APPLY SUCCESS [BOTTOM] F1=Help F8=Image n=Find Next
F2=Refresh F9=Shell
F3=Cancel F10=Exit
F6=Command /=Find
2.6 Hardening the AIX operating system Having finished the VPN-1/FireWall-1 installation, you should notice that in contrast to other firewall products, VPN-1/FireWall-1 does not harden the operating system it is installed on. It is the responsibility of the installing security specialist to secure AIX. It is necessary to harden the operating system because there will be times when it is not protected by the VPN-1/FireWall filters (for example, while booting and if the VPN-1/FireWall software is not active). You have to do the AIX hardening yourself. Do not regard the following as the best practice. The following information was put together for a lab test; it was not optimized for security or audited in any way. Just to give you some idea of what areas you may have to explore, this is what we did: • /etc/inittab Make a backup of inittab and then remove the unnecessary services from it with rmitab. # cp /etc/inittab /etc/inittab.orig # for e in rcnfs piobe qdaemon writesrv uprintfd; do rmitab $e; done
82
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
• /etc/rc.tpcip Comment out all services in rc.tcpip and then add syslogd and inetd: # cd /etc # cp rc.tcpip rc.tcpip.orig # sed -e 's/^start /#start /' rc.tcpip.orig > rc.tcpip # cat >> rc.tcpip start /usr/sbin/syslogd "$src_running" start /usr/sbin/inetd "$src_running" CTRL-D #
• /etc/inetd.conf We need rsh, ftp, and telnet for our lab test. They should be replaced by Secure Shell before connecting to the real Internet: # cd /etc # cp inetd.conf inetd.conf.orig # egrep "/rsh|/ftp|/telnet" inetd.conf.orig > inetd.conf #
• Removing useless users and groups: # for u in uucp guest lpd; do rmuser -p $u; done # for g in uucp printq; do rmgroup $g; done # usrck -y ALL 3001-664 The account for user daemon has expired. 3001-664 The account for user bin has expired. 3001-664 The account for user sys has expired. 3001-664 The account for user nobody has expired. # grpck -y ALL # pwdck -y ALL #
• /etc/rc.local.net There are many network attributes that can and should be set with the no command (see the man pages for details). We created a custom script for that and added it to inittab to have it executed on boot: # cat >> /etc/rc.local.net /usr/sbin/no -o clean_partial_conns=1 /usr/sbin/no -o ipsendredirects=0 /usr/sbin/no -o nonlocsrcroute=0 /usr/sbin/no -o bcastping=0 /usr/sbin/no -o tcp_mssdflt=1370 /usr/sbin/no -o icmpaddressmask=0 /usr/sbin/no -o udp_pmtu_discover=0 /usr/sbin/no -o tcp_pmtu_discover=0
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
83
/usr/sbin/no -o directed_broadcast=0 /usr/sbin/no -o ipignoreredirects=0 /usr/sbin/no -o ipsrcroutesend=0 /usr/sbin/no -o ipsrcrouterecv=0 /usr/sbin/no -o ipsrcrouteforward=0 /usr/sbin/no -o ip6srcrouteforward=0 CTRL-D # chmod +x /etc/rc.local.net # /etc/rc.local.net # mkitab "rclonet:2:once:/etc/rc.local.net >/dev/console 2>&1" #
• /etc/motd Replace the standard “Welcome to AIX” message with a strong warning that the server should not be tampered with. Although this is not actually hardening the operating system, it helps arguing when a security incident gets to court. This way the attacker cannot defend himself by saying the welcome panel was an invitation to be hacked. You may also want to edit /etc/security/login.cfg and /etc/security/user. You may consider getting and installing a copy of Secure Shell (SSH), a replacement for RSH, RCP, and so forth. Installing a SSH is explained in Section 3.10.2, “Replacing RSH with SSH (Secure Shell)” on page 238. It is an optional step that can be done at the end of the installation. After hardening, reboot and check if only the expected processes and network services are active: # shutdown -Fr [...] AIX Version 4 (C) Copyrights by IBM and by others 1982, 1996. Console login: root root's Password: [...] # stop-fw1 ipforwarding = 0 fwm: Firewall-1 Management Server going to die on sig 15 Uninstalling Security Policy from all.all@fw3 Done. # ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:27:49 - 0:00 /etc/init root 2170 1 0 19:29:07 - 0:00 /usr/sbin/syncd 60 root 2374 1 0 19:29:16 - 0:00 /usr/sbin/srcmstr
84
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
root 2666 1 0 19:29:24 - 0:00 /usr/sbin/cron root 3184 1 0 19:29:07 - 0:00 /usr/lib/errdemon root 3618 2374 0 19:29:21 - 0:00 /usr/sbin/syslogd root 3938 1 16 19:29:24 0 0:00 -ksh root 4136 2374 0 19:29:24 - 0:00 /usr/sbin/inetd root 4388 1 0 19:29:25 - 0:00 /usr/lpp/diagnostics/bin/diagd root 4902 1 0 19:29:24 lft0 0:00 /usr/sbin/getty /dev/lft0 root 7234 3938 18 19:32:55 0 0:00 ps -ef # netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp 0 0 *.shell *.* LISTEN tcp 0 0 *.telnet *.* LISTEN tcp 0 0 *.ftp *.* LISTEN udp4 0 0 *.syslog *.* Active UNIX domain sockets SADR/PCB Type Recv-Q Send-Q Inode [...] # no -a [...] #
Conn
Refs
Nextref Addr
2.7 Creating VPN-1/FireWall-1 Security Policies This section makes you familiar with the VPN-1/FireWall-1 Graphical User Interface (GUI) and shows you the common mistakes that are made while using it to create VPN-1/FireWall-1 Security Policies (also called rulesets). This section does not contain any AIX-specific information.
2.7.1 Installation of the VPN-1/FireWall-1 Windows GUI Now it is time to install the VPN-1/FireWall-1 GUI client software on the GUI workstation in the adm network. If you are using an Windows OS (Windows 9x or Windows NT), you can do the install by executing \windows\gui\setup.exe on the CD-ROM and clicking the Next button a couple of times. You do not have to reboot. The GUIs on other OS versions are ported versions of the Windows version, and they are usually not as stable and well-supported as the Windows versions.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
85
All VPN-1/FireWall-1 documentation is provided in PDF format on the VPN-1/FireWall CD in \docs\userguid on the CD-ROM. You will find the Adobe Acrobat Reader for the supported operating systems in the directory \docs\pdfread on the CD-ROM. It may be a good idea to install the reader and copy the PDF files and the installation directories for later use to the local hard disk of the GUI workstation.
2.7.2 Creating a simple ruleset with VPN-1/FireWall-1 Complete the following steps to create a simple ruleset: 1. Start VPN-1/FireWall-1 on the firewall server with the start-fw1 command. 2. Ping the firewall from the GUI workstation: d:\>ping 10.4.4.193 Pinging 10.4.4.193 with 32 bytes of data: Reply from 10.4.4.193: bytes=32 time=15ms Reply from 10.4.4.193: bytes=32 time<10ms Reply from 10.4.4.193: bytes=32 time<10ms Reply from 10.4.4.193: bytes=32 time<10ms d:\>
TTL=255 TTL=255 TTL=255 TTL=255
3. Start the VPN-1/FireWall-1 GUI by selecting Start -> Programs -> Check Point Management Clients -> Policy Editor 4.1. 4. A pop-up box asks you for a user name, password, and management server. Enter your VPN-1/FireWall-1 administrator account name and password and the IP address of the firewall. See Figure 5 on page 87 for more details.
86
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 5. VPN-1/FireWall-1 GUI login pop-up box
You get an empty rulebase panel. Now, we will go step-by-step through the process, adding a first rule that will accept and log everything. 5. From the menu bar, select Edit -> Add Rule -> Bottom, as seen in Figure 6 on page 88.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
87
Figure 6. Adding a rule to the bottom
6. Change the action from drop to accept. Right-click on the drop-sign in the action column, as seen in Figure 7 on page 89. Select accept.
88
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 7. Changing action to accept
7. Configure login. Use account, since it is the most verbose. Right-click on the blank field in the Track column, as shown in Figure 8 on page 90. Select Account.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
89
Figure 8. Changing track to account
8. Next, create your firewall’s network object. From the menu bar, select Manage -> Network Objects..., as shown in Figure 9 on page 91.
90
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 9. Opening the Network Objects menu
9. Select New -> Workstation, as shown in Figure 10 on page 92.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
91
Figure 10. Creating a new workstation object
10. Type in the hostname of the firewall in the Name field of the pop-up box. as shown in Figure 11 on page 93. Click the Get address button. The external IP address of the firewall should automatically appear in the IP Address field. Click VPN-1 & FireWall-1 installed to activate the check box under Modules Installed. Change type from Host to Gateway. Please note that Gateway always means some kind of firewall in VPN-1/FireWall-1 terms. It is used in the rules because, by default, rules are installed on gateways. Look in your rule at the second column from the right. The heading is Install On and your rule selects Gateways.
92
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 11. Workstation Properties
11. Click the Interfaces tab. Click the Get button to retrieve the interface configuration by fw1-snmp, as shown in Figure 12 on page 94. You can configure IP spoofing later by double-clicking the interface names. Don't do that now; just click OK.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
93
Figure 12. Interfaces tab of the firewall’s Workstation Properties
12. Take a look at the icon of the firewall gateway object, as shown in Figure 13. If it looks different than the screenshot, you either forgot to check the VPN-1/FireWall-1 installed check box or you did not change the type to Gateway. To fix it, click the Edit button. If it looks OK, then click Close.
Figure 13. Icon of a firewall gateway object
94
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
13. Next, look at the menu and click select Policy -> Install..., as shown in Figure 14.
Figure 14. Installing the Security Policy
14. You will get a warning message, as shown in Figure 15 on page 96, that you did not edit the implied security policy properties, which are a real security threat. You will have to take care of that later on, but for now click OK.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
95
Figure 15. Implied rules warning
15. You are shown the list of gateways that your security policy will be installed to. If your firewall does not show up, you probably forgot to change its type from host to gateway. Click OK to install the security policy, as shown in Figure 16.
Figure 16. Install Security Policy target selection
16. You will get another warning that you are not secured against IP spoofing, as shown in Figure 17 on page 97. You have to take care of that, too, but not now. Click OK.
96
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 17. IP spoofing warning
17. Your security policy is being compiled and then installed on the firewall module. Notice how the button changes from Abort to Close, as shown in Figure 18. Do not click it too soon.
Figure 18. Install Security Policy results
18. Next, press the Ctrl and L keys. The VPN-1/FireWall-1 Log Viewer pops up and shows your log entries, as shown in Figure 19 on page 98. The Log Viewer is a very powerful tool. You can, for instance, right-click one of the columns and use Selection... to show only log entries matching
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
97
certain criteria that you can define. Take a look at the documentation about its many features.
Figure 19. Modified Check Point log viewer
19. You may modify the Log Viewer options by clicking Select: Options, as shown in Figure 20 on page 99. The options may be modified, in particular Resolve Addresses. If this option is deselected, the opening of the log will be much quicker.
98
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 20. VPN-1/FireWall-1 Log Viewer: options
Note
If you try to login with the VPN-1/FireWall-1 GUI, and you get, in a pop-up box, an error message such as: "Someone else (root@gui) is using FireWall-1 Security Policy Editor Information is locked. You can either retry connecting when root@gui using fwm logs out, or login again in read-only mode."
then either somebody else is already logged in or the lockfile for the management access was not correctly removed (for example, the VPN-1/FireWall-1 GUI client unexpectedly died when the GUI workstation rebooted or crashed for some reason). After you make sure that there is nobody else logged in, you can manually delete the /usr/lpp/CPfw1-41/log/manage.lock file with rm and log in again.
2.7.3 Improving the security of a VPN-1/FireWall-1 Security Policy One of the most common mistakes when configuring VPN-1/FireWall-1 is forgetting to configure the implied rules that are not automatically visible in the ruleset. To configure implied rules, complete the following steps:
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
99
1. From the menu bar, select Policy -> Properties.You should get a panel similar to Figure 21. 2. Deactivate everything but Accept UDP Replies:, Enable Decryption on Accept:, Accept VPN-1 & FireWall-1 Control Connections:, Accept Outgoing Packets Originating From Gateway:, and Enable Log Implied Rules..Also, change Apply Gateway Rules to Interface Direction: to Inbound.You should include specific rules for everything else, as explained below. Click OK when you are done.
Figure 21. Deactivating implied rules in policy properties
3. You can make the implied rules visible by enabling View -> Implied Rules in the main menu bar, as shown in Figure 22 on page 101.
100
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 22. Making the implied pseudo rules visible
4. Select Policy -> Properties: Services tab, as shown in Figure 23 on page 102. The other implied rules you see should be disabled if they are not needed.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
101
Figure 23. More implied rules in Policy -> Properties -> Services tab
5. Set the IP Options Drop Track to Alert in the Log and Alert tab, as shown in Figure 24 on page 103.
102
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 24. IP Options Drop Track in Policy -> Properties -> Log and Alert tab
Important Note
There are many places to make mistakes and have security holes. For example, syn flooding is not automatically defended against; it has to be configured in the SYNDefender tab when required. It is strongly recommended that you read the FireWall-1 Architecture and Administration User Guide and the Managing FireWall-1 Using the Windows GUI User Guide to be able to properly configure a VPN-1/FireWall-1.
2.7.4 Creating network objects To be able to continue, we have to create a few network objects. Use colors to symbolize the network the object belongs to. Select Manage -> Network Objects...: New -> Workstation to create each of your workstation type network objects. You can use the Get address button if the name is resolvable (for example, in your /etc/hosts file). A sample workstation type network object is shown in Figure 25 on page 104.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
103
Figure 25. A sample workstation type network object
Table 3 illustrates workstation type network objects. Table 3. Workstation type network objects
Host Name
IP Address
Color
web
10.3.3.3
orange
gui
10.4.4.4
violet
internetpc
10.2.2.2
dark red
intranet_client
9.3.187.189
dark green
Select Manage -> Network Objects...: New -> Network to create all your network type network objects. A sample is shown in Figure 26 on page 105.
104
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 26. A sample network type network object
Table 4 illustrates network type network objects. Table 4. Network type network objects
Network Name
IP Address
Netmask
Color
adm_10.4.4.0
10.4.4.0
255.255.255.0
violet
dmz_10.3.3.0
10.3.3.0
255.255.255.0
orange
out_10.2.2.0
10.2.2.0
255.255.255.0
dark red
int_9.3.187.128
9.3.187.128
255.255.255.128
dark green
2.7.5 Configuring protection from IP spoofing IP spoofing is, in short, when someone, for example, from the Internet, creates IP packets with fake source IP addresses, which is very simple to do in IP Version 4 (this is the version of IP that everybody uses today). When such IP packets are sent to misconfigured firewalls, they would just treat them as if they came from the fake source IP address, which could be an internal address that is allowed to do much more then some external IP address on the Internet. To secure against such an attack, VPN-1/FireWall-1 needs to know what addresses belong to which network interface. Therefore, every network interface needs to get a group that has all those network objects whose source IP addresses may come over that interface. That does not mean that
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
105
they are allowed to use any service; it only means that they are allowed to have a certain source IP address. Create these groups, as shown in Table 5, to be able to properly configure IP spoofing protection. Table 5. Group type network objects
Group
Members
Color
intranet
int_9.3.187.128
dark green
ip_tr0
dmz_10.3.3.0
orange
ip_tr1
adm_10.4.4.0
violet
ip_tr3
intranet
dark green
There is no ip_tr2 group because this is where the Internet is connected to and where almost all IP address are allowed. Only the IP addresses allowed to one of the other network interfaces are disallowed at the Internet interface. To create group type network objects, complete the following steps: 1. Select Manage -> Network Objects...: New -> Group to create your group type network objects. While adding the intranet group to the ip_tr3, group, you are asked Would you like to add each member of the group intranet separately? in a pop-up box. Answer No because later, when we add additional objects to the intranet group, we want the ip_tr3 to include them automatically as well. First, create the group intranet, as shown in Figure 27 on page 107.
106
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 27. A sample group type network object
Figure 28 shows the steps needed to create the ip_tr3 group.
Figure 28. A sample group that includes a group type network object
2. To configure IP spoofing: a. Open the firewalls workstation type network object. b. Select the Interfaces tab.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
107
c. Double-click the first interface name and select the Security tab. d. Click Alert below Spoof tracking. e. If it is your Internet interface, choose Others. If it is one of the other interfaces, click Specific and choose the corresponding group in the box to the right of Specific, as shown in Figure 29. f. Click OK and repeat for all interfaces. The advantage of having groups and not using the This net option is that it is much easier and more convenient to add new objects to groups than having to reconfigure IP spoofing explicitly to include those new objects.
Figure 29. Sample panel of IP spoofing configuration
3. Select Policy -> Install... after you are done with IP spoofing configuration. 4. Ping and ftp through the firewall to test if everything works right. Take a look at the log file (press the Ctrl and L keys).
108
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Note on rule 0 log entries
If you get IP packets that are dropped by rule 0, something probably went wrong while configuring IP spoofing and the incoming IP packets are dropped because they look like IP spoofing to the firewall. If you get IP packets rejected by rule 0, outgoing packets may have violated your IP spoofing rules because they are routed through the wrong interface. This typically happens when you use NAT and forget to add the required static host routes. Review the IP spoofing settings of the interface specified in the log entry. Check if it is the right IP spoofing group and if the member objects of that group are all correctly specified.
2.7.6 Creating a useful ruleset Create your own ruleset and test to see if it does what you wanted it to do. We created the ruleset in Figure 30 on page 110 as an example for the purpose of testing of the product features.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
109
Figure 30. The ruleset we used for our examples
Note
If you did a Policy -> Install, and after the Compiled OK message nothing happens, and then you get a Server is disconnected! message, you just locked yourself out of your own firewall. You will not be allowed to connect to the management module (the firewall in our case) to install a new policy. Do not execute fwstop. Physically disconnect your firewall from all networks except the adm network. Then remove the security policy to allow all traffic by executing # fw unload localhost. You will be able to connect, change, and reinstall your security policy. Only then you can physically reconnect all the other networks.
110
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
2.8 Configuring user authentication with VPN-1/FireWall-1 This section provides a quick description for using VPN-1/FireWall user authentication to secure access to a Web server using simple passwords. Some debugging hints are also provided.
2.8.1 Configuring simple user authentication To configure simple user authentication, complete the following steps: 1. Before changing anything in your existing and working security policy, you should save it with File -> Save As... to a new file so that you can revert to it to undo your changes. Note
For real-world use, policy names should be generated as YYYY-MM-DD-NN (for example, 2000-08-29-01). NN should be incremented to get a new filename if there is more than one change that day. 2. Try to access the Web server from the internetpc using a Web browser. There should be no problems because the security policy should allow that kind of connection. If there are any problems, resolve them now. 3. Save it again to a new security policy name. 4. To create a user, click select Manage -> Users and then New -> Default, as shown in Figure 31 on page 112.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
111
Figure 31. Creating a new user
5. Enter the username (we used salesman) in the Name field, as shown in Figure 32.
Figure 32. Entering the new users data
6. Click the Authentication tab and change Authentication Scheme to VPN-1 & FireWall-1 Password, as shown in Figure 33 on page 113. Enter the users reusable password under Settings. Click OK and then Close.
112
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 33. Choosing an authentication scheme
Note on non-reusable passwords
VPN-1/FireWall-1 includes a very simple and cheap non-reusable password solution called S/Key that you may want to use in the future for increased security instead of a reusable password. As every S/Key password can be used only once, VPN-1/FireWall-1 enables the administrator to easily print a pregenerated list of passwords for every user. Look for S/Key in the index of the VPN-1/FireWall-1 documentation for more information. 7. In the rulebase, change the action of the rule for service http that allows any access to the Web from Accept to User Auth, as shown in Figure 34 on page 114.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
113
Figure 34. Changing the HTTP rule to user authentication
8. Select Policy -> Install.... 9. Try to access the Web server from the internetpc using a Web browser. A pop-up box should come up and ask you for a username and password. Even if you enter the right username and password, it will probably fail for two reasons: - The firewall will say that FireWall-1 Password is not supported. - Even if you successfully authenticate, it won't let you access the Web server ( Reason for failure of last attempt: FW-1 rule). 10. Let's fix the first problem FireWall-1 Password is not supported by opening the firewalls network object (workstation properties) and selecting the Authentication tab, as shown in Figure 35 on page 115. Select FireWall-1 Password and reinstall the rules.
114
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 35. Enabling VPN-1/FireWall-1 password as authentication scheme
11. The second problem is Reason for failure of last attempt: VPN-1/FireWall rule. To fix that, double-click the User Authentication action of your Web access rule. Under HTTP, select All servers and reinstall the rules, as shown in Figure 36.
Figure 36. Enabling user authenticated access to allow all HTTP servers
12. You should be able to access the Web server after authentication.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
115
2.8.2 Configuring client authentication The really interesting authentication feature of VPN-1/FireWall-1 is called client authentication. It allows you to authenticate any kind of protocol, even ICMP and X-windows, which do not support any kind of proxy authentication. Client authentication is especially useful if the user is not always accessing from the same IP address. Client authentication makes it possible for the user to connect to the firewall and dynamically enable rules that allow only the user’s current IP address to access the defined services after authentication. The lasting of the dynamic allow rule can be restricted by a timeout or connection count. In order to configure client authorization, follow these steps: 1. Ping from internetpc to web: d:\>ping 10.3.3.3 Pinging 10.3.3.3 with 32 bytes of data: Reply from 10.3.3.3: bytes=32 time<10ms Reply from 10.3.3.3: bytes=32 time<10ms Reply from 10.3.3.3: bytes=32 time<10ms Reply from 10.3.3.3: bytes=32 time<10ms d:\>
TTL=254 TTL=254 TTL=254 TTL=254
There should be no problems, because the security policy should allow that kind of connection. If there are any problems resolve them now. 2. Change the service of the rule that allows ICMP from Accept to Client Auth, as seen in Figure 37 on page 117
116
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 37. Changing the ICMP rule to client authentication
3. If you double-click the Client Auth action field, you will get a pop-up box, as shown in Figure 38 on page 118. Click the Limits tab and change the Number of Sessions Allowed to Infinite. After accepting, do a Policy -> Install....
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
117
Figure 38. Client Authentication Action Properties: Limits
4. You should not be able to ping web from internetpc. Use your browser on internetpc to access the external firewall IP address on port 900 (for example, http://10.2.2.193:900), as shown in Figure 39 on page 119.
118
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 39. Client Authentication using Web browser: Login
5. Enter your password and click Authentication, as shown in Figure 40 on page 120.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
119
Figure 40. Client Authentication using Web browser: Password
6. Accept Standard Sign-On by clicking the Submit button, as shown in Figure 41 on page 121.
120
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 41. Client Authentication using Web browser: Methods
7. The firewall tells you that you are now authorized, as shown in Figure 42 on page 122.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
121
Figure 42. Client Authentication using Web browser: VPN-1/FireWall-1 message
8. Next, ping web from internetpc again. It will not work. If you look at the log, you will see that the ping request is allowed from internetpc to web, but the reply from web to internetpc is dropped. 9. Obviously, VPN-1/FireWall-1 is not keeping state on ping. Therefore, you need to add a rule at the top that will accept ping replies (=icmp echo-reply packets) to pass from any to any and make a long log entry, as shown in Figure 43 on page 123.
122
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 43. Add a rule
10. Select Policy -> Install... and repeat the sign-on procedure to the firewall. Then, ping from internetpc to web should work.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
123
Note
Instead of using a Web browser, you can also use telnet to port 259: C:\> telnet 10.2.2.193 259 Check Point FireWall-1 Client Authentication Server running on fw3 User: salesman FireWall-1 password: ***** User salesman authenticated by FireWall-1 authentication Choose: (1) Standard Sign-on (2) Sign-off (3) Specific Sign-on Enter your choice: 1 User authorized for standard services (1 rules)
2.9 Configuring network address translation with VPN-1/FireWall-1 This section familiarizes you with VPN-1/FireWall-1 Network Address Translation (NAT), including its advantages and associated problems. Usually, NAT is used to save on the few official IP addresses that are provided by your internet service provider and registered at IANA. Modern internal corporate networks use private IP addresses from ranges that are defined in RFC 1918: 10.0.0.0 - 10.255.255.255.255, 172.16.0.0 - 172.31.255.255, and 192.168.0.0 - 192.168.255.255. These RFC 1918 IP addresses are not routed on the Internet because they are not unique. Packets with those IP addresses will be discarded at some point in the Internet. When using only outbound connections, it is possible to hide many private IP addresses behind one official IP address. This is called dynamic NAT. Static NAT is where one official IP address always translates to a fixed, private IP address. This is, for example, used to make servers accessible under the fixed addresses. Using NAT has some less obvious security advantages. When VPN-1/FireWall-1 is not active, there is no translation (NAT). Since RFC 1918 IP addresses are not routed on the Internet, the servers that have such addresses will not be reachable from the Internet, even if ipforwarding is on and VPN-1/FireWall-1 is not active. Please do not rely on this; it is a helpful secondary effect, and not a reliable feature.
124
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Using a private IP address for the external firewall interface
In our lab example, the network on the Internet side has private IP addresses because of the external limitations of the lab environment. This can also be used in realistic applications so that the firewall has only private IP addresses and can not be addressed directly by the Internet, because those IP addresses are not routed. However, you have to be sure that the firewall never needs to be reached from the Internet. Using VPN-1/FireWall-1 encryption and client authentication from the Internet probably would not work, because the clients need to be able to connect to the firewall’s external interface.
2.9.1 Static NAT We now quickly implement a static network translation for a Web server. The Web server's real address is 10.3.3.3, and we want to make a static network address translation to 10.2.2.3 so that everybody on our external network can access the Web server by its official address. 1. If you set up client authentication in the previous section, save the security policy to a new file and change the action of the icmp rule back to accept for ping to work again. 2. Open web’s network object (workstation properties), as shown in Figure 44.
Figure 44. Workstation Properties of web
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
125
3. Click the NAT tab and enable Add Automatic Address Translation Rules with Translation Method set to Static, as shown in Figure 45. Then enter the official IP address (10.2.2.3) as Valid IP Address.
Figure 45. Workstation Properties of web: NAT tab
4. Do a Policy -> Install.... You get a warning that routing must be configured to support NAT (as shown in Figure 46), which is exactly what needs to be done next.
Figure 46. NAT: Configure routing warning
5. You can look at the automatically generated NAT rules by clicking the Address Translation tab on the main panel, as shown in Figure 47 on page 127. Note that they are also sequential like the security rules.
126
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 47. Address translation rules
6. You now need to adapt the routing on the firewall to support your NAT. First, you have to make sure that the firewall gets the IP packets destined for the official address of web (10.2.2.3). Usually, the best way to do that is by using proxy Address Resolution Protocol (ARP), because then you do not depend on routers or other devices that are not under your administrative control in most cases. The other way is to use static routes on the routers. Proxy ARP means that the firewall answers ARP requests for the ARP-proxied IP address (10.2.2.3) on the hardware network layer with the MAC address of its own network interface. To be able to do proxy ARP, we first need to find out the MAC address. You should always use the MAC address of the network interface that the IP address (that is going to be ARP-proxied) belongs to. In our case, we
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
127
need the MAC address of the external network interface because the proxied IP address belongs to that network. Our external network interface is tr2. The corresponding device is tok2. The command lscfg -vl <device> tells us the MAC address of the interface under the name Network Address: # lscfg -vl tok2 DEVICE LOCATION tok2
1P-10
DESCRIPTION IBM PCI Tokenring Adapter (14101800)
Loadable Microcode Level....UNKNOWN: Part Number.................00000000 EC Level....................00D51237 Serial Number...............00439318 FRU Number..................00000000 Manufacturer................IBM982 Network Address.............0004AC619DC3 Displayable Message.........IBM PCI Token-Ring Adapter (14101800) Device Specific.(YL)........P1.1-I5/T1 #
Now, we need to tell the operating system to publish the proxied IP address (10.2.2.3) under that MAC address. This is accomplished by using: # arp -s <MAC address> pub
Note in the example that 802.5 is a token ring. Also note that the MAC address should be separated by colons. You need to add that command to rc.local to execute it on every boot. Do not overwrite the /etc/rc.local file. # arp -s 802.5 10.2.2.3 00:04:AC:61:9D:C3 pub # arp -a internetpc (10.2.2.2) at 0:4:ac:ff:cb:62 [token ring] web_official (10.2.2.3) at 0:4:ac:61:9d:c3 [token ring] permanent published # echo "arp -s 802.5 10.2.2.3 00:04:AC:61:9D:C3 pub" >> /etc/rc.local #
7. We need to ensure that the IP packets destined to 10.2.2.3 that are received by the firewall are routed to the real address (10.3.3.3). Add a static host route for the official address to the real address: # route add 10.2.2.3 10.3.3.3 10.3.3.3 host 10.2.2.3: gateway 10.3.3.3
128
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
# echo "route add 10.2.2.3 10.3.3.3" >> /etc/rc.local #
8. Try to ping web_real (10.3.3.3) from internetpc. This should still work. 9. Try to ping web_official (10.2.2.3) from internetpc. This will probably not work. 10. Take a look at the log. If the reply is rejected by rule 0, as shown in Figure 48, you need to reconfigure IP spoofing, as we did in the next step. You can also refer to Section 2.7.5, “Configuring protection from IP spoofing” on page 105 for discussion on IP spoofing.
Figure 48. Log Viewer: Ping IP packet getting rejected by rule 0
11. In our example, we added the web network object to the ip_tr0 group (as shown in Figure 49 on page 130) because the valid address (10.2.2.3) is not part of the network that is defining the allowed IP addresses on the tr0 interface.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
129
Figure 49. Adding network object web to anti-spoofing group ip_tr0
12. After reinstalling the policy, you should be able to ping and browse the official IP address of web.
2.9.2 Double-static NAT This is an optional section intended for advanced users who are interested in this specific subject. There are some difficulties if you have two nodes in two separate DMZs and they try to talk to each other using only official IP addresses. The problem is that if you look at the address translation rules you will notice that only one half (source or destination) gets automatically translated because of the first-fit nature of the translation rules. Let us suppose you have two nodes (that is, DMZ servers), node_A and node_B, that want to talk to each other using only their official (valid) NAT IP addresses. The two existing network objects, node_A and node_B, were set up to do automatic static NAT. You need to create four additional network objects: node_A_real, node_A_official, node_B_real, and node_B_official. These four should be simple workstation objects with only names and IP addresses. node_A_official and node_B_official are the static NAT IP addresses that are valid, for example, on the Internet. Do not change your node_A and node_B objects that implement the automatic NAT.
130
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Next, add manual NAT rules to the top that look similar to the ones shown in Figure 50.
Figure 50. Manually entered NAT rules for double static NAT
Do not forget to add the ARP entries, the host routes, and change the IP spoofing groups, as explained in other sections of this chapter. This problem is also addressed in the NAT chapter of the FireWall-1 Architecture and Administration User Guide, which you should read if you want to use NAT successfully.
2.9.3 Dynamic (hide mode) NAT You may also want to do some dynamic (hide mode) NAT to enable a whole network of your internal clients to access the Internet at the cost of only one valid external Internet IP address. To be able to do this, complete the following steps: 1. Open the internal networks network object, as shown in Figure 51 on page 132.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
131
Figure 51. Network Properties of int_9.3.187.128
2. Add a automatic hide method address translation to 10.2.2.9, as shown in Figure 52.
Figure 52. Network Properties of int_9.3.187.128: NAT tab
3. Select Policy -> Install.... 4. Add a static proxy ARP entry for 10.2.2.9, as explained in detail in Section 2.9.1, “Static NAT” on page 125: # arp -s 802.5 10.2.2.9 00:04:AC:61:9D:C3 pub # echo "arp -s 802.5 10.2.2.9 00:04:AC:61:9D:C3 pub" >> /etc/rc.local
132
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
5. Start the Web browser on your internal_client. Browse to the WWW server that is running on internetpc and look at that WWW servers log files. They should show an access record from the hide address (10.2.2.9) if your NAT is working. 6. Access the WWW server on web and look at the log files. If you still have the static NAT for web in effect, you will see the real address of the client and not the valid IP address it should hide behind. This happens because of the order of the NAT rules, which cannot be easily changed (see Figure 53 for more details).
Figure 53. Address translation rules: Sequential nature of NAT rules
2.10 Configuring virtual private networking with VPN-1/FireWall-1 The encryption versions of VPN-1/FireWall-1 support the creation of Virtual Private Networks (VPNs). There are two typical scenarios that are solved by VPNs:
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
133
• Branch office The company has a branch office that is connected to the Internet and has its own firewall. The employees of the branch office need to access network resources in the head office and vice versa. The solution is to create a transparent VPN tunnel between the firewall of the head office and the firewall of the branch office. Transparent means that the other network devices (computers, network printers, and so forth) at the branch office and at head office do not need to be reconfigured. The IP packets for destinations in the head office automatically get encrypted by the branch office firewall and decrypted by the head office firewall and vice versa. • Traveling salesman The other typical scenario is the traveling salesman that can dial into the Internet and needs to access network resources at the head office in a secure manner. The missing firewall on the salesman’s side is replaced by a piece of software that does the encryption for all IP packets with the destination of the head office. A critical part of VPNs is encryption. One algorithm in broad commercial use that is recommended is 3DES (pronounced triple DES). Most other encryption algorithms (FWZ, DES) can be broken in a matter of hours and should, therefore, not be considered secure. They will make data unreadable, but a determined attacker eventually will be able to recover it. Because of time and resource restraints in the creation of this redbook, we will only demonstrate the solution of the traveling salesman problem. We implement VPN-1/FireWall-1 Client Encryption using the ISAKMP/OAKLEY (known as IKE) protocol to implement the DES (because our version only supported DES) encryption. Again, remember that this is meant to be a technology demonstration only, and was not thoroughly optimized for security or audited in any way.
2.10.1 Configuring VPN-1/FireWall-1 for client encryption To configure VPN-1/FireWall-1 for client encryption, complete the following steps: 1. Save your policy under a new name, for example, vpn.
134
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
2. You need to create a group of objects (encryption domain) that the firewall will be encrypting in order to make them accessible to external encrypting clients. Create a group called encr_dom and include all the objects you want to make accessible through encryption. See Figure 54 for an example. Note
If you use NAT, include the objects that use NAT (such as web) specifically, and not only the network object (for example, dmz_10.3.3.0) they belong to, because the valid NAT address is usually not part of that network and is not available otherwise.
Figure 54. Creating a group object to serve as encryption domain
3. Next, edit the user object and enable encryption for your traveling salesman. Open the users object (salesman) by clicking Manage -> Users and click the Encryption tab. Then change the Successful Authentication Track: to Log. Under Client Encryption Methods, disable FWZ and select IKE, as shown in Figure 55 on page 136.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
135
Figure 55. Editing User Properties: Encryption tab
Click on Edit.... A new ISAKMP Properties panel will pop up (see Figure 56). Type in a password beside the Password selection. Disable Public Key.
Figure 56. User’s ISAKMP Properties: Authentication tab
Click the Encryption tab. Make sure that Encryption + Data Integrity (ESP), SHA1, and DES are selected. Then click OK, OK, and Close. See Figure 57 on page 137 for more details.
136
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 57. User’s ISAKMP Properties: Encryption tab
4. Edit the firewall objects workstation properties. Open the firewalls network object, then click the Encryption tab. Under Encryption Domain, choose Other: and select the encr_dom group object. Make sure that under Encryption Methods defined, only the check box beside IKE is checked. Click Edit....You will get an IKE Properties pop-up panel. Make sure that under Encryption Method only DES is checked. Click the check box beside Pre-Shared Secret. Then click OK and again click OK.See Figure 58 for more details.
Figure 58. The firewall’s ISAKMP Properties
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
137
5. Next, change the rules to define what connections have to be encrypted. Change the Action of the rule with web as destination to Client Encrypt (not Client Auth), as shown in Figure 59.
Figure 59. Changing the rule to Client Encrypt
Do a Policy -> Install....
2.10.2 Installing and configuring SecuRemote Now, it is time to install the VPN-1/FireWall-1 SecuRemote software on a client on the external network. SecuRemote is the VPN-1/FireWall-1 compatible encryption client that comes free with every encryption version of VPN-1/FireWall-1. Note that this client does not need to use dial-up networking for SecuRemote to work properly. For testing, a notebook with a network card or any other Windows computer on the external network will do.
138
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
You should always try to get the latest version of SecuRemote from your reseller or at http://www.checkpoint.com/support (if you have a password). If there is no newer version, use the SecuRemote software on your VPN-1/FireWall-1 CD-ROM. The installation procedure is as follows: 1. Be sure to read the release notes before installing SecuRemote. This may save you a lot of trouble. 2. Double-click Setup.exe from a path resembling this one: X:\windows\CPSecuRemote-41\win-nt\setup.exe
3. Click Yes to the Licence Acceptance. 4. Click Next a couple of times and then read the README file. 5. You need to reboot your system to activate SecuRemote. 6. Double-click on the SecuRemote icon in the lower right corner of the panel, as shown in Figure 60.
Figure 60. Task bar with SecuRemote icon
7. In the menu, select Sites -> Make New..., as shown in Figure 61 on page 140.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
139
Figure 61. SecuRemote main panel: Create a new site
8. Enter the external IP address of the firewall in the Name field, as shown in Figure 62 on page 141. Click OK.
140
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 62. SecuRemote Site menu
9. SecuRemote tries to get data from the firewall. You get an error message that the firewall is not a certificate authority (see Figure 63). Click OK.
Figure 63. SecuRemote error message: Site is not a Certificate Authority
10. Obviously, we need to make the firewall a certificate authority. Use the VPN-1/FireWall-1 GUIs Security Policy Editor to open the firewall’s Workstation Properties. Select the Encryption tab again. Although we do not want to use FWZ encryption, we have to enable it for SecuRemote to work. After enabling and selecting FWZ, click Edit.... A FWZ Properties panel should pop up. See Figure 64 on page 142 for more details.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
141
Figure 64. Firewall network object Workstation Properties: Encryption tab
Click the Generate button, as seen in Figure 65.
Figure 65. Firewall’s FWZ Properties: CA Key
You will be asked to confirm your request, as shown in Figure 66 on page 143. Click Yes.
142
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 66. VPN-1/FireWall-1 confirmation request to generate new CA key
After some time, you will get a Key created successfully pop-up box, as shown in Figure 67. Click OK.
Figure 67. Key created successfully
Then click OK again to close the FWZ Properties panel, as shown in Figure 68.
Figure 68. Firewall’s FWZ Properties after generation of CA key
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
143
Click the DH Key tab. Click the Generate button. You will be asked if you want to generate a new key, as shown in Figure 69. Click Yes
Figure 69. Policy Editor: Are you sure you want to generate a new key?
You will see the newly generated Key (see Figure 70).
Figure 70. FireWall FWZ properties: DH Key tab.
Click OK, OK, and Close to exit SecuRemote can now get the data from the firewall if you reinstall the security policy. But the browser on the SecuRemote workstation is still unable to connect to the Web server. We need to set one last option in the firewall’s Workstation Properties panel. Otherwise, the topology data (information on which IP addresses are accessible through the firewall) will not be exported to the SecuRemote client.
144
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
SecuRemote saves that data to the file userc.C (located in c:\winnt\fw\database on our NT client). Click the General tab in the firewall’s network object and enable the check box beside Exportable, as shown in Figure 71. Click OK and select Policy -> Install....
Figure 71. Setting the Exportable option in the firewall’s network object
11. Go back to SecuRemote.Select Sites -> Make New.... Enter the external IP address of the firewall and click OK. You get a pop-up box that advises you to verify the IP address and key ID, as shown in Figure 72. Your security depends on doing that properly. When you are done, click OK to verify.
Figure 72. SecuRemote request to verify IP address and key ID of the firewall
Close the Site panel by clicking OK, as shown in Figure 73 on page 146.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
145
Figure 73. Site panel after successful site creation
12. Use the Web browser on the SecuRemote workstation to access the official IP address of web (http://10.2.2.3). A SecuRemote pop-up panel asks for your username and password, as shown in Figure 74 on page 147. Enter the same password you entered in the encryption setup of the user.
146
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 74. SecuRemote User Authentication request
You get a pop-up panel informing you that you were successfully authenticated, as shown in Figure 75. Close it by clicking OK. If necessary, click the Stop button of the browser and then Reload. Accessing web_official should now work.
Figure 75. SecuRemote successful authentication
13. Take a look at the logs. You should see log entries with actions authcrypt, key install, and decrypt.
Chapter 2. Implementation of VPN-1/FireWall-1 on AIX
147
148
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Chapter 3. High availability for VPN-1/FireWall-1 This chapter contains step-by-step instructions of how to make the VPN-1/FireWall-1 implementation that is demonstrated in Chapter 2, “Implementation of VPN-1/FireWall-1 on AIX” on page 25 highly available by utilizing the IBM HACMP product and a second RS/6000 workstation as a standby firewall. For those who do not have knowledge of the basic concepts of HACMP, it is recommended they read Appendix A, “Introduction to HACMP” on page 333.
3.1 Design considerations for highly available VPN-1/FireWall-1 This section is intended to give an in-depth technical background on the reasoning behind our High Availability (HA) solution design. A reader who is not very familiar with the VPN-1/FireWall-1 and HACMP products is not required to understand this section in detail before going through the steps of how to implement this solution later in this chapter.
3.1.1 Test environment Our test environment consists of two RS/6000 systems (called fw3 and fw4). The four networks attached to the firewalls are: • The Internet • A demilitarized zone for publicly accessible Web and FTP servers • A dedicated administration network • An internal network (intranet)
© Copyright IBM Corp. 2000
149
INTERNET Public Servers fw3
fw4 Administration Intranet
Figure 76. Abstract network plan for high availability
3.1.2 Our HA design goals These were the design goals for our highly available firewall environment: • The solution requires only two workstations to run VPN-1/FireWall-1. • The two workstations should be as identical as possible. • Load-balancing is not a goal: Availability of service would be in danger if one system alone would not be strong enough to support the whole traffic load in case the other firewall goes down. • Even when one firewall workstation completely fails, full VPN-1/FireWall-1 functionality should still be available: - VPN-1/FireWall-1 traffic filtering should continue after takeover. Active connections (for example, long FTP downloads) should not be lost. - VPN-1/FireWall-1 management (for example, changing of rules, adding of users, and so forth) should also still be possible after takeover. - The loss of VPN-1/FireWall-1 logs (audit trail) is to be avoided.
3.1.3 Classical VPN-1/FireWall-1 HA design The VPN-1/FireWall-1 product provides several HA features. It supports state synchronization of the firewall modules that allow active connections to continue after failover. However, there is no built-in mechanism in VPN-1/FireWall-1 to synchronize the security policy (filter rules and users) across two VPN-1/FireWall-1 management stations.
150
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
The classical way of building a highly available VPN-1/FireWall-1 environment is to use two separate firewall modules and one dedicated VPN-1/FireWall-1 management module on a third separate workstation. Advantages of having one dedicated VPN-1/FireWall-1 management workstation: • This is the simplest HA configuration. There is no need to worry how to synchronize the security policy on multiple management station because there is only one. Disadvantages of having only one VPN-1/FireWall-1 management workstation: • The VPN-1/FireWall-1 management workstation is a single point of failure. As soon as it fails, the VPN-1/FireWall-1 functionality is reduced to filtering only and changing the security policy (for example, changing rules, adding users, and so forth) is impossible until the management workstation is fixed or replaced which usually takes hours. All VPN-1/FireWall-1 logs and configurations are potentially lost. • The are additional hardware costs because of the extra hardware unit for the VPN-1/FireWall-1 management workstation.
3.1.4 Our HA design Because the classical setup did not meet our design goals, we decided to use a slightly more complex but much more powerful approach. We use only two workstations to provide one highly available firewall. 3.1.4.1 HACMP setup In our HAMCP setup: • HACMP is used for service IP address takeover only. Service IP addresses are the highly available IP addresses that are considered to be the highly available firewall. The firewall workstation that has the service IP addresses is the active node from a HACMP perspective. It will get all the IP traffic. • Filesystems are not shared. It is recommended to setup local mirrors of all filesystems in case of a hard drive failure, but this is not discussed in this redbook. • We chose the HACMP rotating mode. When an error is detected on a firewall, it will shutdown itself and the other firewall will take over the service IP addresses. HACMP cascading mode would provide minimum benefit but require redundant network adapters, thereby halving the
Chapter 3. High availability for VPN-1/FireWall-1
151
maximum amount of connectable networks and significantly increasing hardware costs. • There is no service IP address on the administration network. The IP addresses on it are static to make a distinction between the firewall workstations possible. • The firewall module will not be stopped and/or restarted automatically at takeover to avoid loss of state and active connections. • When, after a failover, the previously active firewall becomes available again, it will not attempt to take the service IP addresses back automatically. It could fail again after taking them back and create a loop of takeovers that way.
MAC Address Takeover
MAC address takeover can not be used because HACMP has to issue a ifconfig down detach command on the network interface to change the
MAC address. This command somehow removes VPN-1/FireWall-1 from that interface. Your security policy would not be enforced on that interface any more! You would have to restart VPN-1/FireWall-1 and you would loose all active connections. We used a method that is included in HACMP to update the ARP tables in all relevant network neighbours by sending ping packets. Therefore, MAC address takeover is not required. For more information, see Section 3.4.4, “Solving the ARP cache problem” on page
3.1.4.2 VPN-1/FireWall-1 HA setup In the VPN-1/FireWall-1 HA setup: • Each firewall workstation contains a complete VPN-1/FireWall-1 installation including both a firewall and a management module. • VPN-1/FireWall-1 state synchronization is used between the two firewall modules. The administration network is used for the sync connection. • We wanted to make the two VPN-1/FireWall-1 systems equal and interchangeable. We tried to configure the firewall module on each workstation to accept both the management module on themselves and the management module on the other firewall. In VPN-1/FireWall-1 terms, this is called a master. For a further discussion of what a master is, see the Getting Started with Check Point VPN-1/FireWall-1 guide. Our aim was to have copies of the log entries on both firewalls. They should send their logs both to the local management module and to the management module on the other firewall workstation. We create an asymmetric VPN-1/FireWall-1 management relationship (the
152
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
implementation of which you can find in Section 3.8, “Configuring VPN-1/FireWall-1 for HACMP” on page 214): - fw4’s firewall module has fw3 as a primary master and the local fw4 management module as a secondary master. It sends one copy of its log messages to each of the management modules. It also accepts the installation of security policies from both fw3 and fw4. - fw4’s management module does not accept any log entries from anywhere because its firewall module is configured to log somewhere else (that is the undocumented limitation we came across). - fw3’s management module has both fw3’s and fw4’s firewall modules as clients. It accepts log entries from both fw4 and fw3 and installs security policies to both firewall modules on fw3 and fw4. - fw3’s firewall module only sends its logs to its local management module and accepts security policies from it. Considerations of this solution: - The management module on fw4 is unable to receive logs from fw3. It also is unable to install security policies on fw3. - fw4 should be the active firewall whenever available because it sends a copy of every log entry to fw3. Therefore, fw4’s logs are not lost when fw4 fails completely. - fw3 should be used as the management workstation whenever it is available (for example, to connect to with the VPN-1/FireWall-1 GUI) because it can install the security policy on both firewalls. The configuration files of the VPN-1/FireWall-1 management module on fw3 can be copied to the one on fw4 by our custom shell script diff-fw1. When fw3 fails completely, the management module on fw4 can be used to change the security policy for the firewall module on fw4. To be able to fulfill our design goal that full VPN-1/FireWall-1 functionality is still available after one workstation fails completely, we must have: - A management module on fw3 that can install security policies on both firewalls. - A filter module on fw4 that can log to both firewalls. • The administrator has to make sure that the preferred state of the highly available firewall environment is reestablished after a failover: - fw4 gets the service IP addresses and is used for traffic control.
Chapter 3. High availability for VPN-1/FireWall-1
153
- fw3 is used as the management workstation. In regular use, the VPN-1/FireWall-1 GUI connects to fw3 and not to fw4. There are other possible VPN-1/FireWall-1 HA designs we do not discuss in detail: • You could install a management station on only one of the firewall gateways. This makes the solution slightly cheaper because you do not need to pay for a second management module for the other firewall workstation. However, when the workstation with the only management module fails, you are out of luck. • There is also the possibility of having the two management modules on separate hardware. That would take away some load from the firewall modules and possibly provide even more high availability. However, it is much more expensive than our solution. • The best solution might be to have the Primary Management Module on a third machine. This does not have to be a very powerful or expensive machine. You could then place the backup Management Module on one of the Firewalls. This would enable you to set up the correct masters and clients files and also enable the Security Policies to be installed by both Management Modules.This would allow fw4’s logs to go to fw3 and the external machine and fw1’s logs to go to itself and the other Management Module, thereby preserving all the logs.
3.2 Configuring AIX for highly available VPN-1/FireWall-1 This section continues the step-by-step implementation of Chapter 2, “Implementation of VPN-1/FireWall-1 on AIX” on page 25 and extends it to our highly available firewall environment design. Figure 77 on page 155 shows what our network plan looked after the introduction of fw4.
154
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
tr2
fw3 .....193 tr3
tr0 tr2
fw_out 10.2.2.0/24
.2
fw_dmz 10.3.3.0/24
.3
tr1 fw_adm 10.4.4.0/24
.4
tr0
internetpc web
fw4 .....195 tr1 tr3
fw_int 9.3.187.128/25 .189
gui intranet_client
Figure 77. Detailed network plan for high availability
Note
Before cloning the complete system to fw4, we did most of the work on fw3 so that we do not need to repeat the same steps on fw4 later. Also note that there is a conflict in the term node between VPN-1/FireWall-1 and HACMP: node means any kind of IP network device in the VPN-1/FireWall-1 documentation. In HACMP, node means one of the systems that are part of a highly available cluster. For more background information on HACMP, see Appendix A, “Introduction to HACMP” on page 333. Complete the following steps: 1. To make debugging easier, we created a file and configured syslog to log everything to it (make sure that your /usr/local filesystem does not overflow, logging everything takes up lots of disk space): # cat >> /etc/syslog.conf *.debug /usr/local/log-everything CTRL-D # touch /usr/local/log-everything # refresh -s syslogd # tail -f /usr/local/log-everything & Aug 28 17:09:19 fw3 syslogd: restart #
2. We created a new /etc/hosts file that has all the IP addresses and names you want to use:
Chapter 3. High availability for VPN-1/FireWall-1
155
# cat > /etc/hosts 127.0.0.1 loopback localhost 10.1.1.1 loopback_alias 10.2.2.2 internetpc 10.2.2.192 fw_out 10.2.2.193 fw3_out_boot fw3 10.2.2.195 fw4_out_boot fw4 10.2.2.3 web_official 10.2.2.4 gui_official 10.2.2.9 intranet_hide 10.3.3.3 web 10.3.3.192 fw_dmz 10.3.3.193 fw3_dmz_boot 10.3.3.195 fw4_dmz_boot 10.4.4.4 gui 10.4.4.193 fw3_adm_boot fw3_adm 10.4.4.195 fw4_adm_boot fw4_adm 9.3.187.189 intranet_client 9.3.187.192 fw_int 9.3.187.193 fw3_int_boot 9.3.187.195 fw4_int_boot CTRL-D #
3. HACMP uses RSH extensively. We created a /.rhosts file that allows all possible network interfaces of the firewalls to access without a password: # cat > /.rhosts fw3_adm_boot fw3_dmz_boot fw3_int_boot fw3_out_boot fw4_adm_boot fw4_dmz_boot fw4_int_boot fw4_out_boot fw_dmz fw_int fw_out CTRL-D # # chmod 400 /.rhosts
4. Change /etc/rc.local so as not to start VPN-1/FireWall-1 and activate ipforwarding to be able to work through the firewalls without running VPN-1/FireWall-1 to test HACMP service IP address takeover: # cd /etc # cp rc.local rc.local.old # cat > rc.local /usr/sbin/no -o ipforwarding=1 /usr/sbin/no -a | grep ipforwarding CTRL-D #
5. Configure the Network Time Protocol (NTP) to keep the time synchronized between the two cluster nodes. This is required for VPN-1/FireWall-1 high availability for state synchronization to work and also very useful for log file analysis (to see what was happening on both firewalls at the same time). Complete the following steps:
156
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
a. Create a ntp.conf file: # cat > /etc/ntp.conf server 10.4.4.195 driftfile /etc/ntp.drift tracefile /etc/ntp.trace CTRL-D #
b. Create a ntp.server.conf file: # cat >/etc/ntp.server.conf server 127.127.1.0 prefer driftfile /etc/ntp.drift tracefile /etc/ntp.trace CTRL-D #
c. Extend rc.local to include the NTP daemon xntpd: # cat >> /etc/rc.local # start ntp daemon as client startsrc -s xntpd CTRL-D #
A Note on NTP NTP needs some time to synchronize the clocks. The NTP server will be configured to be controlled by HACMP later. After HACMP on a firewall workstation activates the service IP addresses, xntp is started in server mode. If there is no active HACMP node (for example, because HACMP was not started on any firewall), there is no NTP server started and time is not synchronized! For maintenance mode, that is HACMP stopped on one node (graceful or takeover), xntpd would be stopped. After the maintenance (and no reboot was done), you would have to start xntpd manually. If too much time has passed, and xntpd does not seem to be synchronizing, you would have to issue sntp -fd <xntpd server ip_address> on the client and then start xntpd on the client. 6. Configure an additional serial line for HACMP heartbeats: a. The serial line has to be configured with: # smitty mktty b. Choose Add a TTY. c. Choose tty rs232 Asynchronous Terminal.
Chapter 3. High availability for VPN-1/FireWall-1
157
d. Choose a unused serial port. We chose the second available serial port: sa1 Available 01-S2 Standard I/O Serial Port 1
e. Choose the PORT Number by pressing F4 and Enter. f. Make sure that Enable LOGIN is set to disable. g. Press Enter to execute your changes. h. Exit with F10 after getting the success message (that is, tty1 Available).
Add a TTY Type or select values in entry fields. Press Enter AFTER making all desired changes. [TOP] TTY type TTY interface Description Parent adapter * PORT number Enable LOGIN BAUD rate PARITY BITS per character Number of STOP BITS TIME before advancing to next port setting TERMINAL type FLOW CONTROL to be used [MORE...31] F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
[Entry Fields] tty rs232 Asynchronous Terminal sa1 [0] + disable + [9600] + [none] + [8] + [1] + [0] +# [dumb] [xon] +
F3=Cancel Esc+7=Edit Enter=Do
F4=List Esc+8=Image
7. The HACMP manual advises to set some operating system characteristics. You can do that with # smitty chgsys and set HIGH water mark for pending write I/Os per file to 33 and LOW water mark for pending write I/Os per file to 24. 8. Or, instead, you can just issue this command: # chdev -l sys0 -a maxpout='33' -a minpout='24' sys0 changed #
9. Before starting the HACMP installation, once again ensure that you can ping IP addresses on all networks. Here is a little script that may be helpful:
158
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
# cat > /usr/local/bin/pingit #!/bin/ksh HOSTNAME=$(hostname -s) printf "pinging from ${HOSTNAME}: " for TARGET in $@ do printf "${TARGET}"; ping -c 1 ${TARGET}| egrep "100% packet loss" >/dev/null \ && printf " is UNREACHABLE !!! | \n" \ || printf " ok | " done echo "done." CTRL-D # chmod +x /usr/local/bin/pingit # pingit internetpc web gui intranet_client pinging from fw3: internetpc ok | web ok | gui ok | intranet_client ok | done. #
3.3 Installing HACMP We copied all the HACMP installation files to /home/hacmp44 and the current HACMP PTFs to /homel/hacmp44ptfs: # ls /home/hacmp44 .toc cluster.adt.es cluster.es cluster.es.clvm cluster.es.cspoc cluster.es.hc cluster.es.taskguides cluster.hativoli cluster.man.en_US.es.data cluster.msg.en_US.cspoc cluster.msg.en_US.es cluster.msg.en_US.hativoli cluster.vsm.es hacmpfiles.txt rsct.basic rsct.clients rsct.core #
To find out which filesets are prerequisites for HACMP, do a preview installation:
Chapter 3. High availability for VPN-1/FireWall-1
159
a. Execute: # smitty install_latest b. Enter /home/hacmp44 as INPUT device / directory for software. c. Press F4 and select cluster.adt.es and cluster.es with F7. d. Press Enter, change PREVIEW only? to yes and press Enter twice. e. When Command: OK appears, press / and search for MISSING REQUISITES. Scroll down the page by pressing the CTRL and V keys. f. Find out which filesets are missing. Install the missing filesets and their prerequisites from the first AIX CD-ROM (or the AIX Version 4 Update CD-ROM) with # smitty install_all. After it is completed, install cluster.adt and cluster.base as explained above without preview. In our case the following prerequistes were missing: • bos.adt.libm 4.3.3.0 • bos.net.tcp.client 4.3.3.3 • bos.net.tcp.server 4.3.3.3 • bos.rte.libc 4.3.3.3 • perfagent.tools 2.2.32.0 Next install the HACMP PTFs: a. Execute: # smitty update_all b. Enter /home/hacmp44ptfs as INPUT device / directory for software c. Set COMMIT software updates? to no. d. Set SAVE replaced files? to yes. e. Set DETAILED output? to yes and press Enter twice to start.
3.4 Configuring HACMP Before proceeding to the next step, you need to fill out your copy of the HACMP worksheet now. Refer to Appendix B, “An example of the HACMP planning worksheet” on page 351 for further details.
3.4.1 Cluster topology The first thing that has to be configured in HACMP is the cluster topology. Complete the following steps: 1. Execute: # smitty hacmp 2. Choose Cluster Configuration.
160
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
3. Choose Cluster Topology (you can get here directly by issuing # smitty cm_cfg_top_menu).
Cluster Topology Move cursor to desired item and press Enter. Configure Cluster Configure Nodes Configure Adapters Configure Global Networks Configure Network Modules Configure Topology Services and Group Services Show Cluster Topology Synchronize Cluster Topology
F1=Help
F2=Refresh
F3=Cancel
Esc+8=Image
4. Choose Configure Cluster. 5. Choose Add a Cluster Definition. 6. Enter the Cluster ID (for example, 2) and Cluster Name (for example, fwone) as defined in your HACMP worksheet and press Enter to execute.
Chapter 3. High availability for VPN-1/FireWall-1
161
Add a Cluster Definition Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] **NOTE: Cluster Manager MUST BE RESTARTED in order for changes to be acknowledged.** * Cluster ID * Cluster Name
F1=Help Esc+5=Reset Esc+9=Shell
[2] [fwone]
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
#
F4=List Esc+8=Image
7. Go back to Cluster Topology by pressing F3 twice or entering: # smitty cm_cfg_top_menu
8. Choose Configure Nodes. 9. Choose Add Cluster Nodes. 10.Enter the two Cluster Node names (for example, fw3 fw4) you chose in your HACMP worksheet.
162
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Add Cluster Nodes Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] [fw3 fw4]
* Node Names
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
F4=List Esc+8=Image
11.Again, go back to Cluster Topology by pressing F3 three times or by entering: # smitty cm_cfg_top_menu 12.You need to configure each of your HACMP-related IP addresses as adapters in HACMP. Choose Configure Adapters. Always enter first the boot addresses and then the service addresses. Table 6 shows the information we actually entered. Table 6. HACMP adapter configuration for IP addresses
Adapter IP Label
Network Type
Network Name
Network Attribute
Adapter Function
Node Name
fw3_out_boot
token
out
public
boot
fw3
fw3_dmz_boot
token
dmz
public
boot
fw3
fw3_int_boot
token
int
public
boot
fw3
fw4_out_boot
token
out
public
boot
fw4
fw4_dmz_boot
token
dmz
public
boot
fw4
fw4_int_boot
token
int
public
boot
fw4
fw_out
token
out
public
service
fw_dmz
token
dmz
public
service
Chapter 3. High availability for VPN-1/FireWall-1
163
Adapter IP Label
Network Type
Network Name
Network Attribute
Adapter Function
fw_int
token
int
public
service
Node Name
13.Now, add each of your HACMP-related IP addresses as adapter: a. Choose Add an Adapter. b. At Adapter IP Label, enter the hostname you chose in /etc/hosts for the corresponding IP address. c. On Network Type, press F4 and choose the right network technology (for example, token, ether). d. Enter the Network Name that is corresponding to the IP address. e. Leave Network Attribute as public. f. If you are configuring for a boot IP address, change Adapter Function from service to boot and enter the Node Name the boot IP address belongs to. Do not enter a Node Name if it is a service address, because the service addresses are shared between the two nodes. g. Do not enter the IP address itself, it is extracted from /etc/hosts. Press Enter to execute. h. You get a messages like this: Warning: No service interface with boot adapter fw3_out_boot That’s OK. Use F3 to go back one step and enter the next adapter.
164
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Add an Adapter Type or select values in entry fields. Press Enter AFTER making all desired changes.
* * * * *
[Entry Fields] [fw3_out_boot] [token] [out] public boot [] [] [fw3]
Adapter IP Label Network Type Network Name Network Attribute Adapter Function Adapter Identifier Adapter Hardware Address Node Name
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
+ + + +
+
F4=List Esc+8=Image
14.When you are done adding the adapter choose Change / Show an Adapter in Configure Adapters ( # smitty cm_config_adapters). 15.Select one adapter and check if it is configured as expected.
Chapter 3. High availability for VPN-1/FireWall-1
165
Configure Adapters Move cursor to desired item and press Enter. Add an Adapter ---------------------------------------------------------------------------| Adapter to Change | | | | Move cursor to desired item and press Enter. | | | | fw3_dmz_boot | | fw3_int_boot | | fw3_out_boot | | fw4_dmz_boot | | fw4_int_boot | | fw4_out_boot | | fw_dmz | | fw_int | | fw_out | | | | F1=Help F2=Refresh F3=Cancel | | Esc+8=Image Esc+0=Exit Enter=Do | F1| /=Find n=Find Next | Es----------------------------------------------------------------------------
16.You will notice that the right IP address (according to /etc/hosts) has been filled in.
Change/Show an Adapter Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] fw3_dmz_boot [] [token] [dmz] public boot [10.3.3.193] [] [fw3]
* Adapter IP Label New Adapter Label Network Type Network Name Network Attribute Adapter Function Adapter Identifier Adapter Hardware Address Node Name
F1=Help Esc+5=Reset Esc+9=Shell
166
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
F4=List Esc+8=Image
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
+ + + +
+
17.To check the data of all your adapters for correctness, you should exit SMIT with F10 and compare your plans to the output of # /usr/sbin/cluster/utilities/cllsif.
# /usr/sbin/cluster/utilities/cllsif Adapter Type Network
Net Type
Attribute Node
fw3_dmz_boot fw_dmz fw3_int_boot fw_int fw3_out_boot fw_out fw4_dmz_boot fw_dmz fw4_int_boot fw_int fw4_out_boot fw_out #
token token token token token token token token token token token token
public public public public public public public public public public public public
boot service boot service boot service boot service boot service boot service
dmz dmz int int out out dmz dmz int int out out
fw3 fw3
9 9
fw3 fw4 fw4
9 9
fw4
Table 7. HACMP adapter configuration for serial ports
Adapter IP Label
Network Type
Network Name
Network Attribute
Adapter Function
Adapter Identifier
Node Name
fw3_tty1
rs232
rs232_1
serial
service
/dev/tty1
fw3
fw4_tty1
rs232
rs232_1
serial
service
/dev/tty1
fw4
18.Define the serial port as an adapter also: a. Go back to Configure Adapters ( # smitty cm_config_adapters) and choose Add an Adapter again. b. Enter the Adapter IP Label (for example, fw3_tty1). c. Choose rs232 as Network Type. d. Enter your chosen Network Name (for example, rs232_1). e. Change Network Attribute to serial. f. Enter the serial device (for example, /dev/tty1) as Adapter Identifier. g. Enter the Node Name that corresponds to the Adapter IP Label. h. Press Enter to execute, then F3 to go back one to Configure Adapters and repeat for the other node (for example, fw4).
Chapter 3. High availability for VPN-1/FireWall-1
167
Add an Adapter Type or select values in entry fields. Press Enter AFTER making all desired changes.
* * * * *
[Entry Fields] [fw3_tty1] [rs232] [rs232_1] serial service [/dev/tty1] [] [fw3]
Adapter IP Label Network Type Network Name Network Attribute Adapter Function Adapter Identifier Adapter Hardware Address Node Name
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
+ + + +
+
F4=List Esc+8=Image
19.You may want to print your cluster topology using: /usr/sbin/cluster/utilities/cllscf # /usr/sbin/cluster/utilities/cllscf Cluster Description of Cluster fwone Cluster ID: 2 There were 4 networks defined : dmz, int, out, rs232_1 There are 2 nodes in this cluster. NODE fw3: This node has 4 service interface(s): Service Interface fw_dmz: IP address: 10.3.3.192 Hardware Address: Network: dmz Attribute: public Service Interface fw_dmz has a possible boot configuration: Boot (Alternate Service) Interface: fw3_dmz_boot IP address: 10.3.3.193 Network: dmz Attribute: public Service Interface fw_dmz has no standby interfaces.
168
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Service Interface fw_int: IP address: 9.3.187.192 Hardware Address: Network: int Attribute: public Service Interface fw_int has a possible boot configuration: Boot (Alternate Service) Interface: fw3_int_boot IP address: 9.3.187.193 Network: int Attribute: public Service Interface fw_int has no standby interfaces.
Service Interface fw_out: IP address: 10.2.2.192 Hardware Address: Network: out Attribute: public Service Interface fw_out has a possible boot configuration: Boot (Alternate Service) Interface: fw3_out_boot IP address: 10.2.2.193 Network: out Attribute: public Service Interface fw_out has no standby interfaces.
Service Interface fw3_tty1: IP address: /dev/tty1 Hardware Address: Network: rs232_1 Attribute: serial Service Interface fw3_tty1 has no standby interfaces.
NODE fw4: This node has 4 service interface(s): Service Interface fw_dmz: IP address: 10.3.3.192 Hardware Address: Network: dmz Attribute: public
Chapter 3. High availability for VPN-1/FireWall-1
169
Service Interface fw_dmz has a possible boot configuration: Boot (Alternate Service) Interface: fw4_dmz_boot IP address: 10.3.3.195 Network: dmz Attribute: public Service Interface fw_dmz has no standby interfaces.
Service Interface fw_int: IP address: 9.3.187.192 Hardware Address: Network: int Attribute: public Service Interface fw_int has a possible boot configuration: Boot (Alternate Service) Interface: fw4_int_boot IP address: 9.3.187.195 Network: int Attribute: public Service Interface fw_int has no standby interfaces.
Service Interface fw_out: IP address: 10.2.2.192 Hardware Address: Network: out Attribute: public Service Interface fw_out has a possible boot configuration: Boot (Alternate Service) Interface: fw4_out_boot IP address: 10.2.2.195 Network: out Attribute: public Service Interface fw_out has no standby interfaces.
Service Interface fw4_tty1: IP address: /dev/tty1 Hardware Address: Network: rs232_1 Attribute: serial Service Interface fw4_tty1 has no standby interfaces.
170
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Breakdown of network connections: Connections to network dmz Node fw3 is connected to network dmz by these interfaces: fw3_dmz_boot fw_dmz Node fw4 is connected to network dmz by these interfaces: fw4_dmz_boot fw_dmz
Connections to network int Node fw3 is connected to network int by these interfaces: fw3_int_boot fw_int Node fw4 is connected to network int by these interfaces: fw4_int_boot fw_int
Connections to network out Node fw3 is connected to network out by these interfaces: fw3_out_boot fw_out Node fw4 is connected to network out by these interfaces: fw4_out_boot fw_out
Connections to network rs232_1 Node fw3 is connected to network rs232_1 by these interfaces: fw3_tty1 Node fw4 is connected to network rs232_1 by these interfaces: fw4_tty1 #
3.4.2 Cluster resources The next step is to configure the cluster resources:
Chapter 3. High availability for VPN-1/FireWall-1
171
1. Execute: # smitty cm_configure_menu 2. Choose Cluster Resources. 3. Choose Define Resource Groups. 4. Choose Add a Resource Group. 5. Enter the Resource Group Name (for example, fwone_rg). 6. Change Node Relationship to rotating. 7. Enter the two Participating Node Names (for example, fw3 fw4). 8. Press Enter to execute.
Add a Resource Group Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] [fwone_rg] rotating [fw3 fw4]
* Resource Group Name * Node Relationship * Participating Node Names
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
+ +
F4=List Esc+8=Image
9. Press F3 three times to get back to Cluster Resources. 10.Choose Define Application Servers. 11.Choose Add an Application Server. 12.Enter the Server Name (for example, fwone_as). 13.Enter the full path to the Start Script (for example, /usr/local/bin/active-start). 14.Enter the full path to the Stop Script (for example, /usr/local/bin/active-stop). 15.Press Enter to execute and then F3 three times to get back to Cluster Resources.
172
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Add an Application Server Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] [fwone_as] [/usr/local/bin/active->
* Server Name * Start Script * Stop Script
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
F4=List Esc+8=Image
16.Now, assign the resources you created to your resource group: a. Choose Change/Show Resources/Attributes for a Resource Group. b. Choose your Resource Group (for example, fwone_rg) from the list. c. Enter your Service IP Labels (for example, fw_dmz fw_out fw_int).
Chapter 3. High availability for VPN-1/FireWall-1
173
Configure Resources for a Resource Group Type or select values in entry fields. Press Enter AFTER making all desired changes. [TOP] Resource Group Name Node Relationship Participating Node Names
[Entry Fields] fwone_rg rotating fw3 fw4
Service IP label HTY Service Label Filesystems Filesystems Consistency Check Filesystems Recovery Method Filesystems to Export Filesystems to NFS mount Volume Groups Concurrent Volume groups [MORE...9] F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
[fw_dmz fw_out fw_int] [] [] fsck sequential [] [] [] []
F3=Cancel Esc+7=Edit Enter=Do
+ + + + + + + +
F4=List Esc+8=Image
d. Use your down arrow key to scroll to Application Servers. e. Enter the name of the application server (for example, fwone_as). f. Press Enter to execute.
174
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Configure Resources for a Resource Group Type or select values in entry fields. Press Enter AFTER making all desired changes. [MORE...4] Service IP label HTY Service Label Filesystems Filesystems Consistency Check Filesystems Recovery Method Filesystems to Export Filesystems to NFS mount Volume Groups Concurrent Volume groups Raw Disk PVIDs AIX Connections Services Application Servers Miscellaneous Data [MORE...5] F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
[Entry Fields] [fw_dmz fw_out fw_int] [] [] fsck sequential [] [] [] [] [] [] [fwone_as] []
F3=Cancel Esc+7=Edit Enter=Do
+ + + + + + + + + + +
F4=List Esc+8=Image
3.4.3 Cluster event customization Because our configuration does not have any standby adapter, it is necessary to propagate a network failure to a complete takeover. For this purpose, we developed a script that halts the machine as soon as a network becomes unreachable for any reason. The script is called by a HACMP custom event named post_network_down, and this event is launched as a post-event of network_down_complete. The custom script is called network_down; It is explained in detail in Section 3.5.1.3, “network_down” on page 180. Complete the following steps: 1. Go to the Cluster Resources menu (press F3 twice or enter # smitty cm_cfg_res_menu). 2. Choose Cluster Events. 3. Choose Define Custom Cluster Events. 4. Choose Add a Custom Cluster Event. 5. Enter post_network_down_complete as the Cluster Event Name. 6. Enter custom shell script as the Cluster Event Description. 7. Enter /usr/local/bin/network_down as the Cluster Event Script Filename. 8. Press Enter.
Chapter 3. High availability for VPN-1/FireWall-1
175
Add a Custom Cluster Event Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] [post_network_down_comp> [custom shell script] [/usr/local/bin/network>
* Cluster Event Name * Cluster Event Description * Cluster Event Script Filename
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
F4=List Esc+8=Image
Now, the custom event is defined as a post-event of the network_down_complete event. Complete the following steps: a. Press F3 three times to get to Cluster Events. b. Choose Change/Show Cluster Events. c. Press / and search for network_down_complete. Press Enter when you find it. d. Go to the Post-event Command line and press F4. e. Press Enter on your custom post_network_down_complete event. f. Press Enter to execute and then F10 to exit smitty.
176
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Change/Show Cluster Events Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] Event Name
network_down_complete
Description
Script run after the n>
* Event Command
[/usr/es/sbin/cluster/ev>
Notify Command Pre-event Command Post-event Command Recovery Command * Recovery Counter
[] [] + [post_network_down_comp> + [] [0] #
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
F4=List Esc+8=Image
3.4.4 Solving the ARP cache problem To solve the ARP cache refresh problem, it is necessary to manually refresh the ARP caches of all machines directly connected to the same subnet as the network the firewall servers. Examples of these are routers, dmz servers, and so on. This can be done by pinging to those systems after a service IP address takeover, and this action results in refreshing the ARP cache of the systems. If we did not ping them, they would keep sending their IP packets to the hardware MAC address of the previously active firewall until their ARP cache expires. That would result in longer waits until connections continue after takeover. Edit /usr/es/sbin/cluster/etc/clinfo.rc and add all the IP addresses that are on the same physical network as the firewalls to the PING_CLIENT_LIST value. To make IP address changes easier, you can use names from /etc/hosts instead of IP addresses since you then only need to change them at one point. # cd /usr/es/sbin/cluster/etc/ # cp clinfo.rc clinfo.rc.orig # sed -e \ 's/PING_CLIENT_LIST=""/PING_CLIENT_LIST="internetpc web gui
Chapter 3. High availability for VPN-1/FireWall-1
177
intranet_client"/'\ clinfo.rc.orig > clinfo.rc
Add the same IP addresses or names to: /usr/es/sbin/cluster/netmon.cf # cat >> /usr/es/sbin/cluster/netmon.cf internetpc web gui intranet_client CTRL-D #
3.5 Custom shell scripts The custom shell scripts described in this section were designed to fit with our test environment. Some modifications may be required for your own use. You can simply cut and paste the scripts from the PDF version of this document at: www.redbooks.ibm.com After creating the scripts, do not forget to set execute permissions with: # chmod 0700 /usr/local/bin/*
3.5.1 Custom shell scripts for HACMP events This section describes custom shell scripts for HACMP events. 3.5.1.1 active-start This script is executed by HACMP every time the service IP addresses are acquired. This is what it does: • It sets an IP alias on the external network interface (tr2) to the boot IP address of that interface (MYOUTIP). • It also executes a couple of commands on the local firewalls, for example, to set the ARP entries correctly, in case somebody forgot to put in the static route. (For a discussion of the HA issues, see Section 3.9.2, “NAT” on page 231.) • It starts xntp as a NTP server. • If the other firewall is available (answers a ping), it executes the same commands on it as it did on the localhost: # cat > /usr/local/bin/active-start #!/bin/ksh if [ $(hostname -s) = "fw3" ];
178
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
then OTHER=fw4_adm; MYMAC=00:04:AC:61:9D:C3 ; MYOUTIP=10.2.2.193 else OTHER=fw3_adm; MYMAC=00:06:29:B9:FE:FC ; MYOUTIP=10.2.2.195 fi COMMANDS=" arp -d 10.2.2.9 arp -s 802.5 10.2.2.9 ${MYMAC} pub arp -d 10.2.2.3 arp -s 802.5 10.2.2.3 ${MYMAC} pub " # ifconfig tr2 alias ${MYOUTIP} ksh "$COMMANDS" # start ntp daemon as server stopsrc -s xntpd startsrc -s xntpd -a "-c /etc/ntp.server.conf"
if (ping -c 1 ${OTHER}| egrep "100% packet loss" >/dev/null) then echo "${OTHER} is unreachable. It is probably down." else rsh ${OTHER} "$COMMANDS" fi CTRL-D #
3.5.1.2 active-stop This script is executed by HACMP whenever the service IP addresses are released, for example, because HACMP was gracefully stopped with or without takeover. It stops the NTP server. For example: # cat >> /usr/local/bin/active-stop #!/bin/ksh # stop ntp daemon stopsrc -s xntpd CTRL-D #
Chapter 3. High availability for VPN-1/FireWall-1
179
3.5.1.3 network_down This script is executed by HACMP when a network down event is detected, for example, when a network interface fails. • It checks if the failed network interface (that is in $4) is serial (-1) and only prints and logs a message. • If the failed node (that is in $3) is the local host, it prints a message and makes the local host stop very quickly (halt -q). This forces the other node to take over immediately and efficiently deals with any possible trouble. The reasoning is that the potential disruption of service is minimized by immediately halting the defective firewall workstation. • If the other node failed (both firewalls get the network_down event) than only a message is generated and logged: # cat >> /usr/local/bin/network_down #!/bin/sh NODENAME=$3 HOSTNAME=‘/usr/bin/hostname‘ if [ "$NODENAME" = "-1" ] then logger "The serial connection $4 was lost!" wall "The serial connection $4 was lost!" exit 0 fi if [ "$NODENAME" = "$HOSTNAME" ] then logger "This node ($NODENAME) is going down now!" wall "This node ($NODENAME) is going down now!" sync; sync; sync /usr/sbin/halt -q else logger "The other node ($NODENAME) is going down!" wall "The other node ($NODENAME) is going down!" fi CTRL-D #
3.5.2 Custom shell scripts for status gathering This section describes custom shell scripts for status gathering.
180
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
3.5.2.1 pingit This script sends one single ping to each of its arguments and reports ok or UNREACHABLE depending on the return value of ping: # cat >> /usr/local/bin/pingit #!/bin/ksh HOSTNAME=$(hostname -s) printf "pinging from ${HOSTNAME}: " for TARGET in $@ do printf "${TARGET}"; ping -c 1 ${TARGET}| egrep "100% packet loss" >/dev/null \ && printf " is UNREACHABLE !!! | \n" \ || printf " ok | " done echo "done." CTRL-D # # chmod +x /usr/local/bin/pingit # pingit internetpc web gui intranet_client pinging from fw3: internetpc ok | web ok | gui ok | intranet_client ok | done. #
3.5.2.2 ping-2, ping-3, ping-4, and ping-o These scripts use pingit to ping a specific group of IP addresses. ping-2 stands for the service IP addresses (.192). ping-3 relates to fw3, and ping-4 relates to fw4. ping-o is used by getstate to check if the firewall can still reach all the other IP addresses. For example: # cat >> /usr/local/bin/ping-2 pingit fw_out fw_dmz fw_int CTRL-D # # cat >> /usr/local/bin/ping-3 pingit fw3_adm_boot fw3_out_boot fw3_dmz_boot fw3_int_boot CTRL-D # # cat >> /usr/local/bin/ping-4 pingit fw4_adm_boot fw4_out_boot fw4_dmz_boot fw4_int_boot CTRL-D # # cat >> /usr/local/bin/ping-o pingit internetpc web gui intranet_client CTRL-D #
Chapter 3. High availability for VPN-1/FireWall-1
181
3.5.2.3 ni The ni script is used to look at the currently configured IP addresses on all network interfaces. It is a shortcut to netstat -ni without the loopback interfaces and link addresses: # cat >> /usr/local/bin/ni netstat -ni | egrep -v "link|lo0" CTRL-D # chmod +x /usr/local/bin/ni # ni Name Mtu Network Address tr0 1492 10.3.3 10.3.3.193 tr1 1492 10.4.4 10.4.4.193 tr2 1492 10.2.2 10.2.2.193 tr3 1492 9.3.187.128 9.3.187.193 #
Ipkts Ierrs 1628 0 146 0 393 0 4768 0
Opkts Oerrs Coll 1707 0 0 140 0 0 131 0 0 131 0 0
3.5.2.4 getstate getstate is used to print the state of the highly available firewall environment. Below is a sample output.
fw4:/# getstate ******************* fw3_adm: HACMP is NOT running !!! **************************** VPN-1/FireWall-1 is not running !!! ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.193 1628 0 1707 0 0 tr1 1492 10.4.4 10.4.4.193 146 0 140 0 0 tr2 1492 10.2.2 10.2.2.193 393 0 131 0 0 tr3 1492 9.3.187.128 9.3.187.193 4768 0 131 0 0 pinging from fw3: internetpc ok | web ok | gui ok | intranet_client ok | done. ******************* fw4_adm: HACMP is active last cm.log: Apr 12 16:20:08 EVENT COMPLETED: node_up_complete fw4 **************************** VPN-1/FireWall-1 is not running !!! ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.192 1736 0 1638 0 0 tr1 1492 10.4.4 10.4.4.195 163 0 157 0 0 tr2 1492 10.2.2 10.2.2.192 387 0 283 0 0 tr3 1492 9.3.187.128 9.3.187.192 4250 0 150 0 0 pinging from fw4: internetpc ok | web ok | gui ok | intranet_client ok | done. Do you want to "tail -f /usr/es/adm/cluster.log" [y]/n? n fw4:/#
What it does is show you the state of HACMP, VPN-1/FireWall-1, and ipforwarding on both firewalls. It also shows the network interface
182
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
configuration and tests connectivity with ping. It also tells you about the cluster manager log file. For example: # cat >> /usr/local/bin/getstate #!/bin/ksh COMMANDS=' lssrc -g cluster | egrep "clstrmgr" | egrep "active" >/dev/null && (echo "HACMP is active"; printf "last cluster.log: "; tail -n 1 /usr/es/adm/cluster.log) || echo "HACMP is NOT running !!!"; printf "**************************** "; /usr/lpp/CPfw1-41/bin/fw stat 2>&1 | egrep "^localhost" >/dev/null && printf "VPN-1/FireWall-1 is active." || printf "VPN-1/FireWall-1 is not running !!!"; no -a | grep ipforw | egrep "= 1" > /dev/null && echo " ipforwarding = 1" || echo " ipforwarding = 0 !!!"; netstat -ni | egrep -v "link|lo0"; PATH=$PATH:/usr/local/bin; ping-o '
echo "" for NODE in fw3_adm fw4_adm do ping -c 1 ${NODE}| egrep "100% packet loss" >/dev/null \ && (printf "${NODE} is UNREACHABLE !!! "; echo ) \ || (printf "******************* ${NODE}: "; rsh ${NODE} ${COMMANDS}) echo done printf 'Do you want to "tail -f /usr/es/adm/cluster.log" [y]/n? ' read CR if [ "$CR" = "n" ] then exit else tail -f /usr/es/adm/cluster.log fi CTRL-D #
Chapter 3. High availability for VPN-1/FireWall-1
183
3.5.3 Custom shell scripts for starting and stopping HACMP 3.5.3.1 start-hacmp This script is the equivalent of starting HACMP by the following sequence: # smitty hacmp, Cluster Services -> Start Cluster Services with Startup Cluster Information Daemon? set to true, and executing # tail -f /tmp/cm.log # cat >> /usr/local/bin/start-hacmp /usr/es/sbin/cluster/etc/rc.cluster -boot '-N' '-b' echo 'Doing "tail -f /tmp/cm.log"' tail -f /tmp/cm.log CTRL-D #
'-i'
3.5.3.2 stop-hacmp-f This script does a forced HACMP shutdown. It stops HACMP without executing any stop scripts. It basically kills the daemons. For example: # cat >> /usr/local/bin/stop-hacmp-f /usr/es/sbin/cluster/utilities/clstop -y '-N' '-f' CTRL-D #
3.5.3.3 stop-hacmp-g This script does a graceful HACMP shutdown. It cleanly shutdowns HACMP. Stop scripts are executed, but it does not give the resources to the other node. For example: # cat >> /usr/local/bin/stop-hacmp-g /usr/es/sbin/cluster/utilities/clstop -y '-N' '-g' CTRL-D #
3.5.3.4 stop-hacmp-t This script does a graceful HACMP shutdown with takeover. It cleanly shutdowns HACMP. Stop scripts are executed and it gives the resources to the other node. For example: # cat >> /usr/local/bin/stop-hacmp-t /usr/es/sbin/cluster/utilities/clstop -y '-N' '-gr' CTRL-D #
3.5.4 Custom shell scripts for file synchronization These scripts are not absolutely required for the lab tests but they are used in later steps. They are supposed to be examples of how to solve the problem of
184
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
synchronizing files and the VPN-1/FireWall-1 configuration between the two firewalls. 3.5.4.1 clone This script is intended for simple file synchronization. It shows you the ls -l output of the file you gave it as an argument from both firewalls and asks you if you want the file on this firewall to be copied to the other system. For example: # cat >> /usr/local/bin/clone #! /bin/ksh # Author: Rene Spalt , CCM, 25.9.1998 trap "echo `basename $0`: error detected, aborting >&2" ERR set -eu for file in $*; do node=`hostname -s` if [[ $node = fw3 ]]; then other_node=fw4_adm else other_node=fw3_adm fi if [[ ! $file = /* ]]; then file=`pwd`/$file fi ls -l $file | sed -e 's/\([^ ]*\)$/'$node':\1/' rsh ${other_node} ls -l $file | sed -e 's/\([^ ]*\)$/'$other_node':\1/' || true echo "$node:$file -> ${other_node}:$file ? \c" read answer if [[ $answer = y ]]; then rcp -p $file ${other_node}:`dirname $file` fi done CTRL-D #
3.5.4.2 clonediff This is an extended version of the previous clone script. If the files are not identical on both firewalls, clonediff shows you what was deleted (<) and
Chapter 3. High availability for VPN-1/FireWall-1
185
added (>) to the file that you want to transfer. Refer to the following for an example usage: fw3:/etc# clonediff rc.local 1,2c1,2 < /usr/sbin/no -o ipforwarding=1 < /usr/sbin/no -a | grep ipforwarding --> /usr/sbin/ifconfig lo0 alias 10.1.1.1 > /usr/local/bin/start-fw1 -rwxr-xr-x 1 root system 110 Aug 29 10:25 fw3:/etc/rc.local -rwxr-xr-x 1 root system 114 Aug 29 10:27 fw4_adm:/etc/rc.local fw3:/etc/rc.local -> fw4_adm:/etc/rc.local ? y fw3:/etc# fw3:/etc# clonediff rc.local The files (/etc/rc.local) are identical. fw3:/etc#
The contents of the script is as follows. # cat >> /usr/local/bin/clonediff #! /bin/ksh # Author: Rene Spalt , CCM, 25.9.1998 # extended to diff by Viktor Mraz, IBM Unternehmensberatung GmbH trap "echo `basename $0`: error detected, aborting >&2" ERR set -eu for file in $*; do node=`hostname -s` if [[ $node = fw3 ]]; then other_node=fw4_adm else other_node=fw3_adm fi if [[ ! $file = /* ]]; then file=`pwd`/$file fi clonedifffile=/tmp/clonediff.$$ rm -f $clonedifffile rsh ${other_node} test -f $file && \ rcp ${other_node}:$file $clonedifffile && \ diff $clonedifffile $file \ && echo "The files ($file) are identical." \ && rm -f $clonedifffile && exit \
186
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
|| rm -f $clonedifffile || true ls -l $file | sed -e 's/\([^ ]*\)$/'$node':\1/' rsh ${other_node} ls -l $file | sed -e 's/\([^ ]*\)$/'$other_node':\1/' || true echo "$node:$file -> ${other_node}:$file ? \c" read answer if [[ $answer = y ]]; then rcp -p $file ${other_node}:`dirname $file` fi done CTRL-D #
3.5.4.3 diff_nodes This script generates a couple of files that tell you which files are different or missing on what firewall. It compares ls -l output and does checksums for only those files that look different for performance reasons. It can easily be extended to use checksums for all files. It does the same job no matter if it is started on fw3 or fw4. There is a list of files that will always be different on two firewalls (for example, /tmp filesystem). The file /usr/local/bin/diff_nodes.not contains regular expressions of files that are not compared by diff_nodes. Refer to the following: # cat >> /usr/local/bin/diff_nodes #!/bin/ksh # written by Viktor Mraz, [email protected] NODE1="fw3" NODE2="fw4" ADM="_adm" RSH="rsh" #SUM="/usr/local/bin/md5sum -b" SUM="/usr/bin/cksum" # no user serviceable parts beyond this point TMP=$$ echo ’This can take some time !’ for NODE in ${NODE1} ${NODE2}; do echo Generating file-listing on ${NODE} ${RSH} ${NODE}${adm} \
Chapter 3. High availability for VPN-1/FireWall-1
187
"find / -type f -ls | sort +10 | sed -e ’s/^ *[0-9]*//’" \ > /tmp/diff_nodes.${NODE}.$TMP done
echo Generating diff of file listings diff /tmp/diff_nodes.${NODE1}.${TMP} /tmp/diff_nodes.${NODE2}.${TMP} \ | egrep -v ’^[0-9,]+[adc][0-9,]+$|^---$’| sed -e ’s/.* //’ \ | egrep -v -f /usr/local/bin/diff_nodes.not \ > /tmp/diff_nodes.diff.ls.${TMP}
for NODE in ${NODE1} ${NODE2}; do echo Generating checksums of the probably different files on ${NODE} cat /tmp/diff_nodes.diff.ls.${TMP} \ | ${RSH} ${NODE}${adm} "xargs ${SUM}" \ >/tmp/diff_nodes.sum.out.${NODE}.${TMP} \ 2>/tmp/diff_nodes.sum.err.${NODE}.${TMP} sed -e ’s/: A file or directory in the path name does not exist.//’ \ -e ’s/^cksum: /^/’ -e ’s/$/$/’ /tmp/diff_nodes.sum.err.${NODE}.${TMP} \ | sort | uniq > /tmp/diff_nodes.missing.${NODE}.${TMP} done diff /tmp/diff_nodes.sum.out.${NODE1}.${TMP} \ /tmp/diff_nodes.sum.out.${NODE2}.${TMP} \ | sed ’s/.* //’| egrep -v ’^[0-9,]+[adc][0-9,]+$|^---$’ \ | egrep -v -f /tmp/diff_nodes.missing.${NODE1}.${TMP} \ | egrep -v -f /tmp/diff_nodes.missing.${NODE2}.${TMP} \ | sort | uniq > /tmp/diff_nodes.different_files.${TMP}
echo ========================================================================= echo Files missing on ${NODE1}: echo -------------------------wc /tmp/diff_nodes.missing.${NODE1}.${TMP} echo ======================================================================== echo Files missing on ${NODE2}: echo --------------------------
188
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
wc /tmp/diff_nodes.missing.${NODE2}.${TMP} echo ========================================================================= echo Files that are different between ${NODE1} and ${NODE2}: echo ------------------------------------------------------wc /tmp/diff_nodes.different_files.${TMP} echo ========================================================================= printf "Do you want me to delete all /tmp/diff_nodes*.${TMP} files y/[n]? " read CR if [ "$CR" = "y" ] then rm /tmp/diff_nodes.*.${TMP} else echo "Ok. Then delete them yourself." fi CTRL-D # # cat >> /usr/local/bin/diff_nodes.not ^/etc/ntp ^/usr/local/log-everything ^/usr/lpp/CPfw1-41 ^/usr/local/backup dms_loads.out$ .sh_history$ smit.log$ smit.script$ ^/tmp/ .pid$ ^/etc/lpp/diagnostics/data/ ^/usr/es/sbin/cluster/history/cluster ^/etc/basecust$ ^/etc/objrepos/CuAt$ ^/etc/objrepos/CuAt.vc$ ^/etc/objrepos/CuDv$ ^/etc/objrepos/CuDvDr$ ^/etc/objrepos/HACMPdaemons$ ^/etc/security/failedlogin$ ^/etc/security/lastlog$ ^/etc/utmp$ ^/image.data$ ^/usr/local/log-everything$ ^/usr/es/sbin/cluster/etc/objrepos/active/HACMPcluster$ ^/var/adm/SRC/active_list$
Chapter 3. High availability for VPN-1/FireWall-1
189
^/var/adm/cluster.log$ ^/var/adm/cron/log$ ^/var/adm/ras/BosMenus.log$ ^/var/adm/ras/bootlog$ ^/var/adm/ras/bosinst.data$ ^/var/adm/ras/bosinstlog$ ^/var/adm/ras/errlog$ ^/var/adm/ras/image.data$ ^/var/adm/wtmp$ ^/var/tmp/snmpd.log$ ^/etc/fb_ ^/etc/vg/vg ^/usr/es/sbin/cluster/.telinit$ ^/usr/es/sbin/cluster/server.status$ ^/.ssh/known_hosts$ ^/.ssh/random_seed$ ^/etc/objrepos/CDiagAtt$ ^/etc/objrepos/CDiagAtt.vc$ ^/etc/objrepos/CuDep$ ^/etc/objrepos/CuVPD$ ^/etc/objrepos/FRUB$ ^/etc/objrepos/FRUs$ ^/etc/objrepos/TMInput$ ^/etc/ssh_random_seed$ ^/usr/sbin/cluster/.restore_routes$ ^/var/spool/mail/root$ CTRL-D #
3.5.4.4 diff_fw1 This script copies the VPN-1/FireWall-1 configuration from fw3 to fw4. It generates checksums of the files in the VPN-1/FireWall-1 directories and compares them. No matter on which firewall it is executed, it always copies files only from fw3 to fw4. After copying, the checksums are once again compared to prevent having unfinished or corrupted files on fw4. Similar to diff_nodes, there is a exclusion list in /usr/local/bin/diff_fw1.not. Also see Section 3.9.1, “Synchronizing VPN-1/FireWall-1 management” on page 229. For example: # cat >> /usr/local/bin/diff_fw1 #!/bin/ksh # written by Viktor Mraz, [email protected] NODE1="fw3" # primary VPN-1/FireWall-1 management server to be copied from
190
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
NODE2="fw4" ADM="_adm" SUM="/usr/bin/cksum" # no user serviceable parts beyond this point TMP=$$ cleanup() { for NODE in ${NODE1} ${NODE2}; do rsh ${NODE}${ADM} \ "rm -f /tmp/diff_fw1.files.${TMP} /tmp/diff_fw1.${TMP}.tar" done
echo printf "Do you want me to delete all /tmp/diff_fw1*.${TMP} files [y]/n? " read CR if [ "$CR" = "n" ] then echo "Ok. Then delete them yourself." else rm -f /tmp/diff_fw1.*.${TMP} fi } echo echo This script is going to try to copy the VPN-1/FireWall-1 configuration of $NODE1 to $NODE2 echo for NODE in ${NODE1} ${NODE2}; do echo Generating checksums on ${NODE} rsh ${NODE}${ADM} \ "find /usr/lpp/CPfw1-41/ -type f \ | egrep -v -f /usr/local/bin/diff_fw1.not | xargs $SUM" \ | sort > /tmp/diff_fw1.${NODE}.$TMP done
echo Generating diff of checksums
Chapter 3. High availability for VPN-1/FireWall-1
191
diff /tmp/diff_fw1.${NODE2}.${TMP} /tmp/diff_fw1.${NODE1}.${TMP} \ | egrep -v ’^[0-9,]+[adc][0-9,]+$|^---$|^<’| sed -e ’s/.* //’ \ | egrep -v -f /usr/local/bin/diff_fw1.not \ > /tmp/diff_fw1.diff.${TMP} if (wc /tmp/diff_fw1.diff.${TMP}|egrep "^ 0 0 0" > /dev/null ) then echo echo No differences were found. There is nothing to do. cleanup exit 0 else echo "These files are different:" cat /tmp/diff_fw1.diff.${TMP} echo printf "Do you want to continue and copy them to $NODE2 ? [y]/n " read ANSWER if [ "$ANSWER" = "n" ] then echo "Ok. Aborting on user request." cleanup exit 0 fi fi
echo Generating tar of different files on $NODE1 for NODE in ${NODE1} ${NODE2}; do rcp /tmp/diff_fw1.diff.${TMP} ${NODE}${ADM}:/tmp/diff_fw1.files.${TMP} done rsh ${NODE1}${ADM} "\ tar cvfL /tmp/diff_fw1.${TMP}.tar /tmp/diff_fw1.files.${TMP} ; \ rcp /tmp/diff_fw1.${TMP}.tar ${NODE2}${ADM}:/tmp/diff_fw1.${TMP}.tar"
echo "Killing VPN-1/FireWall-1 Management Daemon (fwm) on $NODE2" rsh ${NODE2}${ADM} ’kill ‘cat /usr/lpp/CPfw1-41/tmp/fwm.pid‘; \ kill ‘cat /usr/lpp/CPfw1-41/tmp/fwm.pid‘; \ kill ‘cat /usr/lpp/CPfw1-41/tmp/fwm.pid‘; \ kill -9 ‘cat /usr/lpp/CPfw1-41/tmp/fwm.pid‘;’
192
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
echo Extracting tar of different files on $NODE2 rsh ${NODE2}${ADM} "tar xvf /tmp/diff_fw1.${TMP}.tar"
echo Comparing checksums of transferred files between nodes rsh ${NODE1}${ADM} "cat /tmp/diff_fw1.files.${TMP} | xargs $SUM" \ > /tmp/diff_fw1.${NODE1}.sum.${TMP} rsh ${NODE2}${ADM} "cat /tmp/diff_fw1.files.${TMP} | xargs $SUM" \ > /tmp/diff_fw1.${NODE2}.sum.${TMP} if (diff /tmp/diff_fw1.${NODE1}.sum.${TMP} /tmp/diff_fw1.${NODE2}.sum.${TMP}) then echo "The files that were found different are now identical." echo echo "You still need to restart fwm on $NODE2 !!!" cleanup exit 0 else echo echo "There is still some difference. REPEAT THIS PROCESS !!!" cleanup exit 1 fi
CTRL-D # # cat >> /usr/local/bin/diff_fw1.not /usr/lpp/CPfw1-41/log/ /usr/lpp/CPfw1-41/tmp/ /usr/lpp/CPfw1-41/state/ /usr/lpp/CPfw1-41/conf/masters /usr/lpp/CPfw1-41/conf/clients /usr/lpp/CPfw1-41/conf/sync.conf /usr/lpp/CPfw1-41/conf/fwauth.keys /usr/lpp/CPfw1-41/database/authkeys.C CTRL-D #
Chapter 3. High availability for VPN-1/FireWall-1
193
3.5.4.5 fw1_my_policy_to_other This script installs the VPN-1/FireWall-1 Security Policy that is currently active on the localhost to the other firewall workstation. It is not used in our scenario, but could be useful for you in the future, for example, to put it in active-start. For example: # cat >> /usr/local/bin/fw1_my_policy_to_other #!/bin/ksh cd /usr/lpp/CPfw1-41/conf fw load \ $( fw stat | egrep -v "HOST POLICY DATE" |awk '{print $2}' ).pf \ $( if [ $(hostname -s) = "fw3" ]; then echo fw4_adm; else echo fw3_adm; fi ) CTRL-D #
3.6 Installing the second node In this section, the whole installation of the first node (fw3) is copied to the second node (fw4).
3.6.1 Cloning the first node to the second HACMP node Create a clone tape on fw3 (but make sure you have all the device drivers for the clone target already installed if it is not exactly the same hardware): 1. Insert a write-enabled tape into the tape drive. 2. Execute: # smitty mksysb 3. Enter your tape device (for example, /dev/rmt0) and press Enter.
194
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Back Up the System Type or select values in entry fields. Press Enter AFTER making all desired changes. [TOP] WARNING: Execution of the mksysb command will result in the loss of all material previously stored on the selected output medium. This command backs up only rootvg volume group. * Backup DEVICE or FILE Create MAP files? EXCLUDE files? List files as they are backed up? Generate new /image.data file? EXPAND /tmp if needed? Disable software packing of backup? [MORE...2] F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
[Entry Fields]
[/dev/rmt0] no no no yes no no
F3=Cancel Esc+7=Edit Enter=Do
+/ + + + + + +
F4=List Esc+8=Image
4. When the backup is done, take out the tape.
COMMAND STATUS Command: OK
stdout: yes
stderr: no
Before command completion, additional instructions may appear below.
Creating information file (/image.data) for rootvg.......... Creating tape boot image...................... Creating list of files to back up. Backing up 17909 files.............................. 9645 of 17909 files (53%)..............0512-038 mksysb: Backup Completed Successfully.
F1=Help Esc+8=Image n=Find Next
F2=Refresh Esc+9=Shell
F3=Cancel Esc+0=Exit
Esc+6=Command /=Find
Chapter 3. High availability for VPN-1/FireWall-1
195
5. Execute halt -q and power off fw3 (because when fw4 is installed from the clone tape, it has the same IP addresses as those of fw3). 6. Power on fw4 and follow the installation procedure. Installation Tip
Some machines, such as the RS/6000 43P Model 170, do not let you boot from tape. To restore your mksysb tape, boot from the first AIX Installation CD, and when prompted, choose recovery from system backup. You can then insert the mksysb tape and restore from it. If the source workstation where the mksysb tape was created had mirrored hard drives, be sure to select a minimum of two hard disk drives as the target for the mksysb recovery or else it may fail. 7. Respond to the following screen to define a console.
******* Please define the System Console. ******* Type the F1 key and press Enter to use this display as the system console. Druk op de toets F1 en daarna op Enter om dit beeldstation als de systeemconsole te gebruiken. Pour definir ce terminal comme console systeme, appuyez sur la touche F1 puis sur Entree. Taste F1 und anschliessend die Eingabetaste druecken, um diese Anzeige als Systemkonsole zu verwenden. Premere il tasto F1 ed Invio per usare questo terminale come console per il sistema Pulse la tecla F1 y pulse Intro para utilizar esta pantalla como consola del sistema. Premeu la tecla F1 i despres Intro per utilitzar aquesta pantalla com a consola del sistema. Digite a tecla F1 a pressione Enter para utilizar este video como console do sistems.
2
8. After some more booting, press 1 and Enter to continue.
196
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
>>> 1 Type 1 and press Enter to have English during install.
88 Help ?
>>> Choice [1]: 1
9. Press 1 and Enter again.
Welcome to Base Operating System Installation and Maintenance Type the number of your choice and press Enter. Choice is indicated by >>>. >>> 1 Start Install Now with Default Settings 2 Change/Show Installation Settings and Install 3 Start Maintenance Mode for System Recovery
88 Help ? 99 Previous Menu >>> Choice [1]: 1
10.You may be required to press 1 and Enter one more time to confirm that you want to overwrite the current contents of the hard disk.
Chapter 3. High availability for VPN-1/FireWall-1
197
Installation Warning
WARNING: Base Operating System Installation may destroy or impair recovery of data. Before installing, you should back up your system. >>> 1 Continue with Install
88 Help ? 99 Previous Menu >>> Choice [1]: 1
11.You will see a lot of data about how the installation is coming along. Eventually, the system will reboot.
Installing Base Operating System If you used the system key to select SERVICE mode, turn the system key to the NORMAL position any time before the installation ends. Please wait...
Approximate % tasks complete
0
198
Elapsed time (in minutes)
0
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
If you see errors (for example, on your terminal) after reboot, it could be that the driver for graphics adapter is missing, for example: cfgmgr: 0514-621 WARNING: The following device packages are required for device support but are not currently installed. devices.mca.8ee3
Then, use smitty install_all to install them from the first AIX CD and reboot.
3.6.2 Configuration of the second node First, change the hostname to fw4 with # smitty hostname.
Set Hostname Please refer to Help for information concerning hostname / INTERNET address mapping Type or select values in entry fields. Press Enter AFTER making all desired changes.
* HOSTNAME (symbolic name of your machine)
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] [fw4]
F4=List Esc+8=Image
Next, change the IP addresses of all the network interfaces: 1. Execute: # smitty inet 2. Choose Change / Show Characteristics of a Network Interface. 3. Choose an interface you need to change. 4. Change the IP address in INTERNET ADDRESS (dotted decimal) (for example, change from x.x.x.193 to x.x.x.195). 5. Press Enter. 6. Press F3 twice and repeat process for the next interface until all are changed.
Chapter 3. High availability for VPN-1/FireWall-1
199
Change / Show a Token-Ring Network Interface Type or select values in entry fields. Press Enter AFTER making all desired changes.
Network Interface Name INTERNET ADDRESS (dotted decimal) Network MASK (hexadecimal or dotted decimal) Current STATE Use Address Resolution Protocol (ARP)? Enable Hardware LOOPBACK Mode? BROADCAST ADDRESS (dotted decimal) Confine BROADCAST to LOCAL Token-Ring?
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
[Entry Fields] tr0 [10.3.3.195] [255.255.255.0] up yes no [] no
+ + + +
F4=List Esc+8=Image
The NTP client configuration file /etc/ntp.conf has to be changed to talk to the NTP server at the IP address of the adm interface of the first node (that is 10.4.4.193): # cat > /etc/ntp.conf server 10.4.4.193 driftfile /etc/ntp.drift tracefile /etc/ntp.trace CTRL-D #
Reboot now with # shutdown -Fr. After reboot, check if your changes worked as expected with uname -a and ifconfig -a. # uname -a AIX fw4 3 4 000126995C00 # ifconfig -a lo0: flags=e08084b inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255 inet6 ::1/0 tr0: flags=e0a0043 inet 10.3.3.195 netmask 0xffffff00 broadcast 10.3.3.255
200
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
tr1: flags=e0a0043 inet 10.4.4.195 netmask 0xffffff00 broadcast 10.4.4.255 tr2: flags=e0a0043 inet 10.2.2.195 netmask 0xffffff00 broadcast 10.2.2.255 tr3: flags=e0a0043 inet 9.3.187.195 netmask 0xffffff80 broadcast 9.3.187.255 #
After you are confident that there is no more conflict between the IP addresses of fw3 and fw4, power on fw3. To be able to better distinguish between the two firewalls, extend ~/.profile to include hostname and current directory on both firewalls. On both fw3 and fw4, do the following: # cat >> ~/.profile HOSTNAME=`uname -n` export PS1=$HOSTNAME:$PWD# CTRL-D #
If you log out with exit and log in again, your prompt should look like this: On fw3: fw3:/# On fw4: fw4:/# Check with ping whether all IP addresses are reachable on both firewalls. Be sure to do this. Typically, about half of all problems you will have are on the hardware network layer or related to routing. Do the following: fw3:/# ping-o; ping-3; ping-4 pinging from fw3: internetpc ok | web ok | gui ok | intranet_client ok | done. pinging from fw3: fw3_adm_boot ok | fw3_out_boot ok | fw3_dmz_boot ok | fw3_int_boot ok | done. pinging from fw3: fw4_adm_boot ok | fw4_out_boot ok | fw4_dmz_boot ok | fw4_int_boot ok | done. fw4:/# ping-o; ping-3; ping-4 pinging from fw4: internetpc ok | web ok | gui ok | intranet_client ok | done. pinging from fw4: fw3_adm_boot ok | fw3_out_boot ok | fw3_dmz_boot ok | fw3_int_boot ok | done. pinging from fw4: fw4_adm_boot ok | fw4_out_boot ok | fw4_dmz_boot ok |
Chapter 3. High availability for VPN-1/FireWall-1
201
fw4_int_boot ok | done. fw4:/#
You need to test if the serial port that you configured for HACMP works. (You need to have a null modem serial cable installed between the serial ports of the two nodes if you want to use them for HACMP.) Execute # stty < /dev/tty1 on both machines at the same time. The serial configuration is displayed if the connection works, as shown below: fw3:/# stty < /dev/tty0 speed 9600 baud; -parity hupcl eol2 = ^? brkint -inpck -istrip icrnl -ixany ixoff onlcr tab3 echo echoe echok fw3:/# fw4:/# stty < /dev/tty0 speed 9600 baud; -parity hupcl eol2 = ^? brkint -inpck -istrip icrnl -ixany ixoff onlcr tab3 echo echoe echok fw4:/#
Test rsh connectivity by trying to execute simple commands on each HACMP node: fw4:/# rsh fw3_adm uname -a AIX fw3 3 4 000011755C00 fw4:/# rsh fw3_adm rsh fw4_adm uname -a AIX fw4 3 4 000126995C00 fw4:/#
3.7 Testing HACMP without VPN-1/FireWall-1 In this section, we look into whether HACMP works before starting VPN-1/FireWall-1. The following sections describe the procedures to test HACMP. Be sure to stop VPN-1/FireWall-1. The procedures to test HACMP with VPN-1/FireWall-1 is described in Section 3.8.4, “Testing VPN-1/FireWall-1 HA with HACMP” on page 222. Before testing HACMP, it is important to synchronize HACMP configuration between the two nodes. After this is complete, start HACMP and then manually disconnect one of the network cable sand see whether HACMP works properly.
202
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
3.7.1 Synchronize HACMP configuration Before starting HACMP for the first time, you should synchronize your HACMP ODM database where all the configuration information is kept. Don’t forget to always synchronize both resources and topology. Complete the following steps: 1. Execute: fw4:/# smitty hacmp 2. Choose Cluster Configuration. 3. Choose Cluster Topology. 4. Choose Synchronize Cluster Topology. 5. Press Enter twice to start.
Synchronize Cluster Topology Type or select values in entry fields. Press Enter AFTER making all desired changes. [TOP] Ignore Cluster Verification Errors? Emulate or Actual? Skip Cluster Verification?
[Entry Fields] [No] [Actual] [No] +
+ +
Note: Only the local node's default configuration files keep the changes you make for topology DARE emulation. Once you run your emulation, to restore the original configuration rather than running an actual DARE, run the SMIT command, "Restore System Default Configuration from Active Configuration." We recommend that you make a snapshot before [MORE...9] F1=Help
F2=Refresh
F3=Cancel
F4=List
Next, synchronize the cluster resource: 1. Press F3 three times to get back to Cluster Configuration. 2. Choose Cluster Resources. 3. Choose Synchronize Cluster Resources. 4. Press Enter twice and exit smitty with F10 after success.
Chapter 3. High availability for VPN-1/FireWall-1
203
Synchronize Cluster Resources Type or select values in entry fields. Press Enter AFTER making all desired changes. [TOP] Ignore Cluster Verification Errors? Un/Configure Cluster Resources? * Emulate or Actual? Skip Cluster Verification?
[Entry Fields] [No] [Yes] [Actual] [No] +
Note: Only the local node's default configuration files keep the changes you make for resource DARE emulation. Once you run your emulation, to restore the original configuration rather than running an actual DARE, run the SMIT command, "Restore System Default Configuration from Active Configuration." We recommend that you make a snapshot before [MORE...2] F1=Help Esc+5=Reset
F2=Refresh Esc+6=Command
F3=Cancel Esc+7=Edit
F4=List Esc+8=Image
3.7.2 Start HACMP Next, start HACMP: 1. Execute: # smitty hacmp 2. Choose Cluster Services. 3. Choose Start Cluster Services. 4. Change Startup Cluster Information Daemon? to true. 5. Press Enter to start HACMP. 6. Exit with F10 after a successful start.
204
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
+ + +
Start Cluster Services Type or select values in entry fields. Press Enter AFTER making all desired changes.
Start now, on system restart or both
[Entry Fields] now
+
BROADCAST message at startup? Startup Cluster Lock Services? Startup Cluster Information Daemon?
true false true
+ + +
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
F4=List Esc+8=Image
Now, check if HACMP is running with: lssrc -g cluster fw4:/# lssrc -g cluster Subsystem Group clstrmgrES cluster clsmuxpdES cluster clinfoES cluster fw4:/#
PID 7830 8786 8014
Status active active active
Check the log file of the cluster manager /tmp/cm.log. It has all the HACMP events that have been started and completed. fw4:/# Aug 30 Aug 30 Aug 30 Aug 30 Aug 30 Aug 30 Aug 30 Aug 30 Aug 30 Aug 30 fw4:/#
tail /usr/es/acm/cluster.log 16:20:01 EVENT START: get_disk_vg_fs 16:20:02 EVENT COMPLETED: get_disk_vg_fs 16:20:02 EVENT COMPLETED: node_up_local 16:20:03 EVENT COMPLETED: node_up fw4 16:20:03 EVENT START: node_up_complete fw4 16:20:04 EVENT START: node_up_local_complete 16:20:05 EVENT START: start_server fwone_as 16:20:07 EVENT COMPLETED: start_server fwone_as 16:20:07 EVENT COMPLETED: node_up_local_complete 16:20:08 EVENT COMPLETED: node_up_complete fw4
Next, check the HACMP log file /tmp/hacmp.out. It is much more verbose then /usr/es/adm/cluster.log. It has all the output of the HACMP shell scripts that were executed.
Chapter 3. High availability for VPN-1/FireWall-1
205
fw4:/# tail /tmp/hacmp.out + [ 0 -ne 0 ] + exit 0 Apr 12 16:20:08 EVENT COMPLETED: node_up_complete fw4 0513-059 The xntpd Subsystem has been started. Subsystem PID is 6152. fw4:/#
You can check the state of the cluster by: fw4:/# /usr/es/sbin/cluster/clstat
clstat - HACMP for AIX Cluster Status Monitor --------------------------------------------Cluster: fwone (2) Mon Apr 12 16:26:08 CDT 1999 State: UP Nodes: 2 SubState: STABLE Node: fw3 State: DOWN Interface: fw3_dmz_boot (0) Address: 10.3.3.193 State: DOWN Interface: fw3_int_boot (1) Address: 9.3.187.193 State: DOWN Interface: fw3_out_boot (2) Address: 10.2.2.193 State: DOWN Interface: fw3_tty1 (3) Address: 0.0.0.0 State: DOWN Node: fw4 State: UP Interface: fw_dmz (0) Interface: fw_int (1)
Address: 10.3.3.192 State: UP Address: 9.3.187.192
************************ f/forward, b/back, r/refresh, q/quit *****************f
Press f to see the second page of clinfo and q to exit it.
206
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
clstat - HACMP for AIX Cluster Status Monitor --------------------------------------------Cluster: fwone (2) Mon Apr 12 16:26:39 CDT 1999 State: UP Nodes: 2 SubState: STABLE State: UP Interface: fw_out (2) Address: 10.2.2.192 State: UP Interface: fw4_tty1 (3) Address: 0.0.0.0 State: UP
************************ f/forward, b/back, r/refresh, q/quit *****************
The following scripts can be used to make it easier to start and stop HACMP. They act the same as the SMIT menus do: • /usr/local/bin/hacmp-start: Start HACMP with Cluster Information Daemon. • /usr/local/bin/hacmp-stop-f: Forced HACMP stop. • /usr/local/bin/hacmp-stop-g: Graceful HACMP stop. • /usr/local/bin/hacmp-stop-t: Graceful HACMP stop with takeover. The shell script /usr/local/bin/getstate, included in Part 3.5.2.4, “getstate” on page 182, shows you the state of HACMP, VPN-1/FireWall-1, and ipforwarding on both firewalls. It also shows the network interface configuration and tests connectivity with ping. It also tells you about the cluster manager log file.
Chapter 3. High availability for VPN-1/FireWall-1
207
fw4:/# getstate ******************* fw3_adm: HACMP is NOT running !!! ********************** VPN-1 & FireWall-1 is not running !!! ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.193 3998 0 2547 0 0 tr1 1492 10.4.4 10.4.4.193 1256 0 378 0 0 tr2 1492 10.2.2 10.2.2.193 2891 0 554 0 0 tr3 1492 9.3.187.128 9.3.187.193 5829 0 1991 5 0 pinging from fw3: internetpc ok | web ok | gui ok | intranet_client ok | done. ******************* fw4_adm: HACMP is active last cluster.log: Aug 31 12:02:16 fw4 clinfo[17986]: send_snmp_req: Messages in queue go 1 ********************** VPN-1 & FireWall-1 is not running !!! ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.192 3735 0 3121 0 0 tr1 1492 10.4.4 10.4.4.195 494 0 299 0 0 tr2 1492 10.2.2 10.2.2.192 2236 0 2461 0 0 tr2 1492 10 10.2.2.195 2236 0 2461 0 0 tr3 1492 9.3.187.128 9.3.187.192 2219 0 1565 11 0 pinging from fw4: internetpc ok | web ok | gui ok | intranet_client ok | done. Do you want to "tail -f /usr/es/adm/cluster.log" [y]/n? n fw4:/#
3.7.3 Prepare test environment To test long FTPs, you need a big file on the ftp server running on web. For example, use dd to create a 100 MB file called /usr/local/zero on web. You may need to increase the filesystem with # smitty chfs. web# dd if=/dev/zero of=/usr/local/zero bs=1000000 count=100
If you did not change any of the routing paths of the other systems (they should point to the IP addresses of fw3), you should be able to ping and ftp from internetpc (and from intranet_client) to web without any problems. Note the time it takes to download the 100 MB file. If there are problems, check routing. IP forwarding on fw3 must be on.
208
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
d:\>ping 10.3.3.3 Pinging 10.3.3.3 with 32 bytes of data: Reply Reply Reply Reply
from from from from
10.3.3.3: 10.3.3.3: 10.3.3.3: 10.3.3.3:
bytes=32 bytes=32 bytes=32 bytes=32
time<10ms time<10ms time<10ms time<10ms
TTL=254 TTL=254 TTL=254 TTL=254
d:\>ftp 10.3.3.3 Connected to 10.3.3.3. 2220 web Microsoft FTP Service (Version 3.0).. User (10.3.3.3:(none)): root 331 Password required for root. Password: 230 User root logged in. ftp> cd /usr/local 250 CWD command successful. ftp> get zero 200 PORT command successful. 150 Opening data connection for zero (100000000 bytes). 226 Transfer complete. 100000000 bytes received in 160.84 seconds (621.72 Kbytes/sec) ftp> quit 221 Goodbye.
After your test is permanently successful, change the default route of every system (except those of the firewall systems) to point to the HACMP service addresses (that is, x.x.x.192). This is an important step. Reboot all systems and check with # netstat -nr if the new routing settings are still there. Verifying this makes it easier to debug problems later.
3.7.4 Test the takeover scenario Execute /usr/local/bin/start-hacmp on both firewalls but don’t start any VPN-1/FireWall-1 software. We started HACMP on fw4 first and then on fw3. Note on Lost Connections
Remember that any connection through the boot addresses will be lost when takeover takes place. The boot addresses are swapped with the service addresses by HACMP. One exception is the adm interface because it does not belong to the HACMP resources in our example. The other exception is the external network interface (out) if you add an IP alias to it in the /usr/local/bin/active-start shell script as shown in Section 3.5.1.1, “active-start” on page 178.
Chapter 3. High availability for VPN-1/FireWall-1
209
You can use netstat -in, ifconfig -a and netstat -nr to check the network configuration of the firewalls. Look into whether the standby system has acquired all the service addresses. Otherwise, you can use getstate to get the following output.
fw4:/# getstate ******************* fw3_adm: HACMP is active last cluster.log: Aug 31 14:10:54 fw3 clinfo[14730]: send_snmp_req: Messages in queue go 1 ********************** VPN-1 & FireWall-1 is not running !!! ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.193 56506 0 28573 0 0 tr1 1492 10.4.4 10.4.4.193 1757 0 572 0 0 tr2 1492 10.2.2 10.2.2.193 29788 0 52082 0 0 tr3 1492 9.3.187.128 9.3.187.193 7704 0 2844 5 0 pinging from fw3: internetpc ok | web ok | gui ok | intranet_client ok | done. ******************* fw4_adm: HACMP is active last cluster.log: Aug 31 14:10:33 fw4 clinfo[17232]: send_snmp_req: Messages in queue go 1 ********************** VPN-1 & FireWall-1 is not running !!! ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.192 5718 0 4720 0 0 tr1 1492 10.4.4 10.4.4.195 897 0 503 0 0 tr2 1492 10.2.2 10.2.2.192 4280 0 4528 0 0 tr2 1492 10 10.2.2.195 4280 0 4528 0 0 tr3 1492 9.3.187.128 9.3.187.192 4105 0 3095 11 0 pinging from fw4: internetpc ok | web ok | gui ok | intranet_client ok | done. Do you want to "tail -f /usr/es/adm/cluster.log" [y]/n? n fw4:/#
Use netstat -nr to check the routing on internetpc. The default route of internetpc must point to the external service IP address (10.2.2.192). Your output will look similar to the output on the following screen.
210
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
d:\>netstat -nr Route Table Active Routes: =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...00 06 29 5f 74 f6 ...... IBMTOK1 IBM Turbo 16/4 Token-Ring ISA Adapter =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 10.2.2.192 10.2.2.2 1 10.2.2.0 255.255.255.0 10.2.2.2 10.2.2.2 1 10.2.2.2 255.255.255.255 127.0.0.1 127.0.0.1 1 10.255.255.255 255.255.255.255 10.2.2.2 10.2.2.2 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 224.0.0.0 10.2.2.2 10.2.2.2 1 255.255.255.255 255.255.255.255 10.2.2.2 10.2.2.2 1 =========================================================================== Route Table Active Connections Proto TCP TCP TCP TCP d:\>
Local Address 127.0.0.1:1026 127.0.0.1:1028 127.0.0.1:1039 127.0.0.1:1040
Foreign Address 127.0.0.1:1028 127.0.0.1:1026 127.0.0.1:1040 127.0.0.1:1039
State ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED
Ping to web (10.3.3.3) from internetpc, then open a DOS full screen session (to get highest ftp throughput). ftp to web (10.3.3.3) from internetpc. Within ftp, use the hash command to make the data transfer speed visible. Use get to transfer the big zero file, and write down the time it took.
Chapter 3. High availability for VPN-1/FireWall-1
211
d:\>ftp 10.3.3.3 Connected to 10.3.3.3. 220 web Microsoft FTP Service (Version 3.0).. User (10.3.3.3:(none)): root 331 Password required for root. Password: 230 User root logged in. ftp> cd /usr/local 250 CWD command successful. ftp> hash Hash mark printing On (2048 bytes/hash mark). ftp> get zero 200 PORT command successful. 150 Opening data connection for zero (100000000 bytes). ################################################################################ ################################################################################ ################################################################################ [...] ################################################################################ ################################################################################ ################################################################################ ########################################################## 226 Transfer complete. 100000000 bytes received in 143.64 seconds (696.18 Kbytes/sec) ftp>
Upon completion, reinitiate the get command. Once the data begins to get transferred, disconnect the network cable that connects the active firewall to the internetpc from the hub. Your ftp transfer session will be suspended. After a while, you will see messages like this: Broadcast message from root@fw4 (tty) at 18:00:41 ... This node (fw4) is going down now!
This is expected, because as soon as you disconnect a network cable, HACMP issues an event called network_down that becomes network_down_complete at the end. You defined a post event script for it (/usr/local/bin/network_down) that issues these messages and stops the failing firewall quite abruptly with a halt -q. fw4 will completely stop and might even power itself down if its hardware supports soft power off. Take a look at the /usr/es/adm/cluster.log file on the other node (for example, fw3). This is the commented output of /usr/es/adm/cluster.log on fw3 when we pulled the plug on the fw4_out_boot network interface:
212
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Aug 31 17:36:49 EVENT COMPLETED: node_up_complete fw3
The above output is the last line of HACMP starting on fw3. Twenty-four minutes later the out network on fw4 goes down: pr_ifsstate: Setting state of DOWN shared adapter to UP. Aug 31 18:00:38 EVENT START: network_down fw4 out Aug 31 18:00:39 EVENT COMPLETED: network_down fw4 out Aug 31 18:00:40 EVENT START: network_down_complete fw4 out Aug 31 18:00:41 EVENT COMPLETED: network_down_complete fw4 out
Then nothing happens for more than 20 seconds while fw3 waits for fw4 to respond to heartbeats. Eventually, fw3 gives up on fw4 and takes over: *** ADDN fw4 /dev/tty1 (noHb1529) *** *** ADDN fw4 9.3.187.192 (noHb3706) *** *** ADDN fw4 10.3.3.192 (noHb3717) *** giving up on message (2 0 2 1 3 16779424) NEW EVENT to fw4 (no retries - ) Aug 31 18:01:07 EVENT START: node_down fw4 Aug 31 18:01:09 EVENT START: node_down_remote fw4
fw3 begins to take over the service addresses: Aug *** *** Aug Aug Aug *** *** Aug Aug *** *** Aug Aug Aug
31 18:01:10 EVENT START: acquire_service_addr fw_dmz fw_out fw_int ADUP fw3 10.3.3.192 (poll) *** ADDN fw3 10.3.3.193 (poll) *** 31 18:01:16 EVENT START: acquire_aconn_service tr0 dmz 31 18:01:17 EVENT COMPLETED: acquire_aconn_service tr0 dmz 31 18:01:17 EVENT COMPLETED: acquire_aconn_service tr0 dmz ADUP fw3 10.2.2.192 (poll) *** ADDN fw3 10.2.2.193 (poll) *** 31 18:01:23 EVENT START: acquire_aconn_service tr2 out 31 18:01:23 EVENT COMPLETED: acquire_aconn_service tr2 out ADUP fw3 9.3.187.192 (poll) *** ADDN fw3 9.3.187.193 (poll) *** 31 18:01:28 EVENT START: acquire_aconn_service tr3 int 31 18:01:29 EVENT COMPLETED: acquire_aconn_service tr3 int 31 18:01:41 EVENT COMPLETED: acquire_service_addr fw_dmz fw_out fw_int
Although we do not share disks, HACMP goes through the routine of getting the defined volume groups and filesystems (in our case none): Aug Aug Aug Aug Aug Aug
31 31 31 31 31 31
18:01:41 18:01:42 18:01:42 18:01:43 18:01:44 18:01:45
EVENT EVENT EVENT EVENT EVENT EVENT
START: get_disk_vg_fs COMPLETED: get_disk_vg_fs COMPLETED: node_down_remote fw4 COMPLETED: node_down fw4 START: node_down_complete fw4 START: node_down_remote_complete fw4
Chapter 3. High availability for VPN-1/FireWall-1
213
After fw4 is down for good, the application server is started (that script /usr/local/bin/active-start gets executed now): Aug Aug Aug Aug
31 31 31 31
18:01:46 18:01:47 18:01:48 18:01:48
EVENT EVENT EVENT EVENT
START: start_server fwone_as COMPLETED: start_server fwone_as COMPLETED: node_down_remote_complete fw4 COMPLETED: node_down_complete fw4
After a while, the ftp session resumes. Let it finish and compare the time to the first one you took. Plug in all the network cables, power cycle the formerly active firewall (fw4), and start HACMP on it. You should now repeat the experiment with the other active firewall to see if that makes any difference (it should not).
3.8 Configuring VPN-1/FireWall-1 for HACMP This section describes the configuration of VPN-1/FireWall-1 for HACMP.
3.8.1 Command line configuration For our setup to work, you need to create a /usr/lpp/CPfw1-41/conf/masters configuration file on fw4 and a /usr/lpp/CPfw1-41/conf/clients file on fw3. The masters file consists of a list of IP addresses of management servers, one per line. If the IP address is preceded by a plus (+) character, the management server gets a copy of the logs. Look for "Redirecting Logging to Another Master" in the VPN-1/FireWall-1 Architecture and Administration User Guide for more details. Do the following on fw3: fw3:/# cat > /usr/lpp/CPfw1-41/conf/clients 10.4.4.195 CTRL-D
Do the following on fw4: fw4:/# cat > /usr/lpp/CPfw1-41/conf/masters +10.4.4.193 +127.0.0.1 CTRL-D
The reasons for having such an asymmetric VPN-1/FireWall-1 management relationship are explained in Section 3.1.4, “Our HA design” on page 151. The problem is that as soon as there is a line beginning with + in the .../conf/masters file, the management daemon stops logging the lines it receives from remote modules.
214
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Use # df -k to check free disk space and # smitty chfs to increase space for example, on the /usr filesystem, because all VPN-1/FireWall-1 log files are stored there in /usr/lpp/CPfw1-41/log/. To be able to establish secure communication, VPN-1/FireWall-1 requires you to manually synchronize passwords with the command # fw putkey on both firewalls. On fw3: fw3:/# fw putkey -p mypassword 10.2.2.193 10.2.2.195 fw3:/# fw putkey -p mypassword 10.4.4.193 10.4.4.195
On fw4: fw4:/# fw putkey -p mypassword 10.2.2.193 10.2.2.195 fw4:/# fw putkey -p mypassword 10.4.4.193 10.4.4.195
For VPN-1/FireWall-1 to work correctly, you need to change your /etc/rc.local to include the IP address alias your license is bound to and start VPN-1/FireWall-1 and the NTP daemon in client configuration.
fw3:/# cd /etc fw3:/etc# cat rc.local /usr/sbin/no -o ipforwarding=1 /usr/sbin/no -a | grep ipforwarding # start ntp daemon as client startsrc -s xntpd fw3:/etc# cat rc.local.old /usr/sbin/ifconfig lo0 alias 10.1.1.1 /usr/local/bin/start-fw1 arp -s 802.5 10.2.2.3 00:04:AC:61:9D:C3 pub route add 10.2.2.3 10.3.3.3 arp -s 802.5 10.2.2.9 00:04:AC:61:9D:C3 pub fw3:/etc# cat > rc.local /usr/sbin/ifconfig lo0 alias 10.1.1.1 /usr/local/bin/start-fw1 # start ntp daemon as client startsrc -s xntpd CTRL-D fw3:/etc#
Note that we had one evaluation license that we used on both gateways. Even in a highly available firewall environment, it is illegal to buy only one VPN-1/FireWall-1 license and use it for two firewalls. Only in a test environment as we have here, would this be considered acceptable. Since the file should be the same on both firewalls, you can use the /usr/local/bin/clonediff script to copy rc.local to the other node. If the files are not identical on both firewalls, clonediff shows you what was deleted (<) and
Chapter 3. High availability for VPN-1/FireWall-1
215
added (>) to the file that you want to transfer. It also shows you the ls -l output of the file with date and size and asks you if you really want to overwrite it.
fw3:/etc# clonediff rc.local 1,2c1,2 < /usr/sbin/no -o ipforwarding=1 < /usr/sbin/no -a | grep ipforwarding --> /usr/sbin/ifconfig lo0 alias 10.1.1.1 > /usr/local/bin/start-fw1 -rwxr-xr-x 1 root system 110 Aug 31 10:25 fw3:/etc/rc.local -rwxr-xr-x 1 root system 114 Aug 31 10:27 fw4_adm:/etc/rc.local fw3:/etc/rc.local -> fw4_adm:/etc/rc.local ? y fw3:/etc# fw3:/etc# clonediff rc.local The files (/etc/rc.local) are identical. fw3:/etc#
Stop HACMP on both firewalls with /usr/local/bin/stop-hacmp-g. Start VPN-1/FireWall-1 on both firewalls by executing /etc/rc.local (you need the IP interface alias to be activated for the VPN-1/FireWall-1 license). If you try to use getstate, it will give you errors because fw3 and fw4 cannot talk to each other, and fw4 cannot talk to anyone because that was not specified in the VPN-1/FireWall-1 Security Policy. To get rid of the currently active security policy, unload the policy on both firewalls (all untrusted networks should be disconnected as this will disable your security policy): fw3:/# fw unload localhost Uninstalling Security Policy from all.all@fw3 Done. fw3:/# fw4:/# fw unload localhost Uninstalling Security Policy from all.all@fw4 Done. fw4:/#
Then, check the status with getstate. HACMP should be inactive and VPN-1/FireWall-1 should be active. It should look similar to the following.
216
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
fw3:/# getstate ******************* fw3_adm: HACMP is NOT running !!! ********************** VPN-1 & FireWall-1 is active. ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.193 98285 0 52979 0 0 tr1 1492 10.4.4 10.4.4.193 3671 0 1584 0 0 tr2 1492 10.2.2 10.2.2.193 51808 0 91817 1106 0 tr3 1492 9.3.187.128 9.3.187.193 16575 0 11129 5 0 pinging from fw3: internetpc ok | web ok | gui ok | intranet_client ok | done. ******************* fw4_adm: HACMP is NOT running !!! ********************** VPN-1 & FireWall-1 is active. ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.195 6886 0 6445 0 0 tr1 1492 10.4.4 10.4.4.195 1122 0 369 0 0 tr2 1492 10.2.2 10.2.2.195 5032 0 4898 0 0 tr3 1492 9.3.187.128 9.3.187.195 6311 0 5883 0 0 pinging from fw4: internetpc ok | web ok | gui ok | intranet_client ok | done. Do you want to "tail -f /usr/es/adm/cluster.log" [y]/n? n fw3:/#
Note that getstate does not tell you what VPN-1/FireWall-1 Security Policy is active. For that, use # fw stat. getstate also does not tell you if all VPN-1/FireWall-1 daemons are running. Use # ps -ef for that. The following is the output when the policy is unloaded (-) but the firewall daemons are active.
Chapter 3. High availability for VPN-1/FireWall-1
217
fw3:/# fw stat HOST POLICY DATE localhost tr3
:
TTY lft0 0 0 -
>tr0
TIME 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:01 0:01 0:00 0:00 0:02 0:02 0:00
>tr1
>tr2
CMD /etc/init /usr/sbin/syncd 60 /usr/sbin/srcmstr /usr/lib/errdemon /usr/sbin/cron /usr/sbin/portmap /usr/sbin/syslogd /usr/sbin/inetd /usr/sbin/getty /dev/console /usr/lpp/diagnostics/bin/diagd -ksh isakmpd /usr/sbin/xntpd ps -ef fwd +127.0.0.1 +10.2.2.195 mdq fwm
3.8.2 GUI configuration One of the two firewalls needs to be the primary management station. We chose fw3 as the primary management station. Connect to the primary management station with the VPN-1/FireWall-1 GUI Security Policy Editor. Save the Security Policy to a new file (for example, ha). Create a workstation type network object for fw4: 1. On the menu bar, select Manage -> Network Objects.... 2. Select New -> Workstation. 3. Type in the hostname of the firewall ( fw4) in the Name field of the pop-up box. Click the Get address button. The external IP address of the firewall should automatically appear in the IP Address field. 4. Click VPN-1/FireWall-1 installed to activate the check box. 5. Change type from Host to Gateway. 6. Click the Interfaces tab. 7. Click the Get button to retrieve the interface configuration by fw1-snmp. 8. Click the Authentication tab. 9. Enable VPN-1/FireWall-1 Password. Click OK.
218
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Take a look at the icon for fw4. It should look the same as that for fw3. Now, you have to change all the rules that include fw3. Change these rules by adding fw4 in the same way as fw3 was added. Check if the Action of the rule that allows any to ftp to web is Accept. In addition to that, you need to add a rule at the top that allows fw3 and fw4 to connect with any service to each other. Complete the following steps: 1. Add both fw3 and fw4 as Source and also as Destination. 2. Change Action to Accept. 3. Change Track to Long. Figure 78 shows what our ruleset looked like after the changes.
Figure 78. The VPN-1/FireWall-1 HA ruleset for ftp test
Now, install that new security policy to both firewalls: 1. Select Policy -> Install....
Chapter 3. High availability for VPN-1/FireWall-1
219
2. You will get both firewalls as install targets, as shown in Figure 79. Click OK.
Figure 79. Both firewalls are install targets
3. You will get a warning that you have not configured IP spoofing (on the fw4 object) yet. You have to do that later, but it is easy, just use the same groups and configuration as for fw3. Click OK for now. 4. The policy is installed on both gateways, as shown in Figure 80. If you get errors ( Authentication for command load failed ... Unauthorized action), something went wrong with the masters file or with the fw putkey commands.
Figure 80. The security policy is installed on both firewalls
220
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
3.8.3 VPN-1/FireWall-1 state table synchronization The next step is to configure the VPN-1/FireWall-1 state table synchronization. It is recommended to read the few pages that describe about the concept in the "Active Network Management" chapter of the VPN-1/FireWall-1 Architecture and Administration User Guide. VPN-1/FireWall-1 keeps information about accepted connections in so-called state tables. For example, if you do an FTP file transfer between a FTP client and a FTP server, a data connection will be opened on a non-predictable port that is dynamically chosen. The information on which port will be used is communicated in a PORT command between the FTP server and the FTP client. VPN-1/FireWall-1 looks for these PORT commands and saves the information of which port is being used in the state tables so that the access to this specific port is granted but not to any other port in the range of possible choices since a stateless packet filter would have to allow because it would not recognize and remember the PORT command. For this reason, to make FTP transfers (also client authentication and many other things) continue to work after takeover, the state tables need to be synchronized. Complete the following steps: 1. Create the necessary VPN-1/FireWall-1 configuration file /usr/lpp/CPfw1-41/conf/sync.conf on both firewalls. You should enter each unique and permanent adm network IP address because VPN-1/FireWall-1 synchronizes its state many times a second and generates a lot of traffic on the network that is being used. fw3:/# cat > /usr/lpp/CPfw1-41/conf/sync.conf 10.4.4.195 CTRL-D fw3:/# fw3:/# rsh fw4_adm 'cat > /usr/lpp/CPfw1-41/conf/sync.conf' 10.4.4.193 CTRL-D fw3:/#
2. Restart VPN-1/FireWall-1 on fw3: fw3:/# stop-fw1 ipforwarding = 0 Uninstalling Security Policy from all.all@fw3 Done. fw3:/# start-fw1 FireWall-1: Starting fwd FireWall-1: Starting fwm (Remote Management Server) fwm: FireWall-1 Management Server is running
Chapter 3. High availability for VPN-1/FireWall-1
221
FireWall-1: Fetching Security Policy from localhost Trying to fetch Security Policy from localhost: Installing Security Policy ha on all.all@fw3 Fetching Security Policy from localhost succeeded FireWall-1 started ipforwarding = 1 fw3:/#
3. Restart VPN-1/FireWall-1 on fw4: fw4:/# stop-fw1 ipforwarding = 0 fwm: Firewall-1 Management Server going to die on sig 15 Uninstalling Security Policy from all.all@fw4 Done. fw4:/# start-fw1 FireWall-1: Starting fwd FireWall-1: Starting fwm (Remote Management Server) fwm: FireWall-1 Management Server is running FireWall-1: Fetching Security Policy from +10.4.4.193 +127.0.0.1 localhost Trying to fetch Security Policy from 10.4.4.193: Installing Security Policy ha on all.all@fw4 Fetching Security Policy from 10.4.4.193 succeeded FireWall-1 started ipforwarding = 1 fw4:/#
After you restart VPN-1/FireWall-1 on fw4, it loads the security policy from the management station on fw3 (Refer to the above message Trying to fetch Security Policy from 10.4.4.193) because you configured it to do so in the conf/masters file. 4. To check if the state tables are synchronized, execute this command on both firewalls at the same time: # fw tab -table connections
Compare the output. It should be identical.
3.8.4 Testing VPN-1/FireWall-1 HA with HACMP Now, let us test VPN-1/FireWall-1 with HACMP. This is what you need to do: 1. Execute start-hacmp on fw4. Because we start HACMP on fw4 first, it gets the service addresses. After getting them, it starts the application server
222
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
fwone_as you defined in the HACMP configuration. This means that the script /usr/local/bin/active-start gets executed. Please refer to Section 3.5.1.1, “active-start” on page 178. 2. Then, issue start-hacmp on fw3. 3. After about a minute, the getstate output should look similar to the output below.
fw3:/# getstate ******************* fw3_adm: HACMP is active last cm.log: Aug 31 10:19:19 EVENT COMPLETED: node_up_complete fw3 **************************** VPN-1/FireWall-1 is active. ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.193 204 0 182 0 0 tr1 1492 10.4.4 10.4.4.193 2276 0 1979 0 0 tr2 1492 10.2.2 10.2.2.193 1531 0 1025 0 0 tr3 1492 9.3.187.128 9.3.187.193 6136 0 167 0 0 pinging from fw3: internetpc ok | web ok | gui ok | intranet_client ok | done. ******************* fw4_adm: HACMP is active last cm.log: Aug 31 10:19:19 EVENT COMPLETED: node_up_complete fw3 **************************** VPN-1/FireWall-1 is active. ipforwarding = 1 Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll tr0 1492 10.3.3 10.3.3.192 244 0 235 0 0 tr1 1492 10.4.4 10.4.4.195 1693 0 1951 0 0 tr2 1492 10.2.2 10.2.2.192 1226 0 1323 0 0 tr3 1492 9.3.187.128 9.3.187.192 3489 0 186 0 0 pinging from fw4: internetpc ok | web ok | gui ok | intranet_client ok | done. Do you want to "tail -f /usr/es/adm/cluster.log" [y]/n? n fw3:/#
4. ftp from internetpc to web. Activate hash mark printing. Next, get the zero file and write down the amount of time the transfer took. 5. Repeat the FTP process and disconnect the cable that belongs to fw4 from the out hub in the middle of the file transfer. The download should hang for some time and then continue. Look at the difference in transfer times. This kind of takeover took about 90 seconds in our setup. If you pull out the cable in the int network hub (instead of out network hub), the takeover time is much smaller (we measured approximately 45 seconds) since the file transfer continues while the system goes down over its network failure. When we simply powered off fw4, the takeover took about 40 seconds.
Chapter 3. High availability for VPN-1/FireWall-1
223
Note
In our particular scenarios, we had intermittent success with the resumption of the ftp after the transfer from one firewall to the other. We tried with an NT server serving up the zero file - this did not resume once. When we tried with an AIX server serving up the zero file, the resumption of the ftp occured about every other time. We observed in the firewall log viewer that neither the ftp server or client issued any form of retry to reinitiate the transfer. We felt quite comfortable that the firewalls maintained the state of the ftp session over the transfer, and it was the ftp server and client that were at fault. Further investigation with a network analyzer would shed more light on this. 6. Plug in the disconnected network cables and power cycle fw4. 7. Execute start-hacmp on fw4 again. 8. To return the service addresses to fw4, you have to execute /usr/local/bin/stop-hacmp-t (to stop HACMP with takeover) on fw3, and when that is done, you can start-hacmp on fw3 again. 9. You might want to start HACMP automatically in /etc/rc.local: fw4:/# echo "/usr/es/sbin/cluster/etc/rc.cluster -boot '-N' '-b' '-i'" >>/etc/rc.local fw4:/# clonediff /etc/rc.local 4a5 > /usr/sbin/es/cluster/etc/rc.cluster -boot '-N' '-b' '-i' -rwxr-xr-x 1 root system 165 Apr 19 16:41 fw4:/etc/rc.local -rwxr-xr-x 1 root system 137 Apr 19 16:09 fw3_adm:/etc/rc.local fw4:/etc/rc.local -> fw3_adm:/etc/rc.local ? y fw4:/#
3.8.5 HACMP service IP addresses-VPN-1/FireWall-1 Security Policy If you take a look in your VPN-1/FireWall-1 Log Viewer, you will notice that there are IP packets from or to HACMP service IP addresses that get dropped. The reason for this is that the service IP addresses are not yet represented in the security policy. Therefore, HACMP Cluster Synchronization will not yet work if the HACMP service IP addresses are in use and the VPN-1/FireWall-1 policy, as described in Figure 78 on page 219, is active because access to the service IP addresses will not be allowed by the VPN-1/FireWall-1 software.
224
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
To get around these problems, you should create a workstation type network (Figure 81): 1. Use the Security Policy Editor to connect to the VPN-1/FireWall-1 management on fw3 (10.4.4.193). 2. From the menu bar, select Manage -> Network Objects.... 3. Select New -> Workstation. 4. Type fw_out in the Name: field of the pop-up box. Click the Get address button. The service IP address (10.2.2.192) should automatically appear in the IP Address: field. You can choose a distinctive color for service addresses if you want to. Do not click on VPN-1/FireWall-1 installed to activate the check box. Do not change Type: from Host to Gateway. Do not click the Interfaces tab. Click OK.
Figure 81. Creating a network object for the HACMP service IP address
5. Repeat this process to create network objects for the other service IP addresses: - fw_dmz (10.3.3.192) - fw_int (9.3.187.192) 6. Look at the icons of the service IP address network objects fw_out, fw_dmz, and fw_int. They should look different from those of fw3 and fw4 because they do not represent firewalls but IP addresses (see Figure 82 on page 226 for details).
Chapter 3. High availability for VPN-1/FireWall-1
225
Figure 82. The difference between service IP address objects and firewalls
Next, create a group called firewalls that includes all service IP network objects, fw3, and fw4 (see Figure 83 on page 227): 1. Select New -> Group.... 2. Enter firewalls as Name. 3. Double-click fw_dmz, fw_int, fw_out, fw3, and fw4 to add them to the group. 4. Change the group’s color if you want to. 5. Click OK.
226
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Figure 83. The network object group firewalls
Change all the rules that now include fw3 and fw4 to include firewalls instead. Figure 84 on page 228 shows what our ruleset looks like after that change.
Chapter 3. High availability for VPN-1/FireWall-1
227
Figure 84. The VPN-1/FireWall-1 ruleset for HACMP synchronization to work
Note
Even after changing the rules in the way specified above, you will have dropped IP packets in the log that are destined for broadcast or multicast addresses, for example, 224.0.0.1, 10.3.3.255, 9.3.187.255, and 10.2.2.255. They are not needed for operation, and you can create a rule that drops those packets without logging. The danger of having rules without logging is that you will not have all the information for debugging if something does not get logged because your drop rule was not specific enough and matches something you did not expect to match.
228
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
3.9 High availability issues with VPN-1/FireWall-1 This section describes high availability issues with VPN-1/FireWall-1. Note
The following steps from 3.9 and on have not been replicated and tested in this updated version. The origional text from the -00 version of this redbook has been kept. As for the inability of firewalls to maintain connections (VPN, authentication or otherwise) across failover, Check Point has made many advances in this area. The user Authentication worked fine across failover. The browser transparently reauthenticated the session. Check Point claims the persistence of these connections is handled and maintained in a much better manner. This is covered in Section 1.4, “What’s new in VPN-1/FireWall-1 V4.1 and SP1” on page 12 and Section 1.5, “What’s new in VPN-1/FireWall-1 V4.1 SP2” on page 20
3.9.1 Synchronizing VPN-1/FireWall-1 management You may have realized that, although the other VPN-1/FireWall-1 firewall modules are synchronized, the VPN-1/FireWall-1 management modules, and, therefore, the security policies on them, are not. To cure this problem, we created the script /usr/local/bin/diff_fw1 (see Section 3.5.4.4, “diff_fw1” on page 190) that copies all relevant files from the /usr/local/lpp/CPfw1-41 directory on the primary (fw3) to the secondary management station (fw4). After synchronizing these files, the VPN-1/FireWall-1 Management Daemon (FWM) needs to be restarted on fw4 because the diff_fw1 script kills the daemon before the files are copied. The files and directories that should not be copied are defined in the /usr/local/bin/diff_fw1.not file. You can try out /usr/local/bin/diff_fw1 now. This is what it looks like: fw4:/# diff_fw1 This script is going to try to copy the VPN-1/FireWall-1 configuration of fw3 to fw4 Generating checksums on fw3 Generating checksums on fw4 Generating diff of checksums These files are different:
Chapter 3. High availability for VPN-1/FireWall-1
229
/usr/lpp/CPfw1-41/conf/objects.C /usr/lpp/CPfw1-41/conf/rulebases.fws /usr/lpp/CPfw1-41/database/fwauth.NDB /usr/lpp/CPfw1-41/database/objects.C /usr/lpp/CPfw1-41/conf/fw.license /usr/lpp/CPfw1-41/conf/objects.C.bak /usr/lpp/CPfw1-41/database/opsec_authkeys.C /usr/lpp/CPfw1-41/conf/vpn.W Do you want to continue and copy them to fw4 ? [y]/n y Generating tar of different files on fw3 a /usr/lpp/CPfw1-41/conf/objects.C 69 blocks. a /usr/lpp/CPfw1-41/conf/rulebases.fws 55 blocks. a /usr/lpp/CPfw1-41/database/fwauth.NDB 41 blocks. a /usr/lpp/CPfw1-41/database/objects.C 70 blocks. a /usr/lpp/CPfw1-41/conf/fw.license 5 blocks. a /usr/lpp/CPfw1-41/conf/objects.C.bak 69 blocks. a /usr/lpp/CPfw1-41/database/opsec_authkeys.C 1 blocks. a /usr/lpp/CPfw1-41/conf/vpn.W 10 blocks. Killing FireWall-1 Management Daemon (fwm) on fw4 kill: 6486: 0403-003 The specified process does not exist. kill: 6486: 0403-003 The specified process does not exist. kill: 6486: 0403-003 The specified process does not exist. Extracting tar of different files on fw4 x /usr/lpp/CPfw1-41/conf/objects.C, 35291 bytes, 69 media blocks. x /usr/lpp/CPfw1-41/conf/rulebases.fws, 27838 bytes, 55 media blocks. x /usr/lpp/CPfw1-41/database/fwauth.NDB, 20481 bytes, 41 media blocks. x /usr/lpp/CPfw1-41/database/objects.C, 35443 bytes, 70 media blocks. x /usr/lpp/CPfw1-41/conf/fw.license, 2060 bytes, 5 media blocks. x /usr/lpp/CPfw1-41/conf/objects.C.bak, 35291 bytes, 69 media blocks. x /usr/lpp/CPfw1-41/database/opsec_authkeys.C, 239 bytes, 1 media blocks. x /usr/lpp/CPfw1-41/conf/vpn.W, 4637 bytes, 10 media blocks. Comparing checksums of transferred files between nodes The files that were found different are now identical. You still need to restart fwm on fw4 !!! Do you want me to delete all /tmp/diff_fw1*.11120 files [y]/n? y fw4:/usr/local/bin#
The other problem is that the security policy cannot be installed on fw4 from fw3 after it replaces its boot IP addresses with the service IP addresses when it goes active, because the primary IP address of fw4 is fw4_out_boot and the VPN-1/FireWall-1 management daemon on fw3 want to talk to that address. Therefore, we added an IP alias to the external network interface for the boot
230
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
address in /usr/local/bin/active-start that is executed after the service IP addresses are configured on all network interfaces. The other limitation you may encounter is that you are unable to install a security policy from the secondary management station (fw4) to the secondary filter (fw3). For fw4 to be able to send log files, it has to be defined in the clients file on fw3, and nothing may be in the masters file on fw3. Since fw4 cannot be in the masters file on fw3, it is not allowed to install a security policy to fw3. fw3 would stop logging fw4’s messages as soon as we put fw4 into the masters file on fw3. This is a somewhat unexpected behavior of VPN-1/FireWall-1 that was undocumented. We found it out in our tests and changed our design (see Section 3.1.4, “Our HA design” on page 151) accordingly from totally equal rotating gateways to asymmetric primary management/secondary filter and secondary management/primary filter.
3.9.2 NAT Before NAT can work again, you need to put the NAT routes back into effect: fw4:/# cd /etc fw4:/etc# diff rc.local rc.local.old 3,5c3,5 < # start ntp daemon as client < startsrc -s xntpd < /usr/es/sbin/cluster/etc/rc.cluster -boot '-N' '-b' '-i' --> arp -s 802.5 10.2.2.3 00:06:29:B9:FE:FC pub > route add 10.2.2.3 10.3.3.3 > arp -s 802.5 10.2.2.9 00:06:29:B9:FE:FC pub fw4:/etc# route add 10.2.2.3 10.3.3.3 10.3.3.3 host 10.2.2.3: gateway 10.3.3.3 fw4:/etc# rsh fw3_adm route add 10.2.2.3 10.3.3.3 10.3.3.3 host 10.2.2.3: gateway 10.3.3.3 fw4:/etc# fw4:/etc# echo "route add 10.2.2.3 10.3.3.3" >> rc.local fw4:/etc# clonediff rc.local 5a6 > route add 10.2.2.3 10.3.3.3 -rwxr-xr-x 1 root system 193 Sep 01 17:56 fw4:/etc/rc.local -rwxr-xr-x 1 root system 165 Sep 01 16:41 fw3_adm:/etc/rc.local fw4:/etc/rc.local -> fw3_adm:/etc/rc.local ? y fw4:/etc#
Chapter 3. High availability for VPN-1/FireWall-1
231
The only problem with NAT in a HA environment is proxy ARP. The problem is that when takeover occurs nobody notices that the MAC addresses of the proxy ARP IP addresses have changed so that everybody has to wait until the ARP cache entry on those IP addresses expires. We were unable to find a good way to speed that up (ping is no solution in this specific case because it would need to have the proxied IP address as the source IP address). Therefore, you should use static host routes on all network devices that are on the same network as the translated IP addresses. For example: internetpc is on the same network as the official IP address of web that is statically translated to the real IP address of web. To enable internetpc to talk to web’s valid IP address (=web_official: 10.2.2.3) (or even just forward packets that are destined for web_official if internetpc were a router), you need to add a static host route for web_official on internetpc that points to the external service IP address of the firewalls.
d:\>route add 10.2.2.3 10.2.2.192 d:\>netstat -nr Route Table Active Routes: Network Address 0.0.0.0 10.2.2.0 10.2.2.2 10.2.2.3 10.255.255.255 127.0.0.0 224.0.0.0 255.255.255.255
Netmask Gateway Address 0.0.0.0 10.2.2.192 255.255.255.0 10.2.2.2 255.255.255.255 127.0.0.1 255.255.255.255 10.2.2.192 255.255.255.255 10.2.2.2 255.0.0.0 127.0.0.1 224.0.0.0 10.2.2.2 255.255.255.255 10.2.2.2
Interface Metric 10.2.2.2 1 10.2.2.2 1 127.0.0.1 1 10.2.2.2 1 10.2.2.2 1 127.0.0.1 1 10.2.2.2 1 10.2.2.2 1
Active Connections Proto Local Address TCP 127.0.0.1:1025 TCP 127.0.0.1:1028
Foreign Address 127.0.0.1:1028 127.0.0.1:1025
State ESTABLISHED ESTABLISHED
d:\>
Now, internetpc should be able to talk to web_official, even after a takeover occurred, without undue delay.
232
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
The same is true if you use intranet_client to access the ftp server on internetpc. The IP address of intranet_client is dynamically hidden behind 10.2.2.4 as configured in the int_9.3.187.128 network objects NAT tab. You need to do a route add 10.2.2.4 10.2.2.192 on internetpc because it is connected directly to the 10.2.2.0 network. Then even dynamic NAT works properly after a takeover.
3.9.3 Authentication The impact on authentication after takeover is discussed in this section. 3.9.3.1 User authentication If you are using user authentication (for FTP or Telnet connections), your current session will be lost in takeover because it is not possible to synchronize the VPN-1/FireWall-1 security servers (proxy programs) that your connection is being handled by. But you can reconnect and authenticate, or use client authentication (which may be the better idea anyway). If you are using HTTP user authentication with reusable static passwords, your browser will probably silently reauthenticate you without you noticing because most browsers keep your passwords in memory until you exit the browser program. Note
If you want to try out user authentication again, and get the Reason: FW-1 rule error, you forgot to double-click the User Auth icon in the ruleset and select HTTP: All servers. 3.9.3.2 Client authentication The client authentication works well. We tested http and ftp to web and web_official after authenticating to http://10.2.2.192:900/. But to be able to connect, you need to create a network object for fw_out (10.2.2.192) and allow Source Any to access Service FW1_clntauth (VPN-1/FireWall-1 client authentication) on Destination fw_out.
Chapter 3. High availability for VPN-1/FireWall-1
233
Note
If you want to try client authentication, do not forget to double-click the Client Auth icon in the ruleset and set connections to infinite or it stops working very soon (the default is to allow only five connections before you need to reauthenticate).
3.9.4 Encryption VPN-1/FireWall-1 encryption and HA do not go together very well in VPN-1/FireWall-1 Version 4 SP2. It is said that Check Point is working on highly available VPN features for the next release. The FireWall synchronization section in Chapter 8 of the FireWall-1 Architecture and Administration book (September 1998 release) says that the SKIP protocol and encryption between synchronized VPN-1/FireWall-1 gateways (for example, fw3 and fw4) are not supported. It was outside of the scope of this redbook to test if highly available gateway to gateway encryption is possible, but at least according to the documentation, nothing was contradicting the possibility if you do not use SKIP. There could be some issues, because encryption domains may not overlap, but we did not investigate further in this context. If you are seriously interested in this issue, give us your feedback and this book might be updated in the future to include a solution to this problem. Chapter 8 of the FireWall-1 Architecture and Administration book also says that SecuRemote connections cannot be synchronized. We attempted to get client encryption to work on just one of the two firewalls in the HA environment without failover for SecuRemote, but the HACMP IP address takeover presented many difficulties. Therefore, we cannot provide you with a solution to that problem at this moment. Once again, that may change in the future. If you are absolutely forced to use SecuRemote in a HACMP highly available environment, you will have to investigate further. It is, in theory, possible to make it work without fail-over but the solution will not be simple.
234
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
3.10 Improving security for HACMP Until now, we allowed all communication between the two firewalls without any restrictions and allowed HACMP to use RSH which is not the most secure thing to do. Here are some ideas to improve these weak points.
3.10.1 A more granular security policy for HACMP services Instead of allowing all services between fw3 and fw4, we should allow only the necessary services and restrict the others. The VPN-1/FireWall-1 GUI and, specifically, the Log Viewer are helpful for finding out which ports are really in use. The necessary services between the firewalls group were: • rsh: remote shell (TCP port 514 and others that are dynamically allocated) for system administration (for example, getstate) and HACMP Cluster Synchronization. • godm (TCP port 6177) for HACMP’s internal communication. • clm_keepalive (UDP port 6255) for HACMP heartbeats. • ntp-udp (UDP port 123) for time synchronization. • FW1_log (TCP port 257) for VPN-1/FireWall-1 remote logging. • FW1 (TCP port 256) for VPN-1/FireWall-1 Security Policy installation and probably for VPN-1/FireWall-1 state table synchronization, too. • ICMP, for example, for ping. We describe how to configure these services in VPN-1/FireWall-1 on the following pages. Although they are not mandatory, HACMP may also require the following services in some specific circumstances: • If you want to use HACMP clients: clinfo_deadman 6176/tcp, clm_smux 6175/tcp and smuxpd 6270/tcp
• If you have a local snmpd running, you do not need to let snmp (UDP port 161) through since the /usr/sbin/cluster/clstat utility only tries to connect to the remote snmpd if there is no local snmpd running, which should never be the case if you really want to use it. The following is a description of how we changed our VPN-1/FireWall-1 Security Policy to allow only the necessary services between the members of the firewalls group (see Figure 85 on page 236 for details):
Chapter 3. High availability for VPN-1/FireWall-1
235
1. Use the Security Policy Editor to connect to the VPN-1/FireWall-1 management on fw3 (10.4.4.193). 2. For RSH to work properly you need to enable a special VPN-1/FireWall-1 feature: a. Look at the menu bar and choose Policy -> Properties.... b. Click the Services tab. c. Activate the check box to the left of Enable RSH/REXEC Reverse stderr Connections. d. Click OK.
Figure 85. VPN-1/FireWall-1 Security Policy properties that allow RSH
3. Select Manage -> Services.... Create the godm TCP service (see Figure 86 on page 237 for details): a. Select New... -> TCP.... b. Enter godm as Name. c. Click the Get button to have VPN-1/FireWall-1 extract the port number (6177) from /etc/services. d. Change the color if you want to. e. Click OK.
236
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Figure 86. Creating the godm service
4. Create the clm_keepalive UDP service: a. Select New... -> UDP.... b. Enter clm_keepalive as Name. c. Click the Get button to have VPN-1/FireWall-1 extract the port number (6255) from /etc/services. d. Change the color if you want to. e. Click OK. Click Close. 5. Add the following services by right-clicking on the Service field in the source firewalls destination firewalls rule: - shell - godm - clm_keepalive - ntp-udp - FW1_log - FW1 - icmp-proto 6. Compare your results to those shown in Figure 87 on page 238.
Chapter 3. High availability for VPN-1/FireWall-1
237
Figure 87. VPN-1/FireWall-1 ruleset including explicit services between firewalls
7. Do a Policy -> Install... and test if everything (for example, takeover, HACMP Cluster Synchronization, and so forth) works.
3.10.2 Replacing RSH with SSH (Secure Shell) SSH was designed as a drop-in replacement for RSH that supports strong encryption (3DES, IDEA, and others) and uses only one TCP port (22). SSH does not need portmapper to operate. It also supports strong authentication (for example, public/private key authentication with 4096 bit keys) where every user uses a private key to authenticate, not their UNIX password. However, using UNIX passwords is also supported; they are encrypted before being send to the server. SSH can also forward any TCP port from the SSH server to the client and vice versa. Because SSH was developed in Europe, there is no export restriction on it. It is recommended to replace the standard UNIX Remote Shell (RSH) with the Secure Shell (SSH) because it has significant security advantages and is easily affordable even if you need to buy licenses. You can get SSH in source code from: ftp://ftp.cs.hut.fi/pub/ssh/
238
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Commercial versions of SSH clients and servers can be bought from http://www.datafellows.com under the brand of F-Secure SSH products.
We used Version 1.2.26 of SSH and TTSSH Version 1.2. TTSSH is a very good free SSH client for Windows that extends the popular TeraTerm serial port/modem and Telnet client. You can get them at: • http://www.zip.com.au/~roca/ttssh.html • http://hp.vector.co.jp/authors/VA002416/teraterm.html Because there is no Secure Copy (SCP) command on Windows, you may consider compiling and installing a Zmodem transfer protocol implementation (for example, lrzsz) on the SSH server to be able to send files from the SSH server to the TTSSH client with Zmodem (for example, you do a # lsz README and select File -> Transfer -> ZMODEM -> Receive in TTSSH). Since TCP ports can be forwarded from the SSH client to the SSH server and vice versa, it should be possible to tunnel the VPN-1/FireWall-1 GUI service through SSH. That can be very useful if you need to do remote administration over the Internet or just want additional encryption security. 3.10.2.1 Installing SSH This is what you need to do to be able to use SSH: 1. Get your SSH distribution, compile it, and make a tar file archive of the files that need to be installed.These are the files that we installed on our two firewalls: - Clients and utilities go to /usr/local/bin: /usr/local/bin/scp symbolic link to scp1. /usr/local/bin/scp1 /usr/local/bin/ssh symbolic link to ssh1. /usr/local/bin/ssh-add symbolic link to ssh-add1. /usr/local/bin/ssh-add1 /usr/local/bin/ssh-agent symbolic link to ssh-agent1. /usr/local/bin/ssh-agent1 /usr/local/bin/ssh-askpass symbolic link to ssh-askpass1. /usr/local/bin/ssh-askpass1 /usr/local/bin/ssh-keygen symbolic link to ssh-keygen1. /usr/local/bin/ssh-keygen1 /usr/local/bin/ssh1
- config files go to /usr/local/etc: /usr/local/etc/ssh_config /usr/local/etc/sshd_config
Chapter 3. High availability for VPN-1/FireWall-1
239
- man pages go to /usr/local/man: /usr/local/man/man1/ssh-keygen.1 symbolic link to ssh-keygen1.1. /usr/local/man/man1/ssh-agent.1 symbolic link to ssh-agent1.1. /usr/local/man/man1/ssh-add.1 symbolic link to ssh-add1.1. /usr/local/man/man1/scp.1 symbolic link to scp1.1. /usr/local/man/man1/slogin.1 symbolic link to ssh.1. /usr/local/man/man1/ssh.1 symbolic link to ssh1.1. /usr/local/man/man1/slogin1.1 symbolic link to ssh1.1. /usr/local/man/man1/ssh-keygen1.1 /usr/local/man/man1/ssh-agent1.1 /usr/local/man/man1/ssh-add1.1 /usr/local/man/man1/scp1.1 /usr/local/man/man1/ssh1.1 /usr/local/man/man8/sshd.8 symbolic link to sshd1.8. /usr/local/man/man8/sshd1.8
- Daemons go to /usr/local/sbin: /usr/local/sbin/sshd1 /usr/local/sbin/sshd symbolic link to sshd1.
2. You may want to set you MANPATH to be able to read the SSH documentation: # MANPATH=$MANPATH:/usr/local/man ; export MANPATH # echo 'MANPATH=$MANPATH:/usr/local/man ; export MANPATH' >> ~/.profile # man ssh
3. Some preparation is necessary on both firewalls to make SSH work correctly. The SSH configuration files (ssh_config is for ssh client and sshd_config is for sshd) need to linked to /etc. In addition, the user’s home directory must be owned by the user and contain a /.ssh directory. scp must be in the system default path (for example, link it to /usr/bin). fw4:/# ln -s /usr/local/etc/ssh_config /usr/local/etc/sshd_config /etc fw4:/# ls -l /etc/ssh* lrwxrwxrwx 1 root system 25 Apr 21 11:32 /etc/ssh_config -> /usr/local/etc/ssh_config lrwxrwxrwx 1 root system 26 Apr 21 11:32 /etc/sshd_config -> /usr/local/etc/sshd_config fw4:/# chown root.system ~ fw4:/# mkdir ~/.ssh fw4:/# ln -s /usr/local/bin/scp /usr/bin fw3:/# ln -s /usr/local/etc/ssh_config /usr/local/etc/sshd_config /etc fw3:/# ls -l /etc/ssh*
240
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
lrwxrwxrwx 1 root system 25 Apr 21 11:32 /etc/ssh_config -> /usr/local/etc/ssh_config lrwxrwxrwx 1 root system 26 Apr 21 11:32 /etc/sshd_config -> /usr/local/etc/sshd_config fw3:/# chown root.system ~ fw3:/# mkdir ~/.ssh fw3:/# ln -s /usr/local/bin/scp /usr/bin
4. You should edit the configuration files to suit your security needs and policy. This is what our /etc/sshd_config looked like: fw4:/# cat /etc/sshd_config # This is ssh server systemwide configuration file. Port 22 ListenAddress 0.0.0.0 HostKey /etc/ssh_host_key RandomSeed /etc/ssh_random_seed ServerKeyBits 1152 LoginGraceTime 600 KeyRegenerationInterval 3600 PermitRootLogin nopwd IgnoreRhosts yes StrictModes yes QuietMode no X11Forwarding no X11DisplayOffset 10 FascistLogging yes PrintMotd yes KeepAlive yes SyslogFacility DAEMON RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication yes PasswordAuthentication no PermitEmptyPasswords no UseLogin no PidFile /etc/sshd.pid IdleTimeout 30m # CheckMail no # AllowHosts *.our.com friend.other.com # DenyHosts lowsecurity.theirs.com *.evil.org evil.org # Umask 022 # SilentDeny yes # AccountExpireWarningDays 5 # PasswordExpireWarningDays 5
Chapter 3. High availability for VPN-1/FireWall-1
241
# AllowTcpForwarding no fw4:/#
This is what our /etc/ssh_config looked like: fw4:/# cat /etc/ssh_config # This is ssh client systemwide configuration file. This file provides # defaults for users, and the values can be changed in per-user configuration # files or on the command line. # # # # # # #
Configuration data is parsed as follows: 1. command line options 2. user-specific file 3. system-wide file Any configuration value is only changed the first time it is set. Thus, host-specific definitions should be at the beginning of the configuration file, and defaults at the end.
# Site-wide defaults for various options # Host * # ForwardAgent yes # ForwardX11 yes # RhostsAuthentication yes # RhostsRSAAuthentication yes # RSAAuthentication yes # TISAuthentication no # PasswordAuthentication yes # FallBackToRsh yes # UseRsh no # BatchMode no # StrictHostKeyChecking no # IdentityFile ~/.ssh/identity # Port 22 # Cipher idea # EscapeChar ~ Host * ForwardAgent no ForwardX11 no RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication yes PasswordAuthentication no FallBackToRsh no UseRsh no
242
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
BatchMode yes StrictHostKeyChecking no IdentityFile ~/.ssh/identity Port 22 Cipher 3des ConnectionAttempts 1 fw4:/#
5. Before you can use sshd, you need to generate a SSH host key with ssh-keygen once. You should generate a RSA key that is at least 2048 bits long to the file /etc/ssh_host_key with no password set. ssh-keygen generates the two prime numbers p and q to create your key, which can take a lot of time. A 4096 bit key would take almost 20 minutes to be generated (these times can vary). A 1024 bit key that is the default takes only a dozen or so seconds to be generated, but it is much less secure. A 2048 bit key takes about two minutes. It is not recommended to use RSA keys that are less than 2048 bits long. To generate a key: fw4:/# ssh-keygen -b 2048 -N '' -f /etc/ssh_host_key Initializing random number generator... Generating p: ................................................................+ + (distance 1100) Generating q: .........++ (distance 184) Computing the keys... Testing the keys... Key generation complete. Your identification has been saved in /etc/ssh_host_key. Your public key is: 2048 35 21454903986512847252918710073938212765991981186130520474952171082779365 2 00634697906195575008524319133591775817402922976946644862527998641835149 134512085 13659078698605429924641477129812533391455523820429549164038859152209764 324940893 22375243920703198336620449134147202006233595771208370470959494859254656 116277352 66995195991557125616847955580045757323669488568257670275049032166355898 027679016 74087110479697271309462489512035378629107596037803762734466378327796633 280677586 05963266289247485737502327351925032182913297874741557459325702013931415 636585743 85121896547118466601810313215630647533616777939231366311617398619 root@fw4
Chapter 3. High availability for VPN-1/FireWall-1
243
Your public key has been saved in /etc/ssh_host_key.pub fw4:/#
6. You also need to create a key for the root user: fw4:/# ssh-keygen -b 2048 -N '' -f ~/.ssh/identity Initializing random number generator... Generating p: ..............++ (distance 210) Generating q: ................................................................. ..............++ (distance 1228) Computing the keys... Testing the keys... Key generation complete. Your identification has been saved in //.ssh/identity. Your public key is: 2048 37 23524864223474485401777604128780434696557917285860691020196081623458345 8 43671279175974731175255985612050033111724219985879958330548990316562825 864874030 47551145881869182585533979760405309397408486658304025008113548953460120 257396704 43770515358099102347321761751166191673755004636232582242436175867101588 346669519 07887397006601782680879313492678111159722289249058036956710604548801810 544563299 63834502653402846888997286844791377113065384022659934927997578511759217 441963968 70810202154556726736579160731266472483573420195905686475809899422168093 241920535 21631308010666905839515314043245351941247590182568693886186080943 root@fw4 Your public key has been saved in //.ssh/identity.pub fw4:/#
7. To allow everybody with the private key that is kept in ~/.ssh/identity to log in as root, you have to copy the corresponding public key to ~/.ssh/authorized_keys: fw4:/# cp ~/.ssh/identity.pub ~/.ssh/authorized_keys
8. Now, test if SSH works by logging in locally after starting sshd in debug mode (when you use -d, sshd exits after the first connection): fw4:/# /usr/local/sbin/sshd -d & [1] 9818 fw4:/# debug: sshd version 1.2.26 [rs6000-ibm-aix4.2.1.0]
244
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
debug: Initializing random number generator; seed file /etc/ssh_random_seed log: Server listening on port 22. log: Generating 1152 bit RSA key. Generating p: ..................++ (distance 272) Generating q: ............................++ (distance 540) Computing the keys... Testing the keys... Key generation complete. log: RSA key generation complete. fw4:/# fw4:/# ssh localhost debug: Server will not fork when running in debugging mode. log: Connection from 127.0.0.1 port 32899 debug: Client protocol version 1.5; client software version 1.2.26 debug: Sent 1152 bit public key and 2048 bit host key. debug: Encryption type: 3des debug: Received session key; encryption turned on. debug: Installing crc compensation attack detector. debug: Attempting authentication for root. log: RSA authentication for root accepted. log: ROOT LOGIN as 'root' from loopback debug: Allocating pty. debug: Forking shell. debug: Entering interactive session. Last login: Wed Apr 21 17:20:47 1999 from 9.3.187.202 *********************************************************************** * * * * * Welcome to AIX Version 4.3! * * * * * * Please see the README file in /usr/lpp/bos for information pertinent * to this release of the AIX Operating System. * * * * * *********************************************************************** Environment: HOME=/ USER=root LOGNAME=root PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin MAIL=/var/spool/mail/root SHELL=/bin/ksh TZ=CST6CDT SSH_CLIENT=127.0.0.1 32899 22 SSH_TTY=/dev/pts/0
Chapter 3. High availability for VPN-1/FireWall-1
245
TERM=vt100 AUTHSTATE=compat LANG=en_US LOCPATH=/usr/lib/nls/loc NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat LC__FASTMSG=true ODMDIR=/etc/objrepos You have new mail. fw4:/# fw4:/# exit debug: Received SIGCHLD. debug: End of interactive session; stdin 5, stdout (read 1392, sent 1392), stderr 0 bytes. debug: pty_cleanup_proc called debug: Command exited with status 0. debug: Received exit confirmation. Connection to localhost closed. fw4:/# log: Closing connection to 127.0.0.1 [1] + Done /usr/local/sbin/sshd -d& fw4:/#
9. When you are ready, put sshd in /etc/rc.local: fw4:/# /usr/local/sbin/sshd fw4:/# echo "/usr/local/sbin/sshd" >> /etc/rc.local
10.If you are confident that SSH is working, clone the following files to the other firewall node: - ~/.ssh/identity - ~/.ssh/identity.pub - ~/.ssh/authorized_keys - /etc/ssh_config - /etc/ssh_host_key - /etc/ssh_host_key.pub - /etc/sshd_config - /etc/rc.local 11.Start sshd at the other firewall node and try to connect to it with ssh. It might not work if your VPN-1/FireWall-1 drops the IP packets. Unload the VPN-1/FireWall-1 Security Policy for the test on both firewalls
246
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
with: # fw unload localhost
12.Backup the original AIX rsh and rcp commands and replace them with the ssh and scp commands: fw4:/# ls -la /usr/bin/rcp -r-sr-xr-x 1 root system 341998 Sep 10 1998 /usr/bin/rcp fw4:/etc# ls -la /usr/bin/rsh -r-sr-xr-x 2 root system 325636 Aug 31 1998 /usr/bin/rsh fw4:/# mv /usr/bin/rcp /usr/bin/rcp.orig fw4:/# mv /usr/bin/rsh /usr/bin/rsh.orig fw4:/# cp /usr/local/bin/ssh /usr/bin/rsh fw4:/# cp /usr/local/bin/scp /usr/bin/rcp fw4:/# ls -la /usr/bin/rcp -rwxr-xr-x 1 root system 46196 Apr 21 16:26 /usr/bin/rcp fw4:/# ls -la /usr/bin/rsh -rwx--x--x 1 root system 497244 Apr 21 16:25 /usr/bin/rsh fw4:/# clone /usr/bin/rcp /usr/bin/rcp.orig /usr/bin/rsh /usr/bin/rsh.orig
13.Test if all you scripts that depend on rsh and rcp (for example, getstate, clone, and clonediff) still work. 14.Use the VPN-1/FireWall-1 GUI to create a new TCP service called ssh with the number 22 as port. Add the new SSH service to the firewalls to firewalls rule and delete the shell (RSH) service from that rule. Select Policy -> Install.... 3.10.2.2 Disabling portmapper Since we do not use RSH anymore, we commented out the line where HACMP starts the portmapper in /usr/sbin/cluster/etc/harc.net: fw4:/# cd /usr/sbin/cluster/etc fw4:/usr/sbin/cluster/etc# cp harc.net harc.net.orig fw4:/usr/sbin/cluster/etc# sed -e \ s/startsrc -s portmap/#startsrc -s portmap/ harc.net.orig > harc.net fw4:/usr/sbin/cluster/etc# grep portmap * harc.net:# Start portmapper and inet daemon. harc.net:#startsrc -s portmap harc.net.orig:# Start portmapper and inet daemon. harc.net.orig:startsrc -s portmap fw4:/usr/sbin/cluster/etc# clone harc.net harc.net.orig
3.10.2.3 Cleaning up inetd.conf There is no need to have rsh (shell), ftp, and telnet in /etc/inetd.conf anymore when we have SSH. Do not remove godm from /etc/inetd.conf or HACMP will no longer work correctly.
Chapter 3. High availability for VPN-1/FireWall-1
247
fw4:/# cd /etc fw4:/etc# cp inetd.conf inetd.conf.orig.ha fw4:/etc# grep godm inetd.conf.orig.ha godm stream tcp nowait root /usr/sbin/cluster/godmd fw4:/etc# grep godm inetd.conf.orig.ha > inetd.conf fw4:/etc# diff inetd.conf.orig.ha inetd.conf 1,3d0 < ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd < telnet stream tcp6 nowait root /usr/sbin/telnetd telnetd -a < shell stream tcp6 nowait root /usr/sbin/rshd rshd fw4:/etc# fw4:/etc# cat inetd.conf godm stream tcp nowait root /usr/sbin/cluster/godmd fw4:/etc# clone inetd.conf inetd.conf.orig.ha
3.10.2.4 HACMP Cluster Synchronization verification problem If you tried to do HACMP Cluster Synchronization now, you would get a lot of errors from verification, but it would still work. The errors come from the cluster verification program /usr/sbin/cluster/diag/clver. It has a built-in rsh client that is used to check for inconsistencies in the HACMP setup of the other node. Since rsh is not allowed, clver produces all these errors without any impact on the cluster synchronization. To make cluster synchronization work without errors, do the following: fw4:/# cd /usr/sbin/cluster/diag fw4:/usr/sbin/cluster/diag# cp clver clver.orig fw4:/usr/sbin/cluster/diag# echo "exit 0" > clver fw4:/usr/sbin/cluster/diag# clone clver clver.orig
As an alternative, you can edit the /usr/sbin/cluster/cldare script that calls clver. You can search for clver in cldare and make the verify_config(): routine return 0. 3.10.2.5 Removing clinfo You may also want to consider not starting the clinfo and the SNMP daemons. In our example implementation, they were started with HACMP when executing: /usr/sbin/cluster/etc/rc.cluster -boot '-N' '-b' '-i' The -i indicates start clinfo and snmpd and can be safely be omitted. The only functionality you would lose is the clstat utility. You would have to change /etc/rc.local and /usr/local/bin/start-hacmp accordingly on both firewalls. If you want to implement a cluster failing alerting function instead, you will need clstat. Section 3.11, “Cluster failure alerting using clstat” on page 249 will guide you through the necessary setup.
248
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
3.11 Cluster failure alerting using clstat HACMP for AIX provides the /usr/sbin/cluster/clstat utility for monitoring the cluster and it’s components. This utility clstat is a Clinfo client program that uses the Clinfo API to retrieve information about the cluster. For clstat to work you need to ensure that Clinfo (/usr/sbin/cluster/clinfo) is running on the firewalls. The clstat utility provides a graphical display of the cluster nodes, as shown in Figure 88.
Figure 88. The clstat X-Window System Display
To provide an alert for a firewall failure in the management console, we decided to run a post event script that will open the clstat window when a node goes down. This script is run by the back up firewall when it detects that the primary firewall has failed.
3.11.1 The clstat X-Window system display The middle box in the top row in the X-Widown system display indicates the cluster name and ID. If the cluster is stable, then this box appears green. If for any reason the cluster becomes unstable, this box changes its color to red. The boxes in Figure 89 on page 250, Figure 90 on page 250, and Figure 91 on page 251 represent the cluster’s nodes. A node name appears in a box for each active node in the cluster. Up to eight nodes can be displayed per cluster. Nodes that are up are shown in green, nodes that are down are
Chapter 3. High availability for VPN-1/FireWall-1
249
shown in red, and nodes that are joining or leaving the cluster are shown in yellow. Nodes that are undefined are shown in the background color.
Figure 89. The clstat window showing node cpfw1 down
Figure 90. The clstat window showing a cluster configuration change
250
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Figure 91. The clstat window shows the node cpfw1 reintegrate into the cluster
To view information about network interfaces attached to a node, click the right hand mouse button while the cursor is over the appropriate node box in the clstat display. A pop-up window similar to the one in Figure 92 appears.
Figure 92. The clstat node information display
Chapter 3. High availability for VPN-1/FireWall-1
251
To close this window, just select DISMISS.
3.11.2 Installing the clstat client If you have not already installed them, the following filesets will need to be installed on both firewalls to enable clstat to work:• cluster.base.client.lib • cluster.base.client.rte • cluster.base.client.utils If you were monitoring the cluster from another AIX machine, then you would also need to edit the file /usr/sbin/cluster/etc/clhosts and add that machine’s IP address. As we are running the client on the firewalls themselves, we can keep the default entry for loopback -127.0.0.1. The /usr/sbin/cluster/etc/clhosts file provides a list of addresses that clinfo will poll for cluster information.
3.11.3 Installing Exceed on the GUI client To be able to use the clstat utility, you will need a machine that is capable of displaying X-Windows System applications. We decided that the management console GUI client would be the best host for the X-session. Because this machine is based on Windows NT, we decided to install Hummingbird Exceed on our GUI client. This is a licensed product that is available from http://www.hummingbird.com. Instructions for the installation of Exceed are available with the product.
3.11.4 HACMP cluster event customizing To initiate the clstat utility upon a firewall failure, we decided to produce a very simple script. We call the script clstat_alert. This script is placed in the same directory as all the other customized scripts, /usr/local/bin: # cat >> /usr/local/bin/clstat_alert #!/usr/bin/ksh export DISPLAY=10.4.4.4:0 /usr/sbin/cluster/clstat & CTRL-D # chmod +x /usr/local/bin/clstat_alert
The first line in the script exports the X display to the management console GUI client, while the third line starts the clstat utility as a background process. The script is then made executable by changing the permissions (using the chmod command).
252
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
We now need to configure HACMP to run this script as a post-event. Follow these steps: 1. Go to the Cluster Resources menu (press F3 twice or enter # smitty cm_cfg_res_menu). 2. Choose Cluster Events. 3. Choose Define Custom Cluster Events. 4. Choose Add a Custom Cluster Event. 5. Enter node_down_alert as the Cluster Event Name. 6. Enter custom shell script as the Cluster Event Description. 7. Enter /usr/local/bin/clstat_alert as the Cluster Event Script Filename. 8. Press Enter.
Add a Custom Cluster Event Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] [node_down_alert] [custom shell script] [/usr/local/bin/clstat_>
* Cluster Event Name * Cluster Event Description * Cluster Event Script Filename
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
F4=List Esc+8=Image
Now, the custom event is defined as a post-event of the network_down_complete event. Complete the following steps: a. Press F3 three times to get to Cluster Events. b. Choose Change/Show Cluster Events. c. Press / and search for node_down_remote_complete. Press Enter when you find it.
Chapter 3. High availability for VPN-1/FireWall-1
253
d. Go to the Post-event Command line and press F4. e. Press Enter on your custom node_down_alert event. f. Press Enter to execute and then press F10 to exit smitty.
Change/Show Cluster Events Type or select values in entry fields. Press Enter AFTER making all desired changes. [Entry Fields] Event Name
node_down_remote_compl>
Description
Script run after the n>
* Event Command
[/usr/sbin/cluster/even>
Notify Command Pre-event Command Post-event Command Recovery Command * Recovery Counter
[] [] [node_down_alert] + [] [0]
F1=Help Esc+5=Reset Esc+9=Shell
F2=Refresh Esc+6=Command Esc+0=Exit
F3=Cancel Esc+7=Edit Enter=Do
+
#
F4=List Esc+8=Image
Once this has been completed on the first firewall, you will need to synchronize it with the second one. Remember that you will need to copy over the clstat_alert script first.
3.11.5 VPN-1/Firewall-1 rule additions Now that HACMP has been configured to send the pop-up alert to the management console, we need to add rules to permit the X11 traffic to go to it. This is a relatively simple process, as all you need to do is add a rule to permit the X-window from the firewalls’ management interfaces to go the management console GUI client (see Figure 93 on page 255).
254
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Figure 93. Rule changes for permitting the X-Windows display to the GUI client
3.11.6 Testing the failover alerts In order to verify the functionality of the alerting mechanism, we will use the following steps: 1. From the Start menu, we started Exceed on the management console GUI client. 2. Both the firewalls were booted up and the cluster was checked to ensure that it was stable, and that cpfw2 was the primary and cpfw1 was the secondary. We then checked to see if clinfo was active; this can be done using the ps -ef command. 3. Next, we caused the primary firewall to fail and recorded the results. After the backup box detected the failover, the panel depicted in Figure 94 on page 256 appeared on the management console.
Chapter 3. High availability for VPN-1/FireWall-1
255
Figure 94. clstat test figure 1
4. Next, we re-integrated the failed firewall. During reintegration, we noticed the following changes, as shown in Figure 95 and Figure 96 on page 257.
Figure 95. clstat test figure 2
256
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Figure 96. clstat test figure 3
Once we were satisfied with the reintegration and that the cluster was stable, we closed the clstat window. If you wanted to, you could keep the window open permanently so that you could continuously monitor the cluster.
Chapter 3. High availability for VPN-1/FireWall-1
257
258
Check Point FireWall-1 on AIX - A Cookbook for Stand-Alone and High Availability Solutions
Chapter 4. Using IBM Network Dispatcher for high availability Another approach to building highly available firewall systems is to use the IBM Network Dispatcher. In this chapter, we describe how the Network Dispatcher can be integrated with the Check Point VPN-1/FireWall-1, what the anticipated problems are, and how the problems can be solved.
4.1 Technical overview of ND The Network Dispatcher (ND) is a load balancing product that divides up the workload generated by new connections among a group of back end servers. This can be done either by changing the assignment between the hostname and the IP address (DNS redirection) or by rerouting TCP and UDP traffic directly to the server with the lowest work load. The ND also recognizes server failures and automatically keeps new requests from being dispatched to the failed server. The ND provides not only improvement in scalability and performance by efficient load balancing, but also an increase in high availability. It was designed to work with application servers, such as Web, SAP, or database servers. We explore scenarios in which highly available firewall servers can also benefit from the load balancing mechanism of ND. There are some basic components of the ND that we will briefly describe. More information about this software can be found in the redbook Load-Balancing Internet Servers, SG24-4993, or in the product manual available at http://www.software.ibm.com/network/dispatcher/library/
4.1.1 Interactive Session Support (ISS) The ISS is responsible for the load balancing in conjunction with a Domain Name System (DNS) server. Either an existing DNS server, or the stripped down name server of ND, can be used. The load balancing is achieved either with an intelligent round-robin mechanism or by recalculating the load of the back end servers from several system parameters, such as CPU load or memory utilization. The name server keeps a DNS entry representing a group of available servers. ISS constantly monitors the workload of the back end servers and periodically replaces the IP address this entry points to with the IP address of the server that has the lowest workload at that time. This approach works fine with TCP/IP connections that are open for a few minutes, but it will pose problems with very short connections, such as requests to static HTTP pages. After ND starts routing requests to another server, the previous server will soon have completed all running requests and remain idle
© Copyright IBM Corp. 2001
259
until ND starts to recalculate the next routing path. This scenario will not be very efficient in regard to load balancing, but is easy to implement. You do not need a dedicated server running as an ISS monitor, because the ISS monitor runs directly on one of the back end servers. Also, if the master ISS server fails, one of the remaining servers is chosen as new ISS master server, thus making the system automatically highly available as long as the DNS server does not fail. Figure 97 illustrates the ISS concept.
Client
Client
Q: www.ibm.com
Q: www.ibm.com A: 9.1.1.1
DNS Server
A: 9:1.1.2 http://www.ibm.com
http://www.ibm.com 9.1.1.1 WWW
9.1.1.2 WWW
ISS Monitor
ISS Monitor
DNS Updates
ISS Updates
Figure 97. ISS concept
Using ISS in an Internet environment causes other problems, because application clients and other DNS servers cache the DNS entries returned by ISS. By default, these entries are cached for 24 hours, depending on the time to live (TTL) information for the DNS entry. The time to live could be changed to the average duration of connections, but using a very short time to live will increase the number of DNS requests to your server dramatically, thus increasing the load and Internet traffic on your servers and networks. Therefore, if you want to keep the load of your DNS server at a reasonable level, changes have to be propagated in 15 to 30 minute intervals, which is not adequate for highly available environments. Using the name server module shipped with ISS, you can build up a DNS server of your own to serve only ISS requests. However, your DNS server will be a single point of failure because you will not be able to use the other existing DNS servers as your secondaries. This is because the ISS DNS server updates its zone information very frequently. It is not practical to use
260
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
secondary DNS servers, as the information on them will not always be synchronized with the primary ISS name server. As discussed so far, using ISS to make firewalls highly available is not the best choice, because you will have the listed drawbacks and hardly get the takeover time demanded for high availability. Nevertheless, ISS provides an easy way to achieve simple load balancing among application servers. On the other hand, ISS can be used to collect the workload information of a system and pass this data to the ND manager, providing more detailed information for the next server recalculation. This feature will be useful in load balancing if high availability is provided by other modules of Network Dispatcher.
4.1.2 Network Dispatcher function A more sophisticated load balancing tool is the Network Dispatcher. In contrast to the ISS functionality, the clients never get to see the IP addresses of the real application server they use. They have to target a cluster IP address configured on the ND server. The requests are then rerouted by the dispatcher to the server with the lowest workload. The dispatcher recalculates the workload of the servers either on information collected by the dispatcher itself, such as the number of active connections and new connections, or system information collected by the ISS software running locally on the servers, such as CPU load or memory utilization. Since the workload is recalculated for every new connection, the connections always go to the least loaded server. This can potentially cause problems with applications and protocols that require multiple TCP/IP connections to the same server in order to complete a transaction. If such connections get dispatched to different servers, the transaction will fail, if the servers are not sharing state information. The data returned by the server, which usually consumes more network bandwidth than the initial request (for example, the content of an HTTP page), is sent directly from the server to the client, and the network load on the dispatcher remains at a reasonable level. Figure 98 on page 262 illustrates how Network Dispatcher works.
Chapter 4. Using IBM Network Dispatcher for high availability
261
Client
(1)
Dispatch Server
(2) (3)
(2)
(3)
(3)
(2)
WWW
WWW ISS Monitor
(5)
ISS Monitor (4)
WWW (4)
ISS Monitor
Figure 98. Network Dispatcher concept
The following steps describe the Network Dispatcher concept: 1. The client sends a request directly to the dispatcher server. 2. The dispatcher determines the best server for this request based on the information provided by the Advisors and the ISS monitor and reroutes this request. 3. The application server sends the results directly back to the client. 4. The ISS monitors report system information to the master ISS monitor that has the highest priority. 5. The master ISS monitor will collect all system information and send them to the ND.
4.1.3 Content Based Routing (CBR) Network Dispatcher also provides the option to do content based load balancing for HTTP, IMAP and POP3 traffic, by using the CBR component. Web CBR works in conjunction with the IBM Web Traffic Express (WTE) proxy and will handle HTTP requests based on their content. In this configuration, WTE will accept HTTP requests and query CBR for the best server. CBR will
262
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
then match the request to a defined set of rules and return the best server to use to WTE. Mail CBR works as a proxy and can handle IMAP and POP3 requests. It will accept incoming IMAP and POP3 requests and select the destination server based on the user ID and password supplied by the client. This can be used in order to hide multiple servers behind a single IP address. These components can potentially be used on a firewall in order to dispatch traffic to multiple Web servers and mail servers on a DMZ. As both CBR modes do not provide high availability or load balancing for the firewall itself, they will not be discussed further.
4.1.4 High availability If you use ISS, high availability is already built in, because the monitor software runs on all application servers, and the server with the highest priority (set in its configuration file) is used to collect information about the workload from the other servers and reconfigure the DNS server. On the other hand, if you use the Network Dispatcher function, the dispatch server is a single point of failure in the system. To prevent this, ND gives us the option to configure a backup dispatch server that automatically takes over in case of a failure. The actual load information and client routing tables are shared between the two dispatch servers; so, nearly all connections can be preserved in the case of a breakdown. Some external scripts are automatically executed during takeover, and they can be modified to provide the high availability of the firewall.
4.2 How does ND fit together with VPN-1/FW-1 As discussed, Network Dispatcher provides two functions: high availability and load balancing. Our primary goal in this redbook is to discuss high availability for VPN-1/FW-1. However, since load balancing can be easily configured in addition to high availability, we describe this in one of our detailed scenarios. Another design principle we tried to use was keep it simple and stupid (KISS). The adopted methodology has to be easy to configure, generally applicable to most cases, and economical. First, we introduce two widely-used firewall technologies and discuss how they can be integrated with ND. Then, we discuss how those technologies can
Chapter 4. Using IBM Network Dispatcher for high availability
263
be used with VPN-1/FireWall-1. Finally, we look into several feasible scenarios.
4.2.1 Firewall technologies The main purpose of firewall systems is to control the exchange of IP packets between two or more networks. In addition, no IP addresses of the internal network should appear in any connection with the outside. There are two approaches, as shown in Figure 99, with which to achieve this task: Network Address Translation and Application and Circuit level proxies.
Client
Server
Firewall Connection via NAT
Telnet Proxy Conn. 1
Conn. 2 WWW Proxy
Conn. 1
Conn. 2
Figure 99. Application proxies versus NAT
Network Address Translation (NAT) When using NAT, the packet filter changes the source IP address of outgoing packets and the destination IP address of incoming packets to a special external IP address (assuming a connection from the internal to the external side). A potential hacker should not see the original IP address of the internal machine. This is completely transparent to the end user and provides a very flexible solution to hide source addresses. No changes in internally used software are required. Since there is no need for additional processing of the requests, this method is very fast and provides the highest throughput. There are two different kinds of NAT: hide and static. In hide mode, all internal IP addresses are hidden behind a pool of external IP addresses that are used on a random basis. In the static mode, one internal address is mapped with exactly one external address. NAT is based on the assumption that IP routing from the internal network to external addresses will work properly. So, let us have a look at how IP routing
264
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
is done. The internal network consists of two or more network segments. There is an internal router that gets all packets to non-local networks. The job of this router is to decide where to send this IP packet next. If the destination is in another internal network segments, the packets are sent to a router that could deliver the packet to this network. In all other cases, the packet is sent to the IP address of the firewall because it must be an external destination (default route). After checking the packet with the internal packet filter, the firewall either sends the packet directly to its destination or to another router if the destination is not on the firewall’s local network. If the firewall is down, the internal router is not able to send external packets to the firewall any more, and they are discarded. The only way to provide high availability without breaking the existing connections is if a second firewall is available, which changes its IP addresses (internal and external) to the IP addresses of the first firewall, since these are configured in the routing tables of the routers, so they can send packets through the firewall again. ND cannot be used with NAT in hide mode. As this mode of NAT is dynamic, the second firewall has no information on the NAT mapping the first firewall performed. If the first firewall fails and the second one takes over, all active connections will break, as the second firewall will create new NAT mappings for the internal IP addresses. If we try to load balance traffic with ND, we have two options. If we are running proxies on the firewalls, then ND can be installed on the firewalls, and no additional hardware is required. If we want to load balance traffic routed through the firewalls, then ND must run on dedicated servers on each side of the firewalls. Since ND does not check which network interface the traffic arrived on, it can not determine which firewall interface it should use for load balancing traffic. This configuration is described in one of our detailed scenarios. The only other possible solution for load balancing routed traffic is to use dynamic routing protocols, such as RIP or OSPF. But these services still have some major security exposures and should not be used on firewalls, at least not on the non-secure network side of the firewall. If only the high availability feature of ND is used, there is no problem with static NAT, because there is always only one active firewall at one time and the other remains in standby mode. The firewall has a unique IP address that is transferred to the active server. Therefore, every firewall functionality, including NAT, works normally.
Chapter 4. Using IBM Network Dispatcher for high availability
265
Application and Circuit level proxies Another possible solution to exchange IP packets between networks across a firewall is to use proxies. There are two major kinds of proxies. Application proxies are small applications (it is easy to check whether they contain any security holes) that run directly on the firewall and act as a service forwarder. An application proxy is able to parse the syntax of the protocol used, make detailed logging of requests, add additional user authentication, block requests based on a filter mechanism, and act as a caching server. Application proxies are available for Telnet, FTP, HTTP, NTTP, SMTP, and directly mapped services (the requests are simply forwarded to another server). However, application proxies have some disadvantages as well. The more complex a proxy server is (such as HTTP caching proxies with integrated filters to block Java, Java Script, Active-X, and URLs based on regular expressions), the more likely it is to have security holes. Moreover, application proxies consume more system resources than NAT, since the system has to launch a new thread or a process for every request. Circuit level proxies, like socks, are not able to parse the used protocol but can be used for services that can not be handled by application proxies, for example, traceroute. These kinds of proxies are very fast, since they can work with threads and do not need to parse the application protocol. For an external user, the requests always look like they are coming directly from a firewall machine, so there is no need for additional address translation. Also, denial of service attacks can be intercepted or will only affect the firewall proxies, but not internal systems. In order to use such proxies, the clients on the internal side require additional configuration, or must use special client software for use with circuit level proxies. Unlike NAT, proxies running on the firewall can be monitored by ND. Since these proxies are acting exactly like application services (they do provide TCP service, such as WWW or Telnet), and requests from a client directly target the firewall, the ND functions, such as ISS or dispatcher, can be used. If the dispatcher is used, requests from a client do not go directly to the proxy running on the firewall, but will instead go to the dispatch server to be distributed to the application proxy on the firewall with the lowest workload.
4.2.2 Integrating ND with VPN-1/FireWall-1 The philosophy behind VPN-1/FireWall-1 is to handle all network traffic inside its strong stateful packet filter, including NAT. There are no application or
266
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
circuit level proxies delivered with VPN-1/FW-1. The typical configuration for VPN-1/FW-1 is to have powerful caching proxies on a dedicated server, and only use NAT and packet filtering on the firewall. If you want to use ND in conjunction with VPN-1/FireWall-1 and load balancing, you have to use your own application or circuit level proxies. A good place to download some simple application proxies is http://www.fwtk.org/. An implementation of Socks can be obtained from http://www.socks.nec.com/. These proxies require additional configuration that does not fit into the management utilities of VPN-1/FW-1. Nevertheless, we provide you with information to set-up a load balanced scenario if you have proxies installed on VPN-1/FW-1. If no application or circuit level proxies are installed on the firewall, the dispatcher function of the ND can still be used for load balancing, using a wildcard cluster. In this mode, the dispatcher can intercept and load balance traffic routed through the firewall. Another way of achieving load balancing is by using a dynamic routing protocol, such as OSPF. However, running dynamic routing protocols on the firewalls is not advised for security reasons, as they can be easily exploited by hackers. If only the high availability feature of ND is used, the basic configuration is about the same as with HACMP except the ND configuration is easier and there is not as much information exchange between the two servers as with HACMP.
Chapter 4. Using IBM Network Dispatcher for high availability
267
4.3 HACMP versus ND considerations In this section, we compare HACMP and the Network Dispatcher.
4.3.1 High availability In making a comparison of the high availability features of the two products, the following aspects are to be considered. 4.3.1.1 Setup • HACMP HACMP is a very complex product and needs to establish multiple connections between the two servers. These connections must be allowed by the firewall. If SSH is used for HACMP communication between the servers, we have the benefit of encryption and authentication. However, using SSH will cause some of the HACMP scripts to report errors in the cluster verification, which can be ignored. Configuration and troubleshooting of this solution is not an easy job and produces an environment that is not easy to understand. Therefore, the firewall administrator must have a good understanding of HACMP to keep this solution running. • Network Dispatcher Using the high availability function provided with ND is fairly simple. The dispatcher executes shell scripts for startup and take over events, which configure the cluster IP addresses either to the loopback device or to the network card, depending on the state of the system. These scripts can be customized for your environment and can include commands to start and stop application proxies and generate alerts for takeover events. Because ND only uses one TCP connection on a dedicated port for the heartbeat, and ping for testing network functionality, there are few changes on the firewall configuration, so setup is fairly easy. 4.3.1.2 Functionality Both software packages can test network connectivity to determine if a network card on the active firewall has failed or if there is a general network failure by pinging other systems on that network. • HACMP HACMP has built-in features to check whether the setup on both machines is correct, thus reducing possible configuration errors. To minimize outages due to network card failures, you have the option to have multiple cards for each network and activate another interface if the primary one
268
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
fails. The switch between two network cards is very fast, and does not affect any active connections or established VPNs, since it is still the same firewall server. In addition, HACMP is able to switch a MAC address between network cards and between servers. If the MAC address stays the same, you are able to take over without loss of TCP connections, because it looks exactly the same for external routing devices. Since you can configure HACMP to use rotating resources, there is no need for a second take over if the primary firewall comes back into operation again. Of course, if the backup machine is not that powerful, you will want to make a second take over, but you do not have to. If the second firewall is available again, the whole system is automatically highly available. If you have an external file system, for example, for logging, HACMP can be used to automatically mount this file system on the active firewall. • ND ND has no concept of rotating resources. If the primary firewall fails and then comes back in operation, there must be a second take over because the primary ND always has to be the active one. Otherwise, the solution will no longer be highly available. This second takeover could result in another loss of TCP/IP and VPN connections. If you want to control the time when this second takeover should happen, you have the option of using a manual recovery strategy, in which the primary ND will not resume dispatching, but will wait for a takeover command to be issued by the administrator. In addition, there is no easy way to keep the MAC address of the active IP address the same; so, active network connections are either dropped or will hang until the ARP cache of the devices on the local network is updated. 4.3.1.3 Security • HACMP Since HACMP needs a number of network connections for the heartbeats between the two machines (ping to every network interface and several special network services), additional rules need to be configured on the FW-1 policy. The main security exposure with HACMP is the use of rsh and rexec in the various HACMP event scripts. These protocols are very difficult to secure; since they use portmapper, a wide range of ports needs to be allowed on the FW-1 policy for them to work correctly. In addition, these protocols perform no authentication; instead, they use .rhosts files and control access based on source IP address. If somebody manages to fake the source IP address of rsh to one of the IP addresses permitted in .rhosts, they could potentially gain root access to your firewall.
Chapter 4. Using IBM Network Dispatcher for high availability
269
One method of securing this is to replace rsh with ssh. Ssh is an rsh replacement that allows encrypted connections and strong authentication based on private/public key pairs. Faking the source IP address by itself will not compromise ssh, as the private/public keys are also checked before a connection is established. However, this requires additional configuration and licenses for the product. • ND The high availability functions of ND only use ping and a single dedicated TCP port for the heartbeats between the two machines. This results in low network overhead, almost no security problems (this heartbeat test can go over a separate network), and does not significantly increase the complexity of the firewall configuration.
4.3.2 Load balancing As bandwidth availability increases and cost drops, performance and throughput of firewalls becomes more important. The performance of a firewall depends on the hardware used, the firewall product used, and the firewall policy. If a large number of rules are required for a specific implementation, the firewall performance is going to suffer. One solution would be to upgrade the hardware used, but this could be quite expensive. Another solution would be to use a number of small firewalls in parallel and load balance the traffic between them. This is a more cost-effective solution, as we add to the existing hardware instead of replacing it. Network Dispatcher is ideal for such a requirement. It can be used to load balance traffic between two or more servers, and can also provide high availability at the same time. An initial implementation can load balance traffic between two firewalls. If the capacity of these firewalls is reached, additional firewalls can be added to handle the extra load. This solution is discussed in two of the detailed configuration scenarios later in this chapter. There are also other load balancing solutions available in the market, some of which are VPN-1/FireWall-1 specific. These solutions are in general more difficult to configure than ND or extremely expensive. HACMP cannot be used for load balancing; it can only provide high availability to your servers.
270
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
4.3.3 Cost • HACMP HACMP is more expensive than ND. Also, in order to ensure quality of service, you will also need the second firewall machine to be as powerful as the primary one. However, besides the two firewall machines, you do not need additional hardware. • ND Just regarding high availability, the ND software is less expensive than HACMP. Of course, its high availability functionality is limited when compared with HACMP. But for some environments, the features provided by ND are sufficient. In addition, ND allows you to load balance traffic between firewalls, which gives you a higher combined throughput than HACMP, thus providing improved service when both firewalls are operational.
4.3.4 Comparison If you want to set up a low cost solution for highly available firewall systems, ND is the best tool to use. Installation and configuration is easy. Once running, it monitors the two firewalls and switches to the standby server in case of a failure of the first server. The recovery strategy is quite simple as well. It can either revert to the primary firewall automatically, or wait for the administrator to issue a second take over after the primary firewall is up again. In addition, load balancing can be implemented with ND, which will improve the performance of your service. The ND solution is fairly simple to set up and manage, and is ideal for novice administrators. HACMP is a more advanced high availability solution and covers almost all failures automatically. It can be configured to monitor for a large number of problems, including hardware, operating system, and application failures. The only manual interaction needed is to debug the error and to bring the defect machine back to life again. If all HACMP features are used, the result is a higher firewall complexity, which could be difficult to manage.
4.4 Installing Network Dispatcher on AIX The Network Dispatcher for AIX v3.0 requires the following filesets as prerequisites: Java.rte.bin 1.1.8.0 Java.rte.classes 1.1.8.0 Java.rte.lib 1.1.8.0
Chapter 4. Using IBM Network Dispatcher for high availability
271
After installing the base filesets, we downloaded and installed the latest available PTFs: Installation Summary -------------------Name Level Part Event Result -------------------------------------------------------------------------Java.rte.lib 1.1.8.8 USR APPLY SUCCESS Java.rte.classes 1.1.8.8 USR APPLY SUCCESS Java.rte.bin 1.1.8.8 USR APPLY SUCCESS Java.rte.bin 1.1.8.8 USR COMMIT SUCCESS Java.rte.classes 1.1.8.8 USR COMMIT SUCCESS Java.rte.lib 1.1.8.8 USR COMMIT SUCCESS ---- end ----
On AIX, all ND components can be installed with SMIT. The Network Dispatcher for AIX v3.0 consists of the following filesets: intnd.admin.rte intnd.cbr.rte intnd.cbradmin.rte intnd.nd.rte intnd.ndadmin.rte intnd.nd.driver intnd.doc.rte intnd.iss.rte intnd.issadmin.rte
ND ND ND ND ND ND ND ND ND
Base Administration Content Based Routing Content Based Routing Administration Dispatcher Dispatcher Administration Dispatcher Device Driver Documentation Interactive Session Support Interactive Session Support Administration
For installation, select the following menus in SMIT: Software Installation and Maintenance -> Install and Update Software -> Install and Update from LATEST Available Software. Now, select the correct input device (pressing F4 generates a list) and choose the needed components under Software to Install (F4 generates a list). See Figure 100 on page 273 for more details.
272
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Install and Update from LATEST Available Software SOFTWARE to install
* *
Move cursor to desired item and press F7. Use arrow keys to scroll. ONE OR MORE items can be selected. Press Enter AFTER making all selections. [MORE...8] intnd + 3.0.2.0 + 3.0.2.0 + 3.0.2.0 + 3.0.2.0 + 3.0.2.0 + 3.0.2.0 + 3.0.2.0 + 3.0.2.0 + 3.0.2.0 [BOTTOM] F1=Help
ND ND ND ND ND ND ND ND ND
ALL Base Administration Content Based Routing Content Based Routing Administration Dispatcher Dispatcher Administration Dispatcher Device Driver Documentation Interactive Session Support Interactive Session Support Administration F2=Refresh
@@intnd _all_filesets @@intnd.admin.rte 3.0 @@intnd.cbr.rte 3.0.2 @@intnd.cbradmin.rte @@intnd.nd.rte 3.0.2. @@intnd.ndadmin.rte 3 @@intnd.nd.driver 3.0 @@intnd.doc.rte 3.0.2 @@intnd.iss.rte 3.0.2 @@intnd.issadmin.rte
F3=Cancel
Figure 100. SMIT dialog box to install ND
Depending on your final configuration, you should install only the software components needed in your environment. For example, in Section 4.7.2, “Scenario 1: High availability with ND” on page 277, you need only the dispatcher component, because you will use only the high availability function. On the other hand, you need both the dispatcher and the ISS in Section 4.7.3, “Scenario 2: High availability and load balancing proxied traffic” on page 286. You must install the ISS component on every machine on which you plan to run either the ISS monitor function or the ISS agent function. We installed both modules to explore all possible scenarios. Upon completion, the smit.log should show the following summary: Installation Summary -------------------Name Level Part Event Result -------------------------------------------------------------------------intnd.nd.driver 3.0.2.0 USR APPLY SUCCESS intnd.doc.rte 3.0.2.0 USR APPLY SUCCESS intnd.admin.rte 3.0.2.0 USR APPLY SUCCESS intnd.ndadmin.rte 3.0.2.0 USR APPLY SUCCESS intnd.nd.rte 3.0.2.0 USR APPLY SUCCESS intnd.msg.en_US.ndadmin.rte 3.0.2.0 USR APPLY SUCCESS intnd.msg.en_US.nd.rte 3.0.2.0 USR APPLY SUCCESS intnd.msg.en_US.doc 3.0.2.0 USR APPLY SUCCESS
Chapter 4. Using IBM Network Dispatcher for high availability
273
intnd.msg.en_US.admin.rte intnd.issadmin.rte intnd.iss.rte intnd.msg.en_US.issadmin.rt intnd.msg.en_US.iss.rte ---- end ----
3.0.2.0 3.0.2.0 3.0.2.0 3.0.2.0 3.0.2.0
USR USR USR USR USR
APPLY APPLY APPLY APPLY APPLY
SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS
After a successful installation, the ISS components are installed in /usr/lpp/nd/iss, and the dispatcher components are installed in /usr/lpp/nd/dispatcher. Both the dispatcher and the ISS servers must be started manually, or included in /etc/inittab or /etc/rc.tcpip, to be started during system reboot.
4.5 Firewall configuration The configuration of VPN-1/FW-1 is exactly the same as what was defined in Section 3.8, “Configuring VPN-1/FireWall-1 for HACMP” on page 214, except for the special filter rules for HACMP. The HACMP-related filter rules are not needed in this case.
4.6 Understanding Network Dispatcher components In this section, we elaborate on the components of Network Dispatcher.
4.6.1 Basic dispatcher functionality The dispatcher helps utilize the total throughput of a group of servers by grouping the server resources into a cluster. The dispatcher collects information on server usage and distributes the traffic to the cluster servers, targeting mainly the server with the lowest workload. To avoid a single point of failure, the dispatcher can be made highly available by using two different ND servers. These stay synchronized, and a takeover is automatically initiated if the primary ND fails. The dispatcher consists of several components: Executor This component supports port-based routing of TCP or UDP connections to the application servers. If running by itself, a round-robin mechanism is used to distribute the connections. Besides the dispatching server, this is the major component of the ND.
274
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Manager This component sets server weights used by the executor for distributing requests. The calculation of these weights can be based on internal counters of the executor, such as new or active connections, or from feedback of advisors and ISS components. Advisors The advisors are components that connect to the application servers and measure the response time for specific services. The response time is given to the manager for recalculating the server weights. Advisors are available for HTTP, FTP, SSL, SMTP, NNTP, POP3, IMAP, WTE and Telnet. Since advisors are very simple Java programs, you can write your own advisors for special protocols. Sample advisors and instructions on how to write new ones are included in the ND documentation. Observer This component provides information on the system load of the servers and reports it to the manager. The manager uses this information and adjusts the server weights accordingly. ISS can be configured to act as an Observer. The time period between recalculating the server weights can be easily adjusted. Also, the weighting proportions between executor, advisor, and ISS information can be configured. The question on how to combine high availability functions with load balancing functions is a matter of where to distribute these components and how to configure them, respectively. Three different configuration scenarios can be developed and are discussed in detail in Section 4.7, “Configure Network Dispatcher with different scenarios” on page 277. For more information, see Section 4.1.2, “Network Dispatcher function” on page 261. 4.6.1.1 ISS The Interactive Session Support (ISS) can be used as a stand-alone tool that provides load balancing through DNS (see Section 4.1.1, “Interactive Session Support (ISS)” on page 259). In our environment, ISS is used only as an observer that collects local system information and sends it to the manager. Beside some internal functions, such as CPU load and memory utilization, you can also monitor other resources with ISS. These can be monitored by specifying a command that returns the status of the resource in the ISS configuration. All ISS daemons report to the ISS monitor. The ISS monitor is the ISS daemon with the highest priority, as specified in the configuration file. This monitor calculates server weights based on the collected information and provides the result to the manager.
Chapter 4. Using IBM Network Dispatcher for high availability
275
4.6.1.2 Dispatcher high availability In order to avoid a single point of failure, the dispatcher should be highly available. This can be done by setting up a second dispatch server with exactly the same configuration. You have to define one or more heartbeat connection between these servers. These are TCP connections on a port that can be freely chosen. There is constant synchronization between the two servers, so the backup server knows which connections are still active. In addition, you can specify several reach targets, which are network devices that are constantly pinged by the dispatcher in order to detect network failures. A takeover will be issued for one of the following reasons: • The heartbeat connection has been interrupted. This indicates a hardware failure on the primary ND server, and the backup server issues a takeover. If this was just a network failure, the backup switches back into standby mode, if the heartbeat from the primary reaches the backup. • Both servers constantly ping all reach targets. If the backup server can reach more targets than the primary ND server, there must be a network failure on the primary, and a takeover will be issued. Since there is still a heartbeat between the two machines, the primary is informed about this event and switches to standby mode, so there is no IP address overlapping. • If the backup server is active and the primary server is on standby, and the backup server has a hardware failure (loosing heartbeat), the primary server immediately switches into active mode again. As you can see, the heartbeat is a very central event; losing this heartbeat indicates a complete hardware failure. Therefore, it is better to have multiple heartbeat connections, for example, on every network interface, to ensure that a network failure on one interface does not result in the loss of the heartbeat connection. In addition, you should have a reach target in every network; these are used to determine if a specific network connection is broken. There are some external scripts executed by the ND in the case of a status switch. All these scripts must be placed in the /usr/lpp/nd/dispatcher/bin directory: • goActive: This script indicates that the ND will switch into active mode and start dispatching packets. The script must ensure that the cluster IP address is configured on the network card correctly. This script is executed by the primary ND server, if there is no active backup, or by the backup ND server, if there is a takeover.
276
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
• goStandby: This indicates that this server will stop routing packets. This happens if the active ND server has a problem with one of its network cards, and the backup server takes over. At this time, the primary should make sure that the cluster IP address is no longer advertised on the network. • goInOp: This script is executed when the executor is stopped, and it should clean up the system. Of course, these scripts are used to reconfigure the network interfaces if the high availability feature of ND is used directly on the firewall machines.
4.7 Configure Network Dispatcher with different scenarios In this section, we describe configuring the Network Dispatcher using different scenarios.
4.7.1 Basic environment Table 8 displays the abbreviations for our IP addresses. Table 8. Hostnames
Object Name
IP Address
fwint1 (FW1 internal side)
192.168.2.253
fwint2 (FW2 internal side)
192.168.2.254
fwdmz1 (FW1 DMZ side)
10.0.0.253
fwdmz2 (FW2 DMZ side)
10.0.0.254
fwext1 (FW1 external side)
192.168.1.253
fwext2 (FW2 external side)
192.168.1.254
fwintcl (Cluster address internal side)
192.168.2.3
fwdmzcl (Cluster address DMZ side)
10.0.0.3
fwextcl (Cluster address external side)
192.168.1.3
4.7.2 Scenario 1: High availability with ND In this section, we will test high availability with ND, as shown in Figure 101 on page 278.
Chapter 4. Using IBM Network Dispatcher for high availability
277
4.7.2.1 Description In this scenario, we will configure ND to make the two firewall systems highly available. Of course, we have one stand-by server doing nothing but waiting for a failure on the active server. Besides the normal IP addresses for the two firewall servers, we need one additional IP address for each network interface that is configured on the active firewall server and moves to the stand-by machine during a takeover.
.3 .253 FW 1
external 192.168.1.0 (255.255.255.0)
WWW .254
.3 .253
.254 DMZ 10.0.0.X (255.255.255.0)
FW 2
ND heartbeat .253 .3
.254
internal 192.168.2.0 (255.255.255.0) Figure 101. Information flow with ND on AIX
As you can see, our cluster IP addresses (192.168.1.3, 192.168.2.3, and 10.0.0.3) are configured as an alias on the active firewall. In the case of a takeover, this alias is deleted (or replaced by aliases to the loopback device) and moved to the stand-by server. The only information exchange required between the two firewall servers is the heartbeat of ND. This configuration is mainly used for packet filtering firewalls. If you are running proxies on the firewall, Section 4.7.3, “Scenario 2: High availability and load balancing proxied traffic” on page 286 shows you the additional advantage of load balancing. 4.7.2.2 Configuration of ND The script in Figure 102 on page 279 is the start script we used on our primary firewall. The script on the secondary looks similar, except you have to switch the IP addresses on the heartbeat command and exchange the keyword primary with backup in the synchronization command. Also, the
278
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
non-forwarding address (nfa) statement needs to be point to the secondary firewall’s hostname. This script can be automatically executed from /etc/inittab or /etc/rc.tcpip, so ND automatically starts after reboot. In our setup, we executed the script with the following entry in /etc/rc.tcpip: /usr/lpp/nd/dispatcher/bin/ndstart
# # # # # # #
ndstart script Start ND for High Availability This script configures the primary server It adds heartbeat and reach targets
#start server echo "Starting ND" ndserver start sleep 10 #start executor echo "Starting ND executor" ndcontrol executor start ndcontrol executor set nfa fwext1 #add heartbeat ndcontrol highavailability heartbeat add fwdmz1 fwdmz2 ndcontrol highavailability heartbeat add fwext1 fwext2 ndcontrol highavailability heartbeat add fwint1 fwint2 #add reach targets ndcontrol highavailability reach add 192.168.1.4 ndcontrol highavailability reach add 10.0.0.1 ndcontrol highavailability reach add 192.168.2.1 #add backup information on port 12345 ndcontrol highavailability backup add primary manual 12345 #start manager ndcontrol manager start Figure 102. ND start script for high availability
This script does the following tasks: • ndserver start Since the basic ND Dispatcher service is not started automatically on AIX, we have to start it first. Because you must wait until this service has completely started before issuing additional commands, we will wait for 10 seconds.
Chapter 4. Using IBM Network Dispatcher for high availability
279
• ndcontrol executor start This starts the Executor service that is the central part of the ND. • ndcontrol executor set nfa fwext1 This sets the non-forwarding IP address for the Executor. Every request to this IP address is not examined by the Executor, but is handled by the operating system immediately. Since the firewall has more than one interface, we have to specify this address separately. • ndcondcontrol highavailability heartbeat add fwdmz1 fwdmz2 This command configures the heartbeat on the primary ND across the DMZ network. The heartbeat on the second machine must be configured with: ndcontrol highavailability heartbeat add fwdmz2 fwdmz1
As mentioned in Section 4.6.1.2, “Dispatcher high availability” on page 276, it is highly recommended to establish more than one heartbeat connection in order to have a running connection even if one network interface fails. For this reason, we have added a heartbeat connection on every network interface. • ndcontrol highavailability reach add 192.168.1.4 In order to determine failures of network interfaces, you can specify targets that are constantly pinged by ND. If the backup server can reach more targets than the primary, a takeover is be issued. You should have at least one target per network interface. • ndcontrol highavailability backup add primary manual 12345 This tells the server it is the primary, and the takeover back to the primary machine should only be issued manually (we want to control the time when we will lose all the connections again) and they should exchange their synchronize information on TCP port 12345. On the second machine, the command looks similar, simply exchange the word primary with backup: ndcontrol highavailability backup add backup manual 12345
• ndcontrol manager start Because the Manager provides the ping functionality used for the reach targets, we have to start this service even if we do not really need it for high availability. In addition, you need the scripts that are executed during a status switch of the executor: goActive, goStandby, and goInOp. In these scripts, we have to
280
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
make sure that the active firewall has the cluster IP address configured as an alias to the network card, and the stand-by machine must have configured these addresses to the loopback device. We do not want to specify all the IP addresses and network masks in every script, so we have created another script, goInterfaces, which is outlined in Figure 103, defines these parameters and is called from every other script. Each script creates a syslog entry when called, so the administrator will understand what has happened on the firewall machines. Also, it may be a good idea to use the mail command in the goActive script, because this script is only called in case of a takeover; therefore, the firewall administrator gets a message that one of the firewall servers has failed.
#!/bin/ksh # Just the variable definition for having the same values in every # other scripts CLUSTEREXT=192.168.1.3 NETMASKEXT=255.255.255.0 INTERFACEEXT=tr1 CLUSTERINT=192.168.2.3 NETMASKINT=255.255.255.0 INTERFACEINT=tr0 CLUSTERDMZ=10.0.0.3 NETMASKDMZ=255.255.255.0 INTERFACEDMZ=tr2 Figure 103. goInterfaces script
The script goStandby has to remove the cluster IP addresses from the network interfaces and add them to the loopback device, as shown in Figure 104 on page 282.
Chapter 4. Using IBM Network Dispatcher for high availability
281
# # # # # # # #
goStandby script will be called automatically by the dispatcher when switching into standby mode it must remove the cluster IP address from the network card and add configure it on the loopback device requests
logger "ND goStandby" #import variables . /usr/lpp/nd/dispatcher/bin/goInterfaces #delete alias addresses on network card ifconfig $INTERFACEEXT delete $CLUSTEREXT 2>/dev/null ifconfig $INTERFACEINT delete $CLUSTERINT 2>/dev/null ifconfig $INTERFACEDMZ delete $CLUSTERDMZ 2>/dev/null #configure loopback addresses ifconfig lo0 alias $CLUSTEREXT netmask $NETMASKEXT ifconfig lo0 alias $CLUSTERINT netmask $NETMASKINT ifconfig lo0 alias $CLUSTERDMZ netmask $NETMASKDMZ Figure 104. goStandby script
The script goActive has to remove the cluster IP addresses from the loopback device and add them to the network interfaces, as shown in Figure 105. # # # # # # # #
goActive script will be called automatically by the dispatcher when beeing activated it must remove the cluster IP address from the loopback interface and add configure it on the network card in order to receive requests
logger "ND goActive" #import variables . /usr/lpp/nd/dispatcher/bin/goInterfaces #delete loopback addresses ifconfig lo0 delete $CLUSTEREXT 2>/dev/null ifconfig lo0 delete $CLUSTERINT 2>/dev/null ifconfig lo0 delete $CLUSTERDMZ 2>/dev/null #add alias addresses to network card ifconfig $INTERFACEEXT alias $CLUSTEREXT netmask $NETMASKEXT ifconfig $INTERFACEINT alias $CLUSTERINT netmask $NETMASKINT ifconfig $INTERFACEDMZ alias $CLUSTERDMZ netmask $NETMASKDMZ Figure 105. goActive script
282
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
The script goInOp is called if the executor has stopped and has to remove the cluster IP addresses completely, as shown in Figure 106. # goInOp script # will be called automatically by the dispatcher when # the executer is stopped # # it must remove all IP address aliases logger "ND goInOp" #import variables . /usr/lpp/nd/dispatcher/bin/goInterfaces #delete loopback addresses ifconfig lo0 delete $CLUSTEREXT 2>/dev/null ifconfig lo0 delete $CLUSTERINT 2>/dev/null ifconfig lo0 delete $CLUSTERDMZ 2>/dev/null #delete alias addresses on network card ifconfig $INTERFACEEXT delete $CLUSTEREXT 2>/dev/null ifconfig $INTERFACEINT delete $CLUSTERINT 2>/dev/null ifconfig $INTERFACEDMZ delete $CLUSTERDMZ 2>/dev/null
Figure 106. goInOp script
Be sure to make all these scripts executable and place them in the directory /usr/lpp/nd/dispatcher/bin. 4.7.2.3 ARP cache issues When the cluster addresses are taken over by the standby ND server, the ARP cache of the devices attached to the same LANs as the firewalls will cache the MAC address of the previously active ND server for some time. In our scenario, those were the WWW in the DMZ network (10.0.0.1) and an Internet client on external network (192.168.1.4). How long the MAC address remains in the cache of the clients depends on the operating system, but it is usually about 60 seconds. During this time, all previously connected clients are not able to connect again. There can be two different approaches to solve this problem: 1. Modify the /usr/lpp/nd/dispatcher/bin/goActive script in order to force ping packets from the cluster address to every client on the same network. This can be done by using the “-I” flag in the ping command to specify the source IP address of the ping packets. When the other clients receive these ping packets, they will update their ARP cache with the MAC address of the currently active dispatcher. In our setup, this was done by adding the following lines to the end of the goActive script:
Chapter 4. Using IBM Network Dispatcher for high availability
283
ping -c 1 -I $CLUSTEREXT 192.168.1.4 ping -c 1 -I $CLUSTERDMZ 10.0.0.1
2. MAC address takeover It is possible for Network Dispatcher to take over MAC addresses as well as IP addresses. What needs to be done is in the goActive script: ifconfig lo0 delete netmask ifconfig down detach chdev -l -a use_alt_addr=yes /etc/methods/cfgif /etc/methods/cfginet ifconfig alias \ netmask
Repeat for each network interface on every network. 4.7.2.4 Firewall Configuration Since heartbeats are exchanged on every interface, you have to allow the TCP connection on the specified port (12345, in our example) to be exchanged between the two firewall machines on every network. In addition, you must allow ping connections to the defined reach targets. Make sure all your firewall machines are included, as shown in Table 9. Table 9. Firewall configuration for ND installed on AIX
Services
Direction
TCP, port 12345 (heartbeat)
FW1 external to FW2 external FW1 internal to FW2 internal FW1 DMZ to FW2 DMZ FW2 external to FW1 external FW2 internal to FW2 internal FW2 DMZ to FW2 DMZ
ping (reachability)
FW1 + FW2 external to external target FW1 + FW2 internal to internal target FW1 + FW2 DMZ to DMZ target
4.7.2.5 Starting the software By calling the /usr/lpp/nd/dispatcher/bin/ndstart script (which is our start script; see Figure 102 on page 279) on the primary server first, the ND services on this server should start and you should receive a message from the goActive script in the syslog file. Now, execute the start-up script on the second server and you should get the message from the goStandby script in the syslog file. After that, high availability has been established and you can test your configuration.
284
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
4.7.2.6 Monitoring and performance You can either run the command ndadmin for the graphical interface or you can use the text based commands. Since there is no load balancing activated, the most important command is ndcontrol highavailability status, which reports the actual status of the system to you. In normal cases, you should get a result like the following: High Availability Status: ------------------------Role ................. Primary Recovery strategy .... Manual State ................ Active Sub-state ............ Synchronized Port ................. 12345 Preferred target ..... 10.0.0.254 Heartbeat Status: ----------------Count ................ Source/destination ... Source/destination ... Source/destination ...
3 10.0.0.253/10.0.0.254 192.168.1.253/192.168.1.254 192.168.2.253/192.168.2.254
Reachability Status: -------------------Count ................ Address .............. Address .............. Address ..............
3 192.168.1.4 10.0.0.1 192.168.2.1
In the event of a primary firewall failure, if you are using a manual recovery strategy, you have to issue a takeover after you recover from a failure. This takeover can be invoked with ndcontrol highavailability takeover on the stand-by server. 4.7.2.7 Summary The advantages and disadvantages of this scenario can be summarized as follows. • Advantages The configuration of this scenario is very easy. This avoids errors and does not require special skills from the firewall administrator. The takeover is very reliable and detects all kinds of network failures. It needs about 15 seconds; therefore, you get a running system again very quickly.
Chapter 4. Using IBM Network Dispatcher for high availability
285
• Disadvantages Installing additional software and opening additional ports on the firewall always results in relaxing the security. It may be a good idea not to use heartbeat connections over the external interface; instead, use the two remaining interfaces, which should be safe enough.
4.7.3 Scenario 2: High availability and load balancing proxied traffic In this section, we will test load balancing to proxies as well as high availability, as shown in Figure 107 on page 287. 4.7.3.1 Description Based on the situation described in Section 4.7.2, “Scenario 1: High availability with ND” on page 277, we want to test if we can still delegate some work to the stand-by machine in order to increase overall performance. Since ND is already installed on both firewalls for high availability, we have to use the load balancing features, such as advisors and ISS as Observer. This configuration load balances traffic to proxies installed on the firewall. There are a number of different proxy packages in the market to choose from, depending on your requirements. In this scenario, we are assuming that there is an application proxy running on port 80 that forwards all HTTP requests to the WWW server in the DMZ.
286
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
external 192.168.1.X .3 .253 FW 1
WWW .254
.3 .253
.254 DMZ 10.0.0.X (255.255.255.0)
FW 2
ND heartbeat ISS Monitor
ISS heartbeat
ISS Monitor
rerouting request .253 .3
.254
internal 192.168.2.X
Figure 107. Information flow with ND on AIX and load balancing
In addition to the ND heartbeat information, we need connections for the ISS heartbeat (if ISS is used). All requests from the client to the cluster address connect to the active firewall, because this firewall has these IP addresses configured on the network interfaces. The dispatcher will examine these packets if the destination port is managed by one of its cluster definitions. If handled by one cluster, it will be redirected to one of the cluster servers that is either the stand-by firewall or the primary firewall again. If the port is not handled by a ND cluster definition, it will be handled by the operating system for further processing. Of course, there is an overhead because packets that are rerouted to the first firewall have already been processed by the dispatcher on the same server; therefore, they have to pass the IP stack twice. But some connections are rerouted to the secondary firewall, and thus reduce system load on the primary server. 4.7.3.2 Configuration of ND The cluster configuration is similar for each cluster IP address. Therefore, we only describe the configuration for the external address.
Chapter 4. Using IBM Network Dispatcher for high availability
287
Since the takeover scripts, such as goActive and goStandby, configure the cluster IP addresses to the loopback interface on the stand-by server, and both servers accept connections on port 80 to the cluster IP address that we want to make load balanced, our firewall machines are already configured to accept connections on this port. We only have to configure ND to dispatch requests to that port to the two firewall servers. We provide you with our start-up script for the primary ND server in Figure 108 on page 289.
288
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
# # # # # # #
ndstart script Starts ND for high availability and dispatching to proxies This script configures the primary server It adds clusters, servers and starts all advisors
#start server echo "Starting ND" ndserver start sleep 10 #start executor echo "Starting ND executor" ndcontrol executor start ndcontrol executor set nfa fwext1 #add heartbeat ndcontrol highavailability heartbeat add fwdmz1 fwdmz2 ndcontrol highavailability heartbeat add fwext1 fwext2 ndcontrol highavailability heartbeat add fwint1 fwint2 #add reach targets ndcontrol highavailability reach add 192.168.1.4 ndcontrol highavailability reach add 10.0.0.1 ndcontrol highavailability reach add 192.168.2.1 #add backup information on port 12345 ndcontrol highavailability backup add primary manual 12345 #start manager ndcontrol manager start #add cluster ndcontrol cluster add fwextcl #add port ndcontrol port add fwextcl:80 #add server ndcontrol server add fwextcl:80:fwext1 collocated yes ndcontrol server add fwextcl:80:fwext2 #set proportions ndcontrol manager proportions 30 30 20 20 #start advisor ndcontrol advisor start http 80
Figure 108. ND start script for high availability and load balancing
The first part of the script is identical to the script in Figure 102 on page 279. Therefore, we only explain the load balancing commands: • ndcontrol port add fwextcl:80
Chapter 4. Using IBM Network Dispatcher for high availability
289
Adds a port that should be controlled by the Dispatcher. You will have to specify all ports the Dispatcher should distribute to the servers. In our case, this is only port 80 for HTTP. Do not forget to specify the corresponding cluster address. Attention
If you want to load balance FTP connections, you must add port 21 (FTP control connection) to your cluster definition. The data connection is initiated by the FTP server and is not routed through the dispatcher. • ndcontrol server add fwextcl:80:fwext1 collocated yes Add servers to which the connections should be distributed. You have to specify the cluster IP address, the port, and the server IP address. We have two servers, fwext1 and fwext2, that handle the HTTP service on port 80, so we need two commands. If the server added is the same box the ND is running on, then the collocated yes statement is also required. In our scenario, collocated yes is specified for fwext1 on the primary ND and for fwext2 on the backup ND. • ndcontrol manager proportions 30 30 20 20 Because we want to use Advisors and Observers, we must configure the manager to use the information presented by the Advisors by setting the input proportions using the above command. The four numbers are defined as followes: - Active connections from the Executor (30) - New connections from the Executor (30) - Advisors (20) - Observers, such as ISS (20) If you just want to use the Advisor for testing if the system is still alive, a very small value for the Advisor parameter is enough. Because if an Advisor or an Observer detects a failed system, this information will have priority above all other parameters. Because we only use the Advisor to determine if the system is heavily loaded or doing nothing, we are paying a higher attention to the Advisors. • ndcontrol advisor start http 80 As the last command, we start the HTTP Advisor on port 80. This Advisor will constantly send HTTP requests to both servers, measure the response
290
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
time, and provide these values to the ND Manager for recalculating the server weights. The configuration on the backup ND server must be exactly the same (except the differences described in Scenario 1) and should be configured before changing the primary server. After that, the ND should dispatch HTTP requests on port 80 to both firewall servers. Because we spend much attention to the results of the Advisor, the load balancing should recognize a heavy system load on the firewall and reduce the amount of redirected requests. The Dispatcher does not use the high availability results to detect a failed system. It only uses results presented by Advisors or Observers. Using Version 3.0 of ND, you need to start an Advisor or ISS as Observer for each load balanced port. If there is no Advisor available, you can either write a custom one for the specific application, or use the “connect” advisor. This is a generic Advisor that only connects to the specified port and then closes the connection without exchanging any data with the server. The ISS Observer provides the possibility to have load balancing based on system parameters. You can specify external commands for getting these results. Therefore, this provides a very flexible solution that is independent of the port used. There is no problem if you only want to use ISS results or only Advisor results for getting the server with the lowest load. For installing ISS on AIX, please refer to Section 4.4, “Installing Network Dispatcher on AIX” on page 271. Basically, we need one configuration file that is almost identical on both AIX machines. The default configuration file in our environment is /etc/iss.cfg, as shown in Figure 109 on page 292.
Chapter 4. Using IBM Network Dispatcher for high availability
291
# # # # # # # # # # #
-----------------------------------------------------------------------ISS configuration file -----------------------------------------------------------------------Configuration of a local cell This is a simple configuration file, with only one (local) cell, and one service running. Parameters for the whole cell
Cell Firewall local AuthKey 10043572 ADE4F354 7298FAE3 1928DF54 12345678 LogLevel info #The dispatcher should be updated every 15 seconds, values are #taken every 5 sec HeartbeatInterval 5 HeartbeatsPerUpdate 3 #Communication port PortNumber
12346
# Individual node data # Node numbers do not have to be sequential # nemesis is prevented from taking over the role # of monitor. Node fwext1 001 Node fwext2 002 # The service is only configured to depend on # one resource -- CPU availability. # Load balancing is therefore performed based only on CPU utilisation # However, ISS will not schedule work for nodes that are unreachable # on the network. # The specified MetricLimits indicate that a node # will not be used if its CPU usage goes over 95% # and will not be put back in the list until CPU usage # goes back down to 80%. ResourceType CPU Metric Internal CPULoad MetricNormalization 0 100 MetricLimits 80 95 Policy Min #Configure the service and the cluster address Service WWW fwcluster 192.168.1.3 80 NodeList fwext1 fwext2 ResourceList CPU SelectionMethod Best Overflow fwext1 Dispatcher ServiceList
fwext1 10004 WWW
Figure 109. ISS configuration for ND
292
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
For a complete documentation of the key words, please see the redbooks Load-Balancing Internet Server, SG24-4993, or IBM WebSphere Performance Pack Usage and Administration, SG24-5233. In this file, you define the cells of ISS and the attributes. A cell is the group of every ISS daemon that should exchange information between them. Keywords: • Cell This defines the cell name and whether it is local or global. Since this node is a member of this cell, it must be defined local. • AuthKey This key is optional. If provided, only other ISS daemons with the same authentication key can connect to this daemon. Therefore, ISS manipulation from external sides can be avoided if there is an authentication key. • LogLevel This defines the number of log entries produced. • HeartbeatInterval <seconds> This defines the time interval, in seconds, between when all other ISS servers should be checked to see if they are still alive. • HeartbeatsPerUpdate This defines, after how many heartbeats, a recalculation of the actual server weights should be invoked. • Port This defines the UDP port that should be used for exchanging ISS information. • Node <nodename> <priority> This list defines all nodes that are in this cell with the corresponding name or IP address and the priority. The lower the number, the higher the priority. If you do not want this node to be able to switch into monitor mode, you have to put the statement NotMonitor into the following line. • ResourceType This is the name of the resource you are going to specify.
Chapter 4. Using IBM Network Dispatcher for high availability
293
•Metric
This defines the resource. ISS has some internal metrics, such as CPULoad or FreeMem, built in that return either the CPU load or the available free memory. If you want to use an external metric resource, you have to define the command that should be executed to calculate this resource. The first returned digit of this command is used as a resource metric. Metric external ps -eaf|wc, for example, uses the number of active processes. • MetricNormalization This defines the range in which the resource value can be. CPU load, for example, has a range from 0 to 100. • MetricLimits This defines emergency scales. If this resource exceeds the upper value, the server should not get requests any longer from the clients. If the resource value has passed the lower value, this server is ready to receive requests again. These values are measured in percentages. • Policy <Min | Max> This defines if lower values means better values (Min) or vice versa. • Service <port> This defines the service for which ISS should calculate the server weights. This service is referenced as name and should use dnsname in the DNS server (even if you do not use DNS) and the IP address of the cluster and the referenced port. • NodeList ... This defines of the nodes that should be used for distributing this service. • ResourceList ... This is the name of the resources that should be used for recalculation of the server weights. These names must be defined previously with ResourceType. • Overflow This is the name of the server that should be used if no other server is available, perhaps because all servers have exceeded one of their resource limits. • Dispatcher <port> This defines on which machine or IP address the dispatcher is running that should receive this information. The default port number is 10004.
294
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
• ServiceList <service> <service> ... This defines which service information should be delivered to the dispatcher. There are only the two firewall machines defined as node in this cell. The primary ND firewall is the ISS monitor with the highest priority (lowest number). Each ISS server reports only to the ND Manager on the local machine. The machine used as overflow must be the local machine. On the other firewall machine, the script is the same, except for the Overflow and Dispatcher statements, which must always point to the local system. In the case of a hardware failure of the primary firewall server, the ISS server on the stand-by machine recognizes this failure, switches into monitor mode, and starts reporting to the local Manager. 4.7.3.3 Firewall configuration In addition to the network ports needed for ND high availability introduced in Section 4.7.2.4, “Firewall Configuration” on page 284, you need to allow the ISS connections that are UDP on the port 12346 (as specified in the configuration file) and ping connections to all servers in the ISS cell. You have to make sure that the proxy service can be connected. See Table 10 for more details. Table 10. Firewall configuration for ISS and ND on AIX
Services
Directions
UDP, port 12346 (heartbeat)
FW 1 external to FW 2 external FW 2 external to FW 1 external
ping (reachability)
FW 1 external to FW 2 external FW 2 external to FW 1 external
4.7.3.4 Starting the software The ND components are configured based on the parameters on the startup call. Therefore, you do not need additional commands to start the ND software. For automatically activating all ND components, see the script in Figure 108 on page 289. The ISS daemon is started with the command: /usr/lpp/nd/iss/bin/issd -c -l
In our example, the configuration file is /etc/iss.cfg and the log file is /var/log/iss.log
Chapter 4. Using IBM Network Dispatcher for high availability
295
/usr/lpp/nd/iss/bin/issd -c /etc/iss.cfg -l /var/log/iss.log
When starting the ISS daemons, you should always start the ISS daemon on the primary first. 4.7.3.5 Monitoring and performance You can check the server weight using the command ndcontrol manager report. This displays the weights generated by the executor, advisors, and ISS for each cluster and port defined. This report is only available on the active ND server. For our environment, we got the following results: ---------------------------------| HOST TABLE LIST | STATUS | ---------------------------------| 192.168.2.254| ACTIVE| | 192.168.2.253| ACTIVE| ------------------------------------------------------------------------------------------------------------------------| 192.168.2.3| WEIGHT | ACTIVE % 30 | NEW % 30 | PORT % 20 | SYSTEM % 20 | ---------------------------------------------------------------------------------------| PORT: 81 | NOW | NEW | WT | CONNECT | WT | CONNECT | WT | LOAD | WT | LOAD | ---------------------------------------------------------------------------------------| 192.168.2.254| 11 | 11 | 10 | 0 | 10 | 0 | 16 | 80 | 11 | 52 | | 192.168.2.253| 8 | 8 | 10 | 0 | 10 | 0 | 3 | 574 | 8 | 52 | ---------------------------------------------------------------------------------------| PORT TOTALS: | 19 | 19 | | 0 | | 0 | | 654 | | 104 | ----------------------------------------------------------------------------------------------------------------------| ADVISOR | PORT | TIMEOUT | -------------------------------| ISS-AI | -1 | unlimited | --------------------------------
Since some of the connections to the application proxy are redirected to the standby server, the overall performance increases. If you do not need to use ISS, there are no changes to the firewall configuration, except for the installation of proxy services local to the firewall. Whether the advantage of sharing load with the standby server is higher than the disadvantage of running additional software on the active server that produces additional system load depends on the environment. ISS prevents the standby system from getting overloaded with requests by switching its status to down. 4.7.3.6 Scalability The performance of this solution can be enhanced further by adding firewall servers. These servers do not require a full installation of ND; the ND software running on the first two firewalls will be dispatching traffic to them. The only component required to be installed is ISS ( intnd.iss.rte).
296
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
The Check Point VPN-1/Firewall-1 configuration is identical to the first two firewalls, with the omission of the ND heartbeat rules, which are not needed. The ISS configuration needs to be updated to include Node statements for the new firewalls. These should also be added in the Nodelist statement. Finally, ndcontrol server add statements should be added to the ND startup script of both dispatchers with the IP addresses of the additional firewalls. As only the first two firewalls have the ND software installed, at least one of the two needs to be operational for our scenario to be available. In this configuration, the ND will use heartbeats to determine dispatcher availability and Advisors/ISS to determine firewall availability. 4.7.3.7 Summary The advantages and disadvantages of this scenario can be summarized as follows. • Advantages With very little extra configuration, it is possible to move some of the system load generated by application proxies to the stand-by system. Because the primary server must also handle NAT and VPN traffic, the distribution must be done with an intelligent algorithm, such as the one provided by ND. Even if you only use Advisors to determine the system load, the load balancing performs properly. If the processing power of the two machines differs, ISS is a good choice. Since ND does is not CPU intensive, the overhead on the primary machine is minimal. • Disadvantages If you want to use ISS, you have to open additional ports on the firewall. In addition, there is a network overhead on the primary firewall because all packets that are processed by local proxies must pass the IP stack twice. Installing additional software always increases complexity of the firewall servers and reduces overall security.
4.7.4 Scenario 3: High availability and load balancing routed traffic In this section, we will test load balancing routed traffic through the firewalls in addition to high availability. 4.7.4.1 Description In Section 4.7.3, “Scenario 2: High availability and load balancing proxied traffic” on page 286, we discussed how to load balance traffic to application
Chapter 4. Using IBM Network Dispatcher for high availability
297
proxies running on the firewalls. In a standalone firewall configuration, the destination IP address for that traffic would be the firewall itself; in the ND configuration discussed, it was the dispatcher’s cluster IP address. In both cases, the destination IP address is configured on one of the firewalls. Routed traffic can not be load balanced in this way. The destination IP address could be any IP address we can route traffic to, which makes it impossible for the ND to intercept it by using normal cluster IP addresses. In order for the dispatcher to process routed traffic, we have to use a wildcard cluster/port configuration. This way, the dispatcher will process any traffic sent to it, regardless of what the destination IP address is. Since we need to configure the wildcard cluster and wildcard port with two sets of servers, one for the secure and one for the insecure side, we can not run the ND on the firewall servers. So the ND needs to be installed on standalone servers, on both sides of the firewalls. As standalone dispatchers on each side would be a single point of failure, we are using two dispatchers on each network, configured for high availability. In order for load balancing to work, the dispatcher must be able to see all the traffic it is to handle. Since the destination of the traffic is not the dispatcher IP, we need to configure the dispatcher as the default route on the routers and clients connected to our LAN. Figure 110 on page 299 details the network topology and the traffic flow for HTTP traffic from the internal network.
298
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
NDext2 Backup
External Router
NDext1 Primary .10 .3
.11
.1
WWW
.253
.254 .254
.253 FW 1
ISS Monitor
DMZ 10.0.0.X (255.255.255.0)
FW 2
rerouted HTTP requests
ISS Monitor
.253
.11
(255.255.255.0) external 192.168.1.0
.254
ISS heartbeat
.10 .3
ISS heartbeat
NDint1 Primary
NDint2 Backup ND heartbeat
(255.255.255.0) internal 192.168.2.0 .1 Internal Router
HTTP requests
Figure 110. Information flow with NDs load balancing routed traffic
In this scenario, we will discuss the configuration of the dispatchers on the internal side of the firewalls. The configuration for the external side dispatchers is identical. 4.7.4.2 Configuration of ND In our environment, the Network Dispatcher software has been installed on IBM RS6000 Servers running AIX. Since ND is also available for Solaris, Red HatTM Linux, and Windows NT/2000, you are not restricted to the RS/6000 platform for your dispatcher servers. The only limitation is that both dispatchers in a high availability setup need to be of the same architecture. The configuration of ND on other operating systems is similar; if you decide to use a platform other than AIX, please consult the Network Dispatcher User’s Guide for the differences in the configuration. The main difference between this configuration and Scenario 2 is the use of the wildcard cluster (0.0.0.0) and the wildcard port (0).
Chapter 4. Using IBM Network Dispatcher for high availability
299
# # # # # # #
ndstart script Start ND with high availability and wildcard cluster This script configures the primary dispatcher It adds clusters, servers and starts all advisors
#start server echo "Starting ND" ndserver start sleep 10 #start executor echo "Starting ND executor" ndcontrol executor start ndcontrol executor set nfa 192.168.2.10 #add heartbeat ndcontrol highavailability heartbeat add 192.168.2.10 192.168.2.11 #add reach targets ndcontrol highavailability reach add 192.168.2.253 ndcontrol highavailability reach add 192.168.2.254 ndcontrol highavailability reach add 192.168.2.1 #add backup information on port 12345 ndcontrol highavailability backup add primary manual 12345 #start manager ndcontrol manager start #add cluster ndcontrol cluster add 0.0.0.0 #add port ndcontrol port add 0.0.0.0:0 #add server ndcontrol server add 0.0.0.0:0:192.168.2.253 ndcontrol server add 0.0.0.0:0:192.168.2.254 #set proportions ndcontrol manager proportions 30 30 20 20 #start advisor ndcontrol advisor start ping 0
Figure 111. ND start script for high availability and load balancing routed traffic
The ndstart script in Figure 111 is similar to the ones used for the other two scenarios. The main differences are: ndcontrol executor set nfa 192.168.2.10
300
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
This command defines the Non Forwarding Address of the dispatcher. Traffic sent to this IP address will not be forwarded by the ND. On the backup dispatcher, this should be point to the server’s own IP address. • ndcontrol highavailability reach add 192.168.2.253 In this case, the reach targets defined are the two firewalls and the router. • ndcontrol cluster add 0.0.0.0 and ndcontrol port add 0.0.0.0:0 These add the wildcard cluster and wildcard port. Any traffic received by the dispatcher that is not for the nfa address will be handled by this cluster. • ndcontrol server add 0.0.0.0:0:192.168.253 This adds the servers to which the traffic should be distributed. In our case, it is the two Checkpoint VPN-1/Firewall-1 servers. • ndcontrol advisor start ping 0 This command starts the ping advisor, which is used to monitor the target firewalls. Since no proxies are running on the firewall, there are no other advisors we can use. This advisor uses the ping response time to determine availability of the firewalls. In our setup, we only used the ping advisor to monitor availability of the firewalls. ISS can also be used to provide feedback on the firewalls’ utilization, as described in Section 4.7.3, “Scenario 2: High availability and load balancing proxied traffic” on page 286. The event scripts detailed in Section 4.7.2, “Scenario 1: High availability with ND” on page 277 are also required on both dispatcher servers. These scripts (goInterfaces, goStandby, goActive, and goIdle) are executed during takeover events and configure an alias IP address to the dispatchers, in this case 192.168.2.3. This alias IP address must be configured on the routers as the next hop for the traffic we want to load balance. On the secure side router, this will be the default route to the Internet.
Chapter 4. Using IBM Network Dispatcher for high availability
301
4.7.4.3 Firewall Configuration Since the ND software has been moved off the firewalls, no rules are required for heartbeats. If you decide to use ISS as well, you need to permit ISS traffic between the two firewalls and between firewalls and dispatchers. In addition, you need to allow pings from the dispatchers for the ping advisor to work. 4.7.4.4 Starting the software All ND components are started and configured by the ndstart script detailed in Figure 111 on page 300. This script needs to be executed from inittab or one of the system startup scripts. 4.7.4.5 Monitoring and performance The dispatcher operation can be monitored using the ndcontrol highavailability status and ndcontrol manager report commands, as already discussed. Since in this case the dispatcher and firewall functions are performed by different servers, the load on each component does not affect the other. The performance of this setup is also improved as the traffic is balanced between all available firewalls. 4.7.4.6 Scalability As in Scenario 2, we can further increase the performance of the service by adding firewalls. If you are using advisors to monitor the firewalls, you do not need to install any ND software on the firewalls. If you are planning to use ISS as well, you should install intnd.iss.rte to all firewalls you are dispatching traffic to. 4.7.4.7 Security The security on the firewalls is improved, since no additional ports need to be opened for ND communications. However, since the Network Dispatcher is installed on dedicated servers, additional steps need to be taken to secure these servers, especially the ones on the external network. 4.7.4.8 Summary The advantages and disadvantages of this scenario can be summarized as follows. • Advantages This solution has the advantage of minimum additional configuration required on the firewalls. It uses an intelligent load balancing mechanism
302
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
to distribute traffic between the available firewalls. If the processing power of the available firewalls differs, ISS can be used to balance traffic, based on each firewall’s capacity. • Disadvantages The cost of this solution is very high, as six servers are required for a fully resilient environment. The total cost can be reduced by using a less expensive platform for the dispatchers, for example, Red Hat TM Linux. As the dispatchers are installed on dedicated servers, they are no longer protected by the firewall. These servers require additional configuration to improve security.
Chapter 4. Using IBM Network Dispatcher for high availability
303
304
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Chapter 5. Implementing High Availability with VPNs This chapter contains a set of step-by-step instructions on the implementation of HACMP with VPN-1/Firewall-1 for SecuRemote failovers. With the HACMP solution, a new test environment was created using Ethernet for LAN connectivity.
5.1 SecuRemote Client installation The SecuRemote client is designed to be used on a Windows 9x or Windows NT based system (Intel only). The minimum disk space requirements is 6 MB and the minimum memory is 16 MB for Windows 9x and 32 MB for Windows NT.
5.1.1 Installation procedure First, it is recommended that you have network connectivity and that TCP/IP is working correctly. This can be checked by pinging your LAN router or one of the hosts that sits on your LAN. If you get a successful response, then you know that your LAN connectivity is fine. Carry out the following steps for installing SecuRemote: 1. Place the Check Point media containing the SecuRemote client into the CD-ROM drive (it should autostart; if it does not, then double-click the My Computer icon and then double-click the icon for the CD-ROM drive). If you have downloaded the executable, then place it into a temporary directory and execute it. 2. The first panel you will see asks you to read the “Important information” sections relating to the type of product you wish to use. Select the option for Purchased products. 3. Click Next to go to the License Agreement panel. 4. Read the license, and if you accept it, then click Yes. 5. Select Mobile/Desktop Components which includes the VPN-1 SecuRemote product, then click Next. 6. On the Mobile/Desktop Components panel, select the components you wish to install. We selected both the VPN-1 SecuRemote products and the Session Authentication Agent. This will commence the installation process. 7. An information panel then pops up; just click Next.
© Copyright IBM Corp. 2001
305
8. The next panel asks you for the destination directory where the SecuRemote files will be installed. It is recommended that you install to the default location on the C drive, unless you are short of space on this drive, in which case select an alternative drive. Once you are happy with the install directory, click Next. 9. The installation completes and you will be asked whether you wish to install the Desktop Security support. If you have a Policy Server, then you may wish to install the Desktop Security support. As we do not have a Policy Server in our setup, we selected to install SecuRemote without the Desktop Security option, as shown in Figure 112.
Figure 112. SecuRemote Desktop Security option
10. If you chose not to install the Desktop Security support, you will be asked on which adapters you wish to install SecuRemote, as shown in Figure 113 on page 307. In our test environment, we installed SecuRemote on all our network adapters; however, you would normally only install SecuRemote on dial-up adapters. When you have selected the appropriate option you require, click Next.
306
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 113. SecuRemote FW1 Bindings
11. The installation continues and at the end you should see a panel informing you that the setup will complete upon a reboot; just click OK. You will now go on to the installation of the Authentication agent. On the first panel, read the welcome information and then click Next to continue. 12. As before, you will be asked to select the destination directory for the installation directory. Select the location you require and then click Next, as shown in Figure 114 on page 308.
Chapter 5. Implementing High Availability with VPNs
307
Figure 114. SecuRemote destination location
13. The setup procedure completes and you should be given the option to reboot your computer now or at a later stage. We recommend that you reboot at this point. The installation of the SecuRemote client is now complete. Configuration of SecuRemote will be done at a later stage when the firewalls have been configured.
308
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
5.2 Test network design As mentioned earlier in this book, the new version of VPN-1/Firewall-1 has the ability to synchronize the state tables between two or more Firewall modules. The state synchronization allows for the preservation of active TCP sessions at the point of a failover. This also allows for the preservation of active VPN sessions between a SecuRemote client and the VPN-1/Firewall-1 module. The installation and basic configuration of AIX 4.3.3, VPN-1/Firewall-1, and HACMP is the same as that described in earlier chapters. This section will document the changes to the configurations.
5.2.1 Test network topology Figure 115 on page 310 shows the network plan for our VPN-1/Firewall-1 and HACMP testing. As before, our test environment consists of two RS/6000 machines (called cpfw1 and cpfw2). There are four networks attached to the firewalls: • fw_ext, which represents the “non-secure” or external network. This could be the Internet, for example. • fw_dmz, which is a demilitarized zone (DMZ) for publicly accessible Web and FTP servers. • fw_man, which is a firewall management LAN that connects just the two firewalls. In our scenario, we used a single RJ45 crossover cable attached to the on-board ethernet adapters of the two firewalls. • fw_int, which represents the internal network, for example, a company’s intranet.
Chapter 5. Implementing High Availability with VPNs
309
fw_ext 192.167.1.0/24 .1 fw_dmz 10.7.0.0/24 en2
en3 en2
cpfw1 .....253 en0
.1
en3
internetpc web
cpfw2 .....254
en1 en0
en1
fw_int 192.167.2.0/24 .154
gui
fw_man 10.8.0.0/24 Figure 115. Network Topology for VPN-1y
The addressing above shows only the actual addresses of all the hosts. The HACMP cluster addresses are .3 on each of the LANs, excluding the Management LAN. It was decided that the Management LAN should not have any cluster addressing, as this might complicate the state table and ntp synchronization. Table 11 shows the HACMP topology used in this setup. Table 11. HACMP Topology for firewall adapters
Adapter IP Label
310
Network Type
Network Name
Network Attribute
Adapter Function
Node Name
fw1_ext_boot
ether
ext_net
public
boot
cpfw1
fw1_dmz_boot
ether
dmz_net
public
boot
cpfw1
fw1_int_boot
ether
int_net
public
boot
cpfw1
fw2_ext_boot
ether
ext_net
public
boot
cpfw2
fw2_dmz_boot
ether
dmz_net
public
boot
cpfw2
fw2_int_boot
ether
int_net
public
boot
cpfw2
fw_ext
ether
ext_net
public
service
fw_dmz
ether
dmz_net
public
service
fw_int
ether
int_net
public
service
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
The following are the entries in /etchosts and /.rhosts: /etc/hosts: 192.167.2.3 192.167.2.253 192.167.2.254 192.167.1.3 192.167.1.253 192.167.1.254 10.7.0.3 10.7.0.253 10.7.0.254
fw_int fw1_int_boot fw2_int_boot fw_ext fw1_ext_boot fw2_ext_boot fw_dmz fw1_dmz_boot fw2_dmz_boot
10.7.0.1 192.167.2.1 10.8.0.254 10.8.0.253
www fwtest cpfw2_man cpfw1_man
cpfw1 cpfw2 cpfw1 cpfw2 cpfw1 cpfw2
/.rhosts fw_int root fw1_int_boot fw2_int_boot fw_ext root fw1_ext_boot fw2_ext_boot fw_dmz root fw1_dmz_boot fw2_dmz_boot cpfw1 root cpfw2 root cpfw1_adm root cpfw2_adm root
root root root root root root
Chapter 5. Implementing High Availability with VPNs
311
5.3 VPN-/Firewall-1 configuration for VPNs This section describes, in detail, what changes need to be made to specific VPN-1/Firewall-1 configuration files and what changes need to be made to the Security Policy.
5.3.1 Configuring VPN-1/Firewall-1 state synchronization It is relatively simple to enable VPN-1/Firewall-1 state table synchronization between the two RS/6000 firewalls in the cluster. All that is required is the creation of a /usr/lpp/CPfw1-41/conf/sync.conf file. This file should contain the IP address of the interface of the partner firewall that will be used for state synchronization. In our scenario, we used the Management LAN interfaces; as these did not have HACMP on them, we felt this ensured that the firewalls would not get confused with moving cluster addresses: cpfw1# cat /usr/lpp/CPfw1-41/conf/sync.conf 10.8.0.254 CTRL D cpfw2# cat /usr/lpp/CPfw1-41/conf/sync.conf 10.8.0.253 CTRL D
5.3.2 Changes to the Security Policy The following steps describe the changes that need to be made to the firewall Security Policy to enable the configuration of Gateway Clusters. 1. In the High Availability tab under the Properties Setup panel (Figure 116 on page 313), check Enable Gateway Clusters and Install Security Policy on Gateway Clusters only. The reason for this is to allow the Gateway Cluster object to be available when defining a new network object and to ensure that any changed Security Policies are installed on both firewalls and not just one. When you are happy with your selections, click OK.
312
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Figure 116. Properties Setup - High Availability
Chapter 5. Implementing High Availability with VPNs
313
2. Next, create a new Gateway Cluster object. Select Manage > Network Objects > New > Gateway Cluster. Under the first tab, General, add the name of the Gateway Cluster; in our scenario, this was cpfw. Then add the Cluster address, which in our scenario was 192.167.1.3. You need to ensure that this address is the service address of the interface that the SecuRemote session will be authenticating and creating the IPSEC tunnel with. This is normally the external interface of the firewall. For the Location, select Internal and for VPN-1/Firewall-1 Installed Version, select 4.1. When you are happy with your selections, click OK. This process is detailed in Figure 117.
Figure 117. Gateway Cluster Properties -General Tab
314
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
3. You need to change the two firewall Workstation objects, created earlier, to enable them to be controlled under the Gateway Cluster. All you need to do is to check the box that says Member of Gateway Cluster and click OK, as shown in Figure 118.
Figure 118. Workstation Properties -General Tab
Chapter 5. Implementing High Availability with VPNs
315
4. You now need to create a Network object for the Encryption Domain. This is the domain that will accept SecuRemote encrypted sessions. To create this, go to Manage > Network Objects > New > Group. Give the domain a name and add the servers that you want accessible, as shown in Figure 119, through SecuRemote sessions. In our scenario, we just added the Web server. When you are happy with your selections, click OK.
Figure 119. Group Properties
316
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
5. If you now go back to the Gateway Clusters object, under the Cluster Members tab, you should see the two firewall network objects, as shown in Figure 120.
Figure 120. Gateway Cluster Properties -Cluster Members Tab
Chapter 5. Implementing High Availability with VPNs
317
6. The next step is to ensure that you have the correct authentication methods. Under the Authentication tab you need to ensure that VPN-1/Firewall-1 Password is checked, as shown in Figure 121. You will find that a number of the options are also checked; in our scenario, we decided to leave this as it was.
Figure 121. Gateway Cluster Properties -Authentication Tab
318
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
7. The next step is quite important, as it will set up the VPN Encryption Domain, apply the domain to the cluster, and ensure that the domain is exportable for the SecuRemote clients. First, go to the VPN tab and under the section labelled Domain check the option Other, as shown in Figure 122. This should allow you to select the Encryption Domain defined earlier. Also, check the option Exportable for SecuRemote. Under the Encryption schemes defined section, check IKE and FWZ.
Figure 122. Gateway Cluster Properties -VPN Tab
Chapter 5. Implementing High Availability with VPNs
319
8. You now need to define the IKE Properties. This is done by selecting IKE and then selecting Edit. Under Key Negotiation Encryption Methods, check the box labelled DES, as shown in Figure 123. In our scenario, we tested DES as the key negotiation encryption method. For Hash Method, select both MD5 and SHA1. For Authentication Method, check Pre-Shared Secret and for the last two options, Supports Aggressive Mode and Supports Subnets, check them both. When you are happy with your selections, select OK.
Figure 123. Gateway Cluster Properties -VPN Tab -IKE Properties
320
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
9. Now you need to set the FWZ Properties. Select FWZ, then Edit. First check the option Local; this specifies that this workstation’s Certificate Authority is the Management Module on this machine. You then need to generate keys for this Certificate Authority (note that you would not have this option if you had selected remote). After the keys have been generated, you should see something similar to Figure 124.
Figure 124. Gateway Cluster Properties -VPN Tab -FWZ Properties
Chapter 5. Implementing High Availability with VPNs
321
10. Next, you need to select the DH Key Tab, as shown in Figure 125. All you need to do is to generate the Diffie Hellman (DH) Key. Once the key has been generated, click OK to return to the VPN Tab and then click OK again to close the Gateway Cluster Properties panel. That is all that is required in setting up the Gateway Clusters.
Figure 125. Gateway Cluster Properties -VPN Tab -FWZ Properties
322
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
11. The last steps in this process are to define the Users that will be using SecuRemote to connect to the VPN-1/Firewall-1 module. First select Manage > Users > New > Default, as shown in Figure 126. In the General tab, enter the name of the user; we used user_1. Go to the Encryption tab and check the option IKE under Client Encryption Methods. Under Successful Authentication Track, check Log.
Figure 126. User Properties -Encryption Tab
Chapter 5. Implementing High Availability with VPNs
323
12. You need to edit the IKE Properties; just select Edit to go to the IKE Properties panel, as shown in Figure 127. First, select the Authentication tab, check Password, and then enter your password. Next, select Encryption, check Encryption + Data Integrity (ESP) under the Transform section and SHA1 under the Data integrity section. Under Encryption Algorithm, select the algorithm you require; as explained earlier, we selected DES. When you are happy with your selections, click OK.
Figure 127. User Properties -IKE Properties -Encryption Tab
324
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
5.3.2.1 Firewall Rules for SecuRemote Figure 128 shows the rules we added to allow SecuRemote encrypted sessions to our Encryption Domain.
Figure 128. VPN-1/Firewall-1 Rules for SecuRemote Sessions
Chapter 5. Implementing High Availability with VPNs
325
5.4 SecuRemote client configuration To use SecuRemote for encrypting traffic to our Encryption Domain, we need to define a site. To bring up the SecuRemote panel, go to the Window Start menu, select Programs > SecuRemote. This should start the SecuRemote daemon; to view the site’s panel, you will need to double-click the SecuRemote icon on the Task Bar. You now need to select Sites > Make New. The name for the site is the name of the VPN-1/Firewall-1 module where the Encryption Domain is defined. You now need to add in the name of the site and its IP address; we used cpfw for the name and 192.167.1.3 (the external cluster address) for the IP address. Click OK; this should fetch data from the site. If the site definition is successful, you will be reminded to verify that the information in the site panel is correct. This is to confirm that you have indeed communicated with the site and not with an imposter. For FWZ, which is what we used, the IP address and Key ID should be verified, then click OK. At this point, you should see the new site icon, as shown in Figure 129.
Figure 129. VPN-1/Firewall-1 SecuRemote panel
326
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
You should now be able to test an encrypted session. In our rules, we allowed for encrypted Telnet and FTP sessions to go to the Web server, so this is what we tested. When we attempted a telnet, we got an authentication panel like Figure 130. We filled in our User name and password, as was defined on the VPN-1/Firewall-1 Module, and then clicked OK.
Figure 130. SecuRemote User Authentication panel
If everything was configured correctly, you should see a panel similar to Figure 131 on page 328, which shows that the authentication was successful. We were then able to login successfully.
Chapter 5. Implementing High Availability with VPNs
327
Figure 131. SecuRemote successful User Authentication
328
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
5.5 Testing and test plans To prove how highly available our firewalls are, we devised a series of VPN-1/Firewall-1 tests and recorded our findings as follows.
5.5.1 Firewall configuration synchronization 1. Boot VPN-1/Firewall-1 Modules with fw2 as the primary HACMP firewall. 2. Log on to the Management Server on fw1 and make a rule change. 3. Install the Security Policy on the firewall cluster cpfw. 4. Test the rule change on fw2, in our case preventing http access to the Web server. 5. Fail fw2 over to fw1 and test that the rule change had propagated to fw1. Results: The results were successful. As earlier, we were able to access Web pages on the Web server through both firewalls.
5.5.2 VPN-1/Firewall-1 state table synchronization 1. Boot VPN-1/Firewall-1 Modules. 2. Open a telnet session to both Firewalls. 3. Issue the command fw tab -t connections -s to show the active connections in the two firewall’s state tables. 4. Open a number of different connections to the Web server. 5. Re-issue the fw tab command and compare the two outputs. Results: When we first issued the command, we observed the following on the two firewalls: fw1: root@cpfw1:/u/root/# fw tab -t connections -s HOST NAME ID #VALS localhost connections 22 11 fw2: root@cpfw2:/u/root/# fw tab -t connections -s HOST NAME ID #VALS localhost connections 22 11
Chapter 5. Implementing High Availability with VPNs
329
After we had opened a number of Telnet and FTP sessions, we observed the following: fw1: root@cpfw1:/u/root/# fw tab -t connections -s HOST NAME ID #VALS localhost connections 22 15 fw2: root@cpfw2:/u/root/# fw tab -t connections -s HOST NAME ID #VALS localhost connections 22 15
We conducted this test a number of times and the results showed both machines with identical values. This suggests that the two VPN-1/Firewall-1 Modules were synchronizing their state tables as expected.
5.5.3 Passive FTP using NAT 1. Boot up the two VPN-1/Firewall-1 Modules with fw2 as the primary HACMP firewall. 2. Prepare a large file for transfer on the Web server. 3. Open and authenticate a SecuRemote FTP session, with the VPN-1/Firewall-1 Module to the Web server. 4. Begin a download of the file. 5. Halfway through the transfer, fail fw2. 6. Observe the results. Results: When we failed fw2, the FTP session seemed to hang for a while and then recommence. After the transfer was complete, we compared the two file sizes and they were exactly the same. This confirmed that VPN failover did work and that the user would not need to re-connect or re-authenticate. To be sure, we ran this test five times, and the results were ALL the same.
5.5.4 Telnet 1. Boot up the two VPN-1/Firewall-1 Modules with fw2 as the primary HACMP firewall. 2. Open and authenticate a SecuRemote FTP session with the VPN-1/Firewall-1 Module to the Web server. 3. Start a ping to the Web server’s own interface. This is done so that we can see if there are any interruptions and for how long. 4. Fail fw2 over to fw1. 5. Observe the results.
330
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Results: In our first test, when we failed fw2 to fw1, the telnet session hung for a short period and then broke. After fw1 took over the cluster address, we attempted to reconnect; this worked fine and did not require any re-authentication. We decided to run the test again. However, this time we decided to increase the timeout on the telnet session. It seems that our Exceed telnet client had a very short timeout and it may be that this closed the session before fw1 could take over properly. In the second test, we again had the hang; however, this time the session held. One unusual thing we noticed was that all the ping responses that had taken place while the telnet session had hung suddenly scrolled down the panel and then continued as normal. This suggests that no information from the telnet session was lost during the failover.
5.6 Summary Previously to VPN-1/Firewall-1 Version 4.1, the only way to provide state table synchronization, and thus VPN failover, was to have a shared disk/volume group between the two Firewall Modules. This meant an increase in hardware costs and the possibility of a single point of failure (the disk). With the introduction of state table synchronization and with VPNs becoming more widely used, Checkpoint has provided the basis for true VPN failover. The testing that we have carried out here has proven that AIX on an RS/6000, together with HACMP and VPN-1/Firewall-1, will provide any organization with an extremely powerful highly available firewall solution. Although we did not have time to test VPN failover with VPN-1/Firewall-1 and Network Dispatcher, there should be no reason why this should not work. Most of the changes that enable VPN failovers were done on VPN-1/Firewall-1, and not HACMP.
Chapter 5. Implementing High Availability with VPNs
331
332
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Appendix A. Introduction to HACMP This chapter complements the HACMP scenario discussed in Chapter 3, “High availability for VPN-1/FireWall-1” on page 149.
A.1 Technical overview of HACMP This section is addressed to beginners in HACMP and is intended to give an understanding of what needs to be done in HACMP in order to configure a highly available firewall. Experts on HACMP may want to skip to Section A.2, “Design consideration” on page 342 A.1.1 Quick review of basic concepts HACMP first identifies a set of cluster resources essential to providing a critical service. Cluster resources can include both hardware and software. They can be such things as disks, volume groups, file systems, network addresses, and applications. HACMP then defines relationships between cluster nodes, defining the role that each cluster node will play in protecting the critical resources. HACMP includes an agent program, called the Cluster Manager, running on each node. The Cluster Manager runs as a daemon (clstrmgr) in the background and is responsible for monitoring and managing the cluster. How the cluster reacts to any of a number of cluster events is determined by shell scripts, called event scripts, that you can modify to suit your particular requirements. Each cluster node has various network interfaces over which the Cluster Managers on neighboring nodes exchange periodic messages called keepalives or heartbeats. The main task of the Cluster Manager is to use these keepalive packets (KAs) to monitor nodes and networks in the cluster for possible failures. A change in the status of the cluster (caused by a failure or a reintegration) is called a cluster event. When the Cluster Manager detects an event, it runs one or more of a fixed set of customizable shell scripts. These scripts are able to take care of hardware failures as well as application restarts. Depending on how the cluster has been configured, the scripts are run at the correct time to move protected resources to a standby machine in the cluster.
© Copyright IBM Corp. 2001
333
The following terminologies are frequently used in HACMP: • Cluster A cluster is a set of independent systems (for the purpose of our discussion, these are RS/6000s) connected over a network. You can look at a cluster as an entity that provides certain services, critical and noncritical, to end users. A cluster contains resources, such as an interface (local area network or asynchronous), over which users access the service provided, applications that the users execute, and the data that is either used or generated by these applications. • Node A node is a processor, that is, a machine that runs both AIX and the HACMP. In an HACMP cluster, each node is identified by a unique name. A node may own a set of resources. • Clients in an HACMP cluster A client is a system that can access the nodes in a cluster over a public local area network. Clients each run a front end or client application that queries the server application running on the cluster node. In the firewall scenario discussed in Section 1.2, “Compartmentalized firewall environment design” on page 6, Web servers and/or mail servers on the DMZ network and routers connecting firewall servers to the Internet and intranet are the clients from the standpoint of HACMP. • Resource group Cluster resources consists of: - Disks - Volume groups - File systems - IP addresses - Application servers HACMP provides high availability by: - Identifying the set of cluster resources that are essential. - Defining takeover relationships among the cluster nodes. HACMP takes over the resources defined in a resource group when it detects a failure event in a cluster. There are two kinds of resource groups to consider:
334
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
• Cascading resource group When a failover occurs in a cascading resource group, the active node with the highest priority acquires the resource group. When a node with a higher priority for that resource group reintegrates into the cluster, it takes back control of the resource group from nodes with lesser priorities. Use cascading resource groups when you have a strong preference for which cluster node you want to control a resource group. For example, you may want the cluster node with the highest processing capabilities to control the resource group. • Rotating resource group When a node managing a resource group fails in a rotating resource group, the next available node on its boot address (with the highest priority for a resource group) acquires that resource group. However, unlike cascading resource groups, when a failed node subsequently rejoins the cluster, it does not reacquire any resource groups; instead, it rejoins as a standby node. Use rotating resource groups when avoiding the interruption in service caused by a failover is more important than determining which particular node controls a resource group. • Service adapter versus standby adapter Adapters in an HACMP cluster are identified by a label and a function: - Adapter Label The adapter label, for TCP/IP networks, is the name in the /etc/hosts file associated with a specific IP address. Thus, a single node will have several adapter labels and IP addresses assigned to it. You should not confuse the adapter labels with the hostname of the machine. - Adapter Function In an HACMP cluster, each adapter has a specific function that indicates the role it performs in the cluster. An adapter’s function is either service, standby, or boot: • Service adapter The service adapter is the primary connection between the node and the network. It is the interface over which the end users or client applications access the critical service that the node is offering. A node has one or more service adapters for each physical network to which it connects. • Standby adapter A standby adapter backs up a service adapter on the same network. By having a standby adapter, HACMP can handle not only IP
Appendix A. Introduction to HACMP
335
address takeover in case of a node failure, but also adapter swap in case of an adapter failure. Figure 132 illustrates an adapter swap by a standby adaptor.
Before Network Adapter Swap
svc
stby
After Network Adapter Swap svc stby
Figure 132. Adapter swap by a standby adapter
• Boot adapter IP address takeover is an HACMP facility that allows the standby adapter on one node to assume the network and/or hardware address of a failed node’s service adapter. When the failed node reboots, its service adapter needs a second address to boot with in order to coexist in the same network with the takeover node. This is because its original IP address is already in use in the network by the takeover node. Hence, a boot adapter label and IP address are assigned to each service adapter for which IP address takeover is specified. The failed node boots with this address and changes over to the service address only after the takeover node has released it during the reintegration process. • IP address takeover and hardware address swapping IP address takeover is a networking capability that allows a node to acquire the network address of a node that has left the cluster. It can be configured to take over the IP address as well as the hardware address of that service adapter. The service adapter could be on the same node or on a different node in the cluster. The process of moving the IP address of a failed service adapter to the standby adapter on the same node is
336
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
referred to as an adapter swap. The process of moving the IP address of a service adapter of a failed node to a standby adapter on a takeover node is referred to as IP Address Takeover (IPAT). The process of moving a hardware address between two network adapters is referred to as hardware address swapping. Figure 133 illustrates IP address takeover in a rotating resource group.
IPAT in Rotating Resource Before IP Address Takeover Client A
svc
stby A
Node A
Active node
After IP Address Takeover
Client B
stby B
Client A
Boot B
Node B
svc
Node A
Standby node
Client B
stby A
stby B
Boot B svc
Node B
Active node
Figure 133. IP address takeover in rotating resource
• Shared disks and shared volume groups A shared disk is a disk that is physically connected to multiple nodes. A shared volume group is a volume group that consists entirely of shared disks and is defined to multiple systems to which the disks are physically attached. • Serial network A serial network is a point-to-point connection between two cluster nodes that allows Cluster Manager control messages and heartbeat traffic to continue in the event the TCP/IP subsystem fails. A serial network can be a raw RS232 connection or a SCSI-2 Differential bus using Target Mode SCSI. Since we are not using any shared disks, RS232 is used.
Appendix A. Introduction to HACMP
337
A.1.2 Components of HACMP software There are four daemon processes within HACMP. One is mandatory, and the others are optional to run. The functions of each are: • Cluster Manager (clstrmgr) The Cluster Manager runs on each cluster node and is responsible for monitoring local hardware and software subsystems, tracking the state of the cluster peers, and acting appropriately to maintain the availability of cluster resources when there is a change in the status of the cluster. The Cluster Managers on neighboring nodes exchange periodic messages, called keepalive packets (or heartbeats), to do this monitoring. Changes in the state of the cluster are referred to as cluster events. The Cluster Manager responds to cluster events by executing a set of scripts corresponding to that particular event. • Cluster SMUX Peer (clsmuxpd) An HACMP cluster is dynamic and can undergo various changes in its state over time. An example of this would be a node joining or leaving the cluster or a standby adapter taking over from a service adapter. If the clients are not aware of the changes to the cluster, all the changes may not be completely transparent to the end user. If the clients are aware of the changes in the state of the cluster, they can react to these changes and possibly mask them from the end user. The HACMP software provides notification of cluster state changes to clients through the clsmuxpd and clinfo daemons. The clsmuxpd daemon continually gathers cluster status information from the clstrmgr daemon and provides the information to the snmpd daemon. The clsmuxpd daemon also maintains an updated topology map of the cluster as it tracks events and resulting states of the cluster. • Cluster Information daemon (clinfo) The Cluster Information Program (Clinfo), the clinfo daemon, is an SNMP-based monitor. Clinfo, running on a client machine or on a cluster node, queries the clmuxpd updated cluster information. Through Clinfo, information about the state of an HACMP cluster, nodes, and networks can be made available to clients and applications. The command /usr/sbin/cluster/clstat is used to query the information. • Cluster Lock Manager (cllockd) The Concurrent Resource Manager subsystem of HACMP implements advisory locking to ensure the integrity of data that is being concurrently accessed by applications running on multiple nodes in a cluster. We do not
338
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
use Cluster Lock Manager at all in our scenario. You can query the status of these daemons by issuing: # lssrc -g cluster Subsystem Group clstrmgr cluster clsmuxpd cluster clinfo cluster
PID 12672 11394 13424
Status active active active
There is no entry for cllockd because it was not installed. A.1.3 HACMP log files HACMP writes messages into the log files described below. These are useful for problem debugging. • /usr/es/adm/cluster.log The /usr/adm/cluster.log file contains time-stamped, formatted messages generated by HACMP for AIX scripts and daemons. • /tmp/hacmp.out The /tmp/hacmp.out file contains very detailed messages generated by HACMP event scripts. In verbose mode, this log file contains a line-by-line record of every command executed by these scripts, including the values of all arguments to these commands. • /usr/es/sbin/cluster/history/cluster.mmdd The /usr/sbin/cluster/history/cluster.mmdd file contains time-stamped, formatted messages generated by HACMP for AIX scripts. The system creates a cluster history file every day, identifying each file by the file name extension, where mm indicates the month and dd indicates the day. • /tmp/cm.log Contains time-stamped, formatted messages generated by HACMP for AIX clstrmgr activity. A.1.4 HACMP cluster events An HACMP cluster environment is event driven. An event is a change of status within a cluster that the Cluster Manager recognizes and processes. A cluster event can be triggered by a change affecting a network adapter, network, or node, or by the cluster reconfiguration process exceeding its time limit. When the Cluster Manager detects a change in cluster status, it executes a script designated to handle the event and its subevents.
Appendix A. Introduction to HACMP
339
The following are some examples of events the Cluster Manager recognizes: • node_up and node_up_complete events – a node joining the cluster. • node_down and node_down_complete events – a node leaving the cluster. • network_down event – a network has failed. • network_up event – a network has connected. • swap_adapter event – a network adapter failed and a new one has taken its place. The flowchart in Figure 134 shows the series of event scripts that are executed when the first node joins the cluster. The sequence in which event scripts get executed on active nodes after a cluster node fails is shown in Figure 135 on page 341.
1
node_up
node_up_local
Joining Node Cluster Manager
acquire_service_addr
get_disk_vg_fs
2
node_up_complete
node_up_local_complete
start_server
Figure 134. Node is brought up
340
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
1
node_down
node_down_local
acquire_takeover_addr
Member Nodes Cluster Manager
get_disk_vg_fs
2
node_down_complete
node_down_remote_complete
start_server
Figure 135. Node fails
A.1.5 Customizing events The Cluster Manager has a default behavior, coded into the event scripts, in response to each event. You can add further functionality to the event processing by using the event customization facility that HACMP provides. Pre and post-event scripts By defining a pre and post-event script, you can specify scripts to be run before and after the execution of the default script for any event. See Figure 136 on page 342.
Appendix A. Introduction to HACMP
341
Event Notify Script
Pre-Event Script
Recovery Script
Event Script exit = 0
* count>0
YES
NO
Post-Event Script
*count = Recovery Count
Event Notify Script
Figure 136. Pre and post-event script flow
A.2 Design consideration There can be many different approaches in designing high availability. Please regard this section as a reference point. • Choosing a platform The primary objective of our design was to devise a highly available solution as well as to keep hardware costs as economical as possible. One of the major factors affecting hardware cost is the number of I/O slots provided with a machine. From this viewpoint, RS/6000 43P is an economical solution in terms of price and performance for many highly available implementation scenarios. However, all the concepts described in this redbook apply to other RS/6000 models as well. For a comparison of available 43P and F50 machines, refer to Table 12. Table 12. H/W specification comparison between IBM RS/6000 43P and F50
342
Machine Type
43P Model 140
43P Model 150
F50
Number of processors
1
1
1~4
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Machine Type
43P Model 140
43P Model 150
F50
Processor type
PowerPC 604e
PowerPC 604e
PowerPC 604e
Clock rates
332 MHz
375 MHz
332 MHz
Slots
3 PCI + 2 PCI/ISA
5 PCI
7 PCI + 2 PCI/ISA
Relative OLTP performance
5.3
6.0
10.0 ~ 32.8
• Shared disk In a HA firewall setup, it is necessary to have a method to synchronize the filter rules between two or more clustered firewall machines. A shared disk, which was discussed in “Shared disks and shared volume groups” on page 337, can be used in order to provide continuous access to the filter rules. If a firewall machine fails, HACMP will take over a shared disk to another machine. There are two disadvantages of having a shared disk. The filter rule files are usually so small in size that most of the disk space will be wasted. The second disadvantage is that HACMP usually takes more time to take over a hard disk than to take over an IP address. HACMP spends most of the time to run fsck before mounting file systems. The longer the takeover time is, the bigger the security exposure becomes. We decided not to use a shared disk; instead, we devised a way to synchronize the filter rules whenever there is a change in filter rule. Since a firewall configuration is not static and changes from time to time, it is necessary to synchronize the firewall configuration in a high availability scenario. The firewall configuration is made up of several files that can be viewed and easily copied. When starting or updating the firewall, it reads its configuration from these files. In order to synchronize the firewall configuration, all changed files need to be copied, and the firewalls need to be updated for the configuration changes to be activated. When copying files to synchronize systems, there are two problems. The first problem is that the files could have changed on multiple systems at the same time, and there would have to be a decision made on which files to favor and which to discard. The other problem is that when copying files, it would be necessary to assure that all the files are correctly transferred without any changes or information loss.
Appendix A. Introduction to HACMP
343
We found two possible modes of operation. The first is characterized by the need to have a synchronized firewall configuration at all times. This leads to an automated mechanism that constantly checks files on firewall nodes. Whenever any two files differ, this mechanism would transfer the newest file to the other node and update its firewall configuration. This automatic mode of operation has the advantage in that it does not need any user interaction and that the firewall configurations are in synchronization after minor time delays. However, if an administrator is not aware of these automatic changes, there may be a problem with an unwanted synchronization and loss of information. To prevent such a case, a manual mechanism is preferred. When there are changes to firewall configuration that first need to be tested in real life, it could make sense to keep the old and working configuration on the other node. In case of problems, a simple takeover would resolve the situation. The manual mechanism needs to be run by the system administrators. They must be able to decide which parts of the configuration will be synchronized and if the old or new files should be used for this synchronization. • Enabling packets The default installation of HACMP requires the following ports to be defined in /etc/services: clinfo_deadman
6176/tcp
clm_keepalive
6255/udp
cllockd
6100/udp
clm_pts
6200/tcp
clsmuxpd
6270/tcp
clm_lkm
6150/tcp
clm_smux
6175/tcp
godm
6177/tcp
To fortify security, a firewall installation requires keeping possible connections to a minimum. Among the above entries, clm_keepalive must be allowed for normal operation of HACMP. godm is used by HACMP when HACMP ODMs (/etc/objrepos/HACMP*) are synchronized; hence, it has to be permitted in firewall filter rules during initial configuration stage and whenever there is a change in HACMP configuration. The other packets can be denied in filter rule definition. When clsmuxpd and clinfo are going to be used, port 161/udp must be permitted to accept connections from the SNMP. The detail filter rule is discussed in Section
344
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
3.10.1, “A more granular security policy for HACMP services” on page 235. The usages of other ports are: clsmuxpd, clm_smux, and clinfo_daedman ports are used for clsmuxpd and clinfo, but they are internal traffics, and all relevant information is carried by snmpd. clm_pts is used only for the HACMP/ES feature. cllockd and clm_lkm are for lock managers that are required for only concurrent access to a logical volume. Hence, all of them are not likely to be used in usual highly available firewall implementation cases. In addition, you need an entry in /etc/inetd.conf to use godm: godm
stream tcp
nowait
root
/usr/sbin/cluster/godmd
Be aware that this entry will be commented out when you install the eNetwork firewall. • ARP cache clear and Hardware address swapping (or MAC address takeover) In a TCP/IP network, all the systems residing on the same subnet as the firewall are kept on the MAC address of the firewall in their ARP caches. This can cause a problem when IP address takeover occurs, because a standby adapter with a different MAC address assumes the IP address while ARP caches of other hosts are still keeping the old MAC address. Hardware address swapping removes this problem. With hardware address swapping enabled, a node assumes not only the IP addresses but also the MAC addresses of a failed node. Without hardware address swapping, TCP/IP clients and routers that reside on the same subnet as the cluster nodes must have their ARP cache updated. The use of hardware address swapping is highly recommended for clients that can not easily update their ARP cache, for instance, routers and Web servers that run different operating systems other than AIX. However, there may be some cases in which hardware address swapping can not be applied. For such a case, you need a different approach. HACMP provides a way to ping all the hosts from the firewall, which takes over an IP service from its peer. You need to make sure that the cluster.base.client.rte fileset is installed and then edit the PING_CLIENT_LIST in /usr/sbin/cluster/etc/clinfo.rc on each firewall machine and add the IP addresses of each host that resides on the same subnet. As soon as the clinfo daemon of the takeover firewall detects a failure event, it invokes the clinfo.rc script, and the script pings the host specified in the list.
Appendix A. Introduction to HACMP
345
For further information on ARP cache issues, refer to HACMP for AIX V4.3 Install Guide, SC23-4278-01. • Disk mirroring HACMP does not ensure high availability against disk failure. You need to use AIX LVM mirroring to guarantee disk availability. In an HA firewall setup, mirroring the rootvg volume group is recommended. • Standby network adapter This function depends on the number of available slots that use standby adapters in a firewall server. A standby adapter provides better high availability, but it doubles the number of required slots. Often, you need to upgrade to a larger machine. We made two assumptions in this respect. First, a modern firewall design needs many network segments in a firewall, as discussed in Section 1.2, “Compartmentalized firewall environment design” on page 6, which illustrated a condition that required a larger machine with more slots. Second, network adapter failure does not occur frequently. For these reasons, we designed a firewall cluster that has no standby adapter. If there is no standby adapter, it is necessary to trigger the takeover process whenever failure in a service adapter is detected. A post-event script has to be defined in one of the HACMP events, for example, network_down_complete, in order to halt the machine immediately in case of network adapter failure. In cluster configurations, where there are networks with no standby network adapters, it can be difficult for HACMP to accurately determine service adapter failure. This is because the Cluster Manager can not use a standby adapter to force packet traffic over the service adapter to verify its operation. An enhancement to netmon, the network monitor portion of the Cluster Manager, allows more accurate determination of a service adapter failure. This function can be used in configurations that require a single service adapter per network. You can create a netmon configuration file, /usr/sbin/cluster/netmon.cf, that specifies additional network addresses to which ICMP ECHO requests can be sent. When netmon needs to stimulate the network to verify adapter function, it sends an ICMP ECHO request to each address. After sending the request to each address, netmon checks the inbound packet count before determining whether an adapter has failed. • Rotating versus cascading A cascading resource group needs standby adapters while rotating resource groups do not. We prefer the rotating configuration due to this
346
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
factor. Rotating configuration provides an additional advantage over cascading. Rotating configuration does not require node down time upon node reintegration (that is, when the failed node comes back again) while cascading does require it. • HACMP SNMP components It is sometimes desirable to run clinfo and clsmuxpd on firewall machines for the following reasons: - clinfo automatically starts clinfo.rc script whenever it detects an event. By customizing clinfo.rc, you can automate your own takeover procedure. - You can easily query the status of a HACMP cluster. However, to use clsmuxpd and clinfo, you have to permit SNMP packets between the firewalls. The security hole in SNMP can be minimized by limiting the SNMP traffic only between the firewalls, but you need to be cautious. • Graphics adapter X11 poses a security hole in a firewall. We do not recommend equipping the machine with a graphics adapter. On the other hand, if you do not attach a graphic console to your RS/6000, you will need to plan to have a firewall configuration client installed on a separate machine, which will be a PC in most cases. If you have a graphic console, then it is desirable to remove all the X11 filesets after finishing firewall configuration to make the machine secure from attack. • Administration network To improve security, you can dedicate a network solely for the firewall GUI machine. It is not mandatory, but it obviously helps avoid unauthorized access to a firewall server. • Perl in C-SPOC The Cluster Single Point of Control (C-SPOC) utility lets system administrators perform administrative tasks on all cluster nodes from any node in the cluster. However, this facility uses Perl, and Perl presents a potential security exposure in a firewall system. We do not recommend use of this facility. The utilities written in Perl are: /usr/sbin/cluster/cspoc/dsh, /usr/sbin/cluster/sbin/cl_ext_krb /usr/sbin/cluster/sbin/cl_setup_kerberos.
Appendix A. Introduction to HACMP
347
• Kerberos-enabled RSH versus SSH (Secure Shell) HACMP provides Kerberos-enabled rsh and rcp to enhanced security. This lets you execute HACMP commands on remote nodes more securely, thus removing the requirement for the /.rhosts during HACMP configuration. However, it was found that portmapper was being used during the HACMP synchronization process. Portmapper has a drawback, because even though the initial connection addresses the destination port 514, the subsequent connections can use different port addresses through portmapper services. You have to allow all connections between the firewall adapters due to this random characteristic of portmapper. This is obviously undesirable. On the other hand, ssh provides safe authentication and strong encryption. With proper customization, it is possible to synchronize HACMP through only port 22, which is the default port of the ssh daemon. For a further comparison, refer to Table 13. Table 13. Pros and cons of rsh versus ssh
Pros and Cons
348
rsh
ssh
Security concerns
Not advisable to use on a firewall.
Safe authentication and strong encryption. Good to use on a firewall.
Ports used
514
22
HACMP synchronization
Uses other port numbers as well as port 514. Portmapper is required.
Uses only port 22. Portmapper is not required.
Licensing
Comes with AIX.
Must acquire separately.
Pre-compiled
Yes
No
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
A.3 How does HACMP fit together with the firewall?
Takeover Scenario on a Firewall Failure Before Takeover
After Takeover
web
web
DMZ fw_dmz
fw1
serial
fw_dmz
fw2_dmz_boot
fw2
fw1
fw_dmz fw2_dmz_boot
fw2
serial
heartbeat
INT
fw_int
fw2_int_boot
fw_int
fw2_int_boot fw_int
IP = 10.20.2.194 MAC = 40.0.22.22.11.11
fw_out
OUT
fw_out
fw2_out_boot
Internet user
fw_out fw2_out_boot
IP = 10.20.2.201 MAC = 0.20.35.12.81.4e
IP = 10.20.2.194 MAC = 40.0.22.22.11.11
Internet user
Figure 137. Takeover scenario on a firewall failure
Let us put all these considerations together. The two firewall machines, fw1 and fw2, are clustered in rotating mode. Before takeover, fw1 holds all the service addresses, that is, fw_int, fw_out, and fw_dmz, and the machine acts as the active firewall. The firewall fw2 is configured to have the boot addresses, that is fw_int_boot, fw2_out_boot, and fw2_dmz_boot, and the machine is kept in standby mode. When takeover occurs, all the network interfaces of fw2 are reconfigured to have the service addresses. The MAC addresses are also taken over. Then fw2 acts as the active firewall machine. The client machines, which are the Web server, Internet user, and intranet user in Figure 137, do not recognize any change in the firewall in each network and have continuous access to the networks, because fw2 assumes the same MAC addresses and the same filter rule definitions that fw1 had.
Appendix A. Introduction to HACMP
349
If one of the network adapters of fw1 fails, an HACMP post-event script is run at fw1 to halt the machine immediately. Then, fw2 starts the same takeover scenario described in the above paragraph. When fw1 comes back, it stays at standby mode, keeping all the boot addresses until fw2 fails.
350
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Appendix B. An example of the HACMP planning worksheet The following is an example of the HACMP planning worksheet used in the HACMP tests.
1. TCP/IP Networks Worksheet Cluster ID
2
Cluster Name
fwone
Network Name
Network Type
Network Attribute
Netmask
Node Names
out
token ring
public
255.255.255.0
fw3, fw4
dmz
token ring
public
255.255.255.0
fw3,fw4
int
token ring
public
255.255.255.128
fw3, fw4
2. TCP/IP Network Adapter Worksheet Interface Name Node Name:
Adapter IP Label
Adapter Function
Adapter IP Address
Network Name
Network Attribute
fw3
tr2
fw3_out_boot
boot
10.2.2.193
out
public
tr0
fw3_dmz_boot
boot
10.3.3.193
dmz
public
tr3
fw3_int_boot
boot
9.3.187.193
int
public
Node Name:
Adapter HW Address
fw4
tr2
fw4_out_boot
boot
10.2.2.195
out
public
tr0
fw4_dmz_boot
boot
10.3.3.195
dmz
public
en3
fw4_out_boot
boot
9.3.187.195
int
public
Node Name: The node name needs to be left blank because the following service addresses are shared between fw3 and fw4.
tr2
fw_out
service
10.2.2.192
out
public
tr0
fw_dmz
service
10.3.3.192
dmz
public
tr3
fw_int
service
9.3.187.192
int
public
© Copyright IBM Corp. 2001
351
3. Serial Networks Workshee t Cluster ID
2
Cluster Name
fwone
Network Name
Network Type
Network Attribute
Node Names
rs232_1
RS232
serial
fw3, fw4
4. Serial Network Adapter worksheet Node Names
fw3, fw4
Slot Number
Interface Name
Adapter Label
Network Name
Network Attribute
Adapter Function
sa01
/dev/tty1
fw3_tty1
rs232_1
serial
service
sa01
/dev/tty1
fw4_tty1
rs232_1
serial
service
5. Application Server Worksheet Cluster ID
2
Cluster Name
fwone
Server Name
fwone_as
Start Script
/usr/local/bin/active-start
Stop Script
/usr/local/bin/active-stop
352
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
6. Resource Group Worksheet Cluster ID
2
Cluster Name
fwone
Resource Group Name
fwone_rg
Node Relationship
rotating
Participating Node Names
fw3 fw4
Service IP Labels
fw_dmz fw_out fw_int
Filesystems Filesystem to Export Filesystems to NFS Mount Volume Groups Raw Disks AIX Connections Realms/Svc Pairs Application Servers
fwone_as
Inactive Takeover
Appendix B. An example of the HACMP planning worksheet
353
7. Cluster Event Worksheet Cluster ID
2
Cluster Name
fwone
Cluster Event Name
network_down_complete
Event Command Notify Command Pre-Event Command Post-Event Command
post_network_down_complete (which calls /usr/local/bin/network_down)
Event Recovery Command Volume Groups Recovery Counter
354
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Appendix C. Open Platform for Security (OPSEC) Today’s e-business world demands greater access to information and avenues of communication among customers, business partners, suppliers, and employees. Any business that uses the Internet to achieve this must implement significant safeguards to protect its network, or else risk the vulnerability of all its private stores of digital information. The key to addressing this information security risk is a comprehensive Internet security architecture. The solution requires multiple layers of security using best-of-breed products from a variety of vendors. The integration and manageability of these multiple products is an essential factor in the achievement of a secure architecture. Security administrators must be confident that applications can properly authenticate users and that Internet gateways will always enforce the appropriate security policy. They must also be able to define and apply security policies across multiple technologies, including firewalls, VPNs, and QoS devices, manage reports on network activity, and maintain the proper system configurations. These tasks can pose significant challenges to the security implementation team securing an enterprise’s e-business infrastructure. Check Point Software Technologies’ Secure Virtual Network (SVN) architecture and the Open Platform for Security (OPSEC) offer industry leading integrated Internet security solutions to substantially reduce these challenges. Check Point SVN secures the Internet environment by providing security that extends across networks, systems (individual clients and systems), applications and users, and across intranets, extranets and the Internet. SVN goes beyond the basics of VPNs (the use of the Internet as the transport backbone for secure links with partners and regional offices) to deliver Internet security that offers scalability, manageability, comprehensiveness, high performance, and ease of use. Its solutions protect all systems throughout the IP-based enterprise network by securing all Internet gateways, allowing single sign-on capabilities at the application server level, and enabling granular access control for all users regardless of location. OPSEC: Integrated Internet Security OPSEC extends the Secure Virtual Network architecture by providing a unique, open platform for integration and interoperability. For OPSEC partners, integration with the SVN architecture results in the most robust solutions on the market today. For customers, OPSEC integration means the ability to match the best product or service to their specific needs from a wide choice of best-of-breed products and services, without the burden of questionable interoperability! OPSEC allows users to take full advantage of
© Copyright IBM Corp. 2001
355
the SVN architecture across the leading server, internetworking and appliance platforms and also provides the option of outsourced managed security services. OPSEC certification, earned only after rigorous lab testing, further assures the integration of products and services bearing the OPSEC Certified logos. OPSEC answers the greatest challenges of multivendor solutions (interoperability and management complexity) and avoids the biggest problems of single vendor suites (lack of integration and limited flexibility). A strategy based on best-of-breed solutions allows the use of the best products and services on the market, and takes advantage of the innovations and expertise of the vendors that specialize in the functionality customers need. The combination of Check Point and OPSEC solutions gives customers the flexibility to design a secure e-business solution that matches the challenges unique to its own network and business needs. OPSEC Integration Points OPSEC integration is achieved through a combination of published application programming interfaces (APIs), industry-standard protocols, and a high-level scripting language. OPSEC provides a single framework for third-party products to integrate into all aspects of the secure virtual network. Clearly defined interfaces enable integration with VPN-1™/FireWall-1®, FloodGate-1™, and Meta IP™ without delving into the complexity of the underlying infrastructure. OPSEC’s powerful client/sever communications infrastructure allows products residing on remote platforms and servers to communicate securely with SVN products. Leading security vendors have taken advantage of the OPSEC SDK for over two years to build complementary security applications that seamlessly integrate with the Check Point Secure Virtual Network architecture. Third-party vendors may achieve OPSEC compliance and certification through one of the following integration points: • OPSEC Software Development Kit (SDK). Allows integration with Check Point's industry-leading Secure Virtual Network architecture. The SDK leverages the Check Point-defined OPSEC protocols and APIs for integration with VPN-1/FireWall-1, FloodGate-1, and Meta IP. • Industry standard interfaces and protocols, when available and applicable. Provide specifications to ensure multi-vendor product interoperability and certification criteria. • Check Point's INSPECT language. Adds application support to intercept, analyze, and act on all communications to applications utilizing VPN-1/ FireWall-1 and FloodGate-1. • Embedded version of Check Point's INSPECT Virtual machine or full VPN-1/FireWall-1 code set. Allows third-party vendors to embed Check
356
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Point technologies into systems and appliances for a robust security feature set. The OPSEC Software Development Kit: Open Protocols and Applications Programming Interfaces Check Point Software realized early on that the key to the broad availability of innovative and tightly integrated products was the commitment to a software development kit with well-documented application programming interfaces (APIs). First delivered in 1997, the OPSEC Software Development Kit (SDK) enables third-party vendors and end users to easily integrate their products with VPN-1/FireWall-1, FloodGate-1, and Meta IP. Its APIs hide the intricacies of the underlying protocols and networking from the application developers. To provide additional security, applications built with the OPSEC SDK can utilize strong Secure Socket Layer (SSL) encryption for all OPSEC communications between the client and server. Today, Check Point is still the only significant Internet security provider that offers a freely available software development kit for policy management and enforcement integration. Content Security using CVP (Content Vectoring Protocol) Content security allows the customer to scan the content of all traffic going across the network. Scanning the files for viruses and/or malicious Java or ActiveX applets as they pass through the firewall significantly enhances security by controlling e-business access points with a consistent policy that would otherwise be difficult to enforce across all desktops, servers, and business units. Check Point provides this capability using the Content Vectoring Protocol (CVP) API, now in its third generation of functionality. The CVP API defines an asynchronous interface to server applications that perform content validation. It allows content validation to be based on a variety of content criteria, including any string match in the file. It also enables the application to make modifications to the original file. An advanced component of the latest generation of CVP is CVP Manager, included with VPN-1 and FireWall-1. CVP Manager can be configured to chain a number of content validation servers to allow multiple scans of the same file. It can also provide basic load sharing of content to multiple validation servers, enabling scalability as well as failover capability for validation servers. CVP Manager is extremely important if the customer has multiple validation servers, each performing a different validation, such as anti-virus, URL filtering, or e-mail scanning.
Appendix C. Open Platform for Security (OPSEC)
357
Web Resource Management using UFP (URL Filtering Protocol) With the broad access to Web content now required by e-business comes the possibility that employees are using the Web for casual and inappropriate browsing. Besides possible liability issues for the company, the increased HTTP traffic can put a burden on the Internet gateway, which can result in slower response time and transmittal of mission-critical information. UFP allows security administrators to track and monitor employee Web usage in order to maintain network connectivity and employee efficiency. Check Point's implementation of URL filtering represents the most highly integrated in the industry, with filtering rules defined directly within the context of the Check Point Management Console rule-base. UFP defines a client/server asynchronous interface to categorize and control communication based on specific URL addresses. The UFP client on the firewall passes the URL to the UFP server, which uses dynamic categorization technology to return a classification category for the URL. The firewall then uses this category to determine the action required in accordance with the security policy as defined in the rulebase. With this extensive integration, customers can use a single security policy to facilitate effective Web resource management. Intrusion Detection using SAMP (Suspicious Activity Monitoring Protocol) Check Point introduced the concept of active-feedback loop integration between intrusion detection systems and firewall/VPN gateways in 1997. The Suspicious Activity Monitoring Protocol (SAMP) API enables VPN-1/FireWall-1 to block the connection when an intrusion detection application identifies suspicious activity on the network or specific host. Examples of suspicious activity include: • A specific client making repeated connection attempts to privileged services on a specific host (for example, scanning). • A client attempting to issue illegal commands or repeatedly failing to complete a login to a server system. • Any other criteria set which, if met, qualifies the activity as a security threat. The SAMP API defines an interface through which an intrusion detection application can communicate with a VPN-1/FireWall-1 management server. The intrusion detection engine uses SAMP to identify specific hosts generating suspicious activity on the network or server system, and the management server in turn directs the VPN-1/FireWall-1 modules to terminate sessions or deny access to those specific hosts. The specific actions taken by the firewall might include terminating a current session in
358
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
progress or blocking new session attempts that match the criteria over a specified time period in the future. SAMP applications generate dynamic and time-dependent action rules, unlike the permanent rules defined in the context of the Security Management Server. SAMP does not allow connections to pass through the firewall unless they are already allowed by the explicitly defined management policies. Only the additional blocking of specific connections for a limited time period is possible via SAMP. SAMP applications can use other OPSEC interfaces and APIs to send logs, alerts, and status messages to the VPN-1/FireWall-1 management server for centralized security monitoring. Event Integration Event integration is an essential integration point for any enterprise security management system. Check Point has two APIs, LEA (Log Export API) and ELA (Event Logging API), that allow third parties to access log data. The ability to access a granular level of connection detail enables robust reporting capabilities by specialized security products, network reporting products, help desk and event management systems, security audits, accounting and billing, and network management systems. This integration is accomplished through two client-server APIs, which enable events to be passed between the Check Point Management Console and other products through secure channels. Reporting and Event analysis using LEA (Log Export API) The Log Export API enables applications to read the VPN-1/FireWall-1 log database. The LEA client, written by an OPSEC partner, can retrieve both real-time and historical log data from the Management Console with the LEA server. A reporting application can use the LEA client in an on-line mode or off-line mode to process the logged events that are generated by the VPN-1/FireWall-1 security policy. OPSEC partners rely on LEA as a mission-critical source for granular traffic connection information driven by the VPN-1/FireWall-1 kernel engine. The SSL-enabled version of LEA provides additional security to applications, ensuring that all data traversing the network between the LEA application and the firewall management system is encrypted. Security and Event Consolidation using ELA (Event Logging API) Applications use the Event Logging API to write to the VPN-1/FireWall-1 log database. ELA enables third party applications to trigger the VPN-1/ FireWall-1 alert mechanism for specific events, such as virus detection, or failover from one firewall to another under a high availability mechanism. As the corporate gateway becomes the focal point for security policy management, ELA enables the Check Point Management Console to become the central repository for all traffic events accounting and analysis. OPSEC
Appendix C. Open Platform for Security (OPSEC)
359
partners can utilize ELA in conjunction with SAMP to ensure suspicious activity is tracked and corrective action taken by VPN-1/ FireWall-1 to terminate a malicious connection. Management and Analysis using OMI (OPSEC Management Interface) OMI is the interface to Check Point’s central policy database that enables third party applications to securely access the security policy stored in the management server. With this interface, vendors can build sophisticated applications that can share common objects defined in the firewall. By sharing objects, the user will only need to define them once, simplifying the overall manageability of the solution. Additionally, by using SSL, OMI can be used remotely to enable applications to access the policy from a remote client. OMI is an LDAP interface specification that can be used to develop a client that can query the network security policy on all participating firewalls using the LDAP protocol. This interface allows for the ability to tie together different products that may control security policies in different domains. OMI defines necessary schemes, access rules, and syntax for rule-based objects. This interface allows integrators and developers to create more powerful, interoperable security management infrastructures. OMI provides access to the following: • Policies stored in the management server • Network objects, services, resources, and servers defined in the management server • Users, templates and groups defined within the management server • List of administrators that are allowed to log into the management server Authentication using OPSEC PKI Integration Public Key Infrastructure (PKI) is an emerging technology that provides scalable trusted authentication for applications such as VPNs. X.509 digital certificates are used by IPSEC/IKE to validate the public keys required to establish an encrypted connection and verify the authenticity of the parties in the exchange. The certificate authority (CA), considered to be a trusted third party entity that vouches for (or authenticates) the identity of the digital certificate owner, issues certificate revocation lists (CRLs) that are used to validate a user's certificate. Depending on the CA, a CRL may be stored in an HTTP server or an LDAP directory. Check Point's goal is to provide an open integration environment whereby any vendor's PKI solution can be tightly integrated with Check Point's products. It
360
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
is common for suppliers, partners and customers sharing an e-business extranet to each operate their own different CA; for example, your partner may have a VeriSign™ CA, and your supplier may have an Entrust® CA. VPN-1 Gateway's ability to simultaneously support certificates from multiple different CAs allows customers to set up and support multi-CA extranets that can be used with business partners, suppliers and customers. Open PKI makes it possible for administrators to select the PKI solution which best fits their needs and fully leverage this solution with Check Point's VPN-1 product. Through the use of industry standard public key cryptography standards (PKCS), Check Point created OPSEC PKI integration points for VPN-1 Gateway, VPN-1 SecureClient, and VPN-1 SecuRemote. Authentication API (SAA) The Secure Authentication API (SAA) allows VPN-1 SecuRemote and VPN-1 SecureClient to support a wide variety of authentication mechanisms, such as biometric devices, challenge response tokens, and passwords. SAA takes advantage of Check Point’s innovative Hybrid Mode technology to integrate these different authentication types with IPSEC/IKE, and allows customers to migrate their authentication technology from challenge response tokens to PKI. Until now, IPSEC connections have required the use of either a shared secret with manual key exchange (cumbersome) or a digital certificate (complex) for authentication. Hybrid Mode allows a wide variety of two-factor authentication tokens, with and without SAA integration, to establish an IPSEC/IKE VPN-1 connection. Support for existing authentication tokens with IPSEC/IKE is especially important to end users that want to migrate from existing authentication solutions, which employ these tokens, to PKI-based trust models. Check Point has submitted the Hybrid Mode technology to the IETF as an enhancement to IPSEC. SAA works by passing authentication information from VPN-1 SecureClient or the VPN-1 SecuRemote client to an authentication server (that is, RADIUS, ACE, TACACS+, and so on) located behind the VPN-1 Gateway. Once the server authenticates the user to the Gateway, an IPSEC/IKE connection is established between SecureClient or the SecuRemote client and the VPN-1 Gateway. SAA allows SecuRemote and SecureClient to operate transparently to the end user. It also provides the authentication vendor with the option of replacing the SecuRemote and SecureClient login dialog box with that of the authentication vendor's product. High Availability (HA) With the growth of e-business over the Internet, the VPN-1/FireWall-1 gateway to the Internet has become a mission-critical link that companies can
Appendix C. Open Platform for Security (OPSEC)
361
not afford to lose, even temporarily. Check Point leads the industry with an advanced framework for high availability that allows gateways to share information on active connections. Should one gateway or network connection fail, the other gateway can seamlessly take over existing connections without impacting users. Even IPSEC/IKE connections can be maintained. Check Point's OPSEC HA integration allows third party vendors to take advantage of the VPN-1/FireWall-1 state table synchronization feature. State table synchronization allows each VPN-1/FireWall-1 in a high availability cluster to record connection data and synchronize its connection data with the others. It also allows an OPSEC certified HA application to seamlessly failover a VPN-1/FireWall-1 connection from a failed Gateway to an available Gateway in an HA cluster. Industry Standards and Standard Protocols The list of standards supported by OPSEC continues to grow as new industry standard proposals gain acceptance in the market or are ratified. In order to keep up with the many industry standards or standard protocols that exist today to ensure multi-vendor product interoperability, Check Point Software is a standards bearer and an active participant in standards bodies. The following industry-specific standards are integral parts of the OPSEC framework. • RADIUS/TACACS+ Remote Authentication Dial-In User Service (RADIUS) is the IETF (Internet Engineering Task Force) standard that has gained broad acceptance for the authentication of dial-up users. TACACS+ is a similar protocol which has gained some level of multivendor acceptance. Token-based authentication schemes can be implemented using the RADIUS protocol or TACACS+. With RADIUS support, VPN-1 and FireWall-1 can enforce authentication by checking with a RADIUS server before allowing, for example, an external engineering development partner access to the company CAD/CAM system. Other access control devices, such as routers or modem servers, can use the same RADIUS authentication server. The RADIUS standard unifies this authentication function. Different vendor security products can be used to authenticate a connection between two business partners, provided that the equipment at each end of the communication is compliant with the RADIUS standard.
362
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
• SNMP SNMP, the Simple Network Management Protocol, is the industry standard protocol for the management of hardware and software resources from a central location. The SNMP management model employs two basic entities: a management station loaded with a resource MIB (Management Information Base) file, and an agent. The MIB describes the information, and the agent, a program running on the resource to be managed, provides it to the management station when queried. The MIB also describes “traps,” which are unsolicited event notifications that the agent sends to the management station when a preset condition is met. This allows the agent to continually monitor the resource and report exceptions to the management station. VPN-1/FireWall-1 provides a MIB and SNMP agent for management of the VPN-1/FireWall-1 gateway. Using any network management station, the VPN-1/ FireWall-1 gateway can be queried for current status. In addition, the VPN-1/FireWall-1 agent can alert the management station about network events which might affect the operation of the gateway, or violations of the network security policy. • LDAP LDAP, the Light-weight Directory Access Protocol, is an industry standard for exchanging information with LDAP-compliant directory servers. LDAP specifies a method for retrieving, storing, and representing data in a directory server, which typically is a repository for user information as well as network resources. Some examples of information stored in a Directory Server include user identification data, X.509 certificates for use with Public Key Infrastructure (PKI) solutions, IP-to-hostname mappings, and so on. Various third-party directory servers offer sophisticated features, such as replication (master/slave, multi-master), directory referrals, and backup services that make directory servers an ideal repository for mission-critical enterprise data. When used in conjunction with the Check Point Account Management Module, VPN-1/FireWall-1 uses LDAP to access information from Directory Servers to identify and authenticate users via user passwords, pre-shared secrets, digital certificates, or third-party authentication servers. In addition, VPN-1/FireWall-1 optionally uses the directory server to store some access control attributes. The communication between VPN-1/FireWall-1 and directory server is encrypted using SSL to maintain data privacy.
Appendix C. Open Platform for Security (OPSEC)
363
Application Integration for Secure e-business For customers or OPSEC partners seeking to secure their applications from client to server across the Internet, intranet, or extranets, OPSEC delivers the flexibility to incorporate the protocols and services necessary for Secure Virtual Networking (SVN). OPSEC extends the power of SVN for e-business applications by delivering integrated access enforcement, robust intrusion detection, and Quality of Service (QoS) all within a centralized policy management framework. Through OPSEC, Check Point has partnered with leading application vendors and customers to deliver a scalable and highly available security architecture that delivers end-to-end security across heterogeneous computing environments. Check Point achieves this adaptability by leveraging its patented Stateful Inspection technology. Stateful Inspection’s extensibility allows it to support new applications by using INSPECT, a high-level programming language that can be compiled and downloaded to enforcement points and executed in accordance with the security policy. The INSPECT engine resides dynamically at the operating system kernel for very high performance and also includes awareness of all communication layers of the IP protocol family and the applications built on top of them. The result: integrating applications with Check Point enable users to create a security layer across their network with all the elements necessary for secure e-business. Check Point has delivered the broadest support for applications and network services of any security vendor in the world. Applications currently supported by Check Point’s access and traffic policy management products can be viewed at: http://www.checkpoint.com/products/technology/sup ported.html.
364
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Appendix D. Special notices This publication is intended to give Technical Sales Representatives, Internet Security Consultants, Network Administrators, and System Engineers an in-depth understanding of considerations and procedures required to make a firewall system highly available. See the PUBLICATIONS sections of the Check Point FireWall-1, IBM HACMP 4.3 for AIX and IBM eNetwork Dispatcher for AIX 2.0 for more information about what publications are considered to be product documentation. References in this publication to IBM products, programs or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM product, program, or service is not intended to state or imply that only IBM's product, program, or service may be used. Any functionally equivalent program that does not infringe any of IBM's intellectual property rights may be used instead of the IBM product, program or service. Information in this book was developed in conjunction with use of the equipment specified, and is limited in application to those specific hardware and software products and levels. IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to the IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785. Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact IBM Corporation, Dept. 600A, Mail Drop 1329, Somers, NY 10589 USA. Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee. The information contained in this document has not been submitted to any formal IBM test and is distributed AS IS. The use of this information or the implementation of any of these techniques is a customer responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. While each item may have been reviewed by IBM for accuracy in a specific situation, there is no guarantee that the same or similar results will be obtained elsewhere. Customers
© Copyright IBM Corp. 2001
365
attempting to adapt these techniques to their own environments do so at their own risk. Any pointers in this publication to external Web sites are provided for convenience only and do not in any manner serve as an endorsement of these Web sites. The following terms are trademarks of the International Business Machines Corporation in the United States and/or other countries:
â
IBM Lotus Notes Redbooks Logo SAA SP1 System/390 Wizard
AS/400 Lotus Notes Redbooks RS/6000 SP SP2 WebSphere XT
The following terms are trademarks of other companies: Check Point, the Check Point logo, VPN-1/FireWall-1, FireWall-1, Firewall-First!, FloodGate-1, INSPECT, IQ Engine, Open Security Manager, OPSEC, SecuRemote, UAP, VPN-1 and ConnectControl are registered trademarks or trademarks of Check Point Software Technologies Ltd. Tivoli, Manage. Anything. Anywhere.,The Power To Manage., Anything. Anywhere.,TME, NetView, Cross-Site, Tivoli Ready, Tivoli Certified, Planet Tivoli, and Tivoli Enterprise are trademarks or registered trademarks of Tivoli Systems Inc., an IBM company, in the United States, other countries, or both. In Denmark, Tivoli is a trademark licensed from Kjøbenhavns Sommer - Tivoli A/S. C-bus is a trademark of Corollary, Inc. in the United States and/or other countries. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and/or other countries. Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States and/or other countries. PC Direct is a trademark of Ziff Communications Company in the United States and/or other countries and is used by IBM Corporation under license.
366
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel Corporation in the United States and/or other countries. UNIX is a registered trademark in the United States and other countries licensed exclusively through The Open Group. SET, SET Secure Electronic Transaction, and the SET Logo are trademarks owned by SET Secure Electronic Transaction LLC. Red Hat, the Red Hat "Shadow Man" logo, RPM, Maximum RPM, the RPM logo, Linux Library, PowerTools, Linux Undercover, RHmember, RHmember More, Rough Cuts, Rawhide and all Red Hat-based trademarks and logos are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries. Other company, product, and service names may be trademarks or service marks of others.
Appendix D. Special notices
367
368
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Appendix E. Related publications The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this redbook.
E.1 IBM Redbooks For information on ordering these publications see “How to get IBM Redbooks” on page 371. • Load-Balancing Internet Servers, SG24-4993 • IBM WebSphere Performance Pack Usage and Administration, SG24-5233
E.2 IBM Redbooks collections Redbooks are also available on the following CD-ROMs. Click the CD-ROMs button at ibm.com/redbooks for information about all the CD-ROMs offered, updates and formats. CD-ROM Title
Collection Kit Number IBM System/390 Redbooks Collection SK2T-2177 IBM Networking Redbooks Collection SK2T-6022 IBM Transaction Processing and Data Management Redbooks Collection SK2T-8038 IBM Lotus Redbooks Collection SK2T-8039 Tivoli Redbooks Collection SK2T-8044 IBM AS/400 Redbooks Collection SK2T-2849 IBM Netfinity Hardware and Software Redbooks Collection SK2T-8046 IBM RS/6000 Redbooks Collection SK2T-8043 IBM Application Development Redbooks Collection SK2T-8037 IBM Enterprise Storage and Systems Management Solutions SK3T-3694
E.3 Other resources These publications are also relevant as further information sources: • HACMP for AIX V4.3 Install Guide, SC23-4278 • Getting Started with Check Point FireWall-1, P/N 700001 • Check Point FireWall-1 Architecture and Administration, P/N 71300001400 • Managing Check Point FireWall-1 Using the Windows GUI, P/N 71300002400 • Check Point Virtual Private Networks, P/N 700057
© Copyright IBM Corp. 2001
369
• Building Internet Firewalls, ISBN-1-5659-2124-0 • The AIX Survival Guide, ISBN-0-2015-9388-2 The following are product documentation and are only available through purchase of the product: • FireWall-1 Quick Start • Getting Started with FireWall-1 User Guide • FireWall-1 Architecture and Administration User Guide
E.4 Referenced Web sites The following Web sites mentioned in this redbook provide further information: • www.cert.org • www.qmail.org • www.postfix.org • www.atstake.com/security_news/transition/ • www.ibm.com/security • www.phoneboy.com/fw1/ • www.service.software.ibm.com/cgi-bin/support/rs6000.support/downloads • www.checkpoint.com • www.checkpoint.com/support • www.redbooks.ibm.com • ftp://ftp.ssh.com/pub/ssh/ • www.datafellows.com • www.zip.com.au/~roca/ttssh.html • www.hp.vector.co.jp/authors/VA002416/teraterm.html • www.software.ibm.com/network/dispatcher/library • www.fwtk.org/ • www.socks.nec.com/ • www.checkpoint.com/products/technology/supported.html
370
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
How to get IBM Redbooks This section explains how both customers and IBM employees can find out about IBM Redbooks, redpieces, and CD-ROMs. A form for ordering books and CD-ROMs by fax or e-mail is also provided. • Redbooks Web Site ibm.com/redbooks Search for, view, download, or order hardcopy/CD-ROM Redbooks from the Redbooks Web site. Also read redpieces and download additional materials (code samples or diskette/CD-ROM images) from this Redbooks site. Redpieces are Redbooks in progress; not all Redbooks become redpieces and sometimes just a few chapters will be published this way. The intent is to get the information out much quicker than the formal publishing process allows. • E-mail Orders Send orders by e-mail including information from the IBM Redbooks fax order form to: e-mail address In United States or Canada Outside North America
[email protected] Contact information is in the “How to Order” section at this site: http://www.elink.ibmlink.ibm.com/pbl/pbl
• Telephone Orders United States (toll free) Canada (toll free) Outside North America
1-800-879-2755 1-800-IBM-4YOU Country coordinator phone number is in the “How to Order” section at this site: http://www.elink.ibmlink.ibm.com/pbl/pbl
• Fax Orders United States (toll free) Canada Outside North America
1-800-445-9269 1-403-267-4455 Fax phone number is in the “How to Order” section at this site: http://www.elink.ibmlink.ibm.com/pbl/pbl
This information was current at the time of publication, but is continually subject to change. The latest information may be found at the Redbooks Web site. IBM Intranet for Employees IBM employees may register for information on workshops, residencies, and Redbooks by accessing the IBM Intranet Web site at http://w3.itso.ibm.com/ and clicking the ITSO Mailing List button. Look in the Materials repository for workshops, presentations, papers, and Web pages developed and written by the ITSO technical professionals; click the Additional Materials button. Employees may access MyNews at http://w3.ibm.com/ for redbook, residency, and workshop announcements.
© Copyright IBM Corp. 2001
371
IBM Redbooks fax order form Please send me the following: Title
Order Number
First name
Quantity
Last name
Company Address City
Postal code
Country
Telephone number
Telefax number
VAT number
Card issued to
Signature
Invoice to customer number Credit card number
Credit card expiration date
We accept American Express, Diners, Eurocard, Master Card, and Visa. Payment by credit card not available in all countries. Signature mandatory for credit card payment.
372
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Index Symbols .rhosts 156 /usr/lpp/FireWall-1/conf/clients 214 /usr/lpp/FireWall-1/conf/masters 214
Numerics 3DES 134, 136, 137
A Accept Outgoing Packets 100 Accept UDP Replies 100 acquire_aconn_service 213 acquire_service_addr 213 active-stop 179 Adapter Identifier 167 Add a Cluster Definition 161 Add a Custom Cluster Event 175, 253 Add an Adapter 164 Add an Application Server 172 Add Automatic Address Translation Rules 126 Add Cluster Nodes 162 Address Resolution Protocol See ARP Address Translation tab 126 advisor 275, 286, 290 application proxies 267 ARP 345 cache 177 arp -s 128, 132, 179 authentication client 116, 233 user 111, 233
B boot adapter 336
C
cascading 335, 346 CDE 27, 38 CIDR notation 26 circuit level proxies 267 cl_ext_krb 347 cl_setup_kerberos 347 clinfo 249, 338, 345, 347
© Copyright IBM Corp. 2001
clinfo.rc 177 clinfo_daedman 345 cllockd 338, 345 cllscf 168 cllsif 167 clm_keepalive 235 clm_lkm 345 clm_pts 345 clm_smux 345 clone 185 clonediff 185 clsmuxpd 338, 345 clstat 249 clstat client 252 clsto 184 clstrmgr 333, 338 cluster ID 351 cluster manager 333 cluster name 351 cluster.log 339 cm.log 184, 339 compartmentalized firewall advantage 8 CVP (Content Vectoring Protocol) 357
D default route 57 Demilitarized Zone See DMZ DES 134 diff_nodes 187 diff-fw1 153 Dispatcher 259, 274, 276, 287 DMZ 4, 6, 130 DNS 54, 56, 57 spoofing 57 DNS Server 259 dsh 347
E Enable Decryption on Accept 100 encryption 234 client 234 hardware encryption 10 key 75 Encryption Domain 319
373
Encryption tab 137, 141 eND Active connections 290 Architecture 259 backup server 276 Configuration 274, 278, 287 Dispatcher service 279 Firewall Configuration 284 Firewall configuration 274, 295 functionality 268 heartbeat 268, 276, 280 high availability 268, 276, 280, 291 HTTP Advisor 290 Load Balancing 270 load balancing 259, 289 manager 275 Monitoring 285, 296 ndadmin 285 ndcontrol 280 ndserver 279 New connections 290 Pricing 271 reach target 276 Reach Targets 280 Security 269 server weights 275 setup 268 start script 279 status 285 synchronization 276 eND script Executor scripts 280 goActive 276, 282 goInOp 277, 283 goInterfaces 281 goStandby 277, 281 start script 288 Entrust PKI 75 Executor 274, 280
F fileset 62 firewall load balancing 263 packet filter 264 socks daemon 266 FireWall-1 drop-sign 88
374
FAQ 25 filter module 153 GUI 58, 72 Interfaces tab 93 license 75, 76 log 87, 122, 150, 153 management module 58, 71 master 58 network plan 25 patches 80 prerequisite 25 SMTP server 73 SNMP Extensions 74 FTP 275 fw load 194 fw stat 194, 217 fw tab 222 fw unload 110, 216, 247 fw1lic 77 fwconfig 70, 77 fwstart 78 fwstop 78 FWZ 134, 135, 141
G gateway 92, 94, 96 default 53 Get address 103 get_disk_vg_fs 213 getstate 207, 223 godm 235 grpck 83
H HACMP 149, 267 adapter IP label 167 application server 172 boot address 57, 230 cascading 151 client 334 cluster 334 cluster event 333 cluster event customizing 252 cluster resource 171 cluster topology 160 custom event 175 heartbeat 157 logs 339
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
network attribute 164 network name 164 network_down_complete 175, 176, 253 node 155, 334 ODM database 203 operating system characteristics 158 post-event 175 prerequisite 159 rotating 151, 172 service address 57, 151 , 224, 225, 230 service IP label 173 Start Cluster Services 204 start script 172 stop script 172 synchronization 224 synchronize 203 worksheet 160, 161, 162, 351, 364 hacmp.out 339 hardening 82 inetd.conf 83 inittab 82 rc.local.net 83 rc.tcpip 83 hardware address swapping 336 heartbeat 333 High Availability 259, 277 HTTP 266, 275 HTTP proxy 9 Hybrid Mode Authentication 13
I ICMP 116 echo-reply packet 122 ifconfig 53, 75, 179 ifconfig -a 200 Implied Pseudo-Rules 100 inittab 38 Installation Assistant 34 Interactive Session Support See ISS Intrusion Detection 358 IP address takeover 336 IP alias address 75 IP filtering 8 IP Options Drop Track 102 IP spoofing 93, 105, 107, 109, 131, 220 IPAT 337 ipforwarding 57, 78, 124, 182
ISAKMP Properties window 136 ISAKMP/OAKLEY 134, 135, 137 ISS 259, 275, 286, 291 agent 273 attribute 293 AuthKey 293 Cell 293 cell 293 CPU load 261, 275 daemon start 295 Dispatcher 294 HeartbeatInterval 293 HeartbeatsPerUpdate 293 high availability 263 LogLevel 293 memory utilization 261 Metric 294 MetricLimits 294 MetricNormalization 294 monitor 262, 275 Node 293 NodeList 294 Overflow 294 Policy 294 Port 293 ResourceList 294 ResourceType 293 Service 294 ServiceList 295 iss.cfg 291 iss.log 295 issd 295
K keepalive 333 KISS 263
L LDAP 363 LEA (Log Export API) 359 Load Balancing proxied traffic 286 routed traffic 297 load balancing 259 load-balancing 150 Log Viewer 97, 129 loopback device 278 lscfg 128
375
M MAC address 127, 177, 232 MAC address takeover 152, 345 manage.lock 99 Management LAN interface 312 management module 153, 229 management station 150, 218 master 152
N
NAT 109, 124, 133, 135, 264, 266, 267 double static 130 dynamic 124, 131 eND 265 hide 264 official IP address 124, 130, 146 static 124, 125, 264 netmon.cf 178, 346 netsvc.conf 56 Network Address Translation See NAT Network Dispatcher 261 network interface 53, 105 network object 103 network plan for high availability 154 Network Time Protocol See NTP network_down_complete 212, 346 ni 182 NNTP 275 no 57, 83 node_down 213 node_down_complete 213, 340 node_down_remote 213 node_down_remote_complete 213 node_up_complete 206 non-reusable password 113 NTP 156, 157, 178, 179, 200, 215 ntp.conf 157, 200 ntp.drift 157 ntp.server.conf 157 ntp.trace 157
O
Observer 275, 286, 290 observer 291 OMI (OPSEC Management Interface) 360
376
OPSEC 355 OPSEC Software Development Kit 357 OSPF 265, 267
P Perl 347 PING_CLIENT_LIST 177 ping-2 181 ping-3 181, 201 ping-4 181, 201 pingit 159, 181 ping-o 181, 201 PKI Integration 360 POP3 275 portmapper 247, 348 post-event 341 post-event script 350 proxy application proxy 266 ARP 127, 132, 232 circuit level proxy 266 PTF 46, 159 pwdck 83
R RADIUS/TACACS+ 362 rc.dt 38 rc.local 75, 156 RFC 1918 124 RIP 265 rotating 335, 346 routed traffic 297 router 265 RSH 156 rule 0 109, 129 ruleset 109 See security policy 85
S S/Key 113 SAMP (Suspicious Activity Monitoring Protocol) 358 Secure Shell See SSH SecuRemote 138, 145, 305 security hole router 6
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
sniffing 5 switch 6 Security Policy 312 security policy 85, 99 implied 95 Security Policy Editor 218 security zones 6 sendmail 9 service adapter 335 SMTP 266, 275 SMTP gateway 9 SNMP 347, 363 sntp 157 Spoof tracking 108 SSH 84 ssh 238, 348 SSL 275 standby adapter 335, 346 start_server 214 start-fw1 79, 86 start-hacmp 184 state synchronisation 309 state synchronization 150, 152 state table synchronization 221 stop-fw1 79 stop-hacmp-f 184 stop-hacmp-g 184 stop-hacmp-t 184 stty 202 syn flooding 103 syslog 155
Encryption Domain 319 traveling salesman 134 tunnel 134 VPN state synchronisation 312 VPN-1 72
W What’s New 12 VPN-1/FireWall-1 V4.1 and SP1 12 VPN-1/FireWall-1 V4.1 SP2 20 Workstation Properties 141
X xntp 157 xntpd 157, 179 X-windows 27, 59, 116
T TCB See Trusted Computing Base Trusted Computing Base 32
U UFP (URL Filtering Protocol) 358 usrck 83
V Virtual Private Network See VPN Visual Policy Editor 13 VPN 133 branch office 134
377
378
Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
IBM Redbooks review Your feedback is valued by the Redbook authors. In particular we are interested in situations where a Redbook "made the difference" in a task or problem you encountered. Using one of the following methods, please review the Redbook, addressing value, subject matter, structure, depth and quality as appropriate. • Use the online Contact us review redbook form found at ibm.com/redbooks • Fax this form to: USA International Access Code + 1 914 432 8264 • Send your comments in an Internet note to [email protected]
Document Number Redbook Title
SG24-5492-01 Check Point VPN-1/FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions
Review
What other subjects would you like to see IBM Redbooks address?
Please rate your overall satisfaction:
O Very Good
Please identify yourself as belonging to one of the following groups:
O Customer O Business Partner O IBM, Lotus or Tivoli Employee O None of the above
Your email address: The data you provide here may be used to provide you with information from IBM or our business partners about our products, services or activities.
O Please do not use the information collected here for future marketing or promotional contacts or other communications beyond the scope of this transaction.
Questions about IBM’s privacy policy?
The following link explains how we protect your personal information. ibm.com/privacy/yourprivacy/
© Copyright IBM Corp. 2001
O Good
O Average
O Poor O Solution Developer
379
Check Point VPN-1/FireWall-1 on AIX A Cookbook for Stand-Alone and High Availability Solutions
®
Check Point VPN-1/ FireWall-1 on AIX: A Cookbook for Stand-Alone and High Availability Solutions Complete implementation guide for VPN-1/FireWall-1 on AIX High Availabilty configuration for 24x7 operations New VPN-1/FireWall-1 Version 4.1 covered
Check Point VPN-1/FireWall-1 is used by many enterprises who have to rely on a robust firewall and VPN implementation. Because these infrastructural I/T strongpoints have to be 100 percent available, appropriate mechanisms for load balancing and high availability need to be in place. The IBM AIX operating system, in conjunction with IBM HACMP and the IBM Network Dispatcher, promise to deliver just that.
INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION
This IBM Redbook explains the setup and configuration for stand-alone as well as high availability solutions for Check Point VPN-1/FireWall-1 V4.1 on AIX. An IBM HACMP cluster provides 100 percent availability for FireWall-1 and VPN-1 configurations, and IBM Network Dispatcher implements high availability and load balancing for FireWall-1 setup.
BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE
This book is a valuable resource for security and firewall administrators and architects who wish to understand and implement a high availability solution for their Check Point VPN-1/FireWall-1 on AIX.
IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment.
For more information: ibm.com/redbooks SG24-5492-01
ISBN 0738421014
|