Template for Troubleshooting Manual Template

Security Design in
Avaya Aura Presence Services
Release 5.2
Issue 1
November 2009
© 2009 Avaya Inc.
All Rights Reserved.
Notice
While reasonable efforts were made to ensure that the information in this
document was complete and accurate at the time of printing, Avaya Inc.
can assume no liability for any errors. Changes and corrections to the
information in this document may be incorporated in future releases.
For full legal page information, please see the complete document,
Avaya Legal Page for Hardware Documentation,
Document number 03-600759.
To locate this document on our website, simply go to
http://www.avaya.com/support and search for the document
number in the search box.
Documentation disclaimer
Avaya Inc. is not responsible for any modifications, additions, or deletions
to the original published version of this documentation unless such
modifications, additions, or deletions were performed by Avaya.
Customer and/or End User agree to indemnify and hold harmless Avaya,
Avaya's agents, servants and employees against all claims, lawsuits,
demands and judgments arising out of, or in connection with, subsequent
modifications, additions or deletions to this documentation to the extent
made by the Customer or End User.
Link disclaimer
Avaya Inc. is not responsible for the contents or reliability of any linked
Web sites referenced elsewhere within this documentation, and Avaya
does not necessarily endorse the products, services, or information
described or offered within them. We cannot guarantee that these links
will work all of the time and we have no control over the availability of the
linked pages.
Warranty
Avaya Inc. provides a limited warranty on this product. Refer to your
sales agreement to establish the terms of the limited warranty. In
addition, Avaya’s standard warranty language, as well as information
regarding support for this product, while under warranty, is available
through the following Web site:
http://www.avaya.com/support
Copyright
Except where expressly stated otherwise, the Product is protected by
copyright and other laws respecting proprietary rights. Unauthorized
reproduction, transfer, and or use can be a criminal, as well as a civil,
offense under the applicable law.
Avaya support
Avaya provides a telephone number for you to use to report problems or
to ask questions about your product. The support telephone number
is 1-800-242-2121 in the United States. For additional support telephone
numbers, see the Avaya Web site:
http://www.avaya.com/support
Contents
Introduction ........................................................................................................... 5
Security Architecture ............................................................................................. 5
Firewall ................................................................................................................. 5
Controlling the Firewall on Presence Services Solution .................................... 7
Monitoring Software .............................................................................................. 7
Network Access .................................................................................................... 8
Logins and Passwords .......................................................................................... 8
XCP Controller .................................................................................................. 8
Internal Unprivileged Linux Accounts ................................................................ 9
Session Inactivity, Audit Trails and Account Lockouts ........................................ 10
SIP Stack Protection ........................................................................................... 11
Linux Installation and Software ........................................................................... 11
Vulnerability Tracking.......................................................................................... 11
APPENDICES ..................................................................................................... 13
APPENDIX A – Linux PAM Configuration ....................................................... 14
APPENDIX B – Inactivity timeouts .................................................................. 17
APPENDIX C – Firewall Commands ............................................................... 18
Modifying the Firewall .................................................................................. 18
Listing the rules of the Firewall .................................................................... 18
Starting the Firewall ..................................................................................... 18
Stopping the Firewall ................................................................................... 18
Restarting the Firewall ................................................................................. 18
Allowing access to a port in the Firewall ...................................................... 18
Disabling access to a port in the Firewall ..................................................... 19
APPENDIX D – Warning banners / Disclaimers .............................................. 20
Introduction
Avaya Aura Presence Services 5.2 comes pre-packaged with several security
features and packages. This document describes the security features and
outlines the security guidelines that are recommended for securing Presence
Services against known vulnerabilities and attacks. Since this is a software-only
solution, the customer is primarily responsible for the security of the server.
Security Architecture
Microsoft Office
Communications Server
(Edge)
TCP[5061
(default)]
XMPP
Server
(Federation)
TCP
[5269]
(default)
HTTP(s)
[80,443,7300]
Administration
Console
Presence Services
UDP[161]
TCP[3268]
(default)
TCP [22]
Shell Terminal
Active Directory
Figure 1: Interaction of Presence Services with support configuration
Firewall
Firewall software provides protection to a server from the network. RedHat Linux
5.x comes with firewall software called iptables. It controls the network packet
filtering code in the Linux kernel.
Release 5.2
Issue 1 Decemeber 2009
5
We strongly recommend turning on the firewall software on the server that hosts
the Presence Services solution. The firewall software should be configured to
open only those ports that are absolutely required.
Presence Services uses the following ports by default. Where appropriate, ports
only accessible via the local loopback interface are marked as “Local Only”. For
“Local Only”, Presence Services components are connecting to other internal
Presence Services components using these ports, these ports are randomly
chosen based on the ports available. For “Inbound” ports, an entity external to
Presence Services is initiating the connection. For the application protocols, this
will be a client application. For “Outbound” ports i.e. connection to OCS Edge
server, Presence Services will initiate the connection setup.
Port
Used For
Protocol
Direction
7400
Presence Services
Core
tcp
Inbound &
Outbound
5432, 53418[Local Only]
Postgres DB
tcp
Inbound
5353
XCP Controller
udp
Inbound
7300
XCP Controller
tcp
Inbound
5222
XCP Controller
tcp
Inbound
5223
XCP Controller
tcp
Inbound
68
DHCP
tcp
Inbound
22
SSH (and SFTP and tcp
SCP)
Inbound
123
NTP
tcp
Outbound
2812
Monit
tcp
Inbound
32000[Local Only],
48859[Local Only], 31003
[Local Only]
SAL Agent
tcp
Outbound
32777[Local Only], 10162
SAL Agent
udp
Outbound
3268
Active Directory
tcp
Outbound
Release 5.2
Issue 1 Decemeber 2009
6
Port
Used For
Protocol
Direction
tcp
Inbound
connector (optional)
5269
Server-to-Server
Controlling the Firewall on Presence Services Solution
It is possible to control the communication access [through ports] to Presence
Services through firewall. Presence Services has implemented the firewall using
the Red Hat Linux iptables package. The firewall is always on by default.
Monitoring Software
It is strongly recommended to install intrusion detection and monitoring software
on the Presence Services machine.
Tripwire is installed on the Presence Services machine but only monitors a small
number of files by default. There are other software packages available like
SNORT, etc. It is also strongly recommended to configure the Linux bash shell to
log all shell command activity to Linux system logs.
Release 5.2
Issue 1 Decemeber 2009
7
Network Access
It is recommended to disable telnet, ftp, rsync, rsh, finger and chargen as these
network programs are insecure. These network programs will send out user
name and password in clear text. Instead we recommend the use of SSH, SFTP
and SCP for remote access to Presence Services machine. To disable telnet and
the other services listed above use the chkconfig command.
Logins and Passwords
XCP Controller
The XCP controller (Presence Component Configuration) pages are used to
administer the presence components running in the system. (e.g. Active
Directory Component) The XCP controller web-pages require login authentication
from the Linux platform where xcp-auth is the name of the service in pam.d that
is used for authentication. /etc/pam.d/xcp-auth by default comes with permissions
for cust and craft users to login to the XCP controller.
Account Group
Name
Default
Purpose
Password
Password
Naming
Policy
Password Change
Policy
cust
susers
Yes
For customer use
At least 6
chars, no
dictionary
words or
palindromes.
By default, password
changes are not
required. Password
should be changed by
Avaya Technician or
by the customer
during installation and
periodically there
after. See Appendix A
for recommendations
on configuring Linux
to enforce a password
change policy for cust
account.
craft
susers
Yes
For Avaya
Technician use
At least 6
chars, no
dictionary
words or
Will be changed by
(Password Change
System) PCS
periodically
Release 5.2
Issue 1 Decemeber 2009
8
Account Group
Name
Default
Purpose
Password
Password
Naming
Policy
Password Change
Policy
palindromes.
Internal Unprivileged Linux Accounts
For security reasons, services on the Presence Services machine run as
unprivileged Linux users. Direct access to these unprivileged accounts is
disabled, however the services run as the unprivileged user and thus only have
access to what the unprivileged user has permissions for. Examples of these
internal unprivileged accounts include monit(used by core process monitoring
tool), spirit (used for the SAL Agent) and postgres (used by Postgres database).
Account
Name
Group
Default
Purpose
Password
Password
Naming
Policy
sroot
root
Yes
For login
At least 6
Will be changed by
chars, no
PCS periodically
dictionary
words or
palindromes.
monit
monit
Yes
Service monitor
user
At least 6
chars, no
dictionary
words or
palindromes.
By default, password
changes are not
required. See
Appendix A for
recommendations on
configuring Linux to
enforce a password
change policy for
cust account.
postgres
postgres
Yes
PostgresQL
Database user
At least 6
chars, no
dictionary
words or
palindromes.
By default, password
changes are not
required. See
Appendix A for
recommendations on
configuring Linux to
enforce a password
change policy for
Release 5.2
Password Change
Policy
Issue 1 Decemeber 2009
9
cust account.
jabber
jroot
Yes
Presence
component and
log-harvester
user
At least 6
chars, no
dictionary
words or
palindromes.
By default, password
changes are not
required. See
Appendix A for
recommendations on
configuring Linux to
enforce a password
change policy for
cust account.
spirit
Spirit
No
SAL Agent user
At least 6
chars, no
dictionary
words or
palindromes.
By default, password
changes are not
required. See
Appendix A for
recommendations on
configuring Linux to
enforce a password
change policy for
cust account.
Session Inactivity, Audit Trails and
Account Lockouts
Inactivity timeouts are recommended for users logged into a Linux shell via SSH.
The following table summarizes the recommended inactivity timeouts for these
connections.
Service Name
Session Inactivity
Customizable
SSH (shell)
No (default = 30
minutes)
Yes (requires root
access)
See Appendix B for details on modifying the default timeout values.
It is recommended to configure the bash RPM on the Presence Services
machine to log all shell command activity to Linux system logs in
/var/log/messages. This includes login attempts (success and failure) and any
command that is typed by a user or invoked by any software within the Presence
Release 5.2
Issue 1 Decemeber 2009
10
Services machine. This provides an audit trail for all shell activity. Access to
these audit trails or logs is restricted only to root or super user privileged logins.
Service Name
Audit Trail
SSH (shell)
Yes, in /var/log/messages
Presence Server
Configuration
Yes, in /var/log/presence
Currently the services do not perform account lockouts in the event of
consecutive failed login attempts. Appendix A provides details on configuring
Linux to perform account lockouts for Linux accounts after a certain number of
successive failures.
SIP Stack Protection
Presence Services 5.2 employs SIP stacks that protect against malformed SIP
packets and DOS attacks. They handle DOS attacks at kernel level.
Linux Installation and Software
See Installation guide for software requirements for Presence Services 5.2. We
recommend that a minimum installation be performed while installing Linux.
This will ensure only the minimum software RPMs [Red Hat Package Manager]
for Linux are installed which will greatly lessen security risks. Thus an onionlayer security is provided by the OS, firewall, Intrusion Detection System, SIP
Stack Protection and TLS/SSL [secure web pages through HTTPS]. The server
itself is recommended to be placed in a physically restricted area by following
standard data-center practices.
Vulnerability Tracking
Avaya's support organization provides security advisories for its products and
notifies when Avaya products are susceptible to vulnerabilities in third-party
software, such as Red Hat Enterprise Linux and Postgres. To sign up for
advisory notification, please go to http://support.avaya.com and navigate to
"Feeds and Notifications" -> "Avaya E-Notifications".
For more detail on Avaya tracking policies and practices, please see:

Avaya's Product Security Vulnerability Response Policy
Release 5.2
Issue 1 Decemeber 2009
11
http://support.avaya.com/elmodocs2/security/security_vulnerability_response.pdf

Avaya's Security Vulnerability Classification Policy
http://support.avaya.com/elmodocs2/security/security_vulnerability_classification.
pdf
Release 5.2
Issue 1 Decemeber 2009
12
APPENDICES
These following appendices outline some potential options for configuration
changes that may help make the Presence Services machine more secure.
These configuration changes require root access and would typically need to be
performed by an Avaya Services technician running as root or sroot. There are
three areas that are covered:
1) Linux PAM configuration for enhanced password management
2) Configuration options for changing inactivity timeouts for shell
3) Customizing SSH warning banners
Release 5.2
Issue 1 Decemeber 2009
13
APPENDIX A – Linux PAM Configuration
This section provides details on how Linux may be configured to ensure stronger
password policies for customer accounts on Presence Services solution.
Passwords are encrypted with standard inbuilt MD5 algorithm of RHEL 5.
1) It should be noted that the recommendations for forcing password changes
on 1st login, forcing periodic password changes and locking out accounts after
certain periods of inactivity should not be applied to the Avaya Services
accounts (craft and sroot) since Avaya Services already implement a policy
for these accounts. In addition, internal unprivileged accounts (like apache,
monit etc) which are not directly logged into, should not have policies set for
them.
2) Forcing a password change for cust account on 1st login (via SSH). In order
to do this issue the following command (as sroot)
chage –d 0 cust
3) Forcing periodic password changes on account cust. For instance to force a
password change every 60 days do the following:
chage –M 60 cust
By default the user will see warnings 7 days prior to their password expiring.
The warnings are seen when logging in via SSH.
4) To lockout an account after a period of inactivity (after their password has
expired). For instance to lockout cust account if there are 14 days of inactivity
after the password expired:
chage –I 14 cust
5) To provide more precise password naming rules, the /etc/pam.d/system-auth
files needs to be updated. For instance to ensure the minimum password
policy meets a 1 digit, 1 lowercase character, minimum length of 6 chars,
modify the cracklib line as follows:
password required /lib/security/$ISA/pam_cracklib.so
retry=3 minlen=6 dcredit=-1 lcredit=-1
It should be noted that stricter policies other than this one should not be
enforced otherwise it might cause passwords generated by the Avaya
Service’s Password Change System (for craft and sroot) to fail.
6)
To lock out an account after a certain number of failed login attempts. Again
this requires modification to the /etc/pam.d/system-auth file. Add/update the
following (highlighted lines) to the system-auth file.
Release 5.2
Issue 1 Decemeber 2009
14
auth
required
/lib/security/$ISA/pam_env.so
auth
required
/lib/security/$ISA/pam_tally.so onerr=fail no_magic_root
auth
sufficient
/lib/security/$ISA/pam_unix.so likeauth nullok
auth
required
/lib/security/$ISA/pam_deny.so
account
required
account required
no_magic_root reset
/lib/security/$ISA/pam_unix.so
/lib/security/$ISA/pam_tally.so per_user deny=5
password required
dcredit=-1 lcredit=-1
/lib/security/$ISA/pam_cracklib.so retry=3 minlen=6
password
shadow
sufficient
/lib/security/$ISA/pam_unix.so nullok use_authtok md5
password
required
/lib/security/$ISA/pam_deny.so
session
required
/lib/security/$ISA/pam_limits.so
session
required
/lib/security/$ISA/pam_unix.so
This will cause an account to be locked out after 5 consecutive failed login
attempts.
To check for locked out accounts run “faillog”. It’s possible we want to have
certain
accounts that are not locked out (like craft and sroot for instance). To do this
use the
following:
faillog –u craft –M -1
faillog –u sroot –M -1
Remembering password history.
Release 5.2
Issue 1 Decemeber 2009
15
To allow the system to remember password history (so that passwords can’t be
re-used), you must again edit the /etc/pam.d/system-auth file. Edit the password
line for pam_unix and add/update the remember attribute.
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5
shadow remember=10
NOTE:
If the /etc/security/opasswd doesn't exist, create the file.
# ls -l /etc/security/opasswd
-rw-------
1 root root 0 Dec
8 06:54 /etc/security/opasswd
In the example above, the system will remember the last 10 passwords for each
user, so they can't be reused.
Release 5.2
Issue 1 Decemeber 2009
16
APPENDIX B – Inactivity timeouts
Sometimes customers may have requirements for lower timeouts or timeouts for
Secure Shell. The following shows how these inactivity timeouts can be modified.
To modify the bash shell inactivity timeout, do the following:
1) cd /etc/profile.d
2) Edit setpres.sh
3) Add TMOUT value. This value is seconds. The entry will look like
export TMOUT=1800
to change to 15 minutes for example do the following:
export TMOUT=900
Changes will take effect for all subsequent shell logins
Release 5.2
Issue 1 Decemeber 2009
17
APPENDIX C – Firewall Commands
Modifying the Firewall
In some instances a customer or Avaya technician would want to change the port
filtering (port or port ranges) on the Firewall. This can be done by using various
options available through the iptables command.
By default, the firewall is automatically started when the Bundled system boots
up. The default rules that are implemented by the firewall are in
/etc/init.d/iptables.
For all commands below, SSH into the Presence Services machine first with root
level access.
Listing the rules of the Firewall
Use the following command: iptables --list --line-number --numeric
This will list all the firewall rules including the Rule Numbers. There are three
chains (table) for which rules will be listed.
INPUT - for incoming connections/packets
OUTPUT - for outgoing connections/packets
FORWARD - for forwarding packets from one host to another
Starting the Firewall
To start the firewall: service iptables start
Stopping the Firewall
Use the following command: service iptables stop
Restarting the Firewall
At any point, if the iptable rules are modified, then restarting the iptables will reload the iptable rules with modified rules.
Use the following command: service iptables restart
Allowing access to a port in the Firewall
Use the following command:
iptables -A INPUT -p udp –destination-port 5060 -i eth0 -j ACCEPT
Release 5.2
Issue 1 Decemeber 2009
18
to allow SIP UDP packets [running on port port 5060]
-A is to append the ruleset to existing rules
-p is for the protocol [tcp/udp etc]
-i is the interface [eth0]
-j is for access control [ALLOW/DENY/DROP]
Disabling access to a port in the Firewall
Use the following command:
iptables -A INPUT -p udp --destination-port 23 -i eth0 -j DROP
to drop all packets coming to the server in port [telnet service].
Release 5.2
Issue 1 Decemeber 2009
19
APPENDIX D – Warning banners / Disclaimers
To add or modify the SSH disclaimer banner, do the following, login as root:
1) Edit or replace /etc/banner.
2) Open /etc/ssh/sshd_config file in read-write mode.
3) Restart the ssh daemon for the configuration changes to take affect, with the
following command: 'service sshd restart'
Uncomment
“#Banner /some/path” line. After editing the line should look like Banner
/etc/banner
Release 5.2
Issue 1 Decemeber 2009
20