CIFS support
Antivirus scanning on Common Internet File System (CIFS) traffic is supported in flow-based and proxy-based inspection. The file filter profile handles the configuration of file filtering on CIFS. The antivirus profile handles the antivirus configuration for CIFS scanning.
File filtering for CIFS is performed by inspecting the first 4 KB of the file to identify the file's magic number. If a match occurs, CIFS file filtering prevents the CIFS command that contains that file from running. The file filter functions differently for un-encrypted and encrypted CIFS traffic:
- For un-encrypted CIFS traffic, the standalone file filter works in flow and proxy mode.
- For encrypted CIFS traffic, the CIFS profile must be enabled in the firewall policy because the SMB server’s credential settings are still be configured in CIFS profile. Using the standalone file filter only works in proxy mode.
For a CIFS profile to be available for assignment in a policy, the policy must use proxy inspection mode. See Proxy mode inspection for details. Note that in proxy inspection mode, special condition archive files (encrypted, corrupted, mailbomb, and so on) marked by the antivirus engine are blocked automatically.
Messages that are compressed with LZNT1, LZ77, and LZ77+Huffman algorithms can be scanned in proxy mode.
Configure file-type filtering and antivirus scanning on CIFS traffic
To configure file-type filtering and antivirus scanning on CIFS traffic:
Configure a CIFS domain controller
The domain controller must be configured when CIFS traffic is encrypted. The configuration tells the FortiGate the network location of the domain controller and the superuser credentials.
To configure the CIFS domain controller:
config user domain-controller edit "SERVER_NAME" set hostname "host" set domain-name "EXAMPLE.COM" set username "admin-super" set password ********* set ip 172.16.201.40 next end
Configure a CIFS profile
To create a CIFS profile, configure the server credential type and create a file filter profile.
Set the CIFS server credential type
The CIFS server credential type can be none
, credential-replication
, or credential-keytab
.
none
The CIFS profile assumes the CIFS traffic is unencrypted. This is the default value.
config firewall profile-protocol-options edit "cifs" config cifs set server-credential-type none end next end
credential-replication
To decrypt CIFS traffic, FortiOS obtains the session key from the domain controller by logging in to the superuser account. The domain controller must be configured.
config firewall profile-protocol-options edit "cifs" config cifs set server-credential-type credential-replication set domain-controller "SERVER_NAME" end next end
Variable |
Description |
---|---|
domain-controller <string> |
The previously configured domain to decrypt CIFS traffic for. |
credential-keytab
To decrypt CIFS traffic, FortiOS uses a series of keytab values. This method is used when the SMB connection is authenticated by Kerberos. Keytab entries must be configured, and are stored in FortiOS in plaintext.
config firewall profile-protocol-options edit "cifs" config cifs set server-credential-type credential-keytab config server-keytab edit "keytab1" set keytab "BQIAAABFAAEAC0VYQU1QTEUuQ09NAAdleGFtcGxlAAAAAVUmAlwBABIAILdV5P6NXT8RrTvapcMJQxDYCjRQiD0BzxhwS9h0VgyM" next end end next end
Variable |
Description |
---|---|
keytab <keytab> |
Base64 encoded keytab file containing the credentials of the server. |
Configure CIFS file filtering
Multiple rules can be added to a file filter profile. See File filter.
To configure a file filter for CIFS traffic:
config file-filter profile edit "cifs" set comment "block zip files on unencrypted cifs traffic" set feature-set flow set replacemsg-group '' set log enable config rules edit "rule1" set protocol cifs set action block set direction any set password-protected any set file-type zip next end next end
Variable |
Description |
---|---|
comment <string> |
A brief comment describing the entry. |
feature-set {flow | proxy} |
Flow or proxy mode feature set (default = |
replacemsg-group <string> |
Replacement message group. |
log {enable | disable} |
Enable/disable file filter logging (default = |
scan-archive-contents [enable | disable] |
Enable/disable scanning of archive contents (default = |
protocol {http ftp smtp imap pop3 mapi cifs ssh} |
Filter based on the specified protocol(s). |
action {log-only | block} |
The action to take for matched files:
|
direction {incoming | outgoing | any} |
Match files transmitted in the session's originating ( |
password-protected [yes | any] |
Match only password-protected files ( |
file-type <file_type> |
The file types to be matched. See Supported file types for details. |
Configure an antivirus profile
The antivirus profile handles the antivirus configuration for CIFS scanning.
To configure an antivirus profile:
config antivirus profile edit "av" ... config cifs set av-scan {disable | block | monitor} set outbreak-prevention {disable | block | monitor} set external-blocklist {disable | block | monitor} set quarantine {enable | disable} set archive-block {encrypted corrupted partiallycorrupted multipart nested mailbomb fileslimit timeout unhandled} set archive-log {encrypted corrupted partiallycorrupted multipart nested mailbomb fileslimit timeout unhandled} set emulator {enable | disable} end next end