|
Upgrading FW-1 from 4.1 on Solaris 2.6 to NG FP3 on Solaris 9 |
We had a pair of Checkpoint firewalls running FW-1 4.1 on Sun Ultra 10 boxes running Solaris 2.6. Like everyone else we were faced with the fact that Checkpoint would be dropping support for FW-1 4.1, though they pushed back the date from Dec 31 2002 to June 30 2003. Our 4.1 firewalls ran quite reliably, so there were no compelling technical reasons to perform the upgrade.
Ultra 10s are cheap on eBay - $700 for the latest and greatest, half that or less for older models. QFEs are about $200. For very little $ you can create your own lab with a pair of firewalls on your own time and fully test your upgrade before putting it into production. Ultra 10s take 2 IDE hard drives - you can script a back up one drive to another for quick and dirty disaster recovery preparedness. If your Checkpoint VAR botched the initial install of your firewalls like ours did leaving you with partitions too small to upgrade, you can also modify the partition sizes of your hard drives during your backup so you can successfully upgrade Solaris. Here's the script and configuration file....
We use TrendMicro's Interscan Viruswall and RSA's ACE Server with our firewalls. Fortunately we discovered during testing that the ACE server needed upgrading as well. RSA tech support is excellent and seems to know more about Checkpoint than many of Checkpoint's own technicians. Checkpoint has an article on their website happily declaring their support for ACE 5.x with NG. What they fail to tell you was that NG doesn't support ACE 4.x at all since the APIs changed.
Upgrading the firewalls to NG FP3 was quite a project. This cheatsheet is no substitute for RTFMing, but it should help.
1) If you have deployed SecuRemote, you'll need to have all your users upgrade to the latest FP3 SecuRemote before you upgrade your production firewalls. In typical Checkpoint fashion you are faced with a Catch-22:
- SecuRemote FP2 and later create a site with a 4.1
firewall.
- VPN-1 FP2 and later won't authenticate an older SecuRemote.
As a workaround I upgraded SecuRemote on a PC that already had our sites defined, then distributed the upgraded userc.c to production SecuRemote clients via a login script. I had my SecuRemote users uninstall SecuRemote 4.1 and install the newest SecuRemote because at the time an upgraded SecuRemote renamed itself SecureClient - this bug was later fixed in build 53515.
2) Apply 4.1 SP6 to the firewalls. We had no ill effects; in fact it fixed one problem. We use Nexland personal firewalls for remote access. (Nexland was bought by Symantec in July 2003.) When I started using them 4 years ago, they were the only personal firewall to work with SecuRemote, and they are still the only one to support multiple SecuRemote sessions (though I seem to have lost this capability after the upgrade). Multiple SecuRemote sessions from behind a Nexland didn't work very well until we upgraded from 4.1 SP3 to SP6. We are now having good luck with the much cheaper Netgear MR814v2. The original MR814 didn't work seamlessly with SecuRemote - most functions worked, but double clicking 'My Computer' on Windoze 2000 to see your mapped drives hung the computer. This may have been an MTU size problem.
3) Upgrade the firewalls to Solaris 9. Our upgrades wouldn't run until we created the directory /var/sadm/system/logs.
4) Apply the latest recommend patches for Solaris 9
5) Remove unnecessary packages. I used Lance's Whitepaper's as a guide:
| SUNWvolr SUNWvolu SUNWvolg |
automount CDs |
| SUNWnfscr SUNWnfscu SUNWnfscx |
nfs client |
| SUNWnfssr SUNWnfssu SUNWnfssx |
nfs server |
| SUNWpsr SUNWpsu SUNWlpmsg SUNWpcr SUNWpcu SUNWppm SUNWmp SUNWscplp |
printing |
| SUNWtnetd SUNWtnetr |
telnet server |
| SUNWsacom SUNWsadmi SUNWsasnm SUNWmibii |
snmp, dmi |
| SUNWsmbau SUNWsmbac SUNWsmbar |
samba |
| SUNWwbapi SUNWwbcor SUNWwbcou SUNWmgapp SUNWrmwbu SUNWrmwbx SUNWwppro |
Solaris WBEM |
| SUNWnisu SUNWnisr |
NIS |
| SUNWlldap | LDAP |
6) Here are the files I had to modify on the firewall after the upgrade:
/etc/inetd.conf – remove everything but ftp. I leave ftp, but you could
easily argue it should be removed as well.
/etc/nscd.conf - change positive ttl to zero – disable name service caching
/etc/sshd/sshd_config – allow root to login
touch /etc/notrouter
/etc/vfstab - enable logging on all partitions
7) Follow these tips in the FireWall-1 Performance Tuning Guide
/etc/rc2.d/S69inet – add these lines to the end of the file
# shut off access – fix security
ndd -set /dev/ip ip_forward_src_routed 0
ndd -set /dev/ip ip_forward_directed_broadcasts 0
ndd -set /dev/ip ip_respond_to_echo_broadcast 0
ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0
ndd -set /dev/ip ip_send_redirects 0
ndd -set /dev/ip ip_ignore_redirect 1
# firewall fine tuning
ndd -set /dev/tcp tcp_slow_start_initial 2
ndd -set /dev/tcp tcp_conn_req_max_q 1024
ndd -set /dev/tcp tcp_conn_req_max_q0 4096
ndd -set /dev/tcp tcp_time_wait_interval 60000
ndd -set /dev/tcp tcp_xmit_hiwat 65535
ndd -set /dev/tcp tcp_recv_hiwat 65535
/etc/system - add these lines to the end of the file
set sq_max_size = 100
set autoup = 120
# both the above require >128M RAM
set tcp:tcp_conn_hash_size = 16384
set rlim_fd_max = 16384
8) Run the upgrade_checker from Checkpoint's website to look for any potential problems. When I performed my upgrade the upgrade_checker only handled FP2, which I assumed was better than not checking anything at all:
# ./upgrade_checker -p /opt/CPfw1-41 -c 4.1 -t NG_FP2
9) Upgrade the firewall to NG FP3. Looking at all the problems with the original NG, FP1, and FP2, and even FP3 hotfix 1, I was glad I waited so long.
10) Apply hotfix 2 for FP3.
11) Install the latest cpinfo from checkpoint's website. cpinfo would not run on my machines until I created the files
/usr/sbin/crash
/usr/sbin/mdb
and chmoded both to 555.
After all this work upgrading my existing firewall, I ended up throwing away all the rules and re-writing them to take advantage of the new simplified policy features. I kept my objects. My 'VAR' had provided one policy for each of our two firewalls, so this also allowed me to create a single policy which makes things much easier.
During testing I was unable to make SecuRemote create a site until selected the VPN domain setting 'All IP Addresses behind Gateway based on Topology information'.
What I learned the hard way after the firewalls were in production
1) Automatic ARP does not work unless you also use automatic NAT. This detail was not documented anywhere, and I got a promise from Checkpoint that they would document it. I got to learn
debug ip arp
on the Cisco router.
2) I had to change policy values smtp_rfc821 and smtp_rfc822 both to false to avoid having the firewall strip incoming email fields that didn't comply with the RFCs.
3) I had to modify the Advanced -> SMTP properties on each firewall to allow inbound email over 1 meg in size.
4) My backup incoming mail server at my remote site was unable to connect to the Interscan Viruswall at my main site due to the automatic encryption domain. I ended up changing my backup incoming email server to have it forward all email to my primary incoming email server, which then sent it to the Interscan Viruswall.
5) Install Hotfix accumulator 12. We use Polycom Viewstations over VPN to provide 'free' videoconferencing between our sites. We had problems with them after the upgrade that were only rectified with HFA12. Apparently you couldn't have an H.323 videoconference over 30 minutes before this hotfix.