Table of Contents Preface ..............................6 About this manual............................6 What’s new in this manual...........................6 Where to get more product information .......................6 Related documents............................7 Notational conventions ..........................7 Chapter 1: Overview........................... 8 SEG overview..............................8 SEG architecture ............................8 Chapter 2: Management........................12 Management access ..........................12 Date and time ............................33 Licensing ..............................37 Backup and restore ...........................39...
Page 4
Chapter 6: Firewall ........................... 96 IP rules ..............................96 Services..............................103 Access rules ............................107 Internet access ............................110 Chapter 7: IPsec VPN ........................113 Overview..............................113 IPsec components ...........................117 Setting up IPsec tunnels .........................135 NAT traversal............................138 CA server access ............................140 IPsec troubleshooting ..........................143 Chapter 8: Authentication......................153 Authentication profiles ..........................153 RADIUS authentication ...........................154 The radiussnoop command ........................156...
Page 5
Support for multiple GGSNs ........................184 I-WLAN use case ............................184 Appendix A: Glossary of Terms....................185 Appendix B: OSI Model........................197 Overview ..............................197...
Preface About this manual This manual describes the Radisys SEG, a highly scalable security gateway optimized for Long Term Evolution (LTE) deployments. This manual introduces SEG software concepts and serves as a reference for procedural and usage information. The target audience for this manual is administrators who are responsible for configuring and managing the SEG and its operating system. It is assumed that the administrators have basic knowledge of networks and network security. What’s new in this manual • Added troubleshooting with ICMP on page 25. ping • Changed the types of authentication available on page 153. • Updated verifying HA synchronization on page 165. Where to get more product information Visit the Radisys web site at www.radisys.com for product information and other resources. Downloads (manuals, release notes, software, etc.) are available at www.radisys.com/downloads. See the following resources for information on the SEG not described in this manual: • The SEG‐100 Getting Started Guide describes how to set up the SEG‐100 modules and the SEG‐11002 system, and how to configure the SEG software for initial use. • The SEG‐100 Command Line Interface Reference describes the SEG command line interface and serves as a reference for command syntax and options. • The SEG‐100 Log Reference describes all log messages generated by the SEG.
Preface Related documents RFC 791, Internet Protocol, IETF, September 1981. RFC 1191, Path MTU Discovery, IETF, November 1990. RFC 1305, Network Time Protocol (Version 3), IETF, March 1992. RFC 1321, The MD5 Message‐Digest Algorithm, IETF, April 1992. RFC 1777, Lightweight Directory Access Protocol, IETF, March 1995. RFC 1918, Address Allocation for Private Internets, IETF, February 1996. RFC 2030, Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI, IETF, October 1996. RFC 2138, Remote Authentication Dial In User Service (RADIUS), IETF, April 1997. RFC 2139, RADIUS Accounting, IETF, April 1997. RFC 2251, Lightweight Directory Access Protocol (v3), IETF, December 1997. RFC 2401, Security Architecture for the Internet Protocol, IETF, November 1998. RFC 2406, IP Encapsulating Security Payload (ESP), IETF, November 1998. RFC 2460, Internet Protocol, Version 6 (IPv6) Specification, IETF, December 1998. RFC 3947, Negotiation of NAT‐Traversal in the IKE, IETF, January 2005. RFC 4306, Internet Key Exchange (IKEv2) Protocol, IETF, December 2005. RFC 5905, Network Time Protocol Version 4: Protocol and Algorithms Specification, IETF, June 2010. Notational conventions This manual uses the following conventions ItalicText File, function, and utility names. Screen text and syntax strings. MonoText BoldMonoText A command to enter. Variable parameters. ItalicMonoText Brackets [ ] Command options. Curly braces { } A grouped list of parameters. Vertical line | An “OR” in the syntax. Indicates a choice of parameters. All numbers are decimal unless otherwise stated.
Chapter Overview SEG overview The Radisys SEG is a robust telecom security gateway based on Network Domain Security (NDS) standards that provides stateful firewalling and IPsec tunneling in a single platform. The SEG can be used to secure any large IP based network. In its first release, the SEG is targeted for use as a security gateway between infrastructure elements in LTE Access/Backhaul and LTE Evolved Packet Core networks. In subsequent releases, the SEG will support current generation (2G/3G) wireless offload applications like I‐WLAN, UMA/GAN and Femtocell that are evolving to LTE. It is also ideally suited for high performance and next‐gen firewalling scenarios. The Radisys SEG is built around the carrier‐grade Advanced Telecommunications Computing Architecture (ATCA), and offers world‐class security features with multi‐gigabit throughput and performance. The main component of the Radisys SEG is the SEG‐100 security module, a fully contained security gateway residing on an ATCA module. The SEG‐100 can be deployed in a standalone SEG‐11002 system, or integrated into other ATCA based network elements. Both standalone and integrated configurations support carrier grade high availability with redundant hardware and sophisticated fault tolerant software. The SEG‐11002 is a 2U, 2‐slot ATCA system, ideally suited for initial trials and small‐to‐ medium size deployments. It contains one or two SEG‐100 modules, and can be configured as a high availability system, with active and passive SEG‐100s providing full stateful redundancy for IPsec tunnels and packet flows. The SEG security software is based on a proprietary operating core with a small attack surface, making the application processing highly secure and efficient. The software processes millions of concurrent IP packet flows in real time, while applying a rich set of firewalling rules and routing policies. It also sets up VPN/IPsec tunnels, using secure keys and applying advanced data integrity and encryption techniques. SEG architecture The SEG architecture is centered on the concept of flows. Traditional IP routers or switches commonly inspect all packets and then perform forwarding decisions based on information found in the packet headers. With this approach, packets are forwarded without any sense of context, which eliminates any possibility to detect and analyze complex protocols and enforce corresponding security policies. ...
Overview Stateful inspection The SEG employs a technique called stateful inspection which means that it inspects and forwards traffic on a per‐flow basis. The SEG detects when a new flow between a source and destination is being established, and keeps information about the flow over its lifetime. By doing this, the SEG is able to understand the context of network traffic, enabling it to perform a variety of important functions. The stateful inspection approach additionally provides high throughput performance with the added advantage of a design that is highly scalable. The SEG subsystem that implements stateful inspection is sometimes referred to as the SEG state‐engine. All flows have a specified idle lifetime, after which they are removed from the flow table. Basic building blocks From the administrator’s viewpoint, the basic SEG building blocks are: • Interfaces such as physical Ethernet interfaces or logical VPN tunnels. • Logical objects that are individual logical definitions within the SEG. For example, Address objects can be defined in the Address Book to give logical names to IP and other types of addresses. • Rule sets that make up the security policies that you want to implement. These include IP rules. These three types of building blocks are discussed next. Interfaces Interfaces are the doorways through which network traffic enters or leaves the security gateway. Without interfaces, an SEG system has no means for receiving or sending traffic. The following types of interface are supported in the SEG: • Physical interfaces These correspond to the actual physical Ethernet interface ports through which traffic arrives and leaves the hardware platform running the SEG. • Tunnel interfaces Used for receiving and sending traffic through VPN tunnels. These are treated as logically equivalent to physical interfaces when you configure the SEG. For example, a route in an SEG routing table could specify either a physical or tunnel interface as the destination for a particular network. The SEG interface design is symmetric, meaning that the interfaces of the device are not fixed ...
Page 10
Overview Logical objects You can consider logical objects to be predefined building blocks for use in rule sets. For example, the address book contains named objects representing host and network addresses. Another example of logical objects are services that represent specific protocol and port combinations. SEG rule sets Finally, rules which are defined by the administrator in the various rule sets are used for actually implementing SEG security policies. The most fundamental set of rules are the IP Rules, which are used to define Layer 3 IP filtering policies. Basic packet flow This section outlines the basic flow for packets received and forwarded by the SEG. The following description is simplified and might not be fully applicable in all scenarios, however, the basic principles will be valid for all SEG deployments. 1. An Ethernet frame is received on one of the Ethernet interfaces in the system. Basic Ethernet frame validation is performed and the packet is dropped if the frame is invalid. 2. The IP datagram within the packet is passed on to the SEG consistency checker. The checker performs a number of consistency checks on the packet, including validation of checksums, protocol flags, packet length and so on. If the consistency checks fail, the packet gets dropped and the event is logged. 3. The SEG now tries to look up an existing flow by matching parameters from the incoming packet. A number of parameters are used in the match attempt, including the source interface, source and destination IP addresses, and IP protocol. If a match cannot be found, a flow establishment process starts. 4. The Access Rules are evaluated to find out if the source IP address of the new flow is allowed on the received interface. If no Access Rule matches then a reverse route lookup will be done in the routing tables. In other words, by default, an interface will only accept source IP addresses that belong to networks routed over that interface. A reverse lookup means that a lookup is done in the routing tables to confirm that a route exists that would route traffic destined for the IP address over that interface. If the Access Rule lookup determines that the source IP is invalid, the packet is dropped ...
Page 11
Overview 6. The IP rules are now searched for a rule that matches the packet. The following parameters are part of the matching process: • Source and destination interfaces • Source and destination network • IP protocol (for example TCP, UDP, ICMP) • TCP/UDP ports • ICMP types • Point in time in reference to a predefined schedule If a match cannot be found, the packet is dropped. If a rule is found that matches the new flow, the Action property of the rule is used to decide what the SEG should do with the flow. If the action is Drop, the packet is dropped and the event is logged according to the log settings for the rule. 7. If the action is Allow, the packet is allowed through the system. A corresponding flow will be noted by the SEG for matching subsequent packets belonging to the same flow. The allowed traffic is also bidirectional so that the same IP rule also permits packets to return from the destination network. Finally, the opening of the new flow will be logged according to the log settings of the rule. The default is for logging to be enabled. 8. Eventually, the packet will be forwarded out on the destination interface according to the flow. If the destination interface is a tunnel interface, additional processing such as encryption or encapsulation might occur. ...
Chapter Management Management access This section provides details of how to work with the SEG management interfaces. The following interfaces are available: • Command line interface (CLI) The Command Line Interface (CLI) is accessible either locally via a computer’s serial console port or remotely using the Secure Shell (SSH) protocol. It provides fine‐grained control over all parameters in the SEG. This feature is described further in Command line interface on page 15. • SNMP A Secure Network Management Protocol (SNMP) client can connect to the SEG and provide read‐only access to the current SEG configuration. This feature is described further in SNMP monitoring on page 31. File transfer with secure copy Secure Copy (SCP) is a widely used communication protocol for file transfer. SCP is a complement to the CLI and provides a secure means of file transfer between the administrator's external management workstation and the SEG. Various files used by the SEG, such as configuration backups, can be both uploaded and downloaded using SCP. No specific SCP client is provided with SEG distributions. However, there is a wide selection of third‐party SCP clients for nearly all workstation platforms. This feature is described further in Secure copy on page 30. Local user databases By default, the SEG provides a default LocalUserDatabase object that is used to authenticate management logins. This database contains, at minimum, one predefined user account: Username: admin Password: admin This account has full administrative read/write privileges to all configuration data and is always the account used for initial SSH login (console access does not require login in the default configuration). Important: ...
Page 13
Management Displaying local user databases With the SEG CLI, the name of the predefined local user database can be displayed with the command: Device:/> show LocalUserDatabase Name ‐‐‐‐‐‐‐‐‐‐ AdminUsers The contents of this can be displayed by first changing the CLI context to be the database: Device:/> cc LocalUserDatabase AdminUsers The CLI prompt will change to indicate the new context and the database contents can be displayed: Device:/LocalUserDatabase/AdminUsers> show User Name Groups Comments ‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ admin Administrators <empty> Here, the Group membership is significant since this determines the privileges that a user has. Finally, return to the default context: Device:/LocalUserDatabase/AdminUsers> cc Device:/> Creating Auditor accounts Extra user accounts in the local user database can be created as required with arbitrary usernames and passwords. If the group is specified as Administrators, it has full access privileges. If, however, the group is specified as the text string Auditors, the user will only have read‐only privileges and will not be able to make configuration changes. The following commands create an auditor account with a username of audit and a password of audit: Device:/> cc LocalUserDatabase AdminUsers Device:/LocalUserDatabase/AdminUsers> add User audit Password=audit Groups=Auditors...
Page 14
Management A complete listing of this database will show the new account: Device:/LocalUserDatabase/AdminUsers> show User Name Groups Comments ‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ admin Administrators <empty> + audit Auditors <empty> Device:/LocalUserDatabase/AdminUsers> cc Device:/> Here, the group name Auditors is a text string and its meaning is predefined in the SEG. The plus sign “+” next to the new user audit indicates that this object has not yet been committed to the configuration. Linking logins to the database The local user database is referred to during a login because the relevant access object points to an AuthenticationProfile, which then points to the database that stores the credentials. For example, SSH logins are controlled by a RemoteMgmtSSH object. This object refers to an AuthenticationProfile object that then refers to the database to be used for authentication. AuthenticationProfile objects are discussed further in Authentication on page 153. The diagram below illustrates the relationship between the various components. Figure 1. Local user database usage with SSH...
Management Command line interface The CLI provides a comprehensive set of commands that allow the display and modification of a SEG configuration. This section provides only a summary for using the CLI. For a complete reference for all CLI commands, see the SEG‐100 Command Line Interface Reference. CLI access methods The CLI is accessible in one of two ways: • Remotely through a network connection to an Ethernet interface on the hardware platform, using the Secure Shell (SSH) protocol from an SSH client. SSH access is controlled by a predefined RemoteMgmtSSH configuration object. • Locally through the RS232 serial console connection port of a SEG, using a console or console emulator. Access is controlled by a predefined ComPortAccess configuration object called COM1. Controlling SSH access The Secure Shell (SSH) protocol can be used to access the CLI over a network from a remote host via one of the Ethernet interfaces. SSH is enabled by default on the default management Ethernet interface. SSH is a protocol primarily used for secure communication over insecure networks, providing strong authentication and data integrity. SSH clients are freely available for almost all hardware platforms. The SEG supports version 2 of the SSH protocol. A predefined RemoteMgmtSSH object controls initial SSH access on the default management interface. A single RemoteMgmtSSH object exists by default in a SEG configuration and can be displayed with the CLI command: Device:/> show RemoteManagement RemoteMgmtSSH The following output confirms that SSH access has be enabled on the sfp1 interface from the sfp1_net network. Name Interface Network ‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐ ssh_mgmt sfp1 sfp1_net Authentication for SSH access is controlled by the AuthProfile property of the RemoteMgmtSSH object. By default this is set to a predefined AuthenticationProfile object called MgmtAuthProfile. This profile points to the predefined local user database that contains a default administrator account with the credentials: •...
Page 16
Management To add back the original authentication: Device:/> set RemoteManagement RemoteMgmtSSH ssh_mgmt AuthProfile=MgmtAuthProfile The Source property of the MgmtAuthProfile will be assigned the name of the local user database to use for authentication. Troubleshooting SSH access problems If the SSH console is timing out when attempting SSH access, there are a number of possible reasons: • Use the local console CLI to check that the SEG SSH server is running: Device:/> sshserver SSH Server Port Connected clients Status ‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐ ssh_allnets 22 1 Running In the output shown, the server is clearly running. If the status was not Running or if the command returned a new CLI prompt with no output, there was most likely a problem with the initial configuration of the SSH server. • Check the configuration of the RemoteMgmtSSH object. If this object is incorrectly specified on initial startup, the SSH server may not run. Check that the RemoteMgmtSSH is enabled and that a valid authentication profile has been specified and that the profile points to a valid database containing a user with the login credentials expected. A RemoteMgmtSSH object with an example name of ssh_allnets can be displayed with the command: Device:/> show RemoteManagement RemoteMgmtSSH ssh_allnets Controlling console access to the CLI The CLI can also be accessed using a console terminal connected directly to an RS232 port on the security gateway hardware. Access through a console port is controlled by a predefined COMPortAccess configuration object named COM1. This can be displayed with the command: show COMPortAccess Port Bps Data bits Parity Stop bits Flow control Rows Cols ‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐ ‐‐‐‐...
Page 17
Management Frequently used commands The following commands will probably be the most often used with the CLI to manipulate different SEG objects: • add: Adds an object, such as an IP address or a rule, to a SEG configuration along with a set of required properties for the object. • set: Sets one or more configuration object properties to given values. For example, setting the source interface for a given IP rule. • show: Displays the current values of a particular object or set of configuration objects. • delete: Deletes a specific configuration object. CLI command structure CLI commands commonly have the structure: <command> <object_category> <object_type> <object_name> For example, to display an IP address object called my_address, enter: Device:/> show Address IPAddress my_address The object category in this case is Address and the type within this category is IPAddress. If the object type is unique, its category can be omitted. The same example as above could be shortened to: Device:> show IPAddress my_address In this case, the object category Address is omitted since IPAddress is a unique object type. Note: Tab completion will not work until the entire object type is entered when omitting the object category. The same object name could be used within two different categories or types, although this is best avoided in order to avoid ambiguity when reading configurations. Note: The term category is also sometimes referred to as the context of an object. A command such as add can also include object properties. To add a new IPAddress object with an IPv4 address of 10.49.02.01, the command would be: Device:/> add Address IPAddress my_address Address=10.49.02.01 ...
Page 18
Management Tab completion displays allowed properties only There are some important principles to understand when using tab completion for object properties: • The properties of an object are either required or optional. When using tab completion, optional properties are not displayed until all required properties have been assigned a value. • An optional property’s use can depend on the value specified for another property. For example, in an IPsecTunnel object, the optional ProxyARP property can be used only when the AddRouteToRemoteNetwork property has been set to Yes. The tab completion feature is aware of these dependencies and will not display a property if it is dependent on another property that has not yet been assigned a value. Looking at the IPsecTunnel example again, tab completion will display the ProxyARP property only if the AddRouteToRemoteNetwork property has been already been assigned a value of Yes. CLI help The CLI help command will show all available command options. Typing help followed by a command name will show help information for that command, providing details about the command's function and its options. For example: Device:/> help time COMMAND time (t). Display and set current system time. " " Typing this CLI command provides information about the help command itself: Device:/> help help Configuration object help A second help command, helpconfig, provides information about a particular object type or category of objects. CLI command history Just like a command console in many versions of Microsoft Windows™, the up and down ...
Page 19
Management Tab completion Remembering as well as typing commands and their options can be demanding. The SEG provides a feature called tab completion, which means that pressing the Tab key will cause automatic completion of the current part of the command. If completion is not possible, pressing the Tab key will display the available command options. Tab completion displays the required object properties first, and then shows any optional properties when all the mandatory ones have been completed. Specifying the default value The period (.) character before a tab can be used to automatically fill in the default value for an object property. For example: add LogReceiver LogReceiverSyslog log_example Address=example_ip LogSeverity=. (tab) Will fill in the default value for LogSeverity: add LogReceiver LogReceiverSyslog log_example Address=example_ip LogSeverity=Emergency,Alert,Critical,Error,Warning,Notice,Info This severity list can then be edited with the back arrow and backspace keys. A default value is not always available. For example, the Action of an IP rule has no default. Another use of the period character before a tab is to automatically fill in the current value of an object property in a command line. For example, you might type the unfinished command: set Address IPAddress InterfaceAddresses/sfp1_ip= If you now type “.” followed by a tab, the SEG will display the current value for the Address property. For example, if the value is 10.6.58.10, the unfinished command line will automatically become: set Address IPAddress InterfaceAddresses/sfp1_ip=10.6.58.10 The SEG automatically inserts the current value of 10.6.58.10, which can then be changed with the backspace or back arrow keys before completing the command. Object categories and tab completion As mentioned above, objects are grouped by type, for example, IPAddress. Types themselves are grouped by category. The type IPAddress belongs to the category Address. Categories are used by tab completion when searching for the right object type to use. If you enter a command such as add and press the Tab key, the SEG displays all the available categories. By choosing a category and then pressing the Tab key again, all the object types for ...
Page 20
Management Selecting object categories With some categories, it is necessary to first choose a member of that category with the cc (change category or context) command before individual objects can be manipulated. This is the case, for example, with routes. There can be more than one routing table, so when adding or manipulating a route, you must first use the cc command to identify which routing table you are interested in. Suppose a route is to be added to the routing table main. The first command would be: Device:/> cc RoutingTable main Device:/RoutingTable/main> Notice that the command prompt changes to indicate the current category. You can now add the route: Device:/RoutingTable/main> add Route Interface=sfp1 Network=sfp1_net Name=new_route1 To deselect the category, the command is cc on its own: Device:/RoutingTable/main> cc Device:/> The categories that require an initial cc command before object manipulation have a “/” character following their names when displayed by a show command. For example: RoutingTable/. Inserting into rule lists Rule lists such as the IP rule set have an ordering that is important. With the add command, the default is to add a new rule to the end of a list. When placement at a particular position is crucial, the add command can include the Index= property as an option. Inserting at the first position in a list is specified with Index=1 in an add command, the second position with Index=2 and so on. Referencing by name You can optionally name some objects using the Name= property with the add command. An object, such as an IP rule, will always have an Index value that indicates its position in the rule list but can optionally be allocated a name as well. Subsequent manipulation of such a rule can be done either by referring to it by its index (list position) or by using its assigned name. The SEG‐100 Command Line Interface Reference lists the options available for each SEG object, including Name= and Index=. To make reading configurations easier, it is strongly advised to always add a unique name to ...
Page 21
Management SSH CLI login After access to the CLI has been established to the SEG through SSH, you must log on to the system to execute any CLI commands. This authentication step ensures that only trusted users can access the system, as well as provides user information for auditing purposes. After communication is established, the SEG will respond with a login prompt. Enter the username followed by the Enter key, and then type the password followed by the Enter key again. After the first startup, the SEG will allow you to log in with the username admin and the password admin. This default password should be changed as soon as possible. If you are accessing the CLI through an RS232 console connection, authentication will only be required if an AuthenticationProfile is associated with the console’s COMPortAccess object. After a successful logon, the SEG CLI command prompt will appear: Device:/> The default welcome message will also be displayed directly after the logon. This SSH welcome message can be removed with the CLI command: Device:/> set RemoteManagement RemoteMgmtSSH ssh Banner= Where ssh is the name of the RemoteMgmtSSH object. To reset the message, enter: Device:/> set RemoteManagement RemoteMgmtSSH ssh Banner="Welcome!" SSH connection timeout When connecting to the SEG with SSH, there is a default inactivity timeout of 30 minutes. To increase this timeout to a higher value, use the following CLI command: Device:/> set RemoteManagement RemoteMgmtSSH ssh_allnets SessionIdleTime=1000000 Changing the admin user password Change the default password of the admin account from admin to another password as soon as possible after initial startup. User passwords can be any combination of characters and cannot be greater than 256 characters in length. It is recommended to use only printable characters. For example, to change the password to my‐password, the following CLI commands are used. First, change the current CLI context to be the relevant LocalUserDatabase object: Device:/> cc LocalUserDatabase AdminUsers The password of the admin user can now be changed: Device:/LocalUserDatabase/AdminUsers> set User admin Password="my‐password"...
Page 22
Management Activating and committing changes If any changes are made to the current configuration through the CLI, those changes will not become active until you issue the following command: Device:/> activate To make the changes permanent, this should be immediately followed by: Device:/> commit Uncommitted changes in CLI listings of configuration objects are indicated by a plus “+” or “*” symbol appearing to the left of the object. If the commit command is not issued within 30 seconds (the default time period), the activated changes are automatically undone and the old configuration restored. Symbols indicating object status When configuration objects are displayed with a show command, a symbol to the left of the object’s output indicates a change of status that has not yet been committed. Two symbols are mentioned above. The complete list is: ‐ means the object has been deleted. o means the object has been disabled. ! means the object has errors. + means the object has been newly created. * means the object has been modified. Checking configuration integrity After changing an SEG configuration and before issuing the activate and commit commands, you can explicitly check for any problems in a configuration using the command: Device:/> show ‐errors This will cause the SEG to scan the configuration about to be activated and list any problems. For example, a possible problem might be a reference to an IP object in the address book does not exist in a restored configuration backup. All the changes made to a configuration can be shown before activation with the command: Device:/> show ‐changes ...
Page 23
Management Viewing the configuration log Major SEG system events, such as new configuration deployments and system starts, are recorded in the configuration log. Use the command to view the configuration log, as cfglog shown in the following example: Device:/> cfglog ‐all Notice vsinit/Configure:1805 2011‐06‐17 13:53:40 ‐ Beginning system reconfigure. System starting. Notice vsinit/Configure:1805 2011‐06‐17 15:59:30 ‐ Beginning system reconfigure. Activating new configuration. Notice vsinit/Configure:2033 2011‐06‐17 15:59:31 ‐ Reconfigure completed successfully. If the command is used without the option, only major system events that cfglog ‐all occurred since the last system start or reconfigure are shown. The output from this command also shows if the SEG is running in demonstration mode, without a valid license. System performance commands The following commands give a real‐time snapshot of overall system performance: • The command for CPU utilization. Device:/> top Load avg: 0.94, 0.51, 0.35 CPU usage: 24.8% CPUs: 1 Name Time CPU(%) ‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐ ‐‐‐‐‐‐ statd 14:04 6.3 mdpd 12:52 5.1 vsinit 07:17 2.7 "...
Page 24
Management Multiple administration logins The SEG allows more than one user from the Administrators group to be logged in at the same time and change the configuration simultaneously. A change made by one such user is visible immediately to all others. For example, if one user deletes a configuration object, another user who tries to change it will receive a message to say that the operation is invalid. Logging off from the CLI After you finish working with the CLI, log off in order to prevent anyone from getting unauthorized access to the system.This is done with the command: Device:/> exit Changing the command view There are four command views: • Default • Advanced • Debug • All In normal operation the Default view is sufficient. However, some situations may require the use of commands that should be used cautiously and for that reason they are hidden in alternate command views. For example, to turn on the Advanced view, enter the command: Device:/> cmdview ADVANCED Entering the command will now show that an additional set of commands are available Help to the administrator in addition to the default set. These additional commands include, for example, , which provides a technically detailed listing of the current IP rules.
Page 25
Management Troubleshooting with ICMP ping For troubleshooting communication problems with external devices, one of the most useful tools is the CLI command. This command sends an ICMP ping message to an external ping IPv4 address and reports if the device replies. For example, to send an ICMP ping message to the IPv4 address 10.4.0.2, the CLI command would be: Device:/> ping 10.4.0.2 The sending interface is not specified because the SEG derives it by looking up the destination IP in the relevant routing table. By default, the routing table used is main but can be specified in the command using the option. ‐pbr=<table> Note: The command cannot send ICMP messages to IPv6 addresses in the current SEG ping version. The command options enable the ICMP message to be modified. For example, to send a ping UDP ping message, the above command becomes: Device:/> ping 10.4.0.2 ‐udp If the ICMP message is to come from the IPv4 address 192.168.0.5, the command would be: Device:/> ping 10.4.0.2 ‐srcip=192.168.0.5 When the option is used, the source IP address must be one of the IP addresses ‐srcip= configured on the sending interface. When ICMP ping messages are sent by external devices to SEG interfaces, both IPv4 and IPv6 messages will be responded to. CLI scripting To allow the administrator to easily store and execute sets of CLI commands, the SEG provides a feature called CLI scripting. A CLI script is a predefined sequence of CLI commands that can be executed after they are saved to a file that is then uploaded to the SEG. The steps for creating a CLI script are as follows: 1.
Page 26
Management The CLI script command is the tool used for script management and execution. The complete syntax of the command is described in the SEG‐100 Command Line Interface Reference and specific examples of usage are detailed in the following sections. See also Command line interface on page 15. Note: Uploaded CLI script files are not held in permanent memory and will disappear after system restarts. All CLI commands are allowed in scripts There are no restrictions on which CLI commands can appear in an SEG script. Any valid command can be used. Executing scripts As mentioned above, the command launches a named script file that has been script ‐run previously uploaded to the SEG. For example, to execute the script file my_script.sgs that has already been uploaded, the CLI command would be: Device:/> script ‐run ‐name=my_script.sgs Script variables A script file can contain any number of script variables that are called: $1, $2, $3, $4..$n The values substituted for these variable names are specified as a list at the end of the script command line. The number n in the variable name indicates the variable value’s position ‐run in this list. $1 comes first, $2 comes second, and so on. Note: The name of the first variable is $1. The variable $0 is reserved and is always replaced before execution by the name of the script file itself. For example, a script called my_script.sgs is to be executed. The IPv4 address 126.12.11.01 is to replace all occurrences of $1 in the script file and the string sfp1 address is to replace all occurrences of $2. The file my_script.sgs contains the single CLI command line: add Address IPAddress sfp1_ip Address=$1 Comments=$2 To run this script file after uploading to the SEG with the given substitutions, the CLI command ...
Page 27
Management Script validation and command ordering CLI scripts are not, by default, validated and the ordering of the commands does not matter. There can be a reference to a configuration object at the beginning of a script that is created only at the end of the script. Although this might seem illogical, it is done to improve the readability of scripts. If something always has to be created before it is referred to, this can result in a confused and disjointed script file. In long scripts it is often preferable to group together similar CLI commands. Error handling If an executing CLI script file encounters an error condition, the default behavior is for the script to terminate. This behavior can be overridden by using the option. To run a ‐force script file called my_script2.sgs in this way, the CLI command is: Device:/> script ‐run ‐name=my_script2.sgs ‐force If is used, the script will continue to execute even if errors are returned by a command ‐force in the script file. Script output Any output from script execution will appear at the CLI console. Normally this output consists only of any error messages that occur during execution. To see the confirmation of each command completing, the option should be used: ‐verbose Device:/> script ‐run ‐name=my_script2.sgs ‐verbose Scripts are lost after restart When a script file is uploaded to the SEG, it is kept in temporary memory. If the SEG restarts, any uploaded scripts will be lost from memory and must be uploaded again before they can run. To move the example my_script.sgs to non‐volatile memory, the command would be: Device:/> script ‐store ‐name=my_script.sgs Alternatively, all scripts can be moved to non‐volatile memory with the command:...
Page 28
Management Listing scripts The script command without any parameters lists all the scripts currently available and indicates the size of each script as well as the type of memory where it resides (residence in non‐volatile memory is indicated by the word “Disk” in the Memory column). Device:/> script Name Storage Size (bytes) ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ my_script.sgs RAM 8 my_script2.sgs Disk 10 To list the content of a specific uploaded script file, for example, my_script.sgs, the command would be: Device:/> script ‐show ‐name=my_script.sgs Creating scripts automatically When the same configuration objects needs to be copied between multiple SEGs, one way to do this with the CLI is to create a script file that creates the required objects and then upload to and run the same script on each device. If a SEG installation already has the objects configured that need to be copied, running the command on that installation provides a way to automatically create the script ‐create required script file. This script file can then be downloaded to the local management workstation and then uploaded to and executed on other SEGs to duplicate the objects. For example, suppose the requirement is to create the same set of IPAddress objects on several SEGs that already exist on a single security gateway. The administrator would connect to the single gateway with the CLI and issue the command: Device:/> script ‐create Address IPAddress ‐name new_script.sgs This creates a script file called new_script_sgs that contains all the CLI commands necessary to create all IPAddress objects in that gateway’s configuration. The created file’s contents might, for example, be: add IPAddress sfp1_ip Address=10.6.60.10 add IPAddress sfp1_net Address=10.6.60.0/24 add IPAddress sfp1_br Address=10.6.60.255 add IPAddress sfp1_dns1 Address=141.1.1.1 " " "...
Page 29
Management The file new_script_sgs can then be downloaded with SCP to the local management workstation computer and then uploaded and executed on the other SEGs. The end result is that all units will have the same IPAddress objects in their address book. Note: In the created script example above, adding an IP address is done with the command: add IPAddress... This is instead of the usual way of qualifying the object with its group name: add Address IPAddress... Both are valid forms of the command. If an object type can be uniquely identified with its name, its object category does not need to be specified. This is always the case with automatically‐generated scripts. This shortened form can also be used when typing the entire command in a CLI console, although tab completion will always include the object category. Objects excluded from script files Certain aspects of a configuration that are hardware dependent cannot have a script file entry created when using the option. This is true when the CLI node/object type in the ‐create command is one of: script ‐create • COMPortDevice • EthernetDevice These node types are skipped when the script file is created and the SEG displays the message: No objects of selected category or type. Commenting script files Any line in a script file that begins with the # character is treated as a comment. For example: # The following line defines the sfp1 IPv4 address add Address IPAddress sfp1_ip Address=10.6.60.10 Scripts running other scripts It is possible for one script to run another script. For example, the script my_script.sgs could ...
Page 30
Management Secure copy To upload and download files to or from the SEG, the Secure Copy (SCP) protocol can be used. SCP is based on the SSH protocol and many freely available SCP clients exist for almost all platforms. The command line examples below are based on the most common command format found with SCP client software. Some SCP clients might use different syntax. SCP command format SCP command syntax is straightforward for most console based clients. The basic command used here is scp followed by the source and destination for the file transfer. Upload is performed with the command: > scp <local_filename> <destination_gateway> Download is performed with the command: > scp <source_gateway> <local_filename> The source or destination SEG is specified using the format: <user_name>@<gateway_ip_address>:<filepath> For example: admin@10.62.11.10:config.bak. The <user_name> must be a defined SEG user belonging to the administrator user group. Note: SCP will normally prompt for the user password after the command line but that prompt is not shown in the examples in this manual. Examples of SCP uploading and downloading In some cases, a file is located in the SEG root. In other cases, it is located within a particular folder. For example, all backup files are located in a subfolder called storage/backup. Uploading/downloading backup files If an administrator username is admin1 and the IPv4 address of the SEG is 10.5.62.11, to upload a configuration backup file called config.bak from the local disk, the SCP command would be: > scp config.bak admin1@10.5.62.11:backup/ To download a configuration backup to the current local directory, the command would be: > scp admin1@10.5.62.11:backup/config.bak ./ If a backup file is not uploaded to the backup folder, it becomes unusable but will be deleted after a system restart.
Page 31
Management Uploading certificate files The following command lines show how a typical SCP utility might upload a host certificate consisting of two files called cert‐1.cer and cert‐1.key to a security gateway that has the management IP address 192.168.3.1: > scp C:\cert‐1.cer admin@192.168.3.1: > scp C:\cert‐1.key admin@192.168.3.1: In each case, the uploaded file will retain its original file name. Uploaded certificate files are stored in volatile memory and must be associated with a SEG object to become a non‐volatile part of the configuration. For details, refer to Creating certificate configuration objects on page 130. Using wildcards with SCP The SEG supports the use of the wildcard asterisk (“*”) with SCP. For example, to download all the files with a file type of .MIB, the following command can be used: > scp admin@192.168.3.1:*.mib . To download all the downloadable files: > scp admin@192.168.3.1:* . Wildcards can also be used when uploading. For example, to upload all the backup files in the current directory: > scp *.bak admin@192.168.3.1:backup/ SNMP monitoring Simple Network Management Protocol (SNMP) is a standardized protocol for management of network devices. An SNMP compliant client can connect to a network device that supports the SNMP protocol in order to query and control it. The SEG supports SNMP version 1 and version 2. Connection can be made by any SNMP compliant clients to the SEG. However, only query operations are permitted for security reasons. Specifically, the SEG supports the following SNMP request operations by an SNMP client: • GET REQUEST • GET NEXT REQUEST • GET BULK REQUEST (SNMP Version 2c only) SEG MIB The Management Information Base (MIB) is a database, in the form of a text file, which ...
Page 32
Management These MIB file should be transferred to the hard disk of the workstation that will run the SNMP client so they can be imported by the client software. When the SNMP client runs, the MIB files are read and tell the client which values can be queried on an SEG device. Each entry in the MIB includes a textual explanation of what the value is. A complete list is not reproduced in this guide. A typical MIB file entry for the total number of packets transmitted by an interface is shown below: clvIfPktsTotCnt OBJECT‐TYPE SYNTAX Counter32 MAX‐ACCESS read‐only STATUS current DESCRIPTION "Total number of packets transmited by the interface" ::= { clvIfStatsEntry 10 } All SEG statistical values that can be accessed by SNMP are listed in the SEG‐100 Statistics Reference, which provides all available information for each. This includes the description of the values along with the MIB IOD, MIB name and MIB type. All retrievable statistics are part of a hierarchy. Identifying a particular statistic involves constructing a path, which is also described in the Statistics Reference. Defining SNMP access SNMP access is defined through the definition of an SEG Remote object with a Mode value of SNMP. The Remote object requires the entry of: • Source interface – The SEG interface on which SNMP requests will arrive. • Source network – The IP address or network from which SNMP requests will come. • Destination interface – The SEG interface to which SNMP requests are sent. By default, this is core. • Destination network – The IP address or network from which SNMP requests are sent. By default, this is all‐nets. • Community – The community string which provides password security for the accesses. Defining community strings Security for SNMP Versions 1 and 2c is handled by the Community String, which is the same as a password for SNMP access. The Community String should be difficult to guess and should ...
Management Remote access encryption For SNMP version 1 or 2c, the community string will be sent as plain text over a network. This is clearly not secure if a remote client is communicating over the public Internet. If this is the case, it is recommended to have remote access take place over an encrypted VPN tunnel or similarly secure means of communication. Preventing SNMP overload The advanced setting SNMP Request Limit restricts the number of SNMP requests allowed per second. This can help prevent attacks through SNMP overload. Optional SNMP settings You can also set the following SNMP parameters: • SNMPSysContact – The contact person for this managed node. • SNMPSysName – The name of this managed node. • SNMPSysLocation – The physical location of this node. Example: Enabling SNMP monitoring This example enables SNMP access through the internal lan interface from the network mgmt‐net using the community string Mg1RQqR. Device:/> add RemoteManagement RemoteMgmtSNMP my_snmp SourceInterface=lan SourceNetwork=mgmt‐net SNMPGetCommunity=Mg1RQqR Date and time Correctly setting the date and time is important for the SEG to operate properly. For example, certificates used in certificate‐based VPN tunnels depend on the system clock being accurately set. In addition, log messages are tagged with timestamps in order to indicate when a specific event occurred. Not only does this assume a working clock, but also that the clock is correctly synchronized with other equipment in the network. You can set the date and time manually, which is recommended when a new SEG installation ...
Page 34
Management Automatic time synchronization The SEG supports the optional use of a Time Synchronization Protocol. This protocol allows the current time to be automatically retrieved from a time server over the public Internet. Updating the system clock in this way can be done automatically on SEG startup, removing the need for a battery backup. This feature is discussed further in Time servers on page 35. Example: Setting the current date and time To adjust the current date and time, enter: Device:/> time ‐set YYYY‐mm‐DD HH:MM:SS Where YYYY‐mm‐DD HH:MM:SS is the new date and time. Note that the date order is year, then month and then day. For example, to set the date and time to 9:25 in the morning on April 27th, 2011 the command would be: Device:/> time ‐set 2011‐04‐27 09:25:00 Note: A new date and time will be applied by the SEG as soon as it is set. There is no requirement to reconfigure or restart the system. Time zones The world is divided up into a number of time zones, with Greenwich Mean Time (GMT) in London at zero longitude the base time zone. All other time zones going east and west from zero longitude are GMT plus or minus a given period of time. All locations counted as being inside a given time zone will then have the same local time and this will be one of the integer offsets from GMT. The SEG time zone setting reflects the time zone where the security gateway is physically located. Example: Setting the time zone To modify the SEG time zone to be GMT plus 1 hour, enter: Device:/> set DateTime Timezone=GMTplus1 Tab completion can present a list of all time zones.
Page 35
Management Time servers The hardware clock that the SEG uses can sometimes become fast or slow after a period of operation. This is normal behavior in most network and computer equipment and is solved by using Time Servers. The SEG is able to adjust the clock automatically based on information received from one or more time servers which provide a highly accurate time, usually using atomic clocks. Using time servers is highly recommended as it ensures the SEG will have its date and time aligned with other network devices. For hardware platforms without battery backup of the system clock, using time servers is a useful way to automatically set the correct time after initial startup. SNTP protocol Time Synchronization Protocols are standardized methods for retrieving time information from external time servers.The SEG supports the Simple Network Time Protocol (SNTP) as defined by RFC 5905 (SNTPv4). Configuring time servers More than one time server can be configured to query for time information. Using more than a single server prevents the time synchronization process from failing due to an unreachable server. The SEG always queries all configured servers and then computes an average time based on all responses. To configure servers, the steps are: 1. Set the TimeSyncEnable option on the DateTime object to Yes. 2. Add each configured server as a new TimeServer object to the DateTime object. Example: Enabling time synchronization using SNTP In this example, time synchronization will be enabled and two time servers will be configured with IPv4 addresses 10.5.4.36 and 10.5.4.76. The created TimeServer objects will be given the names my_tsrv1 and my_tsrv2. 1. Change the context to be DateTime: Device:/> cc DateTime 2.
Page 36
Management Manually triggering time synchronization If there is a need to manually force the system clock to be updated, use the CLI time ‐sync command. Example: Manually triggering time synchronization Time synchronization can be triggered from the CLI. Device:/> time ‐sync Time synchronization requested Device:/> Maximum time adjustment To avoid situations where a faulty Time Server causes the clock to be updated with an extremely inaccurate time, a Maximum Adjustment value (in seconds) can be set. If the difference between the current SEG time and the time received from a Time Server is greater than this Maximum Adjustment value, the Time Server response will be discarded. For example, assume that the maximum adjustment value is set to 60 seconds and the current SEG time is 16:42:35. If a Time Server responds with a time of 16:43:38 then the difference is 63 seconds. This is greater than the maximum adjustment value so no update occurs for this response. The default value for the maximum adjustment is 600 seconds (ten minutes). Example 1: Modifying the maximum adjustment value Sometimes it might be necessary to override the maximum adjustment parameter. For example, you may want to manually force a synchronization and disregard the maximum adjustment if time synchronization has just been enabled and the initial time difference is greater than the maximum adjust value.
Management Licensing To use the SEG in a live environment, a license file must be deployed to the SEG and associated with the configuration. The purpose of the license file is to define the capabilities and limitations that the SEG installation has. A license file is a plain text file that defines all the capabilities allowed by the license plus a digital signature to ensure the file cannot be altered. The file can be opened and read in a normal text editor. It is generated and supplied by Radisys. For instructions on installing a license, refer to the SEG‐100 Getting Started Guide. Local lockdown mode Without correct licensing, the SEG operates in Lockdown Mode, which means that it has extremely limited functionality. The following features are available in lockdown mode. • The only access permitted to the SEG is management access by an administrator. • The SEG can be configured, including uploading and activating a license. • In addition to access using the CLI, access is also possible using SCP and SNMP. Log event and console messages indicate when lockdown mode goes into effect and when it ends. Managing license files A number of license files can be present in local SEG temporary storage; however, only one can be active at any time. The SEG CLI provides the license command to manage the active license. The options for this command are: • Activate: The activate command causes a previously uploaded license to become the current license associated with the SEG. A copy of the license selected is made by the SEG and saved in non‐volatile storage. It is this copy that is used during SEG execution and it is not lost after a system reboot. • Remove: This command deactivates the currently activated license file: Device:/> license remove After deactivation, the SEG enters lockdown mode. Previously uploaded license files are unaffected by this command and remain available for activation (although they will be lost after a system reboot). • No options: If the license command is used without any options, it provides a summary of ...
Page 38
Management Some typical output from this command is shown below: Device:/> license Property Value ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ IsValid: Yes OS: 1 RegisteredTo: Radisys QA RegistrationKey: 1654‐5761‐8527‐1384 OEMId: 0 DisplayModel: Generic RegistrationDate: 2011‐11‐12 00:00:00 LastModified: 2011‐11‐12 00:00:00 IssuedDate: 2011‐11‐12 00:00:00 UpgradesValidUntil: 2014‐11‐12 00:00:00 MACAddress: 01‐91‐FB‐2A‐A0‐30 IKETunnels: 2 GTP: Yes The MAC address is for one of the Ethernet interfaces on the processor running the SEG. The GTP property should be enabled for I‐WLAN deployments. Licenses do not expire There is no expiration date for SEG licenses. Instead, there is a Upgrades Valid Until date. When this date has passed, the SEG will continue to function as usual but software upgrades will not be available. Binding to a MAC address When a license file is created, it is bound to the MAC address specified in the license. This means that the license is valid only if the SEG can detect that the MAC address of one of the hardware’s Ethernet addresses is the same as the MAC address of the license. For this reason, a license is not portable between different hardware units. If hardware is replaced so that the license Ethernet MAC address is no longer present, a new license must be generated.
Management Backup and restore The administrator has the ability to take a snapshot of an SEG system at a given point in time and restore it if necessary. The snapshot taken is known as a configuration backup. This is a backup of the entire current SEG configuration but does not include a copy of the SEG itself. Creating a backup Backups are created in two steps: Step 1: A configuration backup is first created as a single file in local volatile SEG memory. This is done with the CLI command: Device:/> backup ‐create The file created will be placed in the logical SEG folder called “backup” and will have the default name config‐YYYYMMDD.bak, where YYYYMMDD indicates the current date. To specify a filename for the backup file, the command is: Device:/> backup ‐create <filename> Step 2: Once created, backup files are transferred to an external computer by downloading the files from the security gateway using SCP (Secure Copy). As stated above, all backup files are saved in an SEG logical folder called backup and this folder needs to be specified in SCP commands. It is important to note which SEG hardware the backup file came from so that it can be restored to a processor that has the same logical interface names. SCP usage is described further in Secure copy on page 30. Note: Backups are temporarily kept in the backup folder. They are not held in permanent memory and will disappear after system restarts. Restoring a backup Restoring a backup is also a two step process: Step 1: Use SCP to upload the backup file to the target security gateway. It is uploaded to the SEG logical folder called backup and this must be specified in the SCP command. SCP usage is described further in Secure copy on page 30. ...
Management Step 2: To make the uploaded configuration the current configuration, the following CLI command is used: Device:/> backup ‐restore <filename> Where filename is the name of the file in the backup folder. To list all files in /storage, use the CLI command: Device:/> backup ‐list When a restore begins, the selected file is validated before it replaces the current configuration. For the new configuration to become active, the CLI commands activate followed by commit are required after the restore is complete. Important: Do not perform a restore operation with live traffic flowing through the security gateway. Any traffic flows will be disrupted. Reverting a backup After performing a restore operation, the SEG retains a copy of the original configuration (that is to say, the configuration that the restore replaced). This copy can be reactivated at any time with the CLI command: Device:/> backup ‐revert A revert operation always uses the configuration in effect previous to the last restore if there was one. If no restore has been performed, a revert operation will have no effect. Restoring the default configuration A special case of backup command usage for configuration restoration is: Device:/> backup ‐reset This restores the default configuration for the security gateway. The current configuration is saved when this command is used so that the reset can be undone by using the command: Device:/> backup ‐revert Restoring to a dissimilar processor Important: Restore a backup to the SEG that uses the same interface names as those used on the original hardware from which the backup was taken. The reason for this is that the backup may refer to logical interface names that do not exist on the new hardware. On the SEG‐100, there are two processors on each module (DPB1 and DPB2). These are ...
Page 41
Management The restore will be successful; however, the processors use different logical names for their Ethernet interfaces. For example, the interface sfp1 on the DPB1 processor corresponds to the sfp4 interface on the DPB2 processor. The restored configuration will continue to use original interface names such as sfp1 after the restore, but these will no longer match the interface text labels on the module’s exterior. This interface renaming can cause confusion and should therefore be avoided. Restoring the default configuration A special case for using the command for restoring a configuration is: backup Device:/> backup ‐reset This restores the default configuration for the security gateway. The following points should be noted about a reset: • Since the default configuration will be restored, the option should be issued only ‐reset from an SSH client that is connected to the default management interface using the default management IP address, or from a console that is connected to the RS232 serial console interface. Otherwise, the connection to the CLI will be lost after the command is issued. • The current SEG configuration will be lost after a reset and cannot be recovered. For this reason, this command option should be used with caution. To remind the administrator that the command is irreversible, a prompt appears to ask if the SEG should proceed: Device:/> backup ‐reset This will reset the current configuration to the system's default configuration and reboot the system. This change is not reversible. Are you sure you want to continue? [yes/no]: yes Resetting configuration to system default... Reset configuration to default successful. Restarting the SGW:done. In CLI scripts, the option must be used with ‐force ...
Management Crashdumps In the event of a serious system malfunction, the SEG generates a Crashdump and stores it in non‐volatile system memory as a set of files. The files generated by a crashdump consist of critical data that can assist in troubleshooting the cause of the malfunction. Send crashdumps to Technical Support The files generated by crashdumps are not intended to be read and interpreted by the administrator. Instead, crashdumps should be sent to Radisys Technical Support and all relevant files should be sent. Downloading crashdump files Any of the files generated by a crashdump can be downloaded using SCP. All files are kept in the storage folder called crashdumps. A typical SCP command to download a single file would take the form: scp <user>@<seg‐address>:/crashdumps/<crashdump‐file> To download all files in one operation, a typical SCP command would be: scp ‐r <user>@<seg‐address>:crashdumps Listing crashdump files The SEG command line interface provides the command to manage the crashdump crashdump files stored in non‐volatile memory. The option provides a list of all files currently stored ‐list along with their sizes in bytes plus the total memory used and available. For example, a typical listing might be: Device:/> crashdump ‐list Size Name ‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 46142 2011‐01‐01_00.00.36_rtbld.dump 886 2011‐01‐01_00.00.52_dpcore.dump Used space: 47028 Bytes Free space: 24211456 Bytes Note: The default option is ...
Page 43
Management Crashdump file naming Every crashdump file has a file type of .dump. The complete filename follows the format: <date><time><module>.dump Where <module> identifies the SEG module that is the source of the crashdump, preceded by the date and time of when the crash occurred. For example: 2011‐01‐01_00.00.36_rtbld.dump Note: The date and times used in crashdump timestamps are based on GMT. They are not based on local time. Displaying file contents Crashdump files can contain a readable text portion, combined with any binary dump information. The option prints out only the readable portion of a crashdump file. ‐cat For example, to list the readable contents of the file 2011‐01‐01_00.00.52_dpcore.dump, use the CLI command: Device:/> crashdump ‐cat=2011‐01‐01_00.00.52_dpcore.dump ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Date: 2011‐01‐01 00:00:52 Version: 1.0.0.3‐1095 TP Uptime: 50s Dump Record: 022 Event: Exception Reason: Unhandled exception=>TLB exception (load/instruction fetch) CPU (core‐0) state: r0 ($00): 0x0000000000000000 s0 ($16): 0x00000000163ffe70 at ($01): 0x0000000000ffff80 s1 ($17): 0xffffffff800cfaa0 v0 ($02): 0x0000000000000000 s2 ($18): 0xffffffff8004af40 v1 ($03): 0x000000001018f83c s3 ($19): 0xffffffffffffffff a0 ($04): 0x00000000102e22f8 s4 ($20): 0xffffffff800d0a30 " " " If the same command is applied to another type of crashdump file, the output might be shorter and similar to the example below: Device:/> crashdump ‐cat=2011‐01‐01_00.00.36_rtbld.dump Date: 2011‐01‐01 00:00:36 Version: 1.0.0.3‐1095 TP Application: rtbld...
Management Deleting a single file The option can be used to delete files from permanent storage. For example, to remove ‐rm the file 2011‐01‐01_00.00.52_dpcore.dump, the command would be: Device:/> crashdump ‐rm=2011‐01‐01_00.00.52_dpcore.dump Deleting all files All crashdump files stored in memory can be deleted with the command: Device:/> crashdump ‐rm=all Instead of all, the asterisk character (*) can also be used as a wildcard: Device:/> crashdump ‐rm=* Important: The size of non‐volatile memory available for crashdump file storage is limited, so it is important to delete crashdump files as soon they have been downloaded. Statistics The SEG maintains a large number of counters in memory that keep track of system activity. This information is kept only in memory and is mostly made up of single numerical values. The purpose of this is to be able to give the administrator an overview of the tasks being performed by the system. The counters are collectively known as SEG statistics. A separate document called the SEG‐100 Statistics Reference provides a detailed listing of all available statistical values. This section is designed to give a short introduction to their structure and use. Accessing statistics There are two methods for the administrator to view SEG statistics: • By using the statistics command in a CLI console. • Using an SNMP client in conjunction with the Clavister MIB file. This section describes examining statistics through the CLI. SNMP access to the SEG is described in SNMP monitoring on page 31. Hierarchical statistics structure All statistics are part of a hierarchical tree structure that divides them into related values. This structure can be clearly seen in the contents of the Statistics Reference.
Page 45
Management For example, the bytes_in statistic associated with the sfp1 interface is identified with the path: /ifaces/sfp1/bytes_in These variable references in paths are indicated in the Statistics Reference using the [..n] notation. Types of statistic Not all statistics are pure counters. The possible types are: • Counter – The value is positive and only increments. • Momentaneous – The value can vary arbitrarily. • Min – Retains the smallest observed value. • Max – Retains the largest observed value. • None – Not a numerical value. Typically, this is a string value. As described in the introduction to the Statistics Reference, the numerical values can vary from 8 bit unsigned integer up to a 64 bit signed integer, depending on the expected range of the statistic. All values are reset between system restarts so that statistics are not carried over. Using the statistics command The CLI command is used to display the value of one or more statistics at a statistics moment in time or at a regular interval. Entering this command without options will initially give the following response: Device:/> statistics The list of polled values is empty The command maintains a list of statistics that can be polled. It is necessary to first add to the list using the option. Suppose that there is a requirement to see the number of active ‐add system users every 10 seconds. The command to add this to the list is: Device:/> statistics ‐add /authentication/system/active_users_system The new contents of the list can now be displayed. At the same time, all statistics on the list ...
Page 46
Management Starting and stopping regular polling To begin polling all values in the list at a regular interval, an additional command is required: Device:/> statistics ‐poll ‐interval=10 This turns on regular polling with the same output as before and it will appear every 10 seconds on the console. In the example output below, another user has appeared: Device:/> statistics Name Value Unit ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐ ‐‐‐‐‐ /authentication/system/active_users_system 2 users To stop regular polling use the command: Device:/> statistics ‐stop If an interval time period is not specified, the interval defaults to zero and the polling is continuous. Using wildcards When you add statistics to the polling list, the asterisk “*” character can be used to specify all statistics within a particular category. For example, the statistic bytes_in for the Ethernet interface sfp1 can be polled with the command: Device:/> statistics ‐add /ifaces/sfp1/bytes_in To poll all interfaces, the command would be: Device:/> statistics ‐add /ifaces/*/bytes_in Also notice that the interface name is specified as part of the path and this can vary from platform to platform. Removing polled statistics The option can remove individual statistics from the polled list: ‐remove Device:/> statistics ‐add /authentication/system/active_users_system If everything on the polled list is to be removed, this can be done with the wildcard character: Device:/> statistics ‐remove * To remove specific groups of statistics, the wildcard character can be used with the ‐remove option in the same way as it is used with the ...
Management Statistics and High Availability Statistics are not correctly mirrored in inactive unit of an HA cluster. This topic is discussed further in HA issues on page 166. Events and logging The ability to log and analyze system activities is an essential feature of the SEG. Logging enables monitoring of the SEG status and health, allows auditing of network usage, and assists in troubleshooting. Log message generation The SEG defines a large number of different log event messages, which are generated as a result of associated system events. Examples of such events are the establishment and ending of flows, receipt of malformed packets, and the dropping of traffic according to filtering policies. Log events are always generated for certain aspects of the SEG, such as buffer usage, DHCP clients, high availability, and IPsec. The generation of events for other SEG subsystems such as DHCP relay, DHCP servers, and IP rules can be enabled as needed. Event types The SEG defines several hundred events for which log messages can be generated. The events range from high‐level, customizable, user events to low‐level and mandatory system events. For example, the flow_open event is a typical high‐level event that generates an event message whenever a new flow is established, given that a matching security policy rule exists that specifies that event messages should be generated for that flow. An example of a low‐level event would be the startup_normal event, which generates a mandatory event message as soon as the system starts up. Message format All event messages have a common format with attributes that include category, severity, and recommended actions. These attributes enable easy filtering of messages, either within the SEG prior to sending to an event receiver, or as part of the analysis after logging and storing messages on an external log server. A list of all event messages can be found in the SEG‐100 Log Reference. That guide also describes the design of event messages, the meaning of severity levels, and the various attributes available. ...
Page 48
Management Event severity The severity of each event is predefined and it can be, in order of severity, one of: • Emergency • Alert • Critical • Error • Warning • Notice • Info • Debug By default, the SEG sends all messages of level Info and above to configured log servers. The Debug category is not sent by default and is intended for troubleshooting. It should be turned on only if you are trying to solve a problem. All log messages of all severity levels are found listed in the SEG‐100 Log Reference. Log receivers To distribute and log the event messages generated by the SEG, it is necessary to define one or more event receivers that specify what events to capture, and where to send them. The SEG can be configured to distribute log event messages in different ways: • Real‐time display in the CLI console The CLI can act as a log receiver, displaying new log messages as they are generated in real time. The feature can be turned on using the CLI log command. This receiver type is discussed further in Real‐time display in the CLI. • Syslog receivers Syslog is the de‐facto standard for logging events from network devices. If other network devices are already logging to Syslog servers, using Syslog with SEG messages can simplify overall administration. This receiver type is discussed further in Logging to Syslog servers on page 50. •...
Page 49
Management Real-time display in the CLI Log event messages can be displayed in real time on a CLI console by entering the command: Device:/> log ‐on All messages are then displayed as they are generated as well as being sent to any configured log servers. To switch off logging, use the command: Device:/> log ‐off The key combination Ctrl‐C can also be used to terminate message display at the console. A typical sequence of turning on and then turning off logging is shown below with one intervening log message: Device:/> log ‐on Logging on LOG: Jun 17 00:22:20 RULE: prio=Warning id=00000 event=no_route_to_source iface=wan srcip=172.22.0.5 pkt_flowdir=n/a pkt_srchw=00:1b:11:5a:0e:c9 pkt_ipver=4 pkt_proto=IGMP pkt_recvif=wan pkt_srcip=172.22.0.5 pkt_destip=239.255.255.100 pkt_srcport=0 pkt_destport=65178 action=drop logtrace=02404889 Device:/> log ‐off Logging off Device:/> Each new log message is preceded by the text “LOG:”. Limiting message display With large numbers of log messages being generated, it can be useful to limit the number of messages displayed. The option of the command restricts the number of messages ‐rate per second that are displayed with the excess being discarded. For example, to limit the displayed rate to one message per second, enter the command: Device:/> log ‐on ‐rate=1 Another way to limit the total number of log messages displayed is by using the option. ‐num For example, if only one log message is to be displayed before logging is disabled, the ...
Page 50
Management Logging to Syslog servers Syslog is a standardized protocol for sending log data although there is no standardized format for the log messages themselves. The format used by the SEG is well suited to automated processing, filtering and searching. Although the exact format of each log entry depends on how a Syslog receiver works, most are very much alike. The way in which logs are read is also dependent on how the syslog receiver works. Syslog daemons on UNIX servers usually log to text files, line by line. Message format Most Syslog recipients preface each log entry with a timestamp and the IP address of the machine that sent the log data: Feb 5 2000 09:45:23 gateway.ourcompany.com This is followed by the text the sender has chosen to send. Feb 5 2000 09:45:23 gateway.ourcompany.com EFW: DROP: Subsequent text is dependent on the event that has occurred. To facilitate automated processing of all messages, the SEG writes all log data to a single line of text. All data following the initial text is presented in the format name=value. This enables automatic filters to easily find the values they are looking for without assuming that a specific piece of data is in a specific location in the log entry. Note: The Prio= field in SysLog messages contains the same information as the Severity field for SEG Logger messages. However, the ordering of the numbering is reversed. Example: Enable logging to a Syslog host In this example, logging will be enabled for all events with a severity greater than or equal to Notice to a Syslog server with IPv4 address 195.11.22.55. The logical name for the receiver in the SEG will be My_Syslog. Device:/> add LogReceiver LogReceiverSyslog My_Syslog IPAddress=195.11.22.55 Note: The Syslog server may have to be configured to receive log messages from the SEG. Please see the documentation for your specific Syslog server software in order to correctly configure it. Limiting the sending rate The CLI configuration of a Syslog server can also include the parameter LogSendRateLimit. ...
Page 51
Management Filtering severity and message exceptions For each log receiver, it is possible to impose rules on what log message categories and severities are sent to that receiver. It also possible to lower or raise the severity of specific events. Filtering severity The Severity Filter is a means of specifying what severities, if any, are sent to a log receiver. By default, all log messages except those with a Debug severity are sent. However, an administrator may only want more important messages sent. For example, it might only be desirable to send Emergency, Alert and Critical messages to a log server. Example: Configuring the severity filter In this example, it is assumed that a Syslog server has already been configured in the SEG with the logical name My_Syslog. The aim is to have only the log messages with a severity of Emergency or Alert sent to this server. Device:/> set LogReceiver LogReceiverSyslog My_Syslog Severity=Emergency,Alert Log message exceptions After the severity filter is applied, any Log Message Exceptions are applied to generated messages. There can be more than one message exception for a log receiver and each consists of the following: • Category and ID This specifies the log messages that will be affected by the exception. If the ID number of the log message is not specified, all log messages for the specified category will be included. The ID of specific log messages can be found in the Log Reference Guide. • Type This can be one the following: • Exclude – This will exclude the specified log messages even if they are allowed by the severity filter. ...
Management Example: Adding a message exception In this example, it is assumed that a Syslog server has already been configured in the SEG with the logical name My_Syslog. It is required to change the severity of the log message 161 (“Failed to Rekey IKE SA”) in the category IKE from the default of Warning to become Alert. 1. Change the current context to be the log receiver object: Device:/> cc LogReceiver LogReceiverSyslog My_Syslog 2. Add the message exception: Device:/LogReceiverSyslog/My_Syslog> add LogReceiverMessageException LogCategory=IKE LogID=161 Action=INCLUDE LogSeverity=Alert All the message exceptions can be listed for this receiver: Device:/LogReceiverSyslog/My_Syslog> show LogReceiverMessageException # Category Log Message ID Action LogSeverity Comments ‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ + 1 IKE 161 INCLUDE Alert (1) Alert <empty> Notice the exception gets a unique index number to identify it. In this case, it is 1. 3. Change the context back to the default: Device:/LogReceiverSyslog/My_Syslog> cc Device:/> SNMP traps SNMP protocol Simple Network Management Protocol (SNMP) is a means for communicating between a Network Management System (NMS) and a managed device. SNMP defines 3 types of messages: a Read command for an NMS to examine a managed device, a Write command to alter the state of a managed device, and a Trap that is used by managed devices to send messages asynchronously to an NMS about a change of state. SNMP traps in the SEG The SEG’s implementation of SNMP allows any log event message to be sent as an SNMP trap ...
Page 53
Management SNMP MIB File The file Clavister‐TRAP.MIB, which is included in the SEG distribution, defines the SNMP objects and data types that are used to describe an SNMP trap message received from the SEG. SNMP trap object All SEG generated SNMP traps, regardless of severity, use a common trap object called OSGenericTrap. The trap object includes the following parameters: • System – The SEG system generating the message. • Severity – The severity of the message. • Category – The SEG subsystem that is generating the message. • ID – A unique identifier for the message. • Description – A short textual description of the condition. • Action – The action that is being taken by the SEG, if any. This trap information can be cross‐referenced in the SEG‐100 Log Reference. Example: Sending SNMP traps to a trap receiver In this example, the generation of SNMP traps will occur for all events with a severity greater than or equal to Alert. All traps will be sent to an SNMP trap receiver with an IP address of 195.11.22.55. Device:/> add LogReceiver EventReceiverSNMP2c my_traps IPAddress=195.11.22.55...
Chapter Addressing Interfaces An Interface is an important logical building block in the SEG. All network traffic that transits through, originates from or is terminated in a security gateway, does so through one or more interfaces. Source and destination interfaces An interface can be thought of as a doorway through which network traffic passes to or from the SEG. An SEG interface has one of two functions: • Source interface: When traffic arrives through an interface, that interface is referred to in the SEG as the source interface (also sometimes known as the receiving or incoming interface). • Destination interface: When traffic leaves after being checked against the SEG’s security policies, the interface used to send the traffic is referred to in the SEG as the destination interface (also sometimes known as the sending interface). All traffic passing through the SEG has both a source and destination interface. As explained in more depth later, the special logical interface core is used when the SEG itself is the source or destination for traffic. Interface types The SEG supports a number of interface types, which can be divided into the following groups: • Ethernet interfaces: Each Ethernet interface represents a physical Ethernet port on an SEG‐based product. All network traffic that originates from or enters a security gateway will pass through one of the physical interfaces. The SEG currently supports Ethernet as the only physical interface type. • Tunnel interfaces: Tunnel interfaces are used when network traffic is being tunneled between the system and another tunnel endpoint in the network before it gets routed to its final destination. An example of a tunnel interface is an IPsec tunnel object, which is described further in IPsec components on page 117. To accomplish tunneling, additional headers are added to the traffic that is to be tunneled. Furthermore, various transformations can be applied to the network traffic depending on the type of tunnel interface. For example, when routing traffic over an IPsec interface, the payload is usually encrypted to achieve confidentiality. ...
Addressing All interfaces are logically equivalent Even though the different types of interfaces may be very different in the way they function, the SEG treats all interfaces as logically equivalent. This is an important and powerful concept and means that all types of interfaces can be used almost interchangeably in the various SEG rule sets and other configuration objects. This results in a high degree of flexibility in how traffic can be examined, controlled and routed. An extension of this equivalency concept is that no interface is assumed to be connected to trusted “inside” networks or to untrusted “outside” networks. The administrator makes these decisions and implements security policies accordingly. Interfaces have unique names Each interface in the SEG is given a unique name to be able to identify and select it for use with other SEG objects in a configuration. Some interface types, such as physical Ethernet interfaces, are already provided by the SEG with relevant default names that are possible to modify if required. any and core interfaces In addition, the SEG provides two special logical interfaces that are named any and core. The meaning of these are: • any represents all possible interfaces, including the core interface. • core indicates that the SEG itself will deal with traffic to and from this interface. An example of the use of core is when the SEG responds to ICMP “Ping” requests. When the destination interface of an IP rule or route is specified as core, the SEG itself is the ultimate destination of the traffic. Ethernet interfaces The SEG supports Ethernet, Fast Ethernet, Gigabit Ethernet and 10 Gigabit Ethernet interfaces as defined by the IEEE 802.3 standards. Ethernet frames With Ethernet, devices send data as Ethernet frames and other devices “listen” to determine ...
Page 56
Addressing EthernetInterface and EthernetDevice object types In the SEG there are two types of configuration objects that are used to manage Ethernet interface operation: EthernetInterface and EthernetDevice. The EthernetInterface object is used to configure the logical properties of Ethernet operation such as IP address. The EthernetDevice object is used to specify low level, driver‐related properties such as link‐ speed and duplex. The following section covers the EthernetInterface object type. Ethernet interface properties The principal properties for an EthernetInterface object are: • Interface name The names of the Ethernet interfaces are predefined by the system, and are mapped to the names of the physical ports. For example, a system with a wan port will have an Ethernet interface named wan. The names of the Ethernet interfaces can be changed to better reflect their usage. For example, if an interface named dmz is connected to a wireless LAN, you might change the interface name to wireless. For maintenance and troubleshooting, it is recommended to tag the corresponding physical port with the new name. • IP addresses Each Ethernet interface is required to have an Interface IP Address. The interface IP address is used as the primary address for communicating with the system through the specific Ethernet interface. More than one IP address can be allocated to an Ethernet interface. SEG IPAddress objects are usually used to define the IP addresses of Ethernet interfaces. Those objects are normally auto‐generated by the system. For more information, see Auto‐generated address objects on page 65. When the SEG is first started, all unconfigured Ethernet interfaces will be assigned default addresses from the localhost subnetwork (127.0.0.0/8). • MTU This determines the maximum size of packets in bytes that can be sent on this interface. By default, the interface uses the maximum size supported. • HACritical/Sync For HA cluster nodes, it is important to identify those interfaces that are critical and those ...
Page 57
Addressing Listing Ethernet interfaces To list all Ethernet interfaces, the CLI command is: Device:/> show Interface EthernetInterface Interface Name IP Addresses Routing Table ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐ sfp1 10.1.50.102 main sfp2 10.6.58.100 main The listing shows there are two interfaces. The IP address allocated to each is shown along with the routing table that is associated with them. Changing the IP address of an Ethernet interface To change the IP address on an interface, there are two methods: • If the IP address for an object is used by other SEG objects, such as IP rules, change the IP address for the object in the SEG address book. For example, to change the IPv4 address of the sfp1_ip object in the address book, use the CLI command: Device:/> set Address IPAddress sfp1_ip Address=10.1.1.2 • Change the IP address directly on the interface. For example, to change the IP address of the sfp1_ip interface, use the CLI command: Device:/> set Interface EthernetInterface sfp1 IPaddress=10.1.1.2 Assigning multiple IP addresses to an Ethernet interface Multiple IP addresses can be assigned to a single Ethernet interface by adding addresses to the Ethernet interface object. The addresses can be a mixture of IPv4 and IPv6 addresses: Device:/> set Address IPAddress sfp1_ip_2 Address=2001:DB8::1 Device:/> set Interface EthernetInterface sfp1 IPAddress=sfp1_ip,sfp1_ip_2 A maximum of six IPv4 plus six IPv6 addresses can be assigned to a single Ethernet interface. ...
Addressing Address Resolution Protocol (ARP) allows the mapping of a network layer protocol (OSI Layer 3) address to a data link layer hardware address (OSI Layer 2). In data networks it is used to resolve an IPv4 address into its corresponding Ethernet address. ARP operates at the OSI Layer 2, data link layer, and is encapsulated by Ethernet headers for transmission. For an overview of the different OSI layers, see OSI Model on page 197. IP addressing over Ethernet A host in an Ethernet network can communicate with another host only if it knows the Ethernet address (MAC address) of that host. Higher level protocols such as IP make use of IPv4 addresses that are fundamentally different from a lower level hardware addressing scheme like the MAC address. ARP is used to retrieve the Ethernet MAC address of a host by using its IP address. ARP resolution When a host needs to resolve an IPv4 address to the corresponding Ethernet address, it broadcasts an ARP request packet. The ARP request packet contains the source MAC address, the source IPv4 address, and the destination IPv4 address. Each host in the local network receives this packet. The host with the specified destination address sends an ARP reply packet to the originating host with its MAC address. SEG ARP cache The ARP cache in network equipment, such as switches and security gateways, is an important component in the implementation of ARP. It consists of a dynamic table that stores the mappings between IPv4 addresses and Ethernet MAC addresses. The SEG uses an ARP cache in exactly the same way as other network equipment. Initially, the cache is empty at SEG startup and becomes populated with entries as traffic flows. The typical contents of a minimal ARP cache table might look similar to the following: Type IPv4 address Ethernet address Expires Dynamic 192.168.0.10 08:00:10:0f:bc:a5 Dynamic 193.13.66.77 0a:46:42:4f:ac:65...
Page 59
Addressing Example: Displaying the ARP cache The contents of the ARP cache can be displayed from within the CLI. This example displays the entries of the sfp1 interface. Device:/> arp ‐show ARP cache of iface sfp1: Dynamic 10.4.0.1 = 1000:0000:4009 Expire=196 Dynamic 10.4.0.165 = 0002:a529:1f65 Expire=506 Expires value The third column in the sample table and CLI output, Expires, is used to indicate for how much longer, in seconds, the ARP entry will be valid. For example, the first entry in the above CLI output has an expiration value of 196, which means that this entry will be rendered invalid and removed from the ARP cache in 196 seconds. If traffic is going to be sent to the 10.4.0.1 IPv4 address after the expiration, the SEG will issue a new ARP request. The default expiration time for dynamic ARP entries is 900 seconds (15 minutes). This can be changed by modifying the advanced setting ARPExpire. Example 1: Changing the ARPExpire setting This example shows how to change the number of seconds for the ARPExpire setting. Device:/> set Settings ARPTableSettings ARPExpire=1800 Modified ARPTableSettings. The advanced setting ARPExpireUnknown specifies how long the SEG will remember addresses that cannot be reached. This limit is needed to ensure that the SEG does not continuously request such addresses. The default value for this setting is 3 seconds. Example 2: Changing the ARPExpireUnknown setting This example shows how to change the number of seconds for the ARPExpireUnknown ...
Page 60
Addressing After the ARP entry expiration time, the SEG will learn the new MAC address of the host but sometimes it may be necessary to manually force the update. The easiest way to achieve this is by flushing the ARP cache. This deletes all dynamic ARP entries from the cache and forces the SEG to issue new ARP queries to discover the MAC/IP address mappings for connected hosts. Flushing can be done with the CLI command arp ‐flush. Example: Flushing the ARP cache This example shows how to flush the ARP cache from within the CLI. Device:/> arp ‐flush ARP cache of all interfaces flushed. Changing the ARP cache size By default, the ARP cache is able to hold 4096 ARP entries at one time. This is adequate for most situations. On rare occasions, such as when there are several very large LANs directly connected to the security gateway, it may be necessary to increase this value. This can be done by modifying the setting ARPCacheSize property in the ARPTableSettings object. Example 1: Changing the ARP cache size This example shows how to change the size of the SEG ARP cache to hold 8192 entries. Device:/> set Settings ARPTableSettings ARPCacheSize=8192 Modified ARPTableSettings. Hash tables are used to rapidly look up entries in the ARP cache. For maximum efficiency, a hash table should be twice as large as the entries it is indexing, so if the largest directly connected network contains 500 IP addresses, the size of the ARP entry hash table should be at least 1000. You can modify the setting ARPHashSize to reflect specific network requirements. The default value of this setting is 512. Example 2: Changing the ARP hash size This example shows how to change the SEG ARP hash size. ...
Page 61
Addressing Creating ARP entries To change the way the SEG handles ARP on an interface, you can create SEG ARP objects, each of which has the following properties: • Mode: The type of ARP object. This can be one of: • Static – Create a fixed mapping in the local ARP cache. • Publish – Publish an IP address on a particular MAC address (or this interface). • Interface: The local physical interface for the ARP object. • IP Address: The IPv4 address for the MAC/IP mapping. • MAC Address: The MAC address for the MAC/IP mapping. Static ARP objects A static ARP object can be used to insert a particular MAC/IP address mapping into the SEG ARP cache. The most frequent use of static ARP objects is in situations where some external network device is not responding to ARP requests correctly and is reporting an incorrect MAC address. Some network devices, such as wireless modems, may have such problems. A frequent source of confusion is that this mode is not for publishing the address for external devices. Instead, static entries allow the administrator to tell the SEG how to reach external devices. The entry tells the SEG that a specific IPv4 address can be reached through a specific interface using a specific MAC address. This means that when the SEG needs to communicate with the address, it consults the ARP table static entries and can determine it can be reached at a specific MAC address on a specific interface. This feature may also be used to lock an IP address to a specific MAC address for increasing security or to avoid denial‐of‐service if there are unauthorized users in a network. However, such protection applies only to packets being sent to that IP address. It does not apply to packets being sent from the IP address since the source MAC address can be forged. Example: Creating a static ARP entry This example will create a static mapping between IPv4 address 192.168.10.15 and MAC ...
Page 62
Addressing ARP publish The SEG supports publishing IP addresses on a particular interface. This can optionally be done along with a specific MAC address instead of the actual interface MAC address. The SEG will then send out these as ARP replies for any ARP requests received on the interface related to the published IP addresses. This can done for a number of reasons: • To give the impression that an interface in the SEG has more than one IP address. This is useful if there are several separate IP spans on a single LAN. The hosts on each IP span may then use a gateway in their own span when these gateway addresses are published on the corresponding SEG interface. • To publish multiple addresses on an external interface, enabling the SEG to use Static Address Translation (SAT) for traffic to these addresses and send it onwards to internal servers with private IPv4 addresses. • A less common purpose is to aid nearby network equipment responding to ARP in an incorrect manner. Example: Publishing an ARP entry This example will create an ARPEntry that publishes the IPv4 address 192.168.10.1 on the sfp1 interface: As in the previous example, change the context to be ARPEntries: Device:/> cc ARPEntries Next, add an ARPEntry object to ARPEntries: Device:/ARPEntries> add ARP Interface=sfp1 IP=192.168.10.1 Mode=Publish Finally, return to the default root context: Device:/ARPEntries> cc Device:/> ...
Addressing Address books The SEG address book contains named objects representing various types of IP addresses, including single IPv4 and IPv6 addresses and networks, as well as ranges of addresses. Ethernet MAC addresses can also be defined in the address book. Note: In this guide, an IPv6 Prefix will often be referred to as a Network in this guide. This is done to be consistent with the usage of the word Network with IPv4. Address book benefits Using address book objects has a number of important benefits: • They increase understanding of the configuration by referencing meaningful symbolic names. • They enable you to enter address object names instead of numerical addresses, reducing errors. • They enable you to define an address object just once in the address book and then reference this definition, so that changing the definition automatically changes all references to it. Address types The address book can contain objects for two types of addresses: IP addresses and MAC addresses. These are described next. IP addresses IP address objects are used to define symbolic names for various types of IP addresses. Depending on how the address is specified, an IP address object can represent a single IP address (a specific host), a network, a range of IP addresses, and even a DNS name. The following list describes the various types of addresses an IP address object can hold, along with what format that is used to represent that specific type: • Host: A single host is represented simply by its IP address. This can be either an IPv4 or IPv6 address. For example, 192.168.0.14. It also possible to specify a comma‐separated list of addresses. These can be a mixture of IPv4 and IPv6 addresses. For example, 192.168.0.14,10.15.0.50,2001:DB8::1. • IP network: An IPv4 network is represented using the Classless Inter Domain Routing (CIDR) form. CIDR uses a forward slash and a number (0‐32) to denote the size of the ...
Page 64
Addressing • IP ranges: A range of IPv4 addresses is represented with the form a.b.c.d ‐e.f.g.h. Note that ranges are not limited to IPv4 netmask boundaries. They may include any span of IP addresses. For example, 192.168.0.10‐192.168.0.15 represents six IPv4 hosts in consecutive order. A range of IPv6 addresses is specified in the same way. For example, 2001:DB8::1‐ 2001:DB8::6 Example 1: Adding an IP host This example adds the IP host www_srv1 with IPv4 address 192.168.10.16 to the address book: Device:/> add Address IPAddress www_srv1 Address=192.168.10.16 Example 2: Adding an IP network This example adds an IP network named wwwsrvnet with address 192.168.10.0/24 to the address book: Device:/> add Address IPAddress wwwsrvnet Address=192.168.10.0/24 Example 3: Adding an IP range This example adds a range of IPv4 addresses from 192.168.10.16 to 192.168.10.21 and names the range wwwservers: Device:/> add Address IPAddress wwwservers Address=192.168.10.16‐192.168.10.21 Example 4: Deleting an address object This example deletes an object named wwwsrv1 from the address book: Device:/> delete Address IPAddress wwwsrv1 ...
Page 65
Addressing Example: Adding an Ethernet address The following example adds an Ethernet Address object named wwwsrv1_mac with the numerical MAC address 08‐a3‐67‐bc‐2e‐f2. Device:/> add Address EthernetAddress wwwsrv1_mac Address=08‐a3‐67‐bc‐2e‐f2 Auto-generated address objects To simplify the configuration, a number of address objects in the address book are automatically created by the SEG when the system starts for the first time and these objects are used in various parts of the initial configuration. Generated objects The following address objects are auto‐generated: • Interface addresses: For each Ethernet interface in the system, two IPv4 address objects are predefined; one object for the IP address of the actual interface, and one object representing the local network for that interface. Interface IPv4 address objects are named <interface‐name>_ip and network objects are named <interface‐name>_net. For example, an interface named sfp1 will have an associated interface IP object named sfp1_ip, and a network object named sfp1_net. • all‐nets‐ip4: The all‐nets‐ip4 IPv4 address object is initialized to the IPv4 address 0.0.0.0/0, which represents all possible IP4 addresses. The all‐nets‐ip4 IP object is used extensively in the configuration of the SEG and it is important to understand its significance. • all‐nets‐ip6: The all‐nets‐ip6 object performs the same function as all‐nets‐ip4 but for the IP6 address space. • all‐nets: The all‐nets object includes all IP4 and IP6 addresses. The command shows the current address book contents. For example: netobjects Device:/> netobjects all‐nets 0.0.0.0/0, ::/0 all‐nets‐ip4 0.0.0.0/0 all‐nets‐ip6 ::/0 Assigning multiple IP addresses to an interface As discussed in Ethernet interfaces on page 55, it is possible to assign multiple addresses to a ...
Addressing IPv6 support The IP address standard IPv6 is designed as a successor to IPv4, with the principal advantage of providing a much larger 128 bit address space. Among many other advantages, the large number of available global IPv6 addresses means that NAT is no longer required to share a limited number of public IPv4 addresses. SEG configuration objects supporting IPv6 The following parts of the SEG provide IPv6 support: • The address book • Routing tables • IP rules (excluding some actions) Enabling IPv6 IPv6 needs to be explicitly enabled in the SEG if it to be used. This is done by setting the value of the setting BlockIPVersions to be None: Device:/> set Settings IPSettings BlockIPVersions=None This allows both IPv4 and IPv6 packets to be recognized. If all IPv6 traffic is to be ignored, the setting is: Device:/> set Settings IPSettings BlockIPVersions=IPv6DropSilent This is the default and causes all IPv6 packets to be ignored. Adding an IPv6 address IPv6 address objects are created in the SEG address book in the same way as for IPv4. For IPv6, only the all‐nets‐ip6 object (IPv6 address ::/0) exists by default in the address book. This means that the IPv6 address and network objects associated with interfaces must first be created. Example: Adding an IPv6 address This example adds a new address object called my_ip6_address to the address book with the ...
Page 67
Addressing Enabling IPv6 on an interface Predefined address book objects already exist for each Ethernet interface. To enable IPv6 on an interface, an IPv6 address and network (prefix) must be added to the associated address book object. This is done specifying a comma‐separated list of the IPv4 address and the IPv6 address for the interface. Note: A maximum of six IPv4 and six IPv6 addresses can be assigned to a single Ethernet interface. Addresses in excess of this will be ignored. The networks configured on an interface for each of the IP addresses can be different from each other (all the IPv4 or IPv6 addresses do not have to come from the same network). If an IPv6 address and network are not assigned, IPv6 packets arriving at the interface are always dropped. Example: Enabling IPv6 on an interface Assume that an IPv6 address and network have to be associated with the sfp1 interface and that interface already has the IPv4 address 10.15.0.50 and network 10.15.0.0/24. Now add the single IPv6 address 2001:DB8::1 from the network 2001:DB8::/32 to the address object. Device:/> set Address IPAddress sfp1_net Address=10.15.0.0/24,2001:DB8::/32 Device:/> set Address IPAddress sfp1_ip Address=10.15.0.50,2001:DB8::1 Tip: When using the CLI command, you can append a new IP address set Address IPAddress value to any existing values. All the existing values can be displayed by typing a period (“.”) followed by a tab after Address=. You can then type a comma (“,”) followed by the new address to be added to the list. Interface routes are added automatically When an IPv6 address and network are assigned to an Ethernet interface (both are required), an IPv6 route for that interface should be added to the main routing table.
Page 68
Addressing Grouping IP addresses Since the IPAddress object can contain any number of explicit IPv4 or IPv6 addresses as well as references to other IPAddress objects, it can be used to create grouping of addresses. There is no special group object in the SEG for IP addresses. The all-nets address object The preconfigured all‐nets‐ip4 address object is a catch‐all object for all IPv4 addresses. Similarly, all‐nets‐ip6 represents all IPv6 addresses and only IPv6 addresses. To represent all IPv4 and IPv6 addresses, all‐nets‐ip4 is combined with all‐nets‐ip6 in the single predefined object all‐nets. Enabling IPv6 router advertisements An additional option for an Ethernet interface is to enable IPv6 Router Advertisement. This means that any external client connected to the interface can solicit and receive IPv6 messages to allow it to perform Stateless Address Auto‐Configuration (SLAAC). The SLAAC process allows the client to create its own unique global IPv6 address based on the MAC address of its interface and the prefix of the IPv6 address for the SEG interface it is connected Enabling router advertisement in the SEG is not done directly on the Ethernet Interface object. Instead, you specify the AdvertiseIP property for a single route in a routing table. This means that advertisements are enabled on the interface specified in the route and only for the host or network specified in the route. Example: Enabling IPv6 advertisements This example enables IPv6 advertisements on the route sfp1_route in the routing table main. 1. Change the current context to be the main routing table: Device:/> cc RoutingTable main 2. Enable router advertisements on the target route: Device:/RoutingTable/main> set sfp1_route AdvertiseIP6=yes 3. Return to the default context: Device:/> cc...
Page 69
Addressing IPv6 Neighbor Discovery IPv6 Neighbor Discovery (ND) is the IPv6 equivalent of the ARP protocol with IPv4 (see ARP on page 58). When IPv6 is enabled for a given Ethernet interface, the SEG will respond to any IPv6 Neighbor Solicitations (NS) sent to that interface with IPv6 Neighbor Advertisements (NA) for the IPv6 address configured for that interface. The SEG will also respond with neighbor advertisements for any networks configured using Proxy Neighbor Discovery. Enabling neighbor discovery for other interfaces can be achieved by adding an NDEntry object to the pre‐existing NDEntries list. The example below demonstrates how to do this. Example: Enabling interface Neighbor Discovery This example will create an NDEntry that publishes the IPv6 address my_ipv6 on the sfp3 interface: 1. Change the context to be NDEntries: Device:/> cc NDEntries 2. Add an NDEntry object to NDEntries: Device:/NDEntries> add NDEntry Interface=sfp3 IP=my_ipv6_net Note that the default value for the Mode property is Publish. 3. Return to the default, root context: Device:/NDEntries> cc Device:/> IPv6 usage restrictions The following is a summary of IPv6 restrictions in the current version of the SEG: • Management access with any SEG management interface is not possible using IPv6. • IP rules using IPv4 and IPv6 addresses can coexist in the same IP rule set and also a single rule using an IPAddressGroup object. • IPv6 addresses are not currently supported in IP rules with the following actions: •...
Addressing IPv6 and High Availability SEG High Availability (HA) does not fully support IPv6. Any IPv6 configuration objects will be mirrored on both the HA master and slave units. However, if a failover occurs, state information will be lost when one unit takes over processing from the other and IPv6 connections will be lost. In an HA configuration where interfaces have IPv6 enabled and IPv6 addresses assigned, there is no private and shared IPv6 IP for each pair of interfaces. Each interface pair will have the same IPv6 IP address on both master and slave. A private IPv6 interface address for each interface in a pair is not possible. A DNS server can resolve a Fully Qualified Domain Name (FQDN) into the corresponding numeric IP address. FQDNs are unambiguous textual domain names that specify a node’s unique position in the Internet's DNS tree hierarchy. FQDN resolution allows the actual physical IP address to change while the FQDN stays the same. A Uniform Resource Locator (URL) differs from an FQDN in that the URL includes the access protocol along with the FQDN. For example, the protocol might be specified http//: for world wide web pages. DNS servers can exist both on the public Internet for resolution of public IP addresses as well as private servers for the resolution of private IP addresses. FQDNs are used in many aspects of an SEG configuration where IP addresses are unknown or where it makes more sense to use DNS resolution instead of static IP addresses. DNS with the SEG To accomplish DNS resolution, the SEG has a built‐in DNS client that can be configured to use up to eight (8) DNS servers. For DNS to function, at least a single server must be configured. It is recommended that at least two servers are defined so that there is a backup should one be unavailable. Features requiring DNS resolution Having at least one DNS server configured is vital for the functioning of the following modules in the SEG: • Automatic time synchronization. •...
Page 71
Addressing Example: Configuring DNS servers In this example, the DNS client is configured to use a single DNS server with IPv4 address 10.0.0.1. Device:/> set DNS DNSServers=10.0.0.1 To show the configured DNS server: Device:/> show dns Property Value ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐ DNSServers: 10.0.0.1 CacheTTL: 60 CacheNegativeTTL: 30 QueueSize: 1024 RepeatTime: 5 RepeatCount: 3 Comments: <empty> If the IPv4 address 10.0.0.1 is defined in the SEG address book with the name dns1_ip, the command is: Device:/> set DNS DNSServers=dns_ip1 With three multiple alternate DNS servers called dns_ip1, dns_ip2 and dns_ip3, the command Device:/> set DNS DNSServers=dns_ip1,dns_ip2,dns_ip3 To test the DNS lookup, assuming a public Internet DNS is configured, the command is: Device:/> dns www.google.com ip4 info: 209.85.149.99 209.85.149.103 209.85.149.104 209.85.149.105 209.85.149.106 198.41.0.4 TTL: 60...
Page 72
Addressing To list the SEG DNS cache, the command is: Device:/> dns ‐list Name Address Type TTL ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ www.google.com 209.85.149.99 A 49 www.google.com 209.85.149.103 A 49 www.google.com 209.85.149.104 A 49 www.google.com 209.85.149.105 A 49 www.google.com 209.85.149.106 A 49 www.google.com 198.41.0.4 A 49...
Chapter Address Translation Overview The ability of the SEG to modify the source or the destination IP address of packets as they traverse a security gateway is known as Address Translation. The ability to transform one IP address to another can have many benefits. Two of the most important are: • Private IP addresses can be used on a protected network where protected hosts need to have access to the public Internet. There may also be servers with private IP addresses that need to be accessible from the public Internet. • Security is increased by making it more difficult for intruders to understand the topology of the protected network. Address translation hides internal IP addresses, which means that an attack coming from the “outside” is much more difficult. Types of translation The SEG supports two types of translation: • Dynamic Network Address Translation (NAT) • Static Address Translation (SAT) Both types of translation are policy‐based in the SEG, which means that they can be applied to specific traffic based on the source or destination network or interface, as well as based on the type of protocol (the service). Two types of SEG IP rules, NAT rules and SAT rules, are used to configure address translation. This section describes how to configure NAT and SAT rules and provides examples. Dynamic Network Address Translation (NAT) provides a mechanism for translating original source IP addresses to a different address as packets traverse a network device. Outgoing packets from the device then appear to come from a different source IP address. Incoming packets returning to that source address have their IP address translated back to the original one. NAT is configured in the SEG by specifying the NATAction option in an IP rule with an action of Allow. NAT can have two important benefits: • The IP addresses of individual clients and hosts can be “hidden” behind the security gateway’s IP address. The is sometimes referred to as topology hiding. •...
Page 74
Address Translation Many-to-one IP address translation NAT provides many‐to‐one translation. This means that each NAT rule in the IP rule set will translate between several source IP addresses and a single source IP address. To maintain session state information, each NAT flow is translated to a unique combination of port number and IP address for the source. The SEG then performs automatic translation of the source port number as well as the IP address for returning packets. In other words, the actual source IP addresses for flows are all translated to the same IP address and the flows are distinguished from one another by the allocation of a unique port number to each. The diagram below illustrates the concept of NAT. Figure 2. NAT IP address translation In the illustration above, three flows from IP addresses A, B and C are dynamically translated through a single source IP address N. The original port numbers are also changed. The next source port number allocated for a new NAT flow will be the first free port selected randomly by the SEG. Ports are allocated randomly to increase security from external attack. Limitations on the number of flows There is a limitation of approximately 64,500 simultaneous NAT flows where each flow consists of a unique pair of IP addresses. The term IP pair means one IP address on an SEG interface and the IP address of some external host to which a flow is being made. If two different IP addresses on an external host are being connected to from the same NAT address on the security gateway, this will constitute two, unique IP pairs. The 64,500 figure is therefore not a limitation for the entire SEG. ...
Page 75
Address Translation Limitations on the number of NAT Flows Approximately 64,500 simultaneous NAT flows are possible if a “flow” is considered to be a unique pair of IP addresses and different port numbers are not used or the same destination port is used. For example, if a remote server demands that all flows are to a single destination port, this limit will apply. However, since there is a possible range of 64,500 source ports and the same number for destination ports, it is theoretically possible to have over 4 billion flows between two IP addresses if all ports are used. Source IP address used for translation There are two options for how the SEG determines the source IP address that will be used for NAT: • Use the IP address of the interface When a new flow is established, the routing table is consulted to resolve the outbound interface for the flow. The IP address of that resolved interface is then used as the new source IP address when the SEG performs the address translation. This is the default way that the IP address is determined. • Define a specific IP address A specific IP address can be defined as the new source IP address. The specified IP address needs to have a matching ARP Publish entry configured for the outbound interface. Otherwise, the return traffic will not be received by the SEG. This technique might be used when the source IP is different based on the source of the traffic. For example, an ISP that is using NAT might use different IP addresses for different customers. Applying NAT translation The following example illustrates how NAT is applied in practice on a new flow: ...
Page 76
Address Translation 4. The SEG receives the packet and compares it to its list of open flows. Once it finds the flow in question, it restores the original address and forwards the packet. 195.55.66.77:80 => 192.168.1.5:1038 5. The original sender now receives the response. The sequence of these events is illustrated further in the diagram below. Figure 3. A NAT example Example: Adding a NAT rule The following example adds a NAT rule that will perform address translation for all HTTP traffic originating from the internal network sfp1 as it flows out to the public Internet on the wan interface. The IPv4 address of the wan interface will be used as the NATing address for all connections. 1. Change the current category to be the main IP rule set: Device:/> cc IPRuleSet main 2. Create the IP rule: Device:/IPRuleSet/main> add IPRule Action=Allow SourceInterface=sfp1 SourceNetwork=sfp1net DestinationInterface=wan DestinationNetwork=all‐nets Service=http SourceTranslation=NAT SetSourceAddress=InterfaceAddress Name=NAT_HTTP 3. Return to the default CLI context if no more rules are needed: Device:/IPRuleSet/main> cc Device:/> ...
Page 77
Address Translation Specifying the NAT IP Address In the preceding example, the IP address used for NAT is the IPv4 address of the destination interface. The alternative is to specify another IPv4 address that is to be used on the destination interface. This is done by specifying the SetSourceAddress option as AllToOne and using the NewSourceIP4 option to specify the new NAT address for the interface. Example: Specifying the NAT IPv4 address This example is the same as the preceding example except the NAT address used on the wan interface is to be explicitly specified as 10.0.0.1 1. Change the current category to be the main IP rule set: Device:/> cc IPRuleSet main 2. Create the IP rule: Device:/IPRuleSet/main> add IPRule Action=Allow SourceInterface=sfp1 SourceNetwork=sfp1net DestinationInterface=wan DestinationNetwork=all‐nets Service=http SourceTranslation=NAT SetSourceAddress=AllToOne NewSourceIP4=10.0.0.1 Name=NAT_HTTP 3. Return to the default CLI context if no more rules are needed: Device:/IPRuleSet/main> cc Device:/> The IPv4 address 10.0.0.1 must also be explicitly ARP published on the wan interface if it is not already one of the addresses assigned to that interface. IPv4 and IPv6 NAT addresses In the example above, the option NewSourceIP6 could be used to specify an IPv6 address as ...
Address Translation Protocols handled by NAT Dynamic address translation handles the TCP, UDP, and ICMP protocols with a good level of functionality, since the algorithm knows which values can be adjusted to become unique in the three protocols. For other IP level protocols, unique flows are identified by their sender addresses, destination addresses, and protocol numbers. This means that: • An internal machine can communicate with several external servers using the same IP protocol. • An internal machine can communicate with several external servers using different IP protocols. • Several internal machines can communicate with different external servers using the same IP protocol. • Several internal machines can communicate with the same server using different IP protocols. • Several internal machines can not communicate with the same external server using the same IP protocol. Note: These restrictions apply only to IP level protocols other than TCP, UDP and ICMP, such as OSPF and L2TP. They do not apply to the protocols transported by TCP, UDP and ICMP, such as telnet, FTP, HTTP and SMTP. The SEG can alter port number information in the TCP and UDP headers to make each flow unique, even though such flows have had their sender addresses translated to the same IP. Some protocols, regardless of the method of transportation used, can cause problems during address translation. The SEG can translate entire ranges of IP addresses and port numbers. These translations are transpositions where each address or port is mapped to a corresponding address or port in a new range, rather than translating them all to the same address or port. This functionality is known as Static Address Translation (SAT). SAT is configured in the SEG by setting either the SourceTranslation or DestinationTranslation to the value SAT in an IP rule with an action of Allow. Other SAT options are also added to completely specify the translation required. One-to-one translation (1:1) The simplest form of SAT usage is the translation of a single IP address to another, single IP ...
Page 79
Address Translation Using a DMZ At this point, it is important to understand the role of networks designated as a DMZ as SAT IP rules are of often used with them. The DMZ’s purpose is to act as a network where resources, such as servers, are placed for access by external, untrusted clients, typically across the public Internet. This network, therefore, has the maximum exposure to external threats. By isolating the DMZ network, a clear security separation is created from sensitive internal networks. SEG security policies can then control traffic flows between the DMZ and internal networks, isolating any security problems occurring in the DMZ. The illustration below shows a typical network arrangement with a SEG mediating communications between the public Internet and servers in a DMZ and between the DMZ and local clients on an internal network called LAN. Figure 4. The role of the DMZ...
Page 80
Address Translation Example: Enabling traffic to a protected web server in a DMZ (1:1) This example creates a SAT IP rule that will translate and allow IPv4 flows from the Internet to a web server located in a DMZ. The SEG is connected to the Internet using the wan interface with address object wan_ip (defined as 195.55.66.77) as IPv4 address. The Web server has the private IPv4 address 10.10.10.5 and is on the network connected to the dmz interface. 1. Change the current CLI context to be the main IP rule set: Device:/> cc IPRuleSet main 2. Create a SAT IP rule: Device:/IPRuleSet/main> add IPRule Action=Allow Service=http SourceInterface=any SourceNetwork=all‐nets‐ip4 DestinationInterface=core DestinationNetwork=wan_ip DestinationTranslation=SAT SetDestinationAddress=Offset NewDestinationIP4=10.10.10.5 Name=SAT_HTTP_To_DMZ 3. Return to the default CLI context if no more rules are needed: Device:/IPRuleSet/main> cc Device:/> Many-to-many translation (M:N) A single SAT rule can be used to translate an entire range of IP addresses (a many‐to‐many ...
Page 81
Address Translation Since the five public IPv4 addresses are being ARP published so these addresses are not routed on core, the SAT destination interface is wan and not core. 1. Create an address object for the public IPv4 addresses: Device:/> add Address IPAddress wwwsrv_pub Address=195.55.66.77‐195.55.66.81 2. Create another object for the base of the Web server IPv4 addresses: Device:/> add Address IPAddress wwwsrv_priv_base Address=10.10.10.5 3. Publish the public IP addresses on the wan interface using ARP publish. A CLI command similar to the following is needed for each IP address: Device:/> add ARPEntry Interface=wan IP=195.55.66.77 mode=Publish Alternatively, you could assign all five addresses to the Ethernet interface since the SEG supports multiple IP addresses on interfaces. 4. Change the current CLI context to be the main IP rule set: Device:/> cc IPRuleSet main 5. Create a SAT rule for the translation: Device:/IPRuleSet/main> add IPRule Action=Allow Service=http SourceInterface=any SourceNetwork=all‐nets‐ip4 DestinationInterface=wan DestinationNetwork=wwwsrv_pub DestinationTranslation=SAT SetDestinationAddress=Offset NewDestinationIP4=wwwsrv_priv_base 6. Return to the default CLI context using the command: Device:/IPRuleSet/main> cc Device:/> Example 2: Source address translation (M:N) Suppose there is a network 192.168.0.0/24 called lan_net connected to the lan interface. ...
Page 82
Address Translation The required SAT rule is defined as follows: 1. Change the current CLI context to be the main IP rule set: Device:/> cc IPRuleSet main 2. Create a SAT rule for the translation: Device:/IPRuleSet/main> add IPRule Action=Allow Service=http SourceInterface=lan SourceNetwork=lan_net DestinationInterface=dmz DestinationNetwork=dmz_net SourceTranslation=SAT SetSourceAddress=Offset NewDestinationIP4=172.16.0.0 3. Return to the default CLI context using the command: Device:/IPRuleSet/main> cc Device:/> Note: In the above examples, IPv4 addresses are used. The option NewDestinationIP6= could be used with or instead of NewDestinationIP4= to perform the same function with IPv6 addresses. A SAT IP rule can combine source and destination translation in the same rule if required. Many-to-one translation (N:1) The SEG can be used to translate ranges and groups into just one IP address. Example: Translating traffic to a single Web server (N:1) This example is similar to the previous many‐to‐many (M:N) example, but this time a SAT IP will translate from five public IPv4 addresses to a single Web server located on a DMZ network. The SEG is connected to the Internet via the wan interface and the public IP ...
Page 83
Address Translation 1. Create an address object for the public IP addresses: Device:/> add Address IPAddress wwwsrv_pub Address=195.55.66.77‐195.55.66.81 2. Create another object for the base of the web server IP addresses: Device:/> add Address IPAddress wwwsrv_priv Address=10.10.10.5 3. Publish the public IP addresses on the wan interface using ARP publish. A CLI command like the following is needed for each IP address: Device:/> add ARPEntry Interface=wan IP=195.55.66.77 mode=Publish Alternatively, you could assign all five addresses to the Ethernet interface since the SEG supports multiple interface IP addresses. 4. Change the current CLI context to be the main IP rule set: Device:/> cc IPRuleSet main 5. Create a SAT rule for the translation: Device:/IPRuleSet/main> add IPRule Action=Allow Service=http SourceInterface=wan SourceNetwork=all‐nets‐ip4 DestinationInterface=dmz DestinationNetwork=wwwsrv_pub DestinationTranslation=SAT SetDestinationAddress=AllToOne NewDestinationIP4=wwwsrv_priv 6. Return to the default CLI context with the command: Device:/IPRuleSet/main> cc In the above example, the option NewDestinationIP6= could be used with or instead of NewDestinationIP4= to perform the same function with IPv6 addresses. Note: When all‐nets, all‐nets‐ip4, or all‐nets‐ip6 is the destination in a SAT rule, an All‐to‐One mapping is always done. Port translation with SAT Port Translation (also known as Port Address Translation ‐PAT) can be defined in a SAT IP rule to modify either the source or destination port. This is similar to the 1:1 translation specified above but the additional option NewSourcePort= is used. ...
Page 84
Address Translation Example: Port translation with SAT This example is very similar to the 1:1 example near the beginning of this section but the port number will also be changed by the translation. A server’s private IP address is wwwsrv_priv on the DMZ interface. All incoming http connections will be translated to wwwsrv_priv and all ports in the http service object's range 80 ‐85 will be translated to the range 1080 ‐1085. 1. Change the current CLI context to be the main IP rule set: Device:/> cc IPRuleSet main 2. Create a SAT rule for the translation: Device:/IPRuleSet/main> add IPRule Action=Allow Service=http SourceInterface=wan SourceNetwork=all‐nets‐ip4 DestinationInterface=core DestinationNetwork=wan_ip SourceTranslation=SAT SetSourceAddress=Offset NewSourceIP4=wwwsrv_priv SetSourcePort=Offset NewSourcePort=1000 3. Return to the default CLI context with the command: Device:/IPRuleSet/main> cc Device:/> Combining SAT with NAT in the same rule Both SAT and NAT translation can be combined into the same Allow IP rule by using the options SourceTranslation=SAT and DestinationTranslation=SAT together. Example: Combining NAT and SAT Assume a number of clients on the internal protected lan_net network are surfing the public ...
Page 85
Address Translation The required IP rule is defined as follows: 1. Change the current CLI context to be the main IP rule set: Device:/> cc IPRuleSet main 2. Create a SAT rule for the translation: Device:/IPRuleSet/main> add IPRule Action=Allow Service=http SourceInterface=lan SourceNetwork=lan_net DestinationInterface=wan DestinationNetwork=wan_ip DestinationTranslation=SAT SetDestinationAddress=Offset NewDestinationIP4=our_server_ip SourceTranslation=NAT SetSourceAddress=AllToOne NewSourceIP4=dmz_ip 3. Return to the default CLI context with the command: Device:/IPRuleSet/main> cc Device:/> Protocols not handled by SAT SAT can deal with IP‐based protocols that allow address translation to take place. However, there are protocols that can be translated only in special cases, and some protocols that cannot be translated at all. Protocols that cannot be translated using SAT usually cannot be translated using NAT. The reasons for this can include: • The protocol requires that the IP addresses are cryptographically unaltered. This applies to many VPN protocols. • The protocol embeds its IP addresses inside TCP or UDP level data and requires that the addresses visible at the IP level are the same as those embedded in the data. Examples include FTP and NT domain logon via NetBIOS. •...
Chapter Routing Principles of routing IP routing is one of the most fundamental functions of the SEG. Any IP packet flowing through an SEG will be subjected to at least one routing decision at some point, so properly setting up routing is crucial for the system to function as expected. Routers IP routing is the mechanism used in TCP/IP based networks for delivering IP packets from their source to their ultimate destination through a number of intermediary network devices. These devices are most often referred to as routers since they perform the task of routing packets to their destination. Routing tables In each router, one or more routing tables contain a list of routes, which are used to find out through which interface to send a packet so it can reach its intended destination. In the SEG, there can be one or more routing tables. At minimum, there is a single, default routing table called main. The interfaces of routes in these tables may be a physical Ethernet interface or it might be a configuration object that behaves like an interface such as a VPN tunnel. Example: Listing the routing table main contents This example shows how to list the contents of the default routing table main. First, change the current context to be the main routing table: Device:/> cc RoutingTable main Now, list the contents of the table: Device:/RoutingTable/main> show # Interface Network Gateway Local IP ‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐ 1 sfp2 10.6.0.0/16 <empty> 10.6.58.100 This shows that the main table contains a single route, which says that the network 10.6.0.0/16 can be found on the interface sfp2. The components of a single route in an SEG routing table are discussed next.
Page 87
Routing Components of a route When a route is defined, it consists of the following properties: • Interface This is the interface to forward the packet on in order to reach the destination network. In other words, it is the interface to which the destination IP range is connected, either directly or through a router. The interface can be any logical interface. This includes Ethernet interfaces as well as VPN tunnels. • Network This is the destination network IP address range that is reached via the specified interface. The route chosen from a routing table is the one that has a destination IP range that includes the IP address being sought. If there is more than one such matching route, the route chosen is the one that has the smallest IP address range and lowest metric. The destination network all‐nets‐ip4 is usually always used in the route for public Internet access via an ISP. As its name suggests, all‐nets‐ip4 corresponds to all IP4 Internet addresses, and the route for this address is sometimes referred to as the default route since it is chosen when no other match can be found. • Gateway This is the IP address of the gateway that is the next router in the path to the destination network. This is optional. If the destination network is connected directly to the interface, this is not needed. When a router lies between the SEG and the destination network, a gateway IP must be specified. For example, if the route is for public Internet access via an ISP, the public IP address of the ISP’s gateway router would be specified. • Local IP address This property usually does not need to be specified. If it is, the SEG responds to ARP queries sent to this address. The Local IP Address property on page 89 section explains this property in more depth. • Metric This is a metric value assigned to the route and used as a weight when performing comparisons between alternate routes. If two routes are equivalent but have different metric values then the route with the lowest metric value is taken. ...
Page 88
Routing Typical routing scenario The diagram below illustrates a typical SEG usage scenario. Figure 5. A typical routing scenario In the above diagram, the LAN interface is connected to the network 192.168.0.0/24 and the DMZ interface is connected to the network 10.4.0.0/16. The WAN interface is connected to the network 195.66.77.0/24 and the address of the ISP gateway to the public Internet is 195.66.77.4. The associated routing table for this would be as follows: Route Interface Destination Gateway sfp1 192.168.0.0/24 10.4.0.0/16 195.66.77.0/24 all-nets-ip4 195.66.77.4 The above routing table provides the following information: • Route #1 All packets going to hosts on the 192.168.0.0/24 network should be sent out on the sfp1 interface. As no gateway is specified for the route entry, the host is assumed to be located on the network segment directly reachable from the sfp1 interface. • Route #2 All packets going to hosts on the 10.4.0.0/16 network are to be sent out on the dmz interface. For this route also, no gateway is specified since there is no “hop” via another router to the destination network.
Page 89
Routing • Route #3 All packets going to hosts on the 195.66.77.0/24 network will be sent out on the wan interface. No gateway is required to reach this network. • Route #4 All packets going to any host (the all‐nets‐ip4 network will match all hosts) will be sent out on the wan interface and to the gateway with IPv4 address 195.66.77.4. That gateway will then consult its routing table to find out where to send the packets next. A route with the destination all‐nets‐ip4 is often referred to as the Default Route as it will match all packets for which no specific route has been configured. This route usually specifies the interface that is connected to the public internet via an ISP. Narrowest routing TableMatch is selected When a routing table is evaluated, the ordering of the routes is not important. Instead, all routes in the relevant routing table are evaluated and the most specific route is used. In other words, if two routes have destination networks that overlap, the narrower network definition will be taken before the wider one. This behavior is in contrast to IP rules where the first matching rule is used. In the above example, a packet with a destination IPv4 address 192.168.0.4 will theoretically match both the first route and the last one. However, the first route entry is a narrower, more specific match so the evaluation will end there and the packet will be routed according to that entry. Although routing table ordering is not important, it is still recommended for troubleshooting purposes to try and place narrower routes first and the default route last. Local IP Address property The correct usage of the Local IP Address property can be complex, so additional explanation is provided next. Normally, a physical interface such as sfp1 is connected to a single network and the interface and network are on the same network. In that case, the network is bound to a physical interface and clients on the connected network can automatically find the SEG through ARP queries. ARP works because the clients and the SEG interface are part of the same network. A second network might then be added to the same physical interface via a switch, but with a new network range that doesn't include the physical interface's IP address. In that case, this ...
Page 90
Routing When the Default Gateway of the second network's clients is now set to the same value as the Local IP Address of the above route, the clients will be able to communicate successfully with the interface. The IP address chosen in the second network isn't significant, as long as it is the same value for the Default Gateway of the clients and the Local IP Address. The effect of adding the route with the Local IP Address is that the SEG will act as a gateway with the Local IP Address and respond to, as well as send out, ARP queries as though the interface had that IP address. The following diagram illustrates a scenario where this feature could be used. The network 10.1.1.0/24 is bound to a physical interface that has an IPv4 address within the network of 10.1.1.1. If a second network 10.2.2.0/24 is attached to the interface via the switch, it is unbound since the interface's IP address doesn't belong to it. Figure 6. Using Local IP address with an unbound network This feature is normally used when an additional network is to be added to an interface, without changing the existing IP addresses of the network. From a security standpoint, doing this can present significant risks since different networks will typically be joined together through a switch, which imposes no controls on traffic passing between those networks. Caution should therefore be exercised before using this feature. ...
Routing Example: Adding a route with LocalIP This example will show adding a route for the network 10.2.2.0/24 on the interface sfp1 with LocalIP set as 10.2.2.1. Device:/> cc RoutingTable main Device:/RoutingTable/main> add Route Interface=sfp1 Network=10.2.2.0/24 LocalIP=10.2.2.1 Device:/RoutingTable/main> cc Device:/> All traffic must have two associated routes All traffic must have two routes associated with it. Not only must a route be defined for the destination network of a flow, but one must also be defined for the source network. The route that defines the source network simply says that the source network is found on a particular interface. When a new flow is opened, the SEG performs a check known as a reverse route lookup, which looks for this route. The source network route is not used to perform routing but instead is used to verify that the source network is found on the interface where it arrived. If this check fails, the SEG generates a Default Access Rule error log message. Even traffic destined for Core (the SEG itself), such as ICMP ping requests must follow the rule of having two routes associated with it. In this case, the interface of one of the routes is specified as Core. Static routing The most basic form of routing is known as Static Routing. The term “static” is used because most entries in a routing table are part of the SEG system’s static configuration. They usually remain unchanged during long periods of system operation. Due to this manual approach, static routing is most appropriate to use in network deployments where addresses are fairly fixed and where the amount of connected networks are limited to a few. This section describes how to configure static routing and also explains how routing is implemented in the SEG.
Page 92
Routing When an IP packet is received on any of the interfaces, the list of active flows is consulted to see if there is an already a flow for which the received packet belongs. If an existing flow is found, the flow information includes where to route the packet so there is no need for lookups in the routing table. This is far more efficient than traditional routing table lookups, and is one reason for the high forwarding performance of the SEG. If an established flow cannot be found, then the routing table is consulted. Note that the route lookup is performed before any of the various policy rules get evaluated (for example, IP rules). Consequently, the destination interface is known at the time the SEG decides if the flow should be allowed or dropped. This design allows for a more fine‐grained control in security policies. SEG route notation The SEG uses a slightly different way to describe routes than most other systems, which simplifies its use and makes errors less likely. Many other products do not use the specific interface in the routing table, but specify the IP address of the interface instead. The routing table below is from a Microsoft Windows XP workstation: =================================================================== Interface List 0x1 ...... MS TCP Loopback interface 0x10003 ...00 13 d4 51 8d dd .. Intel(R) PRO/1000 CT Network 0x20004 ...00 53 45 00 00 00 .. WAN (PPP/SLIP) Interface =================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.10 20 10.0.0.0 5.0.0.0 10.4.2.143 10.4.2.143 1 10.4.2.143 255.255.255.255 127.0.0.1 127.0.0.1 50 10.255.255.255 255.255.255.255 10.4.2.143 10.4.2.143 50 85.11.194.33 255.255.255.255 192.168.0.1 192.168.0.10 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.0.0 255.255.255.0 192.168.0.10 192.168.0.10 20 192.168.0.10 255.255.255.255 127.0.0.1 127.0.0.1 20 192.168.0.255 255.255.255.255 192.168.0.10 192.168.0.10 20 224.0.0.0 240.0.0.0 10.4.2.143 10.4.2.143 50 224.0.0.0 240.0.0.0 192.168.0.10 192.168.0.10 20 255.255.255.255 255.255.255.255 10.4.2.143 10.4.2.143 1 255.255.255.255 255.255.255.255 192.168.0.10 192.168.0.10 1 Default Gateway: 192.168.0.1 =================================================================== Persistent Routes:...
Page 93
Routing The corresponding routing table in the SEG will be similar to the following: Flags Network Iface Gateway Local IP Metric ‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ 192.168.0.0/24 sfp1 20 10.0.0.0/8 wan 1 0.0.0.0/0 wan 192.168.0.1 20 Note that multicast routes have not been included in the SEG list but are displayed in the Microsoft listing. SEG route definition advantages The SEG method of defining routes makes it easier to read and understand routing information. A further advantage with the SEG approach is that you can directly specify a gateway for a particular route and the following is true: • A separate route that includes the gateway IP address doesn’t need to be defined. • It doesn't matter even if there is a separate route that includes the gateway IP address and routes traffic to a different interface. Composite subnets can be specified Another advantage with the SEG approach to route definition is that it allows you to specify routes for destinations that are not aligned with traditional subnet masks. For example, it is perfectly legal to define one route for the destination IPv4 address range 192.168.0.5 to 192.168.0.17 and another route for IP addresses 192.168.0.18 to 192.168.0.254. This is a feature that makes SEG highly suitable for routing in highly complex network topologies. Displaying routing tables It is important to note that routing tables that are initially configured by the administrator can have routes added, deleted, and changed automatically during live operation and these changes will appear when the routing table contents are displayed. These routing table changes can take place for different reasons. For example, if dynamic routing with OSPF has been enabled, routing tables will become populated with new routes ...
Page 94
Routing Example 1: Displaying the main routing table This example illustrates how to display the contents of the default main routing table. To display the configured routing table, enter: Device:/> cc RoutingTable main Device:/RoutingTable/main> show Route # Interface Network Gateway Local IP ‐ ‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ 1 wan all‐nets 213.124.165.1 (none) 2 sfp1 sfp1net (none) (none) 3 wan wannet (none) (none) To display the active routing table, enter: Device:/> routes Routing table: main Flags Network Iface Gateway Local IP Metric ‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ 192.168.0.0/24 sfp1 0 213.124.165.0/24 wan 0 0.0.0.0/0 wan 213.124.165.1 0 Tip: In the CLI example above, it was necessary to first select the name of a specific routing table with the cc command (meaning change category or change context) before manipulating individual routes. This is necessary for any category that could contain more than one named group of objects. all-nets route The most important route that should be defined is the route to all‐nets, which usually corresponds to your ISP for public Internet access. Throughout this manual, the all‐nets‐ip4 address object is used in most cases, which is a subset of all‐nets. Core routes The SEG automatically populates the active routing table with Core Routes. These routes are present for the system to understand where to route traffic that is destined for the system itself. There is one route added for each interface in the system. For example, two interfaces named sfp1 and wan, with IPv4 addresses 192.168.0.10 and 193.55.66.77, respectively, will ...
Page 95
Routing When the system receives an IP packet whose destination address is one of the interface IPs, the packet will be routed to the core interface. In other words, it is processed by the SEG itself. There is also a core route added for all multicast addresses: Route Interface Destination Gateway core 224.0.0.0/4...
Chapter Firewall IP rules Before examining IP rule sets in detail, it is useful to first look at the general concept of security polices to which IP rule sets belong. Security policies SEG security policies are configured by the administrator to regulate the way in which traffic can flow through the SEG. Such policies are described by the rules defined in various SEG rule sets. These rule sets share a uniform means of specifying filtering criteria that determine the type of traffic to which they will apply. Usually, the filtering criteria consist of the following rule properties: An interface where the packet is received on the SEG. This could also be Source interface a physical Ethernet interface but might be a configuration object that acts as an interface, such as a VPN tunnel. The network that contains the source IP address of the packet. This is Source network usually an SEG IP address object, which defines a single IP address, a range of addresses, or a network. Destination interface An interface from which the packet would leave the SEG. This could also be a physical Ethernet interface or a configuration object that acts as an interface, such as a VPN tunnel. Destination network The network to which the destination IP address of the packet belongs. This is usually an SEG IP address object which defines a single IP address, a range of addresses, or a network. The protocol type to which the packet belongs. SEG service objects Service define different protocols. Examples are HTTP and ICMP communication. The SEG provides a large number of predefined service objects but you can also create custom services. Existing service objects can also be collected together into Service Groups so that a group can be specified in a policy rule instead of a single service. ...
Page 97
Firewall IP rules and default main rule set IP rule sets are the most important of the SEG’s security policy rule sets. They determine the critical packet filtering function of the SEG, regulating what is allowed or not allowed to pass between different interfaces and between interfaces and the SEG. By default, one SEG IP rule set called main always exists. There are two possible approaches to how traffic traversing the SEG could be dealt with: • Everything is denied unless specifically permitted. • Or everything is permitted unless specifically denied. To provide optimal security from the outset, the SEG uses the first of these approaches. This means that when started for the first time, the SEG has no IP rules defined in the main IP rule set and all traffic arriving at all interfaces is therefore dropped. To permit any traffic to traverse the SEG (as well as allowing the SEG to respond to ICMP Ping requests), some initial IP rules must be added to the configuration. Each IP rule that you add will define the following basic filtering criteria: • From what interface to what interface traffic flows (the Source Interface and Destination Interface). • From what network to what network the traffic flows (the Source Network and Destination Network). • What kind of protocol is affected (the Service). • What action the rule will take when a match on all the criteria is triggered (the Action). Specifying any interface or network When specifying the filtering criteria in any of the rule sets specified above there are a number of useful predefined filtering parameters that can be used: •...
Page 98
Firewall Creating a Deny All IP rule By default, traffic that does not match any rule in the IP rule set is dropped by the SEG. For logging purposes, it is nevertheless recommended that you create an explicit IP rule with an action of Deny for all source/destination networks/interfaces, with logging enabled, and place it as the last rule in the IP rule set. This is often referred to as a Deny all rule. Example: Adding a Deny All IP rule This example shows how to create a Deny All rule that explicitly drops any IPv4 or IPv6 traffic not caught by any preceding rules in the main IP rule set. First, change the current context to be the main IP rule set: Device:/> cc IPRuleSet main Now, create the IP rule: Device:/IPRuleSet/main> add IPRule Action=Deny Service=all_services SourceInterface=any SourceNetwork=all‐nets DestinationInterface=any DestinationNetwork=all‐nets Name=main_da After the rule is added to an empty rule set, the entire rule set can be displayed: Device:/IPRuleSet/main> show IPRule, IPRuleFolder/ # Name Action SrcIf SrcNet DestIf DestNet Service ‐ ‐‐‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐ + 1 main_da Deny any all‐nets any all‐nets all_services The individual rule's properties can be displayed by using its index number: Device:/IPRuleSet/main> show 1 Property Value ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐ Index: 1 Name: main_da SourceInterface: any DestinationInterface: any SourceNetwork: all‐nets...
Page 99
Firewall Now, return to the default root context: Device:/IPRuleSet/main> cc Device:/> Save the configuration changes by issuing the activate command followed by the commit command. Tip: There may be several IP rule sets in use. It is recommended to include the IP rule set name in the name of the deny all rule so it can be easily identified in log messages. In the above example, the deny all rule for the main rule set is given the name main_da. Traffic flow needs an IP rule and a route As stated above, when the SEG is started for the first time, the default IP rules deny all traffic so at least one IP rule must be added to allow traffic to flow. In fact, a number of conditions need to be satisfied: • A route must exist in an SEG routing table that specifies on which interface packets should leave in order to reach their destination. A second route must also exist that indicates the source of the traffic is found on the interface where the packets enter. This satisfies the reverse route lookup check performed by the SEG when a new flow is established. • An IP rule in an SEG IP rule set that specifies the security policy that allows the packets from the source interface and network bound for the destination network to leave the SEG on the interface decided by the route. If the IP rule used is an Allow rule, it is bi‐directional by default. The ordering of these steps is important. The route lookup occurs first to determine the exiting interface and then the SEG looks for an IP rule that allows the traffic to leave on that interface. If a rule allowing the traffic doesn’t exist, the traffic is dropped. Figure 7. Simplified traffic flow...
Page 100
Firewall Before the route lookup is completed, the SEG first checks that traffic from the source network should, in fact, be arriving on the interface where it was received. This is done by the SEG performing a reverse route lookup, which means that the relevant routing table is searched for a route that indicates the network should be found on that interface. This second route should logically exist if a flow is bi‐directional, and it must have a pair of routes associated with it, one for each direction. IP rule evaluation When a new flow, such as a TCP/IP connection, is being established through the SEG, the list of IP rules are evaluated from top to bottom until a rule that matches the parameters of the new flow is found. The first matching rule's Action is then performed. For this reason, the ordering of the IP rules in the rule set is important. If the action in the matching IP rule allows it, the establishment of the new flow will proceed. A new entry representing the new flow will then be added to the SEG internal list of active flows. This list allows monitoring of opened and active flows. If the matching IP rule action is Deny or Reject, the flow is not set up. Tip: It is important to remember that the SEG searches the IP rules from top to bottom, looking for the first matching rule. If an IP rule seems to be ignored, check that some other rule above it isn't being triggered first. Stateful inspection After initial rule evaluation of the opening flow, subsequent packets belonging to that flow will not need to be evaluated individually against the rule set. Instead, a highly efficient algorithm searches the flow table for each packet to determine if it belongs to an established flow. This approach is known as stateful inspection and is applied not only to stateful protocols such as TCP but also to stateless protocols such as UDP and ICMP by means of “pseudo‐ connections.” This approach means that evaluation against the IP rule set is done only in the initial opening phase of a flow. Consequently, the size of the IP rule set has negligible effect on overall throughput. Flows are unidirectional. This means that a typical traffic connection, for example, between a Web browsing client and a Web server, will consist of two flows. This is not the case with the ESP flows used in IPsec where only a single flow is required for the connection. Examining flows All current flows can be shown using the CLI command. Some typical output is shown flow below: Device:/> flow ‐show Proto Source Destination Timeout...
Page 101
Firewall If the option is used, the matching reverse flow for a connection is also shown. The ‐verbose command form is as follows: Device:/> flow ‐show ‐verbose All options for the flow command can be found in the SEG‐100 Command Line Interface Reference. These include filtering parameters to only list certain flows. The use of this command with IPsec tunnels is discussed in IPsec troubleshooting on page 143. First matching principle If several IP rules in an IP rules set match the same filtering parameters, the first matching rule in a scan from top to bottom is the one that decides how the flow will be handled. Non-matching traffic Incoming packets that do not match any rule in the rule set and do not have an already opened matching flow will automatically be subject to a Deny action. To have more precise control over such non‐matching traffic, it is recommended to create an explicit rule called Deny All as the final rule in the rule set, with an action of Deny for source and destination network all‐nets, source and destination interface all, and service all_services. This example allows logging to be turned on for traffic that has no matching IP rule. IP rule actions A rule consists of two parts: the filtering parameters and the action to take if there is a match with those parameters. As described above, the parameters of any SEG rule, including IP rules are: • Source interface • Source network • Destination interface • Destination network • Service ...
Page 102
Firewall When an IP rule is triggered by a match, one of the following Actions can occur: • Allow: The packet is allowed to pass from the specified source to the specified destination interface. As the rule is applied to only the opening of a flow, an entry in the “flow table” is made to record that a flow is open. The remaining packets related to this flow will pass through the SEG “stateful engine” and will not require another rule table lookup. The parameter SourceTranslation can optionally be set to one of the following values: • NAT: This enables dynamic address translation (NAT) for traffic that triggers the rule. Refer to SAT on page 78 for a detailed description. • SAT: This enables static address translation (SAT) for traffic that triggers the rule. Refer to SAT on page 78 for a detailed description. • Deny: This tells the SEG to immediately discard the packet and by default, no reply is sent back to the sending host. A “polite” version of Deny can be created if the optional OnDeny parameter of a Deny rule is set to SendReject. This setting means the rule returns a TCP RST or ICMP Unreachable message for denied traffic, informing the sender that the packet was dropped. Using this option can help to speed up applications that must wait for a reply timeout period. The “impolite” default setting for a Deny rule is OnDeny=DropSilent. Bi-directional connections A common mistake when setting up IP Rules is to define two rules, one rule for traffic in one direction and another rule for traffic coming back in the other direction. In fact, an IP rules with the action defined as Allow will permit bi‐directional traffic flow once the initial flow is set up. The SourceNetwork and SourceInterface in an IP rule with action Allow refers to the source of the initial flow request. If a flow is permitted and then becomes established, traffic can pass in either direction over it. Using Reject The Reject action is recommended instead of Drop in situations where a “polite” reply is required from the SEG. An example of such a situation is when the SEG is responding to the IDENT user identification protocol. Some applications will pause for a timeout if Drop is used, and using Reject can avoid such processing delays. ...
Firewall Example: Adding an Allow IP Rule This example shows how to create a simple Allow rule that will allow HTTP flows to be opened from the sfp1net network on the sfp1 interface to any IP4 address (all‐nets‐ip4) on the wan interface. 1. Change the current context to be the main IP rule set: Device:/> cc IPRuleSet main 2. Create the IP rule: Device:/IPRuleSet/main> add IPRule Action=Allow Service=http SourceInterface=sfp1 SourceNetwork=sfp1net DestinationInterface=wan DestinationNetwork=all‐nets‐ip4 Name=lan_http 3. Return to the default route: Device:/IPRuleSet/main> cc Configuration changes must be saved by then issuing an activate followed by a commit command. Services A service object provides a way to reference a specific IP protocol. A service object is typically defined using one of the major transport protocols, TCP or UDP, and is associated with a specific source or destination port number. For example, the HTTP service is defined as using the TCP protocol with the associated destination port 80 and any source port. However, service objects are not restricted to just the TCP or UDP protocols. They can be used to encompass ICMP messages as well as a user‐definable IP protocol. A service is passive Service objects are passive SEG objects in that they do not themselves carry out any action in a configuration. Instead, they are used to apply security policy rules in SEG rule sets to a specific type of traffic. For example, an IP rule in an SEG IP rule set might have a service object associated with it that specifies that the rule is to apply to HTTP traffic. Inclusion in IP rules is one the most important usages of service objects. For more information ...
Page 104
Firewall Specifying any protocol An important predefined service is all_services. This service covers all possible protocols and is used in the filtering criteria of a rule when the protocol is not relevant. This is an example of a service group that is discussed later in Service groups on page 107. Other predefined services, such as all_icmp, also provide a means to describe a large number of protocols. Example 1: Listing the available services To produce a listing of the available services in the system, enter: Device:/> show Service The output will look similar to the following listing, with the services grouped by type and the service groups appearing first: ServiceGroup ServiceGroup Name Comments ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ all_tcpudpicmp All ICMP, TCP and UDP services ServiceICMP Name Comments ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ all_icmp All ICMP services ping‐inbound Inbound ping (does not allow tracerouting) " " Example 2: Viewing a specific service To view a specific service in the system, enter: Device:/> show Service ServiceTCPUDP http The output will look similar to the following listing: Property Value Remarks ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐...
Page 105
Firewall ICMP services Another type of custom service that can be created is an ICMP Service. The Internet Control Message Protocol (ICMP) is a protocol that is integrated with IP for reporting errors and transmitting control information. For example, the ICMP Ping feature uses ICMP to test Internet connectivity. ICMP types and codes ICMP messages are delivered in IP packets, and include a Message Type that specifies the format of the ICMP message and a Code that is used to further qualify the message. For example, the message type Destination Unreachable uses the Code parameter to specify the exact reason for the error. Either all ICMP message types can be accepted by a service (there are 256 possible types) or it is possible to filter the types. Specifying codes If a type is selected, the codes for that type can be specified in the same way that port numbers are specified. For example, if the Destination Unreachable type is selected with the comma‐delimited code list 0,1,2,3, this will filter Network unreachable, Host unreachable, Protocol unreachable, and Port unreachable. When a message type is selected but no code values are given, all codes for that type are assumed. ICMP message types The message types that can be selected are as follows: Sent by PING to a destination in order to check connectivity. Echo Request Destination Unreachable The source is told that a problem has occurred during packet delivery. There are codes from 0 to 5 for this type: • Code 0: Net Unreachable • Code 1: Host Unreachable • Code 2: Protocol Unreachable •...
Page 106
Firewall The source is told that there is a better route for a particular packet. Redirect Codes assigned are as follows: • Code 0: Redirect datagrams for the network • Code 1: Redirect datagrams for the host • Code 2: Redirect datagrams for the Type of Service and the network • Code 3: Redirect datagrams for the Type of Service and the host Identifies an incorrect parameter on the datagram. Parameter Problem The reply from the destination that is sent as a result of the Echo Echo Reply Request. The source is sending data too fast for the receiver, and the buffer has Source Quenching filled up. The packet has been discarded as it has taken too long to be delivered. Time Exceeded Custom IP protocol services Services that run over IP and perform application or transport layer functions can be uniquely identified by IP protocol numbers. IP can carry data for a number of different protocols. These protocols are each identified by a unique IP protocol number specified in a field of the IP header. For example, ICMP, IGMP, and EGP have protocol numbers 1, 2, and 8, respectively. Similar to the TCP/UDP port ranges described previously, a range of IP protocol numbers can be used to specify multiple applications for one service. For example, specifying the range 1‐ 4,7 will match the protocols ICMP, IGMP, GGP, IP‐in‐IP, and CBT. IP protocol numbers The currently assigned IP protocol numbers and references are published by the Internet Assigned Numbers Authority (IANA) and can be found at: http://www.iana.org/assignments/protocol‐numbers Example: Adding an IP protocol service This example shows how to add an IP Protocol service with the Virtual Router Redundancy ...
Firewall Service groups A service group is an SEG object that consists of a collection of services. Groups are useful when you want to construct security policies that contain multiple services. Advantage of groups For example, there may be a need for a set of IP rules that are identical to each other except for the service property. By defining a service group that contains all the service objects from all the individual rules, you can replace all of them with just one IP rule that uses the group. For example, a service group called email‐services combines the three services objects for SMTP, POP3, and IMAP. Now only one IP rule needs to be defined that uses this group service to allow all e‐mail related traffic to flow. Groups can contain other groups A group can contain individual services as well as other service groups. This ability to have groups within groups should be used with caution since it can increase the complexity of a configuration and decrease the ability to troubleshoot problems. However, the feature allows the easy construction of large and complex sets of service definitions. Access rules One of the principal functions of the SEG is to allow only authorized connections access to protected data resources. Access control is primarily addressed by the SEG IP rule set in which a range of protected LAN addresses are treated as trusted hosts, and traffic flow from untrusted sources is restricted from entering trusted areas. Before a new connection is checked against the IP rule set, the SEG checks the connection source against a set of access rules. Access rules can be used to specify what traffic source is expected on a given interface and also to automatically drop traffic originating from specific sources. Access rules provide an efficient and targeted initial filter of new connection attempts. Default access rule Even if you do not explicitly specify any custom access rules, an access rule known as the Default Access Rule is always in place. This default rule is not a true rule but operates by checking the validity of incoming traffic by performing a reverse lookup in the SEG routing tables. This lookup validates that the incoming ...
Page 108
Firewall Custom access rules are optional For most configurations, the Default Access Rule is sufficient and you do not need to explicitly specify other rules. For example, the default rule can protect against IP spoofing, which is described in the next section. If access rules are explicitly specified, the Default Access Rule is still applied if a new connection does not match any of the custom access rules. The recommendation is to initially configure the SEG without any custom access rules and add them if there is a requirement for stricter checking on new connections. IP spoofing Traffic that pretends it comes from a trusted host can be sent by an attacker to try and get past a gateway's security mechanisms. Such an attack is commonly known as spoofing. IP spoofing is one of the most common spoofing attacks. Trusted IP addresses are used to bypass filtering. The header of an IP packet indicating the source address of the packet is modified by the attacker to be a local host address. The security gateway will believe the packet came from a trusted source. Although the packet source cannot be responded to correctly, there is the potential for unnecessary network congestion to be created and a potential Denial of Service (DoS) condition could occur. Even if the security gateway is able to detect a DoS condition, it is hard to trace or stop because of its nature. VPNs provide one means of avoiding spoofing, but where a VPN is not an appropriate solution, the access rules can provide an anti‐spoofing capability by providing an extra filter for verifying the source address. An access rule can verify that packets arriving at a given interface do not have a source address that is associated with a network of another interface. This means: • Any incoming traffic with a source IP address belonging to a local trusted host is NOT allowed. • Any outgoing traffic with a source IP address belonging to an outside untrusted network is NOT allowed. The first point prevents an outsider from using a local host's address as its source address. The second point prevents any local host from launching the spoof. Access rule settings The configuration of an access rule is similar to other types of rules. It contains filtering fields as well as the action to take. If there is a match, the rule is triggered, and the SEG will carry ...
Page 109
Firewall Access rule actions The access rule actions that can be specified are: • Drop: Discard the packets that match the defined fields. • Accept: Accept the packets that match the defined fields for further inspection in the rule set. Note: Logging can be enabled as required for these actions. Turning off Default Access Rule messages If the Default Access Rule log message is continuously being generated by a particular source and needs to be turned off, specify an access rule for the source with an action of Drop. Troubleshooting access rule-related problems Note that access rules are a first filter of traffic before any other SEG subsystems can see it. Sometimes problems can appear because of this. It is always recommended to check access rules when troubleshooting to see if a rule is preventing some other function, such as VPN tunnel establishment, from working properly. Example: Setting up an access rule Define a rule that ensures no traffic with a source address within the network bad_net is accepted on the sfp1 interface. 1. Create a new access rule set called acr1: Device:/> add AccessRuleSet acr1 2. Change the context to be this access rule set: Device:/> cc AccessRuleSet acr1 ...
Firewall Internet access This section describes setting up access to the public Internet using the CLI, with static IP addresses supplied by an ISP. Assumptions The assumption for the examples and descriptions in this chapter is that the hardware platform has two Ethernet interfaces available: interface sfp1 and interface sfp2. The sfp2 interface will be used for connection to the public Internet and the sfp1 interface will be used for connection to a protected, local network. Required IP address objects Before you can set up access to the public network, you must create a number of IP address objects. In this example, the interface used for the Internet connection is sfp2, the ISP gateway IPv4 address is 10.5.4.1, the IPv4 address for the connecting interface is 10.5.4.35, and the network is 10.5.4.0/24. Note: Private IPv4 addresses are used for example only. Each installation's IP addresses will be different from these IP addresses but they are used here only to illustrate how setup is done. Also, these addresses are private IPv4 addresses and in reality an ISP would use public IP addresses instead. In addition, you must add the gateway IP address object, which in this example is called wan_gw: Device:/> add Address IPAddress wan_gw Address=10.5.4.1 This is the address of the ISP’s gateway, which is the first router hop towards the public Internet. If this IP object already exists, it can be given the IP address with the command: Device:/> set Address IPAddress wan_gw Address=10.5.4.1 Defining routes A route must now be defined that specifies that the Internet can be found on the sfp2 interface, along with the IP address of the default gateway that is the ISP’s router. 1. Change the context to be the main routing table: Device:/> cc RoutingTable main The prompt changes to indicate the context has changed. Device:/RoutingTable/main> 2. Add the route to the Internet: Device:/RoutingTable/main> add Route Interface=sfp2 Network=all‐nets‐ip4 ...
Page 111
Firewall 4. Set the IP object sfp2_ip, which will be the IP address of the interface connected to the ISP: Device:/> set IPAddress sfp2_ip Address=10.5.4.35 On initial startup, the SEG automatically creates and fills the SEG address book with the all interface related IP address objects. 5. Set the IP object sfp2_net, which will be the IP network of the connecting interface: Device:/> set IPAddress sfp2_net Address=10.5.4.0/24 6. Verify the properties of the sfp2 interface with the command: Device:/> show Interface EthernetInterface sfp2 The typical output is similar to the following: Property Value ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Name: sfp2 EthernetAddress: EthernetDevice: sfp2 MTU: 1500 IPAddress: 10.5.4.35 IPv4broadcast: <empty> RTBMembership: main Comments: <empty> Defining IP rules Even though an all‐nets‐ip4 route is automatically added, no traffic can flow without the addition of an IP rule that explicitly allows the flow. For example, to allow web surfing from the protected network sfp1_net on the interface sfp2, define a rule with an Action of Allow. 1. Change the current CLI context to the default IPRuleSet called main using the command: Device:/> cc IPRuleSet main Additional IP rule sets can be defined, which is why we do this, with the rule set main existing by default. Notice that the CLI prompt changes to reflect the current context: Device:/main> 2. Add an IP rule called lan_to_wan to allow the traffic through to the public Internet: Device:/main> add IPRule Name=lan_to_wan Action=Allow SourceInterface=sfp1 SourceNetwork=sfp1_net ...
Page 112
Firewall 3. To include the DNS protocol to resolve URLs into IP addresses, create a separate IP rule for DNS: Device:/main> add IPRule Name=lan_to_wan_dns Action=NAT SourceInterface=sfp1 SourceNetwork=sfp1_net DestinationInterface=sfp2 DestinationNetwork=all‐nets‐ip4 Service=dns‐all Activating and committing changes After any changes are made to an SEG configuration, they will be saved as a new configuration but will not yet be activated. To activate all the configuration changes made since the last activation of a new configuration, the following command must be issued: Device:/> activate Although the new configuration is now activated, it does not become permanently activated until the following command is issued within 30 seconds following the activate: Device:/> commit The reason for two commands is to prevent a configuration accidentally locking out the administrator. If a lockout occurs, the second command will not be received and the SEG will revert back to the original configuration after the 30 second time period. This time period is a setting that can be changed as shown next. Example: Changing the activation revert timeout This example shows how to change the default revert timeout after a configuration is activated to 120 seconds. Device:/> set Settings RemoteMgmtSettings BiDirTimeout=120 Allowing ICMP Ping requests It can be useful to allow ICMP Ping requests to be sent out to external hosts on the Internet. As discussed earlier, the SEG will drop any traffic unless an IP rule explicitly allows it. This example shows how to allow the pinging of external hosts with the ICMP protocol by ...
Chapter IPsec VPN Overview This section takes a general look at VPNs, what they are, what they can provide, and the typical scenarios where they are used. VPN usage The Internet is increasingly used as a means to connect computers together since it offers efficient and inexpensive communication. The requirement is for data to traverse the Internet to its intended recipient without another party being able to read (confidentiality) or alter it (integrity). It is equally important that the recipient can verify that no one is falsifying data or pretending to be someone else. Virtual Private Networks (VPNs) meet this need, providing a highly cost effective means of establishing secure links between two co‐operating computers so that data can be exchanged in a secure manner. VPN allows the setting up of a tunnel between two devices known as tunnel endpoints. All data flowing through the tunnel is secure. The mechanism that provides tunnel security is encryption.
Page 114
IPsec VPN There are two common scenarios where VPN is used: 1. LAN to LAN connection – Where two internal networks need to be connected together over the Internet. In this case, each network is protected by an individual security gateway and the VPN tunnel is set up between them. 2. Client to LAN connection – Where many remote clients need to connect to an internal network over the Internet. In this case, the internal network is protected by the SEG to which the client connects and the VPN tunnel is set up between them. ...
Page 115
IPsec VPN VPN encryption Encryption of VPN traffic is done using the science of cryptography. Cryptography is an umbrella expression covering 3 techniques and benefits: No one but the intended recipients is able to receive and understand Confidentiality the communication. Confidentiality is accomplished by encryption. Authentication and integrity Proof for the recipient that the communication was actually sent by the expected sender, and that the data has not been modified in transit. This is accomplished by authentication, and is often implemented through the use of cryptographic keyed hashing. Proof that the sender actually sent the data; the sender cannot later Non‐repudiation deny having sent it. Non‐repudiation is usually a side‐effect of authentication. VPNs are typically concerned only with confidentiality and authentication. Non‐repudiation is normally not handled at the network level but rather is usually done at a higher transaction level. VPN planning An attacker targeting a VPN connection typically views VPN traffic as an indication that there is something worth targeting at the other end of the connection. In most cases, mobile clients and branch offices are far more attractive targets than the main corporate network. Once inside those, getting to the corporate network then becomes easier. In designing a VPN there are many issues that need to be addressed that aren't always obvious. These include: • Protecting mobile and home computers. • Restricting access through the VPN to needed services only, since mobile computers are vulnerable. • Creating DMZs for services that need to be shared with other companies through VPNs. • Adapting VPN access policies for different groups of users. • Creating key distribution policies. Endpoint security A common misconception is that VPN‐connections are equivalents to the internal network ...
IPsec VPN It is becoming increasingly common for users on the move to connect directly to their company’s network via VPN from their laptops. However, the laptop itself is often not protected. In other words, an intruder can gain access to the protected network through an unprotected laptop and already‐opened VPN connections. Placement in a DMZ A VPN connection should never be regarded as an integral part of a protected network. The VPN gateway should instead be located in a special DMZ or outside a gateway dedicated to this task. By doing this, you can restrict which services can be accessed via the VPN and ensure that these services are well protected against intruders. In instances where the gateway provides an integrated VPN feature, it is usually possible to dictate the types of communication permitted. The SEG VPN includes this feature. Key distribution If using pre‐shared keys for VPN security, key distribution schemes are best planned in advance. Issues that need to be addressed include: • How will keys be distributed? E‐mail is not a good solution. Phone conversations might be secure enough. • How many different keys should be used? One key per user? One per group of users? One per LAN‐to‐LAN connection? One key for all users and one key for all LAN‐to‐LAN connections? It is probably better to use more keys than is necessary since it will be easier to adjust access per user (group) in the future. • Should the keys be changed? If they are changed, how often? In cases where keys are shared by multiple users, you may want to consider overlapping schemes, so that the old keys work for a short period of time when new keys have been issued. • What happens when an employee in possession of a key leaves the company? If several users are using the same key, it should be changed. • In cases where the key is not directly programmed into a network unit, such as a VPN gateway, how should the key be stored? On a floppy? As a pass phrase to memorize? On a smart card? If it is a physical token, how should it be handled?
IPsec VPN IPsec components This section covers IPsec standards and describes in general terms the various components, techniques, and algorithms that are used in IPsec‐based VPNs. IPsec overview Internet Protocol Security (IPsec) is a set of protocols defined by the Internet Engineering Task Force (IETF) to provide IP security at the network layer. An IPsec‐based VPN is made up of two parts: • Internet Key Exchange protocol (IKE) • IPsec protocols (AH or ESP or both) The first part, IKE, is the initial negotiation phase, where the two VPN endpoints agree on which methods will be used to provide security for the underlying IP traffic. In addition, IKE is used to manage connections using a set of Security Associations, SAs, for each connection. SAs are unidirectional, so there are usually at least two for each IPsec connection. The second part is the actual IP data being transferred, using the encryption and authentication methods agreed upon in the IKE negotiation. This can be accomplished by using IPsec protocols ESP or AH, or a combination of both. Currently, only ESP is supported in the SEG. The flow of events can be briefly described as follows: • IKE negotiates how IKE should be protected • IKE negotiates how IPsec should be protected • IPsec moves data in the VPN The following sections will describe each of these stages in detail. Internet Key Exchange (IKE) Encrypting and authenticating data is fairly straightforward: the only things needed are encryption and authentication algorithms, and the keys used with them. The Internet Key Exchange (IKE) protocol is used as a method for distributing these “session keys,” and provides a way for the VPN endpoints to agree on how the data should be protected. IKE has three main tasks: •...
Page 118
IPsec VPN An SA is unidirectional and relates to traffic flow in one direction only. For the bidirectional traffic that is usually found in a VPN, more than one SA is required per connection. Typically, when only ESP or AH is used, two SAs will be created for each connection, one describing the incoming traffic, and the other the outgoing. When ESP and AH are used in conjunction, four SAs will be created. IKE proposals An IKE algorithm proposal list is a suggestion of how to protect IPsec data flows. The VPN device initiating an IPsec connection will send a list of the algorithms combinations it supports for protecting the connection. It is then up to the device at the other end of the connection to say which proposal is acceptable. The responding VPN device, upon receiving the list of supported algorithms, will choose the algorithm combination that best matches its own security policies, and reply by specifying which member of the list it has chosen. If no mutually acceptable proposal can be found, the responder will reply by saying that nothing on the list was acceptable, and possibly also provide a textual explanation for diagnostic purposes. This negotiation to find a mutually acceptable algorithm combination is done not just to find the best way to protect the IPsec connection but also to find the best way to protect the IKE negotiation itself. Algorithm proposal lists also contain other IKE related parameters. Further details of the IKE negotiation and the other IKE parameters are described next. IKE negotiation An IKE negotiation consists of two phases: • IKE Phase 1: Negotiate how IKE should be protected. • IKE Phase 2: Negotiate how IPsec should be protected. These phases are described in detail next. IKE phase 1: IKE security negotiation An IKE negotiation is performed in two phases. The first phase, phase 1, is used to authenticate the two VPN gateways or VPN clients to each other, by confirming that the remote device has a matching pre‐shared key. Since publishing details of the negotiation in plain text is undesirable, IKE first agrees upon a ...
Page 119
IPsec VPN Authentication can be accomplished through using pre‐shared keys (PSK) or certificates. Using pre‐shared keys is the most common authentication method. Both PSK and certificates‐based VPNs are supported by the SEG. IKE phase 2: IPsec security negotiation In phase 2, another negotiation is performed, detailing the parameters for the IPsec connection. During phase 2 new keying material from the Diffie‐Hellman key exchange in phase 1 in extracted in order to provide session keys to use in protecting the VPN data flow. If perfect forwarding secrecy (PFS) is used, a new Diffie‐Hellman exchange is performed for each phase 2 negotiation. While this method is slower, it ensures that no keys are dependent on any other previously used keys, and that no keys are extracted from the same initial keying material. This prevents subsequent keys from being derived from a key that has been compromised (an unlikely event). Once the phase 2 negotiation is finished, the VPN connection is established and ready for traffic to pass through it. IKE parameters There are a number of parameters used in the IKE negotiation process. These are summarized next. Local endpoint identification This is a piece of data representing the identity of the local VPN tunnel endpoint. Local and remote networks/hosts These are the subnets or hosts between which IP traffic will be protected by the VPN. In a LAN‐to‐LAN connection, these will be the network addresses of the respective LANs. Tunnel and transport mode IPsec can be used in two modes, tunnel or transport. Tunnel mode indicates that the traffic will be tunneled to a remote device, which will decrypt/authenticate the data, extract it from its tunnel, and pass it on to its final destination. This way, an eavesdropper will only see encrypted traffic going from one of VPN endpoint to another. In transport mode, traffic is not tunneled. This mode can be used to ...
Page 120
IPsec VPN The remote endpoint (sometimes also referred to as the remote Remote endpoint gateway) is the remote device that performs VPN decryption/authentication and that passes the unencrypted data on to its final destination. The remote endpoint is not used in transport mode. The IPsec protocols describe how the data will be processed. The two IPsec protocols protocols to choose from are AH, Authentication Header, and ESP, Encapsulating Security Payload. ESP provides encryption, authentication, or both. However, it is not recommended to use encryption only, since it will dramatically decrease security. Note that AH provides only authentication and does not support encryption. The difference from ESP with authentication only is that AH also authenticates parts of the outer IP header, for instance source and destination addresses, making certain that the packet really came from who the IP header claims it is from. Since AH protects the outer IP addresses, it does not work with NAT. Note: The SEG does not currently support AH. This specifies the encryption algorithm used in the IKE negotiation, and IKE encryption depending on the algorithm, the size of the encryption key used. This specifies the authentication algorithms used in the IKE negotiation IKE authentication phase This specifies the Diffie‐Hellman group to use for the IKE exchange. The IKE DH group available DH groups are discussed below in the section titled Diffie‐ Hellman Groups. This is the lifetime of the IKE connection. IKE lifetime It is specified in time (seconds). Whenever one of these expires, a new phase‐1 exchange will be performed. If no data was transmitted in the last “incarnation” of the IKE connection, no new connection will be made until someone wants to use the VPN connection again. This value must be set greater than the IPsec SA lifetime. ...
Page 121
IPsec VPN With Perfect Forwarding Secrecy (PFS) disabled, initial keying material is PFS “created” during the key exchange in phase‐1 of the IKE negotiation. In phase‐2 of the IKE negotiation, encryption and authentication session keys will be extracted from this initial keying material. By using PFS, completely new keying material will always be created upon re‐key. Should one key be compromised, no other key can be derived using that information. PFS can be used in two modes: the first is PFS on keys, where a new key exchange will be performed in every phase‐2 negotiation. The other type is PFS on identities, where the identities are also protected, by deleting the phase‐1 SA every time a phase‐2 negotiation has been finished, making sure no more than one phase‐2 negotiation is encrypted using the same key. PFS is generally not needed, since it is very unlikely that any encryption or authentication keys will be compromised. It is enabled in the SEG by specifying one or more DH groups for the IPsec proposal. The encryption algorithm that will be used on the protected IPsec IPsec encryption traffic. This is not needed when AH is used, or when ESP is used without encryption. IPsec authentication This specifies the authentication algorithm used on the protected traffic. This is not used when ESP is used without authentication, although it is not recommended to use ESP without authentication. This is the lifetime of the VPN connection. It is specified in both time IPsec lifetime (seconds) and data amount (kilobytes). Whenever either of these values is exceeded, a re‐key will be initiated, providing new IPsec encryption and authentication session keys. If the VPN connection has not been used during the last re‐key period, the connection will be terminated, and re‐opened from scratch when the connection is needed again. This value must be set lower than the IKE lifetime. Diffie-Hellman groups Diffie‐Hellman (DH) is a cryptographic protocol that allows two parties that have no prior ...
Page 122
IPsec VPN Diffie‐Hellman is used to establish the shared secret keys for IKE, IPsec and PFS. The Diffie‐Hellman group indicates the degree of security used for DH exchanges. The higher the group number, the greater the security but also the processing overhead. The DH groups supported by the SEG are as follows: • DH group 1 • DH group 2 • DH group 5 • DH group 14 • DH group 15 • DH group 16 • DH group 17 • DH group 18 With the SEG, DH groups are specified in a configuration as part of the IKE proposal list. At least one DH group must be specified in a proposal list. By default, DH groups 2 and 5 are used. IKE and IPsec lifetimes Both the IKE and the IPsec connections have limited lifetimes, described in terms of time. These lifetimes prevent a connection from being used for too long, which is undesirable from a security perspective. The IPsec lifetime must be shorter than the IKE lifetime. The difference between the two must be a minimum of 5 minutes. This allows for the IPsec connection to be re‐keyed simply by performing another phase‐2 negotiation. There is no need to do another phase‐1 negotiation until the IKE lifetime has expired. Default lifetimes The default lifetime values are as follows: • IKE lifetime – 28800 seconds (8 hours) •...
Page 123
IPsec VPN IKE authentication IKE provides a way to securely establish communications between the two ends of an IPsec tunnel. Before examining IKE in detail, the alternative of manually setting up a tunnel is discussed. Manual keying without IKE Without IKE, the “simplest” way of configuring the algorithms used by an IPsec tunnel is by using manual keying. This is a method where the encryption and authentication keys as well as some other parameters are directly configured on both sides of the VPN tunnel. Manual keying is supported by the SEG but only for ESP with tunnel mode. However, it has a number of limitations, such as having to always use the same encryption/authentication keys, no anti‐replay services. There is also no way of assuring that the remote host/security gateway really is the one it says it is. The vulnerability of manual keying to “replay attacks” means that a malicious entity with access to the encrypted traffic can record packets, store them, and send them to its destination at a later time. The destination VPN endpoint will have no way of telling if this packet is a “replayed” packet or not. Using IKE eliminates this vulnerability. PSK-based authentication Using a Pre‐shared Key (PSK) is a method where the endpoints of the VPN “share” a secret key. This is a service provided by IKE, and thus has all the advantages that come with it, making it far more flexible than manual keying. PSK advantages Pre‐Shared Keying has a lot of advantages over manual keying. These include endpoint authentication, which is what the PSKs are really for. It also includes all the benefits of using IKE. Instead of using a fixed set of encryption keys, session keys will be used for a limited period of time, where after a new set of session keys are used. PSK disadvantages One thing that has to be considered when using PSKs is key distribution. How are the Pre‐ Shared Keys distributed to remote VPN end points? This is a major issue, since the security of a PSK system is based on the PSKs being kept secret. Should one PSK be compromised, the configuration will need to be changed to use a new PSK. Certificate-based authentication Each VPN gateway has its own certificate, and one or more trusted root certificates. ...
Page 124
IPsec VPN Advantages of certificates The principal advantage of certificates is the added flexibility. Many VPN clients can be managed without having the same pre‐shared key configured on all of them, which is often the case when using pre‐shared keys and roaming clients. Instead, should a client be compromised, the client's certificate can simply be revoked. No need to reconfigure every client. Disadvantages of certificates The principal disadvantage of certificates is the added complexity. Certificate‐based authentication may be used as part of a larger public key infrastructure, making all VPN clients and gateways dependent on third parties. In other words, there are more aspects that have to be configured, and there is more that can go wrong. Note: IKEv2 does not support self‐signed certificates. IPsec protocols (ESP/AH) The IPsec protocols are the protocols used to protect the actual traffic being passed through the VPN. The actual protocols used and the keys used with those protocols are negotiated by IKE. There are two protocols associated with IPsec, AH and ESP. These are covered in the sections below. AH (Authentication Header) AH is a protocol used for authenticating a data stream. AH is not currently supported by the SEG. Figure 8. The AH protocol AH uses a cryptographic hash function to produce a MAC from the data in the IP packet. This MAC is then transmitted with the packet, allowing the remote endpoint to verify the integrity of the original IP packet, making sure the data has not been tampered with on its way through the Internet. Apart from the IP packet data, AH also authenticates parts of the IP header. The AH protocol inserts an AH header after the original IP header. In tunnel mode, the AH ...
Page 125
IPsec VPN ESP (Encapsulating Security Payload) The ESP protocol inserts an ESP header after the original IP header, in tunnel mode, the ESP header is inserted after the outer header, but before the original, inner IP header. All data after the ESP header is encrypted and/or authenticated. The difference from AH is that ESP also provides encryption of the IP packet whereas AH does not. The authentication phase also differs in that ESP only authenticates the data after the ESP header and the outer IP header is left unprotected. Since AH protects the outer IP addresses, it cannot be used with NAT. The ESP protocol is used for both encryption and authentication of the IP packet. It can also be used to do either encryption only, or authentication only. Figure 9. The ESP protocol Creating and using proposal lists To agree on the VPN flow parameters, a negotiation between tunnel peers is performed. As a result of these negotiations, the IKE and IPsec security associations (SAs) are established. A proposal list of supported algorithms is the starting point for a negotiation. Each entry in the list defines parameters for a supported algorithm that the VPN tunnel end point device is capable of supporting (the shorter term tunnel endpoint will also be used in this manual). The initial negotiation attempts to agree on a set of algorithms that the devices at either end of the tunnel can both support. There are two types of proposal lists, IKE proposal lists and IPsec proposal lists. IKE lists are used during IKE Phase‐1 (IKE Security Negotiation), while IPsec lists are using during IKE Phase‐2 (IPsec Security Negotiation). ...
Page 126
IPsec VPN Supported algorithms The algorithms currently supported by the SEG are: • Encryption algorithms: AES128‐CBC AES192‐CBC AES256‐CBC 3DES Null • Data integrity algorithms: SHA1 MD5 AES‐XCBC • Pseudo‐random function algorithms: This is the same list as for data integrity algorithms above. SEG algorithm sets In the SEG, the various encryption and integrity algorithms are grouped together into sets according to the level of security they provide. These sets, called high, low and all, are then used in the pre‐defined IKE and IPsec proposal lists. The sets are as follows: • High This consists of a set of algorithms to give higher security. This is the default algorithm set for an IPsec tunnel if no proposal lists are explicitly set. The complete list is: 1. 3DES and AES256‐CBC for encryption. 2. MD5 and SHA1 for integrity. • Low This set gives slightly less security. The complete list is: 1. 3DES and AES128‐CBC for encryption. 2. MD5 and SHA1 for integrity. • All This set combines all available algorithms. ...
Page 127
IPsec VPN Creating and using proposal lists There are two object types that define proposal lists and these make use of the High, Low and All algorithm groupings described above: • IKEProposalList This type has three pre‐defined objects: • ike_high – The IPsec tunnel default. • ike_low • ike_all • IPsecProposalList This type has three pre‐defined objects: • ipsec_high – The IPsec tunnel default. • ipsec_low • ipsec_all However, as the example below shows, it is possible to create new custom proposal lists objects with different combinations of algorithms. Example: Creating and using IKE proposal lists This example looks at creating a new IKE proposal list called my_list and adding to an existing IPsecTunnel object called my_tunnel. 1. Create the IKE proposal list: Device:/> add IKEProposalList my_list ...
Page 128
IPsec VPN Pre-shared keys Pre‐shared Keys (PSK) are one of the methods used to authenticate VPN tunnels. The other method is certificates. PSKs are secrets that are shared by the communicating parties before communication takes place. To communicate, both parties prove that they know the secret. The security of a shared secret depends on how “good” a passphrase is. Passphrases that are common words are extremely vulnerable to dictionary attacks. A PSK can be specified as either a hexadecimal or ASCII value. The longer the value used for the PSK, the better the security. Example: Adding an ASCII PSK This example creates a PSK object based on an ASCII string. The object can then be used for authentication with, for example, VPN tunnels. Device:/> add PSK my_psk Type=ASCII PSKAscii="mypasswordstring" Caution: Different encodings on different platforms can cause problems with non‐ASCII characters in a non‐hexadecimal PSK. For example, Microsoft Windows encodes PSKs containing non‐ASCII characters in UTF‐16 while the SEG uses UTF‐8. Even though the same PSK appears to be used at either end of the tunnel, there can be a mismatch because two platforms are encoding differently. For example, this can cause problems when setting up a Windows L2TP client that connects to the SEG. Certificates The SEG supports digital certificates that comply with the ITU‐T X.509 standard. This involves the use of an X.509 certificate hierarchy with public‐key cryptography to accomplish key distribution and entity authentication. References in this manual to a certificate means a X.509 certificate. A certificate is a digital proof of identity. It links an identity to a public key in order to establish whether a public key truly belongs to the supposed owner. By doing this, it prevents data transfer interception by a malicious third‐party who might post a fake key with the name and user ID of an intended recipient. The main usage of certificates in the SEG is to provide VPN tunnel security. Certificates and PSKs The simplest and fastest way to provide security between the ends of a tunnel is to use Pre‐ shared Keys (PSKs). However, as a VPN network grows so does the complexity of using PSKs. ...
Page 129
IPsec VPN Certificate components A certificate consists of the following: • A public key: The “identity” of the user, such as name and user ID. • Digital signatures: A statement that tells the information enclosed in the certificate has been vouched for by a Certificate Authority (CA). By binding the above information together, a certificate is a public key with identification attached, coupled with a stamp of approval by a trusted party. Certificate authorities A certificate authority (CA) is a trusted entity that issues certificates to other entities. The CA digitally signs all certificates it issues. A valid CA signature in a certificate verifies the identity of the certificate holder, and guarantees that the certificate has not been tampered with by a third party. A CA is responsible for making sure that the information issued in every certificate is correct. It also has to make sure that the identity of the certificate matches the identity of the certificate holder. Certificate chains A CA can also issue certificates to other CAs. This leads to a chain‐like certificate hierarchy. The highest certificate is called the Root Certificate and it is signed by the Root CA. Each certificate in the chain is signed by the CA of the certificate directly above it in the chain. However, the root certificate is signed by itself (it is “self‐signed”). Any certificates in the chain between the root certificate and the end certificate are called Intermediate Certificates. A Certification Path refers to the path of certificates from one certificate to another. To verify the validity of a user certificate, the entire path from the user certificate up to the trusted root certificate has to be examined before establishing the validity of the user certificate. In the SEG, the maximum length of a certificate chain is 4. In VPN scenarios with roaming clients, the client’s certificate will be the bottom of a certificate chain. Certificate validity time A certificate is not valid forever. Each certificate contains the dates between which the certificate is valid. When this validity period expires, the certificate can no longer be used, and a new certificate has to be issued. Important: Make sure the SEG date and time are set correctly when using certificates. Using NTP servers is the recommended method of doing this. ...
Page 130
IPsec VPN Trusting certificates When using certificates, the SEG can trust any party whose certificate is signed by a given CA. Before a certificate is accepted, the following steps are taken to verify the validity of the certificate: • Construct a certification path up to the trusted root CA. • Verify the signatures of all certificates in the certification path. • Fetch the CRL for each certificate to verify that none of the certificates have been revoked. Uploading certificates Certificates are uploaded to the SEG using Secure Copy (SCP). When the SEG receives certificates, it recognizes them as certificates and stores them until they are referenced in a CLI command to create a certificate object. The upload process will consist of a Root Certificate and Host Certificate upload plus any intermediate certificates that will be required. The root certificate has 2 parts added: a certificate file and a private key file. Using SCP is described in Secure copy on page 30. Self‐signed certificates cannot be used with the SEG. Creating certificate configuration objects Once the certificate files are uploaded using SCP, Certificate SEG configuration objects have to be created which are associated with these files. Assume that the CA signed certificate file has the filename myfile.cer and the host certificate files have the filenames anotherfile.cer and anotherfile.key. First, the CA signed root certificate is added to the SEG configuration. This consists of only one .cer file that was previously uploaded with SCP: Device:/> add Certificate ca_signed_cert CertificateData=file://myfile.cer Type=Remote Next, the host certificate is added. This consists of two files, a .cer file and a .key file: scp C:\cert‐1.cer admin@192.168.3.1:MyCert Device:/> add Certificate host_cert CertificateData=file://anotherfile.cer Type=Local PrivateKey=file://anotherfile.key Certificates are global SEG objects In the SEG, certificates are global objects that can be reused between VPN tunnels. Even ...
Page 131
IPsec VPN Association with tunnels The association between a tunnel and certificates is created using the LocalID property of the IPsec tunnel. The tunnel’s LocalAuthMethod property should be set to Certificate (by default, this also becomes the value for RemoteAuthMethod, although the two could be set differently). The LocalID value specified for a tunnel is matched with the Subject or Subject Alternative Name fields in the available certificates. If more than one certificate provide a LocalID match, the first matching certificate is used. Manually creating Windows CA server requests To request certificates from a CA server or CA company, the best method is to send a CA Certificate Request which is a file that contains a request for a certificate in a well known, predefined format. It is possible to manually create the required files for a Windows CA server using the following stages. • Create a gateway certificate on the Windows CA server and export it as a file in the .pfx format. • Convert the .pfx file into the .pem format. • Take out the relevant parts of the .pem file to form the required .cer and .key files. The detailed steps for the above stages are as follows: 1. Create the gateway certificate on the Windows CA server and export it to a .pfx file on the local SEG management workstation disk. 2. Now convert the local .pfx file to a .pem file. This can be done with the OpenSSL utility using the CLI: > openssl pkcs12 ‐in gateway.pfx ‐out gateway.pem ‐nodes In this command line example, the file exported from the CA server is assumed to be called gateway.pfx and it is assumed to be in the same local directory as the OpenSSL executable. ...
Page 132
IPsec VPN 5. Mark and copy into the system clipboard that line and everything under it, up to and including the line: ‐‐‐‐‐END RSA PRIVATE KEY‐‐‐‐ 6. Now paste the copied text into the .key file and save it. 7. Back in the .pem file, locate the line that begins: ‐‐‐‐‐BEGIN CERTIFICATE‐‐‐‐ and copy into the system clipboard that line and everything under it, up to and including: ‐‐‐‐‐END CERTIFICATE‐‐‐‐ 8. Now paste this copied text into the .cer file and save it. The saved .key and .cer files are now ready for upload into the SEG. IPsec with the SEG This section looks more closely at IPsec tunnels usage with the SEG. An IPsecTunnel object in the SEG defines an endpoint of an encrypted VPN tunnel. Each IPsec tunnel is interpreted as a logical interface by the SEG, with the same filtering, traffic shaping and configuration capabilities as a physical Ethernet interfaces. Remote initiation of tunnel establishment When another security gateway or another IPsec compliant networking product (also known as the remote endpoint) tries to establish an IPsec VPN tunnel to a local security gateway, the list of currently defined IPsec tunnels in the SEG configuration is examined. If a matching tunnel definition is found, that tunnel is opened. The associated IKE and IPsec negotiations then take place, resulting in the tunnel becoming established to the remote endpoint. IP rules control decrypted traffic Note that an established IPsec tunnel does not automatically mean that all the traffic flowing from the tunnel is trusted. On the contrary, network traffic that has been decrypted will be ...
Page 133
IPsec VPN However, the IPsec tunnel itself does not need any IP rules defined. These rules are hidden, and created automatically by the SEG so that IKE negotiations and tunnel establishment can take place. Dead Peer Detection After the establishment of an IPsec tunnel to a client, the SEG uses an Informational message sent through the tunnel to the client as a Dead Peer Detection (DPD) mechanism. This message contains an empty encrypted payload. If the client doesn’t respond, six more DPD messages are sent by the SEG at progressively longer intervals before DPD is triggered, the client is considered unreachable, and the tunnel’s SAs are torn down. DPD is unidirectional, concerned only with incoming tunnel traffic. The basic interval for DPD message sending is determined by the IPsecTunnel property IKEDPDInterval. This has a default value of 90 seconds, which is recommended for most I‐WLAN scenarios. If it is set to zero, DPD is disabled. IPsec connection using two IPsec tunnel objects As discussed in IPsec troubleshooting on page 143, a potential problem can occur when a single IPsec VPN tunnel is set up referencing two IPsec tunnel objects. Consider the situation of an IPsec client sending a request to open a tunnel to the SEG. The client begins by sending an IKE_INIT request that includes a proposal list, key information and a notification payload. The SEG then scans the list of IPsec tunnel objects looking for the closest match and uses the tunnel object it finds. However, the tunnel chosen may not be the “right” tunnel since not all information needed for a correct match is available yet to the SEG. In the next IKE_AUTH stage of the setup process, the client sends the remainder of the required information and this may result in the SEG needing to find another IPsec tunnel object for the connection. An example of this is two tunnels A and B with the following characteristics: • Tunnel A has: • AES‐128 in its proposal list. • Authentication with PSK using ID id_a@somecompany.com •...
Page 134
IPsec VPN Now consider the following sequence: 1. A client with IPv4 address 177.22.0.47 initiates an IPsec negotiation with an IKE_INIT message. 2. Assuming that the client’s proposal list can match either tunnel, the IPsec tunnel object B is chosen for the connection because its remote endpoint is a narrower match to the client's IP address. 3. The IKE_AUTH phase now begins and the SEG finds out that the client wants to use PSK for authentication with an ID of id_a@somecompany.com. 4. Tunnel B no longer matches the client’s authentication requirements. The SEG will therefore search the IPsec tunnel object list looking for another tunnel that can match and finds tunnel definition A. The end result of these steps is that an IPsec tunnel is established but it uses the IKA SA established with tunnel B and the authentication established with tunnel A. This may not be the intended result so the administrator should take care when defining IPsec tunnel objects. IPsec rekeying The SEG supports IPsec rekeying. This means that a rekey of the IKE and IPsec Security Associations (SAs) will be initiated based upon the configured values in the proposal lists for IKE and IPsec. The lifetimes of the IKA SAs and IPsec SAs can be limited based on the time since they were created. The SEG will respond to re‐keying requests initiated by the MS as described by the IKEv2 specification. Important: The administrator should be aware of the effect of uploading a new SEG configuration to an security gateway that is supporting live IPsec tunnels. If any changes to the IPsec configuration are made as part of a new SEG configuration, then any live IPsec tunnel connections will be terminated and must be re‐established. This next section covers the steps for IPsec tunnel setup with the SEG in more detail. ...
IPsec VPN Setting up IPsec tunnels Other sections explore IPsec components in detail. This section provides a summary of the essential steps needed for IPsec setup. It outlines the individual steps in setting up IPsec for the following scenarios: • IPsec LAN to LAN with Pre‐shared Keys • IPsec LAN to LAN with Certificates Note: VPN tunnels themselves do not require IP rules as explained in IPsec with the SEG on page 132, IP rules do not need to be defined in the SEG for VPN tunnel establishment. It is the data passing through a tunnel that requires IP rules which allow it to flow. Common tunnel setup requirements Before looking at each of these scenarios separately, it is useful to summarize the common SEG requirements when setting up any VPN tunnel, regardless of the type. • Define the tunnel First, you must define the tunnel itself. The SEG has various tunnel object types which are used to do this, such as an IPsec Tunnel object. • A route must exist Before any traffic can flow into the tunnel, a route must be defined in an SEG routing table. This route tells the SEG which network can be found at the other end of the tunnel so it knows which traffic to send into the tunnel. In most cases, this route is created automatically when the tunnel is defined and this can be checked by examining the routing tables. If a route is defined manually, the tunnel is treated exactly like a physical interface in the route properties, as it is in other aspects of the SEG. In other words, the route is saying to the SEG that a certain network is found at the other end of the tunnel. • Define an IP rule to allow VPN traffic An IP rule must be defined that explicitly allows traffic to flow between a network and the tunnel. As with route definitions, the tunnel is treated exactly like a physical interface when defining the IP rule. ...
Page 136
IPsec VPN IPsec LAN to LAN with pre-shared keys 1. Create a new IPsecPSK object. This will contain the key as well as a unique combination of LocalID and RemoteID. It is this combination of local and remote ID that is used to associate the key with the tunnel. Both local and remote ID can take on any string value such as an IP address or e‐mail address. They can also incorporate the wildcard asterisk (“*”) character. Note: If the wildcard character is used in an e‐mail address, it must not be combined with other characters. For example, *.user@somename.com cannot be used but *.somename.com can. 2. Optionally create an IKEProposalList and/or IPsecProposalList object if the default proposal lists do not provide a set of algorithms that are acceptable to the tunnel remote end point. The ike_high and ipsec_high lists are the defaults. An IKEProposalList object must contain at least one IKEProposal object. Similarly, an IPsecProposalList object must contain at least one IPsecProposal object. If PFS is required the IPsec proposal must have DH groups specified otherwise PFS is disabled (the default). 3. In the Address Book create IP objects for: • The remote VPN gateway that is the IP address of the network device at the other end of the tunnel (remote_gw). • The remote network which lies behind the remote VPN gateway (remote_net). • The local network behind the SEG that will communicate across the tunnel. Assume that this is the predefined address sfp1net and this network is attached to the SEG sfp1 interface that has the IP address sfp1_ip. 4. Create an IPsecTunnel object (ipsec_tunnel). Specify the following tunnel properties: • Set the IPaddress property of the tunnel. In most cases this can be set to something arbitrary such as 127.0.0.1. If NAT is being used on outgoing traffic, this should be set ...
Page 137
IPsec VPN • If not using the default ipsec_high list, set IPsecProposalList to the proposal list to be used for the tunnel. • Specify a LocalID for the tunnel. The combination of this and the RemoteID will identify the IPsecPSK object to use. • Specify a RemoteID for the tunnel. This can be specified using the asterisk (“*”) as a wildcard character. • Specify the LocalAuthMethod to be PSK. By default, this also becomes the value for RemoteAuthMethod, although you could set the local and remote method to different values. The IPsec Tunnel object can be treated exactly like any SEG Interface object in later steps. 5. Set up two IP rules in the IP rule set for the tunnel: • An Allow rule for outbound traffic that has the previously defined ipsec_tunnel object as the Destination Interface. The rule's Destination Network is the remote network remote_net. • An Allow rule for inbound traffic that has the previously defined ipsec_tunnel object as the Source Interface. The Source Network is remote_net. Action Src Interface Src Network Dest Interface Dest Network Service Allow sfp1 sfp1net ipsec_tunnel remote_net Allow ipsec_tunnel remote_net...
IPsec VPN The setup steps are as follows: 1. Connect to the management interface for the SEG at one end of the tunnel. 2. Upload the Root Certificate and Host Certificate into the SEG using SSH. The root certificate needs to have 2 parts added: a certificate file and a private key file. The gateway certificate needs just the certificate file added. Associate the certificates with a LocalID. 3. Set up the IPsecTunnel object in the same way as for pre‐shared keys with the following differences: • Set LocalAuthMethod to Certificate (by default, RemoteAuthMethod assumes the same value). • The LocalID must match the value associated with at least one certificate in the system. 4. Connect to the management interface for the SEG at the other side of the tunnel and repeat the above steps with a different set of certificates. Note: The SEG date and time should be set correctly since certificates have an expiration date and time. Review CA server access on page 140, which describes important considerations for certificate validation. NAT traversal Both IKE and IPsec protocols present a problem in the functioning of NAT. Both protocols were not designed to work through NATs and because of this, a technique called NAT traversal (NAT‐ T) has evolved. This is an add‐on to the IKE and IPsec protocols and it allows them to function while undergoing NAT. The SEG supports the following standards for NAT traversal with IKE: • RFC 4306 for IKEv2. NAT traversal is divided into two parts: • Additions to IKE that lets IPsec peers tell each other that they support NAT traversal and the specific versions supported. • Changes to the ESP encapsulation. If NAT traversal is used, ESP is encapsulated in UDP, which allows for more flexible NATing.
Page 139
IPsec VPN NAT detection mechanism To achieve NAT detection, both IPsec peers send hashes of their own IP addresses along with the source UDP port used in the IKE negotiations. This information is used to see whether the IP address and source port each peer uses is the same as that which the other peer sees. If the source address and port have not changed, the traffic has not undergone NAT along the way, and NAT traversal is not necessary. If the source address and/or port has changed, then the traffic has undergone NAT, and NAT traversal is used. Changing ports Once the IPsec peers have decided that NAT traversal is necessary, the IKE negotiation is moved away from UDP port 500 to port 4500. This is necessary since certain NAT devices treat UDP packet on port 500 differently from other UDP packets in an effort to work around the NAT problems with IKE. The problem is that this special handling of IKE packets may in fact break the IKE negotiations, which is why the UDP port used by IKE has changed. UDP encapsulation Another problem that NAT traversal resolves is that the ESP protocol is an IP protocol. There is no port information as in TCP and UDP, which makes it impossible to have more than one NAT client connected to the same remote gateway at the same time. Because of this, ESP packets are encapsulated in UDP. ESP‐UDP traffic is sent on port 4500, the same port as IKE when NAT traversal is used. Once the port has been changed, all following IKE communication is done over port 4500. Keep‐alive packets are also sent periodically to keep the NAT mapping alive. NAT traversal configuration Most NAT traversal functionality is completely automatic and in the initiating gateway no special configuration is needed. However, for responding gateways two points should be noted: • On responding gateways, the Remote Endpoint field is used as a filter on the source IP of received IKE packets. This should be set to allow the translated IP address of the initiator. • When individual pre‐shared keys are used with multiple tunnels connecting to one remote gateway that are translated out through the same address, it is important to make sure the Local ID is unique for every tunnel. The Local ID can be one of: •...
IPsec VPN CA server access Certificate validation can be performed by accessing a separate Certificate Server (CA) server. For example, the two sides of an IPsec tunnel exchange their certificates during the tunnel setup negotiation and either may then try to validate the received certificate. A certificate contains a Fully Qualified Domain Name (FQDN), which specifies the textual address of the validating CA server as well as the protocol used for accessing the server. For example, server access could require an HTTP request or possibly an LDAP request. CA server types CA servers are of two types: • A commercial CA server operated by one of the commercial certificate issuing companies. These are accessible over the public Internet and their FQDNs are resolvable through the public Internet DNS server system. • A private CA server operated by the same organization setting up the VPN tunnels. The IPv4 address of a private server will not be known to the public DNS system unless it is explicitly registered. It also will not be known to an internal network unless it is registered on an internal DNS server. For LTE scenarios in a telecom environment, a private CA server is most often used with server requests sent using the LDAP protocol. However, the protocol used is determined by the settings within the certificate. Access considerations Consider the following when planning for successful CA server access: • Either side of a VPN tunnel may issue a validation request to a CA server. • For a certificate validation request to be issued, the FQDN of the certificate's CA server must first be resolved into an IP address. The following scenarios are possible: 1. The CA server is a private server behind the SEG and the tunnels are set up over the public Internet to clients that will not try to validate the certificate sent by the SEG. In this case, the IPv4 address of the private server needs to be registered only on a private DNS server so the FQDN can be resolved. This private DNS server will also have to be configured in the SEG so it can be found when the SEG issues a validation ...
Page 141
IPsec VPN 2. The CA server is a private server with tunnels set up over the public Internet and with clients that will try to validate the certificate received from the SEG. In this case, the following must be done: a. A private DNS server must be configured so that the SEG can locate the private CA server to validate the certificates coming from clients. b. The external IP address of the SEG needs to be registered in the public DNS system so that the FQDN reference to the private CA server in certificates sent to clients can be resolved. For example, the SEG may send a certificate to a client with an FQDN of ca.company.com. This will need to be resolvable by the client to a public external IP address of the SEG through the public DNS system. The same steps should be followed if the other side of the tunnel is another security gateway instead of being many clients. 3. The CA server is a commercial server on the public Internet. In this, the simplest case, public DNS servers will resolve the FQDN. The only requirement is that the SEG will need to have at least one public DNS server address configured to resolve the FQDNs in the certificates it receives. • It must be also possible for a server request to pass from the validation request source (either the SEG or a client) to the CA server and the reply to be received. If the request is going to pass through the SEG, the appropriate rules in the SEG IP rule set need to be defined to allow this traffic through. The Service object used in the IP rules should be chosen to match the protocols that may be used for the request. IP rules are not required if the SEG itself is issuing the request to the CA server. Actions taken by the SEG are trusted by default. This is the case when the SEG must validate certificates in an LTE telecom scenario and is a general rule that also applies to DNS resolution requests issued by the SEG. • If LDAP requests are going to be sent to a CA server, the server must be configured to accept anonymous LDAP requests. Microsoft documentation may refer to this as Anonymous LDAP Binding. For example, the default setting for some Windows Active Directory servers is to reject anonymous LDAP requests, so this must be changed. The SEG always queries LDAP servers with anonymous requests. If the server is not configured to accept them, authentication will fail.
Page 142
IPsec VPN Placement of private CA servers The simplest solution for placement of a private CA server is to have it on the unprotected side of the SEG. However, this is not recommended from a security viewpoint. It is better to place it on the inside (or preferably in the DMZ if available) and to have the SEG control access to it. As explained previously, the FQDN address of the private CA server must be resolvable through public DNS servers for certificate validation requests coming from the public Internet. If the certificate queries are coming only from the SEG and the CA server is on the internal side of the security gateway, the IP address of the internal DNS server must be configured in the SEG so that these requests can be resolved and this is the case in the LTE telecom scenario. CA server access with LTE configuration is described further in the SEG‐100 Getting Started Guide. Figure 10. Certificate validation components...
IPsec VPN Turning off certificate validation One of the ways to troubleshoot problems with CA server access is to turn off the requirement to validate certificates. By default, checking is always enabled. Attempts to access CA servers by the SEG can be disabled by setting the CRL option for a certificate object to No (the default is Yes). For example: Device:/> set Certificate my_cert CRL=No This means that checking against the CA server's revocation list (CRL) will be turned off and access to the server will not be attempted. When switching off CRL checking, it may not be necessary to apply the CRL=No option to all certificates. This option follows the chain of certificate dependency. If it is applied to the root certificate of the chain, it is automatically applied to all dependent certificates. IPsec troubleshooting This section deals with how to troubleshoot the common problems that are found with VPN. General troubleshooting In all types of VPNs some basic troubleshooting checks can be made: • Check that all IP addresses have been specified correctly. • Check that all pre‐shared keys and usernames/passwords are correctly entered. • Use ICMP Ping to confirm that the tunnel is working. With roaming clients this is best done by “Pinging” the internal IP address of the local network interface on the SEG from a client (in LAN to LAN setups pinging could be done in any direction). If the SEG is to respond to a Ping then the following rule must exist in the IP rule set: Action Src Interface Src Network Dest Interface Dest Network Service Allow vpn_tunnel...
Page 144
IPsec VPN • Try and avoid duplication of IP addresses between the remote network being accessed by a client and the internal network to which a roaming client belongs. If a roaming client becomes temporarily part of a network such as a Wi‐Fi network at an airport, the client will get an IP address from the Wi‐Fi network's DHCP server. If that IP also belongs to the network behind the SEG accessible through a tunnel, then Windows will still continue to assume that the IP address is to be found on the client's local network. Windows therefore will not correctly route packets bound for the remote network through the tunnel but instead route them to the local network. The solution to this problem of local/remote IP address duplication is to create a new route in the client's Windows routing table that explicitly routes the IP address to the tunnel. For example, suppose 192.168.99.2 is the server to be reached, 192.168.0.0/24 is the remote network and 192.168.99.2 is assigned by L2TP or PPTP to the Windows computer. The Windows command line to add a route would be: C:\> route add 192.168.0.2 mask 255.255.255.255 192.168.99.2 • Verify that the correct tunnel is being selected. When an external client connects, the SEG makes a decision about which IPsec tunnel object to use by choosing the tunnel that has the parameters that most closely match the incoming connection. However, the tunnel object selected in the initial exchange between client and the SEG may have to change because a mismatch is discovered in a later phase. This can result, for example, in a situation where the proposal list matches one IPsec tunnel object but authentication matches another tunnel object. The administrator should be aware this can happen so that unexpected behavior can be understood. This topic is discussed with more depth in IPsec with the SEG on page 132. Troubleshooting certificate problems If certificates have been used in a VPN solution then the following should be looked at as a source of potential problems: • Check that the correct certificates have been used for the correct purposes. • Check that the certificate .cer and .key files have the same filename. For example, my_cert.key and my_cert.cer. • Check that the certificates have not expired. Certificates have a specific lifetime and when this expires they cannot be used and new certificates must be issued. •...
Page 145
IPsec VPN The SEG uses the certificate version that is in the cache if it is there. If there has been a change to a certificate either locally of remotely, the cache may need to be updated. The contents of the cache can be examined using only ‐cert option on its own. Some example output is given below: Device:/> ike ‐cert IKEv2 Certificates # Subject ‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 1 C=SE, O=Clavister, OU=R&D, CN=TTG 2 C=SE, O=Clavister, OU=R&D, CN=TTG2 3 C=SE, O=Clavister, OU=R&D, CN=GGSN 4 DC=local, DC=devlab, CN=labsrv The abbreviations found in this output have the following meanings for each cached certificate: • C – ISO3166 two character country code. • ST – State or province. • L – Locality. Usually a city. • O – Organization. Usually a company name. • OU – The organization unit. Typically, the certificate type. • CN – The common name. Typically a product name. • DC – The domain component. The ‐verbose option with the ‐cert option can provide more detailed information about the cache contents: Device:/> ike ‐cert ‐verbose IKEv2 Certificates # Subject Issuer Valid From Valid To Status ‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ 1 C=SE, DC=local, 2011‐05‐09 2012‐05‐09 Valid O=Clavister, DC=lab, 06:37:00 06:47:00 OU=R&D, CN=TTG CN=labsrv 2 C=SE, DC=local, 2011‐06‐28 2012‐06‐28 Valid O=Clavister, DC=lab, 08:34:49 08:44:49 OU=R&D, CN=TTG2 CN=labsrv 3 C=SE, DC=local, 2010‐07‐28 2011‐07‐28 Valid...
Page 146
IPsec VPN IPsec troubleshooting commands A number of commands can be used to diagnose IPsec tunnel issues: Using the flow CLI command SEG IPsec traffic consists of ESP flows. A flow is unidirectional and ESP traffic consists of a single, unidirectional flow. ESP flows can be examined using the flow CLI command. For example, all flows could be examined using the command: Device:/> flow ‐show Proto Source Destination Timeout ‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐ ESP core:53.0.0.1 ext:53.0.1.2:0x757d8003 125 ICMP ipsec‐1:192.100.1.9:2048 gtp‐1:192.200.0.1:17683 7 ESP ext:53.0.1.2 core:53.0.0.1:0x608f21ad 129 UDP core:53.10.0.2:2152 int:53.10.0.1:2152 129 UDP core:53.10.0.2:2123 int:53.10.0.1:2123 113 ESP ext:53.0.1.2 core:53.0.0.1:0x42c5fd04 75 UDP core:172.22.53.101:514 mgm:172.22.53.1:514 125 Caution: It is important to be aware that instead of decimal port numbers in the flow command output for ESP, the values displayed are SPI numbers and these are specified using hexadecimal. The reverse flows for the above can be displayed using the ‐verbose option: Device:/> flow ‐show ‐verbose Proto Source Destination Timeout ‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐ ESP core(0):53.0.0.1 ext:53.0.1.2:0x757d8003 126 ...rev: core(0):53.0.0.1 ext:53.0.1.2:0x757d8003 126 ICMP ipsec‐1(33):192.100.1.9:2048 gtp‐1:192.200.0.1:17683 7 ...rev: ipsec‐1(33):192.100.1.9:17683 gtp‐1:192.200.0.1:0 7 ESP ext(0):53.0.1.2 core:53.0.0.1:0x608f21ad 129 ...rev: ext(0):53.0.1.2 core:53.0.0.1:0x608f21ad 129 UDP core(0):53.10.0.2:2152 int:53.10.0.1:2152 129 ...rev: core(0):53.10.0.2:2152 int:53.10.0.1:2152 129 UDP core(0):53.10.0.2:2123 int:53.10.0.1:2123 110 ...rev: core(0):53.10.0.2:2123 int:53.10.0.1:2123 110 ESP ext(0):53.0.1.2 core:53.0.0.1:0x42c5fd04 72 ...rev: ext(0):53.0.1.2 core:53.0.0.1:0x42c5fd04 72...
Page 147
IPsec VPN The displayed list can be filtered using any of a number of filtering parameters. For example, all flows that have a destination of the IPsec tunnel called my_tunnel could be examined with the command: Device:/> flow ‐show ‐destiface=my_tunnel All options for the flow command can be found in the SEG‐100 Command Line Interface Reference. The ike -stat CLI command The following command can provide a snapshot of the current state of negotiated tunnels: Device:/> ike ‐stat This can be used to show that IPsec tunnels have correctly established. A typical example of output from this command is shown below: Device:/> ike ‐stat IKEv2 Statistics Statistic Value ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐ IKE SAs active 2 IKE SA negotiations active 0 IKE SA negotiations done 3 IKE SA negotiations failed 1 IKE SA rekeys active 0 IKE SA rekeys done 0 IKE SA rekeys failed 0 IPsec SAs active 2 IPsec SA negotiations active 0 IPsec SA negotiations done 2 IPsec SA negotiations failed 0 IPsec SA rekeys active 0 IPsec SA rekeys done 0 IPsec SA rekeys failed 0 The ike ‐stat command provide a static view of IPsec tunnels. To see what is happening during the IKE negotiation of tunnel setup, the ‐snoop option should be used and this is discussed next. ...
Page 148
IPsec VPN Using ike -snoop VPN tunnel negotiation When setting up IPsec tunnels, problems can arise because the initial negotiation fails when the network devices at either end of a VPN tunnel try but fail to agree on which protocols and encryption methods will be used. The CLI command ike ‐snoop is a tool that can be used to identify such problems by showing the details of the exchanges that occur when the peers at either end of the IPsec tunnel try to agree on a mutually acceptable set of algorithms. The algorithm lists they exchange are often referred to as proposal lists. Using ike -snoop The ike ‐snoop command is entered via a CLI console. To begin monitoring with basic, summarized output, the full CLI command is: Device:/> ike ‐snoop ‐brief This causes diagnostic output to be continuously sent to the console for all VPN tunnel IKE negotiations that takes place, regardless of interface. To turn off monitoring, the command is: Device:/> ike ‐snoop ‐off Presented below is some typical ike ‐snoop output (the formatting has been changed slightly to fit the page). The tunnel negotiation considered is based on pre‐shared Keys. A negotiation based on certificates is not discussed here but the principles are the same. SNOOP: IKEv2: 2010‐05‐31 12:30:09 172.22.53.18:500 <‐172.22.53.23:500 IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ] SNOOP: IKEv2: 2010‐05‐31 12:30:09 172.22.53.18:500 ‐> 172.22.53.23:500 IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(MULT_AUTH) ] SNOOP: IKEv2: 2010‐05‐31 12:30:09 172.22.53.18:500 <‐172.22.53.23:500 IKE_AUTH request 1 [ IDi AUTH SA TSi TSr N(INIT_CONTACT) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) ] SNOOP: IKEv2: 2010‐05‐31 12:30:09 172.22.53.18:500 ‐> 172.22.53.23:500 IKE_AUTH response 1 [ IDr AUTH SA TSi TSr N(AUTH_LFT) ] In these listings the direction of packet movement is indicated by the <‐and ‐> symbols. The IPv4 address and port number given on the left side of these symbols is local. The address and port number given on the right side is remote. Each packet movement is preceded by a timestamp. ...
Page 149
IPsec VPN Consider the first part: 172.22.53.18:500 <‐172.22.53.23:500 Indicates that an initial request to set up a security association was made and originates from remote IPv4 address 172.22.53.23, port 500, which will be the remote tunnel endpoint. This was received at local IPv4 address 172.22.53.18, port 500 on the local security gateway and this will be the local tunnel endpoint. The nature of this request is described next: IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ] It is a security association (SA) initialization and the various abbreviations describe the details: • KE ‐Key Exchange • No ‐NONCE • N ‐Notify The notification payloads in this case are NATD_S_IP and NATD_D_IP. The second part of the output shows the local security gateway sending the IKE response back to IPv4 address 172.22.53.23: 172.22.53.18:500 ‐> 172.22.53.23:500 The third part of the output (IKE_AUTH request 1) is a request from the remote tunnel endpoint172.22.53.23 to try and agree algorithms: IDi AUTH SA TSi TSr N(INIT_CONTACT) N(ESP_TFC_PAD_N) N (NON_FIRST_FRAG) The actual algorithms in the proposal lists sent by each tunnel peer are not shown in this summary version of the ike command. However, the sequence of steps leading to success or failure are shown. Complete ike command options and abbreviation descriptions can be found in the SEG‐100 Command Line Interface Reference. Management interface failure with VPN If a VPN tunnel is set up and then the SEG management interface stops operating, it is likely a problem with the management traffic being routed back through the VPN tunnel instead of the correct interface. This happens when a route is established in the main routing table which routes any traffic for all‐nets through the VPN tunnel. If the management interface is not reached by the VPN tunnel then the administrator needs to create a specific route that routes management interface traffic leaving the SEG back to the management sub‐network. ...
Page 150
IPsec VPN Specific error messages This section will deal with specific error messages that can appear with VPN and what they indicate. The messages discussed are: • Could not find acceptable proposal / no proposal chosen. • Incorrect pre‐shared key. • Ike_invalid_payload, Ike_invalid_cookie. • Payload_Malformed. • No public key found. Could not find acceptable proposal / no proposal chosen This is the most common IPsec related error message. It means that depending on which side initiates tunnel setup, the negotiations in either the IKE or the IPSec phase of setup failed since they were unable to find a matching proposal that both sides could agree on. Troubleshooting this error message can be involved since the reasons for this message can be multiple depending on where in the negotiation it occurred. • If the negotiation fails during phase‐1 – IKE The IKE proposal list does not match. Double check that the IKE proposal list matches that of the remote side. A good idea is to use the ike ‐snoop ‐full command in the console and get the tunnel to initiate the tunnel from the remote side. You will be able to then see what proposals the remote side is sending and then compare the results with your own IKE proposal list. At least one proposal has to match in order for it to pass phase‐1. Don't forget that the lifetimes are also important. • If the negotiation fails during phase‐2 – IPsec The IPsec proposal list does not match. Double check that the IPsec proposal list matches ...
Page 151
IPsec VPN Incorrect pre-shared key A problem with the pre‐shared key on either side has caused the tunnel negotiation to fail. This is perhaps the easiest of all the error messages to troubleshoot since it can be only one thing, and that is incorrect pre‐shared key. Double‐check that the pre‐shared key is of the same type (Passphrase or Hex‐key) and correctly added on both sides of the tunnel. Another reason for why the SEG detects that the pre‐shared key is incorrect could be because the wrong tunnel is triggering during tunnel negotiations. IPsec tunnels are processed from the top to the bottom of the SEG tunnel list and are initially matched against the remote gateway. An example is if there is a roaming tunnel that uses all‐nets as its remote gateway. This tunnel will trigger before your defined tunnel if it is above it in the tunnel list. Ike_invalid_payload, Ike_invalid_cookie In this case the IPsec engine in the SEG receives an IPsec IKE packet but is unable to match it against an existing IKE. If a VPN tunnel is only established on one side, this can be the resulting error message when traffic arrives from a tunnel that does not exist. An example would be if, for some reason, the tunnel has only gone down from the initiator side but the terminator still sees it as up. It then tries to send packets through the tunnel but when they arrive at the initiator it will drop them since no matching tunnel can be found. Simply remove the tunnel from the side that believes it is still up to solve the immediate problem. An investigation as to why the tunnel only went down from one side is recommended. It could be that DPD and/or Keep‐Alive is only used on one side. Another possible cause could be that even though it has received a DELETE packet, it has not deleted/removed the tunnel. Payload_Malformed This problem is very similar to the Incorrect pre‐shared key problem described above. A possible reason is that the PSK is of the wrong TYPE on either side (Passphrase or Hex key). Verify that you are using the same type on both sides of the IPsec tunnel. If one side is using Hex and the other Passphrase, this is most likely the error message that you will receive. No public key found This is a very common error message when dealing with tunnels that use certificates for authentication. Troubleshooting this error message can be very difficult. It is very important to keep in mind that when dealing with certificates it may be required to combine the output from ike ‐snoop ...
Page 152
IPsec VPN The possible causes are as follows: • The certificate on either side is not signed by the same CA server. • The certificate's validity time has expired or it has not yet started to be valid. The latter can happen if the clock is set incorrectly on either the CA server or the SEG or they are in different time zones. • The SEG is unable to reach the Certificate Revocation List (CRL) on the CA server in order to verify if the certificate is valid or not. Double‐check that the CRL path is valid in the certificate’s properties. (Using the CRL feature could be turned off.) Make sure also that there is a DNS client configured in the SEG in order for it to be able to correctly resolve the path to the CRL. Specific symptoms The tunnel can only be initiated from one side This is a common problem and is due to a mismatch of the size in local or remote network and/or the lifetime settings on the proposal list(s). To troubleshoot this, the settings for the local network, remote network, IKE proposal list and IPsec proposal list on both sides need to be examined to try to identify a miss‐match. For example, suppose there are the following IPsec settings at either end of a tunnel: • Side A Local Network = 192.168.10.0/24 Remote Network = 10.10.10.0/24 • Side B Local Network = 10.10.10.0/24 Remote Network = 192.168.10.0/16 In this scenario, the defined remote network on Side B is larger than that defined for Side A’s local network. This means that Side A can only initiate the tunnel successfully towards Site B ...
Chapter Authentication Authentication profiles Authentication refers to the process of checking and verifying credentials of external users before allowing them access to requested resources through the SEG. The resources could be public Internet access from an internal network, access to an internal server from an external user via VPN, or perhaps administrator access to the SEG itself. The SEG objects that control authentication are Authentication Profiles. Each profile defines a set of parameters for performing authentication. In particular, a profile defines the Authentication Source, which could be an internal SEG database or an external database such as a RADIUS server. To be useful, authentication profiles must be associated with other objects. For example, an IPsec interface can have a profile associated with it so that roaming clients that connect through the IPsec tunnel trigger the authentication described by the profile. An authentication profile has the following properties: • Agent Type This is the type of authentication that will be used. The choices are: • BASIC: This is the default and indicates standard username/password authentication. For example, the profile associated with the RemoteMgmtSSH object to allow administration SSH access should have this type. • EAP: This option is used in I‐WLAN scenarios with IKEv2 IPsec tunnels. • Authentication Source This database used for authentication. The choices are: • Local user database(s) • RADIUS server When using multiple sources, there are further options. The choices are: • Continue on no response from the source and try the next source in the profile. • Continue on failed validation and try validation with the next source in the profile. By default, this option is deactivated. • Load balance using round‐robin. Each authentication source will be used sequentially by sequential triggers. By default, this option is deactivated.
Authentication • Timeouts A number of timeout values can be set for the profile: • Idle timeout • Session timeout • Use timeouts sent by the authentication source • Brute Force Attack Prevention This option can be activated to control the following: • Login attempts – This is the maximum number of login attempts for a given username before a lockout occurs for that username. • Lockout time – After a lockout occurs, this is the time that must elapse before further login attempts are allowed for the locked out username. Example 1: Creating an authentication profile with a local user database This example creates an authentication profile called int_auth that will reference a local user database that has already been defined called int_users. Device:/> add AuthenticationProfile int_auth AuthSource=Local LocalUserDB=int_users Example 2: Creating an authentication profile with RADIUS servers This example creates an authentication profile called ext_auth that will reference two RADIUS ...
Page 155
Authentication RADIUS architecture The RADIUS protocol is based on a client/server architecture. The SEG acts as the client of the RADIUS server, creating and sending requests to a dedicated server(s). In RADIUS terminology the security gateway acts as the Network Access Server (NAS). For user authentication, the RADIUS server receives authentication requests and then verifies the user’s credentials by consulting its database. It then returns either an “accept” or “reject” reply to the requesting client. Configuring RADIUS servers RADIUS servers are configured as separate objects in the SEG. A RADIUS server object’s properties are: • Name A suitable logical name for the object. • IPAddress The IP address of the server. This could be an IP address object from the SEG address book. • Port The port used for the connection by the SEG. This default value is 1812. • RetryTimeout This is the length of time in milliseconds after which a RADIUS request will have assumed to fail and a retry is attempted. This value cannot be less that 500 with no upper limit. The default value is 2000. • NumRetries When a RADIUS request times out, the request is retried. This happens for NumRetries times. The retry minimum is 1 and the maximum is 10. The default is 3. • Shared Secret To provide request security, a common Shared Secret is configured on both the RADIUS client and the server. This secret enables encryption of the messages sent from the RADIUS client to the server and is commonly configured as a relatively long text string. The string can contain up to 100 characters and is case sensitive. RADIUS uses PPP to transfer username/password requests between client and RADIUS server, as well as using PPP authentication schemes such as PAP and CHAP. RADIUS ...
Authentication The RADIUS Vendor ID When configuring the RADIUS server itself to receive requests from the SEG, it is important to enter a value for the Vendor ID (vid). This value should be specified as 5089. Example: Configuring a RADIUS server In this example, a RADIUS server will be configured with an IPv4 address of 198.10.2.1 and the shared secret specified as mysecret. Device:/> add RadiusServer IPAddress=198.10.2.1 SharedSecret=mysecret Using RADIUS Authentication A RADIUS server is used for authentication with the following steps: 1. Create a RADIUS server object as described above. 2. Create an Authentication Profile object that uses the RADIUS server as its Authentication Source. 3. Associate the profile with an IP rule. When the IP rule triggers, authentication of user credentials will then be required to set up the traffic flow. The radiussnoop command To troubleshoot problems, the SEG provides the ability to examine the interactions that take place between the SEG and RADIUS servers. This is done using the CLI command radiussnoop. The command works in a similar way to the ike ‐snoop command. It is enabled from the CLI console and while it is enabled, any interactions with RADIUS servers is shown in console output messages. The amount of detail in this output can be adjusted. ...
Chapter High Availability Overview HA clusters The SEG High Availability (HA) feature provides hardware redundancy for SEG installations. HA works by adding a backup slave security gateway to an existing master security gateway. The master and slave are connected together and make up a logical HA cluster. One of the units in a cluster will be active while the other unit is inactive and on standby. The master and slave are also referred to as cluster nodes or cluster peers. Initially, the cluster slave will be inactive and will only monitor the activity of the master. If the slave detects that the master has a malfunction, an HA failover takes place and the slave becomes active, assuming processing responsibility for all traffic. If the master later becomes operative again, the slave will continue to be active but the master will now monitor the slave with a failover only taking place if the slave malfunctions. This is sometimes known as an active‐passive implementation. Master and active units When reading this section on HA, it should be kept in mind that the master unit in a cluster is not always the same as the active unit in a cluster. The active unit is the security gateway that is actually processing all traffic at a given point in time. This could be the slave if a failover has occurred. Interconnection of cluster peers In a cluster, the master and slave must be directly connected to each other by one or more synchronization connections that are known as the sync interfaces. One or more of the interfaces on the master and the slave can be dedicated for this purpose and are directly connected together using a crossover cable. Although this connection could be made via a switch, it is not recommended. The primary purpose of a sync interface is to carry state synchronization traffic between the cluster peers. Sync interfaces must not be used for normal traffic. Special Ethernet frames, known as heartbeats, are continually sent by the SEG between the peers in the cluster across the sync interfaces and any other interfaces marked as critical. These frames allow the health of both units to be monitored. Heartbeats are sent in both directions so that the passive unit knows about the health of the active unit and the active unit knows about the health of the passive. ...
Page 158
High Availability Interfaces that are not set as critical in the configuration do not have heartbeats sent over them and will not cause an HA failover if they fail. Failure of a critical interface will cause a failover to occur once the cluster has identified the failed interface. The heartbeat mechanism is discussed in more depth later in Section 14.2, “HA Mechanisms”. Cluster management When managing the individual hardware units in a cluster, you must administer them separately using management interfaces. Configuration changes are not automatically duplicated between the cluster peers unless the advanced setting AutoSyncCfg is enabled. It is possible to use the following command to manually send the configuration to the other cluster peer: Device:/> ha ‐sendconf To manually have one peer retrieve the configuration from the other cluster peer, use the command: Device:/> ha ‐recvconf Load-sharing SEG HA clusters do not provide load‐sharing since only one unit will be active at a time, and only two security gateways, the master and the slave, can exist in a single cluster. The only processing role that the inactive unit plays is to replicate the state of the active unit and to take over all traffic processing after a failover if it determines the active unit has experienced a failure. Hardware duplication SEG HA will operate only between two security gateways. As the internal operation of different security gateway manufacturer's software is completely dissimilar, there is no common method available to communicating state information to a dissimilar device. It is also strongly recommended that the security gateways used in cluster have identical configurations. Where applicable, they must also have identical licenses that allow identical capabilities including the ability to run in an HA cluster. With the SEG‐100 module, which has two individual security gateways on one blade (DPB1 and DPB2), it is not recommended to have the module be a self‐contained cluster. Instead, the corresponding processor on a separate SEG‐100 should be the cluster peer. In other words, the DPB1 processor on one module should be the peer to the DPB1 processor on another, identical module. The two blades are typically in the same chassis and use the chassis backplane to communicate.
High Availability Extending redundancy Implementing an HA cluster will eliminate one of the points of failure in a network. Routers, switches, and Internet connections can remain as potential points of failure, and redundancy for these should also be considered. HA mechanisms This section discusses in depth the mechanisms the SEG uses to implement the HA feature. Basic principles The SEG HA provides a redundant, state‐synchronized hardware configuration. The state of the active unit, which includes the flow table and other vital information, is continuously copied to the inactive unit via one or more sync interfaces. When cluster failover occurs, the inactive unit knows which connections are active, and traffic can continue to flow after the failover with negligible disruption. The inactive system detects that the active system is not operational when it no longer detects sufficient Cluster Heartbeats. Heartbeats are sent over all interfaces marked as Critical (the interface default) which always includes the sync interfaces. Heartbeats have the following characteristics: • Heartbeats are Ethernet frames and not IP packets. • Heartbeats cannot be forwarded by a router since they do not contain an IP header. • The Ethernet source and destination address is based on the cluster ID and the role of the sending and receiving unit. • The Ethernet frame type is set as 0xC14B. Heartbeat frequency The SEG sends 10 heartbeats per second (every tenth of a second) on each critical interface. Both peers send these to each other and both monitor any missed heartbeats in the following way: • If either cluster node misses 2 heartbeats (no heartbeats over 0.2 seconds) on any critical interface (which includes sync interfaces), that node enters a state known as Early Interface Failure Detection. This state means that the node will send out ARP queries on the suspect interface for previously resolved ARP entries in its ARP cache. This allows the node to determine if the failure is a failure associated with the local interface or if the ...
Page 160
High Availability Increasing heartbeat frequency Heartbeats are not sent at smaller intervals than a tenth of a second because such delays may occur during normal operation. An operation, for example, opening a file, could result in delays long enough to cause the inactive system to go active, even though the other is still active. Failover time The time for failover is typically within seconds, which means that clients may experience a failover as a slight burst of packet loss. In the case of TCP, the failover time is well within the range of normal retransmit timeouts so TCP will retransmit the lost packets within a very short space of time and continue communication. UDP does not allow retransmission since it is inherently an unreliable protocol. Shared IP addresses and ARP Both master and slave units in a cluster are aware of the shared IP addresses. However, ARP queries for the shared IP address, or any other IP address published via ARP configuration or through Proxy ARP, are answered by the active unit only. The hardware address of the shared IP address and other published addresses are not related to the actual MAC addresses of the Ethernet interfaces. Instead, a new MAC address is constructed by the SEG. The first part of the constructed address is always 10:00:00. The second part is based on the configuration and contains the cluster ID. As the shared IP address always has the same hardware address, there will be no latency time in updating ARP caches of units attached to the same LAN as the cluster when a failover occurs. When a cluster member discovers that its peer is not operational, it broadcasts gratuitous ARP queries on all interfaces using the shared MAC address as the sender. This allows switches to re‐learn within milliseconds where to send packets destined for the shared address. Therefore, the only failover delay is in detecting that the active unit is down. ARP queries are also broadcast periodically to ensure that switches do not forget where to send packets destined for the shared hardware address. ...
High Availability Setting up HA Preconditions for creating an HA cluster When setting up an SEG HA cluster, the following is required: 1. Two security gateways with identical hardware configurations running the same version of the SEG. For module‐based platforms, these should be two separate modules in the same or different shelf. One should be designated the master node, the other designated the slave node. 2. The interfaces of both cluster nodes are connected via a common switch as shown in the illustration below. The interface names on both security gateways must be identical. The sync interfaces do not need to be connected via a switch since shelf‐based platforms often provide backplane connection. Figure 11. HA cluster setup...
Page 162
High Availability Setup steps The steps necessary for cluster setup can be summarized as: 1. Ensure the EthernetDevice settings are correct. 2. Set the interface shared and private IP addresses of all interface pairs for both master and slave. 3. Set the interface type of all interface pairs for both master and slave. 4. Activate HA on both master and slave. How to perform these steps is explained next. Checking EthernetDevice settings The EthernetDevice:0 and EthernetDevice:1 properties for each interface on both master and slave should be the same and set to the Ethernet device name of the interface. The current values of these settings can be checked with the command: Device:/> show Interface EthernetInterface sfp1 Property Value ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Name: sfp1 EthernetAddress: <empty> PrivateIP: 0:<empty> 1:<empty> HAType: Critical EthernetDevice: 0:sfp1 1:<empty> MTU: 1500 IPAddress: sfp1_ip IP4Broadcast: <empty> RTBMembership: main Comments: <empty> In the example above, EthernetDevice:1 is incorrectly set to <empty>. To fix this, use the command: Device:/> set Interface EthernetInterface sfp1 EthernetDevice:1=sfp1 The device name can be the same as the interface name, as is the case here, but this is not always true. Note that the EthernetAddress value is <Empty> because the actual MAC address is being used.
Page 163
High Availability Setting interface IP addresses Each interface on both the master and slave units has two IP addresses associated with it: 1. The shared IP address The shared IP address is the address that is used during general operation of the HA cluster and is the address used in constructing configuration security policies. It is always the same for each of the interfaces in a matching pair on master and slave. If the interface sfp1 is to have the shared IPv4 address 10.6.12.1, the CLI command to set this is: Device:/> set Interface EthernetInterface sfp1 IPaddress=10.6.12.1 This command is repeated for both the master and slave. 2. The private IP address A private IPv4 address is also assigned to each interface but it is not the same for a pair of interfaces. Each interface gets a unique address so that it is possible to connect to a specific interface on a specific node in the cluster. Connection to this address could be for the purpose of SEG management or to ping the interface. For allocating the private IP, each interface has two properties associated with it: PrivateIP:0 and PrivateIP:1. PrivateIP:0 is the private IPv4 address of the master interface in an interface pair and PrivateIP:1 is the private address of the corresponding slave interface in a pair. For example, if 10.6.12.10 is the private IPv4 address of the interface sfp1 on the master and 10.6.12.11 is the private IP of interface sfp1 on the slave, the following command should be issued: Device:/> set Interface EthernetInterface sfp1 PrivateIP:0=10.6.12.10 PrivateIP:1=10.6.12.11 This command is repeated for both the master and slave and can be combined with the command for setting the shared IPv4 address. As seen in this example, it is usual to use private and shared IPv4 addresses from the same network. It may seem redundant that the private IP of both master and slave are set on both cluster nodes. However, like other elements of a configuration, these private IPv4 addresses are mirrored between master and slave. If a management interface is connected to the master and the private address PrivateIP:1 for the slave is changed only on the master, it allows the address to be automatically copied over to the slave's configuration. All interfaces in a cluster will require a shared IP but it is not necessary that every interface has a private IP. The private IP is used for SSH management access as a source IP for log messages and to allow pinging of the interface on one node in the cluster.
Page 164
High Availability Setting the interface type The HAType for each interface should be set to either Critical, NonCritical or Sync, and this setting must agree between master/slave interface pairs. At least one interface must be set as Sync. The default is Critical. Setting the interface type can be done with the same CLI command that sets the interface IP addresses. For example: Device:/> Set Interface EthernetInterface update HAType=Sync This command should be repeated for both the master and slave. Activating HA on the Master node To activate HA on the master, the following SEG properties must be set: • Role: Master. • ClusterID: A unique ID between 1 and 63. • AutoSyncCfg: Yes/No depending on if resynchronization should be automatic after reconfiguration. • Enabled: Yes This is done using the CLI command: Device:/> set HighAvailability Role=Master ClusterID=1 AutoSyncCfg=Yes Enabled=Yes The changed master configuration should finally be activated and committed. Activating HA on the Slave node To activate HA on the slave, the following SEG properties must be set: •...
Page 165
High Availability Verifying synchronization Once the slave configuration is activated, synchronization between the cluster nodes will take place. The CLI command ha will indicate that both systems are running in HA mode and that the nodes are alive. If a security gateway is not part of a HA cluster, the output when CLI command ha is applied to it will be: Device:/> ha This device is a standalone system (HA not configured) If it is the master node in an HA cluster, the output will be similar to the following: Device:/> ha This device is a HA MASTER This device is currently Active (for 48s) HA cluster peer is ALIVE HA object sync: 100% The time shown in parentheses is the length of time that the cluster node has been in its current active or inactive state. When the state changes, this time counter is reset to zero. The HA object sync percentage indicates whether the system objects are fully synchronized between the peers. Similarly, when the same CLI command is applied to the slave, the output could be something similar to: Device:/> ha This device is a HA SLAVE This device is currently Inactive (for 47s) HA cluster peer is ALIVE HA object sync: 100% When setting up HA between two SEG processor modules located in the same ATCA shelf, the recommendation is to use the Update Channel in the shelf backplane for the HA Sync connection. To do this, the master and slave modules should be arranged in pairs so that the master module of the first HA cluster and the slave for that cluster are inserted into slots linked by an update channel connection. These slot pairings are usually indicated by lines printed on the ATCA shelf exterior. Using the Update Channel in this way frees up the interface connections on the front of modules for other purposes.
High Availability HA issues The following points should be kept in mind when managing and configuring an HA cluster. All cluster interfaces need IP addresses All interfaces on both HA cluster units should have a valid private IP address object assigned to them. The predefined IP object local host could be assigned for this purpose. The requirement to assign an address is true even if an interface has been disabled. SNMP SNMP statistics are not shared between master and slave. SNMP managers have no failover capabilities. Therefore both security gateways in a cluster need to be polled separately. Logging Log data will be coming from both master and slave. This means that the log receiver will have to be configured to receive logs from both. It also means that all log queries will likely have to include both master and slave as sources which will give all the log data in one result view. Normally, the inactive unit will not be sending log entries about live traffic so the output should look similar to that from a single security gateway. Using private individual IP addresses The unique individual IP addresses of the master and slave cannot safely be used for anything but management. Using them for anything else, such as for source IPs in dynamically address translated connections or publishing services on them, will inevitably cause problems since unique IPs will disappear when the security gateway they belong to does. Changing the cluster ID Changing the cluster ID in a live environment is not recommended for two reasons. First, this will change the hardware address of the shared IPs and will cause problems for all units attached to the local LAN, as they will keep the old hardware address in their ARP caches until it times out. Such units would have to have their ARP caches flushed. Second, this breaks the connection between the security gateways in the cluster for as long as ...
Page 167
High Availability HA limitations with statistics SEG statistics are not mirrored in both the master and slave units of an HA cluster since they relate only to the individual cluster units. This means that some statistics will not reflect the values of the failed system after the failover.
Chapter Advanced Settings Flow timeout settings The settings in this section specify how long a different types of flow can remain idle before being automatically closed. A flow is idle if no data being sent through it. Please note that each flow has two timeout values: one for each direction. A connection is closed if either of the two values reaches zero. Idle TCP SYN Flow Lifetime Specifies in seconds how long a TCP flow that is not yet fully established is allowed to idle before being closed. Device:/> set Settings FlowTimeoutSettings FlowLifetimeTCPSync=60 Default: 60 Idle Established TCP Flow Lifetime Specifies in seconds how long a fully established TCP flow may idle before being closed. Flows become fully established once packets with their SYN flags off have travelled in both directions. Device:/> set Settings FlowTimeoutSettings FlowLifetimeEstablished=262144 Default: 262,144 Idle Closing TCP Flow Lifetime Specifies in seconds how long a closing TCP flow may remain idle before finally being closed. Flows reach this state when a packet with its FIN flag on has passed in any direction. Device:/> set Settings FlowTimeoutSettings FlowLifetimeTCPClosing=80 Default: 80 Idle UDP Flow Lifetime Specifies in seconds how long UDP flows may idle before being closed. This timeout value is ...
Advanced Settings Other Idle Lifetime Specifies in seconds how long flows using an unknown protocol can remain idle before they are closed. Device:/> set Settings FlowTimeoutSettings FlowLifetimeOther=130 Default: 130 Length limit settings This section contains information about the size limits imposed on the protocols directly under IP level, such as TCP, UDP, and ICMP. The values specified here apply to the IP data contained in packets. In the case of Ethernet, a single packet can contain up to 1,480 bytes of IP data without fragmentation. In addition to that, there are 20 bytes of IP header and 14 bytes of Ethernet header, which totals the maximum media transmission unit on Ethernet networks of 1,514 bytes. Max TCP Length Specifies the maximum size of a TCP packet including the header. This value usually correlates with the amount of IP data that can be accommodated in an unfragmented packet, since TCP usually adapts the segments it sends to fit the maximum packet size. However, this value may need to be increased by 20–50 bytes on some less common VPN systems. Device:/> set Settings LengthLimSettings MaxTCPLen=1480 Default: 1,480 Max UDP Length Specifies in bytes the maximum size of a UDP packet including the header. This value may well need to be quite high, since many real‐time applications use large, fragmented UDP packets. If no such protocols are used, the size limit imposed on UDP packets can probably be lowered to 1,480 bytes. Device:/> set Settings LengthLimSettings MAxUDPLen=60000 Default: 60,000 Max ICMP Length Specifies in bytes the maximum size of an ICMP packet. ICMP error messages should never exceed 600 bytes, although Ping packets can be larger if so requested. This value may be ...
Page 170
Advanced Settings Max GRE Length Specifies in bytes the maximum size of a GRE packet. GRE, Generic Routing Encapsulation, has various uses, including the transportation of PPTP, Point to Point Tunneling Protocol, data. This value should be set at the size of the largest packet allowed to pass through the VPN connections, regardless of its original protocol, plus approximately 50 bytes. Device:/> set Settings LengthLimSettings MaxGRELen=2000 Default: 2,000 Max ESP Length Specifies in bytes the maximum size of an ESP packet. ESP, Encapsulation Security Payload, is used by IPsec where encryption is applied. This value should be set at the size of the largest packet allowed to pass through the VPN connections, regardless of its original protocol, plus approximately 50 bytes. Device:/> set Settings LengthLimSettings MaxESPLen=2000 Default: 2,000 Max AH Length Specifies in bytes the maximum size of an AH packet. AH, Authentication Header, is used by IPsec where only authentication is applied. This value should be set at the size of the largest packet allowed to pass through the VPN connections, regardless of its original protocol, plus approximately 50 bytes. Device:/> set Settings LengthLimSettings MaxAHLen=2000 Default: 2,000 Max SKIP Length Specifies in bytes the maximum size of a SKIP packet. Device:/> set Settings LengthLimSettings MaxSKIPLen=2000 Default: 2,000 MaxOSPF Len Specifies the maximum size of an OSPF packet. OSPF is a routing protocol mainly used in larger LANs. Device:/> set Settings LengthLimSettings MaxOSPFLen=1480 Default: 1,480 ...
Advanced Settings Max IPIP/FWZ Length Specifies in bytes the maximum size of an IP‐in‐IP packet. IP‐in‐IP is used by Checkpoint Firewall‐1 VPN connections when IPsec is not used. This value should be set at the size of the largest packet allowed to pass through the VPN connections, regardless of its original protocol, plus approximately 50 bytes. Device:/> set Settings LengthLimSettings MaxIPIPLen=2000 Default: 2,000 Max IPsec IPComp Length Specifies in bytes the maximum size of an IPComp packet. Device:/> set Settings LengthLimSettings MaxIPCompLen=2000 Default: 2,000 Max L2TP Length Specifies in bytes the maximum size of a Layer 2 Tunneling Protocol packet. Device:/> set Settings LengthLimSettings MaxL2TPLen=2000 Default: 2,000 Max Other Length Specifies in bytes the maximum size of packets belonging to protocols that are not specified above. Device:/> set Settings LengthLimSettings MaxOtherSubIPLen Default: 1,480 Log Oversized Packets Specifies if the SEG will log occurrences of oversized packets. Device:/> set Settings LengthLimSettings LogOversizedPackets=Yes Default: Yes Fragmentation settings IP is able to transport up to 65,536 bytes of data. However, most media, such as Ethernet, cannot carry such huge packets. To compensate, the IP stack fragments the data to be sent ...
Page 172
Advanced Settings Pseudo Reass Max Concurrent Maximum number of concurrent fragment reassemblies. To drop all fragmented packets, set PseudoReass_MaxConcurrent to 0. Device:/> set Settings FragSettings PseudoReass_MaxConcurrent=1024 Default: 1024 Illegal Fragments Determines how the SEG will handle incorrectly constructed fragments. Examples of incorrectly constructed fragments are overlapping fragments, duplicate fragments with different data, and incorrect fragment sizes. Device:/> set Settings FragSettings IllegalFrags=Drop Default: DropLog Possible settings include: • Drop – Discards the illegal fragment without logging it. Also remembers that the packet that is being reassembled is “suspect,” which can be used for logging at a later time. • DropLog – Discards and logs the illegal fragment. Also remembers that the packet that is being reassembled is “suspect”, which can be used for logging at a later time. • DropPacket – Discards the illegal fragment and all previously stored fragments. Will not allow further fragments of this packet to pass through during ReassIllegalLinger seconds. • DropLogPacket – As DropPacket, but also logs the event. • DropLogAll – As DropLogPacket, but also logs additional fragments belonging to this packet that arrive during ReassIllegalLinger seconds. The choice of whether to discard individual fragments or disallow the entire packet is governed by two factors: • It is safer to discard the whole packet. • If, as the result of receiving an illegal fragment, you choose to discard the whole packet, attackers will be able to disrupt communication by sending illegal fragments during a reassembly, and in this way block almost all communication. Duplicated Fragment Data Compares the data components of a fragment if the same fragment arrives mores than once.
Page 173
Advanced Settings Failed Fragment Reassembly Specifies logging for failed reassembly attempts. Device:/> set Settings FragSettings FragReassemblyFail=LogSuspectSubseq Default: LogSuspectSubseq Reassemblies may fail due to one of the following causes: • Some of the fragments did not arrive within the time stipulated by the ReassTimeout or ReassTimeLimit settings. This may mean that one or more fragments were lost on their way across the Internet, which is a common occurrence. • The SEG was forced to interrupt the reassembly procedure due to new fragmented packets arriving and the system temporarily running out of resources. In situations such as these, old reassembly attempts are either discarded or marked as “failed.” • An attacker has attempted to send an incorrectly fragmented packet. Under normal circumstances, you would not want to log failures as they occur frequently. However, it may be useful to log failures involving “suspect” fragments. Such failures may arise if, for example, the IllegalFrags setting has been set to Drop rather than DropPacket. The following settings are available for FragReassemblyFail: • NoLog – No logging is done when a reassembly attempt fails. • LogSuspect – Logs failed reassembly attempts only if “suspect” fragments have been involved. • LogSuspectSubseq – As LogSuspect, but also logs subsequent fragments of the packet as and when they arrive • LogAll – Logs all failed reassembly attempts. • LogAllSubseq – As LogAll, but also logs subsequent fragments of the packet as and when they arrive. Dropped Fragments Specifies how the SEG will act if a packet is denied entry to the system as the result of the settings in the Rules section. Device:/> set Settings FragSettings DroppedFrags=LogSuspect ...
Page 174
Advanced Settings Duplicate Fragments Determines whether a fragment that arrives more than once should be logged. Device:/> set Settings FragSettings DuplicateFrags=LogSuspect Default: LogSuspect If a duplicate fragment arrives, this can mean either that it has been duplicated at some point on its journey to the recipient or that an attacker is trying to disrupt the reassembly of the packet. Note that DuplicateFragData can also cause such fragments to be logged if the data contained in them does not match up. Possible settings are as follows: • NoLog – No logging is carried out under normal circumstances. • LogSuspect – Logs duplicated fragments if the reassembly procedure has been affected by “suspect” fragments. • LogAll – Always logs duplicated fragments. Fragmented ICMP Determines the action taken when the SEG receives fragmented ICMP messages that are not either ICMP ECHO or ECHOREPLY. Device:/> set Settings FragSettings FragmentedICMP=DropLog Default: DropLog Other than ICMP ECHO (Ping), ICMP messages should not normally be fragmented as they contain so little data that fragmentation should never be necessary. Minimum Fragment Length Determines how small all fragments, with the exception of the final fragment, of a packet can be expressed in bytes. Device:/> set Settings FragSettings MinimumFragLength=8 Default: 8 Although the arrival of too many fragments that are too small may cause problems for IP stacks, it is usually not possible to set this limit too high. It is rare that senders create very small fragments. However, a sender may send 1480 byte fragments and a router or VPN tunnel on the route to the recipient subsequently reduces the effective MTU to 1440 bytes. This would result in the creation of a number of 1440 byte fragments and an equal number of 40 byte fragments. Because of the potential problems this can cause, the default settings in the SEG has been ...
Page 175
Advanced Settings Reassembly Timeout The number of seconds after the previous fragment in which no further fragments arrive before a reassembly attempt will be interrupted. Device:/> set Settings FragSettings ReassTimeout=65 Default: 65 Max Reassembly Time Limit The number of seconds after the first received fragment arrived before a reassembly attempt will always be interrupted. Device:/> set Settings FragSettings ReassTimeLimit=90 Default: 90 Reassembly Done Linger Limit The number of seconds after a packet has been reassembled that the SEG is able to remember reassembly. This prevents additional fragments of that packet from arriving, for example, old duplicate fragments. Device:/> set Settings FragSettings ReassDoneLinger=20 Default: 20 Reassembly Illegal Linger Limit The number of seconds the SEG is able to remember that a whole packet has been marked as illegal. This prevents additional fragments of that packet from arriving. Device:/> set Settings FragSettings ReassIllegalLinger=60 Default: 60 Reject Minimal Fragment Sends an ICMP parameter problem message when the non‐last fragment is smaller than the minimum allowed length, which is specified by IPv6MinNonFinalFragment. Device:/> set Settings FragSettings RejectMinimalFrag=No Default: No IPv6 Minimum Non-final Fragment The minimum allowed length of non‐last IPv6 fragments. ...
Advanced Settings IPv6 Nop Fragments Whether to ignore fragments when the packet is the first and last fragment at the same time (and by definition not a fragment, though it has a fragment header). Note that these packets are legal, and serves a purpose as an non‐IPv6 to IPv6 connection mechanism (see RFC 2460 for more details). Device:/> set Settings FragSettings IPv6NopFrags=Ignore Default: Ignore Local fragment reassembly settings Max Concurrent Maximum number of concurrent local reassemblies. Device:/> set Settings LocalReassSettings LocalReass_MaxConcurrent=256 Default: 256 Max Size Maximum size of a locally reassembled packet. Device:/> set Settings LocalReassSettings LocalReass_MaxSize=10000 Default: 10,000 Large Buffers Number of large (over 2,000) local reassembly buffers. Device:/> set Settings LocalReassSettings LocalReass_NumLarge=32 Default: 32 ...
Chapter I-WLAN I-WLAN overview An Interworking Wireless Access Network (I‐WLAN) is a wireless data access solution that allows data traffic to flow between WLANs and 3GPP systems. Clients accessing such a WLAN might, for example, be mobile computing devices requiring public Internet access. A SEG can facilitate this by providing interworking between the clients and a GPRS backbone. All of the backbone’s existing facilities can then be utilized including charging for data traffic flows using standard mobile billing methods. The overall solution, illustrated below, is known as I‐WLAN. Figure 12. A typical I-WLAN configuration The security gateway acts as a Tunnel Terminating Gateway (TTG) in this I‐WLAN solution, with the SEG providing interworking through its support for VPN tunneling on the client side and the GPRS Tunneling Protocol (GTP) on the GPRS backbone side. GTP is used by the SEG to communicate with a GPRS Service Support Node (GGSN) within the GPRS backbone network. GTP handles both signalling and data transfer in the network and is implemented as a layer on top of the UDP protocol. SEG GTP support means that the security gateway behaves like a Serving GPRS Support Node (SGSN), allowing traffic flows between the GPRS Backbone and the clients connected to the Access Network (usually the public Internet). As explained in more depth later, the SEG uses a feature called Stitched Interfaces to facilitate these flows. I‐WLAN clients connect to the security gateway via a VPN tunnel using IKEv2 security negotiation and IPsec encryption. Authentication of the client is by EAP‐SIM or EAP‐AKA via the security gateway to an AAA server. Authentication of the security gateway is by certificates sent to the client. ...
I-WLAN Authentication of the security gateway with certificates is done without referencing a CRL on a CA server. The gateway sends the appropriate Host Certificate to the client which then validates it against its own, preinstalled CA signed root certificate. This may require the use of Intermediate Certificates that are also sent to the client by the security gateway. The sequence of steps in this process is described later. I-WLAN components The SEG components for I‐WLAN are: • An IPsec Tunnel for remote, roaming client access to the security gateway. This is tightly coupled to a GTP tunnel using SEG Interface Stitching. • A GTP Tunnel for access to the GPRS backbone network from the security gateway. This is tightly coupled to an IPsec tunnel using SEG Interface Stitching. • The SEG should have a license installed that has GTP enabled. The current license capabilities can be examined with the CLI command. If GTP is not enabled, the license GTP tunnels, the interface stitching, and the stitched IPsec tunnels will not function. • At least one DNS server IP address must be configured in the SEG for DNS lookup. This may be located in the GPRS backbone network. GTP tunnels The principal properties for defining a GTP tunnel are listed below. Not all the available properties are included. The ones that are omitted are usually rarely changed from their defaults but can be if required. General settings • LocalEndpoint The logical IP address of the GTP interface. This is the address that will be used as the source address for GTP‐C and GTP‐U. The IP Address must be unique amongst GTP interfaces if there is more than one. • EndUserDNS If a DNS is configured for the GTP interface, this IP address will be passed back to the client. If no DNS is configured for the GTP interface, the configured DNS client for the security gateway will be used instead. ...
Page 179
I-WLAN • ResponseTimeout This parameter is a timer that specifies how soon a response is expected to be received from a GTP peer before retransmission will take place over a path for a given GTP request. If a response is not received within the specified time for a given request, the T3 response timer will expire and a retransmission of the request message will take place. The default value is 10. • TunnelLimit This parameter specifies the maximum number of allowed GTP Tunnels for the interface. The default value is 100,000. • FailedTimeout This parameter specifies how long, in seconds, a non‐responsive connection to a GGSN is kept in memory. While the connection is in memory it cannot be allocated to other clients. After the specified timeout expires, the connection becomes available again for allocation to clients. This parameter should only be used if there are multiple GGSNs sharing the same APN. The minimum value is 0. The maximum value is 65535 seconds. The default value is 0 (disabled). • PathCheck This parameter is a timer frequency that specifies when GTP interface paths should be checked to verify the functioning of GTP peers. The default value is 60. • UsePreferredIP Negotiate the end user address using the IP address proposed by the client. The default value is No. • ResolveAPN This parameter specifies how often an APN is resolved in seconds. If this parameter is set, the GTP interface will resend DNS queries for the APNs used by the connected clients at the specified interval. A value of 0 (the default) specifies that resending is not done and the setting is ignored. The minimum value is 0. The maximum value is 65535 seconds. The default value is 0 (disabled). This settings should not be too low because the DNS servers will be bombarded with queries. It should also not be too high otherwise clients will not receive updated IP addresses from APN resolution in time. Normally, this feature is turned off (a setting of 0). It should be enabled if the IP addresses ...
Page 180
I-WLAN • SeqNumberCheck This option enables the sequence number check method to determine if received PDUs are valid. The default value is No. • GGSNDynIP This specifies whether an IP address will be passed to a GGSN when establishing GTP Tunnels requesting an IP to be used for the client, or if an IP address will be dynamically assigned to the client by the GGSN. The default value is No. • ShortAPNDNS If enabled, this option specifies that only the first label of the APN in the tunnel establishment is to be used for DNS resolution of the GGSN’s IP addresses. The default value is No. • ShortAPNGGSN If enabled, send only the first label in the APN to the GGSN. The default value is No. • InterceptDHCPInform When this option is enabled, the GTP interface will intercept DHCPINFORM messages from the client and respond with the P‐CSCF address received during the PDP context activation process. • SelectionMode This option indicates the origin of the APN. The possible settings are: • 0 – MS or network provided APN, subscription verified. • 1 – MS provided APN, subscription not verified (the default). • 2 – Network provided APN, subscription not verified. Quality of Service (QoS) settings • TrafficClass This option specifies the requested Traffic Class to send to a GGSN when establishing GTP Tunnels. ...
I-WLAN Charging This is a set of 16 vendor‐specific flags that specify vendor‐specific triggers to send to a GGSN when establishing GTP Tunnels. In practice, many of the above settings don’t need to be changed for many I‐WLAN deployments since the default values are appropriate. Interface selection for GTP tunnels The Ethernet interface where a GTP tunnel starts is not specified in the GTP tunnel definition. The interface is determined by the SEG as follows: • The LocalID of the IPsec tunnel is resolved to the IP address of the GGSN using the configured DNS server. • The GGSN IP address is then looked up in the routing table to determine which Ethernet interface will be used. • The defined interface stitching between the IPsec tunnel and the GTP tunnel causes the SEG to set up a new GTP tunnel on that Ethernet interface. If the IPsec tunnel LocalID is not specified in the tunnel definition, the IDr sent by the client is instead resolved on its own by the DNS server to obtain the GGSN IP address. If both are available, the logical intersection of the two is used. Interface stitching The SEG feature of Interface Stitching is important to implementing I‐WLAN. It involves tightly coupling together a pair of SEG interfaces so that they have the following characteristics: • Arriving traffic at one interface becomes the exiting traffic at the other in the pair without reference to routing tables. • Traffic flows are still subject to normal rule sets such as IP rules. • One interface in the pair cannot function without the other. When the interface pair consists of an I‐WLAN IPsec tunnel and a GTP tunnel (a tunnel is a type of interface in the SEG), one cannot function without the other. Should the IPsec tunnel be taken down, the stitched GTP tunnel will also not function. If multiple I‐WLAN tunnels are configured there needs to be a GTP tunnel for every I‐ WLAN IPsec tunnel as these can only be stitched together on a one‐to‐one basis. ...
I-WLAN To set up a stitched interface pair, the StitchedInterface= property for each interface is set to the other interface in the pair. With I‐WLAN for example, a GTP tunnel may be set up as follows: Device:/> add Interface GTPInterface Gn LocalEndpoint=gn_ip InterceptDHCPInform=Yes StitchedInterface=MS The IPsec tunnel in the pair is then defined as: Device:/> add Interface IPsecTunnel MS " " StitchedInterface=Gn Using IP rules It is important in an I‐WLAN setup to create the appropriate IP rules in the main SEG IP rule set. These rules consist of Deny rules that prevent traffic flowing between particular components of the network, as well as Allow rules which explicitly permit traffic flow. At minimum, IP rules should perform the following functions for I‐WLAN: 1. Prevents communication between external clients. 2. Allow DNS lookup to be performed by clients. 3. Allow HTTP traffic to flow from clients to the public Internet. Adding client routing As clients connect in a I‐WLAN solution, there has to be a route for the client in the relevant SEG routing table (usually the main table). This routes the IP address handed out to the client by the GGSN through the IPsec tunnel to the client. There are two ways this route can exist: • A separate route can be added automatically every time a client connects by enabling the IPsec tunnel option AddRouteToRemoteNetwork. • A single static route is added manually. This routes the entire network range used for client IP addresses on the IPsec tunnel object (which is treated like an interface in the SEG). The number of connected clients can usually become large with I‐WLAN, so the second option of manually adding a static route is recommended. This avoids the processing overhead of ...
I-WLAN Certificates with I-WLAN In I‐WLAN scenarios, certificates are used so that the roaming clients can authenticate the SEG when communications are established. This can involve certificate chains so any intermediate certificates that are required to complete the validation chain should be uploaded to the SEG. There is no requirement for the client to contact a CA server as a Certificate Revocation List (CRL) is not used. Authentication of the security gateway occurs as follows: • The connecting client calculates and sends a hash of its root certificate to the SEG. At this point the client only has a CA signed root certificate. • Using the hash, the SEG scans all the certificates used with its IPsec tunnels until it finds a host certificate that can be validated by the client. • This certificate is now sent to the client and is also referred to as the Host Certificate. Any intermediate certificates that are needed to form a chain between the host certificate and the client's root certificate are also sent. • The client then authenticates the sender by creating a signing chain to its own CA signed root certificate. The use of intermediate certificates in these steps means that it will always be possible for a client to authenticate the host certificate even though the clients root certificate cannot be changed. Two cryptographic suites must be specified For proposal lists for IKE and IPsec with I‐WLAN, the 3GPP standard specifies that two different cryptographic suites must be specified for each. This means that the IPsec tunnel IKE and IPsec proposal lists must each contain two different proposals and these proposals should not have any algorithms in common. Recommended algorithm combinations can be found in the SEG‐100 Getting Started Guide. End User DNS server lookup The SEG provides an End User DNS server address to clients. This can either be received ...
I-WLAN Sending the P-CSCF address Following completion of an IKE negotiation, clients send a DHCP request to the SEG through the now established IPsec tunnel. The SEG will respond to this with the P‐CSCF (SIP server) address. The option exists for the SEG to either intercept and respond to the client DHCP requests it receives or to ignore them. The recommendation is to intercept them by enabling the setting Intercept DHCPINFORM messages from clients that request P‐CSCF information. When this intercept option is enabled, it is also required to supply a Fake DHCP Server address. This IP address is then used in two instances: • It is sent to clients during the IKE negotiation of the tunnel. Clients therefore know the address to which to send their DHCPINFORM messages and therefore only unicast their DHCPINFORM messages. The SEG will only intercept DHCPINFORM messages destined for the fake DHCP Server address. • It will be sent by the SEG in the response packet when responding to a client DHCPINFORM message. If the GGSN does not supply a P‐CSCF address then it responds with a 0.0.0.0 address. Support for multiple GGSNs It is possible to use multiple GGSNs networked through a single SEG. This can be implemented in the following ways: • Using DNS Round‐robin It is possible to have a different GGSN IP handed out in a round‐robin fashion. This is done with the following steps: 1. Enable the option RoundRobinDNS on the GTP tunnel object. 2. Have the multiple GGSN IP addresses configured on the DNS server. This option is provides a way load balancing between the GGSN servers. • Using Multiple IPsec/GTP Pairs It is also possible to have multiple pairs of IPsec/GTP tunnels, where each pair uses a different GGSN. Since the APN must be different for each GGSN, the Subject Alternative Name field of the ...
Appendix Glossary of Terms The IEEE 802.3 specification for 10 Mbps Ethernet over two pairs of Cat 10BaseT 3 or better UTP (unshielded twisted‐pair) cable, up to 200 m. A set of media specifications, which include 100Base‐TX, 100Base‐T4 100BaseT and 100Base‐FX. Also known as Fast Ethernet. The IEEE 802.3 specification for Gigabit Ethernet over four pairs of Cat 1000BaseT 5E or better UTP cable, up to 100 m length. Triple‐DES and Triple Data Encryption Algorithm or TDEA. 3DES Area Border Router. ABR Access Control List. ACL An ActiveX object is HTTP component, which is downloaded and ActiveX executed on the client computer. Advanced Encryption Standard. A 128 block size with key lengths of 128‐ 256 bits. Application Layer Gateway. ALG Address Resolution Protocol. A protocol for mapping an IP address to a ARP physical machine address e.g. MAC‐addresses. Autonomous System. AS Autonomous System Boundary Routers. ASBRs Backup Designated Router. BDR Blowfish (40‐448 bits) A 64‐bit block cipher with key length variable between 32 and 448 bits. Bootstrap Protocol. BOOTP For symmetric‐key ciphers, a brute force attack typically means a brute‐...
Page 186
Glossary of Terms A certificate is a digital proof of identity. Certificate Challenge Handshake Authentication Protocol. CHAP Cipher is a method of encrypting text (to produce cipher text) in which Cipher a cryptographic key and algorithm are applied to a block of data (for example, 64 contiguous bits) at once as a group rather than to one bit at a time. Certificate Revocation Lists. A certificate revocation list (CRL) contains a CRL list of all certificates that has been cancelled before their expiration date. Data Encryption Standard. DES is a US Federal Information Processing DES Standard (FIPS) that defines the Data Encryption Algorithm (DEA). The term DES is also commonly used when referring to the algorithm. The algorithm itself is a symmetric block cipher with a block size of 64 bits and a key length of 64 bits (of which 8 are parity bits). Diffie‐Hellman key exchange A method for key exchange between two parties. This method can be used to generate an unbiased secret key over an insecure medium. The method has many variants. A well known attack called the man‐in‐the‐ middle attack forces the use of digital signatures or other means of authentication with the Diffie‐Hellman protocol. A dictionary attack is a method of breaking into a password‐protected Dictionary attack computer or server by systematically entering every word in a dictionary as a password. A dictionary attack can also be used in an attempt to find the key necessary to decrypt an encrypted message or document. Differentiated Services. Differentiated Services (DiffServ, or DS) is a Diff‐Serv protocol for specifying and controlling network traffic by class so that certain types of traffic get precedence ‐ for example, voice traffic, which requires a relatively uninterrupted flow of data, might get precedence over other kinds of traffic. Denial of service (DoS) ...
Page 187
Glossary of Terms By encrypting a digest of a message with the private key, authentication Digital signature can later be performed by applying the public key to an encrypted digest (digital signature) and comparing the result to the digest of the message. Digital Signature Algorithm (DSA) DSA is a public‐key algorithm for digital signatures. The DSA algorithm was invented by the U.S. National Security Agency (NSA) and it is defined by NIST in FIPS 186‐2. Digital Signature Standard (DSS) The U.S. digital signature standard defined by National Institute of Standards and Technology (NIST). It is a standard for digital signatures using the DSA public‐key algorithm and the SHA‐1 hash algorithm. Distinguished Encoding Rules (DER) The Distinguished Encoding Rules, defined in ITU‐T X.690, describe a way of converting structures of ASN.1 into binary data. DER is a subset of BER and guarantees unique representation in binary for every ASN.1 structure. Demilitarized zone. In computer networks, a DMZ (demilitarized zone) DMZ is a computer host or small network inserted as a “neutral zone” between a company's private network and the outside public network. It prevents outside users from getting direct access to a server that has company data. Distinguished Name (DN) A distinguished name belongs to the X.500 Directory terminology. It declares a name that can be distinguished from other names in the directory. In that sense that name does not have to be unique. Often these names are seen encoded using the LDAP format for example “CN=John Doe, O=Some Organization, C=US”, however, the actual names are ASN.1 objects. Dead Peer Detection. Method to check if peer is alive for an IPsec flow. DPD Daylight Saving Time is the practice of turning the clock ahead as DST warmer weather approaches and back as it becomes colder again so ...
Page 188
Glossary of Terms Extensible Authentication Protocol/Subscriber Identity Module; EAP/SIM utilizing IKEv2. A security mechanism used for the transformation of data from an Encryption intelligible form (plaintext) into an unintelligible form (ciphertext), to provide confidentiality. The inverse transformation process is called decryption. A human user or an application to whom a certificate is issued. The end End entity entity has also the private key counterpart of the public key in the certificate. Encapsulating Security Payload. An upper level IP header that denotes ESP that the contents of the payload are encrypted and possibly also otherwise protected. An ESP may appear after the IP header, after an ESP header or theoretically also elsewhere within an IP packet. An ESP only protects the contents of the payload, not any associated header. Therefore it is possible, for example, to change any field in the header of the IP packet carrying an ESP without causing a security violation. The contents of the ESP header are unknown to anyone not possessing information about the transformation and SA needed to recover the protected data. An ESP may also contain integrity protection. The ESP protocol is defined in RFC 2406. A node located on the perimeter of an administrative domain that Firewall implements the security policy of the domain. A firewall usually performs address and port‐based packet filtering and usually has proxy servers for e‐mail and other services. Generic Access Network. GAN Gateway GPRS Support Node. GGSN A family of IEEE 802.3 standards capable of transmitting data at 1 Gbps Gigabit Ethernet (1000 Mbps). See 1000BaseT. Generic Routing Encapsulation. A tunneling protocol which GRE ...
Page 189
Glossary of Terms In a packet‐switching network, a hop is the trip a data packet takes from Hop one router or intermediate point to another in the network. On the Internet (or a network that uses TCP/IP), the number of hops a packet has taken toward its destination (called the “hop count”) is kept in the packet header. A packet with an exceedingly large hop count is discarded. HTTP Poster is a function to enable automatic client login, or domain HTTP Poster names and IP addresses update for DynDNS. When the firewall has parsed its configuration, the HTTP Poster posts all configured URLs in turn, and will wait a configurable delay time to re‐post the URLs. Authentication via secure web browsing. Similar to HTTP agent except HTTPS that Host and Root Certificates are used to establish SSL flow to the security gateway. Identification Lists (ID Lists) When X.509 certificates are used as authentication method, the SEG will accept all remote end points or IPsec clients that are capable of presenting a certificate signed by any of the trusted Certificate Authorities (CAs). Intrusion Detection System. Intrusion detection is a type of security IDS management system for computers and networks. An ID system gathers and analyzes information from various areas within a computer or a network to identify possible security breaches, which include both intrusions (attacks from outside the organization) and misuse (attacks from within the organization). Internet Key Exchange. This is an IPsec (Internet Protocol Security) IKE standard protocol used to ensure security for virtual private network (VPN) negotiation and remote host or network access. International Mobile station Equipment Identity. IMEI International Mobile Subscriber Identity. IMSI The 32‐bit host address defined by the Internet Protocol in RFC 791. It IPv4 address ...
Page 190
Glossary of Terms IP Security. With IPsec the data traffic can be protected on IP level. IPsec IPsec is a vendor independent security architecture from the standardization organization IETF. An IP sub‐network (or sub‐net is a division of network elements in a IP sub‐network network, based on their IP address and subnet mask. IP spoofing, also known as IP address forgery or a host file hijack, is a IP spoofing hijacking technique in which a cracker masquerades as a trusted host to conceal his identity, spoof a Web site, hijack browsers, or gain access to a network. Here's how it works: The hijacker obtains the IP address of a legitimate host and alters packet headers so that the legitimate host appears to be the source. Tunneling means repackaging of information in form of normal TCP/IP IP tunneling packets, inside and then routing them through the Internet within a VPN (Virtual Private Network). In this way you can make up an inexpensive global private network. Layer Two Tunneling Protocol (L2TP) is an extension of the Point‐to‐ L2TP Point Tunneling Protocol (PPTP) used by an Internet service provider (ISP) to enable the operation of a virtual private network (VPN) over the Internet. In the Point‐to‐Point Protocol (PPP), the Link Control Protocol (LCP) LCP establishes, configures, and tests data‐link Internet connections. Lightweight Directory Access Protocol (LDAP). LDAP is a directory access LDAP protocol defined in RFC 2251 and RFC 1777 for accessing directories that support the X.500 Directory model, while not incurring the resource requirements of the X.500 Directory Access Protocol (DAP). Long Term Evolution (LTE) is the trademarked project name of a high LTE performance air interface for cellular mobile telephony. Man‐in‐the‐middle‐attack In cryptography, a man‐in‐the‐middle attack (MITM) is an attack in which an attacker is able to read, insert and modify at will, messages ...
Page 191
Glossary of Terms Message Digest 5. A message‐digest algorithm developed by Ron Rivest MD5 of RSA Security. It computes a secure, irreversible, cryptographically strong 128‐bit hash value for a document. The algorithm is documented in RFC 1321. Microsoft Challenge Handshake Authentication Protocol version 1. MS‐CHAP v1 Authentication for PPP connections between a computer using a Microsoft Windows operating system and a network access server (NAS). See MS‐CHAP v1. MS‐CHAP v2 Microsoft Point‐to‐Point Encryption. Protocol which provides MPPE confidentiality to the tunneling. MPPE may be used with PPTP to support an encrypted data tunnel.MPPE uses the RSA RC4 algorithm for encryption and supports 40‐bit, 56‐bit and 128‐bit session keys, which are changed frequently to ensure security. IPsec and NAT do not normally work together, as IPsec consider the NAT‐T NAT‐Traversal packet processing of NAT as a violation of communications integrity. NAT‐Traversal works by encapsulating the IPsec packets into UDP envelopes that contain information on recreating the IPsec packet. The UDP traffic follows the same route as the IKE negotiation. Network Control Protocols. (NCPs) can be used to transport traffic for a NCP particular protocol suite, so that multiple protocols can interoperate on the same link, for example, both IP and IPX traffic can share a PPP link. Password Authentication Protocol. PAP is a plaintext authentication PAP scheme by requesting and sending user name and password in plaintext. Path Maximum Transfer Unit. Different from the MTU in the sense that Path MTU Path MTU is bound to the source and destination addresses of the network. Path MTU discovery is discussed in RFC 1191. Policy Based Routing is an extension to normal routing which offers PBR ...
Page 192
Glossary of Terms PFS Perfect Forward Secrecy Refers to the notion that any single key being compromised will permit access to only data protected by that single key. In order for PFS to exist, the key used to protect transmission of data must not be used to derive any additional keys. If the key used to protect transmission of data was derived from some other keying material, that material must not be used to derive any more keys. Also referred to as public‐key forward secrecy (PFS). A Pipe is a central concept in the traffic shaping functionality of the SEG Pipe and is the basis for all bandwidth control. Pipes are fairly simplistic in that they do not know much about the types of traffic that pass through them, and they know nothing about the direction either. A pipe simply measures the amount of traffic that passes through it and applies the configured limits in each precedence and/or user group. The task of traffic filtering, categorizing, and prioritizing is done by Pipe Rules covered in the next section. Public‐Key Cryptography Standards. The PKCS standards are a PKCS document series from RSA Laboratories. Some of the most important PKCS standards include PKCS #1 for RSA encryption and signature formats, PKCS #7 for cryptographic message encapsulation, PKCS #10 for certification requests, and PKCS #11 for a cryptographic token interface commonly used with smart cards. Public‐Key Infrastructure (X.509); a collective name for an architecture PKIX and set of protocols based on X.509, drafted by an IETF working group of the same name. Point‐to‐Point Tunneling Protocol (PPTP) is a protocol (set of PPTP communication rules) that allows corporations to extend their own corporate network through private “tunnels” over the public Internet. In public‐key cryptography the private key is only known to the holder, Private key and it can be used to sign and decrypt messages. Proxy ARP is the process in which one system responds to the ARP Proxy ARP request for another system. For example, host A sends an ARP request ...
Page 193
Glossary of Terms Pre‐Shared Key. With pre‐shared key authentication, an identical PSK symmetric key must be manually configured on both systems. The shared key is a secret passphrase, normally a string of ASCII characters or a set of random Hexadecimal numbers. Both endpoints need to have the same key defined and the key must be kept secret. The pre‐shared key is used only for the primary authentication; the two negotiating entities then generate dynamic shared session keys for the IKE SAs and IPsec SAs. In public‐key cryptography the public key, which is included in the Public key certificate, can be used to verify signatures and encrypt messages. Public‐key cryptography In contrast to symmetric (secret‐key) cryptography with just one cipher key, in public‐key cryptography each person or host has two keys. One is the private key, which is used for signing outgoing messages and decrypting incoming messages, the other is the public key, which is used by others to confirm the authenticity of a signed message coming from that person and for encrypting messages addressed to that person. The private key must not be available to anyone but its owner, but the public key is spread via trusted channels to anyone. Remote Authentication for Dial in User Service. An Internet protocol RADIUS providing authentication, authorization and accounting. It is primarily used for dial access. RADIUS is defined in RFC 2138 and RFC 2139. Designed by Joan Daemen and Vincent Rijmen, Rijndael is a symmetric Rijndael block cipher with a variable block size of 128, 192, or 256 bits and a variable key length of 128, 192, or 256 bits. Rijndael is the algorithm used in the U.S. Advanced Encryption Standard (AES), however, in AES only the 128‐bit block size is used. A round robin is an arrangement of choosing all elements in a group Round‐Robin equally in some rational order, usually from the top to the bottom of a list and then starting again at the top of the list and so on. A simple way to think of round robin is that it is about “taking turns.” Used as an adjective, round robin becomes “round‐robin.” The route failover feature can be used when there is two or more routes ...
Page 194
Glossary of Terms A routing table is a set of rules, often viewed in table format, that is used Routing Table to determine where data packets traveling over an Internet Protocol (IP) network will be directed. All IP‐enabled devices, including routers and switches, use routing tables. A public‐key encryption and digital signature algorithm, invented by RSA Ron Rivest, Adi Shamir, and Leonard Adleman. Security Association. A unidirectional connection created for security SA purposes. All traffic traversing an SA is provided the same security processing. In the IPsec context, an SA is an Internet layer abstraction implemented through the use of an AH or ESP. It contains data controlling how a transformation is applied to an IP packet. The data is determined using specially defined SA management mechanisms. The data may be a result of an automated SA and key negotiation or it may be defined manually. This term is defined in RFC 2401. Static Address Translation (SAT). SAT is a type of address translation in SAT which a public IP address is statically mapped to a private IP address. Dynamic NAT is normally used for outgoing traffic, while SAT is used for incoming traffic. Security Gateway. An intermediate system that acts as the SEG communications interface between two networks. The internal sub networks and hosts served by a security gateway are presumed to be trusted because of shared local security administration. A United States standard for a cryptographically strong hash algorithm, SHA designed by National Security Agency (NSA) and defined by National Institute of Standards and Technology (NIST). Server Load balancing. SLB is a mechanism dealing with distributing the SLB traffic load across multiple servers to scale beyond the capacity of one single server, and to tolerate a server failure. This technology is integrated in the SEG to enable high performance and throughput of the network. Defined by RFC 2030, The Simple Network Time Protocol (SNTP) is a ...
Page 195
Glossary of Terms Sender Policy Framework (SPF) is an anti‐spam approach in which the SPF Internet domain of an e‐mail sender can be authenticated for that sender, thereby discouraging spam mailers, who routinely disguise the origin of their e‐mail, a practice known as e‐mail spoofing. SPF and other anti‐spoofing initiatives, such as Domain Keys, work by making it easier for a mail server to determine when a message came from a domain other than the one claimed. Clever attackers make tricks to fool the firewall by pretending the Spoofing identity of a trust host, which is the so called Spoofing technique. To reduce the flooding traffic of external routes advertisement, a Stub area special area called “stub area” can be configured. When a stub area is configured, the ABR will automatically advertise a default route so that routers in the stub area can reach destinations outside the area. The default route becomes the single exit point of the stub area, and the area will not accept broadcasts of external routes. SYN flooding is a method that the user of a hostile client program can SYN flooding use to conduct a denial‐of‐service (DoS) attack on a computer server. The hostile client repeatedly sends SYN (synchronization) packets to every port on the server, using fake IP addresses. Transport Layer Security (TLS) Transport Layer Security is a protocol providing confidentiality, authentication, and integrity for stream‐like connections. It is typically used to secure HTTP connections. The protocol is being standardized by a working group of the IETF. In Transparent Mode, the SEG will be completely invisible for hosts in Transparent mode the network, with the exception that packets that are not allowed by the firewall rule set will be dropped. A strong and fast block cipher designed by Bruce Schneier. Twofish was Twofish one of the five final candidates for the United States government's new cipher standard, AES (Advanced Encryption Standard). Twofish uses a block size of 128 bits and a key length of up to 256 bits. Traffic Shaping is a mechanism that alters the traffic characteristics of a ...
Page 196
Glossary of Terms Unlicensed Mobile Access. UMA UMA Network Controller. UNC Virtual Private Network. Secure communication between multiple VPN networks or network devices using insecure public networks, such as the Internet. A connection over the Internet between a user connected on a remote VPN tunnel site and a security gateway. A VPN provides privacy only so to ensure security all IP packets are encrypted and sometimes encapsulated into another IP packet. Virtual Link. VLink The family of joint ITU‐T/ISO standards defining the X.500 Directory. X.500 The directory can be used for many applications, such as storing certificates, or information about people. LDAP is often used to access the X.500 Directory. The ITU‐T X.509 recommendation defines the formats for X.509 X.509 certificates and X.509 CRLs. Different X.509 applications are further defined by the PKIX Working Group of the IETF. These include X.509 version 3 public‐key certificates and X.509 version 2 CRLs. EXtended Ciphertext Block Chaining. XCBC ...
Appendix OSI Model Overview The Open Systems Interconnection (OSI) model defines a framework for inter‐computer communications. It categorizes different protocols for a great variety of network applications into seven smaller, more manageable layers. The model describes how data from an application in one computer can be transferred through a network medium to an application on another computer. Control of data traffic is passed from one layer to the next, starting at the application layer in one computer, proceeding to the bottom layer, traversing over the medium to another computer and then delivering up to the top of the hierarchy. Each layer handles a certain set of protocols, so that the tasks for achieving an application can be distributed to different layers and be implemented independently. The model is relevant to understanding many aspects of the SEG, such as ARP and services. Table 1. The 7 layers of the OSI model Layer number Layer purpose Layer 7 Application Layer 6 Presentation Layer 5 Session Layer 4 Transport Layer 3 Network Layer 2...
Page 198
OSI Model Layer 4 – Transport Layer Controls data flow and provides error‐handling. Protocols: TCP, UDP and similar. Layer 3 – Network Layer Performs addressing and routing. Protocols: IP, OSPF, ICMP, IGMP and similar. Layer 2 – Data‐Link Layer Creates frames of data for transmission over the physical layer and includes error checking/correction. Protocols: Ethernet, PPP and similar. ARP operates at this level. Layer 1 – Physical Layer Defines the physical hardware connection. ...
Need help?
Do you have a question about the SEG-100 and is the answer not in the manual?
Questions and answers