Fortinet FortiADC D-Series Handbook


Add to my manuals
470 Pages

advertisement

Fortinet FortiADC D-Series Handbook | Manualzz

FortiADC Handbook

VERSION 4.6.1

FORTINET DOCUMENT LIBRARY http://docs.fortinet.com

FORTINET VIDEO GUIDE http://video.fortinet.com

FORTINET BLOG https://blog.fortinet.com

CUSTOMER SERVICE & SUPPORT https://support.fortinet.com 

FORTIGATE COOKBOOK http://cookbook.fortinet.com

FORTINET TRAINING SERVICES http://www.fortinet.com/training

FORTIGUARD CENTER http://www.fortiguard.com

END USER LICENSE AGREEMENT http://www.fortinet.com/doc/legal/EULA.pdf

FEEDBACK

Email: [email protected]

Wednesday, May 31, 2017

FortiADC Handbook 4.6.1

First Update

TABLE OF CONTENTS

Change Log

Introduction

Features

Basic network topology

Scope

Chapter 1: What’s New

FortiADC 4.6.1

FortiADC 4.6.0

FortiADC 4.5.3

FortiADC 4.5.2

FortiADC 4.5.1

FortiADC 4.5.0

FortiADC 4.4.0

FortiADC 4.3.1

FortiADC 4.3.1

FortiADC 4.3.0

FortiADC 4.2.3

FortiADC 4.2.1

FortiADC 4.2.0

FortiADC 4.1

FortiADC 4.0 Patch 2

FortiADC 4.0 Patch 1

FortiADC 4.0

FortiADC 3.2.0

FortiADC 3.1.0

FortiADC 3.0.0

FortiADC 2.1.0

Chapter 2: Key Concepts and Features

Server load balancing

Feature Summary

Authentication

Caching

Compression

Content rewriting

12

13

13

13

14

16

16

23

23

23

24

24

21

21

22

18

19

20

16

18

18

25

26

26

24

24

25

27

27

27

28

28

29

29

Content routing

Scripting

SSL transactions

Link load balancing

Global load balancing

Security

High availability

Virtual domains

Chapter 3: Getting Started

Step 1: Install the appliance

Step 2: Configure the management interface

Step 3: Configure basic network settings

Step 4: Test connectivity to destination servers

Step 5: Complete product registration, licensing, and upgrades

Step 6: Configure a basic server load balancing policy

Step 7: Test the deployment

Step 8: Back up the configuration

Chapter 4: Server Load Balancing

Server load balancing basics

Server load balancing configuration overview

Configuring real server SSL profiles

Using real server pools

Configuring real server pools

Example: Using port ranges and the port 0 configuration

Configuring persistence rules

Configuring content routes

Using content rewriting rules

Overview

Configuring content rewriting rules

Example: Redirecting HTTP to HTTPS

Example: Rewriting the HTTP response when using content routing

Example: Rewriting the HTTP request and response to mask application details

Example: Rewriting the HTTP request to harmonize port numbers

Configuring compression rules

Using caching features

Static caching

Dynamic caching

Configuring caching rules

Configuring Application profiles

Configuring error pages

Using source pools

Configuring source pools

40

42

45

33

36

40

48

50

86

88

90

91

93

75

76

78

61

66

67

73

75

50

53

56

61

97

121

121

122

93

95

95

29

29

29

30

30

30

30

31

32

32

Example: DNAT

Example: full NAT

Example: NAT46 (Layer 4 virtual servers)

Example: NAT64 (Layer 4 virtual servers)

Example: NAT46 (Layer 7 virtual servers)

Example: NAT64 (Layer 7 virtual servers)

Configuring auth policies

Configuring methods

Configuring an L2 exception list

Using the Web Category tab

Creating a Web Filter Profile configuration

Configuring virtual servers

TCP multiplexing

Using scripts

Create a script object

Import a script

Export a script

Delete a script

Chapter 5: Link Load Balancing

Link load balancing basics

Using link groups

Using virtual tunnels

Link load balancing configuration overview

Configuring gateway links

Configuring persistence rules

Configuring proximity route settings

Configuring a link group

Configuring a virtual tunnel group

Configuring link policies

Chapter 6: Global Load Balancing

Global load balancing basics

Global load balancing configuration overview

Configuring servers

Configuring a global load balance link

Configuring data centers

Configuring hosts

Configuring virtual server pools

Configuring dynamic proximity

Configuring persistence

Configuring an address group

Configuring remote DNS servers

Configuring the DSSET list

148

148

148

149

151

153

154

156

158

160

162

164

135

136

137

138

138

144

145

146

124

125

126

128

130

132

133

146

146

147

164

166

168

171

172

173

174

176

177

178

179

180

Configuring DNS zones

Configuring DNS64

Configuring the response rate limit

onfiguring a Global DNS policy

Configuring general settings

Configuring the trust anchor key

Chapter 7: Network Security

Security features basics

Managing IP Reputation policy settings

Configure IP reputation exception

Using the Geo IP block list

Using the Geo IP whitelist

Enabling denial of service protection

Configuring a firewall policy

Configuring the firewall connection limit

Chapter 8: Web Application Firewall

Web application firewall basics

Web application firewall configuration overview

Predefined configuration elements

Severity

Exceptions

Configuring a WAF Profile

Configuring a Web Attack Signature policy

Configuring a URL Protection policy

Configuring an HTTP Protocol Constraint policy

Configuring an SQL/XSS Injection Detection policy

Configuring WAF Exception objects

Configuring a Bot Detection policy

Chapter 9: Authentication Management

Configuring user groups

Using the local authentication server

Using an LDAP authentication server

Using a RADIUS authentication server

Using Kerberos Authentication Relay

Authentication Workflow

Step 1: Client authentication

Step 2: Client service authorization

Step 3: Client service request

FortiADC Kerberos authentication implementation

Configure Authentication Relay (Kerberos)

Configure SAML authentication

Import IDP metadata

203

208

209

213

215

216

199

200

201

201

201

201

219

219

224

224

224

225

225

226

220

221

222

223

223

223

190

190

192

193

194

195

196

197

199

180

184

185

186

187

189

190

Configure SAML authentication

Chapter 10: Shared Resources

Configuring health checks

Creating schedule groups

Creating IPv4 address objects

Configuring IPv4 address groups

Creating IPv6 address objects

Configuring IPv6 address groups

Managing ISP address books

Create an ISP address book object

Creating service objects

Creating service groups

Chapter 11: Basic Networking

Configuring network interfaces

Using physical interfaces

Using VLAN interfaces

Using aggregate interfaces

Configuring network interfaces

Configuring static routes

Configuring policy routes

Chapter 12: System Management

Configuring basic system settings

Configuring system time

Configuring an SMTP mail server

Configuring FortiGuard service settings

Pushing/pulling configurations

Backing up and restoring the configuration

Updating firmware

Upgrade considerations

Updating firmware using the web UI

Updating firmware using the CLI

Rebooting, resetting, and shutting down the system

Create a traffic group

Create a traffic group via the command line interface

Create a traffic group from the Web GUI

Create administrator users

Configure access profiles

Enable password policies

Configuring SNMP

Download SNMP MIBs

Configure SNMP threshold

Configure SNMP v1/v2

246

246

246

247

247

248

253

254

256

256

264

264

266

267

268

269

269

270

257

259

259

261

262

263

272

275

276

277

278

278

226

228

228

235

236

237

238

239

240

242

243

244

Configure SNMP v3

Manage and validate certificates

Overview

Prerequisite tasks

Manage certificates

Generating a certificate signing request

Importing local certificates

Creating a local certificate group

Importing intermediate CAs

Creating an intermediate CA group

Validating certificates

Configure a certificate verification object

Importing CRLs

Adding OCSPs

Importing remote certificates

Importing CAs

Creating a CA group

Chapter 13: Logging and Reporting

Using the event log

Using the security log

Using the *traffic log

Configuring local log settings

Configuring syslog settings

Configuring high speed logging

Enabling real-time statistics

Configuring alert email settings

Configuring an alert email recipient

Configuring reports

Configuring Report Queries

Configuring fast reports

Using reports

Display logs via CLI

Chapter 14: High Availability Deployments

HA feature overview

HA system requirements

HA synchronization

Configuring HA settings

Monitoring an HA cluster

Updating firmware for an HA cluster

Deploying an active-passive cluster

Overview

Basic steps

335

335

339

340

341

346

348

349

349

351

326

327

328

328

329

332

333

334

300

307

313

321

323

325

288

288

289

290

290

293

294

296

297

298

280

281

282

282

283

284

286

300

Best practice tips

Deploying an active-active cluster

Configuration overview

Basic steps

Expected behavior

Traffic to TCP virtual servers

Traffic to HTTP virtual servers

FTP traffic and traffic processed by firewall rules

Best practice tips

Advantages of HA Active-Active-VRRP

Deploying an active-active-VRRP cluster

Configuration overview

Basic steps

Best practice tips

Chapter 15: Virtual Domains

Virtual domain basics

Enabling the virtual domain feature

Creating virtual domains

Assigning network interfaces and admin users to VDOMs

Virtual domain policies

Disabling virtual domains

Chapter 16: SSL Transactions

SSL offloading

SSL decryption by forward proxy

Layer 7 deployments

Layer 2 deployments

Profile configurations

Certificate guidelines

SSL/TLS versions and cipher suites

Exceptions list

SSL traffic mirroring

Chapter 17: Advanced Networking

QoS

Configure source NAT

Configure source NAT

Configure 1-to-1 NAT

Configuring a QoS queue

Configuring the QoS filter

Configuring the QoS IPv6 filter

ISP routes

BGP

How BGP works

372

374

374

376

377

381

381

385

385

387

387

389

392

394

395

395

396

397

398

398

368

368

368

369

369

370

371

372

360

363

363

363

364

365

366

351

351

352

353

354

354

358

IBGP vs. EBGP

Access list vs. prefix list

Configuring an IPv4 access list

Configuring an IPv6 access list

Configuring an IPv4 prefix list

Configuring an IPv6 prefix list

OSPF

Reverse path route caching

Packet capture

Chapter 18: Best Practices and Fine Tuning

Regular backups

Security

Topology

Administrator access

Performance tips

System performance

Reducing the impact of logging on performance

Reducing the impact of reports on system performance

Reducing the impact of packet capture on system performance

High availability

Chapter 19: Troubleshooting

Logs

Tools execute commands

diagnose commands

System dump

Packet capture

Diff

Solutions by issue type

Login issues

Connectivity issues

Checking hardware connections

Checking routing

Examining the routing table

Examining server daemons

Checking port assignments

Performing a packet trace

Checking the SSL/TLS handshake & encryption

Resource issues

Monitoring traffic load

DoS attacks

Resetting the configuration

413

413

414

414

415

415

415

415

415

416

417

421

422

422

423

423

423

427

427

417

417

417

418

419

420

427

427

428

428

428

429

429

398

402

403

403

404

405

405

409

411

413

Restoring firmware (“clean install”)

Additional resources

Chapter 20: System Dashboard

Status

Data Analytics

Server load balance

Select a display option

Filter virtual servers onscreen

Add virtual servers

Link load balance

Global load balance

HA status

Session monitoring

Appendix A: Fortinet MIBs

Appendix B: Port Numbers

Appendix C: Scripts

Events and actions

Predefined Commands

Control structures

Operators

String library

Examples

Select content routes based on URI string matches

Rewrite the HTTP request host header and path

Rewrite the HTTP response Location header

Redirect HTTP to HTTPS using Lua string substitution

Redirect mobile users to the mobile version of a website

Appendix D: Maximum Configuration Values

Appendix E: High Speed Logging Binary Format

429

432

433

435

436

437

437

438

439

439

439

440

441

442

444

446

446

446

452

452

453

454

454

455

456

456

456

458

464

Change Log

Date

2016-12-13

2017-05-31

Change Description

Initial release.

First update to correct an error in the "Operators" section in Appendix C.

Change Log

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

12

Introduction

Introduction

Welcome, and thank you for selecting Fortinet products for your network.

The FortiADC D-series family of application delivery controllers (ADC) optimizes the availability, user experience, performance and scalability of enterprise application delivery.

An ADC is like an advanced server load balancer. An ADC routes traffic to available destination servers based on health checks and load-balancing algorithms; full-featured ADC like FortiADC also improve application performance by assuming some of the server task load. Server tasks that can be handled by the FortiADC appliance include SSL encryption/decryption, WAF protection, Gzip compression, and routing processes, such as

NAT.

Features

FortiADC uses Layer 4 and Layer 7 session information to enable an ADC policy and management framework for: l l l l

Server load balancing

Link load balancing

Global load balancing

Security

The FortiADC D-series family includes physical appliances and virtual appliances.

Basic network topology

Your network routing infrastructure should ensure that all network traffic destined for the backend servers is directed to the FortiADC appliance. Usually, clients access backend servers from the Internet through a firewall such as a FortiGate, so the FortiADC appliance should be installed between your servers and the firewall.

Figure 1

shows a basic Router Mode deployment. Refer to the Basic Deployment Topologies guide for an overview of the packet flow in Router Mode, One-Arm Mode, and Direct Server Return Mode deployments.

13 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Figure  1: Basic network topology

Introduction

Note: The deployment topology might be different for global load balancing (GLB) or high availability (HA) clusters. Refer to those chapters for a description of features and illustrations.

Scope

This document describes how to use the web user interface to:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

14

Introduction l l l l l

Get started with your deployment.

Configure feature options.

Configure network and system settings.

Monitor the system.

Troubleshoot issues.

The following topics are covered elsewhere: l l l

Appliance installation—Refer to the quick start guide for your appliance model.

Virtual appliance installation—Refer to the FortiADC-VM Install Guide .

CLI commands—Refer to the FortiADC CLI Reference . In parts of this manual, brief CLI command examples or

CLI syntax are shown to help you understand how the web UI configuration pages are related to the CLI commands.

15 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 1: What’s New FortiADC 4.6.1

Chapter 1: What’s New

This chapter lists features and enhancements introduced in each of the FortiADC D-Series releases.

FortiADC 4.6.1

OpenSSL Library Upgrade

The Software OpenSSL Library has been upgraded to OpenSSL-1.0.2 on FortiADC appliances shipped with the

Cavium SSL card, which include the following hardware models: l l l l l

FortiADC 400D

FortiADC 700D

FortiADC 1500D

FortiADC 2000D

FortiADC 4000D

StartTLS l

Supports offloading TLS encryption from back-end SMTP servers

Script l

Supports HTTP:rand_id() function for HTTP

FortiADC 4.6.0

Monitoring and Logs l l l l l l l

Dashboard

Statistics and information

Search bar in VS and RS

Backup server visibility

Network map

Three mode views

Data analystics

DNS load-balancing, security, and caching l l l

Load-balance DNS traffic (queries and IP addresses) to DNS server

Sanity check on DNS queries according to RFC 1034, 1035, ad 2671

DNS caching for answer records

16 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

FortiADC 4.6.0

Chapter 1: What’s New

Dynamic Load-balancing algorithm l

Dynamic LB based Server Performance such CPU, Memory and Disk

Client certificate forwarding l

Sends client certificates to back-end server for authentication, without affecting SSL offloading

Script validation l l l l

Provides more information in case of syntax error

Checks content routing for virtual servers

Generates log message

Import/export script files

Kerberos Authentication Relay l l l

Enables authentication between client and server

Protects against eavesdropping and repay attacks

Allows nodes communicating over a non-secure network to verify each other's identity in a secure manner

SSL/HTTP visibility (mirroring) l l

FortiADC’s transparent IP, TCP/S and HTTP/S mirroring capabilities decrypt secure traffic for inspection and reporting by FortiGate or other third-party solutions

IPv4/IPv6 support

Virtual server port enchantment l l

Supports non-consecutive ports in port-range

Allows Port 0 on TCP or UDP (to catch traffic on all ports)

Security Assertion Markup Language (SAML) 2.0

l l

Provides Service Provider (SP) and Meta Data of Identity Provider (Idp).

Can access all VS web resources with user log-in until session expired.

Enhanced Global Load Balancing (GLB) proximity methodology l l

Static proximity (GEO, GEO-ISP) and dynamic proximity (RTT, Least Connections, Connection-Limit, Bytes-Per-

Second)

Static match first, dynamic match second

HTTP/S health check l l

Adds Username-password Authentication into HTTP/S health check (basic, digest and NTLM)

Allows to choose SSL Version/Ciphers in HTTPS Health Check

Password policy l

Allows the Admin to control password length and string

VDOM enhancement l l

Supports VDOMs restrictions (performance and configuration)

Able to limit performance (throughput, CPS, SSL, etc.) on each VDOM

SNMP MIBs l

Allows users to download SNMP MIBs from the Web GUI

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

17

Chapter 1: What’s New FortiADC 4.5.3

FortiADC 4.5.3

OpenSSL Library Upgrade

Software OpenSSL library has been upgraded to OpenSSL-1.0.2 on FortiADC appliances shipped with the

Cavium SSL card, which include the following hardware models: l l l l l

FortiADC 400D

FortiADC 700D

FortiADC 1500D

FortiADC 2000D

FortiADC 4000D

FortiADC 4.5.2

Software OpenSSL library upgrade l l

Software OpenSSL library has been upgraded to openssl-1.01s (the latest version) on all FortiADC platforms.

It's fully functional on FortiADC software.

Enhanced certificate validation l l

Support for multiple Online Certificate Status Protocol (OCSP) configurations.

Support for multiple Certificate Revocation List (CRL) files.

"Description" field for child records in Geo IP Whitelist l

Allows the user to add a brief notation for each child record added to a parent record.

US-Government (USG) mode l l

Allows the user to change the appliance from the default regular (REG) mode to USG mode via a special license key.

Locks the FortiADC D-Series appliance to servers located within the US only.

FortiADC 4.5.1

Acceleration l l

Speeds up compression of .PNG, .JPG, and .BMP image files. See

Caching time definition based on HTTP status code (200/301/302/304)

Server Load Balancing l l

SSL Health Check Client certificate selection using SSL Certification

Support for SIPv6 traffic includes a new health check and virtual server profile l

URL Redirection based on server HTTP status code

High Availability (HA)

18 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

FortiADC 4.5.0

l

HA-VRRP mode that supports floating IP, traffic group, and fail-over

Global Load Balancing l

Supports DNS SRV record

Miscellaneous l l

Full BGP routing support

Adds a "Description" field in GeoIP White List

Chapter 1: What’s New

FortiADC 4.5.0

SSL offloading l l l

Support ECDSA SSL cipher suites. See

Chapter 16: SSL Transactions .

SSL certificate validation for server-side SSL connections. See

Configuring real server SSL profiles .

L2 exception list can specify FortiGuard web filter categories. See

Creating a Web Filter Profile configuration

.

Server Load Balancing l l l l l l

SIP—Support for SIP traffic includes a new health check, virtual server profile, and persistence method. See

Configuring health checks

,

Configuring Application profiles , and

Configuring persistence rules

.

RDP—Support for RDP traffic includes a new virtual server profile and persistence method. See

Configuring

Application profiles

and

Configuring persistence rules .

HTTP/HTTPS profile—HTTP mode option can be set to HTTP keepalive to support Microsoft SharePoint and other apps that require the session to be kept alive. See

Configuring Application profiles .

Caching—New dynamic caching rules. See

Using caching features .

Real server pool—Member default cookie name is now the real server name. You can change this to whatever you want. See

Using real server pools .

Scripting—Added predefined scripts that you can use as templates. See

Using scripts

.

Global Load Balancing l l l l

Persistence—Option to enable persistence for specified hosts based on source address affinity. See

Configuring persistence

.

Dynamic proximity—Optional configuration for proximity based on least connections. See

Configuring virtual server pools .

Support for @ in zone records. See

Configuring DNS zones

.

Zone records (including dynamic records) displayed on zone configuration page. See

Configuring DNS zones .

Security l

Bot Detection—Integrated with FortiGuard signatures to allow "good bots" and detect "bad bots." See

Configuring a

WAF Profile .

Monitoring and Logs l l l

Fast reports—Real-time statistics and reports for SLB traffic. See

Configuring fast reports

.

Session tables and persistence tables—Dashboard tabs for SLB session tables and persistence tables. See

Chapter 20: System Dashboard

.

Network map search—Dashboard network map now has search. See

Chapter 20: System Dashboard

.

System

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

19

Chapter 1: What’s New FortiADC 4.4.0

l l l l l l l

New health checks for SIP and custom SNMP. See

Configuring health checks

Config push/pull (not related to HA). See

Pushing/pulling configurations .

HA sync can be auto/manual. See

Configuring HA settings .

HA status includes details on synchronization. See

Monitoring an HA cluster .

SNMP community host configuration supports subnet address and restriction of hosts to query or trap (or both).

Configuring SNMP

.

Support STARTTLS in email alerts. See

Configuring an SMTP mail server

.

Coredump utilities. See

System dump .

Platform l

Virtual machine (VM) images for Hyper-V, KVM, Citrix Xen, and opensource Xen. See the FortiADC-VM Install

Guide for details.

FortiADC 4.4.0

Server Load Balancing l l l l l l l l

New SSL forward proxy feature can be used to decrypt SSL traffic in segments where you do not have the server certificate and private key. See

Chapter 16: SSL Transactions

.

New server-side SSL profiles, which have settings for the FortiADC-to-server connection. This enables you to specify different SSL version and cipher suites for the server-side connection than the ones specified for the clientside connection by the virtual server profile. See

Configuring real server SSL profiles .

Support for ECDHE ciphers, null ciphers, and user-specified cipher lists. See

SSL/TLS versions and cipher suites

.

You can now specify a list of SNAT IP address pools in the virtual server configuration. This enables you to use addresses associated with more than one outgoing interface. See

Configuring virtual servers

.

Added a health check for UDP, and added hostname to the general settings configuration. In HTTTP/HTTPS checks, you can specify hostname instead of destination IP address. See

Configuring health checks

.

UDP profiles can now be used with Layer 2 virtual servers. See

Configuring Application profiles .

Server name added to real server pool member configuration. The name can be useful in logs. When you upgrade, the names will be generated from the pool member IP address. You can change that string to whatever you like.

See

Using real server pools

.

Added a comments setting to the virtual server configuration so you can note the purpose of a configuration. See

Configuring virtual servers .

Link Load Balancing l

You can now specify ISP addresses, address groups, and service groups in LLB policies. Using groups adds

Boolean OR logic within the elements of LLB rules. See

Configuring link policies .

Global Load Balancing l l l l

Added "dynamic proximity" to the server selection algorithm. Dynamic proximity is based on RTT. See

Configuring dynamic proximity .

Added an option to send only a single record in responses instead of an ordered list of records. See

Configuring hosts .

Support for health checks of third-party servers. See

Configuring servers

.

Support for TXT resource records. See

Configuring DNS zones .

Security

20 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

FortiADC 4.3.1

Chapter 1: What’s New l l

You can now specify exceptions per WAF profile or per policy. Exceptions identify specific hosts or URL patterns that are not subject to processing by WAF rules. See

Configuring a WAF Profile

Additional WAF HTTP protocol constraint rules. See

Configuring a WAF Profile .

Monitoring and Logs l l l l

Added a Network Map tab to the dashboard. In the Network Map, each virtual server is a tree. The status of the virtual server and real server pool members is displayed. See

Chapter 20: System Dashboard .

Added on-demand and scheduled reports for many common queries. You can also configure custom queries. See

Configuring reports

.

Added event log categories and added a column in logs to support future integration with FortiAnalyzer. Removed the Download Logs page. Each log category page now has a Download button. See

Using the event log

.

Enhanced SNMP MIBs and traps. See

Appendix A: Fortinet MIBs

for information on downloading the vendorspecific and product-specific MIB files.

System l l l l l l l

Shared Resources—Merged the address and service configuration for firewall and LLB. Added address groups and service groups, which can be used in LLB policy rules. See

Chapter 10: Shared Resources

.

Routing—Support for OSPF authentication. See

OSPF

.

HA—Added option to actively monitor remote beacon IP addresses to determine if the network path is available.

See

Configuring HA settings

.

System—Updated the web UI to match CLI configuration options for global administrator and access profile. See

Managing administrator users .

Web UI—Support for Simplified Chinese. See

Configuring basic system settings

.

Troubleshooting—New commands: diagnose debug flow, diagnose debug report, diagnose debug timestamp , execute checklogdisk, and execute fixlogdisk. See the FortiADC CLI

Reference .

CLI—Added execute ssh and execute telnet for connections to remote hosts.

API l

REST API—Remote configuration management with a REST API. See the FortiADC REST API Reference .

FortiADC 4.3.1

l l l

Server Load Balancing Persistence—Added a Match Across Servers option to the Source Address affinity method.

This option is useful when the client session for an application has connections over multiple ports (and thus multiple virtual servers). This option ensures the client continues to access the same backend server through different virtual servers for the duration of a session.

Server Load Balancing TCP Multiplexing— Added support for HTTPS connections.

Global Load Balancing DNS Server—The negative caching TTL in the SOA resource record is now configurable.

FortiADC 4.3.1

l l

Virtual domains—Increased the maximum number of VDOMs on the following platforms:

FortiADC 700D — 30

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

21

Chapter 1: What’s New FortiADC 4.3.0

l l l l l l

FortiADC 1500D — 45

FortiADC 2000D — 60

FortiADC 4000D — 90

Health checks—Added an HTTP Connect health check that is useful for testing the availability of web cache proxies, such as FortiCache.

ISP address book—Added a province location setting to the ISP address book. The province setting is used in GLB deployments in China to enable location awareness that is province-specific. For example, based on location, the

DNS server can direct a user to a datacenter in Beijing or Guangdong rather than the broader location China. Only a predefined set of Chinese provinces is supported.

Advanced routing—Exception list for reverse path route caching.

FortiADC 4.3.0

l l l l l l l l l l l l l l l l l l l l l

Authentication—Framework to offload authentication from backend servers.

Geo IP blocking—Policy that takes the action you specify when the virtual server receives requests from IP addresses in the blocked country’s IP address space.

Web application firewall—Protect against application layer attacks with policies such as signatures, HTTP protocol constraints, request URL and file extension patterns, and SQL/XSS injection detection.

Scripts—Support for Lua scripts to perform actions that are not currently supported by the built-in feature set.

SSL/TLS—Support for PFS ciphers.

Health check improvements—The SLB and LLB health check configuration has been combined and moved to

System > Shared Resources. You can configure destination IP addresses for health checks. This enables you to test both the destination server and any related services that must be up for the server to be deemed available. Also added support for Layer 2 and SSH health checks.

Port range—Support for virtual IP address with a large number of virtual ports.

NAT46/64—Support for NAT46/64 by the SLB module.

ISP address book—Framework for an ISP address book that simplifies the ISP route and LLB proximity route configuration.

Proximity routes—Support for using ISP address book entries in the LLB proximity route table.

Backup pool member—Support for designating a link group or virtual tunnel group member as a “backup” that joins the pool when all of the main members are unavailable.

Global load balancing—New framework that leverages the FortiGuard Geolocation database or the FortiADC predefined ISP address books to direct clients to the closest available FortiADC virtual servers.

Stateful firewall—If client-to-server traffic is allowed, the session is maintained in a state table, and the response traffic is allowed.

Virtual server traffic—Many of the firewall module features can be applied to virtual server traffic.

ISP Routes—ISP routes are used for outbound traffic and link load balancing traffic.

HA upgrade—Simpler one-to-many upgrade from the primary node.

HA status—HA status tab on the system dashboard.

HA remote login—You can use the execute ha manage command to connect to the command-line interface of a member node. See the CLI reference.

SNMPv3 support

Statistics and log database to better support dashboard and report queries.

Improved dashboard—New time period options for the virtual server throughput graphs.

22 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

FortiADC 4.2.3

Chapter 1: What’s New l l

Improved reports—New report queries for SLB HTTP virtual server reports, including client IP address, client browser type, client OS, and destination URL.

Backup & restore—Option to back up the entire configuration, including error page files, script files, and ISP address books.

New CLI commands to facilitate troubleshooting: l l l l diagnose debug config-error-log —Use this command to see debug errors that might be generated after an upgrade or major configuration change.

diagnose debug crashlog —Use this command to manage crashlog files. Typically, you use these commands to gather information for Fortinet Services & Support.

execute statistics-db —Use this command to reset or restore traffic statistics.

config system setting —Use this command to configure log database behavior (overwrite or stop writing) when disk utilization reaches its capacity.

For details, see the CLI reference.

FortiADC 4.2.3

l

HTTPS and TCPS Profiles—Support for SHA-256 ciphers suites.

FortiADC 4.2.2

l l

Content rewriting—Support for PCRE capture and back reference to write the Location URL in redirect rules.

Web UI—You can clone configuration objects to quickly create similar configuration objects. If a configuration l object can be cloned, the copy icon appears in the tools column for its summary configuration page.

Web UI—You can sort many of the configuration summary tables by column values. If a configuration summary table can be sorted, it includes sort arrows in the column headings. For example, the Server Load Balance > Virtual

Server configuration summary page can be sorted by Availability, Status, Real Server pool, and so on. You can also sort the Dashboard > Virtual Server > Real Server list by column values-for example, by Availability, Status, Total

Sessions, or throughput bytes.

FortiADC 4.2.1

Bug fixes only.

FortiADC 4.2.0

l l l l l

New web UI

New log subtypes

New dashboard and report features

Additional load balancing methods—Support for new methods based on a hash of a full URI, domain name, hostname, or destination IP address.

Predefined health checks—Helps you get started with your deployment.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

23

Chapter 1: What’s New FortiADC 4.1

l l l l l l l l l l l l l

Predefined persistence rules—Helps you get started with your deployment.

HTTP Turbo profile—Improves the performance of HTTP applications that do not require our optional profile features.

Layer 2 load balancing—Support for TCP profiles.

Granular SSL configuration—Specify the SSL/TLS versions and encryption algorithms per profile.

Connection rate limiting—Set a connection rate limit per real server or per virtual server.

HTTP transaction rate limiting—Set a rate limit on HTTP transactions per virtual server.

Additional link load balancing methods—Support for new methods in link groups, including spillover and hash of the source IP address.

Global load balancing—A new implementation of our DNS-based solution that enables you to deploy redundant resources around the globe that you can leverage to keep your business online when a local area deployment experiences unexpected spikes or downtime.

HA active-active clustering—Support for active-active clusters.

Administrator authentication enhancements—Support for authenticating users against LDAP and RADIUS servers.

Multinetting—You can configure a secondary IP address for a network interface when necessary to support deployments with backend servers that belong to different subnets.

High speed logging—Supports deployments that require a high volume of logging activity.

Packet Capture—Support for tcpdump.

FortiADC 4.1

No design changes. Bug fixes only.

FortiADC 4.0 Patch 2

No design changes. Bug fixes only.

FortiADC 4.0 Patch 1

No design changes. Bug fixes only.

FortiADC 4.0

l l l

VDOMs—Virtual domains (VDOMs) allow you to divide a FortiADC into two or more virtual units that are configured and function independently. The administrator for each virtual domain can view and manage the configuration for his or her domain. The admin administrator has access to all virtual domain configurations.

Caching – A RAM cache is a cache of HTTP objects stored in FortiADC's system RAM that are reused by subsequent HTTP transactions to reduce the amount of load on the backend servers.

IP Reputation—You can now block source IP addresses that have a poor reputation using data from the FortiGuard

IP Reputation Service.

24 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

FortiADC 3.2.0

Chapter 1: What’s New l l l l l

Layer 2 server load balancing—FortiADC can now load balance Layer 3 routers, gateways or firewalls. This feature is useful when the request’s destination IP is unknown and you need to load balance connections between multiple next-hop gateways. Supports HTTP, HTTPS and TCPS client-side connection profiles only.

Open Shortest Path First (OSPF) support—The new OSPF feature allows FortiADC to learn dynamic routes from or redistribute routes to neighboring routers.

HTTPS profile type for virtual servers—The HTTPS profile type provides a standalone HTTPS client-side connection profile.

Consistent Hash IP – The persistence policy type Hash IP has changed to Consistent Hash IP. Consistent hashing allows FortiADC to achieve session persistence more efficiently than traditional hashing.

Enhanced logs

FortiADC 3.2.0

l l l l l l l

Link routing policies—You can now specify how FortiADC routes traffic for each available ISP link, including by source or destination address and port.

Virtual tunnels—You can now use tunneling between two FortiADC appliances to balance traffic across multiple links to each appliance. A typical scenario is a VPN between a branch office and headquarters for applicationspecific access.

Persistent routing—You can now configure connections that persist regardless of the FortiADC link load balancing activity. You can configure persistence based on source IP, destination IP, and subnet.

Proximity-based routing—Maximize WAN efficiency by using link proximity to determine latency between FortiADC and remote WAN sites so that FortiADC can choose the best route for traffic.

Scheduled link load balancing—You can now apply a link load balancing policy during a specific time period.

One-to-one (1-to-1) NAT—You can now fully define how each individual source and destination IP address will be translated. This feature is useful when you require a different NAT range for each ISP.

PPPoE interface support—To support DSL connectivity, you can now configure interfaces to use PPPoE (Point-to-

Point Protocol over Ethernet) to automatically retrieve its IP address configuration.

FortiADC 3.1.0

l l l l l

Custom error page—You can now upload a custom error page to FortiADC that it can use to respond to clients when HTTP service is unavailable.

Full NAT for Layer 3/4 load balancing—Layer 3/4 load balancing now supports full NAT (translation of both source and destination IP addresses). FortiADC can now round robin among a pool of source IP addresses for its connections to backend servers.

Standby server—You can now configure FortiADC to forward traffic to a hot standby (called a Backup Server) when all other servers in the pool are unavailable.

Log cache memory—To avoid hard disk wear and tear, FortiADC can cache logs in memory and then periodically write them to disk in bulk. Previously, FortiADC always wrote each log message to disk instantaneously.

HA sync for health check status with IPv6—For high availability FortiADC clusters, the Layer 4 health check status of IPv6-enabled virtual servers is now synchronized.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

25

Chapter 1: What’s New FortiADC 3.0.0

FortiADC 3.0.0

l l l l l l l

Link load balancing—FortiADC now supports load balancing among its links, in addition to distributing among local and globally distributed servers. Depending on if the traffic is inbound or outbound, different mechanisms are available: outbound can use weighted round robin; inbound can use DNS-based round robin or weighted round robin.

HTTP response compression—FortiADC now can compress responses from your backend servers, allowing you to off load compression from your backend servers for performance tuning that delivers faster replies to clients.

Quality of service (QoS)—FortiADC now can guarantee bandwidth and queue based upon source/destination address, direction, and network service.

Source NAT (SNAT)—When applying NAT, FortiADC can now apply either static or dynamic source NAT, depending on your preference.

Session persistence by source IP segment—FortiADC now can apply session persistence for entire segments of source IPs such as 10.0.2.0/24. Previously, session persistence applied to a single source IP.

Health check enhancements—FortiADC now supports additional health check types for servers that respond to these protocols: email (SMTP, POP3, IMAP), TCPS, TCP SYN (half-open connection), SNMP, and UDP.

HA enhancements—FortiADC HA now synchronizes Layer 3/4 and Layer 7 sessions and connections for session persistence and uninterrupted connections when the standby assumes control of traffic.

FortiADC 2.1.0

Support for FortiADC 200D and FortiADC VM—FortiADC software has been released to support these new platforms.

26 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 2: Key Concepts and Features

Chapter 2: Key Concepts and Features

This chapter includes the following topics: l l l l l l

Server load balancing

Link load balancing

Global load balancing

Security

High availability

Virtual domains

Server load balancing

Server load balancing

Server load balancing (SLB) features are designed to give you flexible options for maximizing performance of your backend servers. The following topics give an overview of SLB features: l l l l l l l l

Feature Summary

Authentication

Caching

Compression

Content rewriting

Content routing

Scripting

SSL transactions

Feature Summary

Table 1

summarizes server load balancing features.

 Table 1: Server load balancing features

Features Summary

Methods l

Round robin l

Weighted round robin l

Least connections l

Fastest response l

Hash of URI, domain, host, destination IP

Health check Checks based on Layer 3, Layer 4, or Layer 7 data.

27 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Server load balancing Chapter 2: Key Concepts and Features

Features

Server management

Persistence

Layer 7

Layer 4

Layer 2

Summary l

Warm up l

Rate limiting l

Maintenance mode with session ramp down

Based on: l

Cookies l

TCP/IP header matches l

A hash of TCP/IP header values l

TLS/SSL session ID l

RADIUS attribute l

RDP Session Broker cookie l

SIP caller ID

Profiles: HTTP, HTTPS, HTTP Turbo, RADIUS, RDP, SIP, TCPS

Content routing: HTTP Host, HTTP Referer, HTTP Request URL, SNI hostname,

Source IP address

Content rewriting: URL redirect, 403 Forbidden, or HTTP request/response rewrite

Profiles: FTP, TCP, UDP

Content routing: Source IP address

Profiles: HTTP, HTTPS, TCP, TCPS, UDP

Note: Layer 2 load balancing is useful when the request’s destination IP is unknown and you need to load balance connections between multiple next-hop gateways.

For detailed information, see

Chapter 4: Server Load Balancing

.

Authentication

FortiADC SLB supports offloading authentication from backend servers. The auth policy framework supports authentication against local, LDAP, and RADIUS authentication servers, and it enables you to assign users to groups that are authorized to access protected sites.

For configuration details, see

Configuring auth policies

.

Caching

FortiADC SLB supports both static and dynamic caching. Caching reduces server overload, bandwidth saturation, high latency, and network performance issues.

When caching is enabled for a virtual server profile, the FortiADC appliance dynamically stores application content such as images, videos, HTML files and other file types to alleviate server resources and accelerate overall application performance.

For configuration details, see

Using caching features .

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

28

Chapter 2: Key Concepts and Features Server load balancing

Compression

FortiADC SLB supports compression offloading. Compression offloading means the ADC handles compression processing instead of the backend servers, allowing them to dedicate resources to their own application processes.

When compression is enabled for a virtual server profile, the FortiADC system intelligently compresses HTTP and

HTTPS traffic. Reducing server reply content size accelerates performance and improves response times.

FortiADC supports both industry standard GZIP and DEFLATE algorithms.

For configuration details, see

Configuring compression rules

.

Content rewriting

FortiADC SLB supports content rewriting rules that enable you to rewrite HTTP requests and responses so that you can cloak the details of your internal network. You can also create rules to redirect requests.

For configuration details and examples, see

Using content rewriting rules .

Content routing

FortiADC SLB supports content routing rules that direct traffic to backend servers based on source IP address or

HTTP request headers.

For configuration details, see

Configuring content routes

.

Scripting

FortiADC SLB supports Lua scripts to perform actions that are not currently supported by the built-in feature set.

Scripts enable you to use predefined script commands and variables to manipulate the HTTP request/response or select a content route.

For configuration details, see

Using scripts .

SSL transactions

FortiADC SLB supports SSL offloading. SSL offloading means the ADC handles SSL decryption and encryption processing instead of the backend servers, allowing the backend servers to dedicate resources to their own application processes.

SSL offloading results in improved SSL/TLS performance. On VM models, acceleration is due to offloading the cryptographic processes from the backend server. On hardware models with ASIC chips, cryptography is also hardware-accelerated: the system can encrypt and decrypt packets at better speeds than a backend server with a general-purpose CPU.

FortiADC SLB also supports SSL decryption by forward proxy in cases where you cannot copy the server certificate and private key to the FortiADC, either because it is impractical or impossible (in the case of outbound traffic to unknown Internet servers).

For detailed information, see

Chapter 16: SSL Transactions .

29 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Link load balancing Chapter 2: Key Concepts and Features

Link load balancing

Link load balancing (LLB) features are designed to manage traffic over multiple ISP or WAN links. This enables you to provision multiple links, resulting in reduced risk of outages and additional bandwidth to relieve traffic congestion.

For detailed information, see

Chapter 5: Link Load Balancing .

Global load balancing

Global load balancing (GLB) makes your network reliable and available by scaling applications across multiple data centers to improve application response times and be prepared for disaster recovery.

You can deploy DNS to direct traffic based on application availability and location.

For detailed information, see

Chapter 6: Global Load Balancing

.

Security

In most deployment scenarios, we recommend you deploy FortiGate to secure your network. Fortinet includes security functionality in the FortiADC system to support those cases when deploying FortiGate is impractical.

FortiADC includes the following security features: l l l l l l

Firewall—Drop traffic that matches a source/destination/service tuple you specify.

Security connection limit—Drop an abnormally high volume of traffic from a source/destination/service match.

IP Reputation service—Drop or redirect traffic from source IPs that are on the FortiGuard IP Reputation list.

Geo IP—Drop or redirect traffic from source IPs that correspond with countries in the FortiGuard Geo IP database.

Web application firewall—Drop or alert when traffic matches web application firewall attack signatures and heuristics.

Denial of service protection—Drop half-open connections to protect the system from a SYN flood attack.

For detailed information, see

Chapter 7: Network Security .

High availability

The FortiADC appliance supports high availability features like active-passive, active-active cluster, active-active-

VRRP cluster, failure detection, and configuration synchronization. High availability deployments can support

99.999% service level agreement uptimes. For detailed information, see

Chapter 14: High Availability

Deployments

.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

30

Chapter 2: Key Concepts and Features Virtual domains

Virtual domains

A virtual domain (VDOM) is a complete FortiADC instance that runs on the FortiADC platform. The VDOM feature supports multitennant deployments. To do this, you create a virtual domain configuration object that contains all of the system and feature configuration options of a full FortiADC instance, and you provision an administrator account with privileges to access and manage only that VDOM. For detailed information, see

Chapter 15: Virtual Domains

.

31 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 3: Getting Started

Chapter 3: Getting Started

Step 1: Install the appliance

This chapter provides the basic workflow for getting started with a new deployment.

Basic steps:

1. Install the appliance.

2. Configure the management interface.

3. Configure the following basic network settings: l l

Administrator password

System date and time l

Network interfaces l

DNS

4. Test connectivity.

5. Complete product registration, install your license, and update the firmware.

6. Configure a basic load balancing policy.

7. Test the deployment with load to verify expected behavior.

8. Back up this basic configuration so that you have a restore point.

l

Tips:

Configuration changes are applied to the running configuration as soon as you save them.

l

Configuration objects are saved in a configuration management database. You cannot change the name of a configuration object after you have initially saved it.

l

You cannot delete a configuration object that is referenced in another configuration object (for example, you cannot delete an address if it is used in a policy).

Step 1: Install the appliance

This Handbook assumes you have already installed the appliance into a hardware rack or the virtual appliance into a VMware environment.

For information on hardware appliances, refer to the FortiADC hardware manuals.

For information on the virtual appliance, refer to the FortiADC-VM Install Guide.

To download these documents, go to: http://docs.fortinet.com/fortiadc-d-series/hardware

32 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Step 2: Configure the management interface Chapter 3: Getting Started

Step 2: Configure the management interface

You use the management port for administrator access. It is also used for management traffic (such as SNMP or syslog). If your appliance has a dedicated management port, that is the port you configure as the management interface; otherwise, it is the convention to use port1 for the management interface.

You configure the following basic settings to get started so that you can access the web UI from a remote location

(like your desk): l l l

Static route—Specify the gateway router for the management subnet so you can access the web UI from a host on your subnet.

IP address—You typically assign a static IP address for the management interface. The IP address is the host portion of the web UI URL. For example, the default IP address for the management interface is 192.168.1.99 and the default URL for the web UI is https://192.168.1.99.

Access—Services for administrative access. We recommend HTTPS, SSH, SNMP, PING.

Before you begin: l l l l

You must know the IP address for the default gateway of the management subnet and the IP address that you plan to assign the management interface.

You need access to the machine room in which a physical appliance has been installed. With physical appliances, you must connect a cable to the management port to get started.

You need a laptop with an RJ-45 Ethernet network port, a crossover Ethernet cable, and a web browser (a recent version of Chrome, Firefox, or Internet Explorer).

Configure the laptop Ethernet port with the static IP address 192.168.1.2 and a netmask of 255.255.255.0. These settings enable you to access the FortiADC web UI as if from the same subnet as the FortiADC in its factory configuration state.

To connect to the web UI:

1. Use the crossover cable to connect the laptop Ethernet port to the FortiADC management port.

2. On your laptop, open the following URL in your web browser: https://192.168.1.99/

The system presents a self-signed security certificate, which it presents to clients whenever they initiate an

HTTPS connection to it.

3. Verify and accept the certificate, and acknowledge any warnings about self-signed certificates.

The system displays the administrator login page. See

Figure 2 .

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

33

Chapter 3: Getting Started

Figure  2: Login page

Step 2: Configure the management interface

4. Enter the username admin and no password.

The system displays the dashboard. See

Figure 3

.

34 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Step 2: Configure the management interface

Figure  3: Dashboard after initial login

Chapter 3: Getting Started

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

35

Chapter 3: Getting Started Step 3: Configure basic network settings

To complete the procedures in this section using the CLI:

1. Use an SSH client such as PuTTY to make an SSH connection to

192.168.1.99 (port 22).

2. Acknowledge any warnings and verify and accept the FortiADC SSH key.

3. Enter the username admin and no password.

4. Use the following command sequence to configure the static route: config router static edit 1 set gateway <gateway_ipv4> end end

5. Use the following command sequence to configure the management interface: config system interface edit <interface_name> set ip <ip&netmask> set allowaccess {http https ping snmp ssh telnet} end end

The system processes the update and disconnects your SSH session because the interface has a new IP address. At this point, you should be able to connect to the CLI from a host on the management subnet you just configured. You can verify the configuration remotely.

Step 3: Configure basic network settings

The system supports network settings for various environments.

To get started, you configure the following basic settings: l l l l

Administrator password—You must change the password for the admin account.

System date and time—We recommend you use NTP to maintain the system time.

Network interfaces—You must configure interfaces to receive and forward the network traffic to and from the destination servers.

DNS—You must specify a primary and secondary server for system DNS lookups.

Before you begin: l l l

You must know the IP address for the NTP servers your network uses to maintain system time.

You must know the IP addresses that have been provisioned for the traffic interfaces for your FortiADC deployment.

You must know the IP address for the primary and secondary DNS servers your network uses for DNS resolution.

To change the admin password:

1. Go to System > Administrator to display the configuration page.

2. Double-click the key icon in the row for the user admin to display the change password editor. See

Figure 4

.

3. Change the password and save the configuration.

36 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Step 3: Configure basic network settings Chapter 3: Getting Started

For detailed information on configuring administrator accounts, refer to the online help or see Managing administrator users .

Figure  4: System administrator change password editor

CLI commands:

FortiADC-VM # config system admin

FortiADC-VM (admin) # edit admin

FortiADC-VM (admin) # set password <string>

Current password for 'admin':

FortiADC-VM (admin) # end

To configure system time:

1. Go to System > Settings.

2. Click the Maintenance tab to display the configuration page. See

Figure 5 .

3. Enter NTP settings and save the configuration.

For detailed information, refer to the online help or see

Configuring system time .

Figure  5: System time configuration page

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

37

Chapter 3: Getting Started Step 3: Configure basic network settings

CLI commands: config system time ntp set ntpsync enable set ntpserver {<server_fqdn> | <server_ipv4>} end set syncinterval <minutes_int>

Or use a command syntax similar to the following to set the system time manually: config system time manual set zone <timezone_index> end set daylight-saving-time {enable | disable} execute date <MM/DD/YY> <HH:MM:SS>

To configure network interfaces:

1. Go to Networking > Interface to display the configuration page.

2. Double-click the row for port2, for example, to display the configuration editor. See

Figure 6

.

3. Enter the IP address and other interface settings and save the configuration.

For detailed information, refer to the online help or see

Configuring network interfaces .

38 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Step 3: Configure basic network settings

Figure  6: Network interface configuration page

Chapter 3: Getting Started

CLI commands: config system interface edit <interface_name> set ip <ip&netmask> set allowaccess {http https ping snmp ssh telnet} end end

To configure DNS:

1. Go to System > Settings to display the Basic configuration page. See

Figure 7 .

2. Enter the IP address for a primary and secondary DNS server; then save the configuration.

For detailed information on configuring DNS, refer to the online help or see

Configuring basic system settings

.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

39

Chapter 3: Getting Started

Figure  7:  DNS configuration page

Step 4: Test connectivity to destination servers

CLI commands: config system dns set primary <address_ipv4> set secondary <address_ipv4> end

Step 4: Test connectivity to destination servers

Use ping and traceroute to test connectivity to destination servers.

To test connectivity from the FortiADC system to the destination server:

Run the following commands from the CLI: execute ping <destination_ip4> execute traceroute <destination_ipv4>

To test connectivity from the destination server to the FortiADC system:

1. Enable ping on the network interface.

2. Use the ping and traceroute utilities available on the destination server to test connectivity to the FortiADC network interface IP address.

For troubleshooting tips, see

Chapter 19: Troubleshooting

.

Step 5: Complete product registration, licensing, and upgrades

Your new FortiADC appliance comes with a factory image of the operating system (firmware). However, if a new version has been released since factory imaging, you might want to install the newer firmware before continuing the system configuration.

Before you begin:

40 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Step 5: Complete product registration, licensing, and upgrades Chapter 3: Getting Started l l l l l

Register—Registration is required to log into the Fortinet Customer Service & Support site and download firmware upgrade files. For details, go to http://kb.fortinet.com/kb/documentLink.do?externalID=12071 .

Check the installed firmware version—Go to the dashboard. See

Figure 8 .

Check for upgrades—Major releases include new features, enhancements, and bug fixes. Patch releases can include enhancements and bug fixes.

Download the release notes at http://docs.fortinet.com/fortiadc-d-series/ .

Download firmware upgrades at https://support.fortinet.com/ .

To upload your license and new firmware:

1. Go to the dashboard.

2. Under License Status, click Update to locate and upload the license file.

3. Under Firmware Version, click Update to locate and upload the firmware file.

For detailed information, refer to the online help or see

Updating firmware

.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

41

Chapter 3: Getting Started

Figure  8:   License and firmware upgrade page

Step 6: Configure a basic server load balancing policy

Step 6: Configure a basic server load balancing policy

A FortiADC server load balancing policy has many custom configuration options. You can leverage the predefined health check, server profile, and load balancing method configurations to get started in two basic steps:

1. Configure the real server pool.

2. Configure the virtual server features and options.

For complete information on server load balancing features, start with

Server load balancing basics .

42 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Step 6: Configure a basic server load balancing policy Chapter 3: Getting Started

To configure the server pool:

1. Go to Server Load Balance > Real Server to display the configuration page.

2. Click Add to display the configuration editor. See

Figure 9

.

3. Complete the basic configuration and click Save.

4. Double-click the configuration to display the configuration editor.

5. Under Member, click Add to display the Edit Member configuration editor. See

Figure 10 .

6. Complete the member configuration and click Save.

For detailed information, refer to the online help or see

Configuring real server pools

.

Figure  9:   Real server pool basic configuration page

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

43

Chapter 3: Getting Started Step 6: Configure a basic server load balancing policy

Figure  10:   Real server pool member configuration page

44

To configure the virtual server:

1. Go to Server Load Balance > Virtual Server to display the configuration page.

2. Click Add to display the configuration editor. See

Figure 11

.

3. Complete the configuration and click Save.

For detailed information, refer to the online help or see

Configuring virtual servers .

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Step 7: Test the deployment

Figure  11:   Virtual server configuration page

Chapter 3: Getting Started

Step 7: Test the deployment

You can test the load balancing deployment by emulating the traffic flow of your planned production deployment.

Figure 12

shows a basic network topology.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

45

Chapter 3: Getting Started

Figure  12:  Basic network topology

Step 7: Test the deployment

46

To test basic load balancing:

1. Send multiple client requests to the virtual server IP address.

2. Go to the dashboard to watch the dashboard session and throughput counters increment.

3. Go to Log & Report > Log Browsing > Event Log > Health Check to view health check results.

4. Go to Log & Report > Log Browsing > Traffic Log > SLB HTTP (for example) to view traffic log. It includes throughput per destination IP address.

5. Go to Log & Report > Report to view reports. It has graphs of top N policies and servers.

Figure 13

through

Figure 16

are examples of the logs and reports you can use to verify your deployment.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Step 7: Test the deployment

Figure  13:   Dashboard report

Chapter 3: Getting Started

Figure  14:   Event log

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

47

Chapter 3: Getting Started

Figure  15:   Traffic log

Figure  16:   Overall report

Step 8: Back up the configuration

Step 8: Back up the configuration

Once you have tested your basic installation and verified that it functions correctly, create a backup. This “clean” backup is a reference point that has many benefits, including: l l l

Troubleshooting—You can use a diff tool to compare a problematic configuration with this baseline configuration.

Restarting—You can rapidly restore your system to a simple yet working point.

Rapid deployment—You can use the configuration file as a template for other FortiADC systems. You can edit use any text editor to edit the plain text configuration file and import it into another FortiADC system. You should change unique identifiers, such as IP address and sometimes other local network settings that differ from one deployment to another.

48 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Step 8: Back up the configuration Chapter 3: Getting Started

To backup the system configuration:

1. Go to System > Settings.

2. Click the Backup & Restore tab to display the backup and restore page.

3. Click Back Up.

For detailed information, refer to the online help or see

Backing up and restoring the configuration .

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

49

Chapter 4: Server Load Balancing

Chapter 4: Server Load Balancing

Server load balancing basics

This chapter includes the following topics: l l l l l l l l l l l l l l l l l l

Server load balancing basics

Server load balancing configuration overview

Configuring real server SSL profiles

Configuring real server pools

Configuring persistence rules

Configuring content routes

Using content rewriting rules

Configuring compression rules

Using caching features

Configuring Application profiles

Configuring error pages

Using source pools

Configuring auth policies

Configuring methods

Configuring an L2 exception list

Using the Web Category tab

Creating a Web Filter Profile configuration

Configuring virtual servers

Server load balancing basics

An application delivery controller (ADC) is like an advanced server load balancer. An ADC routes traffic to available destination servers based on health checks and load-balancing algorithms. ADCs improve application availability and performance, which directly improves user experience.

The physical distance between clients and the servers in your backend server farm has a significant impact on server response times. Besides physical distance, the most important factors contributing to server performance are: l l

Number of simultaneous connections and requests that the servers can handle

Load distribution among the servers

The purpose of an ADC is to give you multiple methods for optimizing server response times and server capacity.

After you have deployed an ADC, traffic is routed to the ADC virtual server instead of the destination real

servers.

Figure 17

shows an example of a basic load balancing deployment. The FortiADC appliance is deployed in front of a server farm, and the network interfaces are connected to three subnets: a subnet for management traffic; a subnet that hosts real servers A, B, and C; and a different subnet that hosts real servers D, E, and F. The

50 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Server load balancing basics Chapter 4: Server Load Balancing

FortiADC system performs health checks on the real servers and distributes traffic to them based on system logic and user-defined settings.

Figure  17:  Basic network topology

Optionally, you can further improve application security and performance by offloading system processes from the server and having them handled transparently by the ADC. Server tasks that can be handled by the FortiADC appliance include SSL encryption/decryption, WAF protection, Gzip compression, and routing processes, such as

NAT.

Figure 18

shows the order in which the FortiADC features process client-to-server and server-to-client traffic.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

51

Chapter 4: Server Load Balancing

Figure  18:  FortiADC processing

Server load balancing basics

52 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Server load balancing configuration overview Chapter 4: Server Load Balancing

In the client-to-server direction: l l l l l l

If SNI or SSL decryption is applicable, the system acts on those exchanges.

Then, security module rules filter traffic, and traffic not dropped continues to the virtual server module.

Virtual server security features are applied. Traffic not dropped continues for further processing.

If a caching rule applies, the FortiADC cache serves the content and the request is not forwarded to a backend server.

If the system selects a destination server based on a persistence rule, content route, or script, the load balancing rules are not applied.

After selecting a server, the system performs any rewriting and re-encryption actions that are applicable, and then forwards the packets to the server.

In the server-to-client direction: l l

WAF HTTP response, NAT, rewriting, persistence, and caching rules are applied.

If applicable, the FortiADC compresses and encrypts the server response traffic.

Server load balancing configuration overview

The configuration object framework supports the granularity of FortiADC application delivery control rules. You can configure specific options and rules for one particular type of traffic, and different options and rules for another type.

Figure 19

shows the configuration objects used in the server load balancing configuration and the order in which you create them.

Basic steps

1. Configure health check rules and real server SSL profiles.

This step is optional. In many cases, you can use predefined health check rules and predefined real server

SSL profiles. If you want to use custom rules, configure them before you configure the pools of real servers.

2. Configure server pools.

This step is required. Server pools are the backend servers you want to load balance and specify the health checks used to determine server availability.

3. Configure persistence rules, optional features and policies, profile components, and load balancing methods.

You can skip this step if you want to select from predefined persistence rules, profiles, and methods.

4. Configure the virtual server.

When you configure a virtual server, you select from predefined and custom configuration objects.

Example workflow

For a members-only HTTPS web server farm, you might have a workflow similar to the following:

1. Configure security module firewall rules that allow only HTTPS traffic from untrusted subnets to the virtual server.

2. Import server SSL certificates, configure a local certificate group, and a certificate verification policy.

3. Configure HTTPS health checks to test the availability of the web servers.

4. Configure the server pools, referencing the health check configuration object.

5. Configure authentication:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

53

Chapter 4: Server Load Balancing Server load balancing configuration overview l

Create a RADIUS or LDAP server configuration.

l

Create user groups.

l

Create an authentication policy.

6. Configure an HTTPS profile, referencing the certificate group and certificate verification policy and setting SSL version and cipher requirements.

7. Configure the virtual server, using a combination of predefined and user-defined configuration objects: l l

Predefined: WAF policy, Persistence, Method

User-defined: Authentication Policy, Profile

54 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Server load balancing configuration overview

Figure  19:  Server load balancing configuration steps

Chapter 4: Server Load Balancing

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

55

Chapter 4: Server Load Balancing Configuring real server SSL profiles

Configuring real server SSL profiles

A real server SSL profile determines settings used in network communication on the FortiADC-server segment, in contrast to a virtual server profile, which determines the settings used in network communication on the client-

FortiADC segment.

Figure 20

illustrates the basic idea of client-side and server-side profiles.

Figure  20: SSL profiles

56

Table 2

provides a summary of the predefined profiles. You can select predefined profiles in the real server pool configuration, or you can create user-defined profiles.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring real server SSL profiles Chapter 4: Server Load Balancing

 Table 2: Predefined real server profiles

Profile Defaults

LB_RS_SSL_PROF_DEFAULT l

Allow version: SSLv3, TLSv1.0, TLSv1.1, and TLSv1.2

l

Cipher suite list: custom

LB_RS_SSL_PROF_ECDSA l

Allow version: SSLv3, TLSv1.0, TLSv1.1, and TLSv1.2

l

Cipher suite list: ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-

ECDSA-AES256-SHA384, ECDHE-ECDSA-AES256-SHA, ECDHE-

ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES128-

SHA256,ECDHE-ECDSA-AES128-SHA,ECDHE-ECDSA-RC4-

SHA,ECDHE-ECDSA-DES-CBC3-SHA

LB_RS_SSL_PROF_ECDSA_

SSLV3

LB_RS_SSL_PROF_ECDSA_

TLS12 l

Allow version: SSLv3 l

Cipher suite list: ECDHE-ECDSA-AES256-SHA, ECDHE-ECDSA-

AES128-SHA,ECDHE-ECDSA-RC4-SHA,ECDHE-ECDSA-DES-

CBC3-SHA l

Allow version: TLSv1.2

l

Cipher suite list: ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-

ECDSA-AES256-SHA384, ECDHE-ECDSA-AES128-GCM-

SHA256,ECDHE-ECDSA-AES128-SHA256

LB_RS_SSL_PROF_ENULL

LB_RS_SSL_PROF_HIGH l

Allow version: SSLv3, TLSv1.0, TLSv1.1, and TLSv1.2

l

Cipher suite list:  eNull

Recommended for Microsoft Direct Access servers where the application data is already encrypted and no more encryption is needed.

l

Allow version TLSv1.2

l

Cipher suite list:  ECDHE-RSA-AES256-GCM-SHA384 ECDHE-

RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA DHE-RSA-

AES256-GCM-SHA384 DHE-RSA-AES256-SHA256 AES256-GCM-

SHA384 AES256-SHA256

LB_RS_SSL_PROF_LOW_SSLV2 l

Allow version: SSLv2 l

Cipher suite list:  RC4-MD5

LB_RS_SSL_PROF_LOW_SSLV3 l

Allow version SSLv3 l

Cipher suite list:  See the check list onscreen.

LB_RS_SSL_PROF_MEDIUM

NONE l

Allow version: TLSv1.0, TLSv1.1, and TLSv1.2

l

Cipher suite list:  See the check list onscreen.

l

Allow version: SSLv2, SSLv3, TLSv1.0, TLSv1.1, and TLSv1.2

l

Cipher suite list:  N/A

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

57

Chapter 4: Server Load Balancing

Before you begin: l

You must have Read-Write permission for Load Balance settings.

To configure custom real server profiles:

1. Go to Server Load Balance > Real Server Pool.

2. Click the Real Server SSL Profile tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 3

.

5. Save the configuration.

Configuring real server SSL profiles

You can clone a predefined configuration object to help you get started with a userdefined configuration.

To clone a configuration object, click the clone icon on the configuration summary page.

that appears in the tools column

 Table 3: Real Server SSL Profile configuration guidelines

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

You reference this name in the real server pool configuration.

Note: After you initially save the configuration, you cannot edit the name.

SSL Enable/disable SSL for the connection between the FortiADC and the real server.

Note: If the profile is to be used for Layer 2 SSL Forward Proxy, you should disable this setting because the connection with the next hop is not an SSL connection. However, in an SSL Forward proxy deployment, FortiADC acts as a proxy for the client, so you have the option to configure the SSL ciphers, SSL versions, and a Certificate Verify configuration that a client would ordinarily use to validate the certificate presented by the destination server.

Customized SSL Ciphers

Flag

Enable/disable use of user-specified cipher suites.

58 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring real server SSL profiles Chapter 4: Server Load Balancing

Settings Guidelines

Customized SSL Ciphers If the customize cipher flag is enabled, specify a colon-separated, ordered list of cipher suites.

An empty string is allowed. If empty, the default cipher suite list is used.

The names you enter are validated against the form of the cipher suite short names published on the OpenSSL website: https://www.openssl.org/docs/manmaster/apps/ciphers.html

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

59

Chapter 4: Server Load Balancing

Settings

New SSL Ciphers

Configuring real server SSL profiles

Guidelines

Ciphers are listed from strongest to weakest: l

ECDHE-ECDSA-AES256-GCM-SHA384 l

ECDHE-ECDSA-AES256-SHA384 l

ECDHE-ECDSA-AES256-SHA l

ECDHE-ECDSA-AES128-GCM-SHA256 l

ECDHE-ECDSA-AES128-SHA256 l

ECDHE-ECDSA-AES128-SHA l

ECDHE-ECDSA-DES-CBC3-SHA l

ECDHE-ECDSA-RC4-SHA l

ECDHE-RSA-AES256-GCM-SHA384 l

ECDHE-RSA-AES256-SHA384 l

ECDHE-RSA-AES256-SHA l

DHE-RSA-AES256-GCM-SHA384 l

DHE-RSA-AES256-SHA256 l

DHE-RSA-AES256-SHA l

AES256-GCM-SHA384 l

AES256-SHA256 l

AES256-SHA l

ECDHE-RSA-AES128-GCM-SHA256 l

ECDHE-RSA-AES128-SHA256 l

ECDHE-RSA-AES128-SHA l

DHE-RSA-AES128-GCM-SHA256 l

DHE-RSA-AES128-SHA256 l

DHE-RSA-AES128-SHA l

AES128-GCM-SHA256 l

AES128-SHA256 l

AES128-SHA l

ECDHE-RSA-RC4-SHA l

RC4-SHA l

RC4-MD5 l

ECDHE-RSA-DES-CBC3-SHA l

EDH-RSA-DES-CBC3-SHA l

DES-CBC3-SHA l

EDH-RSA-DES-CBC-SHA l

DES-CBC-SHA l eNULL

We recommend retaining the default list. If necessary, you can deselect ciphers you do not want to support.

60 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using real server pools Chapter 4: Server Load Balancing

Settings

Allow SSL Versions

Certificate Verify

SNI Forward Flag

Session Reuse Flag

Session Reuse Limit

TLS Ticket Flag

Guidelines

Select SSL versions that are allowed for the connection.

Specify a Certificate Verify configuration object to validate server certificates.

This Certificate Verify object must include a CA group and may include OCSP and CRL checks.

Enable/disable forwarding the client SNI value to the server. The SNI value will be forwarded to the real server only when the client-side ClientHello message contains a valid SNI value; otherwise, nothing is forwarded.

Enable/disable SSL session reuse.

The default is 0 (disabled). The valid range is 0-1048576.

Enable/disable TLS ticket-based session reuse .

Using real server pools

This section includes the following topics: l l

Configuring real server pools

Example: Using port ranges and the port 0 configuration

Configuring real server pools

Server pools are groups of real servers that host the applications that you load balance.

To configure a server pool:

1. Create a server pool object.

2. Add members.

Before you begin: l l l l l

You must have a good understanding and knowledge of the backend server boot behavior, for example, how many seconds it takes to “warm up” after a restart before it can process traffic.

You must know the IP address and port of the applications.

If you want to select user-defined health checks, you must create them before creating the pool configuration. See

Configuring health checks

.

If you want to select user-defined real server SSL profiles, you must create them before creating the pool configuration. See

Configuring real server SSL profiles

.

You must have Read-Write permission for Load Balance settings.

After you have configured a real server pool, you can select it in the virtual server configuration.

To configure a pool:

1. Go to Server Load Balance > Real Server Pool.

The configuration page displays the Real Server tab.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

61

Chapter 4: Server Load Balancing Using real server pools

2. Click Add to display the configuration editor.

3. Complete the configuration and add members as described in

Table 4

.

4. Save the configuration.

 Table 4: Real Server Pool configuration guidelines

Settings Guidelines

Pool

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the virtual server configuration.

Note: After you initially save the configuration, you cannot edit the name.

Address Type l

IPv4 l

IPv6

Health Check Enable health checking for the pool. You can override this for individual servers in the pool.

Health Check Relationship l

AND—All of the selected health checks must pass for the server to the considered available.

l

OR—One of the selected health checks must pass for the server to be considered available.

Health Check List

Real Server SSL

Profile

Select one or more health check configuration objects.

Select a real server SSL profile. Real server profiles determine settings for communication between FortiADC and the backend real servers. The default is LB_RS_

SSL_PROF_NONE, which is applicable for non-SSL traffic.

Member

Status

Server Name l

Enable—The server can receive new sessions.

l

Disable—The server does not receive new sessions and closes any current sessions as soon as possible.

l

Maintain—The server does not receive new sessions but maintains any current connections.

Real server member configuration name to appear in logs and reports.

Alphabetic, numeric, underscore (_), and hyphen (-) characters are allowed.

The setting is required.

62 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using real server pools

Settings

Address

Port

Weight

Chapter 4: Server Load Balancing

Guidelines

Backend server IP address.

In a Layer 2 virtual server deployment, specify the IP address of the next hop to the destination server. Configure a pseudo default gateway in the static route table since Layer 2 virtual servers need to use this default route internally to match all the destinations that the client wants to access. However, this default gateway is not used because the next hop is the pool member and not the pseudo gateway. In a Layer 2 virtual server deployment, ensure the backend servers have been configured to route responses through the FortiADC IP address.

Backend server listening port number. Usually HTTP is 80, HTTPS is 443, FTP is

21, SMTP is 25, DNS is 53, POP3 is 110, IMAP4 is 143, RADIUS is 1812, and

SNMP is 161.

Tip: The system handles port 0 as a “wildcard” port. When configured to use port

0, the system uses the destination port from the client request. For example, if you specify 0, and the destination port in the client request is 50000, the traffic is forwarded to port 50000.

Assigns relative preference among members—higher values are more preferred and are assigned connections more frequently. The default is 1. The valid range is 1 to 256.

All load balancing methods consider weight. Servers are dispatched requests proportional to their weight, relative to the sum of all weights.

The following example shows the effect of weight on Round Robin: l

Sever A, Weight 2; Server B, Weight 1: Requests are sent AABAAB.

l

Sever A, Weight 3; Server B, Weight 2: Requests are sent AABAB.

For other methods, weight functions as a tie-breaker. For example, with the Least

Connection algorithm, requests are sent to the server with the least connections.

If the number of connections is equal, the request is sent to the server with the greater weight. For example: l

Server A, Weight 1, 1 connection l

Server B, Weight 2, 1 connection l

The next request is sent to Server B.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

63

Chapter 4: Server Load Balancing

Settings

Recover

Warm Up

Warm Rate

Guidelines

Using real server pools

Seconds to postpone forwarding traffic after downtime, when a health check indicates that this server has become available again. The default is 0 (disabled).

The valid range is 1 to 86,400 seconds. After the recovery period elapses, the

FortiADC assigns connections at the warm rate.

Examples of when the server experiences a recovery and warm-up period: l

A server is coming back online after the health check monitor detected it was down.

l

A network service is brought up before other daemons have finished initializing and therefore the server is using more CPU and memory resources than when startup is complete.

To avoid connection problems, specify the separate warm-up rate, recovery rate, or both.

Tip: During scheduled maintenance, you can also manually apply these limits by setting Status to Maintenance instead of Enable.

Note: Not applicable for SIP servers.

If the server cannot initially handle full connection load when it begins to respond to health checks (for example, if it begins to respond when startup is not fully complete), indicate how long to forward traffic at a lesser rate. The default is 0

(disabled). The valid range is 1 to 86,400 seconds.

Note: Not applicable for SIP servers.

Maximum connection rate while the server is starting up. The default is 10 connections per second. The valid range is 1 to 86,400 connections per second.

The warm up calibration is useful with servers that have the network service brought up before other daemons have finished initializing. As the servers are brought online, CPU and memory are more utilized than they are during normal operation. For these servers, you define separate rates based on warm-up and recovery behavior. For example, if Warm Up is 5 and Warm Rate is 2, the number of allowed new connections increases at the following rate: l

1st second—Total of 2 new connections allowed (0+2).

l

2nd second—2 new connections added for a total of 4 new connections allowed

(2+2).

l

3rd second—2 new connections added for a total of 6 new connections allowed

(4+2).

l

4th second—2 new connections added for a total of 8 new connections allowed

(6+2).

l

5th second—2 new connections added for a total of 10 new connections allowed

(8+2).

Note: Not applicable for SIP servers.

64 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using real server pools Chapter 4: Server Load Balancing

Settings

Connection Limit

Connection Rate

Limit

Guidelines

Maximum number of concurrent connections to the backend server. The default is

0 (disabled). The valid range is 1 to 1,048,576 concurrent connections.

Note: Connection Limit is not supported for FTP or SIP servers.

Limit the number of new connections per second to this server. The default is 0 (disabled). The valid range is 1 to 86,400 connections per second.

In Layer 4 deployments, you can apply a connection rate limit per real server and per virtual server. Both limits are enforced.

Note: The connection rate limit applies only when the real servers belong to a Layer 4 virtual server. If you add a real server pool with this setting configured to a Layer 7 virtual server, for example, the setting is ignored.

Note: Connection Rate Limit is not supported for FTP or SIP servers.

Cookie

Backup

Cookie name to be used when cookie-based Layer 7 session persistence is enabled. The cookie is used to create a FortiADC session ID, which enables the system to forward subsequent related requests to the same backend server.

If you do not specify a cookie name, it is set to the pool member server name string.

Note: Not applicable for SIP servers.

Designate this as a server that the ADC directs traffic to only when other servers in the pool are down. The backup server receives connections when all the other pool members fail the health check or you have manually disabled them, for example.

Note: Not applicable for SIP servers.

Use the pool's health check settings. Disable to override those settings by selecting a different health check to use with this individual backend server.

Health Check

Inherit

Health Check Enable health checking for this server.

Health Check Relationship l

AND—All of the selected health checks must pass for the server to the considered available.

l

OR—One of the selected health checks must pass for the server to be considered available.

Health Check List

RS Profile Inherit

Select one or more health check configuration objects. Shift-click to select multiple objects.

Enable to inherit the real server SSL profile from the pool configuration. Disable to specify the real server profile in this member configuration.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

65

Chapter 4: Server Load Balancing

Settings

RS Profile

Guidelines

Using real server pools

If not configured to inherit the pool setting, specify a real server SSL profile. Real server SSL profiles determine settings for communication between FortiADC and the backend real servers.

Example: Using port ranges and the port 0 configuration

In some deployments, it is advantageous to support listening port ranges for client requests. For example, data centers or web hosting companies sometimes use port numbers to identify their customers. Client A sends requests to port 50000, client B to port 50001, client C to port 50002, and so on.

To support this scenario:

1. On the real servers, configure the listening ports and port ranges according to your requirements.

2. On the FortiADC, when you configure the real server pool member, specify port 0 for the port. The system handles port 0 as a “wildcard” port. When configured to use port 0, the system uses the destination port from the client request. For example, if you specify 0, and the destination port in the client request is 50000, the traffic is forwarded to port 50000.

3. When you configure the virtual server, specify a listening port and port range. The port range is like an offset. If the specified port is 50000 and the port range is 10, the virtual server listens on ports 50000-50009.

Figure 21

and

Figure 22

highlight the key FortiADC configuration elements.

Figure  21: Real server port 0 configuration

66 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring persistence rules

Figure  22: Virtual server port range configuration

Chapter 4: Server Load Balancing

Note: Ports shown on the Dashboard > Virtual Server > Real Server page are for the configured port, so in this case, port 0. The ports shown in traffic logs are the actual destination port, so in this case, port 50000.

Configuring persistence rules

Persistence rules identify traffic that should not be load balanced, but instead forwarded to the same backend server that has seen requests from that source before. Typically, you configure persistence rules to support server

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

67

Chapter 4: Server Load Balancing Configuring persistence rules transactions that depend on an established client-server session, like e-commerce transactions or SIP voice calls.

The system maintains persistence session tables to map client traffic to backend servers based on the session attribute specified by the persistence rule.

The persistence table is evaluated before load balancing rules. If the packets received by the ADC match an entry in the persistence session table, the packets are forwarded to the server that established the connection, and load balancing rules are not applicable.

Most persistence rule types have a timeout. When the time that has elapsed since the system last received a request from the client IP address is greater than the timeout, the system does not use the mapping table to forward the request. Instead, it again selects the server using the method specified in the virtual server configuration. Hash-based rule types have a timeout built into the hash algorithm. For other types, you can specify the timeout.

Table 5

describes the predefined persistence rules. You can get started with these commonly used persistence methods or create custom objects.

 Table 5: Predefined persistence rules

Predefined Description

LB_PERSIS_SIP Persistence based on source IP address or subnet.

LB_PERSIS_CONSISTENT_

SIP

Persistence based on a hash of source IP address.

LB_PERSIS_HASH_SRC_

ADDR_PORT

LB_PERSIS_HASH_COOKIE

LB_PERSIS_RDP_COOKIE

LB_PERSIS_SSL_SESS_ID

LB_PERSIS_SIP_CALL_ID

Persistence based on a hash that includes source IP address and port.

Persistence based on a hash of a session cookie provided by the backend server.

Persistence based on RDP cookie sent by RDP clients in the initial connection request.

Persistence based on the SSL session ID.

Persistence based on the SIP call ID.

Before you begin: l l

You must have a good understanding and knowledge of the applications that require persistent sessions and the methods that can be used to identify application sessions.

You must have Read-Write permission for Load Balance settings.

After you have configured a persistence rule, you can select it in the virtual server configuration.

To configure a persistence rule:

1. Go to Server Load Balance > Application Resources.

2. Click the Persistence tab.

3. Click Add to display the configuration editor.

68 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring persistence rules Chapter 4: Server Load Balancing

4. Give the rule a name, select the type, and specify rule settings as described in

Table 6

.

5. Save the configuration.

You can clone a predefined configuration object to help you get started with a userdefined configuration.

To clone a configuration object, click the clone icon that appears in the tools column on the configuration summary page.

 Table 6: Persistence rule guidelines

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the virtual server configuration.

Note: After you initially save the configuration, you cannot edit the name.

Type Select a persistence type.

Source Address

Source Address

Timeout

Persistence is based on source IP address.

Timeout for an inactive persistence session table entry. The default is 300 seconds. The valid range is 1-86,400.

Subnet Mask Bits

(IPv4)

Subnet Mask Bits

(IPv6)

Number of bits in a subnet mask to specify a network segment that should following the persistence rule. For example, if IPv4 maskbits is set to 24, and the backend server A responds to a client with the source IP 192.168.1.100, server A also responds to all clients from subnet 192.168.1.0/24.

Number of bits in a subnet mask to specify a network segment that should following the persistence rule.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

69

Chapter 4: Server Load Balancing Configuring persistence rules

Settings Guidelines

Match across servers

Enable so clients continue to access the same backend server through different virtual servers for the duration of a session.

For example, a client session with a vSphere 6.0 Platform Services Controller

(PSC) has connections on the following ports: 443, 389, 636, 2012, 2014, 2020. A

FortiADC deployment to load balance a cluster of vSphere PSCs includes Layer 4 virtual server configurations for each of these ports. To ensure a client’s connections for a session go to the same backend real server:

1. Create a persistence object based on Source Address affinity and select the

Match Across Servers option.

2. Select this persistence object in each of the Layer 4 virtual servers configured to load balance the vSphere PSC pool.

3. Select the same real server pool object in each of the Layer 4 virtual servers configured to load balance the vSphere PSC pool.

When these options are enabled, FortiADC dispatches the intial connection to a real server destination (for example, RS1) based on the virtual server’s load balancing method, and the persistence object is noted in the connection table.

Subsequent connection attempts with the same source IP address to any

FortiADC virtual server that has this persistence object and real server pool are dispatched to RS1, as long as the session is active.

Note: In the Layer 4 virtual server configuration, you specify a packet forwarding method. You can use Source Address persistence with Match Across Servers with any combination of Direct Routing, DNAT, and Full NAT packet forwarding methods. However, with NAT46 and NAT64 packet forwarding methods, the source address type is different from the real server address type. To use Match

Across Servers with NAT46 or NAT64, all virtual servers for the application must be configured with the same packet forwarding method: all NAT46 or all NAT64.

Source Address Hash

Source Address

Hash

Persistence is based on a hash of the IP address of the client making an initial request.

Source Address-Port Hash

Source Address-

Port Hash

Persistence is based on a hash of the IP address and port of an initial client request.

HTTP Header Hash

HTTP Header Hash Persistence is based on a hash of the specified header value found in an initial client request.

Keyword A value found in an HTTP header.

70 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring persistence rules Chapter 4: Server Load Balancing

Settings Guidelines

HTTP Request Hash

HTTP Request

Hash

Persistence is based on a hash of the specified URL parameter in an initial client request.

A URL parameter.

Keyword

Cookie Hash

Cookie Hash

Persistent Cookie

Persistence is based on a hash of the cookie provided by the backend server.

Persistent Cookie

Keyword

Timeout

Persistence is based on the cookie provided in the backend server response. It forwards subsequent requests with this cookie to the original backend server.

Backend server cookie name.

Timeout for an inactive persistence session table entry. The default is 300 seconds. The valid range is 1-86,400.

Insert Cookie

Insert Cookie

Keyword

Timeout

Persistence is based on a cookie inserted by the FortiADC system.

The system inserts a cookie whose name is the value specified by Keyword and whose value is the real server pool member Cookie value and expiration date (if the client does not already have a cookie).

For example, if the value of Keyword is sessid and the real server pool member

Cookie value is rs1, FortiADC sends the cookie sessid=rs1|U6iFN to the client, where U6iFN is the expiration date as a base64 encoded string.

Specifies the cookie name.

Timeout for an inactive persistence session table entry. The default is 300 seconds. The valid range is 1-86,400.

Rewrite cookie

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

71

Chapter 4: Server Load Balancing Configuring persistence rules

Settings

Rewrite Cookie

Guidelines

Persistence is based on the cookie provided in the backend server response, but the system rewrites the cookie.

The system checks the HTTP response for a Set-Cookie: value that matches the value specified by Keyword. It replaces the keyword value with the real server pool member Cookie value.

For example, the value of Keyword in the persistence configuration is sessid. The real server pool member Cookie value is rs1. After an initial client request, the response from the server contains Set-Cookie: sessid=666, which FortiADC changes to Set-Cookie: sessid=rs1. FortiADC uses this rewritten value to forward subsequent requests to the same backend server as the original request.

Keyword

Embedded Cookie

Specifies a Set-Cookie: value to match.

Embedded Cookie Persistence is based on the cookie provided in the backend server response.

Like Rewrite Cookie, the system checks the HTTP response for a Set-

Cookie: value that matches the value specified by Keyword in the persistence configuration. However, it preserves the original value and adds the real server pool member Cookie value and a ~ (tilde) as a prefix.

For example, the value of Keyword is sessid. The real server pool member

Cookie value is rs1. After an initial client request, the response from the server contains Set-Cookie: sessid=666, which the system changes to Set-

Cookie: sessid=rs1~666 . It uses this rewritten value to forward subsequent requests to the same backend server as the original request.

Keyword

RADIUS Attribute

Specifies a Set-Cookie: value to match.

RADIUS Attribute Persistence is based on a specified RADIUS attribute.

Keyword

Timeout

RADIUS attribute. Specify the RADIUS attribute number. For example, specify 8 for

Framed-IP-Address or 31 for Calling-Station-ID. For a list of RADIUS attribute numbers, see https://tools.ietf.org/html/rfc2865#page-22 .

Timeout for an inactive persistence session table entry. The default is 300 seconds. The valid range is 1-86,400.

Match across servers

Enable so clients continue to access the same backend server through different virtual servers for the duration of a session.

72 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring content routes Chapter 4: Server Load Balancing

Settings

RDP Cookie

RDP Cookie

SSL Session ID

SSL Session ID

Timeout

Guidelines

Persistence based on RDP cookie sent by RDP clients in the initial connection request.

Persistence is based on SSL session ID.

Timeout for an inactive persistence session table entry. The default is 300 seconds. The valid range is 1-86,400.

SIP Call ID

SIP Call ID

Timeout

Persistence is based on SIP Call ID. For SIP services, you can establish persistence using Source Address, Source Address Hash, or SIP caller ID.

Timeout for an inactive persistence session table entry. The default is 300 seconds. The valid range is 1-86,400.

Configuring content routes

You can use the content routes configuration to select the backend server pool based on matches to TCP/IP or

HTTP header values.

Layer 7 content route rules are based on literal or regular expression matches to the following header values: l l l l l

HTTP Host

HTTP Referer

HTTP Request URL

SNI

Source IP address

You might want to use Layer 7 content routes to simplify front-end coding of your web pages or to obfuscate the precise server names from clients. For example, you can publish links to a simple URL named example.com and use content route rules to direct traffic for requests to example.com to a server pool that includes server1.example.com, server2.example.com, and server3.example.com.

Layer 4 content route rules are based on literal or regular expression matches to the following header values: l

Source IP address

Before you begin: l l l

You must have a good understanding of HTTP header fields .

You must have a good understanding of Perl-compatible regular expressions (PCRE) if you want to use them in rule matching.

You must have Read-Write permission for Load Balance settings.

After you have configured a content routing rule, you can select it in the virtual server configuration.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

73

Chapter 4: Server Load Balancing Configuring content routes

Note: You can select multiple content routing rules in the virtual server configuration. Rules you add to that configuration are consulted from top to bottom. The first rule to match is applied. If the traffic does not match any of the content routing rule conditions specified in the virtual server configuration, the system behaves unexpectedly. Therefore, it is important that you create a “catch all” rule that has no match conditions. In the virtual server configuration, this rule should be ordered last so it can be used to forward traffic to a default pool.

To configure a content route rule:

1. Go to Server Load Balance > Virtual Server.

2. Click the Content Routing tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 7

.

5. Save the configuration.

 Table 7: Content routes configuration guidelines

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the virtual server configuration.

Note: After you initially save the configuration, you cannot edit the name.

Type l

Layer 4 l

Layer 7

Real Server Select a real server pool.

Persistence Inherit Enable to use the persistence object specified in the virtual server configuration.

Persistence

Method Inherit

If not using inheritance, select a session persistence type.

Enable to use the method specified in the virtual server configuration.

Method

Comments

If not using inheritance, select a load balancing method type.

A string to describe the purpose of the configuration, to help you and other administrators more easily identify its use.

Layer 4 Specifics

IPv4/Mask Address/mask notation to match the source IP address in the packet header.

IPv6/Mask Address/mask notation to match the source IP address in the packet header.

Layer 7 Match Condition

74 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using content rewriting rules

Settings

Object

Type

Content

Reverse

Chapter 4: Server Load Balancing

Guidelines

Select content matching conditions based on the following parameters: l

HTTP Host Header l

HTTP Referer Header l

HTTP Request URL l

SNI l

Source IP Address

Note: When you add multiple conditions, FortiADC joins them with an AND operator. For example, if you specify both a HTTP Host Header and HTTP

Request URL to match, the rule is a match only for traffic that meets both conditions.

l

String l

Regular Expression

Specify the string or PCRE syntax to match the header or IP address.

Note: An empty match condition matches any HTTP request.

Rule matches if traffic does not match the expression.

Using content rewriting rules

This section includes the following topics: l l l l l l

Overview

Configuring content rewriting rules

Example: Redirecting HTTP to HTTPS

Example: Rewriting the HTTP response when using content routing

Example: Rewriting the HTTP request and response to mask application details

Example: Rewriting the HTTP request to harmonize port numbers

Overview

You might rewrite the HTTP request/response and HTTP headers for various reasons, including the following: l l l

Redirect HTTP to HTTPS

External-to-internal URL translation

Other security reasons

Table 8

summarizes the HTTP header fields that can be rewritten.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

75

Chapter 4: Server Load Balancing Using content rewriting rules

 Table 8: HTTP header rewriting

Direction HTTP Header

HTTP Request

HTTP Redirect l

Host l

Referer

Location

HTTP Response Location

The first line of an HTTP request includes the HTTP method, relative URL, and HTTP version. The next lines are headers that communicate additional information. The following example shows the HTTP request for the URL http://www.example.com/index.html:

GET /index.html HTTP/1.1

Host: www.example.com

Referer: http://www.google.com

The following is an example of an HTTP redirect including the HTTP Location header:

HTTP/1.1 302 Found

Location: http://www.iana.org/domains/example/

You can use literal strings or regular expressions to match traffic to rules. To match a request URL such as http://www.example.com/index, you create two match conditions: one for the Host header www.example.com

and another for the relative URL that is in the GET line: /index.html.

For HTTP redirect rules, you can specify the rewritten location as a literal string or as a regular expression. For all other types or rules, you must specify the complete URL as a literal string.

Configuring content rewriting rules

Before you begin: l l l

You must have a good understanding of HTTP header fields .

You must have a good understanding of Perl-compatible regular expressions (PCRE) if you want to use them in rule matching or rewriting.

You must have Read-Write permission for Load Balance settings.

After you have configured a content rewriting rule, you can select it in the virtual server configuration.

Note: You can select multiple content rewriting rules in the virtual server configuration. Rules you add to that configuration are consulted from top to bottom. The first to match is applied. If the traffic does not match any of the content rewriting rule conditions, the header is not rewritten.

To configure a content rewriting rule:

1. Go to Server Load Balance > Virtual Server.

2. Click the Content Rewriting tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 9

.

5. Save the configuration.

76 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using content rewriting rules Chapter 4: Server Load Balancing

 Table 9: Content rewriting rule guidelines

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the virtual server configuration.

Note: After you initially save the configuration, you cannot edit the name.

Comments A string to describe the purpose of the configuration, to help you and other administrators more easily identify its use.

Action Type Select whether to rewrite the HTTP request or HTTP response.

HTTP Request Rewrite Actions

Rewrite HTTP

Header

Host—Rewrites the Host header by replacing the hostname with the string you specify. For Host rules, specify a replacement domain and/or port.

URL—Rewrites the request URL and Host header using the string you specify.

For URL rules, specify a URL in one of the following formats: l

Absolute URL — https://example.com/content/index.html

l

Relative URL — content/index.html

If you specify a relative URL, the host header is not rewritten.

Referer—Rewrites the Referer header with the URL you specify. For Referer rules, you must specify an absolute URL.

Note: The rewrite string is a literal string. Regular expression syntax is not supported.

Redirect Sends a redirect with the URL you specify in the HTTP Location header field.

For Redirect rules, you must specify an absolute URL. For example: https://example.com/content/index.html

Note: The rewrite string can be a literal string or a regular expression.

Sends a 403 Forbidden response instead of forwarding the request.

Send 403 forbidden

HTTP Response Rewrite Actions

Rewrite HTTP

Location

Rewrites the Location header field in the server response.

For Location rules, you must specify an absolute URL. For example: https://example.com/content/index.html

Note: The rewrite string is a literal string. Regular expression syntax is not supported.

Match Condition

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

77

Chapter 4: Server Load Balancing

Settings

Object

Type

Content

Reverse

Guidelines

Using content rewriting rules

Select content matching conditions based on the following parameters: l

HTTP Host Header l

HTTP Location Header l

HTTP Referer Header l

HTTP Request URL l

Source IP Address

Note: When you add multiple conditions, FortiADC joins them with an AND operator. For example, if you specify both a HTTP Host Header and HTTP

Request URL to match, the rule is a match only for traffic that meets both conditions.

l

String l

Regular Expression

Specify the string or PCRE syntax to match the header or IP address.

Rule matches if traffic does not match the expression.

Example: Redirecting HTTP to HTTPS

You can use the content rewriting feature to send redirects. One common case to use redirects is when the requested resource requires a secure connection, and the links from your web pages are coded correctly, but the client types an HTTP URL instead of an HTTPS URL in the location bar of the web browser.

For HTTP redirect rules, you can specify the rewritten location as a literal string or regular expression.

Figure 23

shows a redirect rule that matches a literal string and rewrites a literal string. In the match condition table, the rule is set to match traffic that has the Host header domain example.com and the relative URL

/resource/index.html

in the HTTP request URL. The redirect action sends a secure URL in the Location header: https://example.com/resource/index.html.

78 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using content rewriting rules

Figure  23: Redirecting HTTP to HTTPS (literal string)

Chapter 4: Server Load Balancing

Regular expressions are a powerful way of denoting all possible forms of a string. They are very useful when trying to match text that comes in many variations but follows a definite pattern, such as dynamic URLs or web page content.

Figure 24

shows a redirect rule that uses PCRE capture and back reference syntax to create a more general rule than the previous example. This rule sends a redirect for all connections to the same URL but over HTTP. In the match condition table, the first regular expression is (.*). This expression matches any HTTP Host header and stores it as capture 0. The second regular expression is ^/(.*)$. This expression matches the path in the

Request URL (the content after the /) and stores it as capture 1. The regular expression for the redirect action uses the back reference syntax https://$0$1.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

79

Chapter 4: Server Load Balancing

Figure  24: Redirecting HTTP to HTTPS (regular expression)

Using content rewriting rules

80

Table 10

describes commonly used PCRE syntax elements.

Table 11

gives examples of useful and relevant expressions that were originally submitted to the FortiGate Cookbook. For a deeper dive, consult a PCRE reference.

Regular expressions can involve very computationally intensive evaluations. For best performance, you should only use regular expressions where necessary, and build them with care.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using content rewriting rules Chapter 4: Server Load Balancing

 Table 10: Common PCRE syntax elements

Pattern Usage

() Creates a capture group or sub-pattern for back-reference or to denote order of operations.

$0, $1, $2, ...

Only $0, $1,..., $9 are supported.

A back-reference is a regular expression token such as $0 or $1 that refers to whatever part of the text was matched by the capture group in that position within the regular expression.

Back-references are used whenever you want the output/interpretation to resemble the original match: they insert a substring of the original matching text. Like other regular expression features, backreferences help to ensure that you do not have to maintain a large, cumbersome list of all possible

URLs.

To invoke a substring, use $n (0 <=

n <= 9), where n is the order of appearance of capture group in the regular expression, from left to right, from outside to inside, then from top to bottom.

Example

Text: /url/app/app/mapp

Regular expression: (/app)*

Matches: /app/app

Text:

/url?paramA=valueA&paramB=valueB

Regular expression: (param)A=

(value)A&\0B\1B

Matches: paramA=valueA&paramB=valueB

Let’s say the regular expressions in a condition table have the following capture groups:

(a)(b)(c(d))(e)

This syntax results in back-reference variables with the following values:

$0 — a

$1 — b

$2 — cd

$3 — d

$4 — e

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

81

Chapter 4: Server Load Balancing

Pattern

\

.

+

Usage

Escape character.

Except, if it is followed by an alphanumeric character, the alphanumeric character is not matched literally as usual. Instead, it is interpreted as a regular expression token. For example, \w matches a word, as defined by the locale.

Except, if it is followed by regular expression special character:

*.|^$?+\(){}[]\

When this is the case, the \ escapes interpretation as a regular expression token, and instead treats the character as a normal letter.

For example, \\ matches the \ character.

Matches any single character

except \r or \n.

Note: If the character is written by combining two Unicode code points, such as à where the core letter is encoded separately from the accent mark, this will not match the entire character: it will only match one of the code points.

Repeatedly matches the previous character or capture group, 1 or more times, as many times as possible (also called “greedy” matching) unless followed by a question mark ( ? ), which makes it optional.

Does not match if there is not at least 1 instance.

Using content rewriting rules

Example

Text: /url?parameter=value

Regular expression: \?param

Matches: ?param

Text: My cat catches things.

Regular expression: c.t

Matches: cat cat

Text: www.example.com

Regular expression: w+

Matches: www

Would also match “w”, “ww”, “wwww”, or any number of uninterrupted repetitions of the character “w”.

82 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using content rewriting rules

Pattern

*

?

?=

Chapter 4: Server Load Balancing

Usage

Repeatedly matches the previous character or capture group, 0 or more times. Depending on its combination with other special characters, this token could be either:

* — Match as many times as possible (also called “greedy” matching).

*? — Match as few times as possible (also called “lazy” matching).

Makes the preceding character or capture group optional (also called

“lazy” matching).

This character has a different significance when followed by =.

Looks ahead to see if the next character or capture group matches and evaluate the match based upon them, but does not include those next characters in the returned match string (if any).

This can be useful for backreferences where you do not want to include permutations of the final few characters, such as matching “cat” when it is part of “cats” but not when it is part of “catch”.

Example

Text: www.example.com

Regular expression: .*

Matches: www.example.com

All of any text, except line endings

(\r and \n).

Text: www.example.com

Regular expression: (w)*?

Matches: www

Would also match common typos where the “w” was repeated too few or too many times, such as “ww” in w.example.com or “wwww” in wwww.example.com. It would still match, however, if no amount of “w” existed.

Text: www.example.com

Regular expression:

(www\.)?example.com

Matches: www.example.com

Would also match example.com.

Text: /url?parameter=valuepack

Regular expression: p(?=arameter)

Matches: p, but only in “parameter,

not in “pack”, which does not end with

“arameter”.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

83

Chapter 4: Server Load Balancing

Pattern

^

$

[]

{}

Usage

Matches either: the position of the beginning of a line (or, in multiline mode, the first line), not the first character itself the inverse of a character, but only if

^ is the first character in a character class, such as [^A]

This is useful if you want to match a word, but only when it occurs at the start of the line, or when you want to match anything that is not a specific character.

Matches the position of the end of a line

(or, in multiline mode, the entire string),

not the last character itself.

Defines a set of characters or capture groups that are acceptable matches.

To define a set via a whole range instead of listing every possible match, separate the first and last character in the range with a hyphen.

Note: Character ranges are matched according to their numerical code point in the encoding. For example, [@-B] matches any UTF-8 code points from 40 to 42 inclusive: @AB

Quantifies the number of times the previous character or capture group may be repeated continuously.

To define a varying number repetitions, delimit it with a comma.

Using content rewriting rules

Example

Text: /url?parameter=value

Regular expression: ^/url

Matches: /url, but only if it is at the beginning of the path string. It will not match “/url” in subdirectories.

Text: /url?parameter=value

Regular expression: [^u]

Matches: /rl?parameter=value

Text: /url?parameter=value1

Regular expression: [012]

Matches: 1

Would also match 0 or 2.

Text: /url?parameter=valueB

Regular expression: [A-C]

Matches: B

Would also match “A” or “C”. It would

not match “b”.

Text: 1234567890

Regular expression: \d{3}

Matches: 123

Text: www.example.com

Regular expression: w{1,4}

Matches: www

If the string were a typo such as “ww ” or “wwww”, it would also match that.

84 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using content rewriting rules

Pattern

(?i)

|

Chapter 4: Server Load Balancing

Usage

Turns on case-insensitive matching for subsequent evaluation, until it is turned off or the evaluation completes.

Matches either the character/capture group before or after the pipe ( | ).

Example

Text: /url?Parameter=value

Regular expression: (?i)param

Matches: Param

Would also match pArAM etc.

Text: Host: www.example.com

Regular expression: (\r\n)|\n|\r

Matches: The line ending, regardless of platform.

 Table 11: PCRE examples submitted to the FortiGate Cookbook

Regular Expression Usage

[a-zA-Z0-9] Any alphanumeric character. ASCII only; e.g. does not match é or É.

[#\?](.*) All parameters that follow a question mark or hash mark in the URL.

e.g. #pageView or ?param1=valueA&param2=valueB...;

In this expression, the capture group does not include the question mark or hash mark itself.

\b10\.1\.1\.1\b A specific IPv4 address.

\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)

\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)

\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)

\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)

\b

Any IPv4 address.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

85

Chapter 4: Server Load Balancing

Regular Expression

(?i)\b.*\.(a(c|d|e(ro)?|f|g|i|m|n|o|q|r|s

(ia)?|t|y|w|x|z)

|b(a|b|d|e|f|g|h|i(z)?|j|m|n|o|r|s|t|v|w|y|z)

|c(a(t)?|c|d|f|g|h|i|k|l|m|n|o((m)?

(op)?)|r|s|u|v|x|y|z)

|d(e|j|k|m|o|z)

|e(c|du|e|g|h|r|s|t|u)

|f(i|j|k|m|o|r)

|g(a|b|d|e|f|g|h|i|l|m|n|ov|p|q|r|s|t|u|w|y)

|h(k|m|n|r|t|u)

|i(d|e|l|m|n(fo)?(t)?|o|q|r|s|t)

|j(e|m|o(bs)?|p)

|k(e|g|h|i|m|n|p|r|w|y|z)

|l(a|b|c|i|k|r|s|t|u|vy)

|m(a|c|d|e|g|h|il|k|l|m|n|o(bi)?|p|q|r|s|t|u

(seum)?|v|w|x|y|z)

|n(a(me)?|c|e(t)?|f|g|i|l|o|p|r|u|z)

|o(m|rg)

|p(a|e|f|g|h|k|l|m|n|r(o)?|s|t|w|y)

|qa

|r(e|o|s|u|w)

|s(a|b|c|d|e|g|h|i|j|k|l|m|n|o|r|s|t|u|v|y|z)

|t(c|d|el|f|g|h|j|k|l|m|n|o|p|r(avel)?|t|v|w|z)

|u(a|g|k|s|y|z)

|v(a|c|e|g|i|n|u)

|w(f|s)

|xxx

|y(e|t|u)

|z(a|m|w))\b

(?i)\bwww\.example\.com\b

(?i)\b(.*)\.example\.com\b

Usage

Any domain name.

A specific domain name.

Any sub-domain name of example.com.

Using content rewriting rules

Example: Rewriting the HTTP response when using content routing

It is standard for web servers to have external and internal domain names. You can use content-based routing to forward HTTP requests to example.com to a server pool that includes server1.example.com, server2.example.com, and server3.example.com. When you use content routing like this, you should also rewrite the Location header in the HTTP response so that the client receives HTTP with example.com in the header and not the internal domain server1.example.com.

Figure 25

shows a content routing rule that maps requests to example.com to a server pool.

86 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using content rewriting rules

Figure  25: Content routing for the example.com pool

Chapter 4: Server Load Balancing

Figure 26

shows an HTTP response rule that matches a regular expression and rewrites a literal string. In the match condition table, the rule is set to match the regular expression server.*\.example\.com in the HTTP

Location header in the response. The rewrite action specifies the absolute URL http://www.example.com.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

87

Chapter 4: Server Load Balancing Using content rewriting rules

Figure  26: Rewriting the HTTP response when masking internal server names

Example: Rewriting the HTTP request and response to mask application details

Another use case for external-to-internal URL translation involves masking pathnames that give attackers information about your web applications. For example, the unmasked URL for a blog might be http://www.example.com/wordpress/?feed=rss2, which exposes that the blog is a wordpress application. In this case, you want to publish an external URL that does not have clues of the underlying technology. For example, in your web pages, you create links to http://www.example.com/blog instead of the backend URL.

On FortiADC, you create two rules: one to rewrite the HTTP request to the backend server and another to rewrite the HTTP response in the return traffic.

Figure 27

shows an HTTP request rule. In the match condition table, the rule is set to match traffic that has the

Host header domain example.com and the relative URL /blog in the HTTP request URL. The rule action rewrites the request URL to the internal URL http://www.example.com/wordpress/?feed=rss2.

88 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using content rewriting rules Chapter 4: Server Load Balancing

Figure  27: Rewriting the HTTP request when you mask backend application details

Figure 28

shows the rule for the return traffic. In the match condition table, the rule is set to match traffic that has the string http://www.example.com/wordpress/?feed=rss2 in the Location header of the HTTP response. The action replaces that URL with the public URL http://www.example.com/blog.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

89

Chapter 4: Server Load Balancing Using content rewriting rules

Figure  28: Rewriting the HTTP response when you mask backend application details

Example: Rewriting the HTTP request to harmonize port numbers

The HTTP Host header contains the domain name and port. You might want to create a rule to rewrite the port so you can harmonize port numbers that are correlated with your application service. For example, suppose you want to avoid parsing reports on your backend servers that show requests to many HTTP service ports. When you review your aggregated reports, you have records for port 80, port 8080, and so on. You would rather have all

HTTP requests served on port 80 and accounted for on port 80. To support this plan, you can rewrite the HTTP request headers so that all the Host header in all HTTP requests shows port 80.

Figure 29

shows an HTTP request rule that uses a regular expression to match HTTP Host headers for www.example.com with any port number and change it to port 80.

90 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring compression rules

Figure  29: Rewriting the HTTP request port number

Chapter 4: Server Load Balancing

Configuring compression rules

To offload compression from your backend servers, you can configure FortiADC to perform HTTP compression on behalf of the server.

The following content types can be compressed: l l l l application/javascript application/soap+xml application/x-javascript application/xml

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

91

Chapter 4: Server Load Balancing Configuring compression rules l l l l l l text/css text/html text/javascript text/plain text/xml custom

Not all HTTP responses should be compressed. Compression offers the greatest performance improvements when applied to URLs whose media types include repetitive text such as tagged HTML and JavaScript. Files that already contain efficient compression such as GIF images usually should not be compressed, as the CPU usage and time spent compressing them will result in an increased delay rather than network throughput improvement.

Plain text files where no words are repeated, such as configurations with unique URLs or IPs, also may not be appropriate for compression.

Before you begin: l l

You must have a good understanding of HTTP compression and knowledge of the content types served from the backend real servers.

You must have Read-Write permission for Load Balance settings.

Compression is not enabled by default. After you have configured a compression rule, you can select it in the profile configuration. To enable compression, select the profile when you configure the virtual server.

To configure compression:

1. Click Server Load Balance > Application Resources.

2. Click the Compression tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 12

.

5. Save the configuration.

 Table 12: Compression configuration

Settings Guidelines

Name

URI List Type

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the profile configuration.

Note: After you initially save the configuration, you cannot edit the name.

Specify whether to include or exclude items in the list from compression.

URI List Click Add and specify URIs to build the list. You can use regular expressions.

92 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using caching features Chapter 4: Server Load Balancing

Settings

Content Types

Guidelines

Click Add and select from the following content types to build the list: l application/javascript l application/soap+xml l application/x-javascript l application/xml l text/css l text/html l text/javascript l text/plain l text/xml l custom

Note: The "custom" option allows you to specify almost any content/media type, including image files in .JPG, .PNG, and .BMP formats. The default is */*, which means any content/media type.

You can use the CLI to configure advanced options: config load-balance compression edit 1 set cpu-limit {enable | disable} set max-cpu-usage <percent> -- max cpu usage for compression end set min-content-length <bytes> -- min bytes for compression

Using caching features

The system RAM cache can store HTTP content and serve subsequent HTTP requests for that content without forwarding the requests to the backend servers, thereby reducing the load on the backend servers.

You can configure basic static caching or dynamic caching rules.

Static caching

Figure 30

illustrates the static caching feature.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

93

Chapter 4: Server Load Balancing

Figure  30:  Static caching feature

Using caching features

94

Before content is cached

1. FortiADC receives the request from Client A and checks to see if it has a cached copy of the content.

2. If it does not, it forwards the request to a backend server.

3. The server sends content in response, and

FortiADC caches the content.

4. FortiADC sends it to the client.

After content has been cached

1. FortiADC receives the request from Client B and checks to see if it has a cached copy of the content.

2. It does, so it responds by sending the content to the client. The backend server is not contacted.

In general, the RAM cache conforms with the cache requirements described in sections 13 and 14 in RFC 2616 .

If caching is enabled for the profile that is applied to traffic processing, the system evaluates HTTP responses to determine whether or not to cache the content. HTTP responses with status codes 200, 203, 300, 301, 400 can be cached.

The following content is not cached: l l l l l l l l

A response for a request that uses any method other than GET.

A response for a request of which URI is contained in URI Exclude List or Dynamic Request URI Invalid list.

A response for a request that contains any of the following headers: If-Match, If-Unmodified-Since, Authorization,

Proxy-Authorization.

A response that contains any of the following headers: Pragma, Vary, Set-Cookie, and Set-Cookie2.

A response that does not include the Content-Length header. The Content-Length header must be 0.

A response that does not contain the following headers: Cache-Control, Expires.

A response with a Cache-Control header that does not have any of the following values: public, max-age, smaxage.

A response with a Cache-Control header that has one of the following values: no-cache, no-store, private.

In addition, content is not cached if the user-configured RAM cache thresholds described below are exceeded.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using caching features Chapter 4: Server Load Balancing

Dynamic caching

Dynamic caching is subject to rules you configure. In the Dynamic Caching Rules List, content that matches

"caching invalid" URIs is never cached; otherwise, content that matches the Dynamic Cache Rule List of URIs is cached for the period you specify.

Dynamic caching is useful for dynamic web app experiences, such as online stores. For example, suppose a site uses a shopping cart. The URL to list items in the shopping cart is as follows: http://customshop.com/cart/list

The URLs to add or delete items in the cart is as follows: http://customshop.com/cart/add http://customshop.com/cart/delete

In this case, you never want to cache the add or delete pages because the previous content was "invalidated" by the changes the user made. You might want to cache the list page, but only briefly. You can use dynamic "invalid" rules to never cache the add and delete pages and theDynamic Cache Rule List to cache the list page for a brief period that you specify.

Another case where dynamic caching is useful is when content on a page is dynamic. For example, suppose an online ticket vendor has the following URL that shows how many tickets remain available for an event: http://customshop.com/tickets/get_remains. The number of tickets available is updated by a backend database. In this case, you might want to invalidate caching the URL or give it a small age out time.

Configuring caching rules

Before you begin: l l l

You must have a good understanding of caching and knowledge about the size of content objects clients access on the backend servers.

You must have deep and detailed knowledge of your website URIs if you want to create dynamic caching rules.

You must have Read-Write permission for Load Balance settings.

Caching is not enabled by default. After you have configured caching, you can select it in the profile configuration.

To enable caching, select the profile when you configure the virtual server.

To configure caching:

1. Click Server Load Balance > Application Resources.

2. Click the Caching tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 13

.

5. Save the configuration.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

95

Chapter 4: Server Load Balancing Using caching features

 Table 13: Caching configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the profile configuration.

Note: After you initially save the configuration, you cannot edit the name.

The default is 1 MB. The valid range is 1 byte to 10 MB.

Maximum

Object Size

Maximum

Cache Size

The default is 100 MB. The valid range is 1 byte to 500 MB.

Maximum

Entries

The default is 10,000. The valid range is 1 to 262,144.

Maximum Age The default is 43,200 seconds. The valid range is 60 to 86,400.

The backend real server response header also includes a maximum age value.

The FortiADC system enforces whichever value is smaller.

URI Exclude List

URI Specify URIs to build the list. You can use regular expressions.

This list has precedence over the Dynamic Cache Rule List. In other words, if a

URI matches this list, it is ineligible for caching, even if it also matches the

Dynamic Cache Rule list.

Dynamic Cache Rule List

Age Timeout for the dynamic cache entry. The default is 60 seconds. The valid range is 1-

86,400. This age applies instead of any age value in the backend server response header.

URI Pattern to match the URIs that have content you want cached and served by

FortiADC.

Be careful with matching patterns and the order rules in the list. Rules are consulted from lowest rule ID to highest. The first rule that matches is applied.

Invalid URI Pattern to match URIs that trigger cache invalidation.

Be careful with matching patterns and the order rules in the list. Rules are consulted from lowest rule ID to highest. The first rule that matches is applied.

This list has precence over the Dynamic Cache URI list. In other words, if a

URI matches this list, it is ineligible for caching, even if it also matches the

Dynamic Cache URI list.

96 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles Chapter 4: Server Load Balancing

Configuring Application profiles

An application profile is a configuration object that defines how you want the FortiADC virtual server to handle traffic for specific protocols.

Table 14

describes usage for by application profile type, including compatible virtual server types, load balancing methods, persistence methods, and content route types.

 Table 14: Application profile usage

Profile Usage VS Type LB Methods Persistence

FTP Use with FTP servers.

Layer

4

Round Robin, Least

Connections, Fastest

Response

Source Address,

Source Address

Hash

HTTP

HTTPS

Use for standard, unsecured web server traffic.

Use for secured web server traffic when offloading TLS/SSL from the backend servers. You must import the backend server certificates into

FortiADC and select them in the HTTPS profile.

Layer

7,

Layer

2

Layer

7,

Layer

2

Layer 7: Round Robin,

Least Connections,

URI Hash, Full URI

Hash, Host Hash,

Host Domain Hash

Layer 2: Same as

Layer 7, plus

Destination IP Hash

Same as HTTP

Source Address,

Source Address

Hash, Source

Address-Port Hash,

HTTP Header Hash,

HTTP Request

Hash, Cookie Hash,

Persistent Cookie,

Insert Cookie,

Embedded Cookie,

Rewrite Cookie

Same as HTTP, plus

SSL Session ID

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

97

Chapter 4: Server Load Balancing Configuring Application profiles

Profile

TURBO

HTTP

RADIUS

RDP

SIP

Usage

Use for unsecured

HTTP traffic that does not require advanced features like caching, compression, content rewriting, rate limiting,

Geo IP blocking, or source NAT. The profile can be used with content routes and destination NAT, but the HTTP request must be in the first data packet.

This profile enables packet-based forwarding that reduces network latency and system CPU usage.

However, packet-based forwarding for HTTP is advisable only when you do not anticipate dropped packets or outof-order packets.

Use with RADIUS servers.

Use with Windows

Terminal Service

(remote desktop protocol).

Use with applications that use session initiation protocol (SIP), such as VoIP, instant messaging, and video.

VS Type LB Methods

Layer

7

Round Robin, Least

Connections, Fastest

Response

Persistence

Source Address

Layer

7

Layer

7

Layer

7

Round Robin RADIUS attribute

Round Robin, Least Connections

Source Address, Source

Address Hash, Source

Address-Port Hash, RDP

Cookie

Round Robin, URI Hash,

Full URI Hash

Source Address, Source

Address Hash, Source

Address-Port Hash, SIP

Call ID

98 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Profile

TCP

TCPS

UDP

IP

DNS

SMTP

Usage

Use for other TCP protocols.

Use for secured TCP when offloading

TLS/SSL from the backend servers. Like the HTTPS profile, you must import the backend server certificates into

FortiADC and select them in the TCPS profile.

Use with UDP servers.

VS Type LB Methods

Layer

4,

Layer

2

Layer 4: Round Robin,

Least Connections,

Fastest Response

Layer 2: Round Robin,

Least Connections,

Fastest Response,

Destination IP Hash

Layer

7,

Layer

2

Layer 7: Round Robin,

Least Connections

Layer 2: Round Robin,

Least Connections,

Destination IP Hash

Layer

4,

Layer

2

Layer

2

Layer 4: Round Robin,

Least Connections,

Fastest Response,

Dynamic Load

Layer 2: Same as

Layer 4, plus

Destination IP Hash

Round Robin only.

Combines with Layer 2

TCP/UDP/HTTP virtual server to balance the rest of the IP packets passed through

FortiADC. When running the IP protocol

0 VS, the traffic always tries to match none protocol 0 VS first.

Use with DNS servers.

Use with SMTP servers.

Layer

7

Layer

7

Round Robin, Least

Connections

Round Robin, Least

Connections

Chapter 4: Server Load Balancing

Persistence

Source Address,

Source Address

Hash

Source Address,

Source Address

Hash, Source

Address-Port Hash,

SSL Session ID

Source Address,

Source Address

Hash

Source Address,

Source Address

Hash

Not supported yet.

Source Address,

Source Address

Hash

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

99

Chapter 4: Server Load Balancing Configuring Application profiles

Table 15

shows the default values of the predefined profiles. All values in the predefined profiles are view-only, and cannot be modified. You can select predefined profiles in the virtual server configuration, or you can create user-defined profiles, especially to include configuration objects like certificates, caching settings, compression options, and IP reputation.

 Table 15: Predefined profiles

Profile Defaults

LB_PROF_TCP Timeout TCP Session—100

Timeout TCP Session after FIN—100

IP Reputation—Disabled

Customized SSL Ciphers Flag—Disabled

Geo IP block list—None

Geo IP Whitelist—None

LB_PROF_UDP Timeout UDP Session—100

IP Reputation—Disabled

Customized SSL Ciphers Flag—Disabled

Geo IP block list—None

Geo IP Whitelist—None

100 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Profile

LB_PROF_HTTP

Chapter 4: Server Load Balancing

Defaults

Client Timeout—50

Server Timeout—50

Connect Timeout—5

Queue Timeout—5

HTTP Request Timeout—50

HTTP Keepalive Timeout—50

Buffer Pool—Enabled

Source Address—Disabled

X-Forwarded-For—Disabled

X-Forwarded-For Header—Blank

IP Reputation—Disabled

HTTP Mode—Keep Alive

Customized SSL Ciphers Flag—Disabled

Compression—None

Caching—None

Geo IP Block List—None

Geo IP Whitelist—None

Geo IP Redirect URL—http://

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

101

Chapter 4: Server Load Balancing

Profile

LB_PROF_HTTP_SERVERCLOSE

LB_PROF_TURBOHTTP

LB_PROF_FTP

Configuring Application profiles

Defaults

Client Timeout—50

Server Timeout—50

Connect Timeout—5

Queue Timeout—5

HTTP Request Timeout—50

HTTP Keepalive Timeout—50

Buffer Pool—Enabled

Source Address—Disabled

X-Forwarded-For—Disabled

X-Forwarded-For Header—None

IP Reputation—Disabled

HTTP Mode—Server Close

Customized SSL Ciphers Flag—Disabled

Compression—None

Caching—None

Geo IP Block List—None

Geo IP Whitelist—None

Geo IP Redirect URL—http://

Timeout TCP Session—100

Timeout TCP Session after FIN—100

IP Reputation—Disabled

Customized SSL Ciphers Flag—Disabled

Geo IP Block List—None

Geo IP Whitelist—None

Timeout TCP Session—100

Timeout TCP Session after FIN—100

IP Reputation—Disabled

Customized SSL Ciphers Flag—Disabled

Geo IP Block List—None

Geo IP Whitelist—None

102 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Profile

LB_PROF_RADIUS

LB_PROF_SIP

LB_PROF_RDP

Chapter 4: Server Load Balancing

Defaults

Customized SSL Ciphers Flag—Disabled

Session Timeout—300

Geo IP Block List—None

Geo IP Whitelist—None

SIP Max Size—65535

Server Keepalive Timeout—30

Server Keepalive—Enabled

Client Keepalive—Disabled

Client Protocol—UDP

Server Protocol—None

Failed Client Type—Drop

Failed Server Type—Drop

Insert Client IP—Disabled

Customized SSL Ciphers Flag—Disabled

Geo IP Block List—None

Geo IP Whitelist—None

Client Timeout—50

Server Timeout—50

Connect Timeout—5

Queue Timeout—5

Buffer Pool—Enabled

Source Address—Disabled

IP Reputation—Disabled

Customized SSL Ciphers Flag—Disabled

Geo IP Block List—None

Geo IP Whitelist—None

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

103

Chapter 4: Server Load Balancing

Profile

LB_PROF_IP

LB_PROF_DNS

Configuring Application profiles

Defaults

IP Reputation—Disabled

Customized SSL Ciphers Flag—Disabled

Geo IP Block List—None

Geo IP Whitelist—None

Timeout IP Session—100

Customized SSL Ciphers Flag—Disabled

Geo IP Block List—None

Geo IP Whitelist—None

DNS Cache Flag—Enabled

DNS Chche Ageout Time—3600

DNS Cache Size—10

DNS Cache Entry Size—512

DNS Malform Query Action—Drop

DNA Max Query Length—512

DNS Authentication Flag—Disabled

104 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Profile

LB_PROF_TCPS

Chapter 4: Server Load Balancing

Defaults

Client Timeout—50

Server Timeout—50

Connect Timeout—5

Queue Timeout—5

Buffer Pool—Enabled

Source Address—Disabled

IP Reputation—Disabled

Customized SSL Ciphers Flag—Disabled

SSL Cipher—Shows all available SSL Ciphers, with the default ones selected.

Allow SSL Versions—SSLv3, TLSv1.0, TLSv1.1, TLSv1.2

Client SNI Required—Disabled

Geo IP block list—None

SSL Ciphers—None

Client SNI Required—disabled

Certificate Group—LOCAL_CERT_GROUP

Certificate Verify—None

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

105

Chapter 4: Server Load Balancing

Profile

LB_PROF_HTTPS

Configuring Application profiles

Defaults

Client Timeout—50

Server Timeout—50

Connect Timeout—5

Queue Timeout—5

HTTP Request Timeout—50

HTTP Keepalive Timeout—50

Buffer Pool—Enabled

Source Address—Disabled

X-Forwarded-For—Disabled

X-Forwarded-For Header—None

IP Reputation—Disabled

HTTP Mode—Keep Alive

SSL Proxy Mode—Disabled

Customized SSL Ciphers Flag—Disabled

SSL Cipher—Shows all available SSL ciphers, with the default ones selected

Allow SSL Versions—SSLv3, TLSv1.0, TLS1.1, TLSv1.2

Client SNI Required—Disabled

Compression—None

Caching—None

Geo IP Block List—None

Geo IP Whitelist—None

Geo IP Redirect URL—http://

Certificate Group—LOCAL_CERT_GROUP

Certificate Verify—None

106 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Profile

LB_PROF_HTTPS_SERVERCLOSE

LB_PROF_SMTP

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 4: Server Load Balancing

Defaults

Client Timeout—50

Server Timeout—50

Connect Timeout—5

Queue Timeout—5

HTTP Request Timeout—50

HTTP Keepalive Timeout—50

Buffer Pool—Enabled

Source Address—Disabled

X-Forwarded-For—Disabled

X-Forwarded-For Header—None

IP Reputation—Disabled

HTTP Mode—Server Close

SSL Proxy Mode—Disabled

Customized SSL Ciphers Flag—Disabled

SSL Cipher—Shows all available SSL ciphers, with the default ones selected

Allow SSL Versions—SSLv3, TLSv1.0, TLS1.1, TLSv1.2

Client SNI Required—Disabled

Compression—None

Caching—None

Geo IP Block List—None

Geo IP Whitelist—None

Geo IP Redirect URL—http://

Certificate Group—LOCAL_CERT_GROUP

Certificate Verify—None

Starttls Active Mode—require

Customized SSL Ciphers Flag—Disabled

SSL Ciphers—Shows all available SSL Ciphers, with the defaults ones selected

Allow SSL Versions —SSLv3, TLSv1.0, TLSv1.1, TLSv1.2

Forbidden Command—expn, turn, vrfy

Local Certificate Group—LOCAL_CERT_GROUP

107

Chapter 4: Server Load Balancing Configuring Application profiles

Before you begin: l l

You must have already created configuration objects for certificates, caching, and compression if you want the profile to use them.

You must have Read-Write permission for Load Balance settings.

To configure custom profiles:

1. Go to Server Load Balance > Application Resources.Click the Application Profile tab.

2. Click Add to display the configuration editor.

3. Give the profile a name, select a protocol type; then complete the configuration as described in

Table 16 .

4. Save the configuration.

You can clone a predefined configuration object to help you get started with a userdefined configuration.

To clone a configuration object, click the clone icon on the configuration summary page.

that appears in the tools column

 Table 16: Profile configuration guidelines

Type Profile Configuration Guidelines

TCP

Timeout TCP Session Client-side timeout for connections where the client has not sent a

FIN signal, but the connection has been idle. The default is 100 seconds. The valid range is 1 to 86,400.

Timeout TCP Session after

FIN

IP Reputation

Client-side connection timeout. The default is 100 seconds. The valid range is 1 to 86,400.

Enable to apply the FortiGuard IP reputation service. See

Managing

IP Reputation policy settings .

Enable or disable the Customized SSL Ciphers Flag.

Customized SSL Ciphers

Flag

Geo IP Block List

Geo IP Whitelist

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

IP

108 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Type

IP Reputation

Geo IP Block List

Geo IP Whitelist

Timeout IP Session

DNS

Customized SSL Ciphers

Flag

DNS Cache Flag

Geo IP Block List

Geo IP Whitelist

DNS Cache Flag

DNS Cache Ageout Time

DNS Cache Size

DNS Cache Entry Size

DNS Malform Query Action

DNS Max Query Length

DNS Authentication Flag

UDP

Timeout UDP Session

Chapter 4: Server Load Balancing

Profile Configuration Guidelines

Enable to apply FortiGuard IP reputation service. IP reputation. See

Managing IP Reputation policy settings

.

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

Client-side session timeout. The default is 100 seconds. The valid range is 1 to 86,400.

Enable or disable the Customized SSL Ciphers Flag.

Enable/Disable DNS cache flag.

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

Enable or disable the DNS Cache Flag.

Enter a value from 0 to 65,535. The default is 3,600.

Enter a value from 1 to 100. The default is 10.

Enter a value from 256 to 4,096. The default is 512.

Choose either of the following: l l

Drop

Forward

Enter a value from 256 to 4.096. The default is 512.

Enable or disable DNS authentication flag.

Client-side session timeout. The default is 100 seconds. The valid range is 1 to 86,400.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

109

Chapter 4: Server Load Balancing

Type

IP Reputation

Customized SSL Ciphers

Flag

Geo IP Block List

Geo IP Whitelist

HTTP

Client Timeout

Server Timeout

Connect Timeout

Configuring Application profiles

Profile Configuration Guidelines

Enable to apply the FortiGuard IP reputation service. See

Managing

IP Reputation policy settings .

Enable or disable the Customized SSL Ciphers Flag.

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

Queue Timeout

HTTP Request Timeout

HTTP Keepalive Timeout

Buffer Pool

Source Address

X-Forwarded-For

Client-side TCP connection timeout. The default is 50 seconds. The valid range is 1 to 3,600.

Server-side IP session timeout. The default is 50 seconds. The valid range is 1 to 3,600.

Multiplexed server-side TCP connection timeout. Usually less than the client-side timeout. The default is 5 seconds. The valid range is

1 to 3,600.

Specifies how long connection requests to a backend server remain in a queue if the server has reached its maximum number of connections. If the timeout period expires before the client can connect, FortiADC drops the connection and sends a 503 error to the client. The default is 5 seconds. The valid range is 1 to 3,600.

Client-side HTTP request timeout. The default is 50 seconds. The valid range is 1 to 3,600.

The default is 50 seconds. The valid range is 1 to 3,600.

Enable or disable buffering.

Use the original client IP address as the source address when connecting to the real server.

Append the client IP address found in IP layer packets to the HTTP header that you have specified in the X-Forwarded-For Header setting. If there is no existing X-Forwarded-For header, the system creates it.

110 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Type

X-Forwarded-For Header

IP Reputation

HTTP Mode

Customized SSL Ciphers

Flag

Compression

Caching

Geo IP Block List

Geo IP Whitelist

Geo IP Redirect URL

FTP

Timeout TCP Session

Chapter 4: Server Load Balancing

Profile Configuration Guidelines

Specify the HTTP header to which to write the client IP address.

Typically, this is the X-Forwarded-For header, but it is customizable because you might support traffic that uses different headers for this. Do not include the 'X-' prefix. Examples: Forwarded-For, Real-

IP, or True-IP.

Enable to apply the FortiGuard IP reputation service. See

Managing

IP Reputation policy settings .

l

Server Close—Close the connection to the real server after each HTTP transaction.

l

Once Only— An HTTP transaction can consist of multiple HTTP requests (separate requests for an HTML page and the images contained therein, for example). To improve performance, the "once only" flag instructs the FortiADC to evaluate only the first set of headers in a connection. Subsequent requests belonging to the connection are not load balanced, but sent to the same server as the first request.

l

Keep Alive—Do not close the connection to the real server after each

HTTP transaction. Instead, keep the connection between FortiADC and the real server open until the client-side connection is closed. This option is required for applications like Microsoft SharePoint.

Enable or disable the Customized SSL Ciphers Flag.

Select a compression configuration object. See

Configuring compression rules

.

Select a caching configuration object. See

Using caching features

.

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

For HTTP, if you have configured a Geo IP redirect action, specify a redirect URL.

Client-side timeout for connections where the client has not sent a

FIN signal, but the connection has been idle. The default is 100 seconds. The valid range is 1 to 86,400.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

111

Chapter 4: Server Load Balancing

Type

Timeout TCP Session after

FIN

IP Reputation

Customized SSL Ciphers

Flag

Geo IP Block List

Geo IP Whitelist

RADIUS

Customized SSL Ciphers

Flag

Timeout RADIUS Session

Geo IP Block List

Geo IP Whitelist

RDP

Client Timeout

Server Timeout

Connect Timeout

Queue Timeout

Configuring Application profiles

Profile Configuration Guidelines

Client-side connection timeout. The default is 100 seconds. The valid range is 1 to 86,400.

Enable to apply the FortiGuard IP reputation service. See

Managing

IP Reputation policy settings .

Enable or disable the Customized SSL Ciphers Flag.

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

Enable or disable the Customized SSL Ciphers Flag.

The default is 300 seconds. The valid range is 1 to 3,600.

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

Client-side TCP connection timeout. The default is 50 seconds. The valid range is 1 to 3,600.

Server-side IP session timeout. The default is 50 seconds. The valid range is 1 to 3,600.

Multiplexed server-side TCP connection timeout. Usually less than the client-side timeout. The default is 5 seconds. The valid range is

1 to 3,600.

Specifies how long connection requests to a backend server remain in a queue if the server has reached its maximum number of connections. If the timeout period expires before the client can connect, FortiADC drops the connection and sends a 503 error to the client. The default is 5 seconds. The valid range is 1 to 3,600.

112 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Type

Buffer Pool

Source Address

IP Reputation

Customized SSL Ciphers

Flag

Geo IP Block List

Geo IP Whitelist

TCPS

Client Timeout

Server Timeout

Connect Timeout

Queue Timeout

Buffer Pool

Source Address

IP Reputation

Customized SSL Ciphers

Flag

Chapter 4: Server Load Balancing

Profile Configuration Guidelines

Enable or disable buffering.

Use the original client IP address as the source address in the connection to the real server.

Enable to apply the FortiGuard IP reputation service. See

Managing

IP Reputation policy settings .

Enable or disable the Customized SSL Ciphers Flag.

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

Client-side TCP connection timeout. The default is 50 seconds. The valid range is 1 to 3,600.

Server-side IP session timeout. The default is 50 seconds. The valid range is 1 to 3,600.

Multiplexed server-side TCP connection timeout. Usually less than the client-side timeout. The default is 5 seconds. The valid range is

1 to 3,600.

Specifies how long connection requests to a backend server remain in a queue if the server has reached its maximum number of connections. If the timeout period expires before the client can connect, the system drops the connection and sends a 503 error to the client. The default is 5 seconds. The valid range is 1 to 3,600.

Enable or disable buffering.

Use the original client IP address as the source address in the connection to the real server.

Enable to apply the FortiGuard IP reputation service. See

Managing

IP Reputation policy settings .

Enable or disable the use of user-specified cipher suites.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

113

Chapter 4: Server Load Balancing

Type

Customized SSL Ciphers

Configuring Application profiles

Profile Configuration Guidelines

If the customize cipher flag is enabled, specify a colon-separated, ordered list of cipher suites.

An empty string is allowed. If empty, the default cipher suite list is used.

114 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Type

SSL Ciphers

Chapter 4: Server Load Balancing

Profile Configuration Guidelines

Ciphers are listed from strongest to weakest: l

ECDHE-ECDSA-AES256-GCM-SHA384 l

ECDHE-ECDSA-AES256-SHA384 l

ECDHE-ECDSA-AES256-SHA l

ECDHE-ECDSA-AES128-GCM-SHA256 l

ECDHE-ECDSA-AES128-SHA256 l

ECDHE-ECDSA-AES128-SHA l

ECDHE-ECDSA-DES-CBC3-SHA l

ECDHE-ECDSA-RC4-SHA l

ECDHE-RSA-AES256-GCM-SHA384 l

ECDHE-RSA-AES256-SHA384 l

ECDHE-RSA-AES256-SHA l

DHE-RSA-AES256-GCM-SHA384 l

DHE-RSA-AES256-SHA256 l

DHE-RSA-AES256-SHA l

AES256-GCM-SHA384 l

AES256-SHA256 l

AES256-SHA l

ECDHE-RSA-AES128-GCM-SHA256 l

ECDHE-RSA-AES128-SHA256 l

ECDHE-RSA-AES128-SHA l

DHE-RSA-AES128-GCM-SHA256 l

DHE-RSA-AES128-SHA256 l

DHE-RSA-AES128-SHA l

AES128-GCM-SHA256 l

AES128-SHA256 l

AES128-SHA l

ECDHE-RSA-RC4-SHA l

RC4-SHA l

RC4-MD5 l

ECDHE-RSA-DES-CBC3-SHA l

EDH-RSA-DES-CBC3-SHA l

DES-CBC3-SHA l

EDH-RSA-DES-CBC-SHA l

DES-CBC-SHA l eNULL

We recommend retaining the default list. If necessary, you can deselect the SSL ciphers that you do not want to support.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

115

Chapter 4: Server Load Balancing

Type

Allow SSL Versions

Client SNI Required

Geo IP Block List

Geo IP Whitelist

Local Certificate Group

Certificate Verify

HTTPS

HTTPS

SSL Proxy Mode

Customized SSL Ciphers

Flag

Configuring Application profiles

Profile Configuration Guidelines

You have the following options: l

SSLv2 l

SSLv3 l

TLSv1.0

l

TLSv1.1

l

TLSv1.2

We recommend retaining the default list. If necessary, you can deselect SSL versions you do not want to support.

Note: FortiADC does not support session reuse for SSLv2 at the client side. Instead, a new SSL session is started.

Require clients to use the TLS server name indication (SNI) extension to include the server hostname in the TLS client hello message. Then, the FortiADC system can select the appropriate local server certificate to present to the client.

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

A configuration group that includes the certificates this virtual server presents to SSL/TLS clients. This should be the backend servers’ certificate, NOT the appliance’s GUI web server certificate. See

Manage certificates

.

Select a certificate validation policy. See

Manage and validate certificates

.

Same as HTTP, plus the certificate settings listed next.

See

Chapter 16: SSL Transactions

for an overview of HTTPS features.

Enable or disable SSL forward proxy.

Enable or disable use of user-specified cipher suites.

116 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles

Type

Customized SSL Ciphers

SSL Ciphers

Allow SSL Versions

Client SNI Required

Local Certificate Group

Chapter 4: Server Load Balancing

Profile Configuration Guidelines

If the customize cipher flag is enabled, specify a colon-separated, ordered list of cipher suites.

An empty string is allowed. If empty, the default cipher suite list is used.

We recommend retaining the default list. If necessary, you can deselect ciphers you do not want to support.

We recommend retaining the default list. If necessary, you can deselect SSL versions you do not want to support.

Note: FortiADC does not support session reuse for SSLv2 at the client side. Instead, a new SSL session is started.

Require clients to use the TLS server name indication (SNI) extension to include the server hostname in the TLS client hello message. Then, the FortiADC system can select the appropriate local server certificate to present to the client.

A configuration group that includes the certificates this virtual server presents to SSL/TLS clients. This should be the backend servers' certificate, NOT the appliance's GUI web server certificate. See

Manage certificates

.

Select a certificate validation policy. See

Manage and validate certificates

.

Certificate Verify

TURBO HTTP

Timeout TCP Session

Timeout TCP Session after

FIN

IP Reputation

Customized SSL Ciphers

Flag

Geo IP Block List

Geo IP Whitelist

Client-side timeout for connections where the client has not sent a

FIN signal, but the connection has been idle. The default is 100 seconds. The valid range is 1 to 86,400.

Client-side connection timeout. The default is 100 seconds. The valid range is from 1 to 86,400.

Enable to apply the FortiGuard IP reputation service.

Enable or disable the Customized SSL Ciphers Flag.

Select a Geo IP block list configuration object. See

Using the Geo

IP block list .

Select a whitelist configuration object. See

Using the Geo IP whitelist

.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

117

Chapter 4: Server Load Balancing Configuring Application profiles

Type

SIP

SIP Max Size

Profile Configuration Guidelines

Maximum message size. The default is 65535 bytes. The valid range is from 1 to 65,535.

Server Keepalive Timeout

Server Keepalive

Client Keepalive

Client Protocol

Server Protocol

Maximum wait for a new server-side request to appear. The default is 30 seconds. The valid range is 5-300.

Enable/disable a keepalive period for new server-side requests.

Supports CRLF ping-pong for TCP connections. Enabled by default.

Enable/disable a keepalive period for new client-side requests.

Supports CRLF ping-pong for TCP connections. Disabled by default.

Client-side transport protocol: l

TCP l

UDP (default)

Server-side transport protocol.

l

TCP l

UDP

Default is "unset", so the client-side protocol determines the serverside protocol.

Failed Client Type

Failed Server Type

Action when the SIP client cannot be reached: l

Drop—Drop the connection.

l

Send—Drop the connection and send a message, for example, a status code and error message.

Action when the SIP server cannot be reached: l

Drop—Drop the connection.

l

Send—Drop the connection and send a message, for example, a status code and error message.

Insert Client IP Enable/disable option to insert the client source IP address into the

X-Forwarded-For header of the SIP request.

Client-Request-Header-Insert (maximum 4 members)

118 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Application profiles Chapter 4: Server Load Balancing

Type

Type

Profile Configuration Guidelines l

Insert If Not Exist—Insert before the first header only if the header is not already present.

l

Insert Always—Insert before the first header even if the header is already present.

l

Append If Not Exist—Append only if the header is not present.

l

Append Always—Append after the last header.

HeaderName:Value The header:value pair to be inserted.

Client-Request-Header-Erase (maximum 4 members)

Type l

All—Parse all headers for a match.

l

First—Parse the first header for a match.

HeaderName Header to be erased.

Client-Response-Header-Insert (maximum 4 members)

Type l

Insert If Not Exist—Insert before the first header only if the header is not already present.

l

Insert Always—Insert before the first header even if the header is already present.

l

Append If Not Exist—Append only if the header is not present.

l

Append Always—Append after the last header.

HeaderName:Value The header:value pair to be inserted.

Client-Response-Header-Erase (maximum 4 members)

Type l

All—Parse all headers for a match.

l

First—Parse the first header for a match.

HeaderName Header to be erased.

Server-Request-Header-Insert (maximum 4 members)

Type l

Insert If Not Exist—Insert before the first header only if the header is not already present.

l

Insert Always—Insert before the first header even if the header is already present.

l

Append If Not Exist—Append only if the header is not present.

l

Append Always—Append after the last header.

HeaderName:Value The header:value pair to be inserted.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

119

Chapter 4: Server Load Balancing Configuring Application profiles

Type Profile Configuration Guidelines

Server-Request-Header-Erase (maximum 4 members)

Type l

All—Parse all headers for a match.

l

First—Parse the first header for a match.

HeaderName Header to be erased.

Server-Response-Header-Insert (maximum 4 members)

Type l

Insert If Not Exist—Insert before the first header only if the header is not already present.

l

Insert Always—Insert before the first header even if the header is already present.

l

Append If Not Exist—Append only if the header is not present.

l

Append Always—Append after the last header.

HeaderName:Value The header:value pair to be inserted.

Server-Response-Header-Erase (maximum 4 members)

Type l

All—Parse all headers for a match.

l

First—Parse the first header for a match.

HeaderName

SMTP

Starttls Active Mode

Header to be erased.

Select one of the following: l

Allow—The client can either use or not use the STARTTLS command.

l

Require—The STARTTLS command must be used to encrypt the connection first.

l

None—The STARTTLS command is NOT supported.

Enable or disable the use of user-specified SSL cipher suites.

Customized SSL Ciphers

Flag

Customized SSL Ciphers

SSL Ciphers

This option is available only when the Customized SSL Cipher Flag

(see above) is enabled. In that case, specify a colon-separated, ordered list of SSL cipher suites.

Note: An empty string is allowed. If empty, the default cipher suite list is used.

It's recommended that the default list be used. However, you can deselect the default ciphers that you do not want to support.

120 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring error pages

Type

Allow SSL Versions

Forbidden Command

Local Certificate Group

Chapter 4: Server Load Balancing

Profile Configuration Guidelines

It's recommended that the default selections be used. However, you can deselect the SSL versions that you do not want to support.

Note: FortiADC does not support session reuse for SSLv2 at the client side. In that situation, it starts a new SSL session instead.

Select any, all, or none of the commands (i.e., expn, turn, vrfy).

If selected, the command or commands will be rejected by

FortiADC; otherwise, the command or commands will be accepted and forwarded to the back end.

Select a local certificate group.

Configuring error pages

When backend real servers are unavailable, the system can respond to clients attempting HTTP/HTTPS connections with either an error message or an HTML error page.

You do not have to create an error message configuration object if you want only to send an error message. You can configure an error message from within the virtual server configuration.

After you have created an error page configuration object, you can select it in the virtual server configuration.

Before you begin:

Copy the error message file to a location you can reach from your browser. The error message file must be named index.html and must be contained in a zip file.

l

You must have Read-Write permission for Load Balance settings.

To upload an error message file:

1. Go to Server Load Balance > Application Resources.

2. Click the Error Page tab.

3. Click Add to display the configuration editor.

4. Give the configuration object a name, browse and select the error message zip file, and click the upload icon.

5. Save the configuration.

Using source pools

This topic includes a procedure for configuring the source IP address pools used in NAT, and examples of NAT deployments. It includes the following sections: l l l

Configuring source pools

Example: DNAT

Example: full NAT

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

121

Chapter 4: Server Load Balancing Using source pools l l l l

Example: NAT46 (Layer 4 virtual servers)

Example: NAT64 (Layer 4 virtual servers)

Example: NAT46 (Layer 7 virtual servers)

Example: NAT64 (Layer 7 virtual servers)

Configuring source pools

You use the Source Pool page to create configuration objects for source IP addresses used for NAT in Layer 4 virtual server configurations.

In a Layer 4 virtual server configuration, you select a “packet forwarding method” that includes the following network address translation (NAT) options: l l l l l

Direct Routing—Does not rewrite source or destination IP addresses.

DNAT—Rewrites the destination IP address for packets before it forwards them.

Full NAT—Rewrites both the source and destination IP addresses. Use for standard NAT, when client and server IP addresses are all IPv4 or all IPv6.

NAT46—Rewrites both the source and destination IP addresses. Use for NAT 46, when client IP addresses are IPv4 and server IP addresses are IPv6.

NAT64—Rewrites both the source and destination IP addresses. Use for NAT 64, when client IP addresses are IPv6 and server IP addresses are IPv4.

In a Layer 7 virtual server configuration, you do not select a packet forwarding option. Layer 7 virtual servers use

NAT46 and NAT64 to support those traffic flows, but they do not use the Source Pool configuration.

See the examples that follow the procedure for illustrated usage.

Before you begin: l l l

You must have a good understanding of NAT. You must know the address ranges your network has provisioned for

NAT.

Be sure to configure the backend servers to use the FortiADC address as the default gateway so that server responses are also rewritten by the NAT module.

You must have Read-Write permission for Load Balance settings.

After you have configured a source pool IP address range configuration object, you can select it in the virtual server configuration. You can assign a virtual server multiple source pools (with the same or different source pool interface associated with it).

To configure a source pool:

1. Go to Server Load Balance > Virtual Server.

2. Click the NAT Source Pool tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 17

.

5. Save the configuration.

122 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using source pools Chapter 4: Server Load Balancing

 Table 17: Source pool configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the virtual server configuration.

Note: After you initially save the configuration, you cannot edit the name.

Interface

Address Type

Interface to receive responses from the backend server. The interface used for the initial client traffic is determined by the virtual server configuration.

l

IPv4 l

IPv6

Address

Range

To

Node Member

Name

The first address in the address pool.

The last address in the address pool.

Pool Type

Minimum IP

Maximum IP

Interface

HA Node Number

Create a node member list to be used in an HA active-active deployment. In an active-active deployment, node interfaces are configured with a list of

IP addresses for all nodes in the cluster. You use this configuration to provision

SNAT addresses for each of the nodes.

Name is a configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the virtual server configuration.

Note: After you initially save the configuration, you cannot edit the name.

IPv4 or IPv6.

The first address in the address pool.

The last address in the address pool.

Interface to receive responses from the backend server. The interface used for the initial client traffic is determined by the virtual server configuration.

Specify the HA cluster node ID.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

123

Chapter 4: Server Load Balancing Using source pools

Example: DNAT

Figure 31

illustrates destination NAT (DNAT). The NAT module rewrites only the destination IP address.

Therefore, if you configure destination NAT, you do not need to configure a source pool. In this DNAT example, the destination IP address in the packets it receives from the client request is the IP address of the virtual server—192.168.1.101. The NAT module translates this address to the address of the real server selected by the load balancer—in this example, 192.168.2.1. The system maintains this NAT table and performs the inverse translation when it receives the server-to-client traffic.

Figure  31:  Destination NAT

124 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using source pools Chapter 4: Server Load Balancing

Example: full NAT

Figure 32

illustrates full NAT. The source IP / destination IP pair in the packets received is SRC 192.168.1.1 /

DST 192.168.1.101. The NAT module translates the source IP address to the next available address in the source pool—in this example, 192.168.2.101. It translates the destination IP address to the address of the real server selected by the load balancer—in this example, 192.168.2.1.

The system maintains this NAT table and performs the inverse translation when it receives the server-to-client traffic.

Figure  32:  Full NAT

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

125

Chapter 4: Server Load Balancing Using source pools

Example: NAT46 (Layer 4 virtual servers)

Figure 33

illustrates full NAT with NAT46. The IPv6 client connects to the virtual server IPv4 address. The source

IP / destination IP pair in the packets received is SRC 192.168.1.1 / DST 192.168.1.101. The NAT module translates the source IP address to the next available IPv6 address in the source pool—in this example,

2002::2:1001. It translates the destination IP address to the IPv6 address of the real server selected by the load balancer—in this example, 2002::2:1.

The system maintains this NAT table and performs the inverse translation when it receives the server-to-client traffic.

Figure  33:  NAT46 (Layer 4 virtual servers)

126 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using source pools

 Table 18: Limitations: NAT46 (Layer 4 virtual servers)

Features Notes

Profile Not Supported: FTP

ICMP ICMP traffic is dropped.

Chapter 4: Server Load Balancing

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

127

Chapter 4: Server Load Balancing Using source pools

Example: NAT64 (Layer 4 virtual servers)

Figure 34

illustrates full NAT with NAT64. The IPv6 client connects to the virtual server IPv6 address. The source

IP / destination IP pair in the packets received is SRC 2001::1:1 / DST 2001::1:101. The NAT module translates the source IP address to the next available IPv4 address in the source pool—in this example, 192.168.2.101. It translates the destination IP address to the IPv4 address of the real server selected by the load balancer—in this example, 192.168.2.1.

The system maintains this NAT table and performs the inverse translation when it receives the server-to-client traffic.

Figure  34:  NAT64 (Layer 4 virtual servers)

128 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using source pools Chapter 4: Server Load Balancing

 Table 19: Limitations: NAT64 (Layer 4 virtual servers)

Features Notes

Profiles Not Supported: FTP

ICMP

Security

ICMP traffic is dropped.

Not Supported: IP Reputation, DoS protection, Security logs and reports

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

129

Chapter 4: Server Load Balancing Using source pools

Example: NAT46 (Layer 7 virtual servers)

Figure 35

illustrates full NAT with NAT46. The IPv4 client connects to the virtual server IPv4 address. The source

IP / destination IP pair in the packets received is SRC 192.168.1.1 / DST 192.168.1.101. The NAT module translates the source IP address to the IPv6 address of the egress interface that has IPv6 connectivity with the real server—in this example, 2002::2:1001. It translates the destination IP address to the IPv6 address of the real server selected by the load balancer—in this example, 2002::2:1.

The system maintains this NAT table and performs the inverse translation when it receives the server-to-client traffic.

Figure  35:  NAT46 (Layer 7 virtual servers)

130 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using source pools Chapter 4: Server Load Balancing

 Table 20: Limitations: NAT46 (Layer 7 virtual servers)

Feature Note

Profiles Not Supported: RADIUS, HTTP Turbo

Profile options Not supported: Source Address (Using the original source IP address for the connection to the real server is contrary to the purpose of NAT.)

Virtual server options Not supported: Connection Rate Limit

Real server pool options Not supported: Connection Rate Limit

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

131

Chapter 4: Server Load Balancing Using source pools

Example: NAT64 (Layer 7 virtual servers)

Figure 36

illustrates full NAT with NAT64. The IPv6 client connects to the virtual server IPv6 address. The source

IP / destination IP pair in the packets received is SRC 2001::1:1 / DST 2001::1:101. The NAT module translates the source IP address to the IPv4 address of the egress interface that has IPv4 connectivity with the real server— in this example, 192.168.2.101. It translates the destination IP address to the IPv4 address of the real server selected by the load balancer—in this example, 192.168.2.1.

The system maintains this NAT table and performs the inverse translation when it receives the server-to-client traffic.

Figure  36:  NAT64 (Layer 7 virtual servers)

132 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring auth policies Chapter 4: Server Load Balancing

 Table 21: Limitations: NAT64 (Layer 7 virtual servers)

Feature Note

Profiles Not Supported: RADIUS, HTTP Turbo

Profile options Not supported: Source Address (Using the original source IP address for the connection to the real server is contrary to the purpose of NAT.)

Virtual server options Not supported: Connection Rate Limit

Real server pool options Not supported: Connection Rate Limit

Security Not Supported: IP Reputation, DoS protection, Security logs and reports

Configuring auth policies

Auth policies set the conditions that mandate authentication and reference the user group that has authorization.

For example, you can define an auth policy that has the following logic: if the Host header matches example.com

and the URI matches /index.html, then the group example-group is authorized. FortiADC supports the Basic

Authentication Scheme described in RFC 2617 .

Figure 37

illustrates the client-server communication when authorization is required.

Figure  37: Authorization and authentication

1. The client sends an HTTP request for a URL belonging to a FortiADC virtual server that has an authorization policy.

2. FortiADC replies with an HTTP 401 to require authorization. On the client computer, the user might be prompted with a dialog box to provide credentials.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

133

Chapter 4: Server Load Balancing Configuring auth policies

3. The client reply includes an Authorization header that gives the credentials.

4. FortiADC sends a request to the server (local, LDAP, or RADIUS) to authenticate the user.

5. The authentication server sends its response, which can be cached according to your user group configuration.

6. If authentication is successful, FortiADC continues processing the traffic and forwards the request to the real server.

7. The real server responds with an HTTP 200 OK.

8. FortiADC processes the traffic and forwards the server response to the client.

Before you begin: l l

You must have created the user groups to be authorized with the policy. You also configure users and authentication servers separately. See

Configuring user groups .

You must have read-write permission for Server Load Balance settings.

After you have configured an auth policy, you can select it in the virtual server configuration. Note the following requirements: l l l

Virtual server type must be Layer 2 or Layer 7.

Profile type must be HTTP or HTTPS.

The profile option once-only must be disabled.

To configure an auth policy:

1. Go to Server Load Balance > Application Resources.

2. Click the Authentication Policy tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 22

.

5. Save the configuration.

 Table 22: Auth policy configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the virtual server configuration.

Note: After you initially save the configuration, you cannot edit the name.

Member

Host Status

Host

If enabled, require authorization only for the specified host. If disabled, ignore hostname in the HTTP request header and require authorization for requests with any Host header. Disabled by default.

Specify the HTTP Host header. If Host Status is enabled, the policy matches only if the Host header matches this value. Complete, exact matching is required. For example, www.example.com matches www.example.com but not www.example.com.hk

.

134 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring methods

Settings

User Realm

Path

User Group

Chapter 4: Server Load Balancing

Guidelines

Realm to which the Path URI belongs. The realm is included in the basic authentication header in the HTTP 401 message sent to the client. If a request is authenticated and a realm specified, the same credentials are deemed valid for other requests within this realm.

Require authorization only if the URI of the HTTP request matches this pathname. If none is specified, requests to any URI require authorization. The value is parsed as a match string prefix. For example, /abc matches http://www.example.com/abcd and http://www.example.com/abc/11.html

but not http://www.example.com/1abcd .

Select the user group that is authorized to access the protected resource.

Configuring methods

The system includes predefined configuration objects for all supported load balancing methods, and there is no need to create additional configuration objects. You may choose to do so, however, for various reasons, for example, to use a naming convention that makes the purpose of the configuration clear to other administrators.

Table 23

describes the predefined methods.

 Table 23: Predefined methods

Predefined Description

LB_METHOD_ROUND_ROBIN Selects the next server in the series: server 1, then server 2, then server 3, and so on.

Selects the server with the least connections.

LB_METHOD_LEAST_

CONNECTION

LB_METHOD_FASTEST_

RESPONSE

LB_METHOD_URI

Selects the server with the fastest response to health check tests.

Selects the server based on a hash of the URI found in the

HTTP header, excluding hostname.

LB_METHOD_FULL_URI

LB_METHOD_HOST

Selects the server based on a hash of the full URI string found in the HTTP header. The full URI string includes the hostname and path.

Selects the server based on a hash of the hostname in the

HTTP Request header Host field.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

135

Chapter 4: Server Load Balancing Configuring an L2 exception list

Predefined

LB_METHOD_HOST_DOMAIN

LB_METHOD_DEST_IP_HASH

Description

Selects the server based on a hash of the domain name in the

HTTP Request header Host field.

Selects the next hop based on a hash of the destination IP address. This method can be used with the Layer 2 virtual server.

Before you begin: l

You must have Read-Write permission for Load Balance settings.

To configure a load-balancing method configuration object:

1. Go to Server Load Balance > Application Resources.

2. Click the LB Method tab.

3. Click Add to display the configuration editor.

4. Give configuration object a name and select the load-balancing method.

5. Save the configuration.

Configuring an L2 exception list

In some jurisdictions, SSL interception and decryption is disfavored for some types of websites or disallowed entirely. You use the L2 Exception List configuration to define such destinations. You can leverage FortiGuard web filter categories, and you can configure a list of additional destinations.

Before you begin: l l l

You must have created a Web Filter Profile configuration that includes the web categories to exclude from SSL decryption.

You must have hostname or IP address details on additional destinations you want to exclude from SSL decryption.

You must have Read-Write permission for Load Balance settings.

After you have created an L2 exception list configuration object, you can select it in a Layer 2 virtual server configuration.

To configure an exception list:

1. Go to Server Load Balance > SSL-FP Resources.

2. Click the L2 Exception List tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 24

.

5. Save the configuration.

136 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the Web Category tab Chapter 4: Server Load Balancing

 Table 24: L2 exception list configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the profile configuration.

Note: After you initially save the configuration, you cannot edit the name.

Description

Web Filter

Profile

A string to describe the purpose of the configuration, to help you and other administrators more easily identify its use.

Select a Web Filter Profile configuration.

Member

Type How you want to define the exception: l

Host l

IP

Specify a wildcard pattern, such as *.example.com.

Host Pattern

IP/Netmask Specify the IP address and CIDR-formatted subnet mask, separated by a forward slash, such as 192.0.2.0/24.

Note: l l

Dotted quad formatted subnet masks are not accepted.

IPv6 addresses are not supported.

Using the Web Category tab

The Web Category tab displays the web filter categories imported from FortiGuard. You specify web categories when you create web filter groups.

For information on FortiGuard web categories, go to the FortiGuard website: http://fortiguard.com/webfilter

Before you begin: l

You must have read permission for load balancing settings.

To display web categories:

1. Go to Server Load Balance > SSL-FP Resources.

2. Click the Web Category tab.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

137

Chapter 4: Server Load Balancing

To manage how long the URL lists from FortiGuard are cached:

1. Go to System > FortiGuard.

2. Under Web Filter Configure, adjust caching settings as desired.

Creating a Web Filter Profile configuration

Creating a Web Filter Profile configuration

You use the web filter profile configuration to create groups of FortiGuard categories that you want to include in the SSL forward proxy "L2 Exception List" configuration. The web filter profile should include categories that should not be processed by the outbound L2 SSL forward proxy feature. To address privacy concerns, you can include categories such as "Personal Privacy", "Finance and Banking", "Health and Wellness", and Medicine.

Before you begin: l l

Learn about FortiGuard web filter categories. Go to http://fortiguard.com/webfilter .

You must have Read-Write permission for Load Balance settings.

After you have created a web filter profile configuration object, you can select it in a L2 exception list configuration.

To create a web filter profile configuration:

1. Go to Server Load Balance > SSL-FP Resources.

2. Click the Web Filter Profile tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 25

.

5. Save the configuration.

 Table 25: Web Filter Profile configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the profile configuration.

Note: After you initially save the configuration, you cannot edit the name.

Description A string to describe the purpose of the configuration, to help you and other administrators more easily identify its use.

Category-Members

Category Select a category or subcategory from the predefined list.

Configuring virtual servers

The virtual server configuration supports three classes of application delivery control:

138 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring virtual servers Chapter 4: Server Load Balancing l l l

Layer 7—Persistence, load balancing, and routing are based on Layer 7 objects, such as HTTP headers, cookies, and so on.

Layer 4—Persistence, load balancing, and network address translation are based on Layer 4 objects, such as source and destination IP address.

Layer 2—This feature is useful when the request’s destination IP is unknown and you need to load balance connections between multiple next-hop gateways.

Before you begin: l l l

You must have a deep understanding of the backend servers and your load balancing objectives.

You must have configured a real server pool (required) and other configuration objects that you can incorporate into the virtual server configuration, such as persistence rules, user-defined profiles, content routes and rewriting rules, error messages, authentication policies, and source IP address pools if you are deploying NAT.

You must have Read-Write permission for Load Balance settings.

Unlike virtual IPs on FortiGate or virtual servers on FortiWeb, virtual servers on

FortiADC are activated as soon as you configure them and set status to Enable. You do not apply them by selecting them in a policy.

To configure a virtual server:

1. Go to Server Load Balance > Virtual Server.

The configuration page displays the Virtual Server tab.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 26

.

4. Save the configuration.

 Table 26: Virtual server configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

This name appears in reports and in logs as the SLB “policy”.

After you initially save the configuration, you cannot edit the name.

Status

Type l

Enable—The server can receive new sessions.

l

Disable—The server does not receive new sessions and closes any current sessions as soon as possible.

l

Maintain—The server does not receive new sessions but maintains any current connections.

l

Layer 7—Persistence, load balancing, and routing are based on Layer 7 objects, such as HTTP headers, cookies, and so on.

l

Layer 4—Persistence, load balancing, and network address translation are based on

Layer 4 objects, such as source and destination IP address.

l

Layer 2—This feature is useful when the request’s destination IP is unknown and you need to load balance connections between multiple next-hop gateways.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

139

Chapter 4: Server Load Balancing Configuring virtual servers

Settings

Address Type

Guidelines l

IPv4 l

IPv6

Note: IPv6 is not supported for FTP, HTTP Turbo, RDP, or SIP profiles.

Configuration

Address

Port

Port Range

Connection

Limit

IP address provisioned for the virtual server.

Note: You do not specify an IP address for a Layer 2 virtual server. A Layer 2 virtual server is not aware of IP addresses. Instead of routing data for a specific destination, this type of server simply forwards data from the specified network interface and port.

Port number to listen for client requests.

Note: If a Layer 2 virtual server is assigned a network interface that uses port 80 or 443, ensure that the HTTPS and HTTP administrative access options are not enabled for the interface.

Number of ports in a port range. For example, if Port is 80, and port-range is 254, then the virtual port range starts at 80 and goes to 334.

The default is 0 (no range). The valid range is 0-255. For SIP, the valid range is 0-

5.

The port range option is useful in deployments where it is desirable to have a virtual IP address with a large number of virtual ports, such as data centers or web hosting companies that use port number to identify their specific customers.

Statistics and configurations are applied to the virtual port range as a whole and not to the individual ports within the specified range.

Note: Not supported for FTP, HTTP Turbo, RADIUS, or Layer 2 TCP profiles.

Limit the number of concurrent connections. The default is 0 (disabled). The valid range is 1 to 1,048,576 concurrent connections.

You can apply a connection limit per real server and per virtual server. Both limits are enforced. Attempted connections that are dropped by security rules are not counted.

Note: Not supported for FTP or SIP profiles.

140 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring virtual servers

Settings

Connection

Rate Limit

Transaction

Rate Limit

Chapter 4: Server Load Balancing

Guidelines

With Layer 4 profiles, and with the Layer 2 TCP profile, you can limit the number of new connections per second. The default is 0 (disabled). The valid range is 1 to

86,400 connections per second.

You can apply a connection rate limit per real server and per virtual server. Both limits are enforced. Attempted connections that are dropped by security rules are not counted.

Note: Not supported for FTP profiles.

Limit the number of HTTP requests per second. The default is 0 (disabled). The valid range is 1 to 1,048,567 transactions per second.

The system counts each client HTTP request against the limit. When the HTTP request rate exceeds the limit, the virtual server sends an HTTP 503 error response to the client.

Note: Not supported for HTTP Turbo profiles.

Network interface that receives client traffic for this virtual server.

Interface

Specifics

Content

Routing

Enable to route packets to backend servers based on IP address (Layer 4) or

HTTP headers (Layer 7 content); select content route configuration objects and put them in order.

Overrides static or policy routes.

Note: You can select multiple content routing rules in the virtual server configuration. Rules that you add are consulted from top to bottom. The first rule to match is applied. If the traffic does not match any of the content routing rule conditions specified in the virtual server configuration, the system behaves unexpectedly. Therefore, it is important that you create a “catch all” rule that has no match conditions. In the virtual server configuration, this rule should be ordered last so it can be used to forward traffic to a default pool.

See

Configuring content routes .

Note: Not supported for SIP profiles.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

141

Chapter 4: Server Load Balancing

Settings

Content

Rewriting

Guidelines

Configuring virtual servers

Enable to rewrite HTTP headers; select content rewriting rules and put them in order.

Note: You can select multiple content rewriting rules in the virtual server configuration. Rules that you add are consulted from top to bottom. The first rule to match is applied. If the traffic does not match any of the content rewriting rule conditions, the header is not rewritten.

See

Using content rewriting rules

.

Note: Not supported for SIP profiles.

Layer 4 only

Packet

Forwarding

Method

Source Pool

List

Resources

Profile

For Layer 4 virtual servers, select one of the following packet forwarding methods: l

Direct Routing—Forwards the source and destination IP addresses with no changes.

Note: For FTP profiles, when Direct Routing is selected, you must also configure a persistence method.

l

DNAT—Replaces the destination IP address with the IP address of the backend server selected by the load balancer.

The destination IP address of the initial request is the IP address of the virtual server. Be sure to configure FortiADC as the default gateway on the backend server so that the reply goes through FortiADC and can also be translated.

l

Full NAT—Replaces both the destination and source IP addresses. IPv4 to IPv4 or

IPv6 to IPv6 translation.

l

NAT46—Replaces both the destination and source IP addresses, translating IPv4 addresses to IPv6 addresses.

l

NAT64—Replaces both the destination and source IP addresses, translating IPv6 addresses to IPv4 addresses.

For Full NAT, NAT46, and NAT64, the source IP address is replaced by an IP address from the pool you specify. The destination IP address is replaced with the

IP address of the backend server selected by the load balancer

If you are configuring a Layer 4 virtual server and enable Full NAT, NAT46, or

NAT64, select one or more source pool configuration objects. See

Using source pools .

Select a predefined or user-defined profile configuration object. See

Application profiles

.

Configuring

142 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring virtual servers Chapter 4: Server Load Balancing

Settings

Persistence

Method

Real Server

Auth Policy

Scripting

WAF Profile

L2 Exception List

Guidelines

Select a predefined or user-defined persistence configuration object. See

Configuring persistence rules .

Select a predefined or user-defined method configuration object. See

Configuring methods .

Select a real server pool configuration object. See

Configuring real server pools .

Select an auth policy configuration object. HTTP/HTTPS only.

See

Configuring auth policies

.

Select a scripting configuration object. HTTP/HTTPS only.

See

Using scripts

.

Select a predefined or user-defined WAF profile configuration object. Layer 7

HTTP/HTTPS only. See

Configuring a WAF Profile

.

Select an exception configuration object. Layer 2 HTTPS/TCPS only. See

Configuring an L2 exception list .

Error Page

Error Page

Error Message

Select an error page configuration object. See

Configuring error pages

.

Note: Not supported for SIP profiles.

If you do not use an error page, you can enter an error message to be returned to clients in the event no server is available.

Note: Not supported for SIP profiles.

Traffic Log

Log

Comments

Enable to record traffic logs for this virtual server.

Note: Local logging is constrained by available disk space. We recommend that if you enable traffic logs, you monitor your disk space closely. We also recommend that you use local logging during evaluation and verification of your initial deployment, and then configure remote logging to send logs to a log management repository.

A string to describe the purpose of the configuration, to help you and other administrators more easily identify its use.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

143

Chapter 4: Server Load Balancing TCP multiplexing

TCP multiplexing

The TCP multiplexing option enables Layer 7 load balancing virtual servers to “reuse” existing TCP connections between FortiADC and backend real servers. Using this connection pool can reduce TCP overhead and improve web server and application performance.

Figure  38:  Client requests handled using connections from the connection pool

144

Note: The feature is not supported for profiles with the Source Address option enabled.

You can enable and configure this option using the CLI only.

To configure a connection pool and assign it to a virtual server:

Use the following command to configure the connection pool: config load-balance connection-pool edit <name> set age <integer> set reuse <integer> set size <integer> set timeout <integer> next end age Maximum duration of a connection in seconds. The recommended value is 3000.

reuse size

Maximum number of times that the virtual server can reuse the connection. The recommended value is

2000 .

Maximum number of connections in the connection pool. The recommended value is 0, which specifies that there is no limit on the connection size.

timeout Maximum number of seconds a connection can be idle before the system deletes it. The recommended value is 30.

To assign the connection pool configuration to a virtual server, enter the following command:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using scripts config load-balance virtual-server edit <virtual-server_name> end set type l7-load-balance set connection-pool <pool_name> where:

<pool_name> is the name of the connection pool.

Chapter 4: Server Load Balancing

Using scripts

You can use scripts to perform actions that are not currently supported by the built-in feature set. Scripts enable you to use predefined script commands and variables to manipulate the HTTP request/response or select a content route.

Table 27

describes predefined scripts that you can copy and customize.

 Table 27: Predefined Scripts

Predefined Script

HTTP_2_HTTPS_REDIRECTION

REDIRECTION_by_USER_AGENT

REWRITE_HOST_n_PATH

CONTENT_ROUTING_by_URI

CONTENT_ROUTING_by_X_

FORWARDED_FOR

REDIRECTION_by_STATUS_CODE

Usage

Redirect requests to the HTTPS site. You can use this script without changes.

Redirect requests based on User Agent (for example, a redirect to the mobile version of a site). You should not use this script as is. Instead, copy it and customize the User Agent and URL values.

Rewrite the host and path in the HTTP request, for example, if the site is reorganized. You should not use this script as is.

Instead, copy it and customize the "old" and "new" hostnames and paths.

Routing to a pool member based on URI string matches. You should not use this script as is. Instead, copy it and customize the URI string matches and pool member names.

Routing to a pool member based on IP address in the X-Forwarded-For header. You should not use this script as is.

Instead, copy it and customize the X-Fowarded-For header values and pool member names.

Redirect requests based on the status code of server HTTP response (for example, a redirect to the mobile version of a site). Do NOT use this script "as is". Instead, copy it and customize the condition on the server HTTP response status code and the URL values.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

145

Chapter 4: Server Load Balancing Using scripts

You can type or paste the script content into the configuration page. After you have created a script configuration object, you can specify it in the virtual server configuration.

Before you begin: l l

Create a script. See

Appendix C: Scripts

.

You must have Read-Write permission for System settings.

The following paragraphs shows how to: l l l l

"Using scripts" on page 146

"Using scripts" on page 146

"Using scripts" on page 146

"Using scripts" on page 147

Create a script object

To create a script configuration object:

1. Go to Server Load Balance > Scripting.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 28

.

4. Save the configuration.

 Table 28: Script configuration

Settings Guidelines

Name Unique group name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Input Type or paste the script.

Import a script

To import a script:

1. Click Import

2. Click Choose File to browse for the script file.

3. Click Save.

Export a script

To export a script:

1. Select the script of interest.

2. Click Export.

146 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using scripts

Delete a script

To delete a script:

1. Select the script of interest.

2. Click Delete.

Chapter 4: Server Load Balancing

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

147

Chapter 5: Link Load Balancing

Chapter 5: Link Load Balancing

Link load balancing basics

This chapter includes the following topics: l l l l l l l l

Link load balancing basics

Link load balancing configuration overview

Configuring gateway links

Configuring persistence rules

Configuring proximity route settings

Configuring a link group

Configuring a virtual tunnel group

Configuring link policies

Link load balancing basics

The link load balancing (LLB) features are designed to manage traffic over multiple internet service provider (ISP) or wide area network (WAN) links. This enables you to subscribe to or provision multiple links, resulting in reduced risk of outages, additional bandwidth for peak events, and potential cost savings if your ISP uses billing tiers based on bandwidth rate or peak/off-peak hours.

In most cases, you configure link load balancing for outgoing traffic. Outbound traffic might be user or server traffic that is routed from your local network through your ISP transit links, leased lines, or other WAN links to destinations on the Internet or WAN. You configure link policies that select the gateway for outbound traffic.

When the FortiADC system receives outbound traffic that matches a source/destination/service tuple that you configure, it forwards it to an outbound gateway link according to system logic and policy rules that you specify.

The LLB feature supports load balancing among link groups or among virtual tunnel groups.

Using link groups

The link group option is useful for ISP links. It enables you to configure multiple ISP links that are possible routes for the traffic. The LLB picks the best route based on health checks, LLB algorithms, bandwidth rate thresholds, and other factors you specify, including a schedule.

Figure 39

shows an example topology when FortiADC is deployed to support link groups.

148 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Link load balancing basics

Figure  39:  LLB link groups

Chapter 5: Link Load Balancing

Using virtual tunnels

A virtual tunnel is a good choice when you want to load balance traffic from applications that embed the source address in the packet payload, like VPN and VoIP traffic. Such traffic can be difficult to load balance using traditional LLB methods. Virtual tunnels enable reliable, site-to-site connectivity using Generic Routing

Encapsulation (GRE). The local FortiADC appliance encapsulates traffic so that it can be routed according to your link policy rules. The link policy rules use LLB techniques to identify the best available route among a group of links. If one of the links breaks down, the traffic can be rerouted through another link in the tunnel group. When traffic egresses the remote FortiADC appliance, it is decapsulated and the original source and destination IP addresses are restored.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

149

Chapter 5: Link Load Balancing Link load balancing basics

Figure 40

shows an example of a deployment that does not use LLB. It uses dedicated leased lines for its WAN links, which are reliable, but expensive.

Figure  40:  WAN connectivity over single leased lines

Figure 41

shows the same network deployed with FortiADC appliances. The LLB link policy load balances traffic among more affordable ADSL links.

150 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Link load balancing configuration overview

Figure  41:  LLB virtual tunnels

Chapter 5: Link Load Balancing

Depending on your business, you might use the link group option, the virtual tunnel option, or both.

The FortiADC system evaluates traffic to determine the routing rules to apply.

With regard to link load balancing, the system evaluates rules in the following order and applies the first match:

1. LLB link policy

2. Policy route

3. Static/Dynamic route

4. LLB default link group

Link load balancing configuration overview

The system has a configuration framework that enables granular link load balancing rules.

Figure 42

shows the configuration objects used in the LLB configuration and the order in which you create them.

A link policy specifies the source/destination/service matches to which the policy applies. You apply a link policy to a link group or a virtual tunnel.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

151

Chapter 5: Link Load Balancing

Figure  42:  LLB configuration summary

Link load balancing configuration overview

152

The granular configuration of the gateway configuration includes health checks and bandwidth thresholds. The granular configuration of link groups includes load balancing methods, persistence rules, and proximity routes.

The granular configuration of virtual tunnels includes load balancing methods. In the virtual tunnel configuration, you can enable health check tests, but you do not use health check configuration objects.

Basic steps

1. Add address, address group, service, service group, and schedule group configuration objects that can be used to match traffic to link policy rules. This step is recommended. If your policy does not use match criteria, it will not have granularity.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring gateway links Chapter 5: Link Load Balancing

2. Configure optional features. If you want to use health check rules, configure them before you configure the gateway links. If you want to use persistence rules or proximity routes, configure them before you configure a link group.

3. Configure gateway links.

4. Configure link groups or virtual tunnels.

5. Configure the link policy. When you configure a link policy, you set the source/destination/service matching tuple for your link groups or virtual tunnels.

Configuring gateway links

The gateway link configuration enables you to specify health checks, bandwidth rate thresholds, and spillover threshold behavior for the gateway links you add to link groups.

Before you begin: l l l

You must know the IP addresses of the ISP gateway links used in the network segment where the FortiADC appliance is deployed.

You must have added health check configuration objects that you want to use to check the gateway links.

You must have Read-Write permission for Link Load Balance settings.

After you have configured a gateway link configuration object, you can select it in the link group configuration.

To configure a gateway link:

1. Go to Link Load Balance > Link Group.

2. Click the Gateway tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 29

.

5. Save the configuration.

 Table 29: LLB gateway configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the link group configuration.

Note: After you initially save the configuration, you cannot edit the name.

Address

Health Check

Health Check

Relationship

IP address of the gateway link.

Enable health checks.

l

AND—All of the selected health checks must pass for the link to the considered available.

l

OR—One of the selected health checks must pass for the link to be considered available.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

153

Chapter 5: Link Load Balancing Configuring persistence rules

Settings

Health Check

List

Inbound

Bandwidth

Outbound

Bandwidth

Guidelines

Select one or more health check configuration objects.

Maximum bandwidth rate for inbound traffic through this gateway link.

Maximum bandwidth rate for outbound traffic to this gateway link. If traffic exceeds this threshold, the FortiADC system considers the gateway to be full and does not dispatch new connections to it.

The default is 2,000,000 Kbps. The valid range is 1 to 2,147,483,647.

We recommend you tune bandwidth thresholds strategically, using the bandwidth rate and price structure agreement you have with your ISP to your advantage.

Maximum inbound bandwidth rate for a link in a spillover load balancing pool.

Inbound

Spillover

Threshold

Outbound

Spillover

Threshold

Total Spillover

Threshold

Maximum outbound bandwidth rate for a link in a spillover load balancing pool.

If you enable spillover load balancing in the link group configuration, the system maintains a spillover list. It dispatches new connections to the link with the greatest priority until its spillover threshold is exceeded; then dispatches new connections to the link with the next greatest priority until its threshold is exceeded, and so on.

The default is 2,000,000 Kbps. The valid range is 1 to 2,147,483,647.

Maximum total bandwidth rate (inbound plus outbound) for a link in a spillover load balancing pool.

Configuring persistence rules

Persistence rules identify traffic that should be ignored by load balancing rules and instead be forwarded to the same gateway each time the traffic traverses the FortiADC appliance.

You should use persistence rules with applications that use a secure connection. Such applications drop connections when the server detects a change in a client’s source IP address.

Table 30

describes the types of persistence rules you can configure.

 Table 30: Persistence rules used in link load balancing

Persistence Description

Source-Destination Pair Packets with the same source IP address and destination IP address take same outgoing gateway.

154 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring persistence rules Chapter 5: Link Load Balancing

Persistence

Source-Destination

Address

Source Address

Destination Address

Description

Packets with a source IP address and destination IP address that belong to the same subnet take the same outgoing gateway.

Packets with a source IP address that belongs to the same subnet take the same outgoing gateway.

Packets with a destination IP address that belongs to the same subnet take same outgoing gateway.

Before you begin: l l l

You must have an awareness of the types of outbound traffic from your network. Persistence rules are useful for traffic that requires an established session, such as secure connections (HTTPS and SSH, for example).

You must have knowledge of the source and/or destination subnets to which the persistence rules should apply.

You must have Read-Write permission for Link Load Balance settings.

You can use persistence rules in link groups but not virtual tunnels.

To configure a persistence rule:

1. Go to Link Load Balance > Link Group.

2. Click the Persistence tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 31

.

5. Save the configuration.

 Table 31: Persistence rule configuration

Type Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the link group configuration.

Note: After you initially save the configuration, you cannot edit the name.

Type

Source-Destination Pair

Select one of the persistence types, as described below.

Timeout The default is 300 seconds.

Source-Destination Address

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

155

Chapter 5: Link Load Balancing Configuring proximity route settings

Type

Timeout

Source IPv4

Netmask Bits

Destination IPv4

Netmask Bits

Guidelines

The default is 300 seconds.

Number of bits in a subnet mask to specify a network segment that should following the persistence rule.

Number of bits in a subnet mask to specify a network segment that should following the persistence rule.

For example, if you set this to 24, and the system chooses a particular gateway router for destination IP 192.168.1.100, the system will select that same gateway for traffic to all destination IPs in subnet 192.168.1.0/24.

Source Address

Timeout

Source IPv4

Netmask Bits

The default is 300 seconds.

Number of bits in a subnet mask to specify a network segment that should following the persistence rule. The default is 32, but you can set it to any value between 1 and 32.

For example, if you set this to 24, and the system chooses a particular gateway router for client IP 192.168.1.100, the system will select that same gateway for subsequent client requests when the subsequent client belongs to subnet 192.168.1.0/24.

Destination Address

Timeout

Destination IPv4

Netmask Bits

The default is 300 seconds.

Number of bits in a subnet mask to specify a network segment that should following the persistence rule.

Configuring proximity route settings

The proximity route feature enables you to associate link groups with efficient routes. Proximity routes can improve user experience over the WAN because traffic is routed over fast routes.

You can use either or both of these methods: l l

Static Table—You specify the gateways to use for traffic on destination networks.

Dynamic Detection—The system polls the network for efficient routes. The algorithm selects a gateway based on latency.

If you configure both, the system checks the static table first for a matching route and, if any, uses it. If there is no matching static route, the system uses dynamic detection.

Before you begin:

156 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring proximity route settings Chapter 5: Link Load Balancing l l

You must have knowledge of IP addresses used in outbound network routes to configure a static route.

You must have Read-Write permission for Link Load Balance settings.

To configure a proximity route:

1. Go to Link Load Balance > Link Group.

2. Click the Proximity Route tab.

3. Complete the configuration as described in

Table 32

.

4. Save the configuration.

 Table 32: Proximity route rule configuration

Type Guidelines

Mode l

Static Table First—Consult the static table first. If no match, use dynamic detection.

l

Static Table Only—Use the static table; do not use dynamic detection.

l

Dynamic Detect Only—Use dynamic detection; do not use the static table.

l

Disable—Do not use the proximity route configuration.

Static Table

Type

ISP Name

IP Subnet l

ISP—Use an ISP address object.

l

Subnet—Specify an IP netmask manually.

Routes that are specified manually have priority over ISP address object entries.

If you use the ISP configuration type, select an ISP address book configuration object.

If an address exists in multiple ISP address books, the route entries have priority as follows:

1. User-defined entries.

2. Entries from an address book that has been imported.

3. Entries from the predefined address book (default for the firmware image).

If you use the Subnet configuration type, specify a destination IP address and netmask.

Gateway Select a gateway configuration object. The gateway must be able to route packets to the destination IP address that you have specified.

Dynamic Detect

Protocol l

ICMP—Use ICMP to detect routes. Calculate proximity by the smaller RTT.

l

ICMP and TCP—Some hosts do not respond to ICMP requests. Specify this option to use both ICMP and TCP to detect routes and RTT. For TCP detection, port 7

(TCP echo) is used. A connection refused or connection reset by the destination is treated as successful detection.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

157

Chapter 5: Link Load Balancing

Type

Aging Period

Retry Number

Retry Interval

Guidelines

The default is 86,400 seconds (24 hours).

The default is 3.

The default is 3.

Configuring a link group

Configuring a link group

Link groups include ISP gateways your company uses for outbound traffic. Grouping links reduces the risk of outages and provisions additional bandwidth to relieve potential traffic congestion. See

Using link groups .

The link group configuration specifies the load balancing algorithm and the gateway routers in the load balancing pool. You can enable LLB options, such as persistence rules and proximity routes.

Before you begin: l l

You must have configured gateway links and persistence rules and before you can select them in the link group configuration.

You must have Read-Write permission for Link Load Balance settings.

After you have configured a link group configuration object, you can select it in the link policy configuration.

To configure a link group:

1. Go to Link Load Balance > Link Group.

The configuration page displays the Link Group tab.

2. Click Add to display the configuration editor.

3. Complete the configuration and add members as described in

Table 33

.

4. Save the configuration.

 Table 33: Link group configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the LLB policy configuration.

Note: After you initially save the configuration, you cannot edit the name.

Address Type IPv4

Note: IPv4 is selected by default, and cannot be changed.

158 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring a link group Chapter 5: Link Load Balancing

Settings

Route Method

Persistence

Proximity

Route

Add member

Name

Gateway

Guidelines l

Weighted Round Robin—Dispatches new connections to link members using a weighted round-robin method.

l

Least Connections—Dispatches new connections to the link member with the lowest number of connections.

l

Least New Connections per Second—Dispatches new connections to the link member that has the lowest rate of new connections per second.

l

Least Throughput Outbound—Dispatches new connections to the link member with the least outbound traffic.

l

Least Throughput Inbound—Dispatches new connections to the link member with the least inbound traffic.

l

Least Throughput Total—Dispatches new connections to the link member with the least total traffic (that is, inbound plus outbound).

l

Spillover Throughput Outbound—Dispatches new connections according to the spillover list based on outbound traffic.

l

Spillover Throughput Inbound—Spillover list based on inbound traffic.

l

Spillover Throughput Total—Spillover list based on total traffic (that is, inbound plus outbound).

l

Source Address Hash—Selects the gateway link based on a hash of the source IP address.

Select a persistence configuration. Optional.

l

Enable—The system uses the proximity route logic and configuration when determining routes.

l

Disable—The system does not use the proximity route configuration.

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Select a gateway configuration object. See

Configuring gateway links

.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

159

Chapter 5: Link Load Balancing

Settings

Weight

Spillover

Priority

Status

Backup

Configuring a virtual tunnel group

Guidelines

Assigns relative preference among members—higher values are more preferred and are assigned connections more frequently. The default is 1. The valid range is 1 to 255.

All load balancing methods consider weight, except spillover, which uses its own priority configuration. Servers are dispatched requests proportional to their weight, relative to the sum of all weights.

The following example shows the effect of weight on WRR: l

Sever A, Weight 2; Server B, Weight 1: Requests are sent AABAAB.

l

Sever A, Weight 3; Server B, Weight 2: Requests are sent AABAB.

For other methods, weight functions as a tie-breaker. For example, with the Least

Connection algorithm, requests are sent to the server with the least connections.

If the number of connections is equal, the request is sent to the server with the greater weight. For example: l

Server A, Weight 1, 1 connection l

Server B, Weight 2, 1 connection

The next request is sent to Server B.

Assigns a priority to the link when using a spillover load balancing method. Higher values have greater priority. When a spillover method is enabled, the system dispatches new connections to the link that has the greatest spillover priority until its threshold is exceeded; then it dispatches new connections to the link with the next greatest priority until its threshold is exceeded, and so on.

If multiple links in a link group have the same spillover priority, the system dispatches new connections among those links according to round robin.

The default is 0. The valid range is 0-9.

l

Enable—The member is considered available for new traffic.

l

Disable—The member is considered unavailable for new traffic.

Enable to designate the link as a backup member of the group. All backup members are inactive until all main members are down.

Configuring a virtual tunnel group

Virtual tunnels enable reliable, site-to-site connectivity using Generic Routing Encapsulation (GRE) to tunnel traffic between pairs of FortiADC appliances. See

Using virtual tunnels

.

The virtual tunnel group configuration sets the list of tunnel members, as well as load balancing options like algorithm and weight.

When you add members to a virtual tunnel configuration, you specify a local and remote IP address. These addresses are IP addresses assigned to a network interface on the local and remote FortiADC appliance.

160 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring a virtual tunnel group Chapter 5: Link Load Balancing

Before you begin: l

You must have Read-Write permission for Link Load Balance settings.

After you have configured a virtual tunnel configuration object, you can select it in the link policy configuration.

To configure a virtual tunnel:

1. Go to Link Load Balance > Virtual Tunnel.

2. Click Add to display the configuration editor.

3. Complete the configuration and add members as described in

Table 34

.

4. Save the configuration.

 Table 34: Virtual tunnel configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the LLB policy configuration.

Note: After you initially save the configuration, you cannot edit the name.

Method l

Weighted Round Robin—Dispatches packets to VT members using a weighted round-robin method.

l

Source-Destination Hash—Dispatches packets by source-destination IP address tuple.

Add member

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Tunnel Local

Address

Tunnel

Remote

Address

Health Check

IP address for the network interface this system uses to form a VPN tunnel with the remote system.

IP address that the remote FortiADC system uses to form a VPN tunnel with this system.

Weight

Status

Backup l

Enable—Send probes to test whether the link is available.

l

Disable—Do not send probes to test the health of the link.

Assigns relative preference among members—higher values are more preferred and are assigned connections more frequently.

l

Enable—The member is considered available for new traffic.

l

Disable—The member is considered unavailable for new traffic.

Enable to designate the tunnel as a backup member of the group. All backup members are inactive until all main members are down.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

161

Chapter 5: Link Load Balancing Configuring link policies

Configuring link policies

A link policy matches traffic to rules that select a link group or virtual tunnel.

The policy uses a matching tuple: source, destination, service, and schedule. The policy match is a Boolean

AND—All must match for the rule to be applied.

The elements of the tuple support specification by group objects. This is a Boolean OR—If source IP address belongs to member 1 OR member 2, then source matches.

The logical combinations enable you to subscribe multiple address spaces or services to a group of links, and create load balancing rules on that group basis.

The policy table is consulted from top to bottom. The first rule to match is applied.

The FortiADC system evaluates traffic to determine the routing rules to apply.

With regard to link load balancing, the system evaluates rules in the following order and applies the first match:

1. LLB link policy

2. Policy route

3. Static/Dynamic route

4. LLB default link group

Before you begin: l l l

You must have configured any address, service, and schedule objects that you want to use as match criteria for your policy.

You must have configured a link group or virtual tunnel group.

You must have Read-Write permission for Link Load Balance settings.

To configure a link policy:

1. Go to Link Load Balance > Link Policy.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 35

.

4. Save the configuration.

5. Reorder rules, as necessary.

 Table 35: Link policy configuration

Option Guidelines

Default Link Group Select a link group configuration object that is used as the default when traffic does not match policy rules.

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

162 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring link policies

Option

Ingress Interface

Source Type

Source, Source ISP, or Source Group

Destination Type

Destination,

Destination ISP, or

Destination Group

Service Type

Service or Service

Group

Schedule

Group Type

Chapter 5: Link Load Balancing

Guidelines

Select the network interface to which the policy applies.

Whether to use address, address group, or ISP address objects for this rule.

Select an address object to match source addresses. If you do not specify a source address, the rule matches any source address. See

Configuring IPv4 address groups .

Whether to use address, address group, or ISP address objects for this rule.

Select an address object to match destination addresses. If you do not specify a destination address, the rule matches any destination. See

Configuring IPv4 address groups .

Whether to use service or service group objects for this rule.

Select a service object to match destination services. If you do not specify a service, the rule matches any service. See

Creating service groups

.

Select the schedule object that determines the times the system uses the logic of this configuration. The link policy is active when the current time falls in a time period specified by one or more schedules in the schedule group. If you do not specify a schedule, the rule applies at all times. See

Creating schedule groups .

l

Link Group—Policy applies to a link group. Select the option, then the link group. See

Configuring a link group .

l

Virtual Tunnel—Policy applies to a virtual tunnel. Select the option, then the virtual tunnel. See

Configuring a virtual tunnel group .

Select a link group.

Link Gtoup

Reordering

After you have saved a rule, reorder rules as necessary. The rules table is consulted from top to bottom. The first rule that matches is applied and subsequent rules are not evaluated.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

163

Chapter 6: Global Load Balancing

Chapter 6: Global Load Balancing

Global load balancing basics

This chapter includes the following topics: l l l l l l l l l l l l l l l l l

Global load balancing basics

Global load balancing configuration overview

Configuring data centers

Configuring servers

Configuring virtual server pools

Configuring hosts

Configuring dynamic proximity

Configuring persistence

Configuring an address group

Configuring remote DNS servers

Configuring the DSSET list

Configuring DNS zones

Configuring DNS64

Configuring the response rate limit

onfiguring a Global DNS policy

Configuring general settings

Configuring the trust anchor key

Global load balancing basics

The global load balancing (GLB) feature is a DNS-based solution that enables you to deploy redundant resources around the globe that you can leverage to keep your business online when a local area deployment experiences unexpected spikes or downtime. The FortiADC system implements a hardened BIND 9 DNS server that can be deployed as the authoritative name server for the DNS zones that you configure. Zone resource records are generated dynamically based on the global load balancing framework. The DNS response to a client request is an ordered lists of answers that includes all available virtual servers. A client that receives DNS response with a list of answers tries the first and only proceeds to the next answers if the first answer is unreachable. The response list is based on the following priorities:

1. Virtual server health—Availability is determined by real-time connectivity checking. When the DNS server receives a client request, it checks connectivity for all possible matches and excludes unavailable servers from the response list.

2. Persistence—You can enable persistence for applications that have transactions across multiple hosts. A match to the persistence table has priority over proximity algorithms.

3. Geographic proximity—Proximity is determined by matching the source IP address to either the FortiGuard Geo

IP database or the FortiADC predefined ISP address book. Dynamic proximity

4. Dynamic proximity—Proximity is determined by application response time (RTT probes) or least connections.

5. Weighted round robin—If proximity algorithms are not configured or not applicable, available virtual servers are listed in order based on a simple load balancing algorithm.

164 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Global load balancing basics Chapter 6: Global Load Balancing

Figure 43

shows an example global load balancing deployment with redundant resources at data centers in

China and the United States.

Figure  43:  Global load balancing deployment

FortiADC-1 is the local SLB for the data center in China. FortiADC-2 is the local SLB for the data center in the

United States. FortiADC-3 is a global SLB. It hosts the DNS server that is authoritative for www.example.com.

When a client clicks a link to www.example.com, the local host DNS resolver commences a DNS query that is ultimately resolved by the authoritative DNS server on FortiADC-3. The set of possible answers includes the virtual servers on FortiADC-1 or FortiADC-2. The global load balancing framework uses health status and proximity algorithms to determine the set of answers that are returned, and the order of the answer list. For example, you can use the global SLB framework geoproximity feature to direct clients located in China to the virtual server in China; or if the virtual server in China is unavailable, then to the redundant resources in the

United States.

You configure the global load balancing framework and DNS settings only on the global FortiADC (FortiADC-3 in the example above). The virtual server IP addresses and ports can be discovered by the FortiADC global SLB from the FortiADC local SLBs. The GLB DNS server uses the discovered IP addresses in the DNS response. The framework also supports third-party IP addresses and health checks for them.

The DNS server supports the following security features: l

DNSSEC—Domain Name System Security Extensions. DNSSEC provides authentication by associating cryptographically generated digital signatures with DNS resource record (RR) sets. The FortiADC system makes it easy to manage the keys that must be provided to DNS parent domains and the keys that must be imported from

DNS child domains.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

165

Chapter 6: Global Load Balancing Global load balancing configuration overview l l

Response rate limit—Helps mitigate DNS denial-of-service attacks by reducing the rate at which the authoritative name servers respond to high volumes of malicious queries.

DNS forwarding—In a typical enterprise local area network, the client configuration has the IP address of an internal authoritative DNS server so that requests for internal resources can be answered directly from its zone data.

Requests for remote resources are sent to another DNS server known as a forwarder. The internal server caches the results it learns from the forwarder, which optimizes subsequent lookups. Using forwarders reduces the number of

DNS servers that must be able to communicate with Internet DNS servers.

Further reading:

BIND 9 reference manuals: http://www.bind9.net/manuals

RFC 1035 (DNS): http://tools.ietf.org/html/rfc1035

RFC 4033 (DNSSEC): http://tools.ietf.org/html/rfc4033

Global load balancing configuration overview

In a global load balancing deployment, you configure DNS server and global load balancing details only on the global FortiADC instance. The configuration framework enables granular administration and fine tuning of both the DNS server and the global load balancing framework.

Figure 44

shows the basic configuration elements for global load balancing and the recommended order for creating the configuration objects. The order is important for initial configurations because complex configuration elements like policies often include references to simple configuration objects like the remote DNS servers

(forwarders) or DNS64 rules, but the simple elements must be created first.

166 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Global load balancing configuration overview

Figure  44:   Global load balancing configuration summary

Chapter 6: Global Load Balancing

Basic steps (DNS server)

1. Configure address groups to use in your DNS policy matching rules. The system includes the predefined address groups any and none.

2. Configure remote DNS servers (forwarders) and the DSSET list that you might reference in the zone configuration.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

167

Chapter 6: Global Load Balancing Configuring servers

3. Complete the zone configuration. The global load balancing framework generates the zone configuration for zones that include the FortiADC virtual servers.

4. Configure DNS64 or response rate limit configurations that you might reference in the DNS policy.

5. Configure the DNS policy that matches a source/destination tuple to a zone. You can also enable and configure

DNSSEC in the DNS policy.

6. Configure general DNS settings to be applied when DNS requests do not match the DNS policy.

Basic steps (Global load balancing)

1. Create the data center, servers, virtual server pool, and host configurations that are the framework for associating locations with virtual servers and generating the DNS zone configuration and resource records. You can adjust the dynamic proximity and persistence settings at any time.

2. Review the generated DNS zone configuration.

3. Create a policy that matches traffic to the generated zone configuration.

Configuring servers

In the context of the global server load balance configuration, servers are the local SLB (FortiADC instances or third-party servers) that are to be load balanced. For FortiADC instances, the GLB checks status and synchronizes configuration from the local SLB so that it can learn the set of virtual servers that are possible to include in the GLB virtual server pool.

Figure 45

illustrates configuration discovery. Placement in this list does not include them in the pool. You also must name them explicitly in the virtual server pool configuration.

Figure  45: Virtual server discovery

168

Before you begin:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring servers Chapter 6: Global Load Balancing l l l l

You must have created the data center configuration objects that are associated with the local SLB.

You must have created virtual server configurations on the local FortiADC SLB. In this procedure, the global SLB discovers them.

You must have created gateway configuration objects on the local FortiADC SLB if you want to configure a gateway health check. In this procedure, the global SLB discovers them.

You must have Read-Write permission for Global Load Balance settings.

After you have created a server configuration object, you can specify it the global load balancing virtual server pool configuration.

To configure servers:

1. Go to Global Load Balance > Global Object.

2. Click the Server tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 36 .

5. Use the Discover utility to populate the Member list configuration with virtual server configuration details from the local FortiADC SLB.

6. Optional. Edit the populated list to select a discovered gateway configuration object if you want the GSLB to perform gateway health checks.

7. Save the configuration.

 Table 36: Server configuration

Settings Guidelines

Name

Type

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

You reference this name in the virtual server pool configuration.

Note: After you initially save the configuration, you cannot edit the name.

l

FortiADC-SLB: A FortiADC instance.

l

Generic-Host: A third party ADC or server.

Synchronization

Address Type

Enable/disable synchronization of the virtual server status from the local

FortiADC SLB. Disabled by default. If enabled, synchronization occurs whenever there is a change in virtual server status.

IPv4 or IPv6.

IP Address

Data Center

Specify the IP address for the FortiADC management interface. This IP address is used for synchronization and also status checks. If the management interface is unreachable, the virtual servers for that FortiADC are excluded from DNS answers.

Select a data center configuration object. The data center configuration object properties are used to establish the proximity of the servers and the client requests.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

169

Chapter 6: Global Load Balancing

Settings

Health Check

Control

Health Check

Relationship

Configuring servers

Guidelines

If type is Generic Host, enable/disable health checks for the virtual server list.

The health check settings at this configuration level are the parent configuration.

When you configure the list, you can specify whether to inherit or override the parent configuration.

Note:This option is available only when Generic Host is selected. See Type above. Health checking is built-in, and you can optionally configure a gateway health check.

l

AND—All of the specified health checks must pass for the server to be considered available.

l

OR—One of the specified health checks must pass for the server to be considered available.

Select one or more health check configuration objects.

Health Check

List

Member

Add/Delete

Discover

Override

Name

Address Type

IP Address

Port

Protocol

Add or delete member virtual servers.

Populate the member list with virtual servers from the local FortiADC configuration. After the list had been populated, you can edit the configuration to add a gateway health check.

Select this option if you want to update the discovered virtual server configuration with the latest configuration information whenever you use the

Discover utility (for example, additions or changes to previously discovered configurations).

Unselect this option if you want to preserve the previously discovered configuration and not have it overwritten by the Discover operation.

Must match the virtual server configuration name on the local FortiADC.

IPv4 or IPv6.

Virtual server IP address.

Virtual server port.

TCP or UDP. The default is TCP.

170 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring a global load balance link

Settings

Gateway

Health Check

Inherit

Health Check

Control

Health Check

Relationship

Health Check

List

Guidelines

Chapter 6: Global Load Balancing

Enable an additional health check: is the gateway beyond the FortiADC reachable?

The list of gateway configuration objects is populated by discovery, but you must select the appropriate one from the list.

If type is Generic Host, enable to inherit the health check settings from the parent configuration. Disable to specify health check settings in this member configuration.

Enable health checking for the virtual server.

Note: This option is available only when Health Check Inherit is disabled. In that case, you can enable this option and configure the Health Check Relationship and Health Check List fields below.

l

AND—All of the specified health checks must pass for the server to be considered available.

l

OR—One of the specified health checks must pass for the server to be considered available.

Specify one or more health check configuration objects.

Configuring a global load balance link

To configure a global load balance link:

1. Go to Global Load Balance > Global Object.

2. Click the Data Link tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 37

.

5. Save the configuration.

 Table 37: Global load balance link configuration

Settings Guidelines

Name

Data Center

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the global load balance servers configuration.

Note: After you initially save the configuration, you cannot edit the name.

Select a data center from the list.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

171

Chapter 6: Global Load Balancing

Settings

ISP

ISP City

Gateway

Server

Gateway

Name

Guidelines

Select an ISP from the list.

Select an ISP city from the list.

Select a server.

Configuring data centers

Specify a name for the gateway or select one if you've already have one configured on the system.

Configuring data centers

The data center configuration sets key properties: Location and/or ISP and ISP province. These properties are used in the global load balancing algorithm that selects the FortiADC in closest proximity to the client.

Before you begin: l l

If you want to select a user-defined ISP address book, you must create it before creating the data center configuration.

You must have Read-Write permission for Global Load Balance settings.

After you have created a data center configuration object, you can specify it in the global load balance servers configuration.

To configure a data center:

1. Go to Global Load Balance > Global Object.

2. Click the Data Center tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 38

.

5. Save the configuration.

 Table 38: Data center configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the global load balance servers configuration.

Note: After you initially save the configuration, you cannot edit the name.

Location

Description

Select a location from the location list.

Optional description to help administrators know the purpose or usage of the configuration.

172 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring hosts Chapter 6: Global Load Balancing

Configuring hosts

Host settings are used to form the zone configuration and resource records in the generated DNS zone used for global load balancing.

Figure 46

shows how the host settings are mapped to zone settings and resource records. Domain and hostname are used in both the configuration and the generated configuration name. The IP address and weight are derived from the virtual server pool.

Figure  46:  Host configuration and the generated DNS zone

Before you begin: l l

You must have created the global virtual server pools you want to use.

You must have Read-Write permission for Global Load Balance settings.

After you have created a host configuration object, it can be used to form the zone and resource records in the generated DNS zone configuration.

To configure a host:

1. Go to Global Load Balance > FQDN Settings.

2. Click the Host tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 39

.

5. Save the configuration.

 Table 39: Host configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

Note: After you initially save the configuration, you cannot edit the name.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

173

Chapter 6: Global Load Balancing Configuring virtual server pools

Settings

Host Name

Domain Name

Respond single record

Persistence

Virtual Server

Pool

Guidelines

The hostname part of the FQDN, such as www.

Note: You can specify the @ symbol to denote the zone root. The value substituted for @ is the preceding $ORIGIN directive.

The domain name must end with a period. For example: example.com.

Enable/disable an option to send a single record in response to a query. Disabled by default. By default, the response is an ordered list of records.

Enable/disable the persistence table. Disabled by default.

If you enable persistence, the client source address is recorded in the persistence table, and subsequent requests from the same network or the same host or domain are sent an answer with the virtual servers listed in the same order (unless a server becomes unavailable and is therefore omitted from the answer).

Select a virtual server pool configuration object.

Configuring virtual server pools

The virtual server pool configuration defines the set of virtual servers that can be matched in DNS resource records, so it should include, for example, all the virtual servers that can be answers for DNS requests to resolve www.example.com.

You also specify the key parameters of the global load balancing algorithm, including proximity options, status checking options, load balancing method, and weight.

The DNS response is an ordered list of answers. Virtual servers that are unavailable are excluded. Available virtual servers are ordered based on the following priorities:

1. Geographic proximity

2. Dynamic proximity

3. Weighted round robin

A client that receives DNS response with a list of answers tries the first and only proceeds to the next answers if the first answer is unreachable.

Before you begin: l l

You must have created GLB Servers configuration objects.

You must have Read-Write permission for Global Load Balance settings.

After you have created a virtual server pool configuration object, you can specify it in the global load balancing host configuration.

174 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring virtual server pools Chapter 6: Global Load Balancing

To configure a virtual server pool:

1. Go to Global Load Balance > FQDN Settings.

2. Click the Virtual Server pool tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 40

.

5. Save the configuration.

 Table 40: Virtual server pool configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the host configuration.

Note: After you initially save the configuration, you cannot edit the name.

Proximity l

None—Proximity not used.

l

Geo—Proximity based on geolocation.

l

Geo-ISP—Proximity based on IP address belonging to an ISP address group first, then geolocation.

Dynamic Proximity l

None—Dynamic proximity not used.

l

RTT—The virtual server with the shortest application response time (RTT) is listed first in the answer. The settings specified by the GSLB proximity configuration are used to poll RTT.

l

Least Connections—The virtual server with the least connections is listed first in the answer. Connection count is reported every three seconds.

Check Server

Status

Check Virtual

Server

Existence

Default

Feedback IPv4

Default

Feedback IPv6

Member

Server

Server

Member

Enable/disable polling of the local FortiADC SLB. If the server is unresponsive, its virtual servers are not selected for DNS answers.

Enable/disable checks on whether the status of the virtual servers in the virtual server list is known. Virtual servers with unknown status are not selected for DNS answers.

Specify an IP address to return in the DNS answer if no virtual servers are available.

Specify an IPv6 address to return in the DNS answer if no virtual servers are available.

Select a GLB Servers configuration object.

Select the name of the virtual server that is in the servers virtual server list configuration.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

175

Chapter 6: Global Load Balancing

Settings

Weight

Backup

Guidelines

Configuring dynamic proximity

Assigns relative preference among members—higher values are more preferred and are assigned connections more frequently.

The default is 1. The valid range is 1-255.

Enable to designate the member as a backup. Backup members are inactive until all main members are down.

Configuring dynamic proximity

Use this page to configure dynamic proximity. Dynamic proximity is used to order DNS lookup results based on round-trip time (RTT) for ICMP or TCP probes sent by the local SLB to the DNS resolver that sent the DNS request.

The system caches the RTT results for the period specified by the timeout. When there are subsequent requests from clients that have a source IP address within the specified netmask, the RTT is taken from the results table instead of a new, real-time probe. This reduces DNS response time.

Before you begin: l

You must have Read-Write permission for Global Load Balance settings.

The settings you configure are applied if dynamic-proximity is enabled in the virtual server pool configuration.

To configure dynamic proximity settings:

1. Go to Global Load Balance > FQDN Settings.

2. Click the GLB Proximity tab.

3. Complete the configuration as described in

Table 41

.

4. Save the configuration.

 Table 41: Dynamic proximity settings

Settings Guidelines

Protocol l

ICMP—Use ICMP to detect routes. Calculate proximity by the smaller RTT.

l

ICMP and TCP—Some hosts do not respond to ICMP requests. Specify this option to use both ICMP and TCP to detect routes and RTT. For TCP detection, a SYN packet is sent to port 53. A connection refused or connection reset by the destination is treated as successful detection.

Retry Number

Retry Interval

Retry count if the probe fails. The default is 3. The valid range is 1-10 times.

Interval between retries if the probe fails. The default is 3. The valid range is 1-3600 seconds.

176 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring persistence Chapter 6: Global Load Balancing

Settings Guidelines

IPv4 Prefix Length Number of IPv4 netmask bits that define network affinity for the RTT table. The default is 24. For example, if the GLB records an RTT for a client with source IP address 192.168.1.100, the record is stored and applies to all requests from the

192.168.1.0/24 network.

IPv6 Prefix Length Number of IPv6 netmask bits that define network affinity for the RTT table. The default is 64.

Aging Timeout RTT results are cached. This setting specifies the length of time in seconds for which the RTT cache entry is valid. The default is 86400. The valid range is 60-2,592,000 seconds.

Configuring persistence

Use this page to configure source address affinity and a timeout for GSLB persistence. You enable persistence per host in the GSLB host configuration.

If the DNS query is for a host that has persistence enabled, the DNS server replies with an answer that has the virtual server IP addresses listed in the order determined by the GSLB proximity algorithms, and the client source

IP address (for example 192.168.1.100) is recorded in the persistence table. If source address affinity is set to 24 bits, subsequent queries for the host from the 192.168.1.0/24 network are sent an answer with the virtual servers listed in the same order (unless a server becomes unavailable and is therefore omitted from the answer).

Persistence is required for applications that include transactions across multiple hosts, so the persistence table is also used for queries for other hosts with the same domain. For example, a transaction on a banking application might include connections to login.bank.com and transfer.bank.com. To support persistence in these cases, the

GSLB persistence lookup accounts for domain as well. The first query for login.bank.com creates a mapping for the source address network 192.168.1.0/24 and the domain bank.com. When the DNS server receives subsequent requests, it consults the persistence table for a source network match, then a domain match and a hostname match. In this example, as long as you have created host configurations for both login.bank.com and transfer.bank.com, and persistence is enabled for each, the persistence table can be used to ensure the DNS answers to queries from the same network list the resource records in the same order.

Before you begin: l

You must have Read-Write permission for Global Load Balance settings.

To configure persistence:

1. Go to Global Load Balance > FQDN Settings.

2. Click the Persistence tab.

3. Complete the configuration as described in

Table 42

.

4. Save the configuration.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

177

Chapter 6: Global Load Balancing Configuring an address group

 Table 42: GSLB persistence settings

Settings Guidelines

IPv4 Mask Length Number of IPv4 netmask bits that define network affinity for the persistence table. The default is 24.

IPv6 Mask Length Number of IPv6 netmask bits that define network affinity for the persistence table. The default is 64.

Aging Period This setting specifies the length of time in seconds for which the entry is maintained in the persistence table. The default is 86400. The valid range is 60-2,592,000 seconds.

Configuring an address group

An address group is a configuration object that specifies the source and destination IP addresses that are the matching criteria for DNS policies.

Before you begin: l

You must have Read-Write permission for Global Load Balance settings.

After you have configured an address group, you can select it in the DNS policy configuration.

To configure address groups:

1. Go to Global Load Balance > Zone Tools.

2. Click the Address Group tab.

3. Click Add to display the configuration editor.

4. Complete the configuration and add members as described in

Table 43

 Table 43: Address group configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the global DNS policy configuration.

Note: After you initially save the configuration, you cannot edit the name.

Member

Address Type

IP/Netmask l

IPv4 l

IPv6

Address/mask notation to match the IP address in the packet header.

Create objects to match source IP address and different objects to match destination IP address.

178 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring remote DNS servers

Settings

Action

Guidelines

Chapter 6: Global Load Balancing l

Include—The rule logic creates an address object that includes addresses matching the specified address block.

l

Exclude—The rule logic creates an address object that excludes addresses matching the specified address block.

Configuring remote DNS servers

The remote server configuration is used to create a list of DNS forwarders. DNS forwarders are commonly used when you do not want the local DNS server to connect to Internet DNS servers. For example, if the local DNS server is behind a firewall and you do not want to allow DNS through that firewall, you implement DNS forwarding to a remote server that is deployed in a DMZ or similar network region that can contact Internet DNS servers.

Before you begin: l l

You must have a good understanding of DNS and knowledge of the remote DNS servers that can be used to communicate with Internet domain servers.

You must have Read-Write permission for Global Load Balance settings.

After you have configured remote DNS servers, you can select them in DNS zone and DNS policy configurations.

To configure a remote server:

1. Go to Global Load Balance > Zone Tools.

2. Click the Remote DNS Server tab.

3. Click Add to display the configuration editor.

4. Complete the configuration and add members as described in

Table 44

.

 Table 44: Remote DNS server configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the zone configuration (if you use forwarders).

Note: After you initially save the configuration, you cannot edit the name.

Member

Address Type l

IPv4 l

IPv6

Address

Port

IP address of the remote DNS server.

Port number the remote server uses for DNS. The default is 53.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

179

Chapter 6: Global Load Balancing Configuring the DSSET list

Configuring the DSSET list

If you enable DNSSEC, secure communication between the FortiADC DNS server and any child DNS servers is based on keys contained in delegation signer files (DSSET files). In DNSSEC deployments, DSSET files are generated automatically when the zone is signed by DNSSEC.

You use the DSSET list configuration to paste in the content of the DSSET files provided by child domain servers or stub domains.

Note: You use the Global DNS zone configuration to generate the DSSET file for this server. The file generated by the zone configuration editor is the one you give to any parent zone or the registrar of your domain.

Before you begin: l l l

You must have a good understanding of DNSSEC and knowledge of the DNS deployment in your network.

You must have used DNSSEC to sign the child domain servers and have downloaded the DSset files to a location you can reach from your management computer.

You must have Read-Write permission for Global Load Balance settings.

After you have configured a DSSET list, you can select it in DNS zone configuration.

To configure the DSSET list:

1. Go to Global Load Balance > Zone Tools.

2. Click the DSSET List tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 45

.

 Table 45: DSset list configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference the name in the zone configuration (if you enable DNSSEC).

After you initially save the configuration, you cannot edit the name.

Filename

Content

Type the filename. The convention is dsset-<domain>, for example, dssetexample.com

.

Paste the DSset file content. The content of DSset files is similar to the following: dns.example.com. IN DS 13447 5 1

A5AD9EFB6840F58CF817F3CC7C24A7ED2DD5559C

Configuring DNS zones

The DNS zone configuration is the key to the global load balancing solution. This configuration contains the key

DNS server settings, including:

180 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring DNS zones Chapter 6: Global Load Balancing l l l l

Domain name and name server details.

Type—Whether the server is the master or a forwarder.

DNSSEC—Whether to use DNSSEC.

DNS RR records—The zone configuration contains resource records (RR) used to resolve DNS queries delegated to the domain by the parent zone.

You can specify different DNS server settings for each zone you create. For example, the DNS server can be a master for one zone and a forwarder for another zone.

Before you begin: l l l

You must have a good understanding of DNS and knowledge of the DNS deployment in your network.

You must have authority to create authoritative DNS zone records for your network.

You must have Read-Write permission for Global Load Balance settings.

After you have configured a DNS zone, you can select it in the DNS policy configuration.

To configure the DNS zone:

1. Go to Global Load Balance > Zone Tools.

2. Click the Zone tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 46

.

 Table 46: DNS zone configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference the name in the global DNS policy configuration.

After you initially save the configuration, you cannot edit the name.

Type l

Master—The configuration contains the “master” copy of data for the zone and is the authoritative server for it.

l

Forward—The configuration allows you to apply DNS forwarding on a per-domain basis, overriding the forwarding settings in the “general” configuration.

l

FQDN Generate—The zone and its resource record is generated from the global load balancing framework.

Domain Name

Forward Options

The domain name must end with a period. For example: example.com.

Forward

Forwarders l

First—The DNS server queries the forwarder before doing its own DNS lookup.

l

Only—Only query the forwarder. Do not perform a DNS lookup.

l

Note: The internal server caches the results it learns from the forwarders, which optimizes subsequent lookups.

Select a remote server configuration object.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

181

Chapter 6: Global Load Balancing Configuring DNS zones

Settings

Master Options

TTL

Guidelines

Negative TTL

Responsible

Mail

The $TTL directive at the top of the zone file (before the SOA) gives a default TTL for every RR without a specific TTL set.

The default is 86,400. The valid range is 0 to 2,147,483,647.

The last field in the SOA—the negative caching TTL. This informs other servers how long to cache no-such-domain (NXDOMAIN) responses from you. The default is 3600 seconds. The valid range is 0 to 2,147,483,647.

Username of the person responsible for this zone, such as hostmaster.example.com.

.

Note: Format is mailbox-name.domain.com. (remember the trailing dot).

The format uses a dot, not the @ sign used in email addresses because @ has other uses in the zone file. Email, however, is sent to [email protected].

Sets the server name in the SOA record.

Primary Server

Name

Primary Server

Address

DNSSEC

DNSSEC

Algorithm

KSK Filename

The IP address of the primary server.

Enable/disable DNSSEC.

Only RSASHA1 is supported.

KSK

ZSK Filename

ZSK

DSSET

Filename

It is generated by the system if DNSSEC is enabled for the zone.

To regenerate the KSK, disable DNSSEC and then re-enable DNSSEC.

Type characters for a string key. The file is generated by the system if DNSSEC is enabled for the zone.

It is generated by the system if DNSSEC is enabled for the zone.

To regenerate the ZSK, disable DNSSEC and then re-enable DNSSEC.

Type characters for a string key. The file is generated by the system if DNSSEC is enabled for the zone.

The file is generated by the system if DNSSEC is enabled for the zone. The file generated by the zone configuration editor is the one you give to any parent zone or the registrar of your domain.

The convention is dsset-<domain>, for example dsset-example.com.

182 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring DNS zones Chapter 6: Global Load Balancing

Settings

DSSET

DSSET List

Guidelines

It is generated by the system if DNSSEC is enabled for the zone.

Select a DSSET configuration object. See

Configuring the DSSET list

.

FQDN Record

FQDN Record table

A/AAAA Record

Hostname

Displays a summary of all DNS RR for the zone, including generated and manually configured RR.

The hostname part of the FQDN, such as www.

Note: You can specify the @ symbol to denote the zone root. The value substituted for @ is the preceding $ORIGIN directive.

Type

Weight

Address

Method

CNAME Record

Alias l

IPv4 l

IPv6

Assigns relative preference among members—higher values are more preferred and are assigned connections more frequently.

The default is 1. The valid range is 1-255.

Specify the IP address of the virtual server.

Weighted Round Robin is the only method supported.

An alias name to another true or canonical domain name (the target). For instance, www.example.com is an alias for example.com.

The true or canonical domain name. For instance, example.com.

Target

NS Record

Domain Name

Hostname

Type

Address

The domain for which the name server has authoritative answers, such as example.com

.

The hostname part of the FQDN, such as ns.

l

IPv4 l

IPv6

Specify the IP address of the name server.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

183

Chapter 6: Global Load Balancing

Guidelines Settings

MX Record

Hostname

Priority

Type

Address

TXT Record

Name

Text

Configuring DNS64

The hostname part of the FQDN for a mail exchange server, such as mail.

Preference given to this RR among others at the same owner. Lower values have greater priority.

l

IPv4 l

IPv6

Specify the IP address.

Hostname.

TXT records are name-value pairs that contain human readable information about a host. The most common use for TXT records is to store SPF records.

Comma-separated list of name=value pairs.

An example SPF record has the following form: v=spf1 +mx a:colo.example.com/28 -all

If you complete the entry from the the Web UI, do not put the string in quotes. (If you complete the entry from the CLI, you do put the string in quotes.)

SRV Record

Host Name

Priority

Weight

Port

Target Name

The host name part of the FQDN, e.g., www.

A priority assigned to the target host: the lower the value, the higher the priority.

A relative weight assigned to a record among records of the same priority: the greater the value, the more weight it carries.

The TCP or UDP port on which the service is provided.

The canonical name of the machine providing the service.

Configuring DNS64

The DNS64 configuration maps IPv4 addresses to AAAA queries when there are no AAAA records. This feature is optional. It can be used in network segments that use NAT64 to support IPv6 client communication with IPv4 backend servers.

Before you begin:

184 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the response rate limit Chapter 6: Global Load Balancing l l l

You must have a good understanding of DNS and knowledge of the DNS deployment in your network.

You must have configured address objects that specify the network segments for which the DNS64 map applies.

See

Configuring an address group

.

You must have Read-Write permission for Global Load Balance settings.

After you have created a DNS64 configuration, you can select it a DNS policy configuration.

To configure DNS64:

1. Go to Global Load Balance > Zone Tools.

2. Click the DNS64 tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 47

.

 Table 47: DNS64 configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference the name in the global DNS policy configuration.

After you initially save the configuration, you cannot edit the name.

IPv6 Prefix

Source

Address

Mapped

Address

IP address and netmask that specify the DNS64 prefix. Compatible IPv6 prefixes have lengths of 32, 40, 48, 56, 64 and 96 as per RFC 6052.

Each DNS64 configuration has one prefix.

Multiple configurations can be defined.

Select an address object. Only clients that match the source IP use the DNS64 lookup table.

Select an address object that specifies the IPv4 addresses that are to be mapped in the corresponding A RR set.

Exclude Select an address object. Allows specification of a list of IPv6 addresses that can be ignored. Typically, you exclude addresses that do have AAAA records.

Configuring the response rate limit

The response rate limit keeps the FortiADC authoritative DNS server from being used in amplifying reflection denial of service (DoS) attacks.

Before you begin: l l

You must have a good understanding of DNS.

You must have Read-Write permission for Global Load Balance settings.

After you have created a response rate limit configuration, you can select it in the DNS policy and DNS general settings configurations.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

185

Chapter 6: Global Load Balancing onfiguring a Global DNS policy

To configure the response rate limit:

1. Go to Global Load Balance > Zone Tools.

2. Click the Response Rate Limit tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 48

.

 Table 48: Response rate limit configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference the name in the global DNS policy configuration.

After you initially save the configuration, you cannot edit the name.

Responses per

Second

Maximum number of responses per second. The valid range is 1-2040. The default is 1000.

onfiguring a Global DNS policy

The Global DNS policy is a rulebase that matches traffic to DNS zones. Traffic that matches both source and destination criteria is served by the policy. Traffic that does not match any policy is served by the DNS “general settings” configuration.

Before you begin: l l l

You must have a good understanding of DNS and knowledge of the DNS deployment in your network.

You must have configured address objects, remote servers, DNS zones, and optional configuration objects you want to specify in your policy.

You must have Read-Write permission forGlobal Load Balance settings.

To configure the global DNS policy rulebase:

1. Go to Global Load Balance > Zone Tools.

2. Click the Global DNS Policy tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 49

.

5. Save the configuration.

6. Reorder rules, as necessary.

 Table 49: Global DNS policy configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

186 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring general settings

Settings

Source

Destination

Zone List

DNS64 List

Recursion

DNSSEC

DNSSEC

Validation

Forward

Forwarders

Response

Rate Limit

Reordering

Chapter 6: Global Load Balancing

Guidelines

Select an address object to specify the source match criteria. See

Configuring an address group .

Select an address object to specify the destination match criteria. See

Configuring an address group .

Select one or more zone configurations to serve DNS requests from matching traffic. See

Configuring DNS zones .

Select one or more DNS64 configurations to use when resolving IPv6 requests.

See

Configuring DNS64 .

Enables/disables recursion. If enabled, the DNS server attempts to do all the work required to answer the query. If not enabled, the server returns a referral response when it does not already know the answer.

Enables/disables DNSSEC.

Enables/disables DNSSEC validation.

l

First—The DNS server queries the forwarders list before doing its own DNS lookup.

l

Only—Only queries the forwarders list. Does not perform its own DNS lookups.

Note: The internal server caches the results it learns from the forwarders, which optimizes subsequent lookups.

If the DNS server zone has been configured as a forwarder, select the remote

DNS server to which it forwards requests. See

Configuring remote DNS servers

.

Select a rate limit configuration object. See

Configuring the response rate limit

.

After you have saved a rule, reorder rules as necessary. The rules table is consulted from top to bottom. The first rule that matches is applied and subsequent rules are not evaluated.

Configuring general settings

The general settings configuration specifies the interfaces that listen for DNS requests. By default, the system listens on the IPv4 and IPv6 addresses of all configured interfaces for DNS requests.

The other settings in the general settings configuration are applied when traffic does not match a Global DNS policy.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

187

Chapter 6: Global Load Balancing Configuring general settings

Before you begin: l l

You must have a good understanding of DNS and knowledge of the DNS deployment in your network.

You must have Read-Write permission for Global Load Balance settings.

To configure general settings:

1. Go to Global Load Balance > Zone Tools.

2. Click the General Settings tab.

3. Complete the configuration as described in

Table 50

.

4. Save the configuration.

 Table 50: General configuration

Settings Guidelines

Global DNS

Configuration

Enables/disables this configuration.

Recursion Enables/disables recursion. If enabled, the DNS server attempts to do all the work required to answer the query. If not enabled, the server returns a referral response when it does not already know the answer.

DNSSEC

DNSSEC

Validation

Listen on IPv6

Listen on IPv4

Traffic Log

Listen on All

Interface

Forward

Enables/disables DNSSEC.

Enables/disables DNSSEC validation.

Enables/disables listening for DNS requests on the interface IPv6 address.

Enables/disables listening for DNS requests on the interface IPv4 address.

Enables/disables traffic log.

Enables listening on all interfaces.

l

First—The DNS server queries the forwarder before doing its own DNS lookup.

l

Only—Only queries the forwarder. Does not perform its own DNS lookups.

Note: The internal server caches the results it learns from forwarders, which optimizes subsequent lookups.

Forwards DNS requests to the system DNS server instead of the forwarders list.

Use System

DNS Server

Response

Rate Limit

Selects a rate limit configuration object. See

Configuring the response rate limit

.

188 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the trust anchor key Chapter 6: Global Load Balancing

Configuring the trust anchor key

DNSSEC validation requires that a DNS name server know the trust anchor key for the root DNS domain in order to validate already signed responses. In general, trust anchor keys do not change often, but they do change occasionally, and might change unexpectedly in the event the keys are compromised.

The FortiADC DNS server is preconfigured with a trust anchor key for the root DNS domain. If you are informed that you must update this key, you can use the configuration editor to paste the new content into the DNS server configuration.

Further reading: http://data.iana.org/root-anchors/draft-icann-dnssec-trust-anchor.html

Before you begin: l l l

You must have a good understanding of DNSSEC and knowledge of the DNS deployment in your network.

You must have already obtained the key so that you can copy and paste it into the DNS server configuration.

You must have Read-Write permission for Global Load Balance settings.

To configure the trust anchor key:

1. Go to Global Load Balance > Zone Tools.

2. Click the Trust Anchor Key tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 51

.

5. Save the configuration.

 Table 51: Trust anchor key configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Value The key value. The key format is a string with the following format:

\"<domainname>\" <num1> <num2> <num3> \"<content>\"

The following is an example:

\".\" 256 3 5

\"AwEAAbDrWmiIReotvZ6FObgKygZwUxSUJW9z5pjiQMLH0JBGXooHrR16 pdKhI9mNkM8bLUMtwYfgeUOYXIvfagee8rk=\"

Description

Description for the key.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

189

Chapter 7: Network Security

Chapter 7: Network Security

Security features basics

This chapter includes the following topics: l l l l l l l

Security features basics

Managing IP reputation policy settings

Configuring IP reputation exception

Using the Geo IP block list

Enabling denial of service protection

Configuring a firewall policy

Configuring firewall connection limit

Security features basics

In most deployment scenarios, we recommend you deploy FortiGate to secure your network. Fortinet includes security functionality in the FortiADC system to support those cases when deploying FortiGate is impractical.

FortiADC includes the following security features: l l l l l l

Firewall—Drop traffic that matches a source/destination/service tuple you specify.

Security connection limit—Drop an abnormally high volume of traffic from a source/destination/service match.

IP Reputation service—Drop or redirect traffic from source IPs that are on the FortiGuard IP Reputation list.

Geo IP—Drop or redirect traffic from source IPs that correspond with countries in the FortiGuard Geo IP database.

Web application firewall—Drop or alert when traffic matches web application firewall attack signatures and heuristics.

Denial of service protection—Drop half-open connections to protect the system from a SYN flood attack.

Managing IP Reputation policy settings

The FortiGuard IP Reputation service provides a database of known compromised or malicious client IP addresses. The database is updated periodically.

The IP Reputation configuration allows you to specify the action the system takes when an SLB virtual server receives traffic from a client with an IP address on the list.

Table 52

lists limitations for IP Reputation actions.

 Table 52: IP Reputation actions

Action Profile Limitations

Pass IPv4 only Not supported for RADIUS.

Deny IPv4 only Not supported for RADIUS.

190 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Managing IP Reputation policy settings Chapter 7: Network Security

Action

Redirect

Send 403

Forbidden

IPv4 only

IPv4 only

Profile Limitations

Not supported for RADIUS, FTP, TCP, UDP.

Not supported for RADIUS, FTP, TCP, UDP.

Note: IP Reputation is also not supported for Layer 4 virtual servers when the Packet Forwarding Mode is Direct

Routing.

Basic Steps

1. Configure the connection to FortiGuard so the system can receive periodic IP Reputation Database updates. See

Configuring FortiGuard service settings .

2. Optionally, customize the actions you want to take when the system encounters a request from a source IP address that matches the list; and add exceptions. If a source IP address appears on the exceptions list, the system does not look it up on the IP Reputation list. See below.

3. Enable IP Reputation in the profiles you associate with virtual servers. See

Configuring Application profiles .

Before you begin: l

You must have Read-Write permission for Firewall settings.

To customize IP Reputation policy rules:

1. Go to Network Security > IP Reputation.

2. Make sure to select the IP Reputation tab, which displays all IP reputation policy configuration in FortiADC.

3. Click a policy or the corresponding Edit icon to open the IP Reputation editor.

4. Make the desired changes as described in

Table 53

.

5. Click Save.

 Table 53: IP Reputation policy configuration

Settings Guidelines

Category Depending the configuration on ForitGuard IP Reputation service, the IP reputation policy can be one of the following categories: l

Botnet l

Anonymous Proxy l

Phishing l

Spam l

Other

Status Enable or disable the category.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

191

Chapter 7: Network Security

Settings

Action

Severity

Log

Configure IP reputation exception

Guidelines l

Pass l

Deny l

Redirect l

Send 403 Forbidden

Note: Layer 4 and TCPS virtual servers do not support Redirect or Send 403

Forbidden. If you apply an IP Reputation configuration that uses these options to a Layer 4 or TCPS virtual server, FortiADC logs the action as Redirect or Send

403 Forbidden but in fact denies the traffic.

The severity to apply to the event. Severity is useful when you filter and sort logs: l

Low l

Medium l

High

Eable or disable logging.

Configure IP reputation exception

To create an IP Reputation exception:

1. Go to Network Security > IP Reputation.

2. Click the IP Reputation Exception tab to add exceptions as described in

Table 54 .

3. Click Save.

 Table 54: IP Reputation exception

Settings Guidelines

Status Enable or disable the exception. You might have occasion to toggle the exception off and on.

Type

IP/Netmask l

IP/netmask: Select this option to block a specified IP address.

l

IP Range: Select this option to block a specified IP address range.

If IP/netmask is selected in the Type field above, specify a subnet using the address/mask notation.

Start IP / End

IP

Is IP Range is selected in the Type field above, specify the starting address and ending address of the IP range.

192 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the Geo IP block list Chapter 7: Network Security

Using the Geo IP block list

The FortiGuard Geo IP service provides a database that maps IP addresses to countries, satellite providers, and anonymous proxies. The database is updated periodically.

The Geo IP block list is a policy that takes the action you specify when the virtual server receives requests from IP addresses in the blocked country’s IP address space.

For Layer 4 virtual servers, FortiADC blocks access when the first TCP SYN packet arrives. For Layer 7 virtual servers, FortiADC blocks access after the handshake, allowing it to redirect the traffic if you have configured it to do so.

Table 55

lists limitations for Geo IP block list actions.

 Table 55: Geo IP block list actions

Action Profile Limitations

Pass IPv4 only Not supported for HTTP Turbo, RADIUS.

Deny IPv4 only Not supported for HTTP Turbo, RADIUS.

Redirect

Send 403

Forbidden

IPv4 only

IPv4 only

Not supported for HTTP Turbo, RADIUS, FTP, TCP, TCPS,

UDP.

Not supported for HTTP Turbo, RADIUS, FTP, TCP, TCPS,

UDP.

Basic Steps

1. Configure the connection to FortiGuard so the system can receive periodic Geo IP Database updates. See

Configuring FortiGuard service settings .

2. Create rules to block traffic from locations.

3. Maintain a whitelist to allow traffic from specified subnets even if they belong to the address space blocked by the

Geo IP block list.

4. Select the Geo IP block list and whitelist in the profiles you associate with virtual servers. See

Configuring

Application profiles

.

Before you begin: l

You must have Read-Write permission for Security settings.

To configure a Geo IP block list:

1. Go to Network Security > Geo IP Protection.

2. Click the Geo IP Protection tab.

3. Click Add to create a block list as described in

Table 56

.

4. Click Save.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

193

Chapter 7: Network Security Using the Geo IP whitelist

 Table 56: Geo IP block list configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Log Enable/disable logging.

Action

Severity l

Pass—Allow the traffic.

l

Deny—Drop the traffic.

l

Redirect—Send a redirect. You specify the redirect URL on the profile configuration page.

l

Send 403 Forbidden—Send the HTTP Response code 403.

Note: Layer 4 and TCPS virtual servers do not support Redirect or Send 403

Forbidden. If you apply an Geo IP configuration that uses these options to a Layer

4 or TCPS virtual server, FortiADC logs the action as Redirect or Send 403

Forbidden, but in fact denies the traffic.

The severity to apply to the event. Severity is useful when you filter and sort logs: l

Low l

Medium l

High

Enable or disable the Geo IP block list configuration.

Status

Member

Country Select a geolocation object. The list includes countries as well as selections for anonymous proxies and satellite providers.

Using the Geo IP whitelist

To configure a Geo IP whitelist:

1. Go to Network Security > Geo IP Protection.

2. Click the Whitelist tab to create a whitelist as described in

Table 57 .

3. Click Save.

194 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Enabling denial of service protection Chapter 7: Network Security

 Table 57: Geo IP whitelist configuration

Settings Guidelines

Name Configuration name. The name can be up to 35 characters long. Valid characters are A-Z, a-z, 0-9, _, and -. No space is allowed.

After you initially save the configuration, you cannot edit the name.

Description

Status

A string to describe the purpose of the configuration, to help you and other administrators more easily identify its use.

Enable/disable the exception. You might have occasion to toggle the exception off and on.

Member

Type

Description

Select and configure either of the following:

IP Subnet—Specify the IP address and CIDR-formatted subnet mask, separated by a forward slash ( / ), such as 192.0.2.0/24. Dotted quad formatted subnet masks are not accepted. IPv6 addresses are not supported.

IP Range—Specify the Start IP and the End IP addresses of the IP range.

Enter a brief description of the IP subnet or IP range, depending on which Type you choose. The description can be up to 1023 characters long. Valid characters are A-Z, a-z, 0-9, _, -,., and :. No space is allowed.

Enabling denial of service protection

You can enable basic denial of service (DoS) prevention to combat SYN floods . When enabled, FortiADC uses the SYN cookie method to track half-open connections. The system maintains a DoS mitigation table for each configured IPv4 virtual server. It times out half-open connections so that they do not deplete system resources.

Note: The DoS feature is supported for traffic to virtual servers only. However, it is not supported for IPv6 traffic or for Layer 4 virtual servers with the Direct Routing packet forwarding mode.

Before you begin: l

You must have Read-Write permission for Firewall settings.

To enable denial of service protection:

1. Go to Security > SYN Flood Prevention.

2. Enable the SYN Cookie feature.

3. Specify a maximum number of half open sockets. The default is 1 (10 connections). The valid range is 1 to

80,000.

4. Save the configuration.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

195

Chapter 7: Network Security Configuring a firewall policy

Configuring a firewall policy

A firewall policy is a filter that allows or denies traffic based on a matching tuple: source address, destination address, and service. By default, firewall policy rules are stateful: if client-to-server traffic is allowed, the session is maintained in a state table, and the response traffic is allowed.

The FortiADC system evaluates firewall policies before other rules. It matches traffic against the firewall policy table, beginning with the first rule. If a rule matches, the specified action is taken. If the session is denied by a firewall policy rule, it is dropped. If the session is accepted, system processing continues.

By default, if firewall rules are not configured, the system does not perform firewall processing; all traffic is processed as if the system were a router, and traffic is forwarded according to routing and other system rules.

Note: You do not need to create firewall rules for routine management traffic associated with the management port or HA ports. The interface “allow access” option enables permitted protocols. The system automatically permits from-self traffic, such as health check traffic, and expected responses.

Before you begin: l l l

You must have a good understanding and knowledge of firewalls.

You must have created the address configuration objects and service configuration objects that define the matching tuple in your firewall policy rules.

You must have Read-Write permission for Firewall settings.

To configure a firewall:

1. Go to Network Security > Firewall.

2. Select [IPv4 Policy | IPv6 Policy].

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 58

.

5. Save the configuration.

6. Reorder rules, as necessary.

 Table 58: Firewall policy configuration

Settings Guidelines

Default Action Action when no rule matches or no rules are configured: l

Deny—Drop the traffic.

l

Accept—Allow the traffic to pass the firewall.

Rule

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Ingress

Interface

Select the interface that receives traffic.

196 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit

Settings

Egress

Interface

Source

Destination

Service

Action

Reordering

Chapter 7: Network Security

Guidelines

Select the interface that forwards traffic.

Select a source address object to use to form the matching tuple.

Select a destination address object to use to form the matching tuple.

Select a service object to use to form the matching tuple.

l

Deny—Drop the traffic.

l

Accept—Allow the traffic to pass the firewall.

After you have saved a rule, reorder rules as necessary. The rules table is consulted from top to bottom. The first rule that matches is applied and subsequent rules are not evaluated.

Configuring the firewall connection limit

The firewall connection limit policy allows or denies traffic based on a matching tuple: source address, destination address, and service; and connection count. The purpose is to detect anomalous connection requests.

The limit you specify can be based on the following counts: l l

Count of concurrent sessions that match the tuple.

Count of concurrent sessions from a single host that match the tuple.

The FortiADC system evaluates firewall connection limit policy rules before other rules. It matches traffic against the connection limit table, beginning with the first rule. If no rule matches, the connection is forwarded for further processing. If a rule matches, and the limit has not been reached, the connection is forwarded for further processing. If a rule matches and the limit has been reached, the connection is dropped.

By default, if firewall connection limit rules are not configured, the system does not perform connection limit policy processing. The firewall connection limit can be configured for non-SLB traffic and for Layer 7 SLB traffic, but not Layer 4 SLB traffic.

Note: The purpose of the firewall connection limit is distinct from the virtual server connection limit. The firewall connection limit setting is a security setting; the virtual server connection limit is a capacity setting.

Before you begin: l l l

You must have a good understanding and knowledge of the capacity of your backend servers.

You must have created the address configuration objects and service configuration objects that define the matching tuple in your connection limit rules.

You must have Read-Write permission for Firewall settings.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

197

Chapter 7: Network Security Configuring the firewall connection limit

To configure a firewall connection limit:

1. Click Network Security > [Firewall Connection Limit | IPv6 Connection Limit].

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 59

.

4. Save the configuration.

5. Reorder rules, as necessary.

 Table 59: Connection limit configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Ingress

Interface

Select the interface that receives traffic.

Select the interface that forwards traffic.

Egress

Interface

Source

Destination

Select a source address object to use to form the matching tuple.

Select a destination address object to use to form the matching tuple.

Service

Type

Side

Select a service object to use to form the matching tuple.

Specify whether the limit is per rule or per host.

When the connection limit is per host, specify whether the connection counter gets incremented when the host IP address appears in: l

Source—Only increment the counter if the host is the source address.

l

Destination—Only increment the counter if the host is the destination address.

l

Both—Increment the counter if the host is the source or destination address.

Maximum concurrent sessions. The default is 1,048,576.

Limit

Reordering

After you have saved a rule, reorder rules as necessary. The rules table is consulted from top to bottom. The first rule that matches is applied and subsequent rules are not evaluated.

198 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit

Chapter 8: Web Application Firewall

Chapter 8: Web Application Firewall

You use web application firewall policies to scan HTTP requests and responses against known attack signatures and methods and filter matching traffic. This section includes the following topics: l l l l l l l l l

Web application firewall basics

Web application firewall configuration overview

Configuring a WAF Profile

Configuring a Web Attack Signature policy

Configuring a URL Protection policy

Configuring a HTTP Protocol Constraint policy

Configuring an SQL/XSS Injection Detection policy

Configuring WAF Exception objects

Configuring a Bot Detection policy

Web application firewall basics

A web application firewall (WAF) is a security policy enforcement point positioned between a client endpoint and a web application. The primary purpose is to prevent attacks against the web servers. A WAF is deployed separately from the web application so that the process overhead required to perform security scanning can be offloaded from the web server, and policies can be administered from one platform to many servers.

A WAF uses methods that complement perimeter security systems, such as the FortiGate next-generation firewall. The FortiADC WAF module applies a set of policies to HTTP scanpoints, which are parsed contexts of an

HTTP transaction.

Figure 47

illustrates the scanpoints. In the WAF policy configurations, you have options to enable rules to detect attacks at the request line, query string, filename, URI, request headers, request body, response code, or response body.

In particular: l l l l l

Web Attack Signature policy—The signature database includes signatures that can detect known attacks and exploits that can be found in 22 scanpoints. In your policy configuration, you choose classes of scanpoints to process: HTTP Headers, HTTP Request Body, and HTTP Response Body.

URL Protection policy—This policy enables you to create rules that detect patterns in the URI or the file extension.

HTTP Protocol Constraint policy—This policy enables you to create rules that restrict URI, header, and body length;

HTTP method, or HTTP response code.

SQL/XSS Injection Detection policy—This policy includes rules to detect SQL/XSS injection in the HTTP Request

URI, HTTP Referer Header, HTTP Cookie Header, or HTTP Request Body.

Bot Detection—This policy includes rules to detect Bots. A Bot is an application that runs automated tasks over the

Internet.The WAF supports two methods for detecting bad Bots: signature detection and behavior detection. You can also also use whitelists to exclude known trusted sources (good Bots) from detection.

Policy rules are enforced (action taken) when scanning is completed at four checkpoints: l l

HTTP Request Header

HTTP Request Body

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

199

Chapter 8: Web Application Firewall Configuring the firewall connection limit l l

HTTP Response Header

HTTP Response Body

If the HTTP Request Header violates a rule, and the action is Deny, the attempted session is dropped and scanning for the transaction stops. If the action is Alert, the event is logged and rules processing continues.

Figure  47:  HTTP scanpoints

Web application firewall configuration overview

Figure 48

shows the relationship between WAF configuration elements. A WAF profile comprises a Web Attack

Signature policy, URL Protection policy, HTTP Protocol Constraint policy, SQL/XSS Injection Detection, and Bot

Detection policy. The profile is applied to a load balancing virtual server, so all traffic routed to the virtual server is subject to the WAF rules. WAF profiles can be applied to HTTP and HTTPS virtual servers but not HTTP Turbo virtual servers.

200 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit

Figure  48:  WAF configuration overview

Chapter 8: Web Application Firewall

Predefined configuration elements

The FortiADC WAF includes many predefined configuration elements to help you get started. It includes predefined WAF profiles, predefined Web Attack Signature policies, predefined HTTP Protocol Constraint policies, and predefined SQL/XSS Injection Detection policies.

Severity

The severity ratings for predefined Web Attack Signatures and the default severity rating for feature options like

SQL/XSS Injection Detection are based on the Open Web Application Security Project (OWASP) Risk Rating

Methodology . In order to harmonize the significance of severity levels in logs, we recommend you use this methodology to assign severity for any custom elements you create.

Exceptions

You can create exceptions so that traffic to specific hosts or URL patterns is not subject to processing by WAF rules. Exception lists are processed before traffic is inspected. If an exception applies, the traffic bypasses the

WAF module.

Basic Steps

1. Create configuration objects that define the exception.

2. Add the exception to a WAF profile configuration or WAF rule configuration.

Configuring a WAF Profile

A WAF profile references the WAF policies that are to be enforced.

Table 60

describes the predefined profiles. In many cases, you can use predefined profiles to get started.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

201

Chapter 8: Web Application Firewall Configuring the firewall connection limit

 Table 60: Predefined WAF profiles

Predefined Profiles

Description

High-Level-

Security l

Web Attack Signature policy: High-Level-Security l

HTTP Protocol Constraints policy: High-Level-Security l

SQL/XSS Injection Detection policy: High-Level-Security

Medium-

Level-Security l

Web Attack Signature policy: Medium-Level-Security l

HTTP Protocol Constraints policy: Medium-Level-Security l

SQL/XSS Injection Detection policy: Medium-Level-Security

Alert-Only l

Web Attack Signature policy: Alert-Only l

HTTP Protocol Constraints policy: Alert-Only l

SQL/XSS Injection Detection policy: Alert-Only

If desired, you can create user-defined profiles. The maximum number of profiles per VDOM is 255.

Before you begin: l l

You can use predefined WAF profiles, create profiles based on predefined feature options, or create profiles based on user-defined configuration objects. If you want to add user-defined configuration objects, you must create them before using this procedure to add them to a WAF profile.

You must have Read-Write permission for Security settings.

After you have created a WAF profile, you can specify it in a virtual server configuration.

To configure a WAF Profile:

1. Go to Security > Web Application Firewall.

2. Click the WAF Profile tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 61

.

5. Save the configuration.

 Table 61: WAF Profile configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Description

Web Attack

Signature

A string to describe the purpose of the configuration, to help you and other administrators more easily identify its use.

Select a predefined or user-defined Web Attack Signature configuration object.

202 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit Chapter 8: Web Application Firewall

Settings

URL

Protection

HTTP Protocol

Constraint

SQL/XSS

Injection

Detection

Exception

Name

Guidelines

Select a user-defined URL Protection configuration object.

Select a predefined or user-defined HTTP Protocol Constraint configuration object.

Select a predefined or user-defined SQL/XSS Injection Detection configuration object.

Select a user-defined exception configuration object. Exceptions identify specific hosts or URL patterns that are not subject to processing by this rule.

Bot Detection Select a user-defined Bot Detection configuration object.

Configuring a Web Attack Signature policy

The FortiGuard Web Attack Signature service provides a database of attack signatures that is updated periodically to protect against new kinds of attacks.

Table 64

summarizes the categories of threats that are detected by the signatures. The categories are reported in logs.

In the Web Attack Signature policy configuration, you can enable/disable the class of scanpoints and the action when traffic matches signatures.

There are three classes of scanpoints: l l l

HTTP Header—Scans traffic against HTTP header signatures. If you enable a policy at all, you are enabling HTTP header scanning.

HTTP Request Body—Scans traffic against HTTP request body signatures.

HTTP Response Body—Scans traffic against HTTP response body signatures.

Header scanning is always a good practice, so enabling a policy always enables header scanning. Body scanning impacts performance, so you have the option of disabling body scanning if system utilization or latency become an issue.

You can specify separate actions for three event severities: l l l

High—We recommend you deny traffic for high severity events.

Medium—We recommend you deny or alert, according to your preference. To be strict, deny; otherwise, alert.

Low—We recommend you allow the traffic and log an alert for low severity events.

Table 62

describes the predefined policies. You can select the predefined policies in your WAF profiles, or you can create policies that enable a different set of scan classes or a different action. In this release, you cannot exclude individual signatures or create custom signatures. You can enable or disable the scan classes.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

203

Chapter 8: Web Application Firewall Configuring the firewall connection limit

 Table 62: Web Attack Signature predefined policies

Policy Status

High-Level-

Security

Scan HTTP header—Enabled.

Scan HTTP Request Body—

Enabled.

Scan HTTP Response Body—

Disabled.

Medium-Level-

Security

Alert-Only

Scan HTTP header—Enabled.

Scan HTTP Request Body—

Enabled.

Scan HTTP Response Body—

Disabled.

Scan HTTP header—Enabled.

Scan HTTP Request Body—

Disabled.

Scan HTTP Response Body—

Disabled.

Action

High Severity Action—Deny.

Medium Severity Action—Deny.

Low Severity Action—Alert.

High Severity Action—Deny.

Medium Severity Action—Alert.

Low Severity Action—Alert.

High Severity Action—Alert.

Medium Severity Action—Alert.

Low Severity Action—Alert.

Basic Steps

1. Configure the connection to FortiGuard so the system can receive periodic WAF Signature Database updates.

See

Configuring FortiGuard service settings .

2. Optionally, if you do not want to use the predefined policies, configure Web Attack Signature policies. See below.

3. Select a policy when you configure the WAF profile that you associate with virtual servers. See

Configuring a Web

Attack Signature policy

.

Before you begin: l

You must have Read-Write permission for Security settings.

To configure a Web Attack Signature policy:

1. Go to Web Application Firewall.

2. Click the Web Attack Signature tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 63

.

5. Save the configuration.

204 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit Chapter 8: Web Application Firewall

 Table 63: Web Attack Signature configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Status Enable/disable scanning against the signature database. This includes HTTP header scanning but not HTTP body scanning.

Enable/disable scanning of the HTTP request body.

Request Body

Status

Response

Body Status

Enable/disable scanning of the HTTP response body.

High Severity

Action

Medium

Severity Action

Low Severity

Action l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert, but we recommend you deny traffic that matches high severity signatures.

l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert. For stricter security, you can deny traffic that matches medium severity signatures.

l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert. Recommended for low severity signatures.

Signature

Name

Status

Exception Name

Description

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Enable/disable the signature.

Select an exception configuration object. Exceptions identify specific hosts or URL patterns that are not subject to processing by this rule.

A string to describe the purpose of the configuration, to help you and other administrators more easily identify its use.

Table 64

summarizes the categories of threats that are detected by the signatures.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

205

Chapter 8: Web Application Firewall

 Table 64: Web Attack Signature categories and subcategories

Category (ID) Subcategory (ID)

Cross Site Scripting (1)

SQL Injection (2)

Generic Attacks (3) OS Command Injection (1)

Coldfusion Injection (2)

LDAP Injection (3)

Command Injection (4)

Session Fixation (5)

File Injection (6)

PHP Injection (7)

SSI Injection (8)

UPDF XSS (9)

Email Injection (10)

HTTP Response Splitting (11)

RFI Injection (12)

Configuring the firewall connection limit

Trojans (4)

206 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit

Category (ID)

Information Disclosure (5)

Subcategory (ID)

Zope Information Leakage (13)

CF Information Leakage (14)

PHP Information Leakage (15)

ISA Server Existence Revealed (16)

Microsoft Office Document Properties

Leakage (17)

CF Source Code Leakage (18)

IIS Information Leakage (19)

Weblogic information leakage (20)

Generic Filename and Directory leakage

(21)

ASP/JSP Source Code Leakage (22)

PHP Source Code Leakage (23)

SQL Error leakage (24)

HTTP Header Leakage (25)

WordPress Leakage (26)

Chapter 8: Web Application Firewall

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

207

Chapter 8: Web Application Firewall

Category (ID)

Known Exploits (6)

Configuring the firewall connection limit

Subcategory (ID)

Oracle 9i (27)

Coppermine Photo Gallery (28)

Netscape Enterprise Server (29)

Cisco IOS HTTP Service (30)

Microsoft SQL Server (31)

HP OpenView Network Node Manager (32)

Best Sofrware SalesLogix (33)

IBM Lotus Domino Web Server (34)

Microsoft IIS (35)

Microsoft Windows Media Services (36)

Dave Carrigan Auth_LDAP (37)

427BB 38)

RaXnet Cacti Graph (39)

CHETCPASSWD (40)

SAP (41)

Credit Card Detection (7)

Bad Robot (8)

Configuring a URL Protection policy

URL protection policies can filter HTTP requests that match specific character strings and file extensions.

Before you begin: l

You must have Read-Write permission for Security settings.

After you have configured URL protection policies, you can select them in WAF profiles.

To configure a URL Protection policy:

1. Go to Security > Web Application Firewall.

2. Click the URL Protection tab.

3. Click Add to display the configuration editor.

208 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit Chapter 8: Web Application Firewall

4. Complete the configuration as described in

Table 65

.

5. Save the configuration.

 Table 65: URL Protection configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

URL Access Rule

Full URL

Pattern

Action

Matching string. Regular expressions are supported.

l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert.

Severity l

High—Log as high severity events.

l

Medium—Log as a medium severity events.

l

Low—Log as low severity events.

The default is low.

Exception Name Select an exception configuration object. Exceptions identify specific hosts or URL patterns that are not subject to processing by this rule.

File Extension Rule

File Extension

Pattern

Matching string. Regular expressions are supported.

Action l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert.

Severity

Exception Name l

High—Log as high severity events.

l

Medium—Log as a medium severity events.

l

Low—Log as low severity events.

The default is low.

Select an exception configuration object. Exceptions identify specific hosts or URL patterns that are not subject to processing by this rule.

Configuring an HTTP Protocol Constraint policy

The HTTP Protocol Constraint policy includes the following rules:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

209

Chapter 8: Web Application Firewall Configuring the firewall connection limit l l l

HTTP request parameters—Limit the length of URIs, headers, and body to prevent several types of attacks, such as buffer overflow and denial of service.

HTTP request methods—Restrict HTTP methods allowed in HTTP requests. For example, do not allow the PUT method in HTTP requests to prevent attackers from uploading malicious files.

HTTP response codes—Drop response traffic containing HTTP response codes that might contain information attackers can use to craft attacks. For example, some HTTP response codes include fingerprint data like web server version, database version, OS, and so on.

Table 66

describes the predefined policies.

 Table 66: Predefined HTTP protocol constraint policies

Predefined Rules Description

High-Level-

Security

Protocol constraints enabled with default values. Action is set to deny. Severity is set to high.

Medium-

Level-Security

Alert-Only

Protocol constraints enabled with default values. Action is set to alert. Severity is set to medium.

Protocol constraints enabled with default values. Action is set to alert. Severity is set to low.

If desired, you can create user-defined rules to filter traffic with invalid HTTP request methods or drop packets with the specified server response codes.

Before you begin: l l l

You should have a sense of legitimate URI lengths and HTTP request methods for the destination resources.

You should know whether your servers include application fingerprint information in HTTP response codes.

You must have Read-Write permission for Security settings.

To configure an HTTP Protocol Constraint policy:

1. Go to Security > Web Application Firewall.

2. Click the HTTP Protocol Constraint tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 67

.

5. Save the configuration.

 Table 67: HTTP Protocol Constraint configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Request Parameters

210 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit Chapter 8: Web Application Firewall

Settings

Maximum

URI Length

Guidelines

Maximum characters in an HTTP request URI. The default is 2048. The valid range is 1-8192.

Illegal Host Name Enable/disable hostname checks. A domain name must consist of only the ASCII alphabetic and numeric characters, plus the hyphen. The hostname is checked against the set of characters allowed by the RFC 2616. Disallowed characters, such as nonprintable ASCII characters or other special characters (for example, '<', '>', and the like), are a symptom of an attack.

Illegal HTTP Version

Enable/disable the HTTP version check. Well-formed requests include the version of the protocol used by the client, in the form of HTTP/v where v is replaced by the actual version number (one of 0.9, 1.0, 1.1). Malformed requests are a sign of traffic that was not sent from a normal browser and are a symptom of an attack.

Maximum Cookie

Number In Request

Maximum number of cookie headers in an HTTP request. The default is 16. The valid range is 1-32.

Maximum Header

Number In Request

Maximum number of headers in an HTTP request. The default is 50. Requests with more headers are a symptom of a buffer overflow attack or an attempt to evade detection mechanisms. The valid configuration range is 1-100.

Maximum Request

Header Name

Length

Maximum characters in an HTTP request header name. The default is 1024. The valid range is 1-8192.

Maximum Request

Header Value

Length

Maximum characters in an HTTP request header value. The default is 4096. Longer headers might be a symptom of a buffer overflow attack. The valid configuration range is 1-8192.

Maximum URL

Parameter Name

Length

Maximum URL

Parameter Value

Length

Maximum characters in a URL parameter name. The default is 1024. The valid range is 1-2048.

Maximum characters in a URL parameter value. The default is 4096. The valid range is 1-8192.

Maximum Request

Header Length

Maximum length of the HTTP request header. The default is 8192. The valid range is

1-16384.

Maximum Request

Body Length

Maximum length of the HTTP body. The default is 67108864. The valid range is 1-

67108864.

Request Method Rule

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

211

Chapter 8: Web Application Firewall Configuring the firewall connection limit

Settings

Method

Action

Severity l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert.

l

High—Log as high severity events.

l

Medium—Log as a medium severity events.

l

Low—Log as low severity events.

The default is low.

Exception Select an exception configuration object. Exceptions identify specific hosts or URL patterns that are not subject to processing by this rule.

Response Code Rule

Minimum

Status Code /

Maximum

Status Code

Start/end of a range of status codes to match. You can specify codes 400 to 599.

Action

Severity

Guidelines

Select one or more methods to match in the HTTP request line: l

CONNECT l

DELETE l

GET l

HEAD l

OPTIONS l

POST l

PUT l

TRACE l

Others

Note: The first 8 methods are described in RFC 2616. The group Others contains not commonly used HTTP methods defined by Web Distributed Authoring and

Version (WebDAV) extensions.

l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert.

l

High—Log as high severity events.

l

Medium—Log as a medium severity events.

l

Low—Log as low severity events.

The default is low.

212 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit

Settings

Exception

Guidelines

Chapter 8: Web Application Firewall

Select an exception configuration object. Exceptions identify specific hosts or URL patterns that are not subject to processing by this rule.

Configuring an SQL/XSS Injection Detection policy

SQL/XSS Injection Detection policies detect SQL injection and cross-site scripting (XSS) attacks. Injection occurs when user-supplied data is sent to an interpreter as part of a command or query. In an SQL injection attack, attackers craft HTTP requests that cause SQL queries to be executed directly against the web application’s database. XSS injection attacks cause a web browser to execute a client-side script.

In contrast to signature-based detection, the WAF SQL and XSS injection detector module detects SQL and XSS injection through lexical analysis, which is a complementary method and is faster.

The policy enables/disables scanpoints, the action when traffic matches signatures, and the event severity.

You can enable detection in the following scanpoints: l l l l l l l l

SQL Injection: URI—Analyzes content in the URI.

SQL Injection: Referer—Analyzes content in the HTTP Referer header.

SQL Injection: Cookie—Analyzes content in the HTTP Cookie header.

SQL Injection: Body—Analyzes content in the HTTP request body.

XSS Injection: URI—Analyzes content in the URI.

XSS Detection: Referer—Analyzes content in the HTTP Referer header.

XSS Detection: Cookie—Analyzes content in the HTTP Cookie header.

XSS Detection: Body—Analyzes content in the HTTP request body.

Header scanning is recommended. Body scanning impacts performance, so you have the option of disabling body scanning if system utilization or latency become an issue.

Table 68

describes the predefined policies.

 Table 68: Predefined SQL injection and XSS detection policies

SQL Injection XSS

Predefined

Rules

Detection Action Severity Detection Action Severity

High-Level-

Security

All except

Body SQL

Injection

Detection

Deny High All except

Body XSS

Injection

Detection

Deny High

Medium-

Level-

Security

Only SQL

URI SQL

Injection

Detection

Deny High None Alert Low

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

213

Chapter 8: Web Application Firewall Configuring the firewall connection limit

Predefined

Rules

Alert-Only

SQL Injection

Detection Action Severity

XSS

Detection Action Severity

Only SQL

URI SQL

Injection

Detection

Alert High None Alert Low

If desired, you can create user-defined policies.

Before you begin: l

You must have Read-Write permission for Security settings.

After you have created an SQL injection/XSS policy, you can specify it in a WAF profile configuration.

To configure an SQL/XSS Injection Detection policy:

1. Go to Security > Web Application Firewall.

2. Click the SQL/XSS Injection Detection tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 69

.

5. Save the configuration.

 Table 69: SQL/XSS Injection Detection configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

SQL

SQL Injection

Detection

Enable/disable SQL injection detection.

Enable/disable detection in the HTTP request.

Enable/disable detection in the Referer header.

URI Detection

Referer

Detection

Cookie

Detection

Body

Detection

Enable/disable detection in the Cookie header.

Enable/disable detection in the HTTP Body message.

214 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit Chapter 8: Web Application Firewall

Settings

Action

Severity

SQL Exception

Name

XSS

XSS Injection

Detection

URI Detection

Referer

Detection

Cookie

Detection

Body

Detection

Action

Severity

XSS Exception

Name

Guidelines l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert, but we recommend you deny SQL Injection.

l

High—Log as high severity events.

l

Medium—Log as a medium severity events.

l

Low—Log as low severity events.

The default is low, but we recommend you rate this high or medium.

Select an exception configuration object. Exceptions identify specific hosts or URL patterns that are not subject to processing by this rule.

Enable/disable XSS injection detection.

Enable/disable detection in the HTTP request.

Enable/disable detection in the Referer header.

Enable/disable detection in the Cookie header.

Enable/disable detection in the HTTP Body message.

l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert, but we recommend you deny XSS Injection.

l

High—Log matches as high severity events.

l

Medium—Log matches as a medium severity events.

l

Low—Log matches as low severity events.

The default is low, but we recommend you rate this high or medium.

Select an exception configuration object. Exceptions identify specific hosts or URL patterns that are not subject to processing by this rule.

Configuring WAF Exception objects

Exceptions identify specific hosts or URL patterns that are not subject to processing by WAF rules.

Before you begin:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

215

Chapter 8: Web Application Firewall Configuring the firewall connection limit l

You must have Read-Write permission for Security settings.

After you have created an exception object, you can specify it in WAF profiles and individual WAF feature rules.

To configure an exception object:

1. Go to Security > Web Application Firewall.

2. Click the Exceptions tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 70

.

5. Save the configuration.

 Table 70: WAF Exception objects

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Exception

Host Status

Enable/disable setting exceptions by host pattern.

Exception Host

Exception URL

Matching string. Regular expressions are supported. For example, you can specify www.example.com

, *.example.com, or www.example.* to match a literal host pattern or a wildcard host pattern.

Matching string. Must begin with a URL path separator (/). Regular expressions are supported. For example, you can specify pathnames and files with expressions like \/admin, .*\/data\/1.html, or \/data.*.

Configuring a Bot Detection policy

Bot detection policies use signatures and source behavior tracking to detect client traffic likely to be generated by robots instead of genuine clients. Some bots, such as search engine crawlers, are "good bots" that perform search indexing tasks that can result in more legitimate users being directed to your site. You enable a whitelist to permit those. "Bad bots" are known to send traffic that has an negative impact on site availability and integrity, such as DDoS attacks or content scrapping. You want to block these.

To get started, you can use predefined whitelists (known good bots) and blacklists (known bad bots). You can also specify a rate limit threshold of HTTP requests/second for sources not matched to either whitelist or blacklist. The rate limit threshold can be useful in detecting "unknown bots".

In the event of false positives, you can use the user-specified whitelist table to fine-tune detection.

Before you begin: l l

You must configure the connection to FortiGuard so the system can receive periodic WAF Signature Database updates, including "good bot" and "bad bot" signatures and lists. See

Configuring FortiGuard service settings

.

You must have Read-Write permission for Security settings.

After you have configured Bot Detection policies, you can select them in WAF profiles.

216 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring the firewall connection limit Chapter 8: Web Application Firewall

To configure a Bot Detection policy:

1. Go to Security > Web Application Firewall.

2. Click the Bot Detection tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 71

.

5. Save the configuration.

 Table 71: Bot Detection configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Status

Search Engine

Status

Bad Robot Status

Enable/disable Bot detection.

Enable/disable the predefined search engine spider whitelist. The list is included in

WAF signature updates from FortiGuard.

Enable/disable the predefined bad robot blacklist. The list is included in WAF signature updates from FortiGuard.

HTTP Request

Rate

Specify a threshold (HTTP requests/second/source) to trigger the action. Bots send HTTP request traffic at extraordinarily high rates. The source is tracked by source IP address and User-Agent.

The default is 0 (off). The valid range is 0-100,000,000 requests per second.

Action

Severity

Block Period l

Alert—Allow the traffic and log the event.

l

Deny—Drop the traffic, send a 403 Forbidden to the client, and log the event.

The default is alert.

l

High—Log as high severity events.

l

Medium—Log as a medium severity events.

l

Low—Log as low severity events.

The default is low.

The default is 3600 seconds. The valid range is 1-3600.

The maximum size of the block IP address table is 100,000 entries. If the table is full, the earliest entry will be deleted.

Whitelist

IPv4/Netmask

URL Pattern

Matching subnet (CIDR format).

Matching string. Regular expressions are supported.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

217

Chapter 8: Web Application Firewall

Settings

URL Parameter

Name

Cookie Name

User Agent

Guidelines

Matching string. Regular expressions are supported.

Matching string. Regular expressions are supported.

Matching string. Regular expressions are supported.

Configuring the firewall connection limit

218 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 9: Authentication Management

Chapter 9: Authentication Management

Configuring user groups

This chapter includes the following topics: l l l l l l l

Managing administrator users

Using the local authentication server

Using a RADIUS authentication server

Using an LDAP authentication server

Using Kerberos authentication relay

Configure SAML authentication

Configuring user groups

Configuring user groups

User groups are authorized by the virtual server authentication policy. The user group configuration references the authentication servers that contain valid user credentials.

Suggested steps:

1. Configure LDAP and RADIUS servers, if applicable.

2. Configure local users.

3. Configure user groups (reference servers and local users).

4. Configure an authentication policy (reference the user group).

5. Configure the virtual server (reference the authentication policy).

Before you begin: l l

You must have created configuration objects for any LDAP and RADIUS servers you want to use, and you must have created user accounts for local users.

You must have read-write permission for System settings.

After you have created user groups, you can specify them in the server load balancing authentication policy configuration.

To configure a user group:

1. Go to Authentication Management > User Group.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 72

.

4. Save the configuration.

219 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the local authentication server Chapter 9: Authentication Management

 Table 72: User group configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

User Cache

Cache Timeout

Authentication

Timeout

Authentication Log

Enable to cache the credentials for the remote users (LDAP, RADIUS) once they are authorized.

Timeout for cached user credentials. The default is 300 seconds. The valid range is 1-86,400 seconds.

Timeout for query sent from FortiADC to a remote authentication server.

The default is 2,000 milliseconds. The valid range is 1-60,000 milliseconds.

Specify one of the following logging options for authentication events: l

No logging l

Log failed attempts l

Log successful attempts l

Log all (both failed and successful attempts) l

HTML Form l

HTTP

Client

Authentication

Method

Member

Type

User/Server l

Local—Add users one at a time from the local authentication server.

l

RADIUS—Add all users from the specified RADIUS server configuration.

l

LDAP—Add all users from the specified LDAP server configuration.

If the server type is Local, select the local user. If the type is RADIUS or

LDAP, select the server.

Using the local authentication server

You can use a local authentication server to authenticate destination server user logins.

Note: The local authentication server does not have user-initiated password management features, so it does not easily scale to large groups of users. For large deployments, we recommend you use RADIUS or LDAP and provide instructions on your website how users can reset, recover, or change their passwords.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

220

Chapter 9: Authentication Management Using an LDAP authentication server

Basic steps:

1. Add user accounts to the local authentication server.

2. Select the local authentication server configuration and username when you create user groups.

Before you begin: l

You must have Read-Write permission for System settings.

To use a local authentication server:

1. Go to Authentication Management > Local User.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 73

.

4. Save the configuration.

 Table 73: Local authentication server configuration

Settings Guidelines

Name Name of the user account, such as user1 or [email protected].

Do not use spaces or special characters except the ‘at’ symbol ( @) or dot (.). The maximum length is 35 characters.

After you initially save the configuration, you cannot edit the name.

Password Specify a password. The stored password will be encrypted.

Using an LDAP authentication server

You can use an LDAP authentication server to authenticate administrator or destination server user logins.

Basic steps:

1. Configure a connection to an LDAP server that can authenticate administrator or user logins.

2. Select the LDAP server configuration when you add administrator users or create user groups.

Before you begin: l l

You must know the IP address and port used to access the LDAP server. You must know the CN and DN where user credentials are stored on the LDAP server.

You must have Read-Write permission for System settings.

To select an LDAP server:

1. Go to Authentication Management > Remote Server.

2. Select the LDAP Server tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 74

.

5. Save the configuration.

221 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using a RADIUS authentication server Chapter 9: Authentication Management

 Table 74: LDAP server configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Server IP address for the server.

Port

Common

Name

Identifier

Distinguished

Name

Port number for the server. The commonly used port for LDAP is 389.

Common name (cn) attribute for the LDAP record. For example: cn

Distinguished name (dn) attribute for the LDAP record. The dn uniquely identifies a user in the LDAP directory. For example: cn=John%20Doe,dc=example,dc=com

Using a RADIUS authentication server

You can use a RADIUS authentication server to authenticate administrator or destination server user logins.

Basic steps:

1. Configure a connection to a RADIUS server that can authenticate administrator or user logins.

2. Select the RADIUS server configuration when you add administrator users or user groups.

Before you begin: l l

You must know the IP address, port, authentication protocol, and shared secret used to access the RADIUS server.

You must have Read-Write permission for System settings.

To create a RADIUS server configuration:

1. Go to Authentication Management > Remote Server.

2. Select the RADIUS Server tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 75

.

5. Save the configuration.

 Table 75: RADIUS server configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

222

Chapter 9: Authentication Management Using Kerberos Authentication Relay

Settings

Server

Port

Shared Secret

Authentication

Type

Guidelines

IP address for the server.

Port number for the server. The commonly used port for RADIUS is 1812.

Shared secret string used when connecting to the server.

l

PAP—Password authentication protocol.

l

CHAP—Challenge-Handshake Authentication Protocol.

l

MS-CHAP—Microsoft version of CHAP.

l

MS-CHAPv2—Microsoft version of CHAP, version 2.

Using Kerberos Authentication Relay

Kerberos authentication is a computer authentication protocol that works on the basis of tickets (i.e., credentials).

It provides several authentication choices, allowing nodes communicating over a non-secure network to verify each others' identity securely via a Key Distribution Center (KDC) and Service Tickets (STs). It is primarily used for client-server authentication model and provides mutual authentication by which both the client and the server verify each others' identity.

Kerberos authentication is built upon symmetric key cryptography and requires a trusted third party, and may also resort to the use of public-key cryptography in certain phases of the authentication process. By default, Kerberos

Authentication Relay uses UDP port 88.

The Kerberos authentication consists of the following logical components: l l l l

Client

Authentication Server (AS)

Ticket Granting Server (TGS)

Service Server (SS)

Often, the AS and TGS are located on the same physical server, i.e., the KDC.

Authentication Workflow

The following paragraphs highlights the workflow of Kerberos authe

Step 1: Client authentication

The client sends a cleartext message of the user ID to the Authentication Server (AS ) requesting services on behalf of the user. Note that neither the secret key nor the password is sent to the AS. The AS generates the secret key by hashing the password of the user found at the database, e.g., Active Directory in Windows Server.

The AS then checks to see if the client is in its database. If it is in the database, the AS sends back the following two messages to the client: l l

Message A: Client/TGS Session Key encrypted using the secret key of the client/user.

Message B: Ticket Granting Ticket (TGT) which includes the client ID, client network address, ticket validity period, and the client/TGS session key) encrypted using the secret key of the TGS.

223 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using Kerberos Authentication Relay Chapter 9: Authentication Management

Once the client receives Messages A and B, it attempts to decrypt Message A with the secret key generated from the password entered by the user. If the user entered password does not match the password in the AS database, the client's secret key will be different and thus unable to decrypt message A. With a valid password and secret key, the client decrypts Message A to obtain the Client/TGS Session Key. This session key is used for further communications with the TGS. Note that the client cannot decrypt Message B, as it is encrypted using TGS's secret key. At this point, the client has enough information to authenticate itself to the TGS.

Step 2: Client service authorization

When requesting services, the client sends the following messages to the TGS: l l

Message C: Composed of the TGT from Message B and the ID of the requested service.

Message D: Authenticator, which is composed of the client ID and the time-stamp, encrypted using the Client/TGS

Session Key.

Upon receiving Messages C and D, the TGS retrieves Message B out of Message C. It decrypts Message B using the TGS secret key. This gives the TGS the "client/TGS session key". Using this key, the TGS decrypts Message

D (Authenticator) and sends the following two messages to the client: l l

Message E: Client-to-server ticket, which includes the client ID, client network address, validity period, and

Client/Server Session Key, encrypted using the service's secret key.

Message F: Client/Server Session Key encrypted with the Client/TGS Session Key.

Step 3: Client service request

Upon receiving Messages E and F from TGS, the client has enough information to authenticate itself to the SS.

The client connects to the SS and sends the following two messages: l l

Message E: From the previous step (the client-to-server ticket, encrypted using service's secret key).

Message G: A new Authenticator, which includes the client ID and time-stamp encrypted using the Client/Server

Session Key.

The SS decrypts the ticket using its own secret key to retrieve the Client/Server Session Key. Using the sessions key, the SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client: l

Message H: The time-stamp found in client's Authenticator, plus 1 in version 4, but not necessary in version 5[2]

[3]), encrypted using the Client/Server Session Key.

The client decrypts the confirmation using the Client/Server Session Key and checks whether the time-stamp is correct. If it is correct, then the client can trust the server and start issuing service requests to the server.

The server provides the requested services to the client.

FortiADC Kerberos authentication implementation

Implementation of Kerberos authentication involves the following configurations in FortiADC: l l l l

Authentication Relay. See the following pragraph.

User Group. See

"Configuring user groups" on page 219

.

Authentication Policy. See

"Configuring auth policies" on page 133

Virtual Server. See

"Configuring virtual servers" on page 138

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

224

Chapter 9: Authentication Management Configure SAML authentication

Configure Authentication Relay (Kerberos)

Use the following steps to configure Kerberos authentication:

1. Click Authentication Management > Authentication Relay.

2. Click Add to open the configuration editor dialog.

3. Make the desired entries or selections as described in the table below.

4. Click Save when done.

 Table 76: Kerberos authentication configuration

Settings Guidelines

Name Specify the name of the configuration.

Authentication

Type

LDAP

Delegation Type

LDAP Server

Log Off URL

KDC IP

Kerberos

Select the desired LDAP server.

Specify the log-off URL.

Enter the IP address of the KDC.

KDC Port

Realm

88

Specify the realm in all upper-case characters.

Delegator Account Specify the delegator account. Required.

Delegator Password

Specify the delegator password. Required.

Authorization

Delegated SPN

Select an authorization type.

Specify the delegated SPN. Required.

SSO Support Enable.

Authentication Session Timeout

Enter a value between 1 and 180. The default is 3.

Configure SAML authentication

Security Assertion Markup Language (SAML) is used for single sign-on (SSO) Web Services, such as Google,

Amazon Cloud Services, or Microsoft Office365. The cloud service you attempt to authenticate against will redirect your authentication request to the Identity Provider (IDP), i.e., FortiADC in our case. Once you have been

225 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configure SAML authentication Chapter 9: Authentication Management authenticated, you will be redirected back to the cloud service in question. If you attempt to access another configured cloud service, FortiADC will recognize that you have already been authenticated and pass the request onto the cloud service seamlessly.

FortiADC support SAML 2.0, which offers the following benefits: l l

Povides support for service provider (SP) and Identity Provider (IDP) Metadata

Provides single sign-on (SSO) experience for all virtual server resources linked with the user log-in

Import IDP metadata

You must configure your SPs in order to use SAML authentication. To configure your SP, you are required to import at least one IDP metadata file, using the following procedures:

1. Click Authentication Management > SAML.

2. Click the IDP Metadata tab.

3. Click Import to bring up the IDP Metadata dialog.

4. Follow the screen prompts to import the metadata file.

5. Repeat Steps 3 through 4 to import as many IDP metadata files as needed.

Configure SAML authentication

Once you have imported the needed IDP metadata files into FortiADC, use the following steps to configure SAML authentication:

1. Click Authentication Management > SAML.

2. Select the SAML Service Providers tab, if it is not selected.

3. Click Add to open the SAML Service Providers configuration editor.

4. Make the desired entries or selections, as described in the table below.

5. Click Save when done.

 Table 77: Configure SAML authentication

Parameter Description

Name Specify a unique name for the SAML configuration.

Entity ID

Local Certification

Specify the entity ID.

Factory.

Service URL /SSO

Assertion Consuming

Service Binding Type

Post.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

226

Chapter 9: Authentication Management Configure SAML authentication

Parameter Description

Assertion Consuming

Service Path

/SSO/Logout

Single Logout Binding Type

Single Logout Path

IDP Metadata

Post

/SLO/Logout

Select an IDP metadata file. Note: You must have imported the IDP metadata file ahead of time.

Metadata Export Service Location

/Metadata

28800 Authentication Session Lifetime

Authentication Session Timeout

SSO Status

3600

Enable

Export Assertion

Status

Export Assertion

Path

Enable

/GetAssertion

Export Cookie Status Enalbe

227 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 10: Shared Resources

Chapter 10: Shared Resources

Configuring health checks

This chapter includes the following topics: l l l l l l l l l

Configuring health checks

Creating schedule groups

Creating IPv4 address objects

Configuring IPv4 address groups

Configuring IPv6 address objects

Configuring IPv6 address groups

Managing the ISP address books

Creating service objects

Creating service groups

Configuring health checks

In server load balancing deployments, the system uses health checks to poll the members of the real server pool to test whether an application is available. You can also configure additional health checks to poll related servers, and you can include results for both in the health check rule. For example, you can configure an HTTP health check test and a RADIUS health check test. In a web application that requires user authentication, the web server is deemed available only if the web server and the related RADIUS server pass the health check.

In link load balancing deployments, the health check can poll either the ISP link group member itself or a “beacon” server that is deployed on the other side of the ISP link. A beacon is an IP address that must be reachable in order for the link to be deemed available. A beacon can be any IP address, such as a main office, core router, or virtual server at another data center.

If you expect a backend server is going to be unavailable for a long period, such as when it is undergoing hardware repair, it is experiencing extended down time, or when you have removed it from the server farm, you can improve the performance of the

FortiADC system by setting the status of the pool member to Disabled, rather than allowing the system to continue to attempt health checks.

Table 78

describes the predefined health checks. You can get started with these or create custom objects.

 Table 78: Predefined health check configuration objects

Predefined Description

LB_HLTHCK_HTTP Sends a HEAD request to the server port 80. Expects the server to return an HTTP 200.

LB_HLTHCK_HTTPS Sends a HEAD request to the server port 443. Expects the server to return an HTTP 200.

228 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring health checks Chapter 10: Shared Resources

Predefined

LB_HLTHCK_ICMP

LB_HLTHCK_TCP_

ECHO

Description

Pings the server.

Sends a TCP echo to server port 7. Expects the server to respond with the corresponding TCP echo.

Before you begin: l l l

You must have a good understanding of TCP/IP and knowledge of the services running on your backend servers.

You must know the IP address, port, and configuration details for the applications running on backend servers. For some application protocol checks, you must specify user credentials.

You must have Read-Write permission for Load Balance settings.

After you have configured a health check, you can select it in the SLB server pool, LLB link group, or GLB server configuration.

To configure a health check:

1. Go to Shared Resources > Health Check.

2. Click Add to display the configuration editor.

3. Select one of the following options: l l l l l l l l l l l

ICMP

TCP Echo

TCP

HTTP

HTTPS

DNS

RADIUS

SMTP

POP3

IMAP4

RADIUS Accounting l l l l l l l l l l

FTP

TCP Half Open

Connection

TCP SSL

SNMP

SSH

L2 Detection

UDP

SIP

SIP-TCP

SNMP-Custom

4. Complete the configuration as described in

Table 79

.

5. Save the configuration.

You can clone a predefined configuration object to help you get started with a user-defined configuration.

To clone a configuration object, click the clone icon column on the configuration summary page.

that appears in the tools

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

229

Chapter 10: Shared Resources Configuring health checks

 Table 79: Health check configuration

Settings Guidelines

General

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Type

Destination

Address Type

Select a type of health check.

l

IPv4 l

IPv6

Destination

Address

Hostname

IP address to send health check traffic.

In server load balancing deployments, if you do not specify an IP address, the real server IP address is used. You might configure IP address for a health check if you are configuring a combination of health checks to poll related servers.

In link load balancing deployments, if you do not specify an IP address, the destination IP address is the address of the gateway. You can configure IP address if you want to test connectivity to a beacon on the other side of the gateway, or if you want to test whether service traffic is allowed to pass through the link.

For HTTP or HTTPS health checks, you can specify the hostname (FQDN) instead of the destination IP address. This is useful in VM environments where multiple applications have the same IP address.

Interval

Timeout

Seconds between each health check. Should be more than the timeout to prevent overlapping health checks. The default is 10.

Seconds to wait for a reply before assuming that the health check has failed. The default is 5.

Attempts to retry the health check to confirm server availability. The default is 1.

Up Retry

Down Retry Attempts to retry the health check to see if a down server has become available.

The default is 1.

ICMP

No specific options

Simple ping to test connectivity.

TCP / TCP Half Open / TCP SSL / UDP

230 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring health checks Chapter 10: Shared Resources

Settings

Port

Local Cert

Guidelines

Listening port number of the backend server. Usually HTTP is 80, FTP is 21, DNS is 53, POP3 is 110, IMAP4 is 143, RADIUS is 1812, and SNMP is 161.

For TCP SSL only. Click the down arrow and select a local SSL Health Check

Client certificate from the list menu. The certificate titled "Factory" is the default certificate shipped with your FortiADC. The rest, if any, are the custom certificates that you have created.

HTTP/HTTPS

Port

Local Cert

HTTP

CONNECT

Remote Host

Remote Port

Method Type

Send String

Receive String

Listening port number of the backend server. Usually HTTP is 80. If testing an

HTTP proxy server, specify the proxy port.

For HTTPS only. See TCP / TCP Half Open Connection / TCP SSL / UDP above.

If the real server pool members are HTTP proxy servers, specify an HTTP

CONNECT option: l

Local CONNECT—Use HTTP CONNECT to test the tunnel connection through the proxy to the remote server. The member is deemed available if the request returns status code 200 (OK).

l

Remote CONNECT—Use HTTP CONNECT to test both the proxy server response and remote server application availability. If you select this option, you can configure an HTTP request within the tunnel. For example, you can configure an HTTP

GET/HEAD request to the specified URL and the expected response.

l

No CONNECT—Do not use the HTTP CONNECT method. This option is the default. The HTTP CONNECT option is useful to test the availability of proxy servers only.

See the FortiADC Deployment Guide for FortiCache for an example that uses this health check.

If you use HTTP CONNECT to test proxy servers, specify the remote server IP address.

If you use HTTP CONNECT to test proxy servers, specify the remote server port.

HTTP method for the test traffic: l

HTTP GET—Send an HTTP GET request to the server. A response to an HTTP GET request includes HTTP headers and HTTP body.

l

HTTP HEAD—Send an HTTP HEAD request. A response to an HTTP HEAD request includes HTTP headers only.

The request URL, such as /contact.php.

A string expected in return when the HTTP GET request is successful.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

231

Chapter 10: Shared Resources Configuring health checks

Settings

Status Code

Match Type

Guidelines

The health check sends an HTTP request to the server. Specify the HTTP status code in the server reply that indicates a successful test. Typically, you use status code 200 (OK). Other status codes indicate errors.

What determines a failed health check?

l

Match String l

Match Status l

Match All (match both string and status)

Not applicable when using HTTP HEAD. HTTP HEAD requests test status code only.

DNS

Domain Name

Address Type

The FQDN, such as www.example.com, to use in the DNS A/AAAA record health check.

l

IPv4 l

IPv6

IP address that matches the FQDN, indicating a successful health check.

Host Address

RADIUS / RADIUS Accounting

Port Listening port number of the backend server. Usually RADIUS is 1812 and

RADIUS accounting is 1813.

Username User name of an account on the backend server.

Password

Password

Type

The corresponding password.

l

User—If the backend server does not use CHAP, select this option.

l

CHAP—If the backend server uses CHAP and does not require a secret key, select this option.

Secret Key

NAS IP

Address

The secret set on the backend server.

NAS IP address RADIUS attribute (if the RADIUS server requires this attribute to make a connection).

SIP / SIP-TCP

SIP Request Type Specify the SIP request type to be used for health checks: l

SIP Options l

SIP Register

232 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring health checks Chapter 10: Shared Resources

POP3

Port

Username

Password

IMAP4

Port

Username

Password

Folder

FTP

Port

User name

Password

File

Passive

SNMP

Settings

Status Code

SMTP

Port

Domain Name

Guidelines

The expected response code. If not set, response code 200 is expected. Specify 0 if any reply should indicate the server is available.

Listening port number of the backend server. Usually SMTP is 25.

The FQDN, such as www.example.com, to use in the SMTP HELO request used for health checks.

If the response is OK (250), the server is considered as up. If there is error response (501) or no response at all, the server is considered down.

Listening port number of the backend server. Usually POP3 is 110.

User name of an account on the backend server.

The corresponding password.

Listening port number of the backend server. Usually IMAP4 is 143.

User name of an account on the backend server.

The corresponding password.

Select an email mailbox to use in the health check. If the mailbox does not exist or is not accessible, the health check fails. The default is INBOX.

Listening port number of the backend server. Usually FTP is 21.

User name of an account on the backend server.

The corresponding password.

Specify a file that exists on the backend server. Path is relative to the initial login path. If the file does not exist or is not accessible, the health check fails.

Select this option if the backend server uses passive FTP.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

233

Chapter 10: Shared Resources Configuring health checks

Settings

Port

CPU %

Memory %

Disk %

Agent type

Community

Guidelines

Listening port number of the backend server. Usually SNMP is 161 or 162.

Maximum normal CPU usage. If overburdened, the health check fails.

Maximum normal RAM usage. If overburdened, the health check fails.

Maximum normal disk usage. If the disk is too full, the health check fails.

l

UCD l

Windows 2000

Must match the SNMP community string set on the backend server. If this does not match, all SNMP health checks fail.

SNMP v1 or v2c.

Version

SNMP-Custom

Port

Community

Version

OID

Value Type

Compare Type

Listening port number of the backend server. Usually SNMP is 161 or 162.

Must match the SNMP community string set on the backend server. If this does not match, all SNMP health checks fail.

SNMP v1 or v2c.

String specifying the OID to query.

Abstract syntax notation (ASN) value type: l

ASN_INTEGER l

ASN_OCTET_STR l

ASN_OBJECT_ID l

ASN_COUNTER l

ASN_UINTEGER l

Equal l

Less l

Greater

Specify the value for the evaluation.

Counter Value

SSH

Port

Username

Listening port number of the backend server. Usually SSH is 22.

Username for test login.

234 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Creating schedule groups

Settings

Password

L2 Detection

No specific options

Guidelines

Corresponding password.

Chapter 10: Shared Resources

Link Layer health checker. Sends ARP (IPv4) or NDP (IPv6) packets to test whether a physically connected system is available.

In SLB deployments, a health check port configuration specifying port 0 acts as a wildcard.The port for health check traffic is imputed from the real server pool member.

In LLB and GLB deployments, specifying port 0 is invalid because there is no associated configuration to impute a proper port. If your health check port configuration specifies port 0, you will not be able to use it in an LLB or GLB configuration.

Creating schedule groups

You create schedule objects to use in link load balancing policies. A policy rule can be time-bound: one time, daily, weekly, or monthly.

Basic Steps

1. Create a schedule object.

2. Select the schedule when you configure the link policy.

Before you begin: l

You must have Read-Write permission for System settings.

To create schedule objects:

1. Go to Shared Resources > Schedule Group.

2. Click Add to display the configuration editor.

3. Give the schedule a name, save it, and add schedule members as described in

Table 80 .

4. Save the configuration.

 Table 80: Schedule member configuration

Settings Guidelines

Name Unique group name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Member

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

235

Chapter 10: Shared Resources

Settings

Name

Type

Start Date

End Date

Start Time

End Time

Creating IPv4 address objects

Guidelines

Unique member name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

l

One Time l

Daily l

Weekly l

Monthly

YYYY/MM/DD.

YYYY/MM/DD.

HH:MM.

HH:MM.

Creating IPv4 address objects

You create address objects to specify matching source and destination addresses in policies.

The following policies use address objects: l l l l

Firewall policies

QoS policies

Connection limit policies

Link load balancing policies

Note: For link load balancing, you can also add address objects to address groups, which can then be used in link load balance policies.

Basic Steps

1. Create address objects.

2. Select them when you configure address groups or policies.

Note: Before you begin, you must have Read-Write permission for System settings.

To create an address object:

1. Click Shared Resources > Address.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 81

.

4. Click Save.

236 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring IPv4 address groups Chapter 10: Shared Resources

 Table 81: Address object configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Type l

IPv4/Netmask l

Address Range

Specify a subnet using the IP address/mask notation.

IPv4/Netmask

(or

IPv6/Netmask)

Address

Range

Specify the start and end of an address range.

Configuring IPv4 address groups

You configure address group objects when you have more than one address object you want to specify in rules that match source or destination addresses. For example, if you subscribe customer 1 and customer 2 to a group of links, then you can create rules that match the customer 1 OR customer 2 address space and load balance the set of gateways assigned to them.

The following policies use address groups: l

Link load balancing policies

Basic Steps

1. Create address objects.

2. Configure address group objects. You can add up to 256 members in a group.

3. Select the address groups when you configure your policies.

Before you begin: l

You must have Read-Write permission for System settings.

To configure an address group:

1. Click Shared Resources > Address.

2. Click the Address Group tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 82

.

5. Click Save.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

237

Chapter 10: Shared Resources Creating IPv6 address objects

 Table 82: Address Group configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Member

Name

Address

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Select an address object.

Creating IPv6 address objects

You create address objects to specify matching source and destination addresses in policies.

The following policies use address objects: l l l l

Firewall policies

QoS policies

Connection limit policies

Link load balancing policies

Note: For link load balancing, you can also add address objects to address groups, which can then be used in link load balance policies.

Basic Steps

1. Create address objects.

2. Select them when you configure address groups or policies.

Note: Before you begin, you must have Read-Write permission for System settings.

To create an address object:

1. Click Shared Resources > IPv6 Address.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 83

.

4. Click Save.

 Table 83: IPv6 Address object configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

238 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring IPv6 address groups

Settings

Type

Guidelines l

IPv6/Netmask l

Address Range

Specify a subnet using the IP address/mask notation.

IPv4/Netmask

(or

IPv6/Netmask)

Address

Range

Specify the start and end of an address range.

Chapter 10: Shared Resources

Configuring IPv6 address groups

You configure address group objects when you have more than one address object you want to specify in rules that match source or destination addresses. For example, if you subscribe customer 1 and customer 2 to a group of links, then you can create rules that match the customer 1 OR customer 2 address space and load balance the set of gateways assigned to them.

The following policies use address groups: l

Link load balancing policies

Basic Steps

1. Create address objects.

2. Configure address group objects. You can add up to 256 members in a group.

3. Select the address groups when you configure your policies.

Before you begin: l

You must have Read-Write permission for System settings.

To configure an address group:

1. Click Shared Resources > Address.

2. Click the IPv6 Address Group tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 84

.

5. Click Save.

 Table 84: Address Group configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

239

Chapter 10: Shared Resources

Guidelines Settings

Member

Name

Address

Managing ISP address books

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Select an address object.

Managing ISP address books

ISP address books contain IP subnet addresses and associated province location settings for ISP links.

The following policies use the ISP address book objects: l l l l

ISP routes

LLB proximity routes

LLB policies

GLB data center configuration

The province setting is used in GLB deployments in China to enable location awareness that is province-specific.

For example, a user can be directed to a data center in specific location inside the country, such as Beijing or

Guangdong, rather than simply China.

Figure 49

shows the three types of address book entries: l l l

Predefined—Addresses and associated province location settings for China Mobile, China Telecom, and China

Unicom. The IP subnet addresses in the predefined address books are not exposed in the user interface. The predefined package is provided to make it easier for you to configure a route when all you know and all you need to know is the name of the ISP that hosts the link.

Restored—Addresses imported from a text file. The IP subnet addresses in the restored address books are not exposed in the user interface. “Restored” addresses can help you rapidly build an ISP address book configuration.

“Restored” addresses can help you rapidly build an ISP address book configuration.

User-defined—In the ISP address configuration, you can modify the predefined and restored address books by specifying subnets to add or exclude from them. This gives you flexibility in case you encounter address conflicts or the ISP instructs you to add a subnet address manually.

You can also create new user-defined entries for other ISPs.

Note: In systems with multiple VDOMs, these commands apply to the current VDOM only. In other words, if you configure an exclusion, it is applicable to the current VDOM only; it does not change the predefined address book.

You can use the Inquire utility to see whether an IP address belongs to any of the address books. If an address can be found in more than one address book, the results are returned in the following priority:

1. User-defined

2. Restored

3. Predefined

240 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Managing ISP address books

Figure  49: ISP address book types

Chapter 10: Shared Resources

The text file for the Restored entries has the following format:

#this is a comment line

ISP name:ABC

Province:Beijing

1.1.1.0/24

Province:Unknown

2.2.0.0 255.255.0.0

#this is a comment line too

3.3.3.3/32

ISP name:DEF

Province:Shanghai

4.4.4.0 255.255.255.0

5.5.0.0/16

You use the Restore utility to import the file and the Back Up utility to export it.

You use the Clean utility to erase entries that were imported from the text file. The clean operation does not affect the predefined addresses or user-configured entries. If a restored entry has user-configured elements (for example, an exclude list), the clean operation clears the addresses but preserves the configuration and converts it to a user-defined type.

Basic Steps

1. Create ISP address objects.

2. Select them when you configure your policies.

Note: Before you begin, you must have read-write permission for System settings.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

241

Chapter 10: Shared Resources Managing ISP address books

Create an ISP address book object

To create an ISP address book object:

1. Click Shared Resource > Address.

2. Click the ISP Address tab.

3. Click Add. The ISP Address dialog opens.

4. Complete the configuration as described in

Table 85

.

5. Click Save.

 Table 85: ISP address object configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Address

Excluded Address

Address/mask notation specifying a subnet to add it to the address book entry.

Address/mask notation specifying a subnet to be excluded from the address book entry. Create exclusions to predefined and restored address books only.

Note: This field applies to predefined and restored address books only; it is not applicable or available for user-defined address books.

Province Select the associated province location. The configuration supports the following selections:

Anhui

Beijing

Chongqing

Fujian

Gansu

Guangdong

Guangxi

Guizhou

Hainan

Hebei

Heilongjiang

Henan

Hubei

Hunan

Jiangsu

Jiangxi

Jilin Liaoning

Neimenggu

Ningxia

Qinghai

Shandong

Shanghai

Shanxi

(Taiyuan)

Shanxi

(Xian)

Sichuan

Tianjin

Xianggang

Xinjiang

Xizang

Yunnan

Zhejiang

Unknown

242 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Creating service objects Chapter 10: Shared Resources

Creating service objects

You create service objects to specify the service to be matched in policies.

The following policies use service objects: l l l l

Firewall policies

QoS policies

Connection limit policies

Link load balancing policies

Note: For link load balancing, you can also add service objects to service groups; then use service groups in LLB policies.

Basic Steps

1. Create service objects.

2. Select them when you configure service groups or policies.

Before you begin: l

You must have Read-Write permission for System settings.

To create a service object:

1. Go to Shared Resources > Service.

2. Select the Service tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 86

.

5. Save the configuration.

 Table 86: Service object configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Protocol Number in the IPv4 Protocol/IPv6 Next Header field that identifies the protocol, such as 1 (ICMP), 6 (TCP) or 17 (UDP).

1 Minimum

Source Port

Maximum

Source Port

65535

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

243

Chapter 10: Shared Resources

Settings minimum

Destination

Port

Maximum

Destination

Port

Guidelines

1

-65535

Creating service groups

Creating service groups

You configure service group objects when you have more than one service you want to specify in a rule that matches service. You can group all Web services and group all mail services, for example, if you want to have rules that treat those as groups.

The following policies use service groups: l

Link load balancing policies

Basic Steps

1. Create service objects.

2. Configure service group objects. You can add up to 256 members in a group.

3. Select the service groups when you configure your policies.

Before you begin: l

You must have Read-Write permission for System settings.

To configure a service group:

1. Go to Shared Resources > Service.

2. Click Service Group.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 87

.

5. Save the configuration.

 Table 87: Service Group configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Member

244 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Creating service groups

Settings

Name

Service

Chapter 10: Shared Resources

Guidelines

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Select a service object.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

245

Chapter 11: Basic Networking

Chapter 11: Basic Networking

Configuring network interfaces

This chapter includes the following topics: l l l

Configuring network interfaces

Configuring static routes

Configuring policy routes

See

Chapter 17: Advanced Networking

for advanced topics.

Configuring network interfaces

This topic includes the following information: l l l l

Using physical interfaces

Using VLAN interfaces

Using aggregate interfaces

Configuring network interfaces

Using physical interfaces

Each physical network port (or, on FortiADC-VM, a vNIC) has a network interface that directly corresponds to it— that is, a “physical network interface.”

Physical ports have three uses: l l l

Management—The network interface named port1 is typically used as the management interface.

HA—If you plan to deploy HA, you must reserve a physical port for HA heartbeat and synchronization traffic. Do not configure the network interface that will be used for HA; instead, leave it unconfigured or “reserved” for HA.

Traffic—The remaining physical ports can be used for your target traffic—these are your “traffic interfaces.”

Traffic interfaces can be associated with logical interfaces. The system supports two types of logical interfaces:

VLAN and aggregate.

Figure 50

illustrates how physical ports are associated with physical and logic interfaces.

Figure  50:  Physical and logical interfaces

246

With VLANs, multiple VLAN logical interfaces are associated with a single physical port. With link aggregation, it is the reverse: multiple physical interfaces are associated with a single aggregate logical interface.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring network interfaces Chapter 11: Basic Networking

Table 88

lists factory default IP addresses for physical network interfaces.

 Table 88: Physical network interfaces

Network Interface* IPv4 Address/Netmask IPv6 Address/Netmask port1 192.168.1.99/24 ::/0 port2 port3

0.0.0.0/0

0.0.0.0/0

::/0

::/0

::/0 port4

...

0.0.0.0/0

* The number of physical network interfaces varies by model.

Using VLAN interfaces

You can use IEEE 802.1q

VLAN to reduce the size of a broadcast domain, thereby reducing the amount of broadcast traffic received by network hosts, improving network performance.

Unlike physical LANs, VLANs do not require you to install separate hardware switches and routers to achieve this effect. Instead, VLAN-compliant switches restrict broadcast traffic based upon whether its VLAN ID matches that of the destination network. As such, VLAN trunks can be used to join physically distant broadcast domains as if they were close.

The VLAN ID is part of the tag that is inserted into each Ethernet frame in order to identify traffic for a specific

VLAN. FortiADC appliances handle VLAN header addition automatically, so you do not need to adjust the maximum transmission unit (MTU). Depending on whether the device receiving a packet operates at Layer 2 or

Layer 3 of the network, a VLAN tag might be added, removed, or rewritten before forwarding to other nodes on the network. For example, a Layer 2 switch typically adds or removes a tag when forwarding traffic among members of the VLAN, but does not route tagged traffic to a different VLAN ID. In contrast, a FortiADC contentbased routing policy might forward traffic between different VLAN IDs (also known as inter-VLAN routing).

Cisco Discovery Protocol (CDP) is supported for VLANs.

Note: VLANs are not designed to be a security measure, and should not be used where untrusted devices and/or individuals outside of your organization have access to the equipment. VLAN tags are not authenticated, and can be ignored or modified by attackers. VLAN tags rely on the voluntary compliance of the receiving host or switch.

Using aggregate interfaces

Link aggregation (also called NIC teaming/bonding or link bundling) forms a network interface that queues and transmits over multiple wires (also called a port channel), instead of only a single wire (as FortiADC would normally do with a single network interface per physical port). This multiplies the bandwidth that is available to the network interface, and therefore is useful if FortiADC is deployed inline with your network backbone.

Link aggregation on FortiADC complies with IEEE 802.1ax

and IEEE 802.3ad

and distributes Ethernet frames using a modified round-robin behavior. If a port in the aggregation fails, traffic is redistributed automatically to the remaining ports with the only noticeable effect being a reduced bandwidth. When broadcast or multicast traffic is received on a port in the aggregation, reverse traffic will return on the same port.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

247

Chapter 11: Basic Networking Configuring network interfaces

When link aggregation uses a round-robin that considers only Layer 2, Ethernet frames that belong to an HTTP request can sometimes arrive out of order. Because network protocols at higher layers often do not gracefully handle this (especially TCP, which may decrease network performance by requesting retransmission when the expected segment does not arrive), FortiADC’s frame distribution algorithm is configurable. For example, if you notice that performance with link aggregation is not as high as you expect, you could try configuring FortiADC to queue related frames consistently to the same port by considering the IP session (Layer 3) and TCP connection

(Layer 4), not simply the MAC address (Layer 2).

You must also configure the router, switch, or other link aggregation control protocol (LACP)-compatible device to which FortiADC is connected with the same speed/duplex settings, and it must have ports that can be aggregated. In a deployment like this, the two devices use the cables between the ports to form a trunk, not an accidental Layer 2 (link) network loop. FortiADC uses LACP to detect the following conditions: l l

Suitable links between itself and the other device, and form a single logical link.

Individual port failure so that the aggregate can redistribute queuing to avoid a failed port.

Configuring network interfaces

You can edit the physical interface configuration. You cannot create or delete a physical interface configuration.

Before you begin: l

You must have Read-Write permission for System settings.

To configure a network interface:

1. Go to Networking > Interface.

2. Double-click the row for a physical interface to edit its configuration or click Add if you want to configure an aggregate or VLAN interface.

3. Complete the configuration as described in

Table 89

.

4. Save the configuration.

 Table 89: Network interface configuration

Settings Guidelines

Common Settings

Name

Status

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. After you initially save the configuration, you cannot edit the name

The Status column is not the detected physical link status; it is the administrative status

(Up/Down) that indicates whether you permit the network interface to receive and/or transmit packets.

248 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring network interfaces Chapter 11: Basic Networking

Settings

Allow Access

Virtual Domain

Mode

Guidelines

Allow inbound service traffic. Select from the following options: l

HTTP—Enables connections to the web UI. We recommend this option only for network interfaces connected to a trusted private network, or directly to your management computer.

l

HTTPS—Enables secure connections to the web UI. We recommend this option instead of

HTTP.

l

Ping—Enables ping and traceroute to be received on this network interface. When it receives an ECHO_REQUEST (“ping”), FortiADC will reply with ICMP type 0 (ECHO_RESPONSE or

“pong”).

l

SNMP—Enables SNMP queries to this network interface.

l

SSH—Enables SSH connections to the CLI. We recommend this option instead of Telnet.

l

Telnet—Enables Telnet connections to the CLI. We recommend this option only for network interfaces connected to a trusted private network, or directly to your management computer.

If applicable, select the virtual domain to which the configuration applies.

l

Static—Specify a static IP address. The IP address must be on the same subnet as the network to which the interface connects. Two network interfaces cannot have IP addresses on the same subnet (i.e. overlapping subnets).

l

PPPoE—Use PPPoE to retrieve a configuration for the IP address, gateway, and DNS server.

For example, if this interface uses a DSL connection to the Internet, your ISP may require this option.

Static

Traffic Group

Floating

Floating IP

IPv4/Netmask

IPv6/Netmask

Secondary IP

Address

Select either of the following: l l

Default

Create New

Enable/Disable floating IP.

Enter the floating IP.

Specify the IP address and CIDR-formatted subnet mask, separated by a forward slash ( / ), such as 192.0.2.5/24. Dotted quad formatted subnet masks are not accepted.

Specify the IP address and CIDR-formatted subnet mask, separated by a forward slash ( / ), such as 2001:0db8:85a3::8a2e:0370:7334/64. Dotted quad formatted subnet masks are not accepted.

Secondary IP addresses can be used when you deploy the system so that it belongs to multiple logical subnets. If you assign multiple IP addresses to an interface, you must assign them static addresses.

To add secondary IP addresses, enable the feature and save the configuration. After you have saved it the first time, you can edit it to add secondary IP addresses and enable inbound traffic to that address.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

249

Chapter 11: Basic Networking Configuring network interfaces

Settings

PPPoE

Username

Password

Guidelines

PPPoE account user name.

PPPoE account password.

Discovery Retry

Timeout

Seconds the system waits before it retries to discover the PPPoE server. The default is 5 seconds. The valid range is 1-255.

DNS Server Override

Use the DNS addresses retrieved from the PPPoE server instead of the one configured in the

FortiADC system settings.

Retrieve Default

Gateway

Type

Use the default gateway retrieved from the PPPoE server instead of the one configured in the

FortiADC system settings.

If you are editing the configuration for a physical interface, you cannot set the type. If you are configuring a logical interface, you can select from the following options: l

Aggregate—A logical interface you create to support the aggregation of multiple physical interfaces.

l

VLAN—A logical interface you create to VLAN subinterfaces on a single physical interface.

Aggregate

Member

Aggregate Mode

Aggregate

Algorithm

Select the physical interfaces that are included in the aggregation.

Link aggregation type: l

802.3ad

l

Balance-alb l

Balance-rr l

Balance-tlb l

Balance-xor l

Broadcast

Connectivity layers that will be considered when distributing frames among the aggregated physical ports: l

Layer 2 l

Layer 2-3 l

Layer 3-4

VLAN

250 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring network interfaces Chapter 11: Basic Networking

Settings

VLAN ID

Guidelines

VLAN ID of packets that belong to this VLAN.

If one physical network port (that is, a VLAN trunk) will handle multiple VLANs, create multiple

VLAN subinterfaces on that port, one for each VLAN ID that will be received.

If multiple different physical network ports will handle the same VLANs, on each of the ports, create VLAN subinterfaces that have the same VLAN IDs.

Interface

Secondary IP List

Physical interface associated with the VLAN; for example, port2.

IP Address

The valid range is between 1 and 4094. The value you specify must match the VLAN ID added by the IEEE 802.1q-compliant router or switch connected to the VLAN subinterface.

Secondary IP addresses can be used when you deploy the system so that it belongs to multiple logical subnets. If you assign multiple IP addresses to an interface, you must assign them static addresses.

Allow Access

HA Node IP List

Select the services that are allowed to send inbound traffic.

IP Address

To add secondary IP addresses, enable the feature and save the configuration. After you have saved it the first time, you can edit it to add secondary IP addresses and enable inbound traffic to that address.For each address, specify an IP address using the CIDR-formatted subnet mask, separated by a forward slash ( / ), such as 192.0.2.5/24.

You use the HA node IP list configuration in an HA active-active deployment. On each HA cluster node, add an HA node IP list that includes an entry for each cluster node. When the appliance is in standalone mode, it uses the physical port IP address; when it is in HA mode, it uses the HA node IP list address.

Node ID

Allow Access

For each address, specify an IP address using the CIDR-formatted subnet mask, separated by a forward slash ( / ), such as 192.0.2.5/24.

ID of the corresponding node.

Select the services that are allowed to send inbound traffic.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

251

Chapter 11: Basic Networking Configuring network interfaces

In an HA active-active deployment, if an interface uses secondary IP addresses, you must use the CLI to enable the HA node secondary IP address list, and then configure the list:

FADC # config system interface

FADC (interface) # edit port3

FADC (port3) # set ha-node-secondary-ip enable

FADC (port3) # config ha-node-secondary-ip-list

FADC (ha-node-second~r) # edit 1

Add new entry '1' for node 2221

FADC (1) # set ip 192.168.1.100

FADC (1) # set allowaccess https http ping snmp ssh

FADC (1) # end

FADC (port3) # end

To configure a physical interface using the CLI: config system interface edit <port_name> set ip <ip&netmask> set allowaccess {http https ping snmp ssh telnet} end

To configure an aggregate interface using the CLI: config system interface edit <specified_name> set type agg set aggregate-mode {802.3ad | balance-alb | balancerr | balance-tlb | balance-xor | broadcast} set aggregate-algorithm {layer2 | layer2_3 | layer3_

4} end set member <port_name> <port_name> set ip <ip&netmask>

To configure a VLAN interface using the CLI: config system interface edit <specified_name> set type vlan set vlanid <number> set interface < port_name > set ip <ip&netmask> end

252 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring static routes Chapter 11: Basic Networking

Configuring static routes

Network systems maintain route tables to determine where to forward TCP/IP packets. Routes for outbound traffic are chosen according to the following priorities: l l l l l l

Link local routes—Self-traffic uses link local routes.

LLB Link Policy route—Configured policy routes have priority over default routes.

Policy route—Configured policy routes have priority over default routes.

Static route / ISP route / OSPF route—Priority is based on the distance metric. By default, distance for static routes is 10, for ISP routes is 20, and for OSPF routes is 110. The distance metric is configurable for static routes and

OSPF routes, but not ISP routes.

Default LLB Link Policy route—Default routes have lower priority than configured routes.

Default static route / OSPF route—Default routes have lower priority than configured routes.

The system evaluates content route rules first, then policy routes, then static routes. The packets are routed to the first route that matches. The static route table, therefore, is the one that must include a “default route” to be used when no more specific route has been determined.

Static routes specify the IP address of a next-hop router that is reachable from that network interface. Routers are aware of which IP addresses are reachable through various network pathways, and can forward those packets along pathways capable of reaching the packets’ ultimate destinations. The FortiADC system itself does not need to know the full route, as long as the routers can pass along the packet.

You must configure at least one static route that points to a router, often a router that is the gateway to the

Internet. You might need to configure multiple static routes if you have multiple gateway routers, redundant ISP links, or other special routing cases.

Before you begin: l

You must have Read-Write permission for System settings.

To configure a static route:

1. Go to Networking > Routing.

The configuration page displays the Static tab.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 90

.

4. Save the configuration.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

253

Chapter 11: Basic Networking Configuring policy routes

 Table 90: Static route configuration

Settings Guidelines

Destination Address/mask notation to match the destination IP in the packet header.

Gateway

Distance

It is a best practice to include a default route. If there is no other, more specific static route defined for a packet’s destination IP address, a default route will match the packet, and pass it to a gateway router so that any packet can reach its destination. If you do not define a default route, and if there is a gap in your routes where no route matches a packet’s destination IP address, packets passing through the FortiADC towards those IP addresses will, in effect, be null routed. While this can help to ensure that unintentional traffic cannot leave your FortiADC and therefore can be a type of security measure, the result is that you must modify your routes every time that a new valid destination is added to your network. Otherwise, it will be unreachable. A default route ensures that this kind of locally-caused “destination unreachable” problem does not occur. Specify 0.0.0.0/0 or ::/0 to set a default route for all packets.

Specify the IP address of the next-hop router where the FortiADC system will forward packets for this static route. This router must know how to route packets to the destination IP addresses that you have specified, or forward packets to another router with this information. For a direct

Internet connection, this will be the router that forwards traffic towards the Internet, and could belong to your ISP. The gateway must be in the same subnet as the interface used to reach it.

The default administrative distance is 10, which makes it preferred to OSPF routes that have a default of 110. We recommend you do not change these settings unless your deployment has exceptional requirements.

To configure a static route using the CLI: config router static edit 1 set destination <ip address/netmask> set gateway <ip address> set distance <value> end

Configuring policy routes

Network systems maintain route tables to determine where to forward TCP/IP packets. Policy routes set the gateway for traffic with a source and destination that match the policy.

Routes for outbound traffic are chosen according to the following priorities:

1. Link local routes—Self-traffic uses link local routes.

2. LLB Link Policy route—Configured policy routes have priority over default routes.

3. Policy route—Configured policy routes have priority over default routes.

4. Static route / ISP route / OSPF route—Priority is based on the distance metric. By default, distance for static routes is 10, for ISP routes is 20, and for OSPF routes is 110. The distance metric is configurable for static routes and OSPF routes, but not ISP routes.

254 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring policy routes Chapter 11: Basic Networking

5. Default LLB Link Policy route—Default routes have lower priority than configured routes.

6. Default static route / OSPF route—Default routes have lower priority than configured routes.

The system evaluates policy routes, then static routes. The packets are routed to the first route that matches.

The policy route table, therefore, need not include a “default route” for packets that do not match your policy because those packets can be forwarded to the default route set in the static route table.

Most policy route settings are optional, so a matching route might not provide enough information to forward the packet. In that case, the FortiADC appliance may refer to the routing table in an attempt to match the information in the packet header with a route in the routing table. For example, if the destination address is the only match criteria in the policy route, the FortiADC appliance looks up the IP address of the next-hop router in its routing table. This situation could occur when interfaces are dynamic (such as DHCP or PPPoE) and you do not want or are unable to specify a static IP address of the next-hop router.

Before you begin: l

You must have Read-Write permission for System settings.

To configure a policy route:

1. Go to Networking > Routing.

2. Click the Policy tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 91

.

5. Save the configuration.

 Table 91: Policy route configuration

Settings Guidelines

Source Address/mask notation to match the source IP in the packet header. To match any value, either leave it blank or enter 0.0.0.0/32.

Destination

Gateway

Address/mask notation to match the destination IP in the packet header. To match any value, leave it blank or enter 0.0.0.0/32.

IP address of the next-hop router where the FortiADC system will forward packets for this policy route. This router must know how to route packets to the destination subnet, or forward packets to another router with this information.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

255

Chapter 12: System Management

Chapter 12: System Management

Configuring basic system settings

This chapter includes the following topics: l l l l l l l l l l

Configuring basic system settings

Configuring system time

Backing up and restoring the configuration

Updating firmware

Configuring an SMTP mail server

Configuring FortiGuard service settings

Pushing/pulling configurations

Configuring SNMP

Manage and validate certificates

Rebooting, resetting, and shutting down the system

Configuring basic system settings

The basic system settings page includes configuration options for the following settings and features: l l l l l

Hostname

Web UI language

Management service ports

DNS

Virtual domain

Before you begin: l

You must have Read-Write permission for System settings.

To configure basic system settings:

1. Click System > Settings.

The configuration page displays the Basic tab.

2. Complete the configuration as described in

Table 92

.

3. Save the configuration.

256 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring system time Chapter 12: System Management

 Table 92: Basic settings configuration

Settings Guidelines

Hostname You can configure a hostname to facilitate system management. If you use SNMP, for example, the SNMP system name is derived from the configured hostname.The hostname can be up to 35 characters in length. It can include US-ASCII letters, numbers, hyphens, and underscores, but not spaces and special characters.

Language

Idle Timeout

HTTP Port

HTTPS Port

Telnet Port

SSH Port

Primary DNS

Secondary DNS

Virtual Domain

Config Sync

Enable

The System Information widget and the get system status CLI command display the full hostname. If the hostname is longer than 16 characters, the name is truncated and ends with a tilde ( ~ ) to indicate that additional characters exist, but are not displayed.

English or Simplified Chinese.

Log out an idle administrator session. The default is 30 minutes.

Specify the port for the HTTP service. Usually, HTTP uses port 80.

Specify the port for the HTTPS service. Usually, HTTPS uses port 443.

Specify the port for the Telnet service. Usually, Telnet uses port 25.

Specify the port for the SSH service. Usually, SSH uses port 22.

The system must be able to contact DNS servers to resolve IP addresses and fully qualified domain names. Your Internet service provider (ISP) might supply IP addresses of DNS servers, or you might want to use the IP addresses of your own DNS servers. You must provide unicast, non-local addresses for your DNS servers. Localhost and broadcast addresses are not accepted.

Incorrect DNS settings or unreliable DNS connectivity can cause issues with other features, such as FortiGuard services and NTP system time.

IPv4/IPv6 address of the secondary DNS server for your local network.

Enables the virtual domain feature. Before you enable it, make sure you understand how the system implements virtual domains. See

Chapter 15: Virtual Domains

.

Enable/disable the configuration synchronization feature. This feature is related to

Pushing/pulling configurations

, not HA synchronization. Disabled by default.

Configuring system time

The system time must be accurate for many features to work, including scheduling, logging, and SSL/TLS-related features.

We recommend that you use Network Time Protocol (NTP) to maintain the system time. As an alternative when

NTP is not available or is impractical, you can set the system time manually.

You can change the system time with the web UI or the CLI.

Before you begin:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

257

Chapter 12: System Management Configuring system time l

You must have Read-Write permission for System settings.

To configure the system time:

1. Go to System > Settings.

2. Click the Maintenance tab.

3. Complete the configuration as described in

Table 93

.

4. Save your changes.

 Table 93: System time configuration

Setting Guidelines

System Time Displays the system time. You can use NTP to set the system time, or use the controls to set the system time manually. Specify time in HH:MM:SS format.

Daylight Saving

Time

Enable if you want the system to adjust its own clock when its time zone changes between daylight saving time (DST) and standard time.

Select the time zone where the appliance is located.

Time Zone

NTP

NTP

NTP Server

Select to use NTP.

Specify a space-separated list of IP addresses or FQDNs for an NTP server or pool, such as pool.ntp.org

.

Synchronizing

Interval

To find an NTP server, go to http://www.ntp.org

.

Specify how often the system synchronizes its time with the NTP server. The default is 60 minutes. The valid range is 1-1440.

To configure NTP using the CLI: config system time ntp set ntpsync enable end set ntpserver {<server_fqdn> | <server_ipv4>} set syncinterval <minutes_int>

To configure the system time manually: config system time ntp end set ntpsync disable config system time manual set zone <timezone_index> end set daylight-saving-time {enable|disable} execute date <MM/DD/YY> <HH:MM:SS>

258 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring an SMTP mail server Chapter 12: System Management

Configuring an SMTP mail server

You can configure an SMTP email server if you want to send alerts by email. See

Configuring alert email settings

for information on alerts.

Before you begin: l

You must have Read-Write permission for System settings.

To configure SMTP:

1. Go to System > Settings.

2. Click the Services tab.

3. Complete the configuration as described in

Table 94

.

4. Save the configuration.

 Table 94: SMTP configuration

Settings Guidelines

Address IP address or FQDN of an SMTP server (such as FortiMail) or email server that the appliance can connect to in order to send alerts and/or generated reports.

Port

Authentication

Security

Listening port number of the server. Usually, SMTP is 25.

Enable if the SMTP server requires authentication.

STARTTLS is an extension to plain text communication protocols. It enables a plain text connection to be upgraded to an encrypted (TLS or SSL) connection instead of using a separate port for encrypted communication. Specify this option if you have implemented STARTTLS for your mailserver; otherwise, select none.

Username

Password

Username for authentication to the SMTP server.

Password for authentication to the SMTP server.

Configuring FortiGuard service settings

FortiGuard periodically updates the WAF Signature Database, IP Reputation Database, and Geo IP Database.

You can go to the FortiGuard website to download the update packages that you can upload to FortiADC, or you can schedule automatic updates.

Before you begin: l

If you want to perform a manual update, you must download the update file from the FortiGuard website.

You must have Read-Write permission for System settings.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

259

Chapter 12: System Management Configuring FortiGuard service settings

To configure FortiGuard service settings:

1. Go to System > Settings.

2. Click the FortiGuard tab.

3. Complete the configuration as described in

Table 95

.

4. Save the configuration.

 Table 95: FortiGuard service configuration

Settings Guidelines

Support Contract

Registration and license Review your registration and license information. If you need to change registration or if your license is about to expire, click Login Now to open the login page for the Fortinet Service & Support website in a new browser window.

Note: If your license is invalid, FortiGuard does not send updates to the

FortiADC. The functionality on FortiADC remains intact and useful, but it is outof-date.

FortiGuard Services

WAF Signature Database

IP Reputation Database

Geo IP Database

Review the version information. To perform a manual update, click Update to display controls that enable you to select and upload the update file.

Review the version information. To perform a manual update, click Update to display controls that enable you to select and upload the update file.

Review the version information. To perform a manual update, click Update to display controls that enable you to select and upload the update file.

Configuration

Scheduled Update Status

Scheduled Update Frequency

Enable updates.

Scheduled Update Day

Scheduled Update Time

Override Server

Override Server Address

Web Filter Configure l

Every—Schedule periodic updates. Specify the time interval to perform updates.

l

Daily—Schedule daily updates. Specify the time of day to perform the update.

l

Weekly—Schedule weekly updates. Specify the day and time to perform the update.

Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday.

HH:MM.HH is 0-23. MM is 0, 15, 30, or 45.

If you are unable to make connections to the standard FortiGuard server, enable connection to the override server address given to you by Fortinet Service & Support.

Override server IP address.

260 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Pushing/pulling configurations

Settings

Cache Status

Cache TTL

FDS Port

Chapter 12: System Management

Guidelines

Enable/disable caching of the categorical lists of websites.

FortiGuard maintains massive lists of web sites classified into categories so that you can enforce categorical decisions in your rules, like "do not do SSL forward proxy for sites belonging to the Personal Privacy category."

Specify cache expiration. The default is 3600. The valid range is 10 to 86,400. When the cache expires, FortiADC initiates an update from FortiGuard.

Specify the port to receive updates. The default is 53. An alternative is 8888.

Pushing/pulling configurations

You can use the sync list configuration page to push or pull sets of configuration objects to or from a target

FortiADC appliance. The push/pull operation is a manual operation. It is not repeated automatically.

Before you begin: l l l

Configuration synchronization must be enabled on the appliances. Go to System > Settings > Basic.

You must plan for the impact the configuration push/pull has on the target deployment.

You must have Read-Write permission for System settings.

To push or pull a configuration:

1. Click System > Settings.

2. Click the Sync List tab.

3. Click Add and complete the configuration as described in

Table 96

.

After you have saved the configuration, it is added to the configuration table.

4. To execute the push/pull operation, select the configuration from the table, select From or To, and click Sync.

5. Check the Status column in the table to see the result of the push/pull operation.

6. Log into the target appliance and check the configuration logs (Log & Report > Log Browsing > Event Log >

Configuration. Notice the log entries for each configuration change resulting from the push/pull operation.

 Table 96: Sync List configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

After you initially save the configuration, you cannot edit the name.

Server IP

Password

IP address of the remote appliance.

Password for the admin account on the remote appliance.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

261

Chapter 12: System Management

Settings

Type

Comment

Guidelines

Backing up and restoring the configuration l

System—Includes config config, config system (except config system mailserver ), config user, and config vdom commands.

l

Route—Includes config router commands.

l

LB—Includes config load-balance commands.

l

FW—Includes config firewall commands.

l

Log—Includes config log commands and config system mailserver.

l

LLB—Includes config link-load-balance commands.

l

GDS—Includes config global-load-balance and config global-dnsserver commands.

l

Security—Includes config security waf commands.

A string to describe the purpose of the configuration, to help you and other administrators more easily identify its use. Put phrases in quotes. For example: “SLB and GLB settings to

Data Center East”.

Backing up and restoring the configuration

You use the backup procedure to save a copy of the configuration. A simple backup file is a text file. A full backup is a tar file.

The backup feature has a few basic uses: l l l

Saving the configuration as CLI commands that a co-worker or Fortinet support can use to help you resolve issues with misconfiguration.

Restoring the system to a known functional configuration.

Creating a template configuration you can edit and then load into another system using the restore procedure.

A complete configuration backups is a tar file that includes the complete configuration files, plus any files you have imported, including error page files, script files, and ISP address book files.

In the event that FortiADC experiences hardware failure, being able to restore the entire backup configuration minimizes the time to reconfigure a replacement.

Configuration backups do not include data such as logs and reports.

Back up files can include sensitive information, such as HTTPS certificate private keys.

We strongly recommend that you password-encrypt backup files and store them in a secure location.

Before you begin: l

If you are restoring a configuration, you must know its management interface configuration in order to access the web UI after the restore procedure is completed. Open the configuration file and make note of the IP address and

262 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Updating firmware Chapter 12: System Management l network requirements for the management interface (port1). You also must know the administrator username and password.

You must have Read-Write permission for System settings.

To backup or restore the system configuration:

1. Click System > Settings.

2. Click the Backup & Restore tab.

3. Complete the actions described in

Table 97 .

 Table 97: Backup and restore configuration

Actions Guidelines

Backup

Back Up

Local PC

Select this option to back up the configuration. This backup is a text file.

Back up to the local PC.

ADC

Entire Configuration

Restore

Restore (option)

Back up directly to the FortiADC device.

Select this option to include error page files, script files, and ISP address book files. This backup is a tar file.

Local PC

ADC

File

Restore (button)

Select this option to restore a previous configuration. This restore file must be a text file.

Restore from the local PC.

Restore directly from your FortiADC device

Click Choose File to browse for the file to restore. Note: The option applies to restore operations from the local PC only.

Click the Restore button to start the restore procedure. Your web browser uploads the configuration file and the system restarts with the new configuration.

Time required to restore varies by the size of the file and the speed of your network connection.

Your web UI session is terminated when the system restarts. To continue using the web UI, refresh the web page and log in again.

If the restored system has a different management interface configuration than the previous configuration, you must access the web UI using the new management interface IP address.

Updating firmware

This topic includes the following information:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

263

Chapter 12: System Management Updating firmware l l l

Upgrade considerations

Updating firmware using the web UI

Updating firmware using the CLI

Upgrade considerations

The following considerations help you determine whether to follow a standard or non-standard upgrade procedure: l l l

HA—Updating firmware on an HA cluster requires some additions to the usual steps for a standalone appliance. For details, see

Updating firmware for an HA cluster .

Re-imaging—If you are installing a firmware version that requires a different size of system partition, you might be required to re-image the boot device. Consult the release notes. In that case, do not install the firmware using this procedure. Instead, see

Restoring firmware (“clean install”)

.

Downgrades—If you are downgrading the firmware to a previous version, and the settings are not fully backwards compatible, the system might remove incompatible settings or use the default values for that version of the firmware. You might need to reconfigure some settings.

Important: Read the release notes for release-specific upgrade considerations.

Updating firmware using the web UI

Figure 51

shows the user interface for managing firmware (either upgrades or downgrades). Firmware can be loaded on two disk partitions: the active partition and the alternate partition. The upgrade procedure: l l

Updates the firmware on the inactive partition and then makes it the active partition.

Copies the firmware on the active partition, upgrades it, and installs it in place of the configuration on the inactive partition.

For example, if partition 1 is active, and you perform the upgrade procedure: l l

Partition 2 is upgraded and becomes the active partition; partition 1 becomes the alternate partition.

The configuration on partition 1 remains in place; it is copied, upgraded, and installed in place of the configuration on partition 2.

The reason for this is to preserve the working system state in the event upgrade fails or is aborted.

264 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Updating firmware

Figure  51: User interface for managing firmware updates

Chapter 12: System Management

Before you begin: l l l l

Download the firmware file from the Fortinet Customer Service & Support website: https://support.fortinet.com/

Read the release notes for the version you plan to install.

Back up your configuration before beginning this procedure. Reverting to an earlier firmware version could reset settings that are not compatible with the new firmware.

You must have super user permission (user admin) to upgrade firmware.

To boot the firmware on the alternate partition: n

Click Boot Alternate Firmware.

The system reboots, the alternate becomes the active firmware, and the active becomes the alternate firmware.

To update firmware:

1. Go to System > Settings.

2. Click the Maintenance tab.

3. Scroll to the Upgrade section.

4. Click Choose File to locate and select the file.

5. Click to upload the firmware and reboot.

The system replaces the firmware on the alternate partition and reboots. The alternate (upgraded) partition becomes the active, and the active becomes the alternate.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

265

Chapter 12: System Management Updating firmware

When you update software, you are also updating the web UI. To ensure the web

UI displays the updated pages correctly: l l

Clear your browser cache.

Refresh the page.

In most environments, press Ctrl-F5 to force the browser to get a new copy of the content from the web application. See the Wikipedia article on browser caching issues for a summary of tips for many environments: https://en.wikipedia.org/wiki/Wikipedia:Bypass_your_cache .

Updating firmware using the CLI

The CLI upgrade procedure replaces the firmware on the alternate partition and reboots. The alternate

(upgraded) partition becomes the active, and the active becomes the alternate.

Note: The CLI does not have an equivalent of the web UI Boot Alternative Firmware command.

Before you begin: l l l l l l

Read the release notes for the version you plan to install. If information in the release notes is different from this documentation, follow the instructions in the release notes.

You must be able to use TFTP to transfer the firmware file to the FortiADC. Download and install a TFTP server, like tftpd ( Windows , Mac OS X , or Linux ), on a server on the same subnet as the FortiADC.

Download the firmware file from the Fortinet Customer Service & Support website: https://support.fortinet.com/

Copy the firmware image file to the root directory of the TFTP server.

Back up your configuration before beginning this procedure.

You must have super user permission (user admin) to upgrade firmware.

TFTP is not secure, and it does not support authentication. You should run it only on trusted administrator-only networks, and never on computers directly connected to the

Internet. Turn off tftpd off immediately after completing this procedure.

To install firmware via the CLI:

1. Connect your management computer to the FortiADC console port using an RJ-45-to-DB-9 serial cable or a nullmodem cable.

2. Initiate a connection to the CLI and log in as the user admin.

3. Use an Ethernet cable to connect FortiADC port1 to the TFTP server directly, or connect it to the same subnet as the TFTP server.

4. If necessary, start the TFTP server.

5. Use the following command to transfer the firmware image to the FortiADC system: execute restore image tftp <filename> <tftp_ipv4>

The following example shows an upgrade:

FortiADC-VM # execute restore image tftp FAD_VM-v400-build0308-FORTINET.out 192.0.2.1

This operation will replace the current firmware version!

Do you want to continue? (y/n)y

266 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Rebooting, resetting, and shutting down the system Chapter 12: System Management

Connect to tftp server 192.0.2.1 ...

Please wait...

##############################################################

Get image from tftp server OK.

Check image trailer OK.

Check image OK.

FortiADC-VM #

The following example shows a downgrade:

FortiADC-VM # execute restore image tftp FAD_VM-v400-build0307-FORTINET.out 192.0.2.1

This operation will replace the current firmware version!

Do you want to continue? (y/n)y

Connect to tftp server 192.0.2.1 ...

Please wait...

#############################################################

Get image from tftp server OK.

Check image trailer OK.

This operation will downgrade the current firmware version!

Do you want to continue? (y/n)y

FortiADC-VM #

6. To verify the upgrade, display the system version number:

FortiADC-VM # get system status

Version: FortiADC-VM v4.2.0,build0307,150209

VM Registration: Valid: License has been successfully authenticated with registration servers.

VM License File: License file and resources are valid.

VM Resources: 1 CPU/1 allowed, 1620 MB RAM/2048 MB allowed, 23 GB Disk/1024 GB allowed

...

If the download fails after the integrity check with the error message invalid compressed format (err=1 , but the firmware matches the integrity checksum on the Fortinet Customer Service & Support website, try a different TFTP server.

Rebooting, resetting, and shutting down the system

The following items have the indicated usage: l l l

Reboot—Reboots the operating system.

Reset—Resets the configuration to the default factory values.

Shut Down—Shuts down the system. When the system is shut down, it is unavailable to forward traffic.

Do not unplug or switch off the FortiADC appliance without first shutting down the operating system. The shutdown process enables the system to finish writing any buffered data, and to correctly spin down and park the hard disks. Failure to do so could cause data loss and hardware problems.

To reboot the system:

Do one of the following:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

267

Chapter 12: System Management Create a traffic group l l

Go to the dashboard, and in the System Information widget, click Reboot.

From the CLI console, enter the following command: execute reboot

To perform a factory reset:

Do one of the following: l l

Go to the dashboard, and in the System Information widget, click Reset.

From the CLI console, enter the following command: execute factoryreset

To power off the system:

To shut down the system: l l

Go to the dashboard, and in the System Information widget, click Shut Down.

From the CLI console, enter the following command: execute shutdown

The system does not emit disk activity noise when shutdown is complete.

To completely power off: l l

For hardware appliances, press the power button if there is one. Power supplies and switches vary by hardware model. On some, you press the power button; on others, you flip the switch to either the off (O) or on (I) position.

For FortiADC-VM, power off the virtual machine.

Create a traffic group

A traffic group is a set of VRIDs. Each VRID keeps talking with its peers using 'hello' packets via its heartbeat interface so that each VRID can be aware of its peers (master or slave) operating state and perform a VRRP failover in case the master node fails. The different VRIDs have no relationship with each other.

In the example below, both VRID1 and VRID2 use Device1 as the master. When Port2 on Device1 fails, all traffic between the client and the server can't pass through the device

Figure  52: Traffic group

268 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Create a traffic group Chapter 12: System Management

To solve this problem, you can create a traffic group and add both VRID1 and VRID2 as its members, and set the rule that the whole traffic group to fail over to the success device when either VRID fails. In this case, if Device1’s

Port2 fails, the whole traffic group will fail over to Device2.

Using the VRID concept, FortiADC allows you to add objects with floating IP address, such as interface, virtual server, IP pool, and SNA T pool, etc. to a traffic-group. With this configuration, it will trigger the whole traffic group to switch over when a resource fails.

Normally, the number of traffic groups should be same as the number of devices in an HA group for HA activeactive configurations. FortiADC comes with a predefined traffic group named ‘default’. You can use this default traffic group if you only need an HA active-passive deployment. Otherwise, you must configure your own traffic groups before making HA active-active configurations, using the instructions discussed in the following paragraphs.

Create a traffic group via the command line interface

Use the following commands to create a new traffic group: config system traffic-group edit traffic-group-1 set preempt enable set network-failover enable set failover-order 1 3 5 end next

Note: The failover sequence must be configured according to the order of node IDs. This means that if a node is dead, the next node in queue will take over handling the traffic. If you want to decide when a node should retake the traffic over from power-down to start-up, you MUST enable the Preempt option.

Create a traffic group from the Web GUI

Use the following steps to configure a traffic group from FortiADC's web interface:

1. Click System > Traffic Group.

2. Click Add to open the Traffic Group dialog.

3. Make the desired entries or selections as described in the table below.

4. Click Save when done.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

269

Chapter 12: System Management Create administrator users

 Table 98: Traffic-group parameters

Parameter Description

Traffic Group

Name

Specify a unique name for the traffic group.

Preempt Disabled by default. If enabled, the node will retake control of traffic from power-down to start-up.

Network Failover

Failover Order

Disabled by default. If enabled, the node will perform fail-over when

Follow the hint onscreen to set the failover sequence among the ports.

Create administrator users

We recommend that only network administrators—and if possible, only a single person—use the admin account.

You can configure accounts that provision different scopes of access. For example, you can create an account for a security auditor who must only be able to view the configuration and logs, but not change them.

Before you begin: l l

If you want to use RADIUS or LDAP authentication, you must have already have created the RADIUS server or

LDAP server configuration.

You must have Read-Write permission for System settings.

To create an administrator user account:

1. Go to System > Administrator.

2. Make sure the Admin tab is selected.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 99

.

5. Click Save.

 Table 99: Administrator user configuration

Settings Guidelines

Name Name of the administrator account, such as admin1 or [email protected].

Do not use spaces or special characters except the ‘at’ symbol ( @ ). The maximum length is 35 characters.

If you use LDAP or RADIUS, specify the LDAP or RADIUS username. This is the user name that the administrator must provide when logging in to the CLI or web

UI. The users are authenticated against the associated LDAP or RADIUS server.

After you initially save the configuration, you cannot edit the name.

270 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Create administrator users

Settings

Trusted Hosts

Global Admin

Chapter 12: System Management

Guidelines

Source IP address and netmask from which the administrator is allowed to log in.

For multiple addresses, separate each entry with a space. You can specify up to three trusted areas. They can be single hosts, subnets, or a mixture.

Configuring trusted hosts hardens the security of the system. In addition to knowing the password, an administrator must connect only from the computer or subnets you specify.

Trusted host definitions apply both to the web UI and to the CLI when accessed through Telnet, SSH, or the CLI console widget. Local console access is not affected by trusted hosts, as the local console is by definition not remote, and does not occur through the network.

If ping is enabled, the address you specify here is also a source IP address to which the system will respond when it receives a ping or traceroute signal.

To allow logins only from one computer, enter only its IP address and 32- or 128bit netmask:

192.0.2.1/32

2001:0db8:85a3:::8a2e:0370:7334/128

To allow login attempts from any IP address (not recommended), enter:

0.0.0.0/0

Caution: If you restrict trusted hosts, do so for all administrator accounts. Failure to do so means that all accounts are still exposed to the risk of brute force login attacks. This is because if you leave even one administrator account unrestricted

(i.e. 0.0.0.0/0), the system must allow login attempts on all network interfaces where remote administrative protocols are enabled, and wait until after a login attempt has been received in order to check that user name’s trusted hosts list.

Tip: If you allow login from the Internet, set a longer and more complex New

Password, and enable only secure administrative access protocols. We also recommend that you restrict trusted hosts to IPs in your administrator’s geographical area.

Tip: For improved security, restrict all trusted host addresses to single IP addresses of computer(s) from which only this administrator will log in.

l l

No —Default. If selected. the account can access the virtual domain specified in this configuration only.

Yes—If selected, the account can access all virtual domains.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

271

Chapter 12: System Management Create administrator users

Settings

Profile

Scope

Authentication

Server

Password

Virtual Domain

Guidelines

Select a user-defined or predefined profile. The predefined profile named super_

admin_prof is a special access profile used by the admin account. However, selecting this access profile will not confer all permissions of the admin account.

For example, the new administrator would not be able to reset lost administrator passwords.

Note: This option does not appear for the admin administrator account, which by definition always uses the super_admin_prof access profile.

Select a user-defined or predefined scope.

l l l

Local—Use the local administrator authentication server.

RADIUS—Use a RADIUS authentication server. Select the RADIUS server configuration.

LDAP—Use an LDAP authentication server. Select the LDAP server configuration.

Set a strong password for all administrator accounts. The password should be at least eight characters long, be sufficiently complex, and be changed regularly. To check the strength of your password, you can use a utility such as Microsoft’s password strength meter .

Optional. If you have enabled the virtual domain feature, select the virtual domain that this administrator can view and manage.

Configure access profiles

Access profiles provision permissions to roles. The following permissions can be assigned: l l l

Read (view access)

Read-Write (view, change, and execute access)

No access

When an administrator has only read access to a feature, the administrator can access the web UI page for that feature, and can use the get and show CLI command for that feature, but cannot make changes to the configuration.

In larger companies where multiple administrators divide the share of work, access profiles often reflect the specific job that each administrator does (“role”), such as account creation or log auditing. Access profiles can limit each administrator account to their assigned role. This is sometimes called role-based access control

(RBAC).

Table 100

lists the administrative areas that can be provisioned. If you provision read access, the role can view the web UI menu (or issue a CLI get command). If you provision read-write access, the role can save configuration changes (or issue a CLI set command).

For complete access to all commands and abilities, you must log in with the administrator account named

admin.

272 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Create administrator users Chapter 12: System Management

 Table 100: Areas of control in access profiles

Web UI Menus CLI Commands

System

Router config system diagnose hardware diagnose sniffer diagnose system execute date execute ping execute ping-options execute traceroute config router config load-balance Server Load Balance

Link Load Balance config link-load-balance

Global Load Balance

Security config global-dns-server config global-load-balance config firewall config security waf

Log & Report config log config report execute rebuild-db

* For each config command, there is an equivalent get/show command. The config commands require write permission. The get/show commands require read permission.

Before you begin: l

You must have Read-Write permission for System settings.

To configure administrator profiles:

1. Click System > Administrator.

2. Click the Access Profile tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 101 .

5. Click Save.

 Table 101: Access profile configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

273

Chapter 12: System Management

Settings

System

Networking

User

Server Load

Balance

Link Load

Balance

Global Load

Balance

Security

Log & Report

Guidelines

Create administrator users

Select one of the following: l

None—Do not provision access for the menu.

l

Read Only—Provision ready-only access.

l

Read-Write—Enable the role to make changes to the configuration.

Select one of the following: l

None—Do not provision access for the menu.

l

Read Only—Provision ready-only access.

l

Read-Write—Enable the role to make changes to the configuration.

Select one of the following: l

None—Do not provision access for the menu.

l

Read Only—Provision ready-only access.

l

Read-Write—Enable the role to make changes to the configuration.

Select one of the following: l

None—Do not provision access for the menu.

l

Read Only—Provision ready-only access.

l

Read-Write—Enable the role to make changes to the configuration.

Select one of the following: l

None—Do not provision access for the menu.

l

Read Only—Provision ready-only access.

l

Read-Write—Enable the role to make changes to the configuration.

Select one of the following: l

None—Do not provision access for the menu.

l

Read Only—Provision ready-only access.

l

Read-Write—Enable the role to make changes to the configuration.

Select one of the following: l

None—Do not provision access for the menu.

l

Read Only—Provision ready-only access.

l

Read-Write—Enable the role to make changes to the configuration.

Select one of the following: l

None—Do not provision access for the menu.

l

Read Only—Provision ready-only access.

l

Read-Write—Enable the role to make changes to the configuration.

274 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Enable password policies

Settings

Shared

Resource

Chapter 12: System Management

Guidelines

For each category, set the permission: l

None—Do not provision access for the menu.

l

Read Only—Provision ready-only access.

l

Read-Write—Enable the role to make changes to the configuration.

The super_admin_prof access profile, a special access profile assigned to the

admin account and required by it, appears in the list of access profiles. It exists by default and cannot be changed or deleted. The profile has permissions similar to the UNIX root account.

Enable password policies

A password policy is a set of rules designed to enhance computer security. A good password policy encourages users to create strong passwords and use them properly. For your network and data security and integrity, we strongly recommend the enforcement of strong password policies when using FortiADC.

To enable password policy:

1. Go to System > Administrator.

2. Select the Password Policy tab.

3. Check the Enable check box next to Password Policy..

4. Complete the configuration as described in

Table 102 .

5. Click Save.

 Table 102: Password policy configuration

Settings Guidelines

Minimum

Length

Specify the minimum length of password, which can contain 8 (default) to 32 characters in length.

Must Contain Select the options you want to apply: l

Upper Case Letter—If selected, passwords must contain upper-case letters.

l

Lower Case Letter—If selected, passwords must contain lower-case letters.

l

Number—If selected, passwords must contain numbers.

l

Non Alphanumeric —If selected, passwords must contain non-alphanumeric characters.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

275

Chapter 12: System Management Configuring SNMP

Configuring SNMP

Many organizations use SNMP (simple network management protocol) to track the health of their systems.

FortiADC supports SNMP v1, v2c, and v3.

SNMP depends on network devices that maintain standard management information bases (MIBs).

MIBs describe the structure of the management data maintained on the device. Some MIB definitions are standard for all network devices, and some are vendor and product-family specific.

The FortiADC system runs an SNMP agent to communicate with the SNMP manager. The agent enables the system to respond to SNMP queries for system information and to send SNMP traps (alarms or event messages) to the SNMP manager.

Figure 53

illustrates the basic communication.

Figure  53: SNMP communication

276

With SNMP v1 and v2c managers, you configure SNMP communities to connect FortiADC and the SNMP manager. The SNMP Manager sends the community string along with all SNMP requests. If the community string is correct, the device responds with the requested information. If the community string is incorrect, the device simply discards the request and does not respond.

Fortinet strongly recommends that you do not add FortiADC to the community named public . This default name is well-known, and attackers that attempt to gain access to your network often try this name first.

With SNMPv3 managers, you configure SNMP users to connect FortiADC and the SNMP manager. Queries and traps include username/password authentication, along with an encryption key. FortiADC implements the user security model described in RFC 3414 .

Before you begin: l

On the SNMP manager, you must verify that the SNMP manager is a member of the community to which the

FortiADC system belongs, and you must compile the necessary Fortinet-proprietary management information blocks (MIBs) and Fortinet-supported standard MIBs. For information on Fortinet MIBs, see

Appendix A: Fortinet

MIBs .

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Download SNMP MIBs Chapter 12: System Management l l

In the FortiADC interface settings, you must enable SNMP access on the network interface through which the

SNMP manager connects.

You must have Read-Write permission for System settings.

To configure SNMP system information:

1. Go to System > SNMP.

2. Click the System Information tab.

3. Complete the configuration as described in

Table 103 .

4. Save the configuration.

 Table 103: SNMP settings

Settings Guidelines

SNMP Agent Enable to activate the SNMP agent, so that the system can send traps and receive queries.

Description

Contact

Location

A description or comment about the system, such as dont-reboot. The description can be up to 35 characters long, and can contain only letters (a-z, A-Z), numbers, hyphens ( - ) and underscores ( _ ).

Contact information for the administrator or other person responsible for this system, such as a phone number (555-5555) or name (jdoe). The contact information can be up to 35 characters long, and can contain only letters (a-z, A-Z), numbers, hyphens ( - ) and underscores ( _

 ).

Physical location of the appliance, such as floor2. The location can be up to 35 characters long, and can contain only letters (a-z, A-Z), numbers, hyphens ( - ) and underscores ( _ ).

Download SNMP MIBs

FortiADC allows you to download full FortiADC and Fortinet Core MIB files, which provides more options for server load balance, global serer load balance, link load balance, and firewall with SNMP traps.

To download an SNMP MIB file:

1. Click System > SNMP.

2. Click the System Information tab.

3. In the FortiADC SNMP MIB section, click Download FortiADC MIB File or Download Fortinet Core

MIB File.

4. Follow the instructions onscreen to complete the download.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

277

Chapter 12: System Management Configure SNMP threshold

Configure SNMP threshold

To configure SNMP threshold:

1. Go to System > SNMP.

2. Click the Threshold tab.

3. Complete the configuration as described in

Table 104 .

4. Save the configuration.

 Table 104: SNMP threshold

Settings Guidelines

CPU l

Trigger—The default is 80% utilization.

l

Threshold—The default is 3, meaning the event is reported when the condition has been triggered 3 times in a short period.

l

Sample Period—The default is 600 seconds.

l

Sample Frequency—The default is 30 seconds.

Memory

Disk l

Trigger—The default is 80% utilization.

l

Threshold—The default is 3, meaning the event is reported when the condition has been triggered 3 times in a short period.

l

Sample Period—The default is 600 seconds.

l

Sample Frequency—The default is 30 seconds.

l

Trigger—The default is 90% utilization.

l

Threshold—The default is 1, meaning the event is reported each time the condition is triggered.

l

Sample Period—The default is 7200 seconds.

l

Sample Frequency—The default is 3600 seconds.

Configure SNMP v1/v2

To configure SNMP v1/v2:

1. Go to System > SNMP.

2. Click the SNMPv1/v2 tab.

3. Complete the configuration as described in

Table 105 .

4. Save the configuration.

278 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configure SNMP v1/v2 Chapter 12: System Management

 Table 105: SNMP settings

Settings Guidelines

Name Name of the SNMP community to which the FortiADC system and at least one SNMP manager belongs, such as management.

You must configure the FortiADC system to belong to at least one SNMP community so that community’s SNMP managers can query system information and receive SNMP traps.

You can add up to three SNMP communities. Each community can have a different configuration for queries and traps, and the set of events that trigger a trap.

You can also add the IP addresses of up to eight SNMP managers to each community to designate the destination of traps and which IP addresses are permitted to query the FortiADC system.

Select to enable the configuration.

Status

Queries

Traps

Events

Port number on which the system listens for SNMP queries from the SNMP managers in this community. The default is 161.

Enable queries for SNMP v1, SNMP v2c, or both.

Source (Local) port number and destination (Remote) port number for trap packets sent to

SNMP managers in this community. The default is 162.

Enable traps for SNMP v1, SNMP v2c, or both.

Select to enable SNMP event reporting for the following thresholds:

Host l

CPU—CPU usage has exceeded 80%.

l

Memory—Memory (RAM) usage has exceeded 80%.

l

Log disk usage—Disk space usage for the log partition or disk has exceeded 90%.

l

IP Address—Subnet address for the SNMP manager to receive traps and be permitted to query the FortiADC system. SNMP managers have read-only access. You can add up to 8

SNMP managers to each community. To allow any IP address using this SNMP community name to query the FortiADC system, enter 0.0.0.0/0. For security best practice reasons, however, this is not recommended.

l

Host Type—Whether the host can send queries, receive traps, or any (both).

Caution: The system sends security-sensitive traps, which should be sent only over a trusted network, and only to administrative equipment.

Note: If there are no other host IP entries, entering only 0.0.0.0/0 effectively disables traps because there is no specific destination for trap packets. If you do not want to disable traps, you must add at least one other entry that specifies the IP address of an SNMP manager.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

279

Chapter 12: System Management Configure SNMP v3

Test both traps and queries (assuming you have enabled both). Traps and queries typically occur on different port numbers, and therefore verifying one does not necessarily verify that the other is also functional.

To test queries, from your SNMP manager, query the FortiADC appliance.

To test traps, cause one of the events that should trigger a trap.

Configure SNMP v3

To configure SNMP v3:

1. Go to System > SNMP.

2. Click the SNMPv3 tab.

3. Complete the configuration as described in

Table 106 .

4. Save the configuration.

 Table 106: SNMP v3

Settings Guidelines

Name User name that the SNMP Manager uses to communicate with the SNMP Agent. After you initially save the configuration, you cannot edit the name.

Status

Security Level

Queries

Enable/disable the configuration.

l

No Auth And No Privacy—Do not require authentication or encryption.

l

Auth But No Privacy—Authentication based on MD5 or SHA algorithms. Select an algorithm and specify a password.

l

Auth And Privacy—Authentication based on MD5 or SHA algorithms, and encryption based on AES or DES algorithms. Select an Auth Algorithm and specify an Auth Password; and select a Private Algorithm and specify a Private Password.

Port number on which the system listens for SNMP queries from the SNMP managers for this user. The default is 161.

Traps

Enable queries for SNMP v3.

Source (Local) port number and destination (Remote) port number for trap packets sent to

SNMP managers for this user. The default is 162.

Enable traps for SNMP v3.

280 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates

Settings

Events

Host

Guidelines

Chapter 12: System Management

Select to enable SNMP event reporting for the following thresholds: l

CPU—CPU usage has exceeded 80%.

l

Memory—Memory (RAM) usage has exceeded 80%.

l

Log disk usage—Disk space usage for the log partition or disk has exceeded 90%.

l

System—Reserved for future use.

l

RAID—Reserved for future use.

l

HA—Reserved for future use.

l

Remote Storage—Reserved for future use.

l

IP Change—Reserved for future use.

l

Host Type—Whether the host can send queries, receive traps, or any (both).

l

IP Address—Subnet address for the SNMP manager to receive traps and be permitted to query the FortiADC system. SNMP managers have read-only access. You can add up to 8

SNMP managers to each community. To allow any IP address using this SNMP community name to query the FortiADC system, enter 0.0.0.0/0. For security best practice reasons, however, this is not recommended.

Caution: The system sends security-sensitive traps, which should be sent only over a trusted network, and only to administrative equipment.

Note: If there are no other host IP entries, entering only 0.0.0.0/0 effectively disables traps because there is no specific destination for trap packets. If you do not want to disable traps, you must add at least one other entry that specifies the IP address of an SNMP manager.

Test both traps and queries (assuming you have enabled both). Traps and queries typically occur on different port numbers, and therefore verifying one does not necessarily verify that the other is also functional.

To test queries, from your SNMP manager, query the FortiADC appliance.

To test traps, cause one of the events that should trigger a trap.

Manage and validate certificates

This section includes the following topics: l l l l

Overview

Prerequisite tasks

Manage certificates

Validate certificates

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

281

Chapter 12: System Management Manage and validate certificates

Overview

The FortiADC system is able to process the following two types of TLS/SSL traffic: l l

System administration—Administrators connect to the web UI (HTTPS connections only). When you connect to the web UI, the system presents its own default “Factory” certificate. This certificate is used only for connections to the web UI. It cannot be removed. Do not use this certificate for server load balancing traffic.

Server load balancing—Clients use SSL or TLS to connect to a virtual server. When you use FortiADC as a proxy for

SSL operations normally performed on the backend real servers, you must import the X.509 v3 server certificates and private keys that the backend servers would ordinarily use, as well as any certificate authority (CA) or intermediate CA certificates that are used to complete the chain of trust between your clients and your servers.

The FortiADC system supports all of the TLS/SSL administration methods commonly used by HTTPS servers, including: l l l l l l l l l

Server name indication (SNI) —You can require clients to use the TLS extension to include the server hostname in the TLS client hello message. Then, the FortiADC system can select the appropriate local server certificate to present to the client.

Local certificate store—A certificate store for the X.509 v3 server certificates and private keys that the backend servers would ordinarily use.

Intermediate CAs store—A store for Intermediate CAs that the backend servers would ordinarily use to complete the chain of server certificates. HTTPS transactions use intermediate CAs when the server certificate is signed by an intermediate certificate authority (CA) rather than a root CA.

Certificate Authorities (CAs) store—A store for the CA certificates that the backend servers would ordinarily use to verify the CA signature in client certificates or the signature of an OCSP Responder.

OCSP—Use Online Certificate Status Protocol (OCSP) to obtain the revocation status of certificates.

CRL—Use a Certificate Revocation List (CRL) to obtain the revocation status of certificates.

Certificate validation policy—You can configure certificate validation policies that use OCSP or CRL. These policies can be associated with load balancing profiles.

FortiADC supports all digital certificates of RSA and ECDSA key types, whether they are local certificates, remote certificates, intermediate certificates, or CA root certificates.

FortiADC supports multiple CA, CRL, and OCSP configurations.

Prerequisite tasks

You must download the certificates from your backend servers so that you can import them into the FortiADC system.

This example shows how to download a CA certificate from Microsoft Windows 2003.

To download a CA certificate from Microsoft Windows 2003 Server:

1. Go to https://<ca-server_ipv4>/certsrv/.

where <ca-server_ipv4> is the IP address of your CA server.

2. Log in as Administrator. Other accounts may not have sufficient privileges.

The Microsoft Certificate Services home page appears.

Figure 54

is an example of this page.

Figure  54:  Welcome page

282 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates Chapter 12: System Management

3. Click the Download CA certificate, certificate chain, or CRL link to display the Download a CA Certificate,

Certificate Chain, or CRL page.

Figure 55

is an example of this page.

4. From Encoding Method, select Base64.

5. Click Download CA certificate.

Figure  55:  Download a CA Certificate, Certificate Chain, or CRL page

Manage certificates

This section discusses the following tasks you can perform on the System > Certificate > Manage Certificates page: l l l

Generating a certificate signing request

Importing local CAs

Importing intermediate CAs

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

283

Chapter 12: System Management Manage and validate certificates l l

Creating an intermediate CA group

Creating a local CA group

Generating a certificate signing request

Many commercial certificate authorities (CAs) provide websites where you can generate your own certificate signing request (CSR). A CSR is an unsigned certificate file that the CA will sign. When a CSR is generated, the associated private key that the appliance will use to sign and/or encrypt connections with clients is also generated.

If your CA does not provide this service, or if you have your own private CA such as a Linux server with OpenSSL, you can use FortiADC to generate a CSR and private key. This CSR can then be submitted for verification and signing by the CA.

Before you begin: l

You must have Read-Write permission for System settings.

To generate a certificate signing request:

1. Go to System > Certificate > Manage Certificates.

2. Click the Local Certificate tab.

3. Click Generate to display the configuration editor.

4. Complete the configuration as described in

Table 107 .

5. Click Save when done.

The system creates a private and public key pair. The generated request includes the public key of the

FortiADC appliance and information such as the IP address, domain name, or email address. The FortiADC appliance private key remains confidential on the FortiADC appliance. The Status column of the new CSR entry is Pending.

6. Select the row that corresponds to the certificate request.

7. Click Download.

Standard dialogs appear with buttons to save the file at a location you select. Your web browser downloads the certificate request (.csr) file.

8. Upload the certificate request to your CA.

After you submit the request to a CA, the CA will verify the information in the certificate, give it a serial number, an expiration date, and sign it with the public key of the CA.

9. If you are not using a commercial CA whose root certificate is already installed by default on web browsers, download your CA’s root certificate, and then install it on all computers that will be connecting to your FortiADC appliance. Otherwise, those computers might not trust your new certificate.

10. After you've received the signed certificate from the CA, import the certificate into the FortiADC system.

 Table 107: CSR configuration

Settings Guidelines

Generate Certificate Signing Request

284 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates Chapter 12: System Management

Settings Guidelines

Certification Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. The maximum length is 35 characters.

Note: This is the name of the CSR file, not the host name/IP contained in the certificate’s Subject: line.

Subject Information

ID Type Select the type of identifier to use in the certificate to identify the virtual server: l

Host IP—The static public IP address of the FortiADC virtual server in the IP Address field. If the FortiADC appliance does not have a static public IP address, use the email or domain name options instead.

Note: Do NOT use this option if your network has a dynamic public IP address. Your web browser will display the “Unable to verify certificate” or similar error message when your public IP address changes.

l

Domain Name—The fully qualified domain name (FQDN) of the FortiADC virtual server, such as www.example.com. This does not require that the IP address be static, and may be useful if, for example, your network has a dynamic public IP address and therefore clients connect to it via dynamic DNS. Do not include the protocol specification (http://) or any port number or path names.

l

E-Mail—The email address of the owner of the FortiADC virtual server. Use this if the virtual server does not require either a static IP address or a domain name.

Depending on your choice for ID Type, related options appear.

IP Address Enter the static IP address of the FortiADC appliance, such as 10.0.0.1.The IP address should be the one that is visible to clients. Usually, this should be its public IP address on the Internet, or a virtual IP that you use NAT to map to the appliance’s IP address on your private network.

This option appears only if ID Type is Host IP.

Domain Name

Email

Enter the FQDN of the FortiADC appliance, such as www.example.com. The domain name must resolve to the IP address of the FortiADC appliance or backend server according to the DNS server used by clients. (If it does not, the clients’ browsers will display a Host name mismatch or similar error message.)

This option appears only if ID Type is Domain Name.

Enter the email address of the owner of the FortiADC appliance, such as [email protected]. This option appears only if

ID Type is E-Mail.

Distinguished Information

Organization Unit Name of organizational unit (OU), such as the name of your department. This is optional. To enter more than one OU name, click the + icon, and enter each OU separately in each field.

Organization Legal name of your organization.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

285

Chapter 12: System Management Manage and validate certificates

Settings

Locality (City)

State/Province

Country/Region

Email

Key Information

Key Type

Guidelines

City or town where the FortiADC appliance is located.

State or province where the FortiADC appliance is located.

Country where the FortiADC appliance is located.

E-mail address that may be used for contact purposes, such as [email protected].

Select either of the following: l l

RSA

ECDSA

Key Size/ Curve

Name

For RSA key, select one of the following key sizes: l l l l l

512 Bit

1024 Bit

1536 Bit

2048 Bit

4096 Bit.

Note: Larger keys use more computing resources, but provide better security.

For ECDSA, select one of the following curve names: l l l prime256v1 secp384r1 secp521r1

Enrollment Information

Enrollment Method l

File-Based—You must manually download and submit the resulting certificate request file to a CA for signing. Once signed, upload the local certificate.

Online SCEP—The FortiADC appliance automatically uses HTTP to submit the request to the simple certificate enrollment protocol (SCEP) server of a CA, which will validate and sign the certificate. For this selection, two options appear. Enter the CA Server

URL and the Challenge Password.

Importing local certificates

You can import (upload) the following types of X.509 server certificates and private keys into the FortiADC system: l l

Base64-encoded

PKCS #12 RSA-encrypted

Before you begin:

286 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates Chapter 12: System Management l l l

You must have Read-Write permission for System settings.

You must have downloaded the certificate and key files and be able to browse to them so that you can upload them.

To import a local certificate:

1. Go to System > Certificate > Manage Certificates.

2. Click the Local Certificate tab.

3. Click Import to display the configuration editor.

4. Complete the configuration as described in

Table 108 .

5. Click Save when done.

 Table 108: Local certificate import configuration

Settings Guidelines

Type Click the down arrow to select one of the following from the drop-down menu: l

Local Certificate—An unencrypted certificate in PEM format.

l

PKCS12 Certificate—A PKCS #12 password-encrypted certificate with the key in the same file.

l

Certificate—An unencrypted certificate in PEM format. The key is in a separate file.

Note: Additional fields are displayed depending on your selection.

Local Certificate

Certificate File Browse for and upload the certificate file that you want to use.

PKCS12 Certificate

Certificate Name Specify the certificate name that can be referenced by other parts of the configuration, such as www_example_com . The maximum length is 35 characters. Do not use spaces or special characters.

Certificate File

Password

Browse for and upload the certificate file that you want to use.

Specify the password to encrypt the file in local storage.

Certificate

Certificate Name Specify the name that can be referenced by other parts of the configuration, such as www_ example_com . The maximum length is 35 characters. Do not use spaces or special characters.

Certificate File

Key File

Password

Browse for and upload the certificate file that you want to use.

Browse for and upload the corresponding key file.

Specify the password to encrypt the files in local storage.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

287

Chapter 12: System Management Manage and validate certificates

Creating a local certificate group

Local certificate groups are used to facilitate the configuration of profiles that are associated with a virtual server.

Before you begin, you must: l l

Have Read-Write permission for System settings.

Have already added the certificates to the local certificate store and intermediate CAs to the intermediate certificate store, and created an intermediate CA group.

To create a local certificate group:

1. Go to System > Certificate > Manage Certificates.

The configuration page displays the Local Certificate Group tab.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 109 .

4. Click Save when done.

 Table 109: Local certificate group configuration

Settings Guidelines

Group Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. The maximum length is 35 characters. After you initially save the configuration, you cannot edit the name.

Group Member

Local Certificate Select the certificate to add to the group.

Select the Intermediate CA group to add to the local group. (Optional) Intermediate CA group

Default Check this check box only if you want to make this local certificate the default for the group.

Note: Only one local certificate can be set as the default in a group. If one local certificate has already been set as the default, you must disable (uncheck) it in order to set another one as the default. By default, the first local certificate in the group becomes the default if no local certificate is set as the default,

Importing intermediate CAs

An intermediate CA store is for the intermediate CA certificates that the backend servers would ordinarily use to complete the chain of server certificates, if any. HTTPS transactions use intermediate CAs when the server certificate is signed by an intermediate certificate authority (CA) rather than a root CA.

Before you begin, you must: l l

Have Read-Write permission for System settings.

Know the URL of an SCEP server or have downloaded the certificate and key files and be able to browse to them so that you can upload them.

288 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates Chapter 12: System Management

To import an intermediate CA:

1. Go to System > Certificate > Manage Certificates.

2. Click the Intermediate CA tab.

3. Click Import to display the configuration editor.

4. Complete the configuration as described in

Table 110 .

5. Click Save when done.

6. Repeat Steps 3 through 5 to import as many intermediate CAs as needed.

 Table 110: Intermediate CA import configuration

Settings Guidelines

Certificate Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces.The maximum length is 35 characters. After you initially save the configuration, you cannot edit the name.

Import Method l

SCEP—Use Simple Certificate Enrollment Protocol. SCEP allows routers and other intermediary network devices to obtain certificates.

l

File—Upload a file.

SCEP

SCEP URL Specify the URL of the SCEP Server.

Enter the identifier of the CA on the SCEP server, if applicable.

CA Identifier

File

Certificate File

Key File

Password

Browse for and upload the the certificate file on the local machine.

Browse for the corresponding PEM key file that you want to upload.

Note: Both a certificate file and key file are required for the intermediate CA used in SSL decryption by the forward proxy.

Password to encrypt the files in local storage.

Creating an intermediate CA group

You select an intermediate CA group configuration object in the local certificate group, so you should configure in the group all the Intermediate CAs that would be needed by the backend servers that belong to a single virtual server.

Before you begin: l l

You must have Read-Write permission for System settings.

You must have already added the Intermediate CAs to the Intermediate CA certificate store.

To create an Intermediate CA group:

1. Go to System > Certificate > Manage Certificates.

2. Click the Intermediate CA Group tab.

3. Click Add to display the configuration editor.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

289

Chapter 12: System Management Manage and validate certificates

4. Complete the configuration as described in

Table 111 .

5. Save the configuration.

 Table 111: Intermediate CA group configuration

Settings Guidelines

Group Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. The maximum length is 35 characters. After you initially save the configuration, you cannot edit the name.

Group Member

Intermediate CA

Default

Select the Intermediate CA to add to the group,

Check this check box only if you want to make this intermediate CA the default for the group.

Note: Only one intermediate CA can be set as the default in an intermediate CA group. If one intermediate CA has already been set as the default, you must disable (uncheck) it in order to set another one as the default. By default, the first intermediate CA in a group becomes the default if no intermediate CA is set as the default,

Validating certificates

This section discusses the ways to validate client certificates and real server certificates from within the FortiADC system. It covers the following topics: l l l l l l

Importing CAs

Creating a CA group

Importing remote certificates

Importing CRLs

Adding OCSPs

Validating certificates

Configure a certificate verification object

To be valid, a client certificate must meet the following criteria: l l l

Must not be expired or not yet valid

Must not be revoked by either certificate revocation list (CRL) or, if enabled, online certificate status protocol

(OCSP)

Must be signed by a certificate authority (CA) whose certificate you have imported into the FortiADC appliance

Certificate verification rules specify the CA certificates to use when validating client certificates, and they specify a CRL and/or OCSP server, if any, to use for certificate revocation checking.

You select a certificate verification configuration object in the profile configuration for a virtual server or in a realserver-SSL profile. If the client presents an invalid certificate during the authentication phase of a SSL/TLS session initiation, the FortiADC system will not allow the connection.

Before you begin: l l

You must have Read-Write permission for System settings.

You must have already created CA, OCSP or CRL configuration.

290 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates Chapter 12: System Management

After you have configured a certificate verification object, you can include it in a virtual server profile or a Real

Server SSL Profile, and it will be used to validate certificates presented to FortiADC.

To configure a certificate verification object:

1. Go to System > Certificate > Verify.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 112 .

4. Click Save when done. The newly certificate verification object appears on the Verify page.

5. Click the Edit icon in the far-right column (or double-click the entry) to open the configuration editor.

6. In the Group Member panel, select the CA, OCSP, or CRL of interest.

7. Click Save when done.

 Table 112: Certificate verify configuration

Settings Guidelines

Name Enter a unique name for the certificate verification object that you are creating. Valid characters are A-Z, a-z, 0-9, _, and -. The maximum length is 35 characters. No space is allowed.

verify-depth Note: CLI only.

The default value is 1, but you may select any value from 0 to 255.

customizeerror-ignore

Note: This option is available from the CLI only.

Enable or disable customize-error-ignore. The option is disabled by default. If it's enabled, you are required to select the ca-ignore-errors and cert-ignoreerrors , as described below.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

291

Chapter 12: System Management Manage and validate certificates

Settings ca-ignoreerrors

Guidelines

Note: CLI only. When customize-error-ignore is enabled, the following options become available for you to choose from: l

UNABLE_TO_GET_ISSUER_CERT l

UNABLE_TO_GET_CRL l

CERT_NOT_YET_VALID l

CERT_HAS_EXPIRED l

CRL_NOT_YET_VALID l

CRL_HAS_EXPIRED l

DEPTH_ZERO_SELF_SIGNED_CERT l

SELF_SIGNED_CERT_IN_CHAIN l

UNABLE_TO_GET_ISSUER_CERT_LOCALLY l

UNABLE_TO_VERIFY_LEAF_SIGNATURE l

CERT_CHAIN_TOO_LONG l

INVALID_CA l

INVALID_PURPOSE l

CERT_UNTRUSTED l

CERT_REJECTED

Note: If customize-error-ignore is disabled (by default), the CLI shows the following: ca-ignore-errors: UNABLE_TO_GET_ISSUER_CERT UNABLE_TO_GET_CRL

CERT_UNTRUSTED

292 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates Chapter 12: System Management

Settings cert-ignoreerrors

Guidelines

Note: CLI only. When customize-error-ignore is enabled, the following options become available for you to choose from: l

UNABLE_TO_GET_ISSUER_CERT l

UNABLE_TO_GET_CRL l

CERT_NOT_YET_VALID l

CERT_HAS_EXPIRED l

CRL_NOT_YET_VALID l

CRL_HAS_EXPIRED l

DEPTH_ZERO_SELF_SIGNED_CERT l

SELF_SIGNED_CERT_IN_CHAIN l

UNABLE_TO_GET_ISSUER_CERT_LOCALLY l

UNABLE_TO_VERIFY_LEAF_SIGNATURE l

CERT_CHAIN_TOO_LONG l

INVALID_CA l

INVALID_PURPOSE l

CERT_UNTRUSTED l

CERT_REJECTED

Note: If customize-error-ignore is disabled (by default), the CLI shows the following: cert-ignore-errors: UNABLE_TO_GET_CRL

Group Member

CA

OCSP

CRL

Select a CA (Required).

Select an OCSP (Optional).

Select a CRL (Optional).

Importing CRLs

A certificate revocation list (CRL) is a file that contains a list of revoked certificates with their serial numbers and their revocation dates. The file also contains the name of the issuer of the CRL, the effective date, and the next update date. By default, the shortest validity period of a CRL is one hour.

Some potential reasons for certificates to be revoked include: l l l

A CA server was hacked and its certificates are no longer trustworthy.

A single certificate was compromised and is no longer trustworthy.

A certificates has expired and is not supposed to be used past its lifetime.

You can either upload a CRL file from your local machine or specify the URL of the CRL file

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

293

Chapter 12: System Management Manage and validate certificates

Online Certificate Status Protocol (OCSP) is an alternative to CRL. OCSP is useful when you do not want to deploy CRL files, for example, or want to avoid the public exposure of your PKI structure. For more information, see

Adding OCSPs

.

Before you begin, you must: l l

Have Read-Write permission for System settings.

Know the URL of a CRL server or have the CRL files downloaded onto your local machine.

To import a CRL file:

1. Go to System > Certificate > Verify.

2. Click the CRL tab.

3. Click Import to display the configuration editor.

4. Complete the configuration as described in

Table 113 .

5. Click Save when done.

6. Repeat Steps 3 through 5 to import as many CRLs as needed.

 Table 113: CRL configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. The maximum length is 35 characters. After you initially save the configuration, you cannot edit the name.

Import Method

HTTP

SCEP

If selected, FortiADC will download the CRL file from an HTTP server. You must specify the

HTTP URL.

If selected, FortiADC will download the CRL file from an SCEP server. You must specify the

SCEP URL.

File If selected, you will need to browse for the CRL file on your local machine and upload it into

FortiADC.

Adding OCSPs

FortiADC supports the validation of client digital certificates using Online Certificate Status Protocol (OCSP). In such a configuration, FortiADC contacts the OCSP Responder (i.e., the certificate management system), which maintains the current revocation status information of client certificates or backend server certificates, to determine the current status of digital certificate presented to it. It can then decide whether to allow or block the

TLS/SSL connections, based on the status of the client certificates provided by the OCSP Responder.

OCSP enables you to validate certificate status by real-time online query, rather than by importing certificate revocation list (CRL) files. Since distributing and installing CRL files can be a considerable burden in large organizations, and because delay between the release and install of the CRL represents a vulnerability window, this can often be preferable.

294 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates Chapter 12: System Management

During the process of TLS/SSL handshake, FortiADC will send an OCSP status request for the client certificate or backend server certificate to the OCSP Responder. The OCSP Responder then verifies whether the status request contains the information required to identify the certificate and returns a signed response with the status of the inquired certificate, which could be one of the following: l l l

Good = The certificate has not yet been revoked.

Revoked = The certificate has been revoked.

Unknown = The OCSP Responder has no information about the requested certificate, and therefore is able to determine its status.

Note: FortiADC only accepts client certificates in"Good" status as determined by the OCSP Responder as valid.

To use OCSP queries, you must first install the certificates of trusted OCSP servers.

Before you begin, you must: l l l l

Have Read-Write permission for System settings.

Know the URL of an OCSP server

Have downloaded the certificate and key files and be able to browse to them so that you can upload them.

Have already imported the OCSP signing certificates into FortiADC. See

Importing remote certificates

and

Creating a CA group

.

To add an OCSP:

1. Go to System > Certificate > Verify.

2. Click the OCSP tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 114 .

5. Click Save when done.

6. Repeat Steps 3 through 5 to add as many OCSPs as needed.

 Table 114: OCSP certificate configuration

Settings Guidelines

Name Enter a unique name for the client certificate validation object that uses OCSP. Valid characters are A-Z, a-z, 0-9, _, and -. The maximum length is 35 characters. No space is allowed.

OCSP URL Specify the URL of the OCSP Responder.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

295

Chapter 12: System Management Manage and validate certificates

Settings

Verify Others

Remote Certificates

CA Chain

Criteria Check

Accept Trusted

Root CA

Guidelines

Upon receiving the OCSP response from the OCSP server, FortiADC first performs OCSP basic verify to validate the OCSP responder's signature.

Enable (default)—When Verify Others is enabled, you must select a remote certificate

(see Remote Certificates below). The OCSP basic verify succeeds when the selected remote certificate matches the OCSP response signature, otherwise, the OCSP basic verify will fail and the TLS/SSL connection will be terminated.

Disable—When Verify Others is disabled, you must select a CA Group. the OCSP basic verify will be carried out in the following sequence:

1. The OCSP response signing certificate must be one of the certificates in the CA group or a certificate issued by one of the certificates in the CA group. Also, the certificates must form a chain from the OCSP signing certificate all the way to a self-signed root

CA. Otherwise, the OCSP basic verify will fail.

2. If Step 1 (above) is successful, the validation will proceed like this: If the Criteria Check field is selected (enabled), then the OCSP signing certificate can be either the issuing

CA of the certificate whose status FortiADC must validate, or a dedicated OCSP signing certificate issued by this issuing CA. The validation succeeds if this criterion is met. Otherwise, the validation process will move onto Step 3 (below).

3. If the OCSP signing certificate is issued by one of the certificates in the CA group, but is not a dedicated OCSP signing certificate, then the validation will proceed like this: If the root CA of this OCSP signing certificate is a trusted self-signed root CA and the

"Accept Trusted Root CA" field is selected (enabled), then the validation will succeed. Otherwise, the validation will fail.

Select the client certificate of which you'd like to verify the signature of the OCSP Responder that signs it. Note: This option is applicable only when Verify Others is enabled. You MUST select a remote certificate which must have been imported into FortiADC ahead of time. See

Importingremote certificates .

Click the down arrow and select a CA group from the list menu. Note: This becomes available only when Verify Others is disabled. In that case, you must select a CA chain (i.e., CA group). It's highly recommended that you have CA groups configured in advance to use this option. See

Creating a CA group

.

Enable/Disable ssuer-criteria check. Note: This option comes in hand in hand with CA Chain, and is only available when Verify Others is disabled (see Verify Others above). It is enabled by default, but you can uncheck it if you do not want to validate the certificate issuer's identity.

Enalbe/Disable accept trusted root CA. Note: This option becomes available only when Criteria

Check is enabled (see Criteria Check above). It is enabled by default, in which case FortiADC will accept trusted root CA in the validation process. Uncheck it if you do not want to use this feature.

Importing remote certificates

Remote certificates are certificates with no private keys. For dynamic certification revocation, you must verify them through an OCSP server. This option allows you to import remote (OCSP) certificates into FortiADC and

296 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates Chapter 12: System Management use them to verify the OCSP response signature.

Before you begin, you must: l l

Have Read-Write permission for System settings.

Have the remote certificates downloaded onto you local machine so that you can upload it to FortiADC.

To import a remote certificate:

1. Go to System > Certificate > verify.

2. Click the Remote tab.

3. Click Import to display the configuration editor.

4. Complete the configuration as described in

Table 115 .

5. Click Save when done.

6. Repeat Steps 3 through 5 to import as many remote certificates as needed.

 Table 115: Remote certificate configuration

Settings Guidelines

Name Enter a unique name for the remote certificate you want to import. Valid characters are A-Z, az , 0-9, _, and -. The maximum length is 35 characters. No space is allowed.

OCSP Signing Certificates

Browse for and upload the remote certificate file of interest.

Once an OCSP signing certificate has been uploaded into FortiADC, the name of the certificate file shows up under the Remote tab. You can view or remove the certificate from this page using the corresponding icons in the far-right column of the page.

Importing CAs

The certificate authority (CA) store is used to authenticate the certificates of other devices. When the FortiADC system is presented with a certificate, it examines the CA’s signature, comparing it with the copy of the CA’s certificate already imported into the CA store. If the public key matches the private key, the client's or device’s certificate is considered legitimate.

In web browsers, the CA store includes trusted root CAs that can be used to establish trust with servers that have certificates signed by the issuing CAs. In an SSL forward proxy deployment, FortiADC acts as a proxy for the client, so you might want to import client browser CAs, create a CA group, and create a certficate verification policy to verify server certificates against this group. You can examine the CA store in common web browsers to come up with a good list of CAs to download and then import. The following list has links for some common web browsers: l l l

Apple iOS: https://support.apple.com/en-us/HT204132

Google Chrome and Mozilla Firefox:  https://wiki.mozilla.org/CA:IncludedCAs

Microsoft Internet Explorer: https://technet.microsoft.com/en-us/library/dn265983.aspx

You must do one of the following: l l

Import the certificates of the signing CA and all intermediate CAs to FortiADC’s store of CA certificates.

In all personal certificates, include the full signing chain up to a CA that FortiADC knows in order to prove that the clients’ certificates should be trusted.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

297

Chapter 12: System Management Manage and validate certificates l

If the signing CA is not known, that CA’s own certificate must likewise be signed by one or more other intermediary

CAs, until both the FortiADC appliance and the client or device can demonstrate a signing chain that ultimately leads to a mutually trusted (shared “root”) CA that they have in common. Like a direct signature by a known CA, this proves that the certificate can be trusted.

Before you begin, you must: l l

Have Read-Write permission for System settings.

Know the URL of an SCEP server or have downloaded the certificate and key files and be able to browse to them so that you can upload them.

To import a CA:

1. Go to System > Certificate > Verify.

2. Click the CA tab.

3. Click Import to display the configuration editor.

4. Complete the configuration as described in

Table 116 .

5. Click Save when done.

6. Repeat Steps 3 through 5 to import as many CAs as needed.

 Table 116: CA import configuration

Settings Guidelines

Certificate Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. The maximum length is 35 characters. No space is allowed.

Import Method l

SCEP—Use Simple Certificate Enrollment Protocol. SCEP allows routers and other intermediary network devices to obtain certificates.

l

File—Upload a file.

SCEP

SCEP URL

CA Identifier

File

Local PC

Enter the URL of the SCEP server.

Enter the identifier for a specific CA on the SCEP server.

Browse for the certificate file on the local machine and upload it to FortiADC.

Creating a CA group

CA groups are only used to verify the signature of the OCSP Responder.

Include in the CA group all of the CAs for the pool of backend servers to be associated with a single virtual server.

Before you begin, you must: l l

Have Read-Write permission for System settings.

Have already added the CAs to the CA certificate store.

298 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Manage and validate certificates Chapter 12: System Management

To create a CA group:

1. Go to System > Certificate > Verify.

2. Click the CA Group tab.

3. Click Add to display the configuration editor.

4. Name the CA group and click Save when done. The new CA group appears on the CA Group page.

5. Click the Edit icon in the far-right column (or double-click the CA group) to bring up the configuration editor.

6. Click Add.

7. Complete the configuration as described in

Table 117 .

8. Click Save when done.

9. Repeat Steps 6 through 8 to add as many CAs to the group as needed.

 Table 117: CA group configuration

Settings Guidelines

Group Name Specify a unique name for the CA group that you are creating. Valid characters are A-Z, a-z, 0-

9 , _, and -. The maximum length is 35 characters. No space is allowed.

Group Member

CA Click the down arrow and select the desired CA from the list menu to add to the group.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

299

Chapter 13: Logging and Reporting

Chapter 13: Logging and Reporting

Using the event log

This chapter includes the following topics: l l l l l l l l l l l l

Using the event log

Using the security log

Using the *traffic log

Configuring local log settings

Configuring syslog settings

Enabling real-time statistics

Configuring high speed logging

Configuring alert email settings

Configuring reports

Configuring Report Queries

Configuring fast reports

Using reports

Using the event log

The Event Log table displays logs related to system-wide status and administrator activity.

Figure 56

shows the Event log table. By default, the log is filtered to display configuration changes, and the table lists the most recent records first.

You can use the following category filters to review logs of interest: l l l l l l l l l

Configuration—Configuration changes.

System—System operations, warnings, and errors.

Admin—Administrator actions.

User—Authentication results logs.

Health Check—Health check results and client certificate validation check results.

SLB—Notifications, such as connection limit reached.

LLB—Notifications, such as bandwidth thresholds reached.

GLB—Notifications, such as the status of associated local SLB and virtual servers.

Firewall—Notifications, such as SNAT source IP pool is using all of its addresses.

300 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the event log

Figure  56: Event log

Chapter 13: Logging and Reporting

Within each category, you can use Filter Setting controls to filter the table based on the values of matching data.

You can use the Download link to download the logs. Filters are applied to the set that is collected for download.

 Table 118: Filter settings

Category Filters Data Filters

Configuration l

Date l

Time l

Priority (Log Level) l

User l

Action

System l

Date l

Time l

Priority (Log Level) l

Submod l

User l

Action l

Status

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

301

Chapter 13: Logging and Reporting

Category Filters

Admin

User

Health Check

Data Filters l

Date l

Time l

Priority (Log Level) l

User l

Action l

Status l

Date l

Time l

Log Level l

User l

Action l

Status l

Date l

Time l

Priority (Log Level) l

Module l

Policy l

Group l

Member l

Status

SLB, LLB, GLB, Firewall l

Date l

Time l

Priority (Log Level) l

Module l

Policy l

Group l

Member l

Status l

Action

The last column in each table includes a link to log details.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

To view and filter the log:

1. Go to Log & Report > Log Browsing.

The log page displays the Event Logs tab.

2. Select the category of interest.

302

Using the event log

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the event log Chapter 13: Logging and Reporting subtype pri vd msg_id user ui action cfgpath

3. Click Filter Setting to display the filter tools.

4. Use the tools to filter on key columns and values.

5. Click OK to apply the filter and redisplay the log.

Table 119

to

Table 124

list the log columns for the event log types in the order in which they appear in the log.

 Table 119: Event log — Config

Column Example Description date date=2014-12-01 Log date.

time log_id type time=15:50:37 log_id=0000000085 type=event

Log time.

Log ID.

Log type.

cfgobj cfgattr logdesc msg subtype=config pri=information vd=root msg_id=522000 user=admin ui=GUI(172.30.144.8) action=add cfgpath=firewall qos-queue cfgobj=name cfgattr=queue msg=added a new entry 'queue' for

"firewall qos-queue" on domain

"root"

Log subtype.

Log level.

Virtual domain.

Message ID.

User that performed the operation.

User interface from which the operation was performed.

Administrator action: add, edit, delete.

Configuration that was changed.

Configuration setting changed.

Configuration value changed.

logdesc=Change the configuration A column added for compatibility with FortiAnalyzer.

Log message.

 Table 120: Event log — System

Column Example date date=2014-12-01 time time=16:00:09

Description

Log date.

Log time.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

303

Column log_id type subtype pri vd msg_id submod user ui action status logdesc msg

Chapter 13: Logging and Reporting

Example log_id=0003000011 type=event subtype=system pri=error vd=root msg_id=522008 submod=update user=none ui=none action=update status=failure logdesc=Update

FortiGuard msg=

Using the event log

Description

Log ID.

Log type.

Log subtype.

Log level.

Virtual domain.

Message ID.

System submodule.

None.

None.

System action, such as (firmware) update, HA join and leave, and the like.

Status message: success or failure.

A column added for compatibility with FortiAnalyzer.

Log message (if any).

 Table 121: Event log — Admin

Column Example date date=2014-12-01 time log_id type subtype time=15:44:38 log_id=0001016834 type=event subtype=admin pri vd msg_id user pri=information vd=root msg_id=521996 user=admin

Description

Log date.

Log time.

Log ID.

Log type.

Log subtype.

Log level.

Virtual domain.

Message ID.

User that performed the operation.

304 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the event log

Column ui action status reason logdesc msg

Chapter 13: Logging and Reporting

Example ui=GUI(172.30.144.8) action=logout statue=success reason=none logdesc=Admin login msg=User admin logout from GUI(172.30.144.8).

Description

User interface from which the operation was performed.

System action.

Status message: success or failure.

Reason string (if any).

A column added for compatibility with FortiAnalyzer.

Log message.

subtype pri vd msg_id user usergrp policy action

 Table 122: Event log — User

Column Example date date=2014-12-01 time log_id type time=15:44:38 log_id=0001016834 type=event status reason logdesc msg subtype=user pri=information vd=root msg_id=521996 user=user1 usergrp=customerABC policy=membersOnly action=login statue=success reason=none logdesc= msg=User admin logout from GUI(172.30.144.8).

Description

Log date.

Log time.

Log ID.

Log type.

Log subtype.

Log level.

Virtual domain.

Message ID.

User name

User group.

Authentication policy.

System action.

Status message: success or failure.

Reason string (if any).

A column added for compatibility with FortiAnalyzer.

Log message.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

305

Chapter 13: Logging and Reporting Using the event log vd msg_id module policy group member attrtype attrname

 Table 123: Event log — Health Check

Column Example Description date date=2015-12-30 Log date.

time log_id time=12:07:47 log_id=2002502

Log time.

Log ID.

type subtype pri type=event subtype=health pri=alert

Log type.

Log subtype.

Log level.

action status logdesc msg vd=root msg_id=35661161 smodule=slb policy=HTTPS_VIP group=test2 member=1 attrtype=none attrname=none action=health_check status=failure

Virtual domain.

Message ID.

System module: slb, llb.

Virtual server configuration to which the event applies.

Real server pool group or link group.

Real server member ID or gateway ID.

Attribute type (if any).

Attribute type (if any).

Type of message: health check.

Health check result: success or failure.

logdesc=SLB Virtual server change state

A column added for compatibility with FortiAnalyzer.

msg=Virtual server

HTTPS_VIP, status is down

Log message.

 Table 124: Event log — SLB, LLB, GLB, Firewall

Column Example Description date date=2016-01-13 Log date.

time time=08:30:12 Log time.

306 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

group member attrtype attrname action status logdesc

Column log_id type subtype pri vd msg_id policy msg

Using the security log Chapter 13: Logging and Reporting

Example log_id=0005001704 type=event subtype=slb pri=alert vd=root msg_id=115208 policy=L7vs_tcps

Description

Log ID.

Log type.

Log subtype: dns (glb), slb, llb, fw.

Log level.

Virtual domain.

Message ID.

Policy to which the event applies—the virtual server configuration name, for example.

group=none member=none attrtype=none attrname=none

Real server pool group or link group.

Real server member ID or gateway ID.

Additional configuration attributes, if applicable.

Additional configuration values, if applicable.

action=ssl status=failure logdesc=SLB SSL Handshake

Module that took action.

Status of action.

A column added for compatibility with FortiAnalyzer.

msg=Client 31.1.1.103

failed to establish SSL connection with VS 41.1.1.123

Log message.

The value "none" appears in logs when the value is irrelevant to the status or action.

For example, a health check log for a virtual server shows "none" in the Group and

Member columns even though its real server pool and members are known—these details are just not relevant. Likewise, a health check log for a real server pool member shows "none" in the Policy column even though its virtual server is known.

Using the security log

The Security Log table displays logs related to security features.

Figure 57

shows the security log table. By default, the log is filtered to display IP Reputation logs, and the table lists the most recent records first.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

307

Chapter 13: Logging and Reporting

You can use the following category filters to review logs of interest: l l l l

IP Reputation—Traffic logged by the IP Reputation feature

DoS—Traffic logged by the SYN Flood feature

WAF—Traffic logged by the WAF feature

Geo—Traffic logged by the Geo IP block list feature

Figure  57: Security log

Using the security log

308

Within each category, you can use Filter Setting controls to filter the table based on the values of matching data: l l l l l l l l l l

Date

Time

Proto

Service

Src

Src_port

Dst

Dst_port

Vs Name

Action

The last column in each table includes a link to log details.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

To view and filter the log:

1. Go to Log & Report > Log Browsing.

2. Click the Security Logs tab to display the attack log.

3. Click Filter Settings to display the filter tools.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the security log Chapter 13: Logging and Reporting count severity proto service src src_port dst dst_port policy action srccountry dstcountry msg

4. Use the tools to filter on key columns and values.

5. Click OK to apply the filter and redisplay the log.

Table 125

to

Table 128

list the log columns in the order in which they appear in the log.

 Table 125: IP Reputation log

Column Example Description date date=2014-12-02 Log date.

time log_id time=10:27:01 log_id=0200004230

Log time.

Log ID.

type subtype pri vd msg_id type=attack subtype=ip_reputation pri=warning vd=root msg_id=13065998

Log type: attack.

Log subtype: ip_reputation.

Log level.

Virtual domain.

Message ID.

count=1 severity=high proto=6 service=http src=4.4.4.4

src_port=49301 dst=2.2.2.2

dst_port=80 policy=vs1 action=deny srccountry=cn dstcountry=us msg=msg

For IP reputation, count=1.

Rule severity.

Protocol.

Service.

Source IP address.

Source port.

Destination IP address.

Destination port.

Virtual server name.

Policy action.

Location of the source IP address.

Location of the destination IP address.

Security rule name, category, subcategory, and description of the attack.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

309

Chapter 13: Logging and Reporting vd msg_id count severity proto service src src_port

 Table 126: DoS log

Column Example date date=2014-12-02 time log_id time=10:27:01 log_id=0200004230 type subtype pri type=attack subtype=synflood pri=warning vd=root msg_id=13065998 count=1 severity=high proto=0 service=http src=173.177.99.94

src_port=49301 dst dst_port policy action srccountry dstcountry msg dst=10.61.2.100

dst_port=80 policy=unknown action=deny srccountry=cn dstcountry=us msg=msg

Using the security log

Description

Log date.

Log time.

Log ID.

Log type: attack.

Log subtype: synflood.

Log level.

Virtual domain.

Message ID.

For DoS, number of timeouts sent per destination.

Always “high” for DoS.

Protocol.

Service.

Source IP address.

Source port.

Destination IP address.

Destination port.

For DoS, policy=unknown.

Policy action.

Location of the source IP address.

Location of the destination IP address.

Security rule name, category, subcategory, and description of the attack.

310 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the security log dst dst_port policy action sigid subcat vd msg_id count severity proto service src src_port

 Table 127: WAF log

Column Example date date=2015-07-22 time log_id time=10:27:01 log_id=0202008074 type subtype pri type=attack subtype=waf pri=alert vd=root msg_id=1512 count=1 severity=low proto=6 service=http src=1.1.1.1

src_port=34352 dst=2.2.2.2

dst_port=80 policy=vs1 action=pass sigid=1 subcat=waf_subtype http_host http_url pkt_hdr http_hostt=192.168.1.140:8080 http_url=/bigdata pkt_hdr=header

Chapter 13: Logging and Reporting

Description

Log date.

Log time.

Log ID.

Log type: attack.

Log subtype: waf.

Log level.

Virtual domain.

Message ID.

Rule match count.

Rule severity.

Protocol.

Service.

Source IP address.

Source port.

Destination IP address.

Destination port.

Virtual server name.

Policy action.

Attack signature ID.

WAF module: waf_web_attack_signature, waf_url_access, waf_ http_protocol_cont and waf_sql_xss_injection_detect.

HTTP Host header in HTTP request. Maximum length is 64.

Longer URIs are truncated and appended with ....

URI in HTTP request. Maximum length is 128. Longer URIs are truncated and appended with ....

Contents of the packet header that matched the attack signature.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

311

Chapter 13: Logging and Reporting Using the security log

Column srccountry dstcountry msg

Example srccountry=Australia

Description

Location of the source IP address.

dstcountry=France Location of the destination IP address.

msg="Find Attack ID:

1010010001 NAME: "HTTP

Method Violation"

CATEGORY: "HTTP Protocol

Constraint" SUB_

CATEGORY: "Request

Method Rule""

Security rule name, category, subcategory, and description of the attack.

msg_id count severity proto service src src_port dst dst_port policy

 Table 128: Geo IP log

Column Example date date=2014-12-02 time log_id time=10:27:01 log_id=0200004230 type subtype pri vd type=attack subtype=geo pri=warning vd=root msg_id=13065998 count=1 severity=high proto=0 service=http src=173.177.99.94

src_port=49301 dst=10.61.2.100

dst_port=80 policy=vs1

Description

Log date.

Log time.

Log ID.

Log type: attack.

Log subtype: geo.

Log level.

Virtual domain.

Message ID.

Rule match count.

Rule severity.

Protocol.

Service.

Source IP address.

Source port.

Destination IP address.

Destination port.

Virtual server name.

312 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the *traffic log

Column action srccountry dstcountry msg

Example action=deny srccountry=cn dstcountry=us msg=msg

Chapter 13: Logging and Reporting

Description

Policy action.

Location of the source IP address.

Location of the destination IP address.

Security rule name, category, subcategory, and description of the attack.

Using the *traffic log

The Traffic Log table displays logs related to traffic served by the FortiADC deployment.

Figure 58

shows the Traffic log table. By default, the log is filtered to display Server Load Balancing - Layer 4 traffic logs, and the table lists the most recent records first.

You can use the following category filters to review logs of interest: l l l l l l l l

SLB Layer 4—Traffic served by virtual servers of type Layer 4

SLB HTTP—Traffic served by virtual servers with HTTP profiles

SLB TCPS—Traffic served by virtual servers with TCPS profiles

SLB RADIUS—Traffic served by virtual servers with RADIUS profiles

GLB—Traffic served by global load balancing policies

SLB SIP—Traffic served by virtual servers with SIP profiles

SLB RDP—Traffic served by virtual servers with RDP profiles

SLB DNS —traffic served by virtual servers with DNS profiles

Figure  58: Traffic log

Within each category, you can use Filter Setting controls to filter the table based on the values of matching data: l l l l l l

Date

Time

Proto

Service

Src

Src_port

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

313

Chapter 13: Logging and Reporting Using the *traffic log l l l l

Dst

Dst_port

Policy

Action

The last column in each table includes a link to log details.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

duration ibytes obytes proto service src src_port

To view and filter the log:

1. Go to Log & Report > Log Access > Traffic Logs to display the traffic log.

2. Click Filter Settings to display the filter tools.

3. Use the tools to filter on key columns and values.

4. Click Apply to apply the filter and redisplay the log.

Table 129

to

Table 134

list the log columns in the order in which they appear in the log.

 Table 129: SLB Layer 4 and SLB TCPS logs

Column Example Description date date=2014-12-01 Log date.

time log_id time=07:50:36 log_id=0102007810

Log time.

Log ID.

type subtype pri vd msg_id type=traffic subtype=slb_tcps pri=information vd=root msg_id=522030

Log type.

Log subtype: slb_layer4, slb_tcps.

Log level.

Virtual domain.

Message ID.

duration=55 ibytes=138 obytes=303 proto=6 service=tcps src=31.1.1.103

src_port=5534

Session duration.

Bytes in.

Bytes out.

Protocol.

Service.

Source IP address in traffic received by FortiADC.

Source port.

314 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the *traffic log

Column dst dst_port trans_src trans_src_port trans_dst trans_dst_port policy action srccountry dstcountry real_server

Example dst=21.1.1.101

dst_port=443 trans_src=31.1.1.103

trans_src_port=5534 trans_dst=21.1.1.101

trans_dst_port=443 policy=L7vs action=none srccountry=Reserved dstcountry=Reserved real_server=2_2_2_10

 Table 130: SLB HTTP logs

Column Example date date=2014-12-01 time log_id time=07:50:36 log_id=0102007810 type subtype pri vd type=traffic subtype=slb_http pri=information vd=root msg_id duration ibytes obytes msg_id=522030 duration=55 ibytes=138 obytes=303

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 13: Logging and Reporting

Description

Destination IP address in traffic received by FortiADC (IP address of the virtual server).

Destination port.

Source IP address in packet sent from FortiADC. Address might have been translated.

Source port in packet sent from FortiADC.

Destination IP address in packet sent from FortiADC (IP address of the real server).

Destination port in packet sent from FortiADC.

Virtual server name.

For most logs, action=none.

Location of the source IP address.

Location of the destination IP address.

Real server configured name.

Description

Log date.

Log time.

Log ID.

Log type.

Log subtype: slb_http.

Log level.

Virtual domain.

Message ID.

Session duration.

Bytes in.

Bytes out.

315

Chapter 13: Logging and Reporting

Example proto=6 service=http src=31.1.1.103

src_port=5534 dst=21.1.1.101

dst_port=443 trans_src=31.1.1.103

trans_src_port=5534 trans_dst=21.1.1.101

trans_dst_port=443 policy=L7vs action=none http_method=get http_host=10.61.2.100

http_agent=curl/7.29.0

http_url=/ip.php

http_qry=unknown http_cookie=unknown http_retcode=200 user=user1 usergrp=companyABC auth_status=success srccountry=Reserved dstcountry=Reserved real_server=2_2_2_10

Column proto service src src_port dst dst_port trans_src trans_src_port trans_dst trans_dst_port policy action http_method http_host http_agent http_url= http_qry http_cookie http_retcode user usergrp auth_status srccountry dstcountry real_server

Using the *traffic log

Description

Protocol.

Service.

Source IP address in traffic received by FortiADC.

Source port.

Destination IP address in traffic received by FortiADC (IP address of the virtual server).

Destination port.

Source IP address in packet sent from FortiADC. Address might have been translated.

Source port in packet sent from FortiADC.

Destination IP address in packet sent from FortiADC (IP address of the real server).

Destination port in packet sent from FortiADC.

Virtual server name.

For most logs, action=none.

HTTP method.

Host IP address.

HTTP agent.

Base URL.

URL parameters after the base URL.

Cookie name.

HTTP return code.

User name.

User group.

Authentication success/failure.

Location of the source IP address.

Location of the destination IP address.

Real server configured name.

316 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the *traffic log Chapter 13: Logging and Reporting duration ibytes obytes proto service src src_port dst

 Table 131: SLB RADIUS log

Column Example date date=2014-12-01 time log_id time=07:50:36 log_id=0102007810 type subtype pri vd msg_id type=traffic subtype=slb_radius.

pri=information vd=root msg_id=522030 duration=55 ibytes=138 obytes=303 proto=6 service=radius src=31.1.1.103

src_port=5534 dst=21.1.1.101

dst_port trans_src trans_src_port trans_dst trans_dst_port policy action dst_port=443 trans_src=31.1.1.103

trans_src_port=5534 trans_dst=21.1.1.101

trans_dst_port=443 policy=L7vs action=none

Description

Log date.

Log time.

Log ID.

Log type.

Log subtype: slb_radius.

Log level.

Virtual domain.

Message ID.

Session duration.

Bytes in.

Bytes out.

Protocol.

Service.

Source IP address in traffic received by FortiADC.

Source port.

Destination IP address in traffic received by FortiADC (IP address of the virtual server).

Destination port.

Source IP address in packet sent from FortiADC. Address might have been translated.

Source port in packet sent from FortiADC.

Destination IP address in packet sent from FortiADC (IP address of the real server).

Destination port in packet sent from FortiADC.

Virtual server name.

For RADIUS, action=auth or acct.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

317

Chapter 13: Logging and Reporting

Column user srccountry dstcountry real_server

Example user=user1 srccountry=Reserved dstcountry=Reserved real_server=2_2_2_10 vd msg_id duration ibytes obytes proto service src src_port dst

 Table 132: SLB RDP logs

Column Example date date=2016-03-18 time log_id time=11:48:29 log_id=107005800 type subtype pri type=traffic subtype=slb_rdp pri=information vd=root msg_id=1321705 duration=2 ibytes=92 obytes=400 proto=6 service=http src=192.168.1.1

src_port=37869 dst=192.168.1.142

dst_port trans_src dst_port=8080 trans_src=2.2.2.2

Description

RADIUS accounting username.

Location of the source IP address.

Location of the destination IP address.

Real server configured name.

Using the *traffic log

Description

Log date.

Log time.

Log ID.

Log type.

Log subtype: slb_rdp.

Log level.

Virtual domain.

Message ID.

Session duration.

Bytes in.

Bytes out.

Protocol.

Service.

Source IP address in traffic received by FortiADC.

Source port.

Destination IP address in traffic received by FortiADC (IP address of the virtual server).

Destination port.

Source IP address in packet sent from FortiADC. Address might have been translated.

318 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using the *traffic log

Column trans_src_port trans_dst trans_dst_port policy action srccountry dstcountry real_server

Example trans_src_port=58661 trans_dst=2.2.2.10

trans_dst_port=80 policy=vs-l7 action=none srccountry=Reserved dstcountry=Reserved real_server=r_22210 subtype pri vd msg_id duration ibytes

 Table 133: SLB SIP logs

Column Example date time date=2016-01-29 time=18:06:48 log_id type log_id=0106001134 type=traffic subtype=slb_sip pri=information vd=root msg_id=154799 duration=1 ibytes=44346 obytes proto service src obytes=2.2.2.10

proto=6 service=http src=N/A

Chapter 13: Logging and Reporting

Description

Source port in packet sent from FortiADC.

Destination IP address in packet sent from FortiADC (IP address of the real server).

Destination port in packet sent from FortiADC.

Virtual server name.

For most logs, action=none.

Location of the source IP address.

Location of the destination IP address.

Real server configured name.

Description

Log date.

Log time.

Log ID.

Log type.

Log subtype: slb_sip.

Log level.

Virtual domain.

Message ID.

Session duration.

Bytes in.

Bytes out.

Protocol.

Service.

Source IP address in traffic received by FortiADC.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

319

Chapter 13: Logging and Reporting Using the *traffic log dst_port trans_src trans_src_port trans_dst sip_uri sip_from sip_to sip_callid sip_retcode srccountry dstcountry real_server

Column src_port dst trans_dst_port policy action sip_method

Example src_port=43672 dst=192.168.1.142

sip_retcode=Reserved srccountry=Reserved dstcountry=Reserved real_server=2_2_2_10

Description

Source port.

Destination IP address in traffic received by FortiADC (IP address of the virtual server).

Destination port.

dst_port=8080 trans_src=2.2.2.2

trans_src_port=80 trans_dst=N/A sip_uri=to: [email protected]

sip_from=callid:1111111 sip_to=200 sip_callid=Reserved

Source IP address in packet sent from FortiADC. Address might have been translated.

Source port in packet sent from FortiADC.

Destination IP address in packet sent from FortiADC (IP address of the real server).

trans_dst_port=none policy=invite

Destination port in packet sent from FortiADC.

Virtual server name.

action=sip: [email protected] v2.0

Invite sent to.

sip_method=from: [email protected]

Invite sent from.

SIP server IP address.

SIP call ID.

Reserved.

Reserved.

Location of the source IP address.

Location of the destination IP address.

Real server configured name.

 Table 134: GLB log

Column Example date date=2014-12-01 time log_id time=07:50:36 log_id=0102007810

Description

Log date.

Log time.

Log ID.

320 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring local log settings

Column type subtype pri vd msg_id proto src src_port dst dst_port policy action fqdn resip srccountry dstcountry

Example type=traffic subtype=dns pri=information vd=root msg_id=522030 proto=6 src=31.1.1.103

src_port=5534 dst=21.1.1.101

dst_port=443 policy=policy action=none fqdn=pool.ntp.org

resip=4.53.160.75

srccountry=Reserved dstcountry=Reserved

Chapter 13: Logging and Reporting

Description

Log type.

Log subtype: dns.

Log severity.

Virtual domain.

Message ID.

Protocol.

Source IP address.

Source port.

Destination IP address.

Destination port.

Global load balancing policy name.

For most logs, action=none.

FQDN from client request.

DNS response IP address.

Location of the source IP address.

Location of the destination IP address.

Configuring local log settings

The local log is a datastore hosted on the FortiADC system.

Typically, you use the local log to capture information about system health and system administration activities.

We recommend that you use local logging during evaluation and verification of your initial deployment, and then configure remote logging to send logs to a log management repository where they can be stored long term and analyzed using preferred analytic tools.

Local log disk settings are configurable. You can select a subset of system events, traffic, and security logs.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

To configure local log settings:

1. Go to Log & Report > Log Setting.

The configuration page displays the Local Log tab.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

321

Chapter 13: Logging and Reporting Configuring local log settings

2. Complete the configuration as described in

Table 135 .

3. Save the configuration.

 Table 135: Local logging configuration

Settings Guidelines

Status Select to enable local logging.

File Size

Log Level

Maximum disk space for a local log file. The default is 200 MB. When the current log file reaches this size, a new file is created.

Select the lowest severity to log from the following choices:

Disk Full

Event l

Emergency—The system has become unstable.

l

Alert—Immediate action is required.

l

Critical—Functionality is affected.

l

Error—An error condition exists and functionality could be affected.

l

Warning—Functionality might be affected.

l

Notification—Information about normal events.

l

Information—General information about system operations.

l

Debug—Detailed information about the system that can be used to troubleshoot unexpected behavior.

For example, if you select Error, the system collects logs with level Error, Critical, Alert, and

Emergency. If you select Alert, the system collects logs with level Alert and Emergency.

Select log behavior when the maximum disk space for local logs (30% of total disk space) is reached: l

Overwrite—Continue logging. Overwrite the earliest logs.

l

No Log—Stop logging.

Select to enable logging for events.

322 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring syslog settings Chapter 13: Logging and Reporting

Settings

Event Category

Guidelines

This option becomes available only when the Event check box is selected. In that case, select the types of events to collect in the local log: l

Configuration—Configuration changes.

l

Admin—Administrator actions.

l

System—System operations, warnings, and errors.

l

User—Authentication results logs.

l

Health Check—Health check results and client certificate validation check results.

l

SLB—Notifications, such as connection limit reached.

l

LLB—Notifications, such as bandwidth thresholds reached.

l

GLB—Notifications, such as the status of associated local SLB and virtual servers.

l

Firewall—Notifications for the "firewall" module, such as SNAT source IP pool is using all of its addresses.

Traffic Select to enable logging for traffic processed by the load balancing modules.

Traffic Category The following options become available only when the Traffic check-box is selected. See above.

l

SLB—Server Load Balancing traffic logs related to sessions and throughput.

l

GLB—Global Load Balancing traffic logs related to DNS requests.

Security Select to enable logging for traffic processed by the security modules.

Security Category l

DoS—SYN flood protection logs.

l

IP Reputation—IP Reputation logs.

l

WAF—WAF logs.

l

GEO—Geo IP blocking logs.

Script

Script Category

Select to enable scripting.

SLB is selected by default and required.

Configuring syslog settings

A remote syslog server is a system provisioned specifically to collect logs for long term storage and analysis with preferred analytic tools.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

To configure syslog settings:

1. Go to Log & Report > Log Setting.

2. Click the Syslog Server tab.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

323

Chapter 13: Logging and Reporting Configuring syslog settings

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 136 .

5. Save the configuration.

 Table 136: Syslog configuration

Settings Guidelines

Status

Address

Select to enable the configuration.

IP address of the syslog server.

Port

Log Level

Listening port number of the syslog server. Usually this is UDP port 514.

Select the lowest severity to log from the following choices: l

Emergency—The system has become unstable.

l

Alert—Immediate action is required.

l

Critical—Functionality is affected.

l

Error—An error condition exists and functionality could be affected.

l

Warning—Functionality might be affected.

l

Notification—Information about normal events.

l

Information—General information about system operations.

l

Debug—Detailed information about the system that can be used to troubleshoot unexpected behavior.

For example, if you select Error, the system sends the syslog server logs with level

Error, Critical, Alert, and Emergency. If you select Alert, the system collects logs with level Alert and Emergency.

CSV

Facility

Event

Send logs in CSV format. Do not use with FortiAnalyzer.

Identifier that is not used by any other device on your network when sending logs to

FortiAnalyzer/syslog.

Select to enable logging for events.

324 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring high speed logging

Settings

Event Category

Traffic

Traffic Category

Security

Security Category

Script

Script Category

Chapter 13: Logging and Reporting

Guidelines

Select the types of events to send to the syslog server: l

Configuration—Configuration changes.

l

Admin—Administrator actions.

l

System—System operations, warnings, and errors.

l

User—Authentication results logs.

l

Health Check—Health check results and client certificate validation check results.

l

SLB—Notifications, such as connection limit reached.

l

LLB—Notifications, such as bandwidth thresholds reached.

l

GLB—Notifications, such as the status of associated local SLB and virtual servers.

l

Firewall—Notifications for the "firewall" module, such as SNAT source IP pool is using all of its addresses.

Select to enable logging for traffic processed by the load balancing modules.

l

SLB—Server Load Balancing traffic logs related to sessions and throughput.

l

GLB—Global Load Balancing traffic logs related to DNS requests.

Select to enable logging for traffic processed by the security modules.

l

DoS—SYN flood protection logs.

l

IP Reputation—IP Reputation logs.

l

WAF—WAF logs.

l

GEO—Geo IP blocking logs.

Select to enable scripting.

SLB is elected by default.

Configuring high speed logging

The high speed log feature is intended for deployments that require a high volume of logging activity. The logs are sent in binary format so they can be sent at a high speed. See

Appendix E: High Speed Logging Binary

Format

for details on the structure.

The feature supports traffic logs. Event logs and security logs are not supported.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

To configure high speed log settings:

1. Go to Log & Report > Log Setting.

2. Click the High Speed Server tab to display the configuration editor.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

325

Chapter 13: Logging and Reporting Enabling real-time statistics

3. Complete the configuration as described in

Table 137 .

4. Save the configuration.

 Table 137: High speed logging configuration

Settings Guidelines

Status Select to enable the configuration.

Address IP address of the syslog server.

UDP Port Listening port number of the syslog server. Usually this is UDP port 514.

Traffic Select to enable logging for traffic processed by the load balancing modules.

Traffic Category The following options become available only when the Traffic check-box is selected. See above.

l

SLB—Send Server Load Balancing logs.

l

GLB—Send Global Load Balancing logs.

Script

Script Category

Enable/disable script.

Enable/disable server load balance log scripting.

Enabling real-time statistics

The fast statistics feature enables real-time statistics collection for fast reports. Enabled by default. You can disable fast statistics if you encounter issues.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

To enable/disable real-time statistics:

1. Go to Log & Report > Log Setting.

2. Click the Fast Stats tab.

3. Complete the configuration as described in

Table 138 .

4. Save the configuration.

 Table 138: Fast Statistics configuration

Settings Guidelines

Status Enable/disable fast statistics. Enabled by default.

Traffic

Traffic Category

Enable/disable fast statistics for traffic logs. Enabled by default.

Enable/disable fast statistics for traffic categories. SLB is enabled by default.

326 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring alert email settings Chapter 13: Logging and Reporting

Configuring alert email settings

You can configure alerts to be sent based on either event categories or event level (severity). See

Configuring an

SMTP mail server

for information on how to set up the connection to the mail server.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

To configure alert email settings:

1. Click Log & Report > Alert Mail.

2. Click the Setting tab.

3. Complete the configuration as described in

Table 139 .

4. Click Save.

 Table 139: Alert mail configuration

Settings Guidelines

By Category Select this option to send alerts that match the specified categories. If you do not select this option, alerts are sent based on event level (severity). See Log level below.

Category Select the events for which alerts are sent: l

HA l

Admin l

Configuration l

Disk l

Health Check l

SSL Certificates Expire

Log Level This option becomes available when By Category is Not enabled. Select the minimum level of severity for which alerts are sent: l

Emergency—The system has become unstable.

l

Alert—Immediate action is required.

l

Critical—Functionality is affected.

l

Error—An error condition exists and functionality could be affected.

l

Warning—Functionality might be affected.

l

Notification—Information about normal events.

l

Information—General information about system operations.

l

Debug—Detailed information about the system that can be used to troubleshoot unexpected behavior.

For example, if you select Error, the system sends alerts with level Error, Critical, Alert, and

Emergency. If you select Alert, the system sends alerts with level Alert and Emergency.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

327

Chapter 13: Logging and Reporting

Settings

Interval

From

Configuring an alert email recipient

Guidelines

If identical alerts are occurring continuously, select the interval at which email alerts will be sent while the event continues.

Sender email address used in alert email.

Configuring an alert email recipient

You can configure alerts to be sent based on either event categories or event level (severity). See

Configuring an

SMTP mail server

for information on how to set up the connection to the mail server.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

To configure an alert email recipient:

1. Click Log & Report > Alert Mail.

2. Click the Recipient tab.

3. Complete the configuration as described in

Table 140 .

4. Click Save.

 Table 140: Alert mail recipient configuration

Settings Guidelines

Name Recipient name to appear in alert email.

Mail To Recipient email address.

Test Connectivity Click this button to test the connectivity to the email address.

Configuring reports

You can configure on-demand or scheduled reports.

Before you begin: l l

If you want reports to include user-defined queries, you must configure the queries before you configure the report.

You must have Read-Write permission for Log & Report settings.

To configure a report:

1. Go to Log & Report > Report Config.

The Report tab is displayed.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 141 .

4. Save the configuration.

328 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Report Queries

To run an on-demand report: n In the report table, the final column for has a "run report" icon ( ). Click it.

To view a generated report: n Go to Log & Report > Report > Overall.

Chapter 13: Logging and Reporting

 Table 141: Report configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the zone configuration (if you use forwarders).

Note: After you initially save the configuration, you cannot edit the name.

On Schedule

Period

Schedule Type

Schedule Weekdays

Enable/disable reporting on schedule.

Select a report period. If you select absolute or last N-hours, last N-days, or last

N-weeks, additional controls are displayed for you to set these variables.

Daily or on specified days.

If you do not schedule the report daily, specify the days on which to run it.

Schedule Hour

Email Format

Email Subject

Email Body

Email Attachname

Email Compress

Query List

0-23.

Attachment format. Only PDF is supported. If you schedule reports and set this option, the report is sent on schedule to all addresses in the Log & Report > Alert

Email > Recipient list.

Message subject.

Message body.

Filename for attachment.

Enable/disable compression of the attachment.

Select queries to include in the report.

Configuring Report Queries

The predefined list of queries covers the most common administrator and stakeholder interests. It includes the following:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

329

Chapter 13: Logging and Reporting Configuring Report Queries l l l l l l l l l l l l l l l l l l l l l

SLB-Top-Policy-By-Bytes

SLB-Top-Source-By-Bytes

SLB-Top-Source-Country-By-Bytes

SLB-History-Flow-By-Bytes (total traffic over time)

LLB-Top-Link-by-Bytes

LLB-History-Flow-By-Bytes (total traffic over time)

DNS-Top-Policy-by-Count

DNS-Top-Source-by-Count

Attack-Top-Destination-For-IPReputation-By-Count

Attack-Top-Source-For-IPReputation-By-Count

Attack-Top-Source-Country-For-IPReputation-By-Count

Attack-Top-Destination-For-Synflood-By-Count

Attack-Top-Destination-For-GEO-By-Count

Attack-Top-Source-For-GEO-By-Count

Attack-Top-Source-Country-For-GEO-By-Count

Attack-Top-Destination-For-WAF-By-Count

Attack-Top-Source-For-WAF-By-Count

Attack-Top-Source-Country-For-WAF-By-Count

Event-Top-Admin-Login-By-Count

Event-Top-Failed-Admin-Login-By-Count

Event-Top-Admin-Config-By-Count

If necessary, you can create your own query configuration objects.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

After you have created a query configuration object, you can select it in the report configuration.

To configure report queries:

1. Go to Log & Report > Report Config.

The Report tab is displayed.

2. Click the Query Set tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 142 .

5. Save the configuration.

 Table 142: Query configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the zone configuration (if you use forwarders).

Note: After you initially save the configuration, you cannot edit the name.

330 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring Report Queries

Settings

Module

Guidelines l

SLB l

LLB l

DNS l

Attack l

Event

SLB

Traffic Sort Type

SLB Subtype l l sessions bytes l top_policy (virtual server) l top_source l top_source_country l slb_history_flow (total traffic over time)

LLB

Traffic Sort Type

LLB Subtype

DNS

DNS Sort Type

DNS Subtype

Attack

Attack Sort Type l l l l sessions bytes top_link slb_history_flow (total traffic over time)

Only count is applicable.

l

Top_Policy l top_source

Only count is applicable.

Chapter 13: Logging and Reporting

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

331

Chapter 13: Logging and Reporting

Settings

Attack Subtype

Guidelines l top_destip_for_geo l top_destip_for_ipreputation l top_destip_for_sysflood l top_destip_for_waf l top_source_country_for_geo l top_source_country_for_ipreputation l top_source_country_for_waf l top_source_for_geo l top_source_for_ipreputation l top_source_for_waf

Event

Event Sort Type

Event Subtype

Only count is applicable.

l top_admin_login l top_failed_admin_login l top_admin_config

Configuring fast reports

Configuring fast reports

Fast reports are real time statistics displayed on the Dashboard > Data Analytics page.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

After you have created a query configuration object, you can select it in the report configuration.

To configure a fast report:

1. Go to Dashboard > Data Analytics.

2. Click Add Widget to display the configuration editor.

3. Complete the configuration as described in

Table 143 .

4. Save the configuration.

 Table 143: Fast report configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the zone configuration (if you use forwarders).

Note: After you initially save the configuration, you cannot edit the name.

332 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Using reports

Settings

Module

SLB SubType

History Chart

Time Range

Data Type

Chapter 13: Logging and Reporting

Guidelines

SLB.

Note: For the current release, SLB is the only option and is selected by default.

Select an option from the list menu: l l l l l l l l l l

Top Src

Top Dest

Top Browser

Top OS

Top Dev

Top Domain

Top URL

Top Referrer

Top Source Country

Top Session

Enable/Disable.

Select an option from the list menu: l l l l l

10MINS

1HOUR

1DAY

1WEEK

1MONTH

Select either of the following: l l

Bandwidth

Session

Using reports

FortiADC provides the following reports: l l l l l

Using reports

Using reports

Using reports

Using reports

Using reports

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

333

Chapter 13: Logging and Reporting

Display logs via CLI

FortiADC allows you to display logs using the CLI, with filtering functions.

Display logs via CLI

Where: l type <event|traffic|attack> l subtype <subtype_value> ex:slb_http l field <field_name> <field_value_list>

334 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 14: High Availability Deployments

Chapter 14: High Availability Deployments

HA feature overview

This chapter includes the following topics: l l l l l l l l l

HA feature overview

HA system requirements

HA synchronization

Configuring HA settings

Monitoring an HA cluster

Updating firmware for an HA cluster

Deploying an active-passive cluster

Deploying an active-active cluster

Deploying an active-active-VRRP cluster

HA feature overview

FortiADC appliances can be deployed as standalone units or as high availability (HA) clusters.

A cluster is two or more nodes. A node is an instance of the appliance/system. In a cluster, one node is the

primary node, also called the master node. The other members of the cluster are secondary nodes, also called

slave nodes.

The primary node has a special role. It has a one-to-many relationship with member nodes. Both configuration updates and software updates are initiated by the primary node and pushed to member nodes.

The system selects the primary node based on the following criteria: l l l l l l l

Link health (if monitor ports links are down, the node is considered down)

Remote IP monitor health check results

Override setting (prefers priority to uptime)

Most available ports

Highest uptime value

Lowest device priority number (1 has greater priority than 2)

Highest-sorting serial number—Serial numbers are sorted by comparing each character from left to right, where 9 and z are the greatest values. The system gives preference to higher values over lower values.

HA solutions depend on two types of communication among cluster members: l l

Synchronization—During initialization, the primary node pushes its configuration (with noted exceptions) to member nodes. After initialization has completed, the nodes synchronize their session tables.

Heartbeats—A cluster node indicates to other nodes in the cluster that it is up and available. The absence of heartbeat traffic indicates the node is not up and is unavailable.

There are three types of HA clusters: l

Active-Passive—Only the primary node is active, so it is the only node that receives traffic from adjacent routers.

Typically, there is one other node that is in standby mode. It assumes active status if the primary node undergoes

335 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

HA feature overview Chapter 14: High Availability Deployments l l maintenance or otherwise becomes unavailable.

Active-Active—All nodes receive traffic. Active-Active deployments support load balancing and failover among up to eight cluster members.

Active-Active-VRRP —FortiADC's Active-Active-VRRP mode uses a VRRP-like protocol, and can function in both

HA Active-Passive mode and HA Active-Active mode, depending on the number of traffic groups used in the configuration. When only one traffic group is used, it actually functions in Active-Passive mode; when two or more traffic groups are used, it works in Active-Active mode.

In an Active-Passive cluster, only the management IP address for the primary node is active. In an active-passive cluster, you can log into a node only when it has primary node status and its IP address is active. To access the user interface of an appliance in standby status (the active-passive slave), you must use a console port connection.

In an Active-Active cluster, the IP addresses for all interfaces are unique, including the management interface.

When the appliance is in standalone mode, the physical port IP address is active; when it is in HA mode, the address assigned to it in the HA node IP list address is active. You can log into any node using the active IP address for its management port.

In an Active-Active-VRRP cluster, FortiADC uses hbdev for members status communication. It also allows you to configure sync+session, persistence sync, and image sync functions via hbdev and dataport, which is essentially the same as the HA-AA/AP mode. Note that FortiADC is unable to communicate with third-party VRRP devices because it actually doesn't use the VRRP protocol at all.

Tip: You can use the execute ha manage command to log into the console of a member node. See the CLI reference.

Figure 59

shows an active-passive cluster in a single network path. In an active-passive cluster, the primary node is the active node that handles all traffic. In the event that the primary node experiences hardware failure or system maintenance, failover takes place. In failover, the standby node becomes the primary node and processes the traffic that is forwarded along the network path. The new primary node sends gratuitous ARP to notify the network to direct traffic for the virtual MAC addresses (vMAC) to its network interfaces. It takes the IP addresses of the unresponsive node.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

336

Chapter 14: High Availability Deployments

Figure  59: Basic active-passive cluster

HA feature overview

337

Figure 60

shows an active-passive cluster in a redundant path. A topology like this is a best practice because it is fully redundant, with no single point of failure. If the gateway, load balancer, or switch were to fail, the failover path is chosen.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

HA feature overview

Figure  60: Redundant path active-passive cluster

Chapter 14: High Availability Deployments

Figure 61

shows an active-active cluster. An active-active cluster supports load-balancing and failover among up to eight member nodes. The routers on either side of the cluster must be configured to use equal cost multipath

(ECMP) to distribute traffic to the FortiADC cluster nodes. All nodes actively receive and forward traffic.

The primary node has a special role. It handles all FTP and firewall traffic, and it acts as the failover node for all of the other nodes in the cluster.

The failover mechanism is the same as an active-passive deployment, with the primary node acting as the standby node for all other cluster members. If a member node fails, the primary node takes the IP addresses of the unresponsive node and notifies the network via ARP to redirect traffic for that vMAC to its own network interfaces. For example, in

Figure 61 , node1 is the primary node. If node2 were to fail, its traffic would failover to

node1. If node3 were to fail, its traffic would also failover to node1. If the primary node were to fail, a new primary node would be elected, and it would function as the master in all respects, including its role as the new standby node for failover from all other cluster members.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

338

Chapter 14: High Availability Deployments

Figure  61: Basic active-active cluster

HA system requirements

HA system requirements

l l l l l

Appliances must have the same hardware model and same firmware version.

Redundant network topology: if an active node fails, physical network cabling and routes must be able to redirect traffic to the other member nodes.

At least one physical port on both HA appliances to be used for heartbeat and data traffic between cluster members. For active-passive failover pairs, you can connect the ports directly via a crossover cable. For activeactive clusters with more than two members, you can connect the nodes via the same Layer 2 switch.

Heartbeat and synchronization traffic between cluster nodes occur over the physical network ports that you designate. If switches are used to connect the nodes, the interfaces must be reachable by Layer 2 multicast.

Each appliance must be licensed. If using FortiADC-VM, the license must be paid; trial licenses will not function.

339 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

HA synchronization Chapter 14: High Availability Deployments

FortiADC-VM supports HA. However, if you do not want to use the native HA, you can use your hypervisor or VM environment manager to install your virtual appliances over a hardware cluster to improve availability. For example, VMware clusters can use vMotion or VMware HA.

HA synchronization

The master node pushes most of its configuration to the other member nodes. This is known as synchronization.

If automatic synchronization is enabled, synchronization occurs immediately when an appliance joins the cluster, and thereafter every 30 seconds. If synchronization is not enabled, you must initiate synchronization manually.

Synchronization includes: l l l l l

Core CLI-style configuration file (fadc_system.conf)

X.509 certificates, certificate signing request files (CSR), and private keys

Layer 7 virtual server error message files

Layer 4 TCP connection state, Layer 4 persistence table, and Layer 7 persistence table (Source Address

Persistence table only)

Health check status (active-passive deployments only)

For most settings, you configure only the primary node, and its settings are pushed to other members.

Table 144

summarizes the configuration settings that are not synchronized. All other settings are synchronized.

 Table 144: HA settings that are not synchronized

Setting Explanation

Hostname The hostnames are not synchronized to enable you to use unique names.

SNMP system information

RAID level

Each member node has its own SNMP system information so that you can maintain accurate, separate data in SNMP collections. However, the network interfaces of a standby node are not active, so they cannot be actively monitored with SNMP.

RAID settings are hardware-dependent and determined at boot time by looking at the drives

(for software RAID) or the controller (hardware RAID), and are not stored in the system configuration. Therefore, they are not synchronized.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

340

Chapter 14: High Availability Deployments Configuring HA settings

Setting

HA settings

Explanation

Most of the HA configuration is not synchronized in order to support HA system operations. In particular: l

Priority and Override settings—These settings are used to elect a primary node, so they are not synchronized to enable differentiation.

l

Group ID—Nodes with the same Group ID join a cluster. The setting precedes and determines group membership, so it is set manually.

l

HA mode—Many administrators prefer to be able to switch the primary node from an HA mode to standalone mode without the other nodes following suit, or to switch a secondary node to standalone mode and have that setting not overwritten by periodic synchronization, so the HA mode setting is not pushed from the primary node to the member nodes.

l

Node list and Local Node ID—These settings are for active-active mode only. They identify a node uniquely within an active-active load balancing group, so they are not synchronized to enable differentiation.

In addition to the HA configuration, some data is also not synchronized: l l

Log messages—These describe events that happened on that specific appliance. After a failover, you might notice that there is a gap in the original active appliance’s log files that corresponds to the period of its down time. Log messages created during the time when the standby was acting as the active appliance (if you have configured local log storage) are stored there, on the original standby appliance.

Generated reports—Like the log messages that they are based upon, reports also describe events that happened on that specific appliance. As such, report settings are synchronized, but report output is not.

You can view the status of cluster members from the dashboard of the primary node. You might need to log into the system for the a non-primary member node in the following situations: l l l

To configure settings that are not synchronized.

To view log messages recorded about the member node itself on its own hard disk.

To view traffic reports for traffic processed by the member node.

Configuring HA settings

Note: Currently, FortiADC only supports HA configurations for IPv4 address mode; HA is not supported on IPv6.

Before you begin: l

You must have Read-Write permission to items in the System category.

To configure HA settings:

1. Go to System > High Availability.

2. Complete the configuration as described in

Table 145 .

3. Save the configuration.

After you have saved the configuration, cluster members begin to send heartbeat traffic to each other. Members with the same Group ID join the cluster. They send synchronization traffic through their data links.

341 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring HA settings Chapter 14: High Availability Deployments

 Table 145: High availability configuration

Settings Guidelines

Operation Mode l

Standalone l

Cluster

Cluster Mode l

Active-Passive l

Active-Active l

Active-Active-VRRP

Group Name

Group ID

Priority

Name to identify the HA cluster if you have more than one. This setting is optional, and does not affect HA function. The maximum length is 63 characters.

Number that identifies the HA cluster. Nodes with the same group ID join the cluster. If you have more than one HA cluster on the same network, each cluster must have a different group ID. The group ID is used in the virtual MAC address that is sent in broadcast ARP messages. The valid range is 0 to 31. The default value is 0.

Number indicating priority of the member node when electing the cluster primary node.

This setting is optional. The smaller the number, the higher the priority. The default is 5.

The valid range is 0 to 9.

Override

Heartbeat Interval

Note: By default, unless you enable Override, uptime is more important than this setting.

Enable to make Device Priority a more important factor than uptime when selecting the primary node.

Number of 100-millisecond intervals at which heartbeat packets are sent. This is also the interval at which a node expects to receive heartbeat packets. This part of the configuration is pushed from the primary node to member nodes. The default is

2. The valid range is 1 to 20 (that is, between 100 and 2,000 milliseconds).

Note: Although this setting is pushed from the primary node to member nodes, you should initially configure all nodes with the same Detection Interval to prevent inadvertent failover from occurring before the initial synchronization.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

342

Chapter 14: High Availability Deployments Configuring HA settings

Settings Guidelines

Lost Heartbeat Threshold Number of times a node retries the heartbeat and waits to receive HA heartbeat packets from the other nodes before concluding the other node is down. This part of the configuration is pushed from the primary node to member nodes. Normally, you do not need to change this setting. Exceptions include: l

Increase the failure detection threshold if a failure is detected when none has actually occurred. For example, in an active-passive deployment, if the primary node is very busy during peak traffic times, it might not respond to heartbeat packets in time, and a standby node might assume that the primary node has failed.

l

Decrease the failure detection threshold or detection interval if administrators and

HTTP clients have to wait too long before being able to connect through the primary node, resulting in noticeable down time.

ARP Times

The valid range is from 1 to 60.

Note: Although this setting is pushed from the primary node to member nodes, you should initially configure all nodes with the same HB Lost Threshold to prevent inadvertent failover from occurring before the initial synchronization.

Number of times that the cluster member broadcasts extra address resolution protocol

(ARP) packets when it takes on the primary role. (Even though a new NIC has not actually been connected to the network, the member does this to notify the network that a new physical port has become associated with the IP address and virtual MAC of the HA cluster.) This is sometimes called “using gratuitous ARP packets to train the network,” and can occur when the primary node is starting up, or during a failover. Also configure

ARP Packet Interval.

Normally, you do not need to change this setting. Exceptions include: l

Increase the number of times the primary node sends gratuitous ARP packets if an active-passive cluster takes a long time to fail over or to train the network. Sending more gratuitous ARP packets may help the failover to happen faster.

l

Decrease the number of times the primary node sends gratuitous ARP packets if the cluster has a large number of VLAN interfaces and virtual domains. Because gratuitous ARP packets are broadcast, sending them might generate a large amount of network traffic. As long as the active-passive cluster fails over successfully, you can reduce the number of times gratuitous ARP packets are sent to reduce the amount of traffic produced by a failover.

The valid range is 1 to 60. The default is 5.

343 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuring HA settings Chapter 14: High Availability Deployments

Settings

ARP Interval

Guidelines

Number of seconds to wait between each broadcast of ARP packets. Normally, you do not need to change this setting. Exceptions include: l

Decrease the interval if an active-passive cluster takes a long time to fail over or to train the network. Sending ARP packets more frequently may help the failover to happen faster.

l

Increase the interval if the cluster has a large number of VLAN interfaces and virtual domains. Because gratuitous ARP packets are broadcast, sending them might generate a large amount of network traffic. As long as the active-passive cluster fails over successfully, you can increase the interval between when gratuitous ARP packets are sent to reduce the rate of traffic produced by a failover.

The valid range is from 1 to 20. The default is 6 seconds.

Layer 7 Persistence Synchronization

Enable to synchronize Layer 7 session data used for persistence to backend servers.

When enabled, the Source Address Persistence table is synchronized between HA members.

When not enabled, a node that receives traffic due to failover would not know that a session had been created already, so it will be treated as a new session.

Synchronization of the persistence table is not required for cookie-based or hashbased persistence methods to get the desired result. Client traffic will be routed to the same backend server.

Synchronization of the persistence table is not possible for SSL session ID. When the session via the first node is terminated, the client must re-establish an SSL connection via the second node. When a client requests a new SSL connection with an SSL server, the initial TCP connection has an SSL Session ID of 0. This zero value tells the server that it needs to set up a new SSL session and to generate an

SSL Session ID. The server sends the new SSL Session ID in its response to the client as part of the SSL handshake.

Layer 4 Persistence Synchronization

Enable to synchronize Layer 4 session data used for persistence to backend servers.

When enabled, the Source Address Persistence table is synchronized between HA members. When not enabled, a node that receives traffic because of load balancing or failover would not know that a session had been created already, so it will be treated as a new session.

Synchronization of the persistence table is not required for hash-based persistence methods to get the desired result. Client traffic will be routed to the same backend server.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

344

Chapter 14: High Availability Deployments Configuring HA settings

Settings Guidelines

Layer 4 Connection Synchronization

Enable to synchronize Layer 4 connection state data.

When enabled, the TCP session table is synchronized. If subsequent traffic for the connection is distributed through a different cluster node because of failover, the

TCP sessions can resume without interruption.

When not enabled, a node that receives traffic because of failover would not know that a session had been created already, and the client will be required to reinitialize the connection.

Auto Config Sync Enable/disable automatic configuration synchronization. When enabled, synchronization occurs immediately when an appliance joins the cluster, and thereafter every 30 seconds. Disable if you prefer to manage synchronization manually.

Active-Active Settings

Node List

Local Node

Select the node IDs for the nodes in the cluster. An active-active cluster can have up to eight members.

A number that uniquely identifies the member within the cluster. The valid range is 0-7.

In an active-active deployment, this number is used in the virtual MAC address that is sent in ARP responses. In an active-passive deployment, this number is not used.

Link Monitor

Monitor One or more network interfaces that correlate with a physical link. These ports will be monitored for link failure. Port monitoring (also called interface monitoring) monitors physical network ports to verify that they are functioning properly and linked to their networks. You can monitor physical interfaces and 802.3ad aggregated interfaces.

Heartbeat

Note: To prevent an unintentional failover, do not configure port monitoring until you configure HA on all appliances and have plugged in the cables to link the physical network ports that will be monitored.

Set the network interface to be used for heartbeat packets. You can configure one or two heartbeat ports.

Use the same port number for all cluster members. For example, if you select port3 on the primary node, select port3 as the heartbeat interface on the other member nodes.

Note: If a switch is used to connect the heartbeat interfaces, the heartbeat interfaces must be reachable by Layer 2 multicast

Note: In order for the HA feature to work properly on VMware VMs, you MUST ensure that the vSphere vSwitch VLAN used for the heartbeat interface is able to accept MAC Address Changes and Forced Transmits..For more information, refer to FortiADC-VM™ Install Guide — D-Series .

345 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Monitoring an HA cluster Chapter 14: High Availability Deployments

Settings

Data

Guidelines

Set the network interface to be used for data synchronization among cluster nodes. You can configure up to two data ports. If one data port fails, its traffic fails over to the next data port. If all data ports fail, data synchronization traffic fails over to the heartbeat port. If you do not configure a data port, the heartbeat port is used for synchronization.Use the same port numbers for all cluster members. For example, if you select port3 on the primary node, select port3 as the data port interface on the other member nodes.

Remote IP Monitor

Monitor Enable

Failover Threshold

Enable/disable active monitoring of remote beacon IP addresses to determine if the network path is available.

Number of consecutive times that the remote IP address is unreachable that indicates failure. The default is 5. The valid range is 1-300.

Failover Hold Time

Remote Address

Source Port

Health Check Interval

If failover occurs due to a remote IP monitor test, and this node's role changes (to master or slave), it cannot change again until the holdtime elapses. Holdtime can be used to prevent looping.The default holdtime is 120 seconds. The valid range is 60-86400.

Remote IP Monitor List

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. You reference this name in the virtual server configuration. Note: After you initially save the configuration, you cannot edit the name.

Remote address to ping.

Interface to send the health check ping.

Health Check Timeout

Health Check Retry

Seconds between each health check. Should be more than the timeout to prevent overlapping health checks. The default is 10.

Seconds to wait for a reply before assuming that the health check has failed. The default is 5.

Number of retries to confirm up or down. The default is 3 retries. The valid range is 1-10.

Monitoring an HA cluster

You can view HA status from the system dashboard. Go to System > Dashboard and click the HA Status tab.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

346

Chapter 14: High Availability Deployments

Figure  62: HA Status page

Monitoring an HA cluster

347

You can use also use log messages, alert emails, and SNMP to monitor HA events, such as when failover has occurred. The system logs HA node status changes as follows: l l l

When HA is initialized: HA device Init

When a member joins a group: Member (FAD2HD3A12000003) join to the HA group

When the HA configuration is changed from standalone to an active-passive or active-active cluster mode: HA device into Slave mode

The following figure shows FortiADC HA event objects in an SNMP manager.

Figure  63: FortiADC HA event objects in an SNMP manager

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Updating firmware for an HA cluster Chapter 14: High Availability Deployments

Updating firmware for an HA cluster

You can upgrade firmware on all nodes in a cluster from the primary node.

The following process occurs when you perform the HA upgrade procedure:

1. The primary node pushes the firmware image to the member nodes.

2. The primary node notifies the member nodes of the upgrade, and it takes their user traffic during the upgrade.

3. The upgrade command is run on the member nodes, the systems are rebooted, and the member nodes send the primary node an acknowledgment that upgrade has been completed.

4. The upgrade command is run on the primary node, and it reboots. When the system is rebooting, a member node assumes primary status, and the traffic fails over from the former primary node to the new primary node.

After the upgrade process is completed, the system determines whether the original node becomes the primary node, according to the HA Override setting: l l

If Override is enabled, the cluster considers the Device Priority setting. Both nodes usually make a second failover in order to resume their original roles.

If Override is disabled, the cluster considers uptime first. The original primary node will have a smaller uptime due to the order of reboots during the firmware upgrade. Therefore it will not resume its active role; instead, the node with the greatest uptime will remain the new primary node. A second failover will not occur.

Reboot times vary by the appliance model, and also by differences between the original firmware version and the firmware version you are installing.

The administrator procedure for an HA cluster is similar to the procedure for installing firmware on a standalone appliance. To ensure minimal interruption of service to clients, use the following steps. The same procedure applies to both active-active and active-passive clusters.

If downgrading to a previous version, do not use this procedure. The HA daemon on a member node might detect that the primary node has older firmware, and attempt to upgrade it to bring it into sync, undoing your downgrade.

Instead, switch out of HA, downgrade each node individually, then switch them back into HA mode.

Before you begin: l l l l l

Download the firmware file from the Fortinet Customer Service & Support website: https://support.fortinet.com/

Read the release notes for the version you plan to install.

Back up your configuration before beginning this procedure. Reverting to an earlier firmware version could reset settings that are not compatible with the new firmware.

You must have super user permission (user admin) to upgrade firmware.

Verify that the cluster node members are powered on and available on all of the network interfaces that you have configured. If required ports are not available, HA port monitoring could inadvertently trigger an additional failover, resulting in traffic interruption during the firmware update.

To update the firmware for an HA cluster:

1. Log into the web UI of the primary node as the admin administrator.

2. Go to System > Settings.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

348

Chapter 14: High Availability Deployments Deploying an active-passive cluster

3. Click the Maintenance tab.

4. Scroll to the Upgrade section.

5. Click Choose File to locate and select the file.

6. Enable the HA Sync.

7. Click to upload the firmware and start the upgrade process.

After the new firmware has been installed, the system reboots.

When you update software, you are also updating the web UI. To ensure the web

UI displays the updated pages correctly: l l

Clear your browser cache.

Refresh the page.

In most environments, press Ctrl-F5 to force the browser to get a new copy of the content from the web application. See the Wikipedia article on browser caching issues for a summary of tips for many environments: https://en.wikipedia.org/wiki/Wikipedia:Bypass_your_cache .

Deploying an active-passive cluster

This topic includes the following information: l l l

Overview

Basic steps

Best practice tips

Overview

In an active-passive cluster, one node is the active appliance; it processes traffic. The other node is passive; it is ready to assume the role of the active appliance if the primary node is unavailable.

You configure the system to send heartbeat packets between the pair to monitor availability. The system continually polls the activity of the heartbeat packets. If the active appliance becomes unresponsive, failover occurs: the standby becomes active.

Figure 64

illustrates the process: (1) the standby node sends gratuitous

ARP to notify adjacent routers to direct traffic for the virtual MAC addresses (vMAC) to its network interfaces; (2)

It takes the IP addresses of the unresponsive node.

349 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Deploying an active-passive cluster Chapter 14: High Availability Deployments

Figure  64:  An active-passive cluster at failover—IP address transfer to the new active member

When the former active appliance comes back online, it might or might not assume its former active role. The system selects the active member based on the following criteria: l l l l l l l

Link health (if monitor ports links are down, the node is considered down)

Remote IP monitor health check results

Override setting (prefers priority to uptime)

Most available ports

Highest uptime value

Lowest device priority number (1 has greater priority than 2)

Highest-sorting serial number—Serial numbers are sorted by comparing each character from left to right, where 9 and z are the greatest values. The system gives preference to higher values over lower values.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

350

Chapter 14: High Availability Deployments Deploying an active-active cluster

Basic steps

To deploy an active-passive cluster:

1. License all FortiADC appliances in the HA cluster, and register them, including FortiGuard services, with the

Fortinet Customer Service & Support website: https://support.fortinet.com/

2. Physically link the FortiADC appliances that make up the HA cluster.

You must link at least one of their ports (for example, port4 to port4) for heartbeat and synchronization traffic between members of the cluster. You can do either of the following: l

Connect the two appliances directly with a crossover cable.

l

Link the appliances through a switch. If connected through a switch, the heartbeat interfaces must be reachable by Layer 2 multicast.

3. Configure the secondary node: a. Log into the secondary appliance as the admin user.

b. Complete the HA settings as described in

Configuring HA settings

.

Important: Set the Device Priority to a higher number than the preferred primary node; for example, set it to 2.

4. Configure the primary node: a. Log into the primary appliance as the admin user.

b. Complete the configuration for all features, as well as the HA configuration.

Important: Set the Device Priority to a lower number than the secondary node; for example, set it to 1.

Note: After you have saved the HA configuration changes, cluster members join or rejoin the cluster. After you have saved configuration changes on the primary node, it automatically pushes its configuration to the secondary node.

Best practice tips

The following tips are best practices: l l

Be careful to maintain the heartbeat link(s). If the heartbeat is accidentally interrupted, such as when a network cable is temporarily disconnected, the other nodes assume that the primary node has failed. In an active-passive deployment, failover occurs. If no failure has actually occurred, both nodes can be operating as the active node simultaneously.

If you link HA appliances through switches, to improve fault tolerance and reliability, link the ports through two

separate switches. Also, do not connect these switches to your overall network, which could introduce a potential attack point, and could also allow network load to cause latency in the heartbeat, which could cause an unintentional failover.

Deploying an active-active cluster

This topic includes the following information:

351 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Deploying an active-active cluster Chapter 14: High Availability Deployments l l l l

Configuration overview

Basic steps

Expected behavior

Best practice tips

Configuration overview

Figure 65

shows an example of an active-active cluster. In an active-active cluster, traffic from the upstream router can be load-balanced among up to eight member nodes.

Load balancing depends on the equal cost multipath (ECMP) configuration on adjacent routers.The routers on either side of the cluster must be configured to use ECMP to distribute traffic to the FortiADC cluster nodes. In the example, assume that the FortiADC configuration includes virtual servers belonging to subnet 10.61.0.0./24.

On Router A, you configure equal cost routes as follows: destination: 10.61.0.0/24 gateway: 10.61.51.1

destination: 10.61.0.0/24 gateway: 10.61.51.2

destination: 10.61.0.0/24 gateway: 10.61.51.3

Likewise, on Router B, you configure equal cost routes for server-to-client traffic: destination: 0.0.0.0/0 gateway: 10.65.51.1

destination: 0.0.0.0/0 gateway: 10.65.51.2

destination: 0.0.0.0/0 gateway: 10.65.51.3

Active-active clusters also support failover. The primary node is the backup node for each of the other nodes in the cluster. If a member node fails, the primary node takes its IP address and sends gratuitous ARP to adjacent routers to direct traffic for that virtual MAC address (vMAC) to its own network interfaces.

The FortiADC configuration involves the following components: l l l

Primary node system and feature configuration

Interface configuration (HA node IP list)

HA configuration

In an active-active cluster, one of the nodes is selected as the primary node, and the others are member nodes.

In this example, node1 is the primary node and node2 and node3 are member nodes. When the cluster is formed, the configuration for node1 is pushed to node2 and node3.

When you configure the network interfaces for nodes in an active-active cluster, in addition to the interface primary IP address, you configure an HA node IP list that specifies special HA IP addresses of each node in the cluster. The HA node IP list for port2 in the example has the following values:

10.61.51.1/16 node1

10.61.51.2/16 node2

10.61.51.3/16 node3

Likewise, the HA node IP list for port3 has the following values:

10.65.51.1/16 node1

10.65.51.2/16 node2

10.65.51.3/16 node3

Finally, you log into each node when it is in standalone mode to configure its HA settings. When you are ready to form the cluster, change the setting to HA active-active. The system state changes when a node joins a cluster.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

352

Chapter 14: High Availability Deployments

Figure  65: HA active-active deployment

Deploying an active-active cluster

Note: The example shows routers on both sides of the FortiADC cluster. Your deployment might not have a router between the FortiADC cluster and the real server pool. In this case, if your real servers support load balancing methods like ECMP, the expected behavior is the same as what is described here. If not, it is expected that the real servers route reply traffic to the cluster node that sent them the client traffic.

Basic steps

To deploy an active-active cluster:

1. License all FortiADC appliances in the HA cluster, and register them, including FortiGuard services, with the

Fortinet Customer Service & Support website: https://support.fortinet.com/ .

2. Physically link the FortiADC appliances that make up the HA cluster.

You must link at least one of their ports (for example, port4 to port4) for heartbeat and synchronization traffic between members of the cluster. You can do either of the following:

353 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Deploying an active-active cluster Chapter 14: High Availability Deployments l

If only two nodes, connect the two appliances directly with a crossover cable.

l

If more than two nodes, link the appliances through a switch. If connected through a switch, the interfaces must be reachable by Layer 2 multicast.

3. Configure member nodes: a. Log into the member nodes as the admin user.

b. Complete the HA configuration as described in

Configuring HA settings

.

Important: Set the Device Priority to a higher number than the preferred primary node; for example, set it to 2.

4. Configure the preferred primary node: a. Log into the primary node as the admin user.

b. Configure network interfaces so that each traffic interface has an HA node IP address list in addition to its physical port IP address. See

Configuring network interfaces .

When HA is set to standalone, the system uses the physical port IP address. When HA is set to active-active, the system uses the HA node IP address.

c. Complete the configuration for all features, as well as the HA configuration.

Important: Set Device Priority to a lower number than the member nodes; for example, set it to 1.

Note: After you have saved the HA configuration changes, cluster members join or rejoin the cluster. After you have saved configuration changes on the primary node, it automatically pushes its configuration to the member nodes.

Expected behavior

In active-active deployments, be sure to enable data synchronization. In particular, enable the following settings: l l l

Layer 4 Connection Synchronization—Sychronizes TCP connection state data.

Layer 4 Session Synchronization—Synchronizes the source IP address table used for persistence to backend servers.

Layer 7 Session Synchronization—Synchronizes the source IP address table used for persistence to backend servers.

The sections that follow describe how the cluster uses synchronized data.

Traffic to TCP virtual servers

When Layer 4 synchronization is enabled, the cluster nodes share TCP connection state and Layer 4 source IP address data for traffic to Layer 4 virtual servers (and Layer 2 TCP and Turbo HTTP virtual servers, which are packet-based). The node that receives the first SYN packet forwards the traffic to the real server, and, at the same time, multicasts the session data to the other nodes in the cluster.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

354

Chapter 14: High Availability Deployments Deploying an active-active cluster

Figure 66

illustrates the sequence of the traffic flow when client-to-server and server-to-client session traffic are routed through the same node.

Figure  66:   TCP traffic flow when ECMP results in forwarding through same node

355

1. Router A uses ECMP to select a cluster node to which to forward a client connection request—in this case, node1.

2. The cluster node forwards the traffic to a real server and multicasts the session data to the cluster via the data port.

3. Router B uses ECMP to select a cluster node to which to forward the server response traffic—also node1.

4. The cluster node forwards the traffic to the client and multicasts the session data to the cluster.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Deploying an active-active cluster Chapter 14: High Availability Deployments

Figure 67

illustrates the sequence of the traffic flow when client-to-server and server-to-client session traffic are routed through different nodes and synchronization has occurred before the second node receives the response traffic.

Figure  67:  TCP traffic flow when synchronization has occurred

1. Router A uses ECMP to select a cluster node to which to forward a client connection request—in this case, node1.

2. The cluster node forwards the traffic to a real server and multicasts the session data to the cluster via the data port.

3. Router B uses ECMP to select a cluster node to which to forward the server response traffic. In this case, it selects node2.

4. If the session has already been synchronized between node1 and node2, node2 forwards the traffic to the client and multicasts the session data to the cluster.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

356

Chapter 14: High Availability Deployments Deploying an active-active cluster

Figure 68

illustrates the sequence of the traffic flow when client-to-server and server-to-client session traffic are routed through different nodes and synchronization has not yet occurred when the second node receives the response traffic.

Figure  68: TCP traffic flow when synchronization has not yet occurred

357

1. Router A uses ECMP to select a cluster node to which to forward a client connection request—in this case, node1.

2. The cluster node forwards the traffic to a real server and multicasts the session data.

3. Router B uses ECMP to select a cluster node to which to forward the server response traffic. In this case, it selects node2.

4. Because the session has not yet been synchronized between node1 and node2, node2 multicasts the traffic to the cluster.

5. When node1 receives traffic from node2, it forwards the traffic to the client and multicasts the session data.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Deploying an active-active cluster Chapter 14: High Availability Deployments

Traffic to HTTP virtual servers

When Layer 7 synchronization is enabled, the cluster nodes share source IP data for traffic to HTTP virtual servers differently when the virtual server profile Source option is enabled. When the Source option is enabled, the traffic FortiADC forwards to the real server has the client source IP address; when disabled, it has the

FortiADC HA cluster node IP address.

Figure 69

illustrates the sequence of the traffic flow when the Source option is not enabled.

Figure  69:  HTTP traffic flow when the Source profile option is not enabled

1. Router A uses ECMP to select a cluster node to which to forward a client connection request—in this case, node1.

2. The cluster node forwards the traffic to a real server. Because the Source option was not enabled, the source IP address in the FortiADC-to-real-server traffic is the node1 HA cluster node IP address, and this becomes the destination IP address for the response traffic.

3. Router B does not use ECMP; instead, it forwards the traffic to the node1 HA cluster IP address.

4. The cluster node finds the real client IP address in its session table and forwards the traffic to the client.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

358

Chapter 14: High Availability Deployments Deploying an active-active cluster

Figure 70

illustrates the sequence of the traffic flow when the Source option is enabled.

Figure  70:  HTTP traffic flow when the Source profile option is enabled

359

1. Router A uses ECMP to select a cluster node to which to forward a client connection request—in this case, node1.

2. The cluster node forwards the traffic to a real server. Because the Source option is enabled, the source IP address in the FortiADC-to-real-server traffic is the true client IP address, and this becomes the destination IP address for the server-to-client traffic.

3. Router B uses ECMP and might forward the traffic to any node in the cluster. In this example, it forwards the traffic to node2.

4. Because the server-to-client response was not expected by node2, it multicasts the traffic to the cluster.

5. When node1 receives the server-to-client response data from node2, it forwards the response to the client.

Note: In an active-active deployment, the virtual server profile Source option adds latency to the transaction. To reduce latency, use an alternative to the Source option, such as the X-Forwarded-For option, if you have a requirement that the original client IP be logged by the real server.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Deploying an active-active cluster Chapter 14: High Availability Deployments

FTP traffic and traffic processed by firewall rules

In an active-active deployment, FTP traffic and firewall traffic are always forwarded through the primary node only.

FTP has both a control connection and a data connection associated with client-server communication. The two

“channels” make it difficult to support asymmetric routes in an active-active cluster.

In addition, traffic processed by the stateful firewall rules is also not load-balanced.

Figure 71

illustrates the sequence of the traffic flow when ECMP results in traffic being forwarded through the primary node.

Figure  71: FTP or firewall traffic flow when ECMP selects the primary node

1. Router A uses ECMP to select a cluster node to which to forward a client connection request. In this case, it selects the primary node, node1.

2. The primary node forwards the traffic to a real server.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

360

Chapter 14: High Availability Deployments Deploying an active-active cluster

3. Router B uses ECMP to select a cluster node to which to forward the server response traffic—also node1.

4. The primary node forwards the traffic to the client.

Figure 72

illustrates the sequence of the traffic flow when ECMP results in an asymmetric route.

Figure  72: FTP or firewall traffic flow when ECMP results in an asymmetric route

361

1. Router A uses ECMP to select a cluster node to which to forward a client connection request. In this case, it selects the primary node, node1.

2. The cluster node forwards the traffic to a real server.

3. Router B uses ECMP to select a cluster node to which to forward the server response traffic—in this case, node2.

4. Because the server-to-client response was not expected by node2, it forwards traffic to the cluster.

5. When the primary node receives traffic from node2, it forwards it to the client.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Deploying an active-active cluster Chapter 14: High Availability Deployments

Figure 73

illustrates the sequence of the traffic flow when ECMP results in client-to-server traffic sent to a nonprimary node.

Figure  73: FTP or firewall traffic flow when ECMP results in traffic sent to a non-primary node

1. Router A uses ECMP to select a cluster node to which to forward a client connection request to a real server destination IP address. In this case, it selects a member node, node3.

2. Firewall traffic is forwarded by the primary node only, so node3 multicasts the session data to the cluster.

3. The primary node forwards the traffic to a real server.

4. Router B uses ECMP to select a cluster node to which to forward the server response traffic—in this case, node2.

5. Because the server-to-client response was not expected by node2, it forwards traffic to the cluster.

6. When the primary node receives traffic from node2, it forwards it to the client.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

362

Chapter 14: High Availability Deployments Advantages of HA Active-Active-VRRP

Best practice tips

The following tips are best practices: l l

Be careful to maintain the heartbeat link(s). If the heartbeat is accidentally interrupted, such as when a network cable is temporarily disconnected, the other nodes assume that the primary node has failed. In an active-active deployment, a new primary node is elected among member nodes. If no failure has actually occurred, both nodes can be operating as primary nodes simultaneously.

If you link HA appliances through switches, to improve fault tolerance and reliability, link the ports through two

separate switches. Also, do not connect these switches to your overall network, which could introduce a potential attack point, and could also allow network load to cause latency in the heartbeat, which could cause an unintentional failover.

Advantages of HA Active-Active-VRRP

Compared with HA Active-Passive or Active-Active clusters, an HA Active-Active-VRRP cluster offers the following advantages: l l l l l l l

The HA Active-Active mode is an device-based HA mode, in which the HA fail over will switch over the whole failed device even in cases where only one monitor port fails.

In FortiADC HA Active-Active-VRRP mode, you can manually assign a virtual server to a traffic group, enabling you to do traffic load design based on virtual servers.

In HA Active-Active-VRRP mode, FortiADC only synchronizes the session table/persistence table to the next available device in the same traffic group using the “failover-order “ command. In cases where you have more than two devices in the cluster, this synchronization mechanism can turn out to be more efficient than HA Active-Passive or Active-Active mode because the session/persistence table will be synced to the whole HA group. In this sense,

FortiADC actually supports the N+M hot-backup function.

HA Active-Active mode must work together with an external router with the ECMP route configured to distribute traffic to different Active-Active nodes; HA Active-Active-VRRP mode does not need this external router to do ECMP traffic distribution — Both sides can simply point their respective gateway to the VRRP floating IP.

In HA Active-Active-VRRP mode, different devices in the same traffic group have the same HA status. Once you have pointed both the client and the server side gateways to the floating IP in the same traffic, the incoming/outgoing traffic will going to the same device. As a result, HA Active-Active-VRRP mode doesn't need to multicast the traffic itself to the HA group, which should offer the best network performance and efficiency.

In HA Active-Active mode, the AA-Master will take over all AA-NotWorking nodes' traffic. If multiple AA devices have failed, the AA-Master will have to process much more traffic than the AA-Slave nodes, which may exhibit some unexpected behavior under abnormal high traffic stress.

In terms of sync session, you are unable to access the real server’s IP address from the client directly in HA Active-

Active mode, but you don’t have this limitation in HA Active-Active-VRRP mode.

Deploying an active-active-VRRP cluster

This topic includes the following information: l l

Configuration overview

Basic steps

363 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Configuration overview l

Best practice tips

Chapter 14: High Availability Deployments

Configuration overview

The Virtual Router Redundancy Protocol (VRRP) is designed to eliminate the single point of failure inherent in the static default routed environment. VRRP specifies an election protocol that dynamically assigns responsibility for a virtual router to one of the VRRP routers on a LAN. The VRRP router controlling the IP address(es) associated with a virtual router is called the Master, and forwards packets sent to these IP addresses. The election process provides dynamic fail-over in the forwarding responsibility should the Master become unavailable. Any of the virtual router's IP addresses on a LAN can then be used as the default first hop router by end-hosts. The advantage of VRRP is a higher availability default path without requiring configuration of dynamic routing or router discovery protocols on every end-host.

A virtual router is defined by its virtual router identifier (VRID) and a set of IP addresses. A VRRP router may associate a virtual router with its real address on an interface, and may also be configured with additional virtual router mappings and priority that the virtual router can back up. The mapping between VRID and addresses must be coordinated among all VRRP routers on a LAN.

FortiADC only adopts the VRRP concept, but not the exact VRRP protocol itself. For this reason, its HA Active-

Active VRRP mode cab only be called a VRRP-like HA mode

VRRP configurations can be used as a high availability (HA) solution to ensure that your network maintains connectivity with the Internet (or with other networks) even if the default router for your network fails. Using

VRRP, you can assign VRRP routers as master or backup routers. The master router processes traffic, while the backup routers monitor the master router and start forwarding traffic the moment the master router fails.

VRRP is described in RFC 3768.

FortiADC units can function as master or backup Virtual Router Redundancy Protocol (VRRP) routers and can be quickly and easily integrated into a network that has already deployed VRRP. In a VRRP configuration, when a

FortiADC unit operating as the master unit fails, a backup unit automatically takes its place and continues processing network traffic. In such a situation, all traffic to the failed unit transparently fails over to the backup unit that takes over the role of the failed master FortiADC unit. When the failed FortiADC unit is restored, it will once again take over processing traffic for the network.

Figure  74: An active-active-VRRP cluster configuration using two FortiADC units

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

364

Chapter 14: High Availability Deployments Basic steps

In an active-active-VRRP cluster, one of the nodes is selected as the primary node of a traffic group, and the rest of the nodes are member nodes of the traffic group. Traffic from the upstream can be load-balanced among up to eight member nodes. Active-active-VRRP clusters also support failover. If the primary node fails, the traffic group work on this node will fail over to one of the backup nodes which will send gratuitous ARP to adjacent devices to redirect traffic for its own MAC address to all network interfaces within the traffic group.

The FortiADC VRRP configuration involves the following: l l l

Traffic group and their features

Interface and virtual server (pertinent floating IP and traffic group )

HA

Note:It is important to note that FortiADC only supports VRRP configuration between two or more FortiADC units. It can NOT be integrated into a VRRP group formed with any third-party VRRP devices.

Basic steps

To deploy an active-active-VRRP cluster:

1. Configure the HA active-active--VRRP cluster.

https://support.fortinet.com/

For example: config system ha set mode active-active-vrrp set hbdev port2

365 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Best practice tips Chapter 14: High Availability Deployments end set group-id 14 set local-node-id 1

2. Configure the traffic group.

Configure the traffic group and set its parameters. The failover sequence must be configured according to the order of node IDs. This means that if a node is dead, the next node in queue will take over handling the traffic. If you want to decide when a node should retake the traffic over from power-down to start-up, you can enable the preempt.

If only two nodes, connect the two appliances directly with a crossover cable.

If more than two nodes, link the appliances through a switch. If connected through a switch, the interfaces must be reachable by Layer 2 multicast.

config system traffic-group edit "traffic-group-1" end set failover-order 1 2 next

3. Configure applications and relate them with the traffic group

Relate applications with the traffic group in the virtual server configuration and interface + IP configuration. If no traffic group is related, the “default” traffic group will be used.

For example (Relate a virtual server to a traffic group): config load-balance virtual-server edit "vs1" set packet-forwarding-method FullNAT set interface port1 set ip 10.128.3.4

set load-balance-profile LB_PROF_HTTP set load-balance-method LB_METHOD_DEST_IP_HASH set load-balance-pool rs1 set ippool-list vs1-pool vs1-pool-1 set traffic-group traffic-group-1 next

For example (Relate an interface and IP address with a traffic group): edit "port1" set vdom root set ip 10.128.3.1/16 set allowaccess https ping ssh snmp http telnet set traffic-group traffic-group-1 set floating enable set floating-ip 10.128.3.3

end next

Best practice tips

The following tips are best practices:

Note

: After you have saved the HA configuration changes, cluster members join or rejoin the cluster. After you have saved configuration changes on the primary node, it automatically pushes its configuration to the

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

366

Chapter 14: High Availability Deployments

member nodes.

Best practice tips

367 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 15: Virtual Domains

Chapter 15: Virtual Domains

Virtual domain basics

This chapter includes the following topics: l l l l l l

Virtual domain basics

Enabling the virtual domain feature

Creating virtual domains

Assigning network interfaces and admin users to VDOMs

Virtual domain policies

Disabling virtual domains

Virtual domain basics

A virtual domain (VDOM) is a complete FortiADC instance that runs on the FortiADC platform. The VDOM feature supports multitennant deployments. To do this, you create a virtual domain configuration object that contains all of the system and feature configuration options of a full FortiADC instance, and you provision an administrator account with privileges to access and manage only that VDOM.

Note: The super user admin can access all VDOMs that have been created on the system, but the administrator accounts that are provisioned for a VDOM can access only that particular VDOM.

To use the VDOM feature, complete the following steps:

1. Enable the virtual domain feature.

2. Create a virtual domain configuration object.

3. Assign network interfaces and administrators to the virtual domain.

Enabling the virtual domain feature

You can use the web UI to enable the virtual domain feature. By default, the virtual domain feature is not enabled, and the GUI for virtual domain configuration is hidden.

Before you begin: l

You must have super user permission (user admin) to enable the virtual domain feature.

To enable the virtual domain feature:

1. Go to System > Settings.

The configuration page displays the Basic tab.

2. Enable Virtual Domain.

3. Save the configuration.

Note: You can also enable the virtual domain feature from the System Information panel under Dashboard >

Status.

368 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Creating virtual domains Chapter 15: Virtual Domains

Figure 75

shows the landing page after the admin administrator logs into the system when the virtual domain feature is enabled. From here, the admin administrator can create virtual domains, assign network interfaces to virtual domains, create admin users for virtual domains, and navigate to the system and feature configuration pages for the virtual domains, including the root (default) domain.

When a user with a delegated administrator account logs in, the landing page is the standard landing page.

These users cannot perform the tasks related to virtual domain administration that the admin administrator performs.

Figure  75:  Super admin login with virtual domain

Creating virtual domains

By default, FortiADC has a predefined virtual domain named root that you cannot delete or modify. The admin user can add, delete, enable, and disable virtual domains.

Before you begin: l l

You must have super user permission (user admin) to create virtual domains.

You must have super user permission (user admin) to assign network interfaces to virtual domains.

To create a virtual domain:

1. Go to Virtual Domain.

2. Click Add, enter a unique name for the virtual domain.

3. Save the configuration.

Assigning network interfaces and admin users to VDOMs

By default, all network interfaces are assigned to the root virtual domain. After you have created the virtual domain, you can assign network interfaces to it.

To assign a network interface to a virtual domain:

1. Go to Networking > Interface.

2. Double-click an interface configuration or click Add to create one.

3. Configure interface settings and select the virtual domain.

4. Save the configuration.

When virtual domain administrators log into the FortiADC system, they only see configuration settings and data for the virtual domain that you assigned them to. They do not see the Virtual Domains menu in the navigation pane.

To create an administrator for a virtual domain:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

369

Chapter 15: Virtual Domains

1. Go to System > Administrator.

2. Click Add to create an administrator.

3. Configure administrator settings and select the virtual domain.

4. Save the configuration.

Virtual domain policies

Virtual domain policies

FortiADC allows you to create and impose custom policies or restrictions on each virtual domain you have added.

For each virtual domain, you can configure the maximum range for its Dynamic Resources and Static Resources.

Dynamic Resources are related to a virtual domain's performance, while Static Resources are related to its

configuration. The Vdom configuration dialog ( Figure 76

) also shows a virtual domain's current configuration and workload settings, which serve as good reference points for you to fine-tune the virtual domain.

Figure  76: Vdom configuration

370 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Disabling virtual domains Chapter 15: Virtual Domains

Disabling virtual domains

To disable the virtual domain feature:

1. Assign all network interfaces and administrators to the root virtual domain.

2. Delete all virtual domains.

3. Clear the Virtual Domain option.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

371

Chapter 16: SSL Transactions

Chapter 16: SSL Transactions

SSL offloading

This chapter includes the following topics: l l l l l l l

SSL offloading

SSL decryption by forward proxy

Profile configurations

Certificate guidelines

SSL/TLS versions and cipher suites

Exceptions list

SSL/HTTP mirror traffic

SSL offloading

You can use FortiADC in a Layer 7 load balancing topology to offload SSL decryption from the real server farm. In these deployments, FortiADC uses a copy of the real server certificate and private key to negotiate the

SSL connection. FortiADC acts as an SSL proxy for the server, using the certificates and keys to: l l l authenticate itself to clients decrypt requests encrypt responses

When session data has been decrypted, you can use the FortiADC content rewriting, content routing, and web application firewall features.

372 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

SSL offloading

Figure  77: SSL offloading

Chapter 16: SSL Transactions

FortiADC forwards data unencrypted to the servers, and the servers can maximize performance because they are processing HTTP and not HTTPS transactions.

To realize the benefits of offloading and maintain security, you must deploy the FortiADC appliance in a trusted network with direct path to the real servers so the connection between the FortiADC and the real server does not have to be re-encrypted. For example, you connect FortiADC and the real servers through the same switch, and all are located physically in the same locked rack.

In cases where traffic is forwarded along untrusted paths towards real servers, you can use a real server SSL profile to re-encrypt the data before forwarding it to the real servers.

Basic steps:

1. Import the X.509 v3 server certificates and private keys that ordinarily belong to the backend servers, as well as any certificate authority (CA) or intermediate CA certificates that are used to complete the chain of trust between your clients and your servers.

2. Configure a local certificate group that includes the server's local certificate and the Intermediate CA group that contains the Intermediate CAs.

3. Configure a virtual server profile that references the local certificate group and specifies the allowed SSL/TLS versions and list of SSL ciphers that can be used for the SSL connection between the client and the FortiADC.

Select this profile when you configure the virtual server.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

373

Chapter 16: SSL Transactions SSL decryption by forward proxy

4. Configure a real server SSL profile that enables or disables SSL for the connection between the FortiADC and the real server. If enabled, specify the SSL/TLS versions and list of SSL ciphers that can be used. Select this profile when you configure the real server pool.

SSL decryption by forward proxy

You can use SSL decryption by forward proxy in cases where you cannot copy the server certificate and private key to the FortiADC, either because it is impractical or impossible (in the case of outbound traffic to unknown

Internet servers).

When SSL forward proxy is enabled, FortiADC is a proxy to both sides of the connection. The server certificate and private key used to negotiate the SSL connection with the client are dynamically derived from the certificate presented by the real server and chained with an Intermediate CA trusted by the client.

Basic steps:

1. Import a special Intermediate CA and private key that that you have provisioned for SSL forward proxy operations.

2. Configure an Intermediate CA group. Make the member that includes the special Intermediate CA the default for the group.

3. Configure a local certificate group that includes any local certificate (including the factory certificate) and the

Intermediate CA group that contains the special Intermediate CA. Make this member the default.

4. Configure a virtual server profile that enables SSL proxy, references the local certificate group, and specifies the allowed SSL/TLS versions and list of SSL ciphers that can be used for the SSL connection between the client and the FortiADC. Select this profile when you configure the virtual server.

5. Configure a real server SSL profile that enables or disables SSL for the connection between the FortiADC and the real server. If enabled, specify the SSL/TLS versions and list of SSL ciphers that can be used. Select this profile when you configure the real server pool.

Layer 7 deployments

Figure 78

illustrates a Layer 7 SSL forward proxy deployment similar to the SSL offloading example—inbound traffic to your server farm. When the FortiADC virtual server receives the ClientHello message, it selects a real server and sends its own ClientHello to the server to set up its own SSL session with it (represented by the dashed line in the figure). FortiADC uses the certificate presented by the server to derive the certificate to present to the client. This derived certificate is signed by an Intermediate CA that is trusted by the client, so the client completes its handshake with the FortiADC, and FortiADC can decrypt the traffic.

374 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

SSL decryption by forward proxy

Figure  78: Layer 7 SSL decryption by forward proxy

Chapter 16: SSL Transactions

Table 146

summarizes the pros and cons of Layer 7 SSL decryption methods.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

375

Chapter 16: SSL Transactions SSL decryption by forward proxy

 Table 146: Layer 7 SSL decryption methods

Method Pros

SSL offloading Better performance.

No feature limitations.

In most cases, you do not need to maintain SSL functionality (certificates and keys, SSL ports) on the real servers.

SSL forward proxy

Cons

You must be able to copy the local certificates and private keys from the real servers.

You do not need to copy the local certificates and keys from the real servers.

Instead, you add only one Intermediate CA and private key to be used for all the HTTPS servers.

Performance cost associate with SSL proxy operations and certificate resigning.

You need to maintain SSL functionality on the real servers.

Incompatible with some features because the server must be selected before the client request is decrypted:

Incompatible features include: l

Some load balancing methods (only

Round Robin and Least Connection are supported) l

Some persistence methods (only Source

Address, Source Address Hash, Source

Address-Port Hash, and SSL Session

ID are supported) l

Client SNI Required option l

Content routing

Layer 2 deployments

You can use FortiADC in a Layer 2 sandwich toplogy to offload SSL decryption tasks from FortiGate.

Figure 79

shows the topology. To decrypt traffic to and from external HTTPS destinations, you must use SSL forward proxy.

When the FortiADC virtual server receives the ClientHello message, it sends its own ClientHello to the destination server in order to fetch the server certificate so that it can be manipulated. The FortiGate and second

FortiADC in the network path must be configured to pass-through this HTTPS traffic. FortiADC uses the server certificate to derive a certificate to present to the client. This derived certificate is signed by an Intermediate CA that is trusted by the client, so the client completes its handshake with the first FortiADC, and FortiADC decrypts the traffic.

In a sandwich deployment like this one, you do not want to re-encrypt the traffic until it egresses the second

FortiADC. You control server-side SSL with the real server SSL profile configuration, discussed next.

376 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Profile configurations

Figure  79: Layer 2 SSL decryption by forward proxy

Chapter 16: SSL Transactions

Profile configurations

The virtual server profile determines settings for the client-FortiADC connection; the real server SSL profile determines settings for the FortiADC-real server connection. This granularity gives you flexibility in how you leverage FortiADC SSL transaction capabilities. For example, in the case of SSL offloading, your goal is to

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

377

Chapter 16: SSL Transactions Profile configurations eliminate SSL transactions on the real servers, so you can configure a server-side SSL profile that does not use

SSL. Or it could be the case that the back-end real servers support only SSLv2, but you want to use the more secure TLSv1.2 for the client-FortiADC segment.

Figure 80

illustrates the basic idea of client-side and server-side profiles.

Figure  80: SSL profiles

378

The callouts in

Figure 81

have guidance for the two types of profiles used in a Layer 2 sandwich deployment.

In this deployment, the FortiADC 1 virtual server is a Layer 2 HTTPS virtual server configuration. Its virtual server

HTTPS profile supports SSL forward proxy, including the special Intermediate CA. For Layer 2 virtual servers, the

"real server" target is the next hop. In this case, the real server target is the FortiGate pool. In the real server SSL profile, SSL is not enabled, so FortiADC 1 does not re-encrypt the SSL connection. (However, you can configure allowed SSL versions and ciphers, and you can configure an SSL certificate verification policy to enforce rules and checks on the destination server cerfificate.) The virtual server HTTPS profile settings are used when reencrypting the server response traffic in the return segment to the client.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Profile configurations Chapter 16: SSL Transactions

The FortiADC 2 virtual server is a Layer 2 HTTP virtual server configuration. It receives unencrypted traffic from

FortiGate. Its server pool is the next hop gateway. On its server side, FortiADC uses the real server SSL profile settings when it encrypts the outbound SSL connection and decrypts the inbound response traffic.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

379

Chapter 16: SSL Transactions

Figure  81: Layer 2 sandwich profiles

Profile configurations

380

For information on virtual server profile configuration objects, see

Configuring Application profiles .

For information on real server SSL configuration objects, see

Configuring real server SSL profiles

.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Certificate guidelines Chapter 16: SSL Transactions

Certificate guidelines

When a client browser requests an HTTPS connection to a web server, the server presents a server certificate to the client for verification. The client checks the content of the certificate against a local browser database of

Certificate Authorities, and if it finds a match, the connection is made. If no match is found, the browser displays a warning that asks if you want to continue with the connection.

To avoid this warning, you must upload an Intermediate CA signed by one of the CA vendors that has its root certificates preinstalled in the web browsers. When the vendor issues you a local server certificate for your website, it typically includes the Intermediate CAs in your package.

For SSL offloading deployments, you create a local certificate group that references the local certificate for the server and its Intermediate CA group (a group that references all Intermediate CAs the vendor provided with your certificate package).

For SSL decryption by forward proxy deployments, you create a local certificate group that references any local certificate and an Intermediate CA group that includes the Intermediate CA and private key configuration you have provisioned for the SSL forward proxy operations.

You are not required to obtain SSL certificates from SSL vendors. You can use an enterprise certificate server (like Microsoft CertSrv) or open-source tools like OpenSSL or to generate them. Note, however, that a web browser will not trust the certificate unless it is associated with a certificate installed in the browser. If you use your own tools to generate the Intermediate CA, you must distribute that certificate to client browsers in whatever manner you typically do that—automatic update package from

IT, manual distribution, and so on.

For information on importing certificates and configuring certificate configuration objects, see

Manage and validate certificates .

SSL/TLS versions and cipher suites

An SSL cipher is an algorithm that performs encryption and decryption. It transforms plain text into a coded set of data (cipher text) that is not reversible without a key. During the SSL handshake phase of the connection, the client sends a list of the ciphers it supports. FortiADC examines the client cipher list in the order it is specified, chooses the first cipher that matches a cipher specified in the virtual server configuration, and responds to the client. If none of the ciphers offered by the client are in the cipher suite list for the virtual server, the SSL handshake fails.

To see the list of ciphers supported by the browser you are using, go to a link maintained by the Leibniz University of Hannover Distributed Computing & Security (DCSec) Research Group: https://cc.dcsec.uni-hannover.de/

FortiADC SLB profiles support a specific list of RSA ciphers , PFS ciphers , ECDHE ciphers , and eNull ciphers .

Table 147

lists supported RSA ciphers.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

381

Chapter 16: SSL Transactions SSL/TLS versions and cipher suites

 Table 147: Cipher suites with RSA key exchange

Abbreviation Cipher Suite Protocol Kx

AES256-GCM-

SHA384

TLS_RSA_WITH_AES_256_

GCM_SHA384

TLS 1.2

RSA

AES256-SHA256

AES256-SHA

AES128-GCM-

SHA256

AES128-SHA256

AES128-SHA

RC4-SHA

RC4-MD5

TLS_RSA_WITH_AES_256_

CBC_SHA256

TLS_RSA_WITH_AES_256_

CBC_SHA

TLS 1.2

RSA

SSL 3.0

TLS 1.2,

1.1, 1.0

TLS 1.2

RSA

RSA TLS_RSA_WITH_AES_128_

GCM_SHA256

TLS_RSA_WITH_AES_128_

CBC_SHA256

TLS_RSA_WITH_AES_128_

CBC_SHA

TLS 1.2

RSA

SSL 3.0

TLS 1.2,

1.1, 1.0

RSA

SSL_RSA_WITH_RC4_128_SHA SSL 3.0

TLS_RSA_WITH_RC4_128_SHA TLS 1.2,

1.1, 1.0

SSL_RSA_WITH_RC4_128_

MD5

SSL 3.0

RSA

RSA

RSA

DES-CBC3-SHA

DES-CBC-SHA

TLS_RSA_WITH_RC4_128_

MD5

SSL_RSA_WITH_3DES_EDE_

CBC_SHA

TLS_RSA_WITH_3DES_EDE_

CBC_SHA

SSL_RSA_WITH_DES_CBC_

SHA

TLS_RSA_WITH_DES_CBC_

SHA

TLS 1.2,

1.1, 1.0

SSL 3.0

RSA

RSA

TLS 1.2,

1.1, 1.0

SSL 3.0

TLS 1.2,

1.1, 1.0

RSA

RSA

RSA

Au

RSA

RSA

RSA

RSA

RSA

RSA

RSA

RSA

RSA

RSA

RSA

RSA

RSA

RSA

Enc

AESGCM

(256)

AES(256)

AES(256)

AESGCM

(128)

AES(128)

AES(128)

RC4

RC4

RC4

RC4

DES-

CBC3

DES-

CBC3

DES-

CBC

DES-

CBC

MAC

AEAD

SHA

SHA

AEAD

SHA

SHA

SHA

SHA

MD5

MD5

SHA

SHA

SHA

SHA

With RSA ciphers, the server's public RSA key is part of the server certificate and is typically very long lived. It is not uncommon for the same public key to be used for months or years. This creates a potential problem: if an

SSL server's private key were to be leaked or stolen, all connections made in the past using that key would be vulnerable. If someone has recorded your SSL connections, they can use the stolen private key to decrypt them.

382 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

SSL/TLS versions and cipher suites Chapter 16: SSL Transactions

Table 148

lists supported Perfect Forward Secrecy (PFS) ciphers with DHE/EDH key exchange. With PFS, a fresh public key is created for every single connection.That means that an adversary would need to break the key for each connection individually to read the communication.

 Table 148: Cipher suites with DHE/EDH key exchange

Abbreviation Cipher Suite Protocol Kx Au Enc MAC

DHE-RSA-AES256-GCM-

SHA384

TLS_DHE_RSA_WITH_AES_

256_GCM_SHA384

TLS 1.2

DH RSA AES256 SHA384

TLS 1.2

DH RSA AES256 SHA256 DHE-RSA-AES256-

SHA256

TLS_DHE_RSA_WITH_AES_

256_CBC_SHA256

DHE-RSA-AES256-SHA TLS_DHE_RSA_WITH_AES_

256_CBC_SHA

SSL 3.0

TLS 1.2,

1.1, 1.0

DH RSA AES256 SHA256

TLS 1.2

DH RSA AES128 SHA256 DHE-RSA-AES128-GCM-

SHA256

TLS_DHE_RSA_WITH_AES_

128_GCM_SHA256

DHE-RSA-AES128-

SHA256

TLS_DHE_RSA_WITH_AES_

128_CBC_SHA256

TLS 1.2

DH RSA AES128 SHA256

DHE-RSA-AES128-SHA TLS_DHE_RSA_WITH_AES_

128_CBC_SHA

EDH-RSA-DES-CBC3-

SHA

EDH-RSA-DES-CBC-SHA

TLS_DHE_RSA_WITH_3DES_

EDE_CBC_SHA

TLS_DHE_RSA_WITH_DES_

CBC_SHA

SSL 3.0

TLS 1.2,

1.1, 1.0

DH RSA AES128 SHA

SHA SSL 3.0

TLS 1.2,

1.1, 1.0

DH RSA 3DES

SSL 3.0

TLS 1.2,

1.1, 1.0

DH RSA DES SHA

Table 149

lists supported PFS ciphers with Elliptic curve Diffie–Hellman Ephemeral key (ECDHE) key exchange.

ECDHE is significantly faster than DHE. The supported suites include both the Elliptic Curve Digital Signature

Algorithm (ECDSA) and RSA key authentication (Au) algorithms.

 Table 149: Cipher suites with EDCHE key exchange

Abbreviation Cipher Suite Protocol Kx Au Enc MAC

ECDHE-ECDSA-

AES256-GCM-

SHA384

TLS_ECDHE_ECDSA_

WITH_AES_256_GCM_

SHA384

TLS 1.2

ECDH ECDSA AESGCM256 AEAD

ECDHE-ECDSA-

AES256-SHA384

TLS_ECDHE_ECDSA_

WITH_AES_256_CBC_

SHA384

TLSv1.2

ECDH ECDSA AES256 SHA384

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

383

Chapter 16: SSL Transactions SSL/TLS versions and cipher suites

Abbreviation

ECDHE-ECDSA-

AES256-SHA

ECDHE-ECDSA-

AES128-GCM-

SHA256

ECDHE-ECDSA-

AES128-SHA256

ECDHE-ECDSA-

AES128-SHA

ECDHE-ECDSA-

RC4-SHA

ECDHE-ECDSA-

DES-CBC3-SHA

ECDHE-RSA-

AES256-GCM-

SHA384

ECDHE-RSA-

AES256-SHA384

ECDHE-RSA-

AES256-SHA

ECDHE-RSA-

AES128-GCM-

SHA256

ECDHE-RSA-

AES128-SHA256

ECDHE-RSA-

AES128-SHA

Cipher Suite Protocol Kx Au Enc

TLS_ECDHE_RSA_

WITH_AES_256_CBC_

SHA

SSL 3.0

TLS 1.2,

1.1, 1.0

ECDH ECDSA AES256

TLS_ECDHE_ECDSA_

WITH_AES_128_GCM_

SHA256

TLSv1.2

ECDH ECDSA AESGCM128

TLS_ECDHE_ECDSA_

WITH_AES_128_CBC_

SHA256

TLSv1.2

ECDH ECDSA AES128

TLS_ECDHE_ECDSA_

WITH_AES_128_CBC_

SHA

SSL 3.0

TLS 1.2,

1.1, 1.0

ECDH ECDSA AES128

TLS_ECDHE_ECDSA_

WITH_RC4_128_SHA

TLS_ECDHE_ECDSA_

WITH_3DES_EDE_

CBC_SHA

SSL 3.0

TLS 1.2,

1.1, 1.0

ECDH ECDSA RC4

SSL 3.0

TLS 1.2,

1.1, 1.0

ECDH ECDSA 3DES

AESGCM256 TLS_ECDHE_RSA_

WITH_AES_256_GCM_

SHA384

TLS 1.2

ECDH RSA

AES256 TLS_ECDHE_RSA_

WITH_AES_256_CBC_

SHA384

TLS 1.2

ECDH RSA

TLS_ECDHE_RSA_

WITH_AES_256_CBC_

SHA

TLS 1.2

ECDH RSA AES256

TLS_ECDHE_RSA_

WITH_AES_128_GCM_

SHA256

TLS 1.2

ECDH RSA

TLS_ECDHE_RSA_

WITH_AES_128_CBC_

SHA256

TLS 1.2

ECDH RSA

TLS_ECDHE_RSA_

WITH_AES_128_CBC_

SHA

SSL 3.0

ECDH RSA

AESGCM128

AES128

AES128

MAC

SHA

AEAD

SHA256

SHA

SHA

SHA

AEAD

SHA384

SHA

AEAD

SHA256

SHA

384 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Exceptions list Chapter 16: SSL Transactions

Abbreviation

ECDHE-RSA-RC4-

SHA

ECDHE-RSA-DES-

CBC3-SHA

Cipher Suite

TLS_ECDHE_RSA_

WITH_RC4_128_SHA

TLS_ECDHE_RSA_

WITH_3DES_EDE_

CBC_SHA

Protocol Kx Au

SSL 3.0

ECDH RSA

SSL 3.0

ECDH RSA

Enc

RC4

3DES

MAC

SHA

SHA

In addition, profiles support an eNull cipher option. This option represents all cipher suites that do not apply encryption to the application data (integrity check is still applied). The exact cipher suite used depends on the

SSL/TLS version used. As an example, in SSL v3.0, eNULL includes NULL-MD5, NULL-SHA, ECDH-RSA-NULL-

SHA, ECDH-ECDSA-NULL-SHA, and some other non-encryption cipher suites.

Finally, profiles support a user-specified cipher list. You can specify a colon-separated list of OpenSSL cipher suite short names. The names are validated against the form of the cipher suite short names published on the

OpenSSL website: https://www.openssl.org/docs/manmaster/apps/ciphers.html

Exceptions list

In some jurisdictions, SSL interception and decryption by forward proxy is disfavored for some types of websites or disallowed entirely. If necessary, you can use the L2 Exception List configuration to define destinations that should not have its sessions decrypted. You can leverage FortiGuard web filter categories, and you can configure a list of additional destinations.

You associate the L2 Exception List configuration with virtual servers that are in the path of outbound traffic. The virtual server evaluates whether an exception applies before processing the initial SSL client hello. If an exception applies, that connection is passed through, and it is not decrypted.

For information on creating the configuration, see

Configuring an L2 exception list .

SSL traffic mirroring

FortiADC supports mirroring packets (HTTPS/TCPS) to specified network interfaces. When the feature is enabled, SSL traffic will be mirrored to the specified ports by the virtual server after it has been decrypted.

The feature supports both IPv4 and IPv6. FortiADC can send traffic to up to four outgoing interfaces, including aggregated and VLAN interfaces. Mirrored traffic is transmitted as a single packet stream, using the original client-side source and destination IP address and port numbers. The source and destination MAC addresses are

0 (zero) in mirrored traffic. The feature requires a virtual server set to Layer 7 or Layer 2, with a profile configured for HTTPS or TCPS. It is supported on all FortiADC platforms.

Figure  82: SSL traffic mirroring

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

385

Chapter 16: SSL Transactions SSL traffic mirroring

386

Note that this feature is available via the CLI only, and has not yet been implemented on the GUI.

To enable this feature in a policy, execute the following command: config load-balance virtual-server edit vs-name set ssl-mirror enable set ssl-mirror-intf port1 port2 end next

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 17: Advanced Networking

Chapter 17: Advanced Networking

This chapter includes the following topics: l l l l l l l l l l l

Configure source NAT

Configuring the QoS filter

ISP routes

BGP

OSPF

IPv4 access list

IPv6 access list

IPv4 prefix list

IPv6 prefix list

TCP multiplexing

Reverse path route caching

Configure source NAT

You use source NAT (SNAT) when clients have IP addresses from private networks. This ensures you do not have multiple sessions from different clients with source IP 192.168.1.1, for example. Or, you can map all client traffic to a single source IP address because a source address from a private network is not meaningful to the FortiADC system or backend servers.

Figure 83

illustrates SNAT. The SNAT rule matches the source and destination IP addresses in incoming traffic to the ranges specified in the policy. If the client request matches, the system translates the source IP address to an address from the SNAT pool. In this example, a client with private address 192.168.1.1 requests a resource from the virtual server address at 192.0.2.1 (not the real server address 10.0.0.1; the real server address is not published). The two rule conditions match, so the system translates the source IP to the next address in the

SNAT pool—10.1.0.1. SNAT rules do not affect destination addresses, so the destination address in the request packet is preserved.

The system maintains this NAT table and performs the inverse translation when it receives the server-to-client traffic. Be sure to configure the backend servers to use the FortiADC address as the default gateway so that server responses are also rewritten by the NAT module.

Note: This SNAT feature is not supported for traffic to virtual servers. Use the virtual server SNAT feature instead.

387 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Figure  83:  SNAT

Chapter 17: Advanced Networking

Before you begin: l l

You must know the IP addresses your organization has provisioned for your NAT design.

You must have Read-Write permission for System settings.

To configure source NAT:

1. Go to Networking > NAT.

The configuration page displays the Source tab.

2. Click Add to display the configuration editor.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

388

Chapter 17: Advanced Networking

3. Complete the configuration as described in

Table 150 .

4. Save the configuration.

5. Reorder rules, as necessary.

 Table 150: Source NAT configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. After you initially save the configuration, you cannot edit the name.

Source

Destination

Address/mask notation to match the source IP address in the packet header. For example,

192.0.2.0/24.

Address/mask notation to match the destination IP address in the packet header. For example,

10.0.2.0/24.

Interface that forwards traffic.

Egress Interface

Translation Type l

IP Address—Select to translate the source IP to a single specified address.

l

Pool—Select to translate the source IP to the next address in a pool.

Translation to IP

Address

Pool Address

Range

Note: This option applies only when the Translation Type is set to IP address.

Specify an IPv4 address. The source IP address in the packet header will be translated to this address.

Note: This option applies only when Translation Type is set to Pool.

Specify the first IP address in the SNAT pool.

To

Traffic Group

Specify the last IP address in the SNAT pool.

Select a traffic group. Otherwise, the system will use the default traffic group.

Reordering

After you have saved a rule, reorder rules as necessary. The rules table is consulted from top to bottom. The first rule that matches is applied and subsequent rules are not evaluated.

Configure source NAT

You use source NAT (SNAT) when clients have IP addresses from private networks. This ensures you do not have multiple sessions from different clients with source IP 192.168.1.1, for example. Or, you can map all client traffic to a single source IP address because a source address from a private network is not meaningful to the FortiADC system or backend servers.

Figure 84

illustrates SNAT. The SNAT rule matches the source and destination IP addresses in incoming traffic to the ranges specified in the policy. If the client request matches, the system translates the source IP address to an address from the SNAT pool. In this example, a client with private address 192.168.1.1 requests a resource from the virtual server address at 192.0.2.1 (not the real server address 10.0.0.1; the real server address is not

389 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 17: Advanced Networking published). The two rule conditions match, so the system translates the source IP to the next address in the

SNAT pool—10.1.0.1. SNAT rules do not affect destination addresses, so the destination address in the request packet is preserved.

The system maintains this NAT table and performs the inverse translation when it receives the server-to-client traffic. Be sure to configure the backend servers to use the FortiADC address as the default gateway so that server responses are also rewritten by the NAT module.

Note: This SNAT feature is not supported for traffic to virtual servers. Use the virtual server SNAT feature instead.

Figure  84:  SNAT

Before you begin:

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

390

Chapter 17: Advanced Networking l l

You must know the IP addresses your organization has provisioned for your NAT design.

You must have Read-Write permission for System settings.

To configure source NAT:

1. Go to Networking > NAT.

The configuration page displays the Source tab.

2. Click Add to display the configuration editor.

3. Complete the configuration as described in

Table 151 .

4. Save the configuration.

5. Reorder rules, as necessary.

 Table 151: Source NAT configuration

Settings Guidelines

Name

Source

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. After you initially save the configuration, you cannot edit the name.

Address/mask notation to match the source IP address in the packet header. For example,

192.0.2.0/24.

Destination Address/mask notation to match the destination IP address in the packet header. For example,

10.0.2.0/24.

Interface that forwards traffic.

Egress Interface

Translation Type l

IP Address—Select to translate the source IP to a single specified address.

l

Pool—Select to translate the source IP to the next address in a pool.

Translation to IP

Address

Pool Address

Range

Note: This option applies only when the Translation Type is set to IP address.

Specify an IPv4 address. The source IP address in the packet header will be translated to this address.

Note: This option applies only when Translation Type is set to Pool.

Specify the first IP address in the SNAT pool.

To

Traffic Group

Specify the last IP address in the SNAT pool.

Select a traffic group. Otherwise, the system will use the default traffic group.

Reordering

After you have saved a rule, reorder rules as necessary. The rules table is consulted from top to bottom. The first rule that matches is applied and subsequent rules are not evaluated.

391 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Chapter 17: Advanced Networking

Configure 1-to-1 NAT

You can use 1-to-1 NAT when you want to publish public or “external” IP addresses for FortiADC resources but want the communication among servers on the internal network to be on a private or “internal” IP address range.

Figure 85

illustrates 1-to-1 NAT. The NAT configuration assigns both external and internal (or “mapped”) IP addresses to Interface 1. Traffic from the external side of the connection (such as client traffic) uses the external

IP address and port. Traffic on the internal side (such as the virtual server communication with real servers) uses the mapped IP address and port.

1-to-1 NAT is supported for traffic to virtual servers. The address translation occurs before the ADC has processed its rules, so FortiADC server load balancing policies that match source address (such as content routing and content rewriting rules) should be based on the mapped address space.

The system maintains this NAT table and performs the inverse mapping when it sends traffic from the internal side to the external side.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

392

Chapter 17: Advanced Networking

Figure  85:  One-to-One NAT

393

Before you begin: l l

You must know the IP addresses your organization has provisioned for your NAT design.

You must have Read-Write permission for System settings.

To configure one-to-one NAT:

1. Go to Networking > NAT.

2. Click the 1-to-1 NAT tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 152 .

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

QoS Chapter 17: Advanced Networking

5. Save the configuration.

6. Reorder rules, as necessary.

 Table 152: 1-to-1 NAT configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. After you initially save the configuration, you cannot edit the name.

External Interface Interface that receives traffic.

External Address

Range

Specify the first address in the range. The last address is calculated after you enter the mapped IP range.

Mapped Address

Range

Port Forwarding

Specify the first and last addresses in the range.

Port Forwarding

Protocol

Select to enable.

l

TCP l

UDP

External Port

Range

Mapped Port

Range

Traffic Group

Reordering

Specify the first port number in the range. The last port number is calculated after you enter the mapped port range.

Specify the first and last port numbers in the range.

Select a traffic group. Otherwise, the system will use the default.

After you have saved a rule, reorder rules as necessary. The rules table is consulted from top to bottom. The first rule that matches is applied and subsequent rules are not evaluated.

QoS

You can use quality-of-service (QoS) policies to provision bandwidth for any traffic that matches the rule. You might consider QoS policies for latency- or bandwidth-sensitive services, such as VoIP and ICMP.

The FortiADC system does not provision bandwidth based on the TOS bits (also called differentiated services) in the IP header to control packet queueing. Instead, the system provisions bandwidth based on a source/destination/service matching tuple that you specify.

Note: The QoS policy feature is not supported for traffic to virtual servers.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

394

Chapter 17: Advanced Networking QoS

Basic steps

1. Configure a

QoS queue

.

2. Configure a

QoS filter

or

QoS IPv6 filter .

Configuring a QoS queue

You must configure a queue before you configure a filter.

Before you begin: l

You must have Read-Write permission for System settings.

To configure a QoS queue:

1. Go to Networking > QoS.

2. Click the QoS Queue tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 153

5. Save the configuration.

 Table 153: QoS queue configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. After you initially save the configuration, you cannot edit the name.

Bandwidth Maximum bandwidth rate. Specify a number and a unit abbreviation. For example, specify

100K for 100 Kbps, 10M for 10 Mbps, and 1G for 1Gbps.

Configuring the QoS filter

A QoS filter is the policy that assigns traffic to the QoS queue.

Before you begin: l l l l

You must have a good understanding and knowledge of traffic in your network that requires QoS provisioning.

You must have created the address configuration objects and service configuration objects that define the matching tuple for QoS rules. Use the Shared Resources menu firewall address and service object configuration editor.

You must have created a QoS queue configuration object.

You must have Read-Write permission for System settings.

To configure QoS filter:

1. Go to Networking > QoS.

2. Click the QoS Filter tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 154 .

5. Save the configuration.

6. Reorder rules, as necessary.

395 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

QoS Chapter 17: Advanced Networking

 Table 154: QoS filter configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. After you initially save the configuration, you cannot edit the name.

Status

Queue

Enable/disable the filter.

Select the queue that will be used for packets that match the filter criteria.

Service

Source

Destination

Ingress Interface

Egress Interface

Select a service object to use to form the matching tuple.

Select a source address object to use to form the matching tuple.

Select a destination address object to use to form the matching tuple.

Select the interface that receives traffic.

Select the interface that forwards traffic.

After you have saved a rule, reorder rules as necessary. The rules table is consulted from top to bottom. The first rule that matches is applied and subsequent rules are not evaluated.

Configuring the QoS IPv6 filter

A QoS filter is the policy that assigns traffic to the QoS queue.

Before you begin: l l l l

You must have a good understanding and knowledge of traffic in your network that requires QoS provisioning.

You must have created the address configuration objects and service configuration objects that define the matching tuple for QoS rules. Use the Shared Resources menu firewall address and service object configuration editor.

You must have created a QoS queue configuration object.

You must have Read-Write permission for System settings.

To configure QoS filter:

1. Go to Networking > QoS.

2. Click the QoS IPv6 Filter tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 155 .

5. Save the configuration.

6. Reorder rules, as necessary.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

396

Chapter 17: Advanced Networking ISP routes

 Table 155: QoS IPv6 filter configuration

Settings Guidelines

Name Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. After you initially save the configuration, you cannot edit the name.

Status

Queue

Enable/disable the filter.

Select the queue that will be used for packets that match the filter criteria.

Service

Source

Destination

Ingress Interface

Egress Interface

Select a service object to use to form the matching tuple.

Select a source address object to use to form the matching tuple.

Select a destination address object to use to form the matching tuple.

Select the interface that receives traffic.

Select the interface that forwards traffic.

After you have saved a rule, reorder rules as necessary. The rules table is consulted from top to bottom. The first rule that matches is applied and subsequent rules are not evaluated.

ISP routes

ISP routes can be used for outbound traffic and link load balancing traffic.

Routes for outbound traffic are chosen according to the following priorities:

1. Link local routes—Self-traffic uses link local routes.

2. LLB Link Policy route—Configured policy routes have priority over default routes.

3. Policy route—Configured policy routes have priority over default routes.

4. Static route / ISP route / OSPF route—Priority is based on the distance metric. By default, distance for static routes is 10, for ISP routes is 20, and for OSPF routes is 110. The distance metric is configurable for static routes and OSPF routes, but not ISP routes.

5. Default LLB Link Policy route—Default routes have lower priority than configured routes.

6. Default static route / OSPF route—Default routes have lower priority than configured routes.

Before you begin: l

You must have read-write permission for system settings.

Note: Adding a new ISP route does not affect existing sessions. Deleting or editing an ISP route causes the related sessions to be re-created.

To configure ISP Routes:

1. Go to Networking > Routing.

2. Click the ISP tab.

3. Click Add to display the configuration editor.

397 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

BGP Chapter 17: Advanced Networking

4. Complete the configuration as described in

Table 156 .

5. Save the configuration.

 Table 156: ISP Route configuration

Settings Guidelines

Destination Select an ISP address book configuration object.

Gateway

Note: Two ISP routes cannot reference the same ISP address book. The ISP routing feature does not support multipath routing.

IP address of the gateway router that can route packets to the destination IP address that you have specified.

BGP

BGP stands for Border Gateway Protocol, which was first used in 1989. The current version, BGP-4, was released in 1995 and is defined in RFC 1771. That RFC has since been replaced by the more recent RFC 4271. The main benefits of BGP-4 are classless inter-domain routing and aggregate routes. BGP is the only routing protocol to use TCP for a transport protocol. Other routing protocols use UDP.

BGP makes routing decisions based on path, network policies and rulesets instead of the hop-count metric as RIP does, or cost-factor metrics as OSPF does.

BGP-4+ supports IPv6. It was introduced in RFC 2858 and RFC 2545.

BGP is the routing protocol used on the Internet. It was designed to replace the old Exterior Gateway Protocol

(EGP) which had been around since 1982, and was very limited. In doing so, BGP enabled more networks to take part in the Internet backbone to effectively decentralize it and make the Internet more robust, and less dependent on a single ISP or backbone network.

How BGP works

BGP is a link-state routing protocol and keeps link-state information about the status of each network link it has connected. A BGP router receives information from its peer routers that have been defined as neighbors. BGP routers listen for updates from these configured neighboring routers on TCP port 179.

A BGP router is a finite state machine with six various states for each connection. As two BGP routers discover each other, and establish a connection they go from the idle state, through the various states until they reach the established state. An error can cause the connection to be dropped and the state of the router to be reset to either active or idle. These errors can be caused by: TCP port 179 not being open, a random TCP port above port 1023 not being open, the peer address being incorrect, or the AS number being incorrect.

When BGP routers start a connection, they negotiate which (if any) optional features will be used such as multiprotocol extensions that can include IPv6 and VPNs.

IBGP vs. EBGP

When you read about BGP, often you see EBGP or IBGP mentioned. These are both BGP routing, but BGP used in different roles. Exterior BGP (EBGP) involves packets crossing multiple autonomous systems (ASes) where

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

398

Chapter 17: Advanced Networking BGP interior BGP (IBGP) involves packets that stay within a single AS. For example the AS_PATH attribute is only useful for EBGP where routes pass through multiple ASes.

These two modes are important because some features of BGP are only used for one of EBGP or IBGP. For example confederations are used in EBGP, and route reflectors are only used in IBGP. Also routes learned from

IBGP have priority over EBGP learned routes.

For more information on BGP routing, see "Chapter 3 - Advanced Routing" of the FortiOS Handbook for

FortiOS 5.4.1.

Before you begin, you must: l l l

Kknow how BGP has been implemented in your network, i.e., the configuration details of the implementation..

Have Read-Write permission for System settings.

Have configured all the needed access (IPv6) lists and prefix (IPv6) lists. See

Access list vs. prefix list .

To configure BGP:

1. Click Networking > Routing.

2. Click the BGP tab.

3. Make the desired entries and/or seldctions as described in the table below.

4. Click Save when done.

 Table 157: BGP configuration

Settings Guidelines

AS Enter the AS (Autonomous System) number of the BGP router. Valid values are from 0 to

4294967295.

Note: Per RFC 6996, the first and last ASNs of the original 16-bit integers, namely 0 and

65535, and the last ASN of the 32-bit numbers, namely 4,294,967,295, are reserved and should not be used by operators; ASNs 64,512 to 65,534 of the original 16-bit AS range, and 4,200,000,000 to 4,294,967,294 of the 32-bit range are reserved for private use, which means that they can be used internally but should not be announced to the global

Internet.

Router ID Enter the 32-bit number that sets the router-ID of the BGP process. The router ID uses dotted decimal notation. The router-ID must be the IP address of the router, and it must be unique within the entire BGP domain to the BGP speaker.

Redistribute OSPF Enable/Disable (default) the redistribution of OSPF routes to the BGP process.

Redistribute Connected

Enable/Disable (default) the redistribution of connected routes to the BGP process.

Redistribute Static Enable/Disable (default) the redistribution of static routes to the BGP process.

Redistribute IPv6

Connected

Enable/Disable (default) the redistribution of connected IPv6 routes to the BGP process.

399 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

BGP Chapter 17: Advanced Networking

Settings

Redistribute IPv6

Static

Guidelines

Enable/Disable (default) the redistribution of static IPv6 routes to the BGP process.

Always Compare

MED

Enable/Disable (default) the comparison of Multi-Exit Discriminator (MED) for paths from neighbors in different ASs (Autonomous Systems).

Deterministic MED Enable/Disable (default) the deterministic comparison of Multi-Exit Discriminator (MED) values among all paths received from the same AS (Autonomous System).

Bestpath Compare

Router ID

Enable/Disable (default) the BGP routing process to compare identical routes received from different external peers during the best-path selection process and to select the route with the lowest router ID as the best path.

Network

Type Select either of the following (IP address) types: l

IPv4 l

IPv6

If IPv4 is selected (above), specify the IPv4 prefix in the format of 0.0.0.0/0.

IPv4 Prefix

IPv6 Prefix If IPv6 is selected (above), specify the IPv6 prefix in the format of ::/0.

Be sure to click Save after you are done with configuring the network.

Save

Neighbor

Remote AS

Type

Specify the remote AS (Autonomous System) number of the BGP neighbor you are creating. Valid values are from 0 to 4294967295.

Select either of the following: l l

IPv4

IPv6

IP/IPv6

Interface

Specify the IPv4 address or IPv6 address for the BGP neighbor.

Click to select the interface for the BGP neighbor.

Port

Keep Alive

Specify the port of the BGP neighbor.

Specify the frequency (in seconds) at which the BGP neighbor sends out keepalive message to its peer.

Valid values are from 0 to 65535, with 60 seconds being the default.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

400

Chapter 17: Advanced Networking

Settings

Hold Time

Guidelines

Specify the "wait time" or pause (in seconds) the BGP neighbor declares a peer dead after failing to receive a keepalive message from it.

Valid values are from 0 to 65535, with 180 (seconds) being the default.

When the minimum acceptable hold time is configured on a BGP router, a remote

BGP peer session can be established only when the latter is advertising a hold time equal to, or greater than, the minimum acceptable hold time configured on the former. If the minimum acceptable hold time is greater than the configured hold time, then the next time the remote BGP peer tries to establish a session with the local BGP router, it will fail and the local BGP router will notify the remote BGP peer saying "unacceptable hold time".

Distribute List

In/Distribute IPv6

List In

Click to select an Access List (for IPv4) or Access IPv6 List (for IPv6).

The BGP router will apply the selected access list to inbound advertisements to the BGP neighbor when distributing BGP neighbor information.

Note: It is highly recommended that you have the Access List or the Access IPv6 List configured before configuring BGP Routing.

Distribute List

Out/Distribute IPv6

List Out

Click to select an Access List (for IPv4) or Access IPv6 List (for IPv6).

The BGP router will apply the selected access list to outbound advertisements to the neighbor when distributing BGP neighbor information.

Note: It is highly recommended that you have the Access List or the Access IPv6 List configured before configuring BGP Routing.

Prefix List In/Prefix

IPv6 List In

Click to select an Prefix List (for IPv4) or Prefix IPv6 List (for IPv6).

The BGP router will apply the selected prefix list to inbound advertisements to the neighbor when distributing BGP neighbor information.

Note: It is highly recommended that you have the Access List or the Access IPv6 List configured before configuring BGP Routing.

Prefix List Out/Prefix IPv6 List Out

Click to select an Prefix List (for IPv4) or Prefix IPv6 List (for IPv6).

The BGP router will apply the selected access list to outbound advertisements to the neighbor when distributing BGP neighbor information.

Note: It is highly recommended that you have the Access List or the Access IPv6 List configured before configuring BGP Routing.

Weight Assign a weight to a neighbor connection. Valid values are from 0 to 65535.

By default, routes learned through another BGP peer carries a weight value of 0, whereas routes sourced by the local router carry a default weight value of 32768.

Initially, all routes learned from a neighbor will have an assigned weight. The route with the greatest weight is chosen as the preferred route when multiple routes are available to a network.

BGP

401 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Access list vs. prefix list Chapter 17: Advanced Networking

Settings

Save

Guidelines

Be sure to click Save after you are done with configuring the Neighbor.

HA Router ID List

Router ID Use the HA Router list configuration in an HA active-active deployment. On each HA cluster node, add an HA Router configuration that includes an entry for each cluster node.

When the appliance is in standalone mode, it uses the primary BGP Router ID; when it is in HA mode, it uses the HA Router list ID.

Node

Save

Specify a 32-bit number that sets the router-ID of the BGP process. The router ID uses dotted decimal notation. The router-ID must be an IP address of the router, and it must be unique within the entire BGP domain to the BGP speaker.

Specify the HA Node ID (0-7).

Be sure to click Save after you are done with configuring the HA Router ID List.

Note:The Access List and Prefix List features are mutually exclusive. Therefore, do NOT apply both to any neighbor in any direction (inbound or outbound) when configuring BGP routing.

Access list vs. prefix list

Access lists and prefix lists are different mechanisms that you can use to control traffic into and out of a network.

Access lists

Access lists allow you to filter packets so that you can permit or deny them from crossing specified network interfaces. You can control whether packets are forwarded or blocked at the routers' interfaces based on the criteria set in the access lists.

Access lists fall into two categories: standard and extended. A standard access list (1-99) only checks the source addresses of all IP packets, whereas an extended access list (100-199) checks both source and destination addresses, specific UDP/TCP/IP protocols, and destination ports.

Table 158

below provides a comparison between standard access lists and extended access lists in terms of range.

 Table 158: Range comparison between standard access list and extended access list

Access List Type Range

Standard 1-99, 1300-1999

Extended 100-199, 2000-2699

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

402

Chapter 17: Advanced Networking Access list vs. prefix list

Note: For this release, FortiADC only supports user-defined access lists. It does NOT support either standard or extended access lists. Access lists are NOT required for BGP routing configuration. However, if you wan to include access lists in BGP routing configuration, we highly recommend that you have them configured ahead of time.

Prefix list

Prefix lists are used to configure filter IP routes. They are configured with the permit or deny keywords to either allow or block the prefix based on the matching conditions. A prefix list is made up of an IP address and a bit mask. The IP address can be a classful network, a subnet, or a single host route, whereas the bit mask can be a numeric value ranging from 1 to 32. An implicit deny is applied to the route that matches any entry in the prefix list.

A prefix list contain s one or multiple sequential entries which are evaluated sequentially, starting with the entry with the lowest sequence number. Evaluation of a prefix against a prefix list comes to an end when a match is found and the permit or deny statement is applied to that network.

Although extended access lists, and, to some extent, standard access lists, can be utilized to match prefix announcements, prefix lists are considered more graceful.

Note: Prefix lists are NOT required for BGP routing configuration. However, if you wan to include prefix lists in

BGP routing configuration, we highly recommend that you have them configured ahead of time.

Configuring an IPv4 access list

FortiADC D-Series units support IPv4 access lists over BGP routing. If you are configuring BGP routing using

IPv4, you must configure access lists using the IPv4 protocol.

To configure an access list:

1. Click Networking > Routing.

2. Click the Access List tab.

3. Click Add.

4. Enter a unique name for the new access list. Note: The name can be up to 35 alphanumeric characters long, including . (period) , : (colon), _ (underscore), and - (hyphen). No space is allowed.

5. Enter a brief description of the access list. Note: The description can be up to 1023 alphanumeric characters long, with no restriction on use of special characters. Space between characters is allowed.

6. Click Save.The newly created access list entry appears in the access list table.

7. Click the Edit button to open the Access List dialog.

8. In the Rule pane, click Add. The Access List > Edit Rule tab pens.

9. For Action, select the Permit or Deny radio button.

10. For IPv4 Prefix, enter the IPv4 address/subnet mask in the format of 0.0.0.0./0.

11. Click Save when done.

12. Repeat Steps 8 through 11 above to add as many rules to the access list as needed.

13. Click X to close the Access List dialog when done.

Configuring an IPv6 access list

FortiADC D-Series units support IPv6 access lists over BGP routing. If you are configuring BGP routing using

IPv6, you must configure access lists using the IPv6 protocol.

403 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Access list vs. prefix list Chapter 17: Advanced Networking

To configure an access list:

1. Go to Network > Routing.

2. Click the Access IPv6 List tab.

3. Click Add.

4. Enter a unique name for the new access list. Note: The name can be up to 35 alphanumeric characters long, including . (period) , : (colon), _ (underscore), and - (hyphen). No space is allowed.

5. Enter a brief description of the access list. Note: The description can be up to 1023 alphanumeric characters long, with no restriction on use of special characters. Space between characters is allowed.

6. Click Save.The newly created access list entry appears in the access list table.

7. Click the Edit button to open the Access IPv6 List dialog.

8. In the Rule pane, click Add. The Access IPv6 List > Edit Rule tab pens.

9. For Action, select the Permit or Deny radio button.

10. For IPv6 Prefix, enter the IPv6 address/subnet mask in the format of ::/0.

11. Click Save when done.

12. Repeat Steps 8 through 11 above to add as many rules to the access list as needed.

13. Click X to close the Access List dialog when done.

Configuring an IPv4 prefix list

FortiADC D-Series units support IPv4 prefix lists over BGP routing. If you are configuring BGP routing using IPv4, you must configure access lists using the IPv4 protocol.

To configure an access list:

1. Go to Network > Routing.

2. Click the Prefix List tab.

3. Click Add.

4. Enter a unique name for the new access list. Note: The name can be up to 35 alphanumeric characters long, including . (period) , : (colon), _ (underscore), and - (hyphen). No space is allowed.

5. Enter a brief description of the access list. Note: The description can be up to 1023 alphanumeric characters long, with no restriction on use of special characters. Space between characters is allowed.

6. Click Save.The newly created access list entry appears in the access list table.

7. Click the Edit button to open the Prefix List dialog.

8. In the Rule pane, click Add. The Prefix List > Edit Rule tab pens.

9. For Action, select the Permit or Deny radio button.

10. For IPv4 Prefix, enter the IPv4 address/subnet mask in the format of 0.0.0.0/0.

11. For GE, set the GE (greater than and equal to) values.

12. For LE, set the LE (less than and equal to) values

13. Click Save when done.

14. Repeat Steps 8 through 13 above to add as many rules to the access list as needed.

15. Click X to close the Access List dialog when done.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

404

Chapter 17: Advanced Networking OSPF

Configuring an IPv6 prefix list

FortiADC D-Series units support IPv6 prefix lists over BGP routing. If you are configuring BGP routing using IPv6, you must configure access lists using the IPv6 protocol.

To configure an access list:

1. Go to Network > Routing.

2. Click the Prefix IPv6 List tab.

3. Click Add.

4. Enter a unique name for the new access list. Note: The name can be up to 35 alphanumeric characters long, including . (period) , : (colon), _ (underscore), and - (hyphen). No space is allowed.

5. Enter a brief description of the access list. Note: The description can be up to 1023 alphanumeric characters long, with no restriction on use of special characters. Space between characters is allowed.

6. Click Save.The newly created access list entry appears in the access list table.

7. Click the Edit button to open the Prefix IPv6 List dialog.

8. In the Rule pane, click Add. The Prefix IPv6 List > Edit Rule tab pens.

9. For Action, select the Permit or Deny radio button.

10. For IPv6 Prefix, enter the IPv6 address/subnet mask in the format of ::/0.

11. For GE, set the GE (greater than and equal to) values.

12. For LE, set the LE (less than and equal to) values

13. Click Save when done.

14. Repeat Steps 8 through 13 above to add as many rules to the access list as needed.

15. Click X to close the Access List dialog when done.

OSPF

OSPF (Open Shortest Path First) is described in RFC2328, OSPF Version 2. It is a link-state interior routing protocol. Compared with RIP, OSPF can provide scalable network support and faster convergence times. OSPF is widely used in large networks such as ISP backbone and enterprise networks. FortiADC supports OSPF version

2.

Before you begin: l l

You must know how OSPF has been implemented in your network, and you must know the configuration details of the implementation.

You must have Read-Write permission for System settings.

To configure OSPF:

1. Go to Networking > Routing.

2. Click the OSPF tab.

3. Click Add to display the configuration editor.

4. Complete the configuration as described in

Table 159 .

5. Save the configuration.

405 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

OSPF Chapter 17: Advanced Networking

 Table 159: OSPF configuration

Settings Guidelines

Router 32-bit number that sets the router-ID of the OSPF process. The router ID uses dotted decimal notation. The router-ID must be an IP address of the router, and it must be unique within the entire OSPF domain to the OSPF speaker.

Default Metric

Distance

Default Information

Originate

The default is 10.

The default is 110.

l

Enable—Originate an AS-External (type-5) LSA describing a default route into all external routing capable areas of the specified metric and metric type.

l

Always—The default is always advertised, even when there is no default present in the routing table.

l

Disable

Default Information

Metric

The default is -1.

Default Information

Metric Type l

1 l

2

Redistribute Connected

Enable/disable to redistribute connected routes into OSPF, with the metric type and metric set if specified. Redistributed routes are distributed into OSPF as Type-5 External LSAs into links to areas.

The default is -1.

Redistribute Connected Metric

Redistribute Connected Metric Type l l

1

2

Redistribute Static Enable/disable to redistribute static routes into OSPF, with the metric type and metric set if specified. Redistributed routes are distributed into OSPF as Type-5 External LSAs into links to areas.

The default is -1.

Redistribute Static

Metric

Redistribute Static

Metric Type l

1 l

2

Area Authentication

Area 32-bit number that identifies the OSPF area. An OSPF area is a smaller part of the larger

OSPF AS. Areas are used to limit the link-state updates that are sent out. The flooding used for these updates would overwhelm a large network, so it is divided into these smaller areas for manageability.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

406

Chapter 17: Advanced Networking OSPF

Settings

Authentication

Guidelines

Specify an authentication type:  l

None—Also called null authentication. No authentication is used. In this case the 16-byte

Authentication field is not checked, and can be any value. However checksumming is still used to locate errors.

l

Text—A simple password is used. The password is a plain text string of characters. The same password is used for all transactions on a network. The main use of this type of authentication is to prevent routers from accidently joining the network. Simple password authentication is vulnerable to many forms of attack, and is not recommended as a secure form of authentication.

l

MD5—Use OSPF cryptographic authentication. A shared secret key is used to authenticate all router traffic on a network. The key is never sent over the network in the clear—a packet is sent and a condensed and encrypted form of the packet is appended to the end of the packet. A non-repeating sequence number is included in the OSPF packet to protect against replay attacks that could try to use already sent packets to disrupt the network. When a packet is accepted as authentic, the authentication sequence number is set to the packet sequence number. If a replay attack is attempted, the packet sent will be out of sequence and ignored.

Network

Prefix

Area

Interface

Name

Address/mask notation to specify the subnet.

Select an area configuration.

Interface

Ignore MTU

Network Type

Configuration name. Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. After you initially save the configuration, you cannot edit the name.

Select the interface to enable OSPF for it.

Enable/disable to ignore the interface MTU. Disabled by default.

l

Broadcast l

Point to Point l

Point to Multipoint

Retransmit Interval Interval for retransmitting Database Description and Link State Request packets. The default is 5 seconds.

Increment LSA age by this value when transmitting. The default is 1 second.

Transmit Delay

Cost Set link cost for the specified interface. The cost value is set to router-LSA's metric field and used for SPF calculation. The default is 0.

407 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

OSPF

Settings

Priority

Dead Interval

Hello Interval

Authentication

Text

MD5

HA Router

Router

Node

Chapter 17: Advanced Networking

Guidelines

The router with the highest priority will be more eligible to become Designated Router. Setting the value to 0 makes the router ineligible to become Designated Router. The default is

1.

Number of seconds for RouterDeadInterval timer value used for Wait Timer and Inactivity

Timer. This value must be the same for all routers attached to a common network. The default is 40 seconds.

Number of seconds between hello packets sent on the configured interface. This value must be the same for all routers attached to a common network. The default is 10 seconds.

Specify an authentication type. All OSPF interfaces that want to learn routes from each other must be configured with the same authentication type and password or MD5 key

(one match is enough). Options are:  l

None—Also called null authentication. No authentication is used. In this case the 16-byte

Authentication field is not checked, and can be any value. However checksumming is still used to locate errors.

l

Text—A simple password is used. The password is a plain text string of characters. The same password is used for all transactions on a network. The main use of this type of authentication is to prevent routers from accidently joining the network. Simple password authentication is vulnerable to many forms of attack, and is not recommended as a secure form of authentication.

l

MD5—Use OSPF cryptographic authentication. A shared secret key is used to authenticate all router traffic on a network. The key is never sent over the network in the clear—a packet is sent and a condensed and encrypted form of the packet is appended to the end of the packet. A non-repeating sequence number is included in the OSPF packet to protect against replay attacks that could try to use already sent packets to disrupt the network. When a packet is accepted as authentic, the authentication sequence number is set to the packet sequence number. If a replay attack is attempted, the packet sent will be out of sequence and ignored.

If using text authentication, specify a password string. Passwords are limited to 8 characters.

If using MD5 authentication, select an MD5 configuration name.

You use the HA Router list configuration in an HA active-active deployment. On each HA cluster node, add an HA Router configuration that includes an entry for each cluster node.

When the appliance is in standalone mode, it uses the primary OSPF Router ID; when it is in

HA mode, it uses the HA Router list ID.

Specify a 32-bit number that sets the router-ID of the OSPF process. The router ID uses dotted decimal notation. The router-ID must be an IP address of the router, and it must be unique within the entire OSPF domain to the OSPF speaker.

HA Node ID (0-7).

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

408

Chapter 17: Advanced Networking

Guidelines Settings

MD5 Key List

Name

Reverse path route caching

Configuration name. You select this name in the OSPF Interface configuration.

Valid characters are A-Z, a-z, 0-9, _, and -. No spaces. After you initially save the configuration, you cannot edit the name.

Member

Key ID

Key

A number 1-255. Each member key ID must be unique to its member list.

A string of up to 16 characters to be hashed with the cryptographic MD5 hash function.

Reverse path route caching

By default, reverse path route caching is enabled. FortiADC caches a reverse path route for inbound traffic so it can forward reply packets to the ISP link that forwarded the corresponding request packet. This is useful when your site receives traffic from multiple ISP links. For example, in

Figure 86

, the reverse path pointer ensures that client traffic received from ISP1 is returned through ISP1.

409 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Reverse path route caching

Figure  86: Reverse path route caching enabled

Chapter 17: Advanced Networking

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

410

Chapter 17: Advanced Networking Reverse path route caching

When reverse path caching is not enabled, the system forwards reply packets based on the results of routing lookup.

To enable/disable reverse path route caching, use the config router setting CLI command:

FortiADC-VM # config router setting

FortiADC-VM (setting) # get rt-cache-strict : disable rt-cache-reverse : enable ip-forward : enable ip6-forward : enable

FortiADC-VM (setting) # set rt-cache-reverse disable

FortiADC-VM (setting) # end

FortiADC-VM # get router setting rt-cache-strict : disable rt-cache-reverse : disable ip-forward : enable ip6-forward : enable

The rt-cache-strict option is disabled by default. Enable it when you want to send reply packets only via the same interface that received the request packets. When enabled, source interface becomes part of the matching tuple that FortiADC uses to identify sessions, so reply traffic is forwarded from the same interface that received the traffic. (Normally each session is identified by a 5-tuple: source IP, destination IP, protocol, source port, and destination port.)

If the rt-cache-reverse option is enabled, you can use the config rt-cache-reverse-exception command to maintain an exceptions list for source IP addresses that should be handled differently. For example, if you configure an exception for 192.168.1.0/24, FortiADC will not maintain a pointer to the ISP for traffic from source 192.168.1.18. Reply packets will be forwarded based on the results of routing lookup.

FortiADC-docs # config router setting

FortiADC-docs (setting) # get rt-cache-strict : disable rt-cache-reverse : enable ip-forward : enable ip6-forward : enable icmp-redirect-send : disable

FortiADC-docs (setting) # config rt-cache-reverse-exception

FortiADC-docs (rt-cache-rever~e) # edit 1

Add new entry '1' for node 3740

FortiADC-docs (1) # set ip-netmask 192.168.1.0/24

FortiADC-docs (1) # end

FortiADC-docs (setting) # end

Packet capture

The tcpdump utility is supported through the CLI and web UI.

See the FortiADC CLI Reference for information on using the CLI command.

Use the following procedure to use the web UI version.

Before you begin:

411 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Reverse path route caching Chapter 17: Advanced Networking l l

You must have a good understanding of tcpdump and filter expressions. See http://www.tcpdump.org/manpages/pcap-filter.7.html.

You must have Read-Write permission for System settings.

To use the web UI version of tcpdump:

1. Go to Networking > Packet Capture.

2. Click Add to display an editor to specify a filter expression and other arguments.

3. Use the controls to start, stop, and download the packet capture.

Figure  87:  Packet capture configuration page

Figure  88: Packet capture toolbar

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

412

Chapter 18: Best Practices and Fine Tuning

Chapter 18: Best Practices and Fine Tuning

Regular backups

This chapter is a collection of best practice tips and fine-tuning guidelines. It includes the following topics: l l l l

Regular backups

Security

Performance tips

High availability

Regular backups

Make a backup before executing disruptive operations, such as: l l l

Upgrading the firmware

Running the CLI commands execute factoryreset or execute restore

Clicking the Reset button in the System Information widget on the dashboard

Always password-encrypt your backups.

Security

This section lists tips to further enhance security.

413 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Security Chapter 18: Best Practices and Fine Tuning

Topology

l

Virtual servers can be on the same subnet as physical servers. This configuration creates a one-arm load balancer.

For example, the virtual server 10.0.0.2/24 could forward to the physical server 10.0.0.3-200.

If you are deploying gradually, you might want to initially install your FortiADC in a one-arm topology during the transition phase, and route traffic to it only after you have configured FortiADC to handle it.

Long term, this is not recommended. Unless your network’s routing configuration prevents it, it could allow clients that are aware of the physical server’s IP address to bypass the FortiADC appliance by accessing the physical server directly.

l

Make sure web traffic cannot bypass the FortiADC appliance in a complex network environment.

l

FortiADC appliances are not general-purpose firewalls. While they are security-hardened network appliances, security is not their primary purpose, and you should not allow to traffic pass through without inspection. FortiADC and FortiGate complement each other to improve security, availability, and performance.To protect your servers, install the FortiADC appliance or appliances between the servers and a general purpose firewall such as a

FortiGate.

FortiADC complements, and does not replace, general purpose firewalls.

l

Disable all network interfaces that should not receive any traffic.

For example, if administrative access is typically through port1, the Internet is connected to port2, and servers are connected to port3, you would disable (“bring down”) port4. This would prevent an attacker with physical access from connecting a cable to port4 and thereby gaining access if the configuration inadvertently allows it.

Administrator access

l l l l l l l l

As soon as possible during initial setup, give the default administrator, admin, a password. This superadministrator account has the highest level of permissions possible, and access to it should be limited to as few people as possible.

Change all administrator passwords regularly. Set a policy—such as every 60 days—and follow it. (Mark the

Change Password check box to reveal the password dialog.)

Instead of allowing administrative access from any source, restrict it to trusted internal hosts. On those computers that you have designated for management, apply strict patch and security policies. Always password-encrypt any configuration backup that you download to those computers to mitigate the information that attackers can gain from any potential compromise.

Do not use the default administrator access profile for all new administrators. Create one or more access profiles with limited permissions tailored to the responsibilities of the new administrator accounts.

By default, an administrator login that is idle for more than 30 minutes times out. You can change this to a longer period in Timeout, but Fortinet does not recommend it. Left unattended, a web UI or CLI session could allow anyone with physical access to your computer to change system settings. Small idle timeouts mitigate this risk.

Administrator passwords should be at least 8 characters long and include both numbers and letters.

Restrict administrative access to a single network interface (usually port1), and allow only the management access protocols needed.

Use only the most secure protocols. Disable ping, except during troubleshooting. Disable HTTP, SNMP, and Telnet unless the network interface only connects to a trusted, private administrative network.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

414

Chapter 18: Best Practices and Fine Tuning Performance tips l l l

Disable all network interfaces that should not receive any traffic.

For example, if administrative access is typically through port1, the Internet is connected to port2, and servers are connected to port3, you would disable (“bring down”) port4. This would prevent an attacker with physical access from connecting a cable to port4 and thereby gaining access if the configuration inadvertently allows it.

Immediately revoke certificates that have been compromised. If possible, automate the distribution of certificate revocation lists.

Performance tips

When configuring the system and its features, there are many settings and practices that can yield better performance.

System performance

l l l l

Delete or disable unused policies. The system allocates memory with each server policy, regardless of whether it is actually in active use. Configuring extra policies will unnecessarily consume memory and decrease performance.

To reduce latency associated with DNS queries, use a DNS server on your local network as your primary DNS.

If your network’s devices support them, you can create one or more VLAN interfaces. VLANs reduce the size of a broadcast domain and the amount of broadcast traffic received by network hosts, thus improving network performance.

If you have enabled the server health check feature and one of the servers is down for an extended period, you can improve system performance by disabling group membership for the physical server, rather than allowing the server health check to continue checking for the server's responsiveness.

Reducing the impact of logging on performance

l l l l

If you have a FortiAnalyzer, store FortiADC logs on the FortiAnalyzer to avoid resource usage associated with writing logs to the local hard disk.

If you do not need a traffic log, disable it to reduce the use of system resources.

Reduce repetitive log messages. Use the alert email settings to define the interval that emails are sent if the same condition persists following the initial occurrence.

Avoid recording log messages using low severity thresholds, such as information or notification, to the local hard disk for an extended period of time. Excessive logging frequency saps system resources and can cause undue wear on the hard disk and may cause premature failure.

Reducing the impact of reports on system performance

Generating reports can be resource intensive. To avoid performance impacts, consider scheduling report generation during times with low traffic volume, such as at night and on weekends.

Keep in mind that most reports are based upon log messages. All caveats regarding log performance also apply.

Reducing the impact of packet capture on system performance

Packet capture can be useful for troubleshooting but can be resource intensive. To minimize the impact on system performance, use packet capture only during periods of minimal traffic. Use a local console CLI connection rather than a Telnet or SSH CLI connection, and be sure to stop the command when you are finished.

415 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

High availability Chapter 18: Best Practices and Fine Tuning

High availability

We recommend that you deploy high availability (HA). Keep these points in mind when setting up a cluster: l

Isolate HA interface connections from your overall network.

Heartbeat and synchronization packets contain sensitive configuration information and can consume considerable network bandwidth. For best results, directly connect the two HA interfaces using a crossover cable. If your system uses switches instead of crossover cables to connect the HA heartbeat interfaces, those interfaces must be reachable by Layer 2 multicast.

l

When configuring an HA pair, pay close attention to the options ARP Packet Numbers and ARP Packet Interval.

The FortiADC appliance broadcasts ARP packets to the network to ensure timely failover. Delayed broadcast intervals can slow performance. Set the value of ARP Packet Numbers no higher than needed.

When the FortiADC appliance broadcasts ARP packets, it does so at regular intervals. For performance reasons, set the value for ARP Packet Interval no greater than required.

Some experimentation might be needed to set these options at their optimum value.

We recommend that you configure an SNMP community and enable the HA heartbeat failed option to generate a message if the HA heartbeat fails.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

416

Chapter 19: Troubleshooting

Chapter 19: Troubleshooting

Logs

This chapter includes the following topics: l l l l l l

Logs

Tools

Solutions by issue type

Resetting the configuration

Restoring firmware (“clean install”)

Additional resources

Logs

Log messages often contain clues that can aid you in determining the cause of a problem.

Depending on the type, log messages may appear in either the event, attack, or traffic logs. The FortiADC appliance must be enabled to record event, attack, and traffic log messages; otherwise, you cannot analyze the log messages for events of that type. To enable logging of different types of events, go to Log & Report >

Log Settings.

During troubleshooting, you may find it useful to lower the logging severity threshold for more verbose logs, to include more information on less severe events. To configure the severity threshold, go to Log & Report >

Log Settings.

Tools

This section gives an overview of the following troubleshooting tools: l l l l l

execute commands

diagnose commands

System dump

Packet capture

Diff

execute commands

execute commands

You can use the command-line interface (CLI) execute commands to run system management utilities, such as backups, upgrades and reboots; and network diagnostic utilities, such as nslookup, ping, traceroute, and tcpdump.

The following example shows the list of execute commands:

FortiADC-VM # execute ?

backup backup

417 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Tools Chapter 19: Troubleshooting caching caching management certificate certificate checklogdisk find and auto correct errors on the log disk clean clean config-sync config sync date set/get date and time discovery-glb-virtual-server Sync virtual servers from glb server, add them to the virtual server list dumpsystem dump system information for debugging purpose dumpsystem-file manipulate the dumped debugging information factoryreset reset to factory default fixlogdisk correct errors on the log disk formatlogdisk format log disk to enhance performance geolookup lookup geography information for IP address glb-dprox-lookup lookup GLB dynamic proximity information glb-persistence-lookup lookup GLB persistence information ha ha isplookup lookup ISP name and isp-address for IP address log log management nslookup nslookup packet-capture packet-capture <Port Number> [filter] (Only IPv4) packet-capture-file packet-capture-file packet-capture6 packet-capture6 <Port Number> [filter] (Include IPv6) ping ping <host name | host ip> ping-option ping option settings ping6 ping <host name | host ipv6> ping6-option ping6 option settings reboot reboot the system reload reload appliance restore restore shutdown shutdown appliance ssh Simple SSH client.

statistics-db statistics db management telnet Simple telnet client.

traceroute traceroute vm vm web-category-test Test a url find its web-category

For details, see the FortiADC CLI Reference .

diagnose commands

You can use the CLI diagnose commands to gather diagnostic information that can be useful to Fortinet

Customer Care when diagnosing any issues with your system. The commands are similar to the Linux commands used for debugging hardware, system, and IP networking issues.

The most important command for customers to know is diagnose debug report. This prepares a report you can give to your Fortinet support contact to assist in debugging an issue.

The following examples show the lists of diagnose commands:

FortiADC-VM # diagnose ?

debug debug hardware hardware llb llb netlink netlink server-load-balance server-load-balance

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

418

Chapter 19: Troubleshooting sniffer sniffer system system

FortiADC-VM # diagnose debug ?

application set/get debug level for daemons cli set/get debug level for CLI and CMDB config-error-log read/clear config error information crashlog crashlog disable disable debug output enable enable debug output flow flow info show debug info kernel set/get debug level for kernel report Report for tech support.

timestamp timestamp

FortiADC-VM # diagnose hardware get ?

deviceinfo list device status and information ioport read data from an I/O port pciconfig list information on PCI buses and connected devices sysinfo list system hardware information

FortiADC-VM # diagnose netlink ?

backlog set netlink backlog length device display network devices statistic information interface netlink interface ip ip ipv6 ipv6 neighbor netlink neighbor neighbor6 netlink neighbor for ipv6 route netlink routing table route6 netlink routing table tcp display tcp statistic information udp display udp statistic information

FortiADC-VM # diagnose system ?

top show top process vm check vm state

For details, see the FortiADC CLI Reference .

System dump

The system includes utilities for generating system dump files that can help Fortinet support engineers analyze an issue for you. The CLI and Web UI versions have different usage: l l

CLI—Used to dump kernel and user space information when the system is still responsive.

Web UI—Used to dump kernel information when the system is deeply frozen.

The following is an example of CLI command usage:

FortiADC-VM # execute dumpsystem

This operation will reboot the system!

Do you want to continue? (y/n)y

Begins to dump userspace information

Begins to dump kernel information

Tools

419 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Tools Chapter 19: Troubleshooting

FortiADC-VM # execute dumpsystem-file list

-rw------- 1 0 0 96719189 Mar 15 13:35 coredump-2016-03-15-13_35

-rw-r--r-- 1 0 0 16654391 Mar 15 13:34 user_coredump_2016_03_15_13_34_46.tar.bz2

FortiADC-VM # execute dumpsystem-file upload tftp coredump-2016-03-15-13_35 172.30.184.77

coredump-2016-03-15- 7% |** | 7152k 0:09:58 ETA

To use the web UI system dump utility:

1. Go to System > Debug.

2. Click System Dump to generate the file.

After the file has been generated, you are logged out. When you log back in and revisit the page, the system dump file appears in the file list.

3. Select the file and click Export to download the file.

Packet capture

The tcpdump utility is supported through the CLI and web UI.

See the FortiADC CLI Reference for information on using the CLI command.

Use the following procedure to use the web UI version.

Before you begin: l l

You must have a good understanding of tcpdump and filter expressions. See http://www.tcpdump.org/manpages/pcap-filter.7.html.

You must have Read-Write permission for System settings.

To use the web UI version of tcpdump:

1. Go to Networking > Packet Capture.

2. Click Add to display an editor to specify a filter expression and other arguments.

3. Use the controls to start, stop, and download the packet capture.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

420

Chapter 19: Troubleshooting

Figure  89:  Packet capture configuration page

Tools

Figure  90: Packet capture toolbar

Diff

You can compare backups of the core configuration file with your current configuration. This can be useful if, for example:

A previously configured feature is no longer functioning, and you are not sure what in the configuration has changed.

You want to recreate something configured previously, but do not remember what the settings were.

Difference-finding programs, such as WinMerge and the original diff can help you to quickly find all changes.

They can compare your configurations, line by line, and highlight parts that are new, modified, or deleted.

421 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Solutions by issue type

Figure  91:  Configuration differences highlighted in WinMerge

Chapter 19: Troubleshooting

For instructions, see the documentation for your diff program.

Solutions by issue type

Recommended solutions vary by the type of issue.: l l l

Login issues

Connectivity issues

Resource issues

Login issues

If an administrator is entering his or her correct account name and password, but cannot log in from some or all computers, examine that account’s trusted host definitions. It should include all locations where that person is allowed to log in, such as your office, but should not be too broad.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

422

Chapter 19: Troubleshooting Solutions by issue type

Connectivity issues

One of your first tests when configuring a new policy should be to determine whether allowed traffic is flowing to your servers. Investigate the following connectivity issues if traffic does not reach the destination servers: l l

Is there a FortiADC policy for the destination servers? By default, FortiADC allows traffic to reach a backend server.

However, the virtual servers must also be configured before traffic can pass through.

If your network utilizes secure connections (HTTPS) and there is no traffic flow, is there a problem with your certificate?

Checking hardware connections

If there is no traffic flowing from the FortiADC appliance, you want to rule out hardware problems.

To check hardware connections: l l l l l

Ensure the network cables are properly plugged in to the interfaces on the FortiADC appliance.

Ensure there are connection lights for the network cables on the appliance.

Change the cable if the cable or its connector are damaged or you are unsure about the cable’s type or quality.

Connect the FortiADC appliance to different hardware to see if that makes a difference.

In the web UI, go to System > Networking > Interface and ensure the link status is up for the interface. If the status is down (down arrow on red circle), edit the configuration to change its status to Up.

You can also enable an interface in CLI, for example: config system interface edit port2 set status up end

If any of these checks solve the problem, it was a hardware connection issue. You should still perform some basic software tests to ensure complete connectivity.

If the hardware connections are correct and the appliance is powered on but you cannot connect using the CLI or web UI, you may be experiencing bootup problems. See

Restoring firmware (“clean install”)

.

Checking routing

The ping and traceroute utilities are useful for investigating issues with network connectivity and routing.

Since you typically use these tools to troubleshoot, you can allow ICMP, the protocol used by these tools, in firewall policies and on interfaces only when you need them. Otherwise, disable ICMP for improved security and performance.

By default, FortiADC appliances do not respond to ping and traceroute. However, if the appliance does not respond, and there are no firewall policies that block it, ICMP type 0 (ECHO_REPSPONSE) might be effectively disabled.

To enable ping and traceroute responses:

1. Go to Networking > Interface.

2. Select the row for the network interface and click the edit icon.

3. Under Allow Access, enable ping.

4. Save the update.

423 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Solutions by issue type Chapter 19: Troubleshooting

The appliance should now respond when another device such as your management computer sends a ping or traceroute to that network interface.

Note: Disabling ping only prevents the system from receiving ICMP type 8 (ECHO_

REQUEST ) and traceroute-related UDP. It does not disable CLI commands such as execute ping or execute traceroute that send such traffic.

To verify routes between clients and your servers:

1. Attempt to connect through the FortiADC appliance, from a client to a backend server, via HTTP and/or HTTPS.

If the connectivity test fails, continue to the next step.

2. Use the ping command on both the client and the server to verify that a route exists between the two. Test traffic movement in both directions: from the client to the server, and the server to the client. Servers do not need to be able to initiate a connection, but must be able to send reply traffic along a return path.

If the routing test succeeds, continue with step

"Solutions by issue type" on page 424 .

If the routing test fails, continue to the next step.

3. Use the tracert or traceroute command on both the client and the server (depending on their operating systems) to locate the point of failure along the route.

If the route is broken when it reaches the FortiADC appliance, first examine its network interfaces and routes.

To display network interface addresses and subnets, enter the CLI command: show system interface

To display all recently-used routes with their priorities, enter the CLI command: diagnose netlink route list

You may need to verify that the physical cabling is reliable and not loose or broken, that there are no IP address or MAC address conflicts or blacklisting, misconfigured DNS records, and otherwise rule out problems at the physical, network, and transport layer.

If these tests succeed, a route exists, but you cannot connect using HTTP or HTTPS, an application-layer problem is preventing connectivity.

4. For application-layer problems, on the FortiADC, examine the: l virtual server policy and all components it references l certificates (if connecting via HTTPS) l server service/daemon

On routers and firewalls between the host and the FortiADC appliance, verify that they permit HTTP and/or

HTTPS connectivity between them.

Testing for connectivity with ping

The ping command sends a small data packet to the destination and waits for a response. The response has a timer that may expire, indicating that the destination is unreachable via ICMP.

ICMP is part of Layer 3 on the OSI Networking Model. ping sends Internet Control Message Protocol (ICMP)

ECHO_REQUEST (“ping”) packets to the destination, and listens for ECHO_RESPONSE (“pong”) packets in reply.

Some networks block ICMP packets because they can be used in a ping flood or denial of service (DoS) attack if the network does not have anti-DoS capabilities, or because ping can be used by an attacker to find potential targets on the network.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

424

Chapter 19: Troubleshooting Solutions by issue type

Beyond basic existence of a possible route between the source and destination, ping tells you the amount of packet loss (if any), how long it takes the packet to make the round trip (latency), and the variation in that time from packet to packet (jitter).

If ping shows some packet loss, investigate: l l l cabling to eliminate loose connections

ECMP, split horizon, or network loops all equipment between the ICMP source and destination to minimize hops

If ping shows total packet loss, investigate: l l cabling to eliminate incorrect connections all firewalls, routers, and other devices between the two locations to verify correct IP addresses, routes, MAC lists, and policy configurations

If ping finds an outage between two points, use traceroute to locate exactly where the problem is.

To use ping:

Log into the CLI via either SSH, Telnet, or the CLI Console widget of the web UI.

1. If you want to adjust the behavior of execute ping, first use the execute ping-options command.

2. Enter the command: execute ping <destination_ipv4> where <destination_ipv4> is the IP address of the device that you want to verify that the appliance can connect to, such as 192.168.1.1.

3. If the appliance can reach the host via ICMP, output similar to the following appears:

PING 192.168.1.1 (192.168.1.1): 56 data bytes

64 bytes from 192.168.1.1: icmp_seq=0 ttl=253 time=6.5 ms

64 bytes from 192.168.1.1: icmp_seq=1 ttl=253 time=7.4 ms

64 bytes from 192.168.1.1: icmp_seq=2 ttl=253 time=6.0 ms

64 bytes from 192.168.1.1: icmp_seq=3 ttl=253 time=5.5 ms

64 bytes from 192.168.1.1: icmp_seq=4 ttl=253 time=7.3 ms

--- 192.168.1.1 ping statistics ---

5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 5.5/6.5/7.4 ms

If the appliance cannot reach the host via ICMP, output similar to the following appears:

PING 10.0.0.1 (10.0.0.1): 56 data bytes

Timeout ...

Timeout ...

Timeout ...

Timeout ...

Timeout ...

--- 10.0.0.1 ping statistics ---

5 packets transmitted, 0 packets received, 100% packet loss

“100% packet loss” and “Timeout” indicates that the host is not reachable.

425 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Solutions by issue type Chapter 19: Troubleshooting

To verify that routing is bidirectionally symmetric, you should also ping the appliance.

Testing routes and latency with traceroute

The traceroute utility sends ICMP packets to test each hop along the route. It sends three packets to the destination, and then increases the time to live (TTL) setting by one, and sends another three packets to the destination. As the TTL increases, packets go one hop farther along the route until they reach the destination.

Most traceroute commands display their maximum hop count—that is, the maximum number of steps it will take before declaring the destination unreachable—before they start tracing the route. The TTL setting may result in routers or firewalls along the route timing out due to high latency.

Where ping only tells you if the signal reached its destination and returned successfully, traceroute shows each step of its journey to its destination and how long each step takes. If you specify the destination using a domain name, the traceroute output can also indicate DNS problems, such as an inability to connect to a DNS server.

By default, the traceroute utility uses UDP with destination ports numbered from 33434 to 33534. The traceroute utility usually has an option to specify use of ICMP ECHO_REQUEST (type 8) instead, as used by the Windows tracert utility. If you have a firewall and you want traceroute to work from both machines (Unix-like systems and

Windows) you will need to allow both protocols inbound through your firewall (UDP ports 33434 - 33534 and ICMP type 8).

To use traceroute:

1. Log into the CLI via either SSH, Telnet, or the CLI Console widget of the web UI.

2. Enter the command: execute traceroute {<destination_ipv4> | <destination_fqdn>} where {<destination_ipv4> | <destination_fqdn>} is a choice of either the device’s IP address or its fully qualified domain name (FQDN).

For example, you might enter: execute traceroute www.example.com

If the appliance has a complete route to the destination, output similar to the following appears: traceroute to www.fortinet.com (66.171.121.34), 32 hops max, 84 byte packets

1 172.16.1.2 0 ms 0 ms 0 ms

2 209.87.254.221 <static-209-87-254-221.storm.ca> 2 ms 2 ms 2 ms

3 209.87.239.129 <core-2-g0-1-1104.storm.ca> 2 ms 1 ms 2 ms

4 67.69.228.161 2 ms 2 ms 3 ms

5 64.230.164.17 <core2-ottawa23_POS13-1-0.net.bell.ca> 3 ms 3 ms 2 ms

6 64.230.132.234 <core2-ottawatc_POS5-0-0.net.bell.ca> 20 ms 20 ms 20 ms

7 64.230.132.58 <core4-toronto21_POS0-12-4-0.net.bell.ca> 24 ms 21 ms 24 ms

8 64.230.138.154 <bx4-toronto63_so-2-0-0-0.net.bell.ca> 8 ms 9 ms 8 ms

9 64.230.185.145 <bx2-ashburn_so2-0-0.net.bell.ca> 23 ms 23 ms 23 ms

10 12.89.71.9 23 ms 22 ms 22 ms

11 12.122.134.238 <cr2.wswdc.ip.att.net> 100 ms 12.123.10.130 <cr2.wswdc.ip.att.net>

101 ms 102 ms

12 12.122.18.21 <cr1.cgcil.ip.att.net> 101 ms 100 ms 99 ms

13 12.122.4.121 <cr1.sffca.ip.att.net> 100 ms 98 ms 100 ms

14 12.122.1.118 <cr81.sj2ca.ip.att.net> 98 ms 98 ms 100 ms

15 12.122.110.105 <gar2.sj2ca.ip.att.net> 96 ms 96 ms 96 ms

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

426

Chapter 19: Troubleshooting Solutions by issue type

16 12.116.52.42 94 ms 94 ms 94 ms

17 203.78.181.10 88 ms 87 ms 87 ms

18 203.78.181.130 90 ms 89 ms 90 ms

19 66.171.121.34 <fortinet.com> 91 ms 89 ms 91 ms

20 66.171.121.34 <fortinet.com> 91 ms 91 ms 89 ms

Each line lists the routing hop number, the IP address and FQDN (if any) of that hop, and the 3 response times from that hop. Typically a value of <1ms indicates a local router.

If the appliance does not have a complete route to the destination, output similar to the following appears: traceroute to 10.0.0.1 (10.0.0.1), 32 hops max, 84 byte packets

1 172.16.1.2 0 ms 0 ms 0 ms

2 172.16.1.10 0 ms 0 ms 0 ms

3 * * *

4 * * *

The asterisks ( * ) indicate no response from that hop in the network routing.

Examining the routing table

When a route does not exist, or when hops have high latency, examine the routing table. The routing table is where the FortiADC appliance caches recently used routes.

If a route is cached in the routing table, it saves time and resources that would otherwise be required for a route lookup. If the routing table is full and a new route must be added, the oldest, least-used route is deleted to make room.

To check the routing table in the CLI, enter: diagnose netlink route list

Examining server daemons

If a route exists, but you cannot connect to the web UI using HTTP or HTTPS, an application-layer problem is preventing connectivity.

Verify that you have enabled HTTPS and/or HTTP on the network interface. Also examine routers and firewalls between the host and the FortiADC appliance to verify that they permit HTTP and/or HTTPS connectivity between them. Finally, you can also use the CLI command to verify that the daemons for the web UI and CLI, such as sshd, cli, nginx, and php-fpm are running and not overburdened: diagnose system top delay 10

Checking port assignments

If you are attempting to connect to FortiADC on a given network port, and the connection is expected to occur on a different port number, the attempt will fail. For a list of ports used by FortiADC, see

Appendix B: Port

Numbers

.

Performing a packet trace

When troubleshooting malformed packet or protocol errors, it helps to look inside the protocol headers of packets to determine if they are traveling along the route you expect, and with the flags and other options you expect.

If you configure virtual servers on your FortiADC appliance, packets’ destination IP addresses will be those IP addresses, not the physical IP addresses (i.e., the IP address of port1, etc.). An ARP update is sent out when a virtual IP address is configured.

427 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Solutions by issue type Chapter 19: Troubleshooting

If the packet trace shows that packets are arriving at your FortiADC appliance’s interfaces but no HTTP/HTTPS packets egress, check that: l l l l l l l l l

Physical links are firmly connected, with no loose wires

Network interfaces are brought up

Link aggregation peers, if any, are up

VLAN IDs, if any, match

Virtual servers exist, and are enabled

Matching policies exist, and are enabled

If using HTTPS, valid server/CA certificates exist

IP-layer and HTTP-layer routes, if necessary, match

Servers are responsive, if server health checks are configured and enabled

Checking the SSL/TLS handshake & encryption

If the client is attempting to make an HTTPS connection, but the attempt fails after the connection has been initiated, during negotiation, the problem may be with SSL/TLS. Symptoms may include error messages such as: l ssl_error_no_cypher_overlap

(Mozilla Firefox 9.0.1) l

Error 113 (net::ERROR_SSL_VERSION_OR_CIPHER_MISMATCH): Unknown error.

(Google Chrome 16.0.912.75 m)

The handshake is between the client and FortiADC. If the connection cannot be established, verify that the browser supports one of the key exchanges, encryption algorithms, and authentication (hashes) offered by

FortiADC.

If you are not sure which cipher suites are currently supported, you can use SSL tools such as OpenSSL to discover support. For example, you could use this client-side command to know whether the server or FortiADC supports strong (HIGH) encryption: openssl s_client -connect example.com:443 -cipher HIGH or supports deprecated or old versions such as SSL 2.0: openssl s_client -ssl2 -connect example.com:443

Resource issues

This section includes troubleshooting questions related to sluggish or stalled performance.

Monitoring traffic load

Heavy traffic loads can cause sustained high CPU or RAM usage. If this is unusual, no action is required.

However, sustained heavy traffic load might indicate that you need a more powerful FortiADC model.

In the web UI, you can view traffic load two ways: l l

Monitor current HTTP traffic on the dashboard. Go to System >  Dashboard >  Virtual Server and examine the throughput graphs.

Examine traffic history in the traffic log. Go to Logs & Report >  Log Browsing > Traffic Log.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

428

Chapter 19: Troubleshooting Resetting the configuration

DoS attacks

A prolonged denial of service (DoS) can bring your servers down if your FortiADC appliance and your network devices are not configured to prevent it. To prevent DoS attacks, enable the DoS and connection limit features.

Also, configure protections on your FortiGate and other network devices. DoS attacks can use a variety of mechanisms. For in-depth protection against a wide variety of DoS attacks, you can use a specialized appliance such as FortiDDoS.

In the web UI, you can watch for attacks in two ways: l l

Monitor current traffic on the dashboard. Go to System >  Dashboard and examine the system-wide throughput.

Examine attack history in the traffic log. Go to Logs & Report >  Log Browsing >  Security Log.

Resetting the configuration

If you will be selling your FortiADC appliance, or if you are not sure what part of your configuration is causing a problem, you can reset it to its default settings and erase data. (If you have not updated the firmware, this is the same as resetting to the factory default settings.)

Important: Back up the configuration before performing a factory reset.

To delete your data from the system, connect to the CLI and enter this command: execute formatlogdisk

To reset the configuration, connect to the CLI and enter this command: execute factoryreset

Restoring firmware (“clean install”)

Restoring (also called re-imaging) the firmware can be useful if: l l l l you are unable to connect to the FortiADC appliance using the web UI or the CLI you want to install firmware without preserving any existing configuration (i.e. a “clean install”) a firmware version that you want to install requires a different size of system partition (see the Release Notes accompanying the firmware) a firmware version that you want to install requires that you format the boot device (see the Release Notes accompanying the firmware)

The procedure in this section applies to physical appliances. Restoring firmware re-images the boot device. Also, restoring firmware can only be done during a boot interrupt, before network connectivity is available, and therefore requires a local console connection to the CLI. It cannot be done through an SSH or Telnet connection.

429 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Restoring firmware (“clean install”) Chapter 19: Troubleshooting

Alternatively, if you cannot physically access the appliance’s local console connection, connect the appliance’s local console port to a terminal server to which you have network access. Once you have used a client to connect to the terminal server over the network, you will be able to use the appliance’s local console through it. However, be aware that from a remote location, you may not be able to power cycle the appliance if abnormalities occur.

For virtual appliances, you can use VMware to backup and restore virtual appliance images.

Important: Back up the configuration before performing a clean install.

To restore the firmware:

1. Download the firmware file from the Fortinet Customer Service & Support website: https://support.fortinet.com/

2. Connect your management computer to the FortiADC console port using a RJ-45-to-DB-9 serial cable or a nullmodem cable.

3. Initiate a local console connection from your management computer to the CLI of the FortiADC appliance, and log in as the admin administrator, or an administrator account whose access profile contains Read-Write permissions in the Maintenance category.

4. Connect port1 of the FortiADC appliance directly or to the same subnet as a TFTP server.

5. Copy the new firmware image file to the root directory of the TFTP server.

6. If necessary, start your TFTP server. (If you do not have one, you can temporarily install and run one such as tftpd ( Windows , Mac OS X , or Linux ) on your management computer.)

TFTP is not secure, and it does not support authentication. You should run it only on trusted administrator-only networks, and never on computers directly connected to the

Internet. Turn off tftpd off immediately after completing this procedure.

7. Verify that the TFTP server is currently running, and that the FortiADC appliance can reach the TFTP server.

To use the FortiADC CLI to verify connectivity, enter the following command: execute ping 192.168.1.168

where 192.168.1.168 is the IP address of the TFTP server.

8. Enter the following command to restart the FortiADC appliance: execute reboot

As the FortiADC appliances starts, a series of system startup messages appear.

Press any key to display configuration menu........

9. Immediately press a key to interrupt the system startup.

You have only 3 seconds to press a key. If you do not press a key soon enough, the FortiADC appliance reboots and you must log in and repeat the execute reboot command.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

430

Chapter 19: Troubleshooting Restoring firmware (“clean install”)

If you successfully interrupt the startup process, the following messages appears:

[G]: Get firmware image from TFTP server.

[F]: Format boot device.

[B]: Boot with backup firmware and set as default.

[Q]: Quit menu and continue to boot with default firmware.

[H]: Display this list of options.

Enter G,F,B,Q,or H:

Please connect TFTP server to Ethernet port "1".

10. If the firmware version requires that you first format the boot device before installing firmware, type F. Format the boot disk before continuing.

11. Type G to get the firmware image from the TFTP server.

The following message appears:

Enter TFTP server address [192.168.1.168]:

12. Type the IP address of the TFTP server and press Enter.

The following message appears:

Enter local address [192.168.1.188]:

13. Type a temporary IP address that can be used by the FortiADC appliance to connect to the TFTP server.

The following message appears:

Enter firmware image file name [image.out]:

14. Type the file name of the firmware image and press Enter.

The FortiADC appliance downloads the firmware image file from the TFTP server and displays a message similar to the following:

MAC:00219B8F0D94

###########################

Total 28385179 bytes data downloaded.

Verifying the integrity of the firmware image..

Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?

If the download fails after the integrity check with the error message: invalid compressed format (err=1) but the firmware matches the integrity checksum on the Fortinet Customer

Service & Support website, try a different TFTP server.

15. Type D.

The FortiADC appliance downloads the firmware image file from the TFTP server. The FortiADC appliance installs the firmware and restarts. The time required varies by the size of the file and the speed of your network connection.

The FortiADC appliance reverts the configuration to default values for that version of the firmware.

16. To verify that the firmware was successfully installed, log in to the CLI and type:

431 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Additional resources get system status

The firmware version number is displayed.

17. Either reconfigure the FortiADC appliance or restore the configuration file.

Chapter 19: Troubleshooting

Additional resources

Fortinet also provides these resources: l l l l l

The Release Notes provided with your firmware

Technical documentation (reference guides, installation guides, and other documents)

Knowledge base (technical support articles)

Forums

Online campus (tutorials and training materials)

If you have problem using FortiADC, check within your organization first. You can save time and effort during the troubleshooting process by checking if other FortiADC administrators have experienced a similar problem before.

If you cannot resolve the issue on your own, contact Fortinet Customer Service & Support .

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

432

Chapter 20: System Dashboard

Chapter 20: System Dashboard

The system dashboard is displayed when you log into the system (or into a virtual domain). It enables you to monitor system-wide health and utilization. You can also use it to perform some operational tasks.

This chapter discusses what you can see and do on each of the pages. It covers the following topics: l l l l l l l

Status

Data Analytics

Server Load Balance

Link Load Balance

Global Load Balance

HA Status

Session Monitoring

Figure 92

shows the system dashboard.

Table 160

describes the information and utilities present in system dashboard portlets.

 Table 160: System dashboard portlets

Portlet Information and Utilities

Status

System Information l

Hostname, current time, system uptime, serial number, firmware version.

l

Operations: Update firmware, upload license, reboot, shutdown, reset.

System Resources

License Information

Recent Event Logs

Throughput (graph)

Connections (graph)

Data Analytics

Throughput Total

CPU utilization, Memory utilization, disk utilization, concurrent connections, connections per second, inbound throughput, outbound throughput.

l

License status, support contract information, and FortiGuard services version information.

l

Operations: Upload license, navigate to the support site, or navigate to the

FortiGuard services configuration page.

Tail of the event log.

Shows inbound and outbound traffic.

Shows concurrent connections and connections per second.

Session Total

System totals for inbound and outbound throughput over the past day, hour, month, week, or 10 minutes.

System totals for concurrent connections and connections per second over the past day, hour, month, week, or 10 minutes.

433 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Portlet

Top Domain (Test)

Top URL

Top Device

Top OS

Top Browser

Fast Report (Widget)

Chapter 20: System Dashboard

Information and Utilities

Shows the top domains within the selected time frame.

Shows the top URLs within the selected time frame.

Shows the top devices within the selected time frame.

Shows the top operating systems within the selected time frame.

Shows the top browsers within the selected time frame.

Fast reports

that you configure are also displayed on this tab. Fast reports show

"top" reports by sessions or throughput over the past day, hour, month, week, or 10 minutes.

Server Load Balance

Network Map

Virtual Servers

Displays network map in three options: l

Tree View — Each virtual server is a tree.

l

List View—Each virtual server is a list.

l

Block View—Each virtual server is a block.

Each view displays the status of the virtual server and real server pool members.

You can filter and/or search the network map. Filters are applied before search terms. For example, if you filter by l7-load-balance type, only that set of data is searched.

l

Status of configured virtual servers.

l

Select the Monitor checkbox to display throughput and connections graphs.

l

Click the Real Server link to display status and throughput for the virtual server’s real server pool.

Link Load Balance

Gateways

Global Load Balance

DNS responses

HA Status

HA Status

Traffic Status

Session Monitoring

Drill-in: Select the Monitor checkbox to display throughput and session information.

A table of DNS responses per server pool member.

HA mode and details for HA member nodes.

Shows information about traffic groups

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

434

Chapter 20: System Dashboard Status

Portlet

Session Table

Persist Table

Information and Utilities

Current sessions. You can define and apply multiple filters. After configuring filters, click OK and the table is redisplayed with matching records.

Current sessions. You can define and apply multiple filters. After configuring filters, click OK and the table is redisplayed with matching records.

Before you begin: l

You must have Read-Write permission for Log & Report settings.

To display the dashboard: n Go to Dashboard.

Figure  92:  System dashboard

Status

By default, the Status tab opens when you select Dashboard from the side menu. The entire page is divided into six panels, each with specific information about your FortiADC system. The panels are: l l l l

System Information

System

Throughput

Connections

435 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Data Analytics l l

License Information

Recent Event Logs

The figure below shows a sample image of the Dashboard's Status page.

Figure  93: Status

Chapter 20: System Dashboard

In addition to presenting system and performance information, the Dashboard also provides following tools for managing your FortiADC: l l l l l

Registration — Click the Login button to register your FortiADC.

Web Filter — Click the Configure button to Web filters.

Firmware — Click the Update button to update your FortiADC's firmware.

Virtual Domain — Click Enable to enable virtual domain support and add virtual machines.

License Status — Click Update to update your FortiADC license.

Data Analytics

The Data Analytics page presents system performance data in charts and graphs. Across the top of the page are three buttons that allow you to customize the data displayed and the way they are displayed. The buttons are: l l l

Add Widget—Click this button to create a fast report with data of your choice. See

Configure fast reports

.

Full Screen Mode—Click this button to open a separate window to view the data in full screen.

Enable—Enable/disable data capture.

Figure  94: Data Analytics

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

436

Chapter 20: System Dashboard Server load balance

Server load balance

The Server Load Balance page shows information about the virtual servers in server load-balancing operations, including their name, availability, and health check status. Here's what you can do on the Server Load Balance page: l l l

Select a view option

Filter virtual servers onscreen

Add virtual servers

Select a display option

You can click the Select View button across the top of the page to choose one the following view options: l l l

Tree View (Default)

List View

Block View

The figure below shows the load-balancing servers in Tree View.

Figure  95: Server Load Balance (Tree View)

437 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Server load balance Chapter 20: System Dashboard

Filter virtual servers onscreen

In addition to the three view options mentioned above, you can also use the Add Filters button to filter the virtual servers displayed on the Server Load Balance page, as illustrated below.

Figure  96: Filter virtual servers onscreen

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

438

Chapter 20: System Dashboard Link load balance

Add virtual servers

The Add Virtual Server button allows you to you to add virtual servers directly from the Dashboard. For instruction on how to configure virtual servers, see

Configure virtual servers

.

Link load balance

The Link Load Balance page shows the following information about the links used in link load-balancing:

Figure  97: Link Load Balance

Global load balance

The Global Load Balance page shows the information about the servers used in global load-balancing, as illustrated below.

Figure  98: Global Load Balance

439 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

HA status Chapter 20: System Dashboard

HA status

The HA Status page shows the information about FortiADC's HA configuration and performance, which is divided into the following categories: l l

HA Status

Traffic Status

Figure  99: HA Status

Figure  100: Traffic Status

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

440

Chapter 20: System Dashboard

Session monitoring

The Session Monitor page has two tables: Session Table and Persist Table.

Figure  101: Session Table

Figure  102: Persist Table

Session monitoring

441 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Appendix A: Fortinet MIBs

Appendix A: Fortinet MIBs

Table 161

lists the management information bases (MIBs) used with FortiADC.

 Table 161: FortiADC MIBs

MIB or RFC Description

Fortinet Core MIB This Fortinet-proprietary MIB enables your SNMP manager to query for system information and to receive traps that are common to multiple Fortinet devices.

FortiADC MIB

RFC 1213 (MIB II)

This Fortinet-proprietary MIB enables your SNMP manager to query for

FortiADC-specific information and to receive FortiADC-specific traps.

The FortiADC SNMP agent supports MIB II groups, except: There is no support for the EGP group from MIB II ( RFC 1213 , section 3.11 and 6.10). Protocol statistics returned for MIB II groups (IP, ICMP, TCP, UDP, and so on) do not accurately capture all FortiADC traffic activity. More accurate information can be obtained from the information reported by the FortiADC MIB.

RFC 3635 (Ethernet-like

MIB)

The FortiADC SNMP agent uses any of the objects in the Ethernet-like interface types specification (dot3StatsIndex).

You can download the Fortinet MIB files from the Fortinet Customer Service & Support website, https://support.fortinet.com/ .

To view a trap or query’s name, object identifier (OID), and description, open its MIB file in a plain text editor.

To communicate with the FortiADC SNMP agent, you must first compile these MIBs into your SNMP manager. If the standard MIBs used by the SNMP agent are already compiled into your SNMP manager, you do not have to compile them again. The FortiADC SNMP implementation is read-only.

All traps sent include the message, the FortiADC appliance’s serial number, and hostname.

442 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Figure  103: FortiADC MIB download

Appendix A: Fortinet MIBs

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

443

Appendix B: Port Numbers

Appendix B: Port Numbers

25

53

69

Communications between the FortiADC system, clients, servers, and FortiGuard Distribution Network (FDN) require that any routers and firewalls between them permit specific protocols and port numbers.

The following tables list the default port assignments used by the FortiADC system.

 Table 162: Default ports used by FortiADC for outgoing traffic

Port Number Protocol Purpose

N/A ARP HA failover of network interfaces.

N/A ICMP l

Server health checks.

l execute ping and execute traceroute.

80

123

TCP

UDP

UDP

TCP

UDP

SMTP for alert email.

DNS queries.

TFTP for backups, restoration, and firmware updates. See commands such as execute backup or execute restore.

Server health checks.

NTP synchronization.

162

389

443

514

6055

6056

UDP

TCP

TCP

UDP

UDP

UDP

SNMP traps.

LDAP authentication queries.

l

FortiGuard polling.

l

Server health checks.

Syslog.

HA heartbeat. Layer 2 multicast.

HA configuration synchronization. Layer 2 multicast.

 Table 163: Default ports used by FortiADC for incoming traffic (listening)

Port Number Protocol Purpose

N/A ICMP ping and traceroute responses.

22 TCP SSH administrative CLI access.

444 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Appendix B: Port Numbers

Port Number Protocol

23 TCP

53 UDP

80 TCP

161

443

6055

6056

UDP

TCP

UDP

UDP

Purpose

Telnet administrative CLI access.

DNS queries from clients for global load balancing and inbound link load balancing.

l

HTTP administrative web UI access.

l

Predefined HTTP service. Only occurs if the service is used by a virtual server.

SNMP queries.

l

HTTPS administrative web UI access. Only occurs if the destination address is a network interface’s IP address.

l

Predefined HTTPS service. Only occurs if the service is used by a virtual server, and if the destination address is a virtual server.

HA heartbeat. Layer 2 multicast.

HA configuration synchronization. Layer 2 multicast.

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

445

Appendix C: Scripts

Appendix C: Scripts

Events and actions

You can embed Lua scripts to take actions that are not supported by the built-in feature set.

This appendix provides guidance for getting started. It includes the following topics: l l l l l l

Events and actions

Predefined Commands

Control structures

Operators

String library

Examples

For general information about Lua, see http://www.lua.org/docs.html

.

Events and actions

Scripts are associated with a particular virtual server, and they are event-driven. A script is triggered when the associated virtual server receives an HTTP request or response. Then, it does the programmed action.

Table 164

provides syntax, usage, and examples of the predefined commands that are useful for writing scripts.

 Table 164: Script events and actions

Event/Action Description

Event

HTTP_REQUEST

HTTP_RESPONSE

RULE_INIT

The virtual server receives a complete HTTP request header.

The virtual server receives a complete HTTP response header.

The event is used to initialize global or static variables used within a script. It is triggered when a script is added or modified, or when the device starts up, or when the software is restarted.

Action

Lua mode An action defined by a Lua script that uses predefined commands and variables to manipulate the HTTP request/response or select a content route.

Predefined Commands

Table 165

provides syntax, usage, and examples of the predefined commands that are useful for writing scripts.

446 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Predefined Commands Appendix C: Scripts

 Table 165: Predefined commands

Syntax Usage and Example

Global debug(“msg”, …) Write the message to the debug buffer. For example: debug("HTTP Request method is %s.\n", HTTP:method_get

())

Debug strings can be written to the console when the event is triggered. This is helpful when you are testing your scripts.

To enable debug strings to be written to the console, use the following CLI commands: diagnose debug enable diagnose debug application haproxy scripting routing(content_route) log("fmt", ...)

Select a content route. For example: routing("content2") content2 is the name of a content route configuration object.

Writes log message into event log category in the script log part. For example: log("This HTTP Request method is %s.\n",

HTTP:method_get()) rand() Generates a random number. For example: a = rand() debug(“a=%d\n”,a)

HTTP header_get_names() Returns a list of all the headers present in the request or response.

For example:

--use header and value headers = HTTP:header_get_names() for k, v in pairs(headers) do debug("The value of header %s is %s.\n", k, v) end

--only use the header name for name in pairs(headers) do debug("The request/response includes header %s.\n", name) end

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

447

Appendix C: Scripts Predefined Commands

Syntax header_get_values(header_name) header_get_value(header_name) header_remove(header_name) header_remove2(header_name,countid)

Usage and Example

Returns a list of value(s) of the HTTP header named <header_ name>. Note: the command returns all the values in the headers as a list if there are multiple headers with the same name. For example: cookies=HTTP:header_get_values("Cookie") for k, cnt in pairs(cookies) do debug("initially include cookie %s cnt %d\n", k, v) end

Returns the value of the HTTP header named <header_name>.

Returns false if the HTTP header named <header_name> does not exist. Note: The command operates on the value of the last header if there are multiple headers with the same name. For example: host = HTTP:header_get_value("Host")

Removes all headers names with the name <header_name>. For example:

HTTP:header_remove("Cookie")

Removes all headers names with the name <header_name>.In

case of multiple matches, removes the one with countid. For example: cookies=HTTP:header_get_values("Set-Cookie") for k, v in pairs(cookies) do debug("include cookie %s cnt %d\n", k, v) end if HTTP:header_replace2 ("Set-Cookie", "new2=value2",

2) then debug("replace 2nd cookie by new2=value2\n") end if HTTP:header_remove2 ("Set-Cookie", 1) then debug("remove 1st cookie\n") end header_insert(header_name, value) Inserts the named HTTP header(s) and value(s) into the end of the

HTTP request or response. For example:

HTTP:header_insert("Cookie", "cookie=server1") header_replace(header_name, value) Replaces the value of the last occurrence of the header named

<header_name> with the string <value>. Performs a header insertion if the header is not present. For example:

HTTP:header_replace("Host", "www.fortinet.com")

448 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Predefined Commands Appendix C: Scripts

Syntax header_replace2(header_name, value,countid) header_exists(header_name) header_count(header_name) method_get() method_set(string) path_get() path_set(string)

Usage and Example

Header_get_values() now will return an count for each item. This count can be used in both header_remove2() and header_replace2() to remove and replace a certain header of given name by the count respectively. For example: cookies=HTTP:header_get_values("Set-Cookie") for k, v in pairs(cookies) do debug("include cookie %s cnt %d\n", k, v) end if HTTP:header_replace2 ("Set-Cookie", "new2=value2",

2) then debug("replace 2nd cookie by new2=value2\n") end if HTTP:header_remove2 ("Set-Cookie", 1) then debug("remove 1st cookie\n") end

Returns true if the named header is present and not empty on the request or response. For example: if HTTP:header_exists("Cookie") then

… end

Returns the number of HTTP headers present in the request or response. For example: count = HTTP:header_count("Cookie")

Return the string of the HTTP request method. For example: method = HTTP:method_get()

Set the HTTP request method to the string "value". For example:

HTTP:method_set("POST")

Returns the path part of the HTTP request. For example: path = HTTP:path_get()

Sets the path part of the HTTP request. The client will not see the update unless the web application uses the requested path to generate response headers and/or content. If you want the client to see the update to the path in the browser's address bar, you can send an

HTTP redirect using HTTP:redirect or HTTP:respond. For example:

HTTP:path_set("/other.html")

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

449

Appendix C: Scripts

Syntax uri_get() uri_set(string) query_get() query_set(string) redirect(“URL”, …) redirect_with_cookie(string) version_get() version_set(string) status_code_get() status_code_set(string) code_get()

Predefined Commands

Usage and Example

Returns the URI given in the request. For example: uri = HTTP:uri_get()

Changes the URI passed to the server. It should always start with a slash. For example:

HTTP:uri_set("/index.html?value=xxxx")

Returns the query part of the HTTP request. For example: query = HTTP:query_get()

Sets the query part of the HTTP request. For example:

HTTP:query_set("value=xxx")

Redirects an HTTP request or response to the specified URL. For example:

Host = HTTP:header_get_value("host")

Path = HTTP:path_get()

HTTP:redirect("https://%s%s", Host, Path)

Redirects an HTTP request or response to the specified URL with

Cookie. For example:

HTTP:redirect_with_cookie(“www.example.com”,

“server=nginx”)

Returns the HTTP version of the request or response. For example: vers = HTTP:version_get()

Sets the HTTP version of the request or response. For example:

HTTP:version_set("1.0")

Returns the response status code output as string. For example: responsestatus=HTTP:status_code_get()

Sets the response status code. For example:

HTTP:status_code_set("301")

Returns the response status code,output as integer. For example: responsestatus=HTTP:code_get()

450 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Predefined Commands

Syntax code_set(integer) reason_get() reason_set(string) rand_id() client_addr() local_addr() remote_addr() server_addr() close()

Load Balance routing(content_route)

Appendix C: Scripts

Usage and Example

Sets the response status code. For example:

HTTP:code_set(301)

Returns the response reason. For example:

HTTP:reason_get()

Sets the response reason. For example:

HTTP:reason_set(string)

Returns a string of 32-long in hex format, which can be inserted directly as an HTTP header. For example:

ID=HTTP:rand_id()

HTTP:header_insert("Message-ID", ID)

Returns the client IP address of a connection for an HTTP_

REQUEST packet, which is the source address for the HTTP_

RESPONSE packet> It's a destination address. For example:

CIP=HTTP:client_addr()

For HTTP_REQUEST, returns the IP address of the virtual server the client is connected to; for HTTP_RESPONSE, returns the incoming interface IP address of the return packet. For example:

LIP=HTTP:local_addr()

Returns the IP address of the host on the far end of the connection.

For example:

RIP=HTTP:remote_addr()

Returns the IP address of the server in HTTP_RESPONSE.

SIP=HTTP:server_addr()

Closes an HTTP connection using code 503. For example:

HTTP:close()

Selects a content route. For example:

LB:routing("content2")

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

451

Appendix C: Scripts

Control structures

Table 166

lists Lua control structures.

 Table 166: Lua control structures

Type Structure if then else if condition1 then

… elseif condition2 then

… else

… end for --fetch all values of table 't' for k, v in pairs(t) do

… end

Operators

Table 167

lists the FortiADC operators.

 Table 167: Lua operators

FortiADC

Operator

Operator sub-type

Description

- + Arithmetic Unary minus, unary plus.

~ not

* / %

Bitwise Bitwise NOT.

Logical Performs a logical "not" on a value.

Arithmetic Multiple, divide, remainder.

//

^

+ -

<< >>

Arithmetic

Bitwise

Floor division.

Exponentiation.

Add and subtract.

Left and right shift.

452

Control structures

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

String library

&

~

| and

FortiADC

Operator

< > <= >=

Operator sub-type

Description

Relational Boolean less, greater, less than or equal, and greater than or equal.

== != Relational Boolean equal and not equal.

or

Bitwise

Bitwise

Bitwise

Logical

Logical

Bitwise AND.

Bitwise exclusive OR.

Bitwise OR.

Performs a logical "and" comparison between two values.

Performs a logical "or" comparison between two values.

ends_with String starts_with

..

String

Tests if one string ends with another string.

Tests if one string starts wit another string.

The string concatenation operator in Lua is denoted by two dots ('..').

If both operands are strings or numbers, then they are converted to a string. It's the same as _

_concat.

Appendix C: Scripts

String library

The FortiADC OS supports only the Lua string library.

All other libraries are disabled. The string library includes the following string-manipulation functions: l l l l l l

String.byte(s, i)

String.char(i1,i2…)

String.dump(function)

String.find(s, pattern)

String.format

String.gmatch

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

453

Appendix C: Scripts l l l l l l l l

String.gsub

String.len

String.lower

String.match

String.rep

String.reverse

String.sub

String.upper

For a tutorial on scripting with the Lua string library, see http://lua-users.org/wiki/StringLibraryTutorial .

Examples

Examples

This section provides example scripts for popular use cases. It includes the following examples: l l l l l

Select content routes based on URI string matches

Rewrite the HTTP request host header and path

Rewrite the HTTP response Location header

Redirect HTTP to HTTPS using Lua string substitution

Redirect mobile users to the mobile version of a website

Tip: The examples show debug strings. Debug strings can be written to the console when the event is triggered. This is helpful when you are testing your scripts.

To enable debug strings to be written to the console, use the following CLI commands: diagnose debug enable diagnose debug application haproxy scripting

Select content routes based on URI string matches

The content routing feature has rules that match HTTP requests to content routes based on a Boolean AND combination of match conditions. If you want to select routes based on a Boolean OR, you can configure multiple rules. The content routing rules table is consulted from top to bottom until one matches.

In some cases, it might be simpler to get the results you want using a script. In the following example, each rule selects content routes based on OR match conditions.

-- Content routing example when RULE_INIT { debug("get header init 1\n")

} when HTTP_REQUEST{ uri = HTTP:uri_get() if uri:find("sports") or uri:find("news") or uri:find("government") then

LB:routing("sp2") debug("uri %s matches sports|news|government\n", uri);

454 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Examples Appendix C: Scripts elseif uri:find("finance") or uri:find("technology") or uri:find("shopping") then

LB:routing("sp3") debug("uri %s matches finance|technology|shopping\n", uri); elseif uri:find("game") or uri:find("bbs") or uri:find("testing") then

LB:routing("sp4") debug("uri %s matches game|bbs|testing\n", uri); elseif uri:find("billing") or uri:find("travel") or uri:find("weibo") then

LB:routing("sp5") debug("uri %s matches billing|travel|weibo\n", uri); else debug("no matches for uri: %s \n", uri); end

}

To use a script for content routing:

1. Create the content route configuration objects. In the example above, sp2, sp3, sp4, and sp4 are the names of the content route configuration objects. You do not need to configure matching conditions for the content routes, however, because the script does the content matching.

2. Create a script that matches content to the content route configuration objects, as shown above. Create a configuration object for the script.

3. In the virtual server configuration: a. Enable content routing and select the content route configuration objects.

b. Select the script.

Rewrite the HTTP request host header and path

You can use the content rewriting feature to rewrite the HTTP request Host header or the HTTP request URL. If you need more granular capabilities, you can use scripts. The following example rewrites the HTTP Host header and path.

-- Rewrite the HTTP Host header and path in a HTTP request when RULE_INIT { debug("rewrite the HTTP Host header and path in a HTTP request \n")

} when HTTP_REQUEST{ host = HTTP:header_get_value("Host") path = HTTP:path_get() if host:lower():find("myold.hostname.com") then debug("found myold.hostname.com in Host %s \n", host)

HTTP:header_replace("Host", "mynew.hostname.com")

HTTP:path_set("/other.html") end

}

Note: You might find it useful to use a combination of string manipulation functions. For example, this script uses lower() to convert the Host strings to lowercase in combination with find(), which searches for the Host header for a match: host:lower():find("myold.hostname.com").

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

455

Appendix C: Scripts Examples

Rewrite the HTTP response Location header

You can use the content rewriting feature to rewrite the HTTP response Location header. If you are more comfortable using Lua string substitution, you can write a script to get the results you want. The following example rewrites the HTTP response Location header.

-- Rewrite the HTTP body in the response when RULE_INIT { debug("rewrite the HTTP response replacing myold.hostname.com with mynew.hostname.com \n")

} when HTTP_RESPONSE{ location = HTTP:header_get_value("Location") if location:lower():find("myold.hostname.com") then debug("found myold.hostname.com in Location %s \n", location)

HTTP:header_replace("Location", "mynew.hostname.com") end

}

Redirect HTTP to HTTPS using Lua string substitution

You can use the content rewriting feature to redirect an HTTP request to an HTTPS URL that has the same host and request URL using a PCRE regular expression. If you are more comfortable using Lua string substitution, you can write a script to get the results you want. The following example redirects users to the HTTPS location.

-- Redirect HTTP to HTTPS when RULE_INIT { debug("http to https redirect\n")

} when HTTP_REQUEST{ host = HTTP:header_get_value("Host") path = HTTP:path_get()

HTTP:redirect("https://%s%s",host,path);

}

Redirect mobile users to the mobile version of a website

The content rewriting feature does not support matching the User-Agent header. You can write a script that detects User-Agent headers that identify mobile device users and redirect them to the mobile version of a website.

-- Redirect mobile users to the mobile version of a website by parsing the User-Agent header when RULE_INIT { debug("detect User-Agent and go to mobile site\n")

} when HTTP_REQUEST{ path = HTTP:path_get() debug("path=%s\n",path) agent = HTTP:header_get_value("User-Agent") if agent:lower():find("iphone") or agent:lower():find("ipad") then debug("found iphone or ipad in User-Agent %s \n", agent)

HTTP:redirect("https://m.mymobilesite.com/%s",path)

456 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Examples end

}

Appendix C: Scripts

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

457

Appendix D: Maximum Configuration Values

Appendix D: Maximum Configuration Values

This table shows the maximum number of configuration objects or limits that vary by them, and are not a guarantee of performance. For values such as hardware specifications that do not vary by software version or configuration, see your model’s QuickStart Guide or datasheet.

 Table 168: Maximum configuration objects - Hardware models

200D/100F 300D 400D 700D 1500D 2000D 4000D

System

Administration Administrative users

Access profiles

300

16

Virtual domains (VDOMs) 10

300

64

10

300

64

10

300

64

30

300

64

45

300

64

60

300

64

90

Certificates

Shared

Resources

Any configuration object

Address

Address group

Health checks

ISP address book

Schedule

Schedule group

Service

32

256

64

1024

256

1024

256

128

32

256

64

2048

256

2048

256

256

32

256

64

2048

256

2048

256

256

32

256

64

2048

256

2048

256

256

32

256

64

2048

256

2048

256

256

32

256

64

2048

256

2048

256

256

32

256

64

4096

256

4096

256

512

SNMP

Service group

SNMP community

SNMP community Host

SNMP user

256

16

16

16

256

16

16

16

256

16

16

16

256

16

16

16

256

16

16

16

256

16

16

16

256

16

16

16

Networking

Interface 4 4 4 12 12 20 24 Physical network interfaces

VLAN interfaces 256 512 512 512 512 512 1024

458 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Appendix D: Maximum Configuration Values

Routing ARP table entries (per

VDOM)

NAT

QoS

Packet capture

User

Static routes

Policy routes

ISP routes

Any configuration object

Any configuration object

Table

Any configuration object

Server Load Balancing

Virtual Servers

Real Server

Pool

Pools

Pool members

Resources

Real server SSL profiles

Profiles

Cache policies

Compression policies

Persistence policies

Method policies

Authentication policies

Scripts

Content Rules Content routing rules

Content rewriting rules

200D/100F 300D 400D 700D 1500D 2000D 4000D

4096 4096 4096 4096 4096 4096 4096

2048

64

32

256

256

5

256

1024

1024

1024

256

256

256

256

128

64

256

256

256

256

4096

128

32

256

256

5

256

2048

2048

2048

256

256

256

256

256

128

256

256

512

512

4096

128

32

256

256

5

256

2048

2048

2048

256

256

256

256

256

128

256

256

512

512

4096

128

32

256

256

5

256

2048

2048

2048

256

256

256

256

256

128

256

256

512

512

4096

128

32

256

256

5

256

256

256

1024

1024

256

256

512

256

4096

4096

4096

256

256

256

256

512

512

256

256

256

128

2048

2048

2048

256

256

256

256

512

512

256

256

256

128

2048

2048

2048

256

256

4096

128

32

256

256

5

256

4096

256

32

256

256

5

256

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

459

Appendix D: Maximum Configuration Values

200D/100F 300D 400D 700D 1500D 2000D 4000D

Link Load Balancing

Link Group Gateway

Link group

Link group member

Virtual Tunnel

Group

Virtual tunnel group

Virtual tunnel member

Policy LLB policy rule

Global Load Balancing

Any configuration object

Security

Any configuration object

Log & Report

Remote Syslog Servers

1024

512

1024

512

256

512

256

256

3

2048

1024

2048

1024

256

1024

256

256

3

2048

1024

2048

1024

256

1024

256

256

3

2048

1024

2048

1024

256

1024

256

256

3

2048

1024

2048

1024

256

1024

256

256

3

2048

1024

2048

1024

256

1024

256

256

3

4096

2048

4096

2048

256

2048

256

256

3

 Table 169: Maximum configuration objects - Virtual Appliances

VM01 VM02

System

Administration

Certificate

Administrative users

Access profiles

Virtual domains (VDOMs)

Any configuration object

300

8

0

256

300

16

0

256

VM04 VM08

300

64

5

256

300

64

10

256

460 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Shared

Resources

Address

Address group

Health checks

ISP address book

Schedule

Schedule group

Service

Service group

SNMP community SNMP

SNMP community host

SNMP user

Networking

Interfaces

Routing

Physical network interfaces

VLAN interfaces

ARP table entries (per VDOM)

Static routes

NAT

QoS

Packet Capture

User

Any configuration object

Policy routes

ISP routes

Any configuration object

Any configuration object

Table

Server Load Balancing

Appendix D: Maximum Configuration Values

VM02

1024

64

1024

256

16

256

128

32

256

16

16

VM01

512

64

512

256

16

256

64

32

256

16

16

VM08

4096

64

4096

256

16

256

512

32

256

16

16

VM04

2048

64

2048

256

16

256

256

32

256

16

16

32

32

256

256

5

10

128

4096

1024

64

32

256

256

5

10

256

4096

2048

128

32

256

256

5

10

512

4096

4096

256

32

256

256

5

10

1024

4096

4096

256 256 256 256

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

461

Appendix D: Maximum Configuration Values

Virtual Servers

Real Server Pool Pools

Pool members

Resources

Real server SSL profile

Profiles

Cache policies

Compression policies

Persistence policies

Method policies

Content Rules

Authentication policies

Scripts

Content routing rules

Content rewriting rules

Link Load Balancing

Link Group Gateway

Link group

Virtual Tunnel

Link group member

Virtual tunnel

Virtual tunnel member

LLB policy rule Policy

Global Load Balancing

Any configuration object

Security

Any configuration object

462

VM02

1024

256

256

128

64

1024

1024

256

256

256

256

256

256

VM01

512

256

256

128

32

512

512

256

256

256

256

128

128

VM08

4096

256

256

256

256

4096

4096

256

256

256

256

1024

1024

VM04

2048

256

256

128

128

2048

2048

256

256

256

256

512

512

512

256

512

256

256

256

1024

512

1024

512

256

512

2048

1024

2048

1024

256

1024

4096

2048

4096

2048

256

2048

256 256 256 256

256 256 256 256

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Log & Report

Remote Syslog Servers

Appendix D: Maximum Configuration Values

VM01 VM02 VM04 VM08

3 3 3 3

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

463

Appendix E: High Speed Logging Binary Format

Appendix E: High Speed Logging Binary Format

The high speed logging feature sends a binary log file. It has the following structure: typedef struct __high_speed_log_header { unsigned char msg_ver; unsigned char unsigned char unsigned char have_dev_vd_str; dev; timezone; unsigned int unsigned char unsigned char unsigned char unsigned short unsigned char unsigned short

} high_speed_log_header_t; vid; cmd; log_type; log_subtype; total_len; total_count; next_len; typedef struct __dev_vdom_str { unsigned short next_len; unsigned char unsigned char dev_len; vdom_len; unsigned char

} dev_vdom_str_t; data[];//dev+vdom typedef struct _tlog_l4 { unsigned short unsigned int unsigned int uint64_t uint64_t unsigned char unsigned char char unsigned short char unsigned short char unsigned short char unsigned short unsigned short unsigned char unsigned char unsigned char

} tlog_l4_t; next_len; itime; duration; ibytes; obytes; proto; srv; src_ver; src_port; dst_ver; dst_port; trans_src_ver; trans_src_port; trans_dst_ver; trans_dst_port; policy; policy_len; action; data[];//src+dst+policy

464 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Appendix E: High Speed Logging Binary Format typedef struct _tlog_fw { unsigned short unsigned int unsigned int uint64_t uint64_t unsigned char unsigned char char unsigned short char unsigned short char unsigned short char unsigned short unsigned short unsigned char char char unsigned short unsigned char unsigned short unsigned char unsigned char unsigned char

} tlog_fw_t; typedef struct _tlog_llb { unsigned short unsigned int unsigned int uint64_t uint64_t unsigned char unsigned char char unsigned short char unsigned short char unsigned short char unsigned short unsigned short unsigned char unsigned char unsigned char unsigned char next_len; itime; duration; ibytes; obytes; proto; srv; src_ver; src_port; dst_ver; dst_port; trans_src_ver; trans_src_port; trans_dst_ver; trans_dst_port; policy; policy_len; nat_policy;//reserved for dictionory nat_policy_len; llb_policy; llb_policy_len; llb_link; llb_link_len; action; data[]; /*osip:odip:rsip:rdip:nat..*/ next_len; itime; duration; ibytes; obytes; proto; srv; src_ver; src_port; dst_ver; dst_port; trans_src_ver; trans_src_port; trans_dst_ver; trans_dst_port; policy; policy_len; action; linkgrp_len; link_len;

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

465

Appendix E: High Speed Logging Binary Format unsigned char

} tlog_llb_t; data[];//src+dst+policy typedef struct _tlog_l7_tcps { unsigned short unsigned int unsigned int next_len; itime; duration; uint64_t uint64_t unsigned char unsigned char unsigned char unsigned short unsigned char unsigned short unsigned char unsigned short unsigned char unsigned short unsigned char unsigned short unsigned char unsigned char ibytes; obytes; proto; srv; src_ver; src_port; dst_ver; dst_port; trans_src_ver; trans_src_port; trans_dst_ver; trans_dst_port; action; policy; policy_len; data[];//src+dst+trans_src+trans_ dst+policy+method+host+agent+url+qry+cookie

} tlog_l7_tcps_t; typedef struct _tlog_l7_radius { unsigned short next_len; unsigned int unsigned int uint64_t itime; duration; ibytes; uint64_t unsigned char unsigned char unsigned char unsigned short unsigned char unsigned short unsigned char obytes; proto; srv; src_ver; src_port; dst_ver; dst_port; trans_src_ver; unsigned short unsigned char unsigned short unsigned char unsigned short unsigned char unsigned char unsigned char

} tlog_l7_radius_t; trans_src_port; trans_dst_ver; trans_dst_port; action; policy; policy_len; user_len; data[];//src+dst+trans_src+trans_dst+policy+user

466 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Appendix E: High Speed Logging Binary Format typedef struct _tlog_l7_dns { unsigned short unsigned int unsigned int uint64_t uint64_t unsigned char unsigned char unsigned char unsigned short unsigned char unsigned short unsigned char unsigned short unsigned char unsigned char unsigned char unsigned char

} tlog_l7_dns_t; next_len; itime; duration; ibytes; obytes; proto; srv; src_ver; src_port; dst_ver; dst_port; action; policy; policy_len; domain_len; res_ip_ver; data[];//src+dst+trans_src+trans_dst+policy+domain typedef struct _tlog_l7_http { unsigned short unsigned int next_len; itime; unsigned int uint64_t uint64_t unsigned char unsigned char unsigned char unsigned short unsigned char unsigned short unsigned char unsigned short unsigned char unsigned short unsigned char unsigned short unsigned short duration; ibytes; obytes; proto; srv; src_ver; src_port; dst_ver; dst_port; trans_src_ver; trans_src_port; trans_dst_ver; trans_dst_port; action; method_len; host_len; unsigned short unsigned short unsigned short unsigned short unsigned short unsigned short unsigned char unsigned char agent_len; qry_len; cookie_len; url_len; retcode; policy; policy_len; data[];//src+dst+trans_src+trans_ dst+policy+method+host+agent+url+qry+cookie

} tlog_l7_http_t;

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

467

Appendix E: High Speed Logging Binary Format typedef struct _alog_l4

{ unsigned short unsigned int unsigned int unsigned int unsigned char unsigned char unsigned char unsigned char unsigned short unsigned char unsigned short unsigned short unsigned char unsigned char unsigned char

} alog_l4_t; typedef struct _alog_l7 { unsigned short unsigned int unsigned int uint64_t uint64_t unsigned char unsigned short unsigned char unsigned short unsigned char unsigned short unsigned char unsigned short unsigned short unsigned short unsigned short unsigned short unsigned short unsigned char unsigned char

} alog_l7_t; typedef struct _alog_syn { unsigned short unsigned int unsigned int unsigned int unsigned char next_len; itime; duration; count; sub_severity; irdb_type; proto; src_ver; src_port; dst_ver; dst_port; policy; policy_len; action; data[];//src+dst+policy next_len; itime; duration; ibytes; obytes; proto; srv; src_ver; src_port; dst_ver; dst_port; action; method_len; host_len; agend_len; url_len; retcode; policy; policy_len; data[];//src+dst+method+host+agent+url+policy next_len; itime; duration; count; sub_severity;

468 FortiADC D-Series Handbook

Fortinet Technologies, Inc.

Appendix E: High Speed Logging Binary Format

FortiADC D-Series Handbook

Fortinet Technologies, Inc.

469

Copyright© 2017 Fortinet, Inc. All rights reserved. Fortinet®, FortiGate®, FortiCare® and FortiGuard®, and certain other marks are registered trademarks of Fortinet,

Inc., in the U.S. and other jurisdictions, and other Fortinet names herein may also be registered and/or common law trademarks of Fortinet. All other product or company names may be trademarks of their respective owners. Performance and other metrics contained herein were attained in internal lab tests under ideal conditions, and actual performance and other results may vary. Network variables, different network environments and other conditions may affect performance results. Nothing herein represents any binding commitment by Fortinet, and Fortinet disclaims all warranties, whether express or implied, except to the extent Fortinet enters a binding written contract, signed by Fortinet’s General Counsel, with a purchaser that expressly warrants that the identified product will perform according to certain expressly-identified performance metrics and, in such event, only the specific performance metrics expressly identified in such binding written contract shall be binding on Fortinet. For absolute clarity, any such warranty will be limited to performance in the same ideal conditions as in Fortinet’s internal lab tests. In no event does Fortinet make any commitment related to future deliverables, features, or development, and circumstances may change such that any forward-looking statements herein are not accurate.

Fortinet disclaims in full any covenants, representations,and guarantees pursuant hereto, whether express or implied. Fortinet reserves the right to change, modify, transfer, or otherwise revise this publication without notice, and the most current version of the publication shall be applicable.

advertisement

Was this manual useful for you? Yes No
Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

advertisement

Table of contents