commit 2156be794b660bcf9975cc1ca70b0e287770e441 Author: Eric H Christensen eric@christensenplace.us Date: Thu Sep 30 12:47:11 2010 -0400
Security Guide
fedoradocs.db | Bin 363520 -> 363520 bytes public_html/Sitemap | 24 + public_html/as-IN/Site_Statistics.html | 4 +- public_html/as-IN/toc.html | 15 + public_html/bg-BG/Site_Statistics.html | 4 +- public_html/bg-BG/toc.html | 15 + public_html/bn-IN/Site_Statistics.html | 4 +- public_html/bn-IN/toc.html | 15 + public_html/bs-BA/Site_Statistics.html | 4 +- public_html/bs-BA/toc.html | 15 + public_html/ca-ES/Site_Statistics.html | 4 +- public_html/ca-ES/toc.html | 22 + public_html/cs-CZ/Site_Statistics.html | 4 +- public_html/cs-CZ/toc.html | 15 + public_html/da-DK/Site_Statistics.html | 4 +- public_html/da-DK/toc.html | 15 + public_html/de-DE/Site_Statistics.html | 4 +- public_html/de-DE/toc.html | 15 + public_html/el-GR/Site_Statistics.html | 4 +- public_html/el-GR/toc.html | 15 + .../Fedora-14-Security_Guide-en-US.epub | Bin 0 -> 767134 bytes .../Security_Guide/Common_Content/css/common.css | 1467 +++++++ .../Security_Guide/Common_Content/css/default.css | 3 + .../Security_Guide/Common_Content/css/lang.css | 2 + .../Common_Content/css/overrides.css | 51 + .../Security_Guide/Common_Content/css/print.css | 16 + .../Security_Guide/Common_Content/images/1.png | Bin 0 -> 690 bytes .../Security_Guide/Common_Content/images/1.svg | 22 + .../Security_Guide/Common_Content/images/10.png | Bin 0 -> 982 bytes .../Security_Guide/Common_Content/images/10.svg | 22 + .../Security_Guide/Common_Content/images/11.png | Bin 0 -> 806 bytes .../Security_Guide/Common_Content/images/11.svg | 22 + .../Security_Guide/Common_Content/images/12.png | Bin 0 -> 953 bytes .../Security_Guide/Common_Content/images/12.svg | 22 + .../Security_Guide/Common_Content/images/13.png | Bin 0 -> 1015 bytes .../Security_Guide/Common_Content/images/13.svg | 22 + .../Security_Guide/Common_Content/images/14.png | Bin 0 -> 933 bytes .../Security_Guide/Common_Content/images/14.svg | 22 + .../Security_Guide/Common_Content/images/15.png | Bin 0 -> 996 bytes .../Security_Guide/Common_Content/images/15.svg | 22 + .../Security_Guide/Common_Content/images/16.png | Bin 0 -> 1030 bytes .../Security_Guide/Common_Content/images/16.svg | 22 + .../Security_Guide/Common_Content/images/17.png | Bin 0 -> 870 bytes .../Security_Guide/Common_Content/images/17.svg | 22 + .../Security_Guide/Common_Content/images/18.png | Bin 0 -> 1001 bytes .../Security_Guide/Common_Content/images/18.svg | 22 + .../Security_Guide/Common_Content/images/19.png | Bin 0 -> 1013 bytes .../Security_Guide/Common_Content/images/19.svg | 22 + .../Security_Guide/Common_Content/images/2.png | Bin 0 -> 808 bytes .../Security_Guide/Common_Content/images/2.svg | 22 + .../Security_Guide/Common_Content/images/20.png | Bin 0 -> 1121 bytes .../Security_Guide/Common_Content/images/20.svg | 22 + .../Security_Guide/Common_Content/images/21.png | Bin 0 -> 981 bytes .../Security_Guide/Common_Content/images/21.svg | 22 + .../Security_Guide/Common_Content/images/22.png | Bin 0 -> 1057 bytes .../Security_Guide/Common_Content/images/22.svg | 22 + .../Security_Guide/Common_Content/images/23.png | Bin 0 -> 1120 bytes .../Security_Guide/Common_Content/images/23.svg | 22 + .../Security_Guide/Common_Content/images/3.png | Bin 0 -> 868 bytes .../Security_Guide/Common_Content/images/3.svg | 22 + .../Security_Guide/Common_Content/images/4.png | Bin 0 -> 794 bytes .../Security_Guide/Common_Content/images/4.svg | 22 + .../Security_Guide/Common_Content/images/5.png | Bin 0 -> 853 bytes .../Security_Guide/Common_Content/images/5.svg | 22 + .../Security_Guide/Common_Content/images/6.png | Bin 0 -> 865 bytes .../Security_Guide/Common_Content/images/6.svg | 22 + .../Security_Guide/Common_Content/images/7.png | Bin 0 -> 742 bytes .../Security_Guide/Common_Content/images/7.svg | 22 + .../Security_Guide/Common_Content/images/8.png | Bin 0 -> 862 bytes .../Security_Guide/Common_Content/images/8.svg | 22 + .../Security_Guide/Common_Content/images/9.png | Bin 0 -> 860 bytes .../Security_Guide/Common_Content/images/9.svg | 22 + .../Common_Content/images/bkgrnd_greydots.png | Bin 0 -> 157 bytes .../Common_Content/images/bullet_arrowblue.png | Bin 0 -> 177 bytes .../Common_Content/images/documentation.png | Bin 0 -> 623 bytes .../Security_Guide/Common_Content/images/dot.png | Bin 0 -> 98 bytes .../Security_Guide/Common_Content/images/dot2.png | Bin 0 -> 98 bytes .../Security_Guide/Common_Content/images/h1-bg.png | Bin 0 -> 565 bytes .../Common_Content/images/image_left.png | Bin 0 -> 1114 bytes .../Common_Content/images/image_right.png | Bin 0 -> 2260 bytes .../Common_Content/images/important.png | Bin 0 -> 2080 bytes .../Common_Content/images/important.svg | 106 + .../Security_Guide/Common_Content/images/logo.png | Bin 0 -> 1114 bytes .../Security_Guide/Common_Content/images/note.png | Bin 0 -> 1241 bytes .../Security_Guide/Common_Content/images/note.svg | 111 + .../Security_Guide/Common_Content/images/shade.png | Bin 0 -> 101 bytes .../Security_Guide/Common_Content/images/shine.png | Bin 0 -> 146 bytes .../Common_Content/images/stock-go-back.png | Bin 0 -> 828 bytes .../Common_Content/images/stock-go-forward.png | Bin 0 -> 828 bytes .../Common_Content/images/stock-go-up.png | Bin 0 -> 760 bytes .../Common_Content/images/stock-home.png | Bin 0 -> 808 bytes .../Common_Content/images/title_logo.png | Bin 0 -> 13399 bytes .../Common_Content/images/title_logo.svg | 61 + .../Common_Content/images/warning.png | Bin 0 -> 1340 bytes .../Common_Content/images/warning.svg | 89 + .../Common_Content/images/watermark-draft.png | Bin 0 -> 25365 bytes .../html-single/Security_Guide/images/SCLogin.png | Bin 0 -> 8088 bytes .../Security_Guide/images/SCLoginEnrollment.png | Bin 0 -> 14924 bytes .../Security_Guide/images/auth-panel.png | Bin 0 -> 9257 bytes .../html-single/Security_Guide/images/authicon.png | Bin 0 -> 1163 bytes .../images/fed-firefox_kerberos_SSO.png | Bin 0 -> 47794 bytes .../Security_Guide/images/fed-firewall_config.png | Bin 0 -> 76857 bytes .../Security_Guide/images/fed-ipsec_host2host.png | Bin 0 -> 39081 bytes .../images/fed-ipsec_n_to_n_local.png | Bin 0 -> 30935 bytes .../images/fed-ipsec_n_to_n_remote.png | Bin 0 -> 34860 bytes .../Security_Guide/images/fed-service_config.png | Bin 0 -> 76914 bytes .../Security_Guide/images/fed-user_pass_groups.png | Bin 0 -> 35369 bytes .../Security_Guide/images/fed-user_pass_info.png | Bin 0 -> 35624 bytes .../14/html-single/Security_Guide/images/icon.svg | 3936 ++++++++++++++++++ .../Security_Guide/images/n-t-n-ipsec-diagram.png | Bin 0 -> 33470 bytes .../Security_Guide/images/tcp_wrap_diagram.png | Bin 0 -> 25775 bytes .../14/html-single/Security_Guide/index.html | 4299 ++++++++++++++++++++ .../Security_Guide/Common_Content/css/common.css | 1467 +++++++ .../Security_Guide/Common_Content/css/default.css | 3 + .../Security_Guide/Common_Content/css/lang.css | 2 + .../Common_Content/css/overrides.css | 51 + .../Security_Guide/Common_Content/css/print.css | 16 + .../Security_Guide/Common_Content/images/1.png | Bin 0 -> 690 bytes .../Security_Guide/Common_Content/images/1.svg | 22 + .../Security_Guide/Common_Content/images/10.png | Bin 0 -> 982 bytes .../Security_Guide/Common_Content/images/10.svg | 22 + .../Security_Guide/Common_Content/images/11.png | Bin 0 -> 806 bytes .../Security_Guide/Common_Content/images/11.svg | 22 + .../Security_Guide/Common_Content/images/12.png | Bin 0 -> 953 bytes .../Security_Guide/Common_Content/images/12.svg | 22 + .../Security_Guide/Common_Content/images/13.png | Bin 0 -> 1015 bytes .../Security_Guide/Common_Content/images/13.svg | 22 + .../Security_Guide/Common_Content/images/14.png | Bin 0 -> 933 bytes .../Security_Guide/Common_Content/images/14.svg | 22 + .../Security_Guide/Common_Content/images/15.png | Bin 0 -> 996 bytes .../Security_Guide/Common_Content/images/15.svg | 22 + .../Security_Guide/Common_Content/images/16.png | Bin 0 -> 1030 bytes .../Security_Guide/Common_Content/images/16.svg | 22 + .../Security_Guide/Common_Content/images/17.png | Bin 0 -> 870 bytes .../Security_Guide/Common_Content/images/17.svg | 22 + .../Security_Guide/Common_Content/images/18.png | Bin 0 -> 1001 bytes .../Security_Guide/Common_Content/images/18.svg | 22 + .../Security_Guide/Common_Content/images/19.png | Bin 0 -> 1013 bytes .../Security_Guide/Common_Content/images/19.svg | 22 + .../Security_Guide/Common_Content/images/2.png | Bin 0 -> 808 bytes .../Security_Guide/Common_Content/images/2.svg | 22 + .../Security_Guide/Common_Content/images/20.png | Bin 0 -> 1121 bytes .../Security_Guide/Common_Content/images/20.svg | 22 + .../Security_Guide/Common_Content/images/21.png | Bin 0 -> 981 bytes .../Security_Guide/Common_Content/images/21.svg | 22 + .../Security_Guide/Common_Content/images/22.png | Bin 0 -> 1057 bytes .../Security_Guide/Common_Content/images/22.svg | 22 + .../Security_Guide/Common_Content/images/23.png | Bin 0 -> 1120 bytes .../Security_Guide/Common_Content/images/23.svg | 22 + .../Security_Guide/Common_Content/images/3.png | Bin 0 -> 868 bytes .../Security_Guide/Common_Content/images/3.svg | 22 + .../Security_Guide/Common_Content/images/4.png | Bin 0 -> 794 bytes .../Security_Guide/Common_Content/images/4.svg | 22 + .../Security_Guide/Common_Content/images/5.png | Bin 0 -> 853 bytes .../Security_Guide/Common_Content/images/5.svg | 22 + .../Security_Guide/Common_Content/images/6.png | Bin 0 -> 865 bytes .../Security_Guide/Common_Content/images/6.svg | 22 + .../Security_Guide/Common_Content/images/7.png | Bin 0 -> 742 bytes .../Security_Guide/Common_Content/images/7.svg | 22 + .../Security_Guide/Common_Content/images/8.png | Bin 0 -> 862 bytes .../Security_Guide/Common_Content/images/8.svg | 22 + .../Security_Guide/Common_Content/images/9.png | Bin 0 -> 860 bytes .../Security_Guide/Common_Content/images/9.svg | 22 + .../Common_Content/images/bkgrnd_greydots.png | Bin 0 -> 157 bytes .../Common_Content/images/bullet_arrowblue.png | Bin 0 -> 177 bytes .../Common_Content/images/documentation.png | Bin 0 -> 623 bytes .../Security_Guide/Common_Content/images/dot.png | Bin 0 -> 98 bytes .../Security_Guide/Common_Content/images/dot2.png | Bin 0 -> 98 bytes .../Security_Guide/Common_Content/images/h1-bg.png | Bin 0 -> 565 bytes .../Common_Content/images/image_left.png | Bin 0 -> 1114 bytes .../Common_Content/images/image_right.png | Bin 0 -> 2260 bytes .../Common_Content/images/important.png | Bin 0 -> 2080 bytes .../Common_Content/images/important.svg | 106 + .../Security_Guide/Common_Content/images/logo.png | Bin 0 -> 1114 bytes .../Security_Guide/Common_Content/images/note.png | Bin 0 -> 1241 bytes .../Security_Guide/Common_Content/images/note.svg | 111 + .../Security_Guide/Common_Content/images/shade.png | Bin 0 -> 101 bytes .../Security_Guide/Common_Content/images/shine.png | Bin 0 -> 146 bytes .../Common_Content/images/stock-go-back.png | Bin 0 -> 828 bytes .../Common_Content/images/stock-go-forward.png | Bin 0 -> 828 bytes .../Common_Content/images/stock-go-up.png | Bin 0 -> 760 bytes .../Common_Content/images/stock-home.png | Bin 0 -> 808 bytes .../Common_Content/images/title_logo.png | Bin 0 -> 13399 bytes .../Common_Content/images/title_logo.svg | 61 + .../Common_Content/images/warning.png | Bin 0 -> 1340 bytes .../Common_Content/images/warning.svg | 89 + .../Common_Content/images/watermark-draft.png | Bin 0 -> 25365 bytes ...ide-Encryption-Data_in_Motion-Secure_Shell.html | 9 + ...on-Data_in_Motion-Virtual_Private_Networks.html | 5 + .../Security_Guide-Encryption-Data_in_Motion.html | 7 + ...tecting_Data_at_Rest-File_Based_Encryption.html | 7 + .../14/html/Security_Guide/We_Need_Feedback.html | 7 + .../Fedora/14/html/Security_Guide/apas02.html | 39 + .../Fedora/14/html/Security_Guide/apas02s02.html | 7 + .../Fedora/14/html/Security_Guide/apas02s03.html | 7 + .../Fedora/14/html/Security_Guide/apas02s04.html | 17 + .../Fedora/14/html/Security_Guide/apas02s05.html | 7 + .../Fedora/14/html/Security_Guide/apas02s06.html | 7 + .../appe-Publican-Revision_History.html | 77 + .../Security_Guide/chap-Security_Guide-CVE.html | 11 + .../chap-Security_Guide-Encryption.html | 7 + .../chap-Security_Guide-Encryption_Standards.html | 31 + ...General_Principles_of_Information_Security.html | 31 + .../chap-Security_Guide-References.html | 45 + .../chap-Security_Guide-Secure_Installation.html | 13 + .../chap-Security_Guide-Securing_Your_Network.html | 523 +++ .../chap-Security_Guide-Security_Overview.html | 121 + .../chap-Security_Guide-Software_Maintenance.html | 7 + .../14/html/Security_Guide/images/SCLogin.png | Bin 0 -> 8088 bytes .../Security_Guide/images/SCLoginEnrollment.png | Bin 0 -> 14924 bytes .../14/html/Security_Guide/images/auth-panel.png | Bin 0 -> 9257 bytes .../14/html/Security_Guide/images/authicon.png | Bin 0 -> 1163 bytes .../images/fed-firefox_kerberos_SSO.png | Bin 0 -> 47794 bytes .../Security_Guide/images/fed-firewall_config.png | Bin 0 -> 76857 bytes .../Security_Guide/images/fed-ipsec_host2host.png | Bin 0 -> 39081 bytes .../images/fed-ipsec_n_to_n_local.png | Bin 0 -> 30935 bytes .../images/fed-ipsec_n_to_n_remote.png | Bin 0 -> 34860 bytes .../Security_Guide/images/fed-service_config.png | Bin 0 -> 76914 bytes .../Security_Guide/images/fed-user_pass_groups.png | Bin 0 -> 35369 bytes .../Security_Guide/images/fed-user_pass_info.png | Bin 0 -> 35624 bytes .../Fedora/14/html/Security_Guide/images/icon.svg | 3936 ++++++++++++++++++ .../Security_Guide/images/n-t-n-ipsec-diagram.png | Bin 0 -> 33470 bytes .../Security_Guide/images/tcp_wrap_diagram.png | Bin 0 -> 25775 bytes .../en-US/Fedora/14/html/Security_Guide/index.html | 26 + .../pref-Security_Guide-Preface.html | 88 + ...y_Guide-Additional_Resources-Related_Books.html | 5 + ...Additional_Resources-Related_Documentation.html | 7 + ...itional_Resources-Useful_Firewall_Websites.html | 9 + ...tional_Resources-Useful_IP_Tables_Websites.html | 7 + ...itional_Resources-Useful_Kerberos_Websites.html | 15 + ...e-Additional_Resources-Useful_PAM_Websites.html | 7 + ...nal_Resources-Useful_TCP_Wrappers_Websites.html | 7 + ...Configuration_Files-Access_Control_Options.html | 53 + ...tion_Files-Binding_and_Redirection_Options.html | 30 + ...guration_Files-Resource_Management_Options.html | 15 + ...ulnerabilities-Threats_to_Network_Security.html | 11 + ...Vulnerabilities-Threats_to_Server_Security.html | 9 + ...hreats_to_Workstation_and_Home_PC_Security.html | 7 + ...curity_Guide-Attackers_and_Vulnerabilities.html | 23 + ...figuration-Activating_the_IPTables_Service.html | 7 + ...ration-Enabling_and_Disabling_the_Firewall.html | 13 + ...e-Basic_Firewall_Configuration-Other_Ports.html | 7 + ...Firewall_Configuration-Saving_the_Settings.html | 9 + ...ic_Firewall_Configuration-Trusted_Services.html | 21 + ...e-CVE-yum_plugin-using_yum_plugin_security.html | 38 + ...mmand_Options_for_IPTables-Command_Options.html | 41 + ...ptions_for_IPTables-IPTables_Match_Options.html | 64 + ...ns_for_IPTables-IPTables_Parameter_Options.html | 49 + ...mmand_Options_for_IPTables-Listing_Options.html | 15 + ...ommand_Options_for_IPTables-Target_Options.html | 43 + ...Security_Guide-Common_Exploits_and_Attacks.html | 60 + ...crypted_Archives-Installation-Instructions.html | 9 + ...on-7_Zip_Encrypted_Archives-Things_of_note.html | 5 + ..._Zip_Encrypted_Archives-Usage_Instructions.html | 27 + ..._Guide-Encryption-7_Zip_Encrypted_Archives.html | 7 + ...otecting_Data_at_Rest-Full_Disk_Encryption.html | 9 + ...tion-Using_GPG-About_Public_Key_Encryption.html | 7 + ...ryption-Using_GPG-Creating_GPG_Keys_in_KDE.html | 41 + ...yption-Using_GPG-Creating_GPG_Keys_in_KDE1.html | 9 + ...Encryption-Using_GPG-Using_GPG_with_Alpine.html | 21 + ..._GPG_with_Evolution-Signing_and_Encrypting.html | 7 + ...ing_GPG-Using_GPG_with_Evolution-Verifying.html | 5 + ...ryption-Using_GPG-Using_GPG_with_Evolution.html | 9 + ...ption-Using_GPG-Using_GPG_with_Thunderbird.html | 17 + .../sect-Security_Guide-Encryption-Using_GPG.html | 17 + ...g_the_Tools-Anticipating_Your_Future_Needs.html | 5 + ...Security_Guide-Evaluating_the_Tools-Nessus.html | 11 + ...-Security_Guide-Evaluating_the_Tools-Nikto.html | 9 + ...uide-Evaluating_the_Tools-VLAD_the_Scanner.html | 11 + ...de-FORWARD_and_NAT_Rules-DMZs_and_IPTables.html | 11 + ...ity_Guide-FORWARD_and_NAT_Rules-Prerouting.html | 13 + ...urity_Guide-Firewalls-Additional_Resources.html | 9 + ...ide-Firewalls-Basic_Firewall_Configuration.html | 17 + ..._Guide-Firewalls-Common_IPTables_Filtering.html | 32 + ...rity_Guide-Firewalls-FORWARD_and_NAT_Rules.html | 38 + ...Firewalls-IPTables_and_Connection_Tracking.html | 15 + .../sect-Security_Guide-Firewalls-IPv6.html | 11 + ...alicious_Software_and_Spoofed_IP_Addresses.html | 24 + ...ct-Security_Guide-Firewalls-Using_IPTables.html | 21 + .../sect-Security_Guide-Firewalls.html | 55 + ...curity_Guide-IPTables-Additional_Resources.html | 9 + ...uide-IPTables-Command_Options_for_IPTables.html | 35 + ...ty_Guide-IPTables-IPTables_Control_Scripts.html | 71 + ...-Security_Guide-IPTables-IPTables_and_IPv6.html | 13 + ...urity_Guide-IPTables-Saving_IPTables_Rules.html | 17 + .../sect-Security_Guide-IPTables.html | 63 + ...ch_Options-Additional_Match_Option_Modules.html | 55 + ...Guide-IPTables_Match_Options-ICMP_Protocol.html | 7 + ..._Guide-IPTables_Match_Options-UDP_Protocol.html | 11 + ...on-Manual_IPsec_Host_to_Host_Configuration.html | 97 + ...ual_IPsec_Network_to_Network_Configuration.html | 83 + ...curity_Guide-Kerberos-Additional_Resources.html | 31 + ...e-Kerberos-Configuring_a_Kerberos_5_Client.html | 31 + ...e-Kerberos-Configuring_a_Kerberos_5_Server.html | 41 + ...ity_Guide-Kerberos-Domain_to_Realm_Mapping.html | 16 + ...Security_Guide-Kerberos-How_Kerberos_Works.html | 31 + ...curity_Guide-Kerberos-Kerberos_Terminology.html | 45 + ...t-Security_Guide-Kerberos-Kerberos_and_PAM.html | 7 + ...eros-Setting_Up_Cross_Realm_Authentication.html | 90 + ...y_Guide-Kerberos-Setting_Up_Secondary_KDCs.html | 63 + .../sect-Security_Guide-Kerberos.html | 35 + ...ide-LUKS_Disk_Encryption-Links_of_Interest.html | 9 + ...ting_Directories-Step_by_Step_Instructions.html | 41 + ...irectories-What_you_have_just_accomplished.html | 5 + ...Encryption-Manually_Encrypting_Directories.html | 9 + .../sect-Security_Guide-LUKS_Disk_Encryption.html | 19 + ...ecurity_Guide-Option_Fields-Access_Control.html | 10 + ...ct-Security_Guide-Option_Fields-Expansions.html | 42 + ...ecurity_Guide-Option_Fields-Shell_Commands.html | 18 + ...PAM_Configuration_File_Format-Control_Flag.html | 21 + ...Configuration_File_Format-Module_Arguments.html | 11 + ...-PAM_Configuration_File_Format-Module_Name.html | 5 + ...al_Caching-Common_pam_timestamp_Directives.html | 11 + ...AM_and_Device_Ownership-Application_Access.html | 21 + ...ntication_Modules_PAM-Additional_Resources.html | 23 + ...ntication_Modules_PAM-Creating_PAM_Modules.html | 11 + ..._Modules_PAM-PAM_Configuration_File_Format.html | 42 + ...cation_Modules_PAM-PAM_Configuration_Files.html | 9 + ...-PAM_and_Administrative_Credential_Caching.html | 31 + ...ation_Modules_PAM-PAM_and_Device_Ownership.html | 28 + ...Modules_PAM-Sample_PAM_Configuration_Files.html | 44 + ...Guide-Pluggable_Authentication_Modules_PAM.html | 19 + ...allation-Utilize_LUKS_Partition_Encryption.html | 5 + ...curity_Guide-Securing_FTP-Anonymous_Access.html | 23 + ...ing_FTP-Use_TCP_Wrappers_To_Control_Access.html | 5 + ...-Security_Guide-Securing_FTP-User_Accounts.html | 13 + ...Guide-Securing_NFS-Beware_of_Syntax_Errors.html | 11 + ...g_NFS-Do_Not_Use_the_no_root_squash_Option.html | 7 + ...de-Securing_NFS-NFS_Firewall_Configuration.html | 17 + ...Assign_Static_Ports_and_Use_iptables_Rules.html | 14 + ...Securing_NIS-Edit_the_varypsecurenets_File.html | 11 + ...e-Securing_NIS-Use_Kerberos_Authentication.html | 7 + ...Password_like_NIS_Domain_Name_and_Hostname.html | 13 + ...ring_Portmap-Protect_portmap_With_iptables.html | 12 + ...ty_Guide-Securing_Sendmail-Mail_only_Users.html | 5 + ...y_Guide-Securing_Sendmail-NFS_and_Sendmail.html | 9 + .../sect-Security_Guide-Security_Updates.html | 11 + ...ecurity_Guide-Server_Security-Securing_FTP.html | 29 + ...ecurity_Guide-Server_Security-Securing_NFS.html | 7 + ...ecurity_Guide-Server_Security-Securing_NIS.html | 21 + ...ity_Guide-Server_Security-Securing_Portmap.html | 13 + ...ty_Guide-Server_Security-Securing_Sendmail.html | 19 + ...r_Security-Securing_the_Apache_HTTP_Server.html | 20 + ...curity-Verifying_Which_Ports_Are_Listening.html | 50 + .../sect-Security_Guide-Server_Security.html | 95 + ...onfiguring_Firefox_to_use_Kerberos_for_SSO.html | 60 + ...O-Getting_Started_with_your_new_Smart_Card.html | 67 + ...ign_on_SSO-How_Smart_Card_Enrollment_Works.html | 13 + ...gle_Sign_on_SSO-How_Smart_Card_Login_Works.html | 17 + .../sect-Security_Guide-Single_Sign_on_SSO.html | 37 + ...gned_Packages_from_Well_Known_Repositories.html | 7 + ...curity_Updates-Adjusting_Automatic_Updates.html | 7 + ...enance-Plan_and_Configure_Security_Updates.html | 9 + ...Wrappers_Configuration_Files-Option_Fields.html | 13 + ...P_Wrappers_and_xinetd-Additional_Resources.html | 21 + ...nd_xinetd-TCP_Wrappers_Configuration_Files.html | 111 + ...urity_Guide-TCP_Wrappers_and_xinetd-xinetd.html | 11 + ...pers_and_xinetd-xinetd_Configuration_Files.html | 35 + ...ect-Security_Guide-TCP_Wrappers_and_xinetd.html | 37 + ...Server_Security-Inattentive_Administration.html | 9 + ...rver_Security-Inherently_Insecure_Services.html | 13 + ...eats_to_Server_Security-Unpatched_Services.html | 11 + ...PC_Security-Vulnerable_Client_Applications.html | 9 + ...ide-Updating_Packages-Applying_the_Changes.html | 43 + ...dating_Packages-Installing_Signed_Packages.html | 17 + ...pdating_Packages-Verifying_Signed_Packages.html | 21 + ...ide-Using_IPTables-Basic_Firewall_Policies.html | 16 + ...Tables-Saving_and_Restoring_IPTables_Rules.html | 7 + ...Networks_VPNs-Creating_an_IPsec_Connection.html | 11 + ..._Guide-Virtual_Private_Networks_VPNs-IPsec.html | 7 + ...orks_VPNs-IPsec_Host_to_Host_Configuration.html | 78 + ...l_Private_Networks_VPNs-IPsec_Installation.html | 17 + ...PNs-IPsec_Network_to_Network_Configuration.html | 95 + ...-Starting_and_Stopping_an_IPsec_Connection.html | 11 + ...irtual_Private_Networks_VPNs-VPNs_and_PROD.html | 5 + ...curity_Guide-Virtual_Private_Networks_VPNs.html | 15 + ...Assessment-Defining_Assessment_and_Testing.html | 43 + ...nerability_Assessment-Evaluating_the_Tools.html | 34 + ...ct-Security_Guide-Vulnerability_Assessment.html | 23 + ..._Files-Altering_xinetd_Configuration_Files.html | 23 + ...figuration_Files-The_etcxinetd.d_Directory.html | 40 + .../Fedora-14-Security_Guide-en-US.pdf | Bin 0 -> 1459087 bytes ...Fedora_Documentation--Security_Guide-en-US.epub | Bin 0 -> 767141 bytes .../Security_Guide/Common_Content/css/common.css | 1467 +++++++ .../Security_Guide/Common_Content/css/default.css | 3 + .../Security_Guide/Common_Content/css/lang.css | 2 + .../Common_Content/css/overrides.css | 51 + .../Security_Guide/Common_Content/css/print.css | 16 + .../Security_Guide/Common_Content/images/1.png | Bin 0 -> 690 bytes .../Security_Guide/Common_Content/images/1.svg | 22 + .../Security_Guide/Common_Content/images/10.png | Bin 0 -> 982 bytes .../Security_Guide/Common_Content/images/10.svg | 22 + .../Security_Guide/Common_Content/images/11.png | Bin 0 -> 806 bytes .../Security_Guide/Common_Content/images/11.svg | 22 + .../Security_Guide/Common_Content/images/12.png | Bin 0 -> 953 bytes .../Security_Guide/Common_Content/images/12.svg | 22 + .../Security_Guide/Common_Content/images/13.png | Bin 0 -> 1015 bytes .../Security_Guide/Common_Content/images/13.svg | 22 + .../Security_Guide/Common_Content/images/14.png | Bin 0 -> 933 bytes .../Security_Guide/Common_Content/images/14.svg | 22 + .../Security_Guide/Common_Content/images/15.png | Bin 0 -> 996 bytes .../Security_Guide/Common_Content/images/15.svg | 22 + .../Security_Guide/Common_Content/images/16.png | Bin 0 -> 1030 bytes .../Security_Guide/Common_Content/images/16.svg | 22 + .../Security_Guide/Common_Content/images/17.png | Bin 0 -> 870 bytes .../Security_Guide/Common_Content/images/17.svg | 22 + .../Security_Guide/Common_Content/images/18.png | Bin 0 -> 1001 bytes .../Security_Guide/Common_Content/images/18.svg | 22 + .../Security_Guide/Common_Content/images/19.png | Bin 0 -> 1013 bytes .../Security_Guide/Common_Content/images/19.svg | 22 + .../Security_Guide/Common_Content/images/2.png | Bin 0 -> 808 bytes .../Security_Guide/Common_Content/images/2.svg | 22 + .../Security_Guide/Common_Content/images/20.png | Bin 0 -> 1121 bytes .../Security_Guide/Common_Content/images/20.svg | 22 + .../Security_Guide/Common_Content/images/21.png | Bin 0 -> 981 bytes .../Security_Guide/Common_Content/images/21.svg | 22 + .../Security_Guide/Common_Content/images/22.png | Bin 0 -> 1057 bytes .../Security_Guide/Common_Content/images/22.svg | 22 + .../Security_Guide/Common_Content/images/23.png | Bin 0 -> 1120 bytes .../Security_Guide/Common_Content/images/23.svg | 22 + .../Security_Guide/Common_Content/images/3.png | Bin 0 -> 868 bytes .../Security_Guide/Common_Content/images/3.svg | 22 + .../Security_Guide/Common_Content/images/4.png | Bin 0 -> 794 bytes .../Security_Guide/Common_Content/images/4.svg | 22 + .../Security_Guide/Common_Content/images/5.png | Bin 0 -> 853 bytes .../Security_Guide/Common_Content/images/5.svg | 22 + .../Security_Guide/Common_Content/images/6.png | Bin 0 -> 865 bytes .../Security_Guide/Common_Content/images/6.svg | 22 + .../Security_Guide/Common_Content/images/7.png | Bin 0 -> 742 bytes .../Security_Guide/Common_Content/images/7.svg | 22 + .../Security_Guide/Common_Content/images/8.png | Bin 0 -> 862 bytes .../Security_Guide/Common_Content/images/8.svg | 22 + .../Security_Guide/Common_Content/images/9.png | Bin 0 -> 860 bytes .../Security_Guide/Common_Content/images/9.svg | 22 + .../Common_Content/images/bkgrnd_greydots.png | Bin 0 -> 157 bytes .../Common_Content/images/bullet_arrowblue.png | Bin 0 -> 177 bytes .../Common_Content/images/documentation.png | Bin 0 -> 623 bytes .../Security_Guide/Common_Content/images/dot.png | Bin 0 -> 98 bytes .../Security_Guide/Common_Content/images/dot2.png | Bin 0 -> 98 bytes .../Security_Guide/Common_Content/images/h1-bg.png | Bin 0 -> 565 bytes .../Common_Content/images/image_left.png | Bin 0 -> 1114 bytes .../Common_Content/images/image_right.png | Bin 0 -> 2260 bytes .../Common_Content/images/important.png | Bin 0 -> 2080 bytes .../Common_Content/images/important.svg | 106 + .../Security_Guide/Common_Content/images/logo.png | Bin 0 -> 1114 bytes .../Security_Guide/Common_Content/images/note.png | Bin 0 -> 1241 bytes .../Security_Guide/Common_Content/images/note.svg | 111 + .../Security_Guide/Common_Content/images/shade.png | Bin 0 -> 101 bytes .../Security_Guide/Common_Content/images/shine.png | Bin 0 -> 146 bytes .../Common_Content/images/stock-go-back.png | Bin 0 -> 828 bytes .../Common_Content/images/stock-go-forward.png | Bin 0 -> 828 bytes .../Common_Content/images/stock-go-up.png | Bin 0 -> 760 bytes .../Common_Content/images/stock-home.png | Bin 0 -> 808 bytes .../Common_Content/images/title_logo.png | Bin 0 -> 13399 bytes .../Common_Content/images/title_logo.svg | 61 + .../Common_Content/images/warning.png | Bin 0 -> 1340 bytes .../Common_Content/images/warning.svg | 89 + .../Common_Content/images/watermark-draft.png | Bin 0 -> 25365 bytes .../html-single/Security_Guide/images/SCLogin.png | Bin 0 -> 8088 bytes .../Security_Guide/images/SCLoginEnrollment.png | Bin 0 -> 14924 bytes .../Security_Guide/images/auth-panel.png | Bin 0 -> 9257 bytes .../html-single/Security_Guide/images/authicon.png | Bin 0 -> 1163 bytes .../images/fed-firefox_kerberos_SSO.png | Bin 0 -> 47794 bytes .../Security_Guide/images/fed-firewall_config.png | Bin 0 -> 76857 bytes .../Security_Guide/images/fed-ipsec_host2host.png | Bin 0 -> 39081 bytes .../images/fed-ipsec_n_to_n_local.png | Bin 0 -> 30935 bytes .../images/fed-ipsec_n_to_n_remote.png | Bin 0 -> 34860 bytes .../Security_Guide/images/fed-service_config.png | Bin 0 -> 76914 bytes .../Security_Guide/images/fed-user_pass_groups.png | Bin 0 -> 35369 bytes .../Security_Guide/images/fed-user_pass_info.png | Bin 0 -> 35624 bytes .../html-single/Security_Guide/images/icon.svg | 3936 ++++++++++++++++++ .../Security_Guide/images/n-t-n-ipsec-diagram.png | Bin 0 -> 33470 bytes .../Security_Guide/images/tcp_wrap_diagram.png | Bin 0 -> 25775 bytes .../Fedora/html-single/Security_Guide/index.html | 4299 ++++++++++++++++++++ .../Security_Guide/Common_Content/css/common.css | 1467 +++++++ .../Security_Guide/Common_Content/css/default.css | 3 + .../Security_Guide/Common_Content/css/lang.css | 2 + .../Common_Content/css/overrides.css | 51 + .../Security_Guide/Common_Content/css/print.css | 16 + .../Security_Guide/Common_Content/images/1.png | Bin 0 -> 690 bytes .../Security_Guide/Common_Content/images/1.svg | 22 + .../Security_Guide/Common_Content/images/10.png | Bin 0 -> 982 bytes .../Security_Guide/Common_Content/images/10.svg | 22 + .../Security_Guide/Common_Content/images/11.png | Bin 0 -> 806 bytes .../Security_Guide/Common_Content/images/11.svg | 22 + .../Security_Guide/Common_Content/images/12.png | Bin 0 -> 953 bytes .../Security_Guide/Common_Content/images/12.svg | 22 + .../Security_Guide/Common_Content/images/13.png | Bin 0 -> 1015 bytes .../Security_Guide/Common_Content/images/13.svg | 22 + .../Security_Guide/Common_Content/images/14.png | Bin 0 -> 933 bytes .../Security_Guide/Common_Content/images/14.svg | 22 + .../Security_Guide/Common_Content/images/15.png | Bin 0 -> 996 bytes .../Security_Guide/Common_Content/images/15.svg | 22 + .../Security_Guide/Common_Content/images/16.png | Bin 0 -> 1030 bytes .../Security_Guide/Common_Content/images/16.svg | 22 + .../Security_Guide/Common_Content/images/17.png | Bin 0 -> 870 bytes .../Security_Guide/Common_Content/images/17.svg | 22 + .../Security_Guide/Common_Content/images/18.png | Bin 0 -> 1001 bytes .../Security_Guide/Common_Content/images/18.svg | 22 + .../Security_Guide/Common_Content/images/19.png | Bin 0 -> 1013 bytes .../Security_Guide/Common_Content/images/19.svg | 22 + .../Security_Guide/Common_Content/images/2.png | Bin 0 -> 808 bytes .../Security_Guide/Common_Content/images/2.svg | 22 + .../Security_Guide/Common_Content/images/20.png | Bin 0 -> 1121 bytes .../Security_Guide/Common_Content/images/20.svg | 22 + .../Security_Guide/Common_Content/images/21.png | Bin 0 -> 981 bytes .../Security_Guide/Common_Content/images/21.svg | 22 + .../Security_Guide/Common_Content/images/22.png | Bin 0 -> 1057 bytes .../Security_Guide/Common_Content/images/22.svg | 22 + .../Security_Guide/Common_Content/images/23.png | Bin 0 -> 1120 bytes .../Security_Guide/Common_Content/images/23.svg | 22 + .../Security_Guide/Common_Content/images/3.png | Bin 0 -> 868 bytes .../Security_Guide/Common_Content/images/3.svg | 22 + .../Security_Guide/Common_Content/images/4.png | Bin 0 -> 794 bytes .../Security_Guide/Common_Content/images/4.svg | 22 + .../Security_Guide/Common_Content/images/5.png | Bin 0 -> 853 bytes .../Security_Guide/Common_Content/images/5.svg | 22 + .../Security_Guide/Common_Content/images/6.png | Bin 0 -> 865 bytes .../Security_Guide/Common_Content/images/6.svg | 22 + .../Security_Guide/Common_Content/images/7.png | Bin 0 -> 742 bytes .../Security_Guide/Common_Content/images/7.svg | 22 + .../Security_Guide/Common_Content/images/8.png | Bin 0 -> 862 bytes .../Security_Guide/Common_Content/images/8.svg | 22 + .../Security_Guide/Common_Content/images/9.png | Bin 0 -> 860 bytes .../Security_Guide/Common_Content/images/9.svg | 22 + .../Common_Content/images/bkgrnd_greydots.png | Bin 0 -> 157 bytes .../Common_Content/images/bullet_arrowblue.png | Bin 0 -> 177 bytes .../Common_Content/images/documentation.png | Bin 0 -> 623 bytes .../Security_Guide/Common_Content/images/dot.png | Bin 0 -> 98 bytes .../Security_Guide/Common_Content/images/dot2.png | Bin 0 -> 98 bytes .../Security_Guide/Common_Content/images/h1-bg.png | Bin 0 -> 565 bytes .../Common_Content/images/image_left.png | Bin 0 -> 1114 bytes .../Common_Content/images/image_right.png | Bin 0 -> 2260 bytes .../Common_Content/images/important.png | Bin 0 -> 2080 bytes .../Common_Content/images/important.svg | 106 + .../Security_Guide/Common_Content/images/logo.png | Bin 0 -> 1114 bytes .../Security_Guide/Common_Content/images/note.png | Bin 0 -> 1241 bytes .../Security_Guide/Common_Content/images/note.svg | 111 + .../Security_Guide/Common_Content/images/shade.png | Bin 0 -> 101 bytes .../Security_Guide/Common_Content/images/shine.png | Bin 0 -> 146 bytes .../Common_Content/images/stock-go-back.png | Bin 0 -> 828 bytes .../Common_Content/images/stock-go-forward.png | Bin 0 -> 828 bytes .../Common_Content/images/stock-go-up.png | Bin 0 -> 760 bytes .../Common_Content/images/stock-home.png | Bin 0 -> 808 bytes .../Common_Content/images/title_logo.png | Bin 0 -> 13399 bytes .../Common_Content/images/title_logo.svg | 61 + .../Common_Content/images/warning.png | Bin 0 -> 1340 bytes .../Common_Content/images/warning.svg | 89 + .../Common_Content/images/watermark-draft.png | Bin 0 -> 25365 bytes ...ide-Encryption-Data_in_Motion-Secure_Shell.html | 9 + ...on-Data_in_Motion-Virtual_Private_Networks.html | 5 + .../Security_Guide-Encryption-Data_in_Motion.html | 7 + ...tecting_Data_at_Rest-File_Based_Encryption.html | 7 + .../html/Security_Guide/We_Need_Feedback.html | 7 + .../en-US/Fedora/html/Security_Guide/apas02.html | 39 + .../Fedora/html/Security_Guide/apas02s02.html | 7 + .../Fedora/html/Security_Guide/apas02s03.html | 7 + .../Fedora/html/Security_Guide/apas02s04.html | 17 + .../Fedora/html/Security_Guide/apas02s05.html | 7 + .../Fedora/html/Security_Guide/apas02s06.html | 7 + .../appe-Publican-Revision_History.html | 77 + .../Security_Guide/chap-Security_Guide-CVE.html | 11 + .../chap-Security_Guide-Encryption.html | 7 + .../chap-Security_Guide-Encryption_Standards.html | 31 + ...General_Principles_of_Information_Security.html | 31 + .../chap-Security_Guide-References.html | 45 + .../chap-Security_Guide-Secure_Installation.html | 13 + .../chap-Security_Guide-Securing_Your_Network.html | 523 +++ .../chap-Security_Guide-Security_Overview.html | 121 + .../chap-Security_Guide-Software_Maintenance.html | 7 + .../Fedora/html/Security_Guide/images/SCLogin.png | Bin 0 -> 8088 bytes .../Security_Guide/images/SCLoginEnrollment.png | Bin 0 -> 14924 bytes .../html/Security_Guide/images/auth-panel.png | Bin 0 -> 9257 bytes .../Fedora/html/Security_Guide/images/authicon.png | Bin 0 -> 1163 bytes .../images/fed-firefox_kerberos_SSO.png | Bin 0 -> 47794 bytes .../Security_Guide/images/fed-firewall_config.png | Bin 0 -> 76857 bytes .../Security_Guide/images/fed-ipsec_host2host.png | Bin 0 -> 39081 bytes .../images/fed-ipsec_n_to_n_local.png | Bin 0 -> 30935 bytes .../images/fed-ipsec_n_to_n_remote.png | Bin 0 -> 34860 bytes .../Security_Guide/images/fed-service_config.png | Bin 0 -> 76914 bytes .../Security_Guide/images/fed-user_pass_groups.png | Bin 0 -> 35369 bytes .../Security_Guide/images/fed-user_pass_info.png | Bin 0 -> 35624 bytes .../Fedora/html/Security_Guide/images/icon.svg | 3936 ++++++++++++++++++ .../Security_Guide/images/n-t-n-ipsec-diagram.png | Bin 0 -> 33470 bytes .../Security_Guide/images/tcp_wrap_diagram.png | Bin 0 -> 25775 bytes .../en-US/Fedora/html/Security_Guide/index.html | 26 + .../pref-Security_Guide-Preface.html | 88 + ...y_Guide-Additional_Resources-Related_Books.html | 5 + ...Additional_Resources-Related_Documentation.html | 7 + ...itional_Resources-Useful_Firewall_Websites.html | 9 + ...tional_Resources-Useful_IP_Tables_Websites.html | 7 + ...itional_Resources-Useful_Kerberos_Websites.html | 15 + ...e-Additional_Resources-Useful_PAM_Websites.html | 7 + ...nal_Resources-Useful_TCP_Wrappers_Websites.html | 7 + ...Configuration_Files-Access_Control_Options.html | 53 + ...tion_Files-Binding_and_Redirection_Options.html | 30 + ...guration_Files-Resource_Management_Options.html | 15 + ...ulnerabilities-Threats_to_Network_Security.html | 11 + ...Vulnerabilities-Threats_to_Server_Security.html | 9 + ...hreats_to_Workstation_and_Home_PC_Security.html | 7 + ...curity_Guide-Attackers_and_Vulnerabilities.html | 23 + ...figuration-Activating_the_IPTables_Service.html | 7 + ...ration-Enabling_and_Disabling_the_Firewall.html | 13 + ...e-Basic_Firewall_Configuration-Other_Ports.html | 7 + ...Firewall_Configuration-Saving_the_Settings.html | 9 + ...ic_Firewall_Configuration-Trusted_Services.html | 21 + ...e-CVE-yum_plugin-using_yum_plugin_security.html | 38 + ...mmand_Options_for_IPTables-Command_Options.html | 41 + ...ptions_for_IPTables-IPTables_Match_Options.html | 64 + ...ns_for_IPTables-IPTables_Parameter_Options.html | 49 + ...mmand_Options_for_IPTables-Listing_Options.html | 15 + ...ommand_Options_for_IPTables-Target_Options.html | 43 + ...Security_Guide-Common_Exploits_and_Attacks.html | 60 + ...crypted_Archives-Installation-Instructions.html | 9 + ...on-7_Zip_Encrypted_Archives-Things_of_note.html | 5 + ..._Zip_Encrypted_Archives-Usage_Instructions.html | 27 + ..._Guide-Encryption-7_Zip_Encrypted_Archives.html | 7 + ...otecting_Data_at_Rest-Full_Disk_Encryption.html | 9 + ...tion-Using_GPG-About_Public_Key_Encryption.html | 7 + ...ryption-Using_GPG-Creating_GPG_Keys_in_KDE.html | 41 + ...yption-Using_GPG-Creating_GPG_Keys_in_KDE1.html | 9 + ...Encryption-Using_GPG-Using_GPG_with_Alpine.html | 21 + ..._GPG_with_Evolution-Signing_and_Encrypting.html | 7 + ...ing_GPG-Using_GPG_with_Evolution-Verifying.html | 5 + ...ryption-Using_GPG-Using_GPG_with_Evolution.html | 9 + ...ption-Using_GPG-Using_GPG_with_Thunderbird.html | 17 + .../sect-Security_Guide-Encryption-Using_GPG.html | 17 + ...g_the_Tools-Anticipating_Your_Future_Needs.html | 5 + ...Security_Guide-Evaluating_the_Tools-Nessus.html | 11 + ...-Security_Guide-Evaluating_the_Tools-Nikto.html | 9 + ...uide-Evaluating_the_Tools-VLAD_the_Scanner.html | 11 + ...de-FORWARD_and_NAT_Rules-DMZs_and_IPTables.html | 11 + ...ity_Guide-FORWARD_and_NAT_Rules-Prerouting.html | 13 + ...urity_Guide-Firewalls-Additional_Resources.html | 9 + ...ide-Firewalls-Basic_Firewall_Configuration.html | 17 + ..._Guide-Firewalls-Common_IPTables_Filtering.html | 32 + ...rity_Guide-Firewalls-FORWARD_and_NAT_Rules.html | 38 + ...Firewalls-IPTables_and_Connection_Tracking.html | 15 + .../sect-Security_Guide-Firewalls-IPv6.html | 11 + ...alicious_Software_and_Spoofed_IP_Addresses.html | 24 + ...ct-Security_Guide-Firewalls-Using_IPTables.html | 21 + .../sect-Security_Guide-Firewalls.html | 55 + ...curity_Guide-IPTables-Additional_Resources.html | 9 + ...uide-IPTables-Command_Options_for_IPTables.html | 35 + ...ty_Guide-IPTables-IPTables_Control_Scripts.html | 71 + ...-Security_Guide-IPTables-IPTables_and_IPv6.html | 13 + ...urity_Guide-IPTables-Saving_IPTables_Rules.html | 17 + .../sect-Security_Guide-IPTables.html | 63 + ...ch_Options-Additional_Match_Option_Modules.html | 55 + ...Guide-IPTables_Match_Options-ICMP_Protocol.html | 7 + ..._Guide-IPTables_Match_Options-UDP_Protocol.html | 11 + ...on-Manual_IPsec_Host_to_Host_Configuration.html | 97 + ...ual_IPsec_Network_to_Network_Configuration.html | 83 + ...curity_Guide-Kerberos-Additional_Resources.html | 31 + ...e-Kerberos-Configuring_a_Kerberos_5_Client.html | 31 + ...e-Kerberos-Configuring_a_Kerberos_5_Server.html | 41 + ...ity_Guide-Kerberos-Domain_to_Realm_Mapping.html | 16 + ...Security_Guide-Kerberos-How_Kerberos_Works.html | 31 + ...curity_Guide-Kerberos-Kerberos_Terminology.html | 45 + ...t-Security_Guide-Kerberos-Kerberos_and_PAM.html | 7 + ...eros-Setting_Up_Cross_Realm_Authentication.html | 90 + ...y_Guide-Kerberos-Setting_Up_Secondary_KDCs.html | 63 + .../sect-Security_Guide-Kerberos.html | 35 + ...ide-LUKS_Disk_Encryption-Links_of_Interest.html | 9 + ...ting_Directories-Step_by_Step_Instructions.html | 41 + ...irectories-What_you_have_just_accomplished.html | 5 + ...Encryption-Manually_Encrypting_Directories.html | 9 + .../sect-Security_Guide-LUKS_Disk_Encryption.html | 19 + ...ecurity_Guide-Option_Fields-Access_Control.html | 10 + ...ct-Security_Guide-Option_Fields-Expansions.html | 42 + ...ecurity_Guide-Option_Fields-Shell_Commands.html | 18 + ...PAM_Configuration_File_Format-Control_Flag.html | 21 + ...Configuration_File_Format-Module_Arguments.html | 11 + ...-PAM_Configuration_File_Format-Module_Name.html | 5 + ...al_Caching-Common_pam_timestamp_Directives.html | 11 + ...AM_and_Device_Ownership-Application_Access.html | 21 + ...ntication_Modules_PAM-Additional_Resources.html | 23 + ...ntication_Modules_PAM-Creating_PAM_Modules.html | 11 + ..._Modules_PAM-PAM_Configuration_File_Format.html | 42 + ...cation_Modules_PAM-PAM_Configuration_Files.html | 9 + ...-PAM_and_Administrative_Credential_Caching.html | 31 + ...ation_Modules_PAM-PAM_and_Device_Ownership.html | 28 + ...Modules_PAM-Sample_PAM_Configuration_Files.html | 44 + ...Guide-Pluggable_Authentication_Modules_PAM.html | 19 + ...allation-Utilize_LUKS_Partition_Encryption.html | 5 + ...curity_Guide-Securing_FTP-Anonymous_Access.html | 23 + ...ing_FTP-Use_TCP_Wrappers_To_Control_Access.html | 5 + ...-Security_Guide-Securing_FTP-User_Accounts.html | 13 + ...Guide-Securing_NFS-Beware_of_Syntax_Errors.html | 11 + ...g_NFS-Do_Not_Use_the_no_root_squash_Option.html | 7 + ...de-Securing_NFS-NFS_Firewall_Configuration.html | 17 + ...Assign_Static_Ports_and_Use_iptables_Rules.html | 14 + ...Securing_NIS-Edit_the_varypsecurenets_File.html | 11 + ...e-Securing_NIS-Use_Kerberos_Authentication.html | 7 + ...Password_like_NIS_Domain_Name_and_Hostname.html | 13 + ...ring_Portmap-Protect_portmap_With_iptables.html | 12 + ...ty_Guide-Securing_Sendmail-Mail_only_Users.html | 5 + ...y_Guide-Securing_Sendmail-NFS_and_Sendmail.html | 9 + .../sect-Security_Guide-Security_Updates.html | 11 + ...ecurity_Guide-Server_Security-Securing_FTP.html | 29 + ...ecurity_Guide-Server_Security-Securing_NFS.html | 7 + ...ecurity_Guide-Server_Security-Securing_NIS.html | 21 + ...ity_Guide-Server_Security-Securing_Portmap.html | 13 + ...ty_Guide-Server_Security-Securing_Sendmail.html | 19 + ...r_Security-Securing_the_Apache_HTTP_Server.html | 20 + ...curity-Verifying_Which_Ports_Are_Listening.html | 50 + .../sect-Security_Guide-Server_Security.html | 95 + ...onfiguring_Firefox_to_use_Kerberos_for_SSO.html | 60 + ...O-Getting_Started_with_your_new_Smart_Card.html | 67 + ...ign_on_SSO-How_Smart_Card_Enrollment_Works.html | 13 + ...gle_Sign_on_SSO-How_Smart_Card_Login_Works.html | 17 + .../sect-Security_Guide-Single_Sign_on_SSO.html | 37 + ...gned_Packages_from_Well_Known_Repositories.html | 7 + ...curity_Updates-Adjusting_Automatic_Updates.html | 7 + ...enance-Plan_and_Configure_Security_Updates.html | 9 + ...Wrappers_Configuration_Files-Option_Fields.html | 13 + ...P_Wrappers_and_xinetd-Additional_Resources.html | 21 + ...nd_xinetd-TCP_Wrappers_Configuration_Files.html | 111 + ...urity_Guide-TCP_Wrappers_and_xinetd-xinetd.html | 11 + ...pers_and_xinetd-xinetd_Configuration_Files.html | 35 + ...ect-Security_Guide-TCP_Wrappers_and_xinetd.html | 37 + ...Server_Security-Inattentive_Administration.html | 9 + ...rver_Security-Inherently_Insecure_Services.html | 13 + ...eats_to_Server_Security-Unpatched_Services.html | 11 + ...PC_Security-Vulnerable_Client_Applications.html | 9 + ...ide-Updating_Packages-Applying_the_Changes.html | 43 + ...dating_Packages-Installing_Signed_Packages.html | 17 + ...pdating_Packages-Verifying_Signed_Packages.html | 21 + ...ide-Using_IPTables-Basic_Firewall_Policies.html | 16 + ...Tables-Saving_and_Restoring_IPTables_Rules.html | 7 + ...Networks_VPNs-Creating_an_IPsec_Connection.html | 11 + ..._Guide-Virtual_Private_Networks_VPNs-IPsec.html | 7 + ...orks_VPNs-IPsec_Host_to_Host_Configuration.html | 78 + ...l_Private_Networks_VPNs-IPsec_Installation.html | 17 + ...PNs-IPsec_Network_to_Network_Configuration.html | 95 + ...-Starting_and_Stopping_an_IPsec_Connection.html | 11 + ...irtual_Private_Networks_VPNs-VPNs_and_PROD.html | 5 + ...curity_Guide-Virtual_Private_Networks_VPNs.html | 15 + ...Assessment-Defining_Assessment_and_Testing.html | 43 + ...nerability_Assessment-Evaluating_the_Tools.html | 34 + ...ct-Security_Guide-Vulnerability_Assessment.html | 23 + ..._Files-Altering_xinetd_Configuration_Files.html | 23 + ...figuration_Files-The_etcxinetd.d_Directory.html | 40 + .../Fedora_Documentation--Security_Guide-en-US.pdf | Bin 0 -> 1458707 bytes public_html/en-US/Site_Statistics.html | 4 +- public_html/en-US/toc.html | 15 + public_html/es-ES/Site_Statistics.html | 4 +- public_html/es-ES/toc.html | 44 + public_html/fa-IR/Site_Statistics.html | 4 +- public_html/fa-IR/toc.html | 15 + public_html/fi-FI/Site_Statistics.html | 4 +- public_html/fi-FI/toc.html | 15 + public_html/fr-FR/Site_Statistics.html | 4 +- public_html/fr-FR/toc.html | 15 + public_html/gu-IN/Site_Statistics.html | 4 +- public_html/gu-IN/toc.html | 15 + public_html/he-IL/Site_Statistics.html | 4 +- public_html/he-IL/toc.html | 15 + public_html/hi-IN/Site_Statistics.html | 4 +- public_html/hi-IN/toc.html | 15 + public_html/hu-HU/Site_Statistics.html | 4 +- public_html/hu-HU/toc.html | 15 + public_html/id-ID/Site_Statistics.html | 4 +- public_html/id-ID/toc.html | 15 + public_html/it-IT/Site_Statistics.html | 4 +- public_html/it-IT/toc.html | 22 + public_html/ja-JP/Site_Statistics.html | 4 +- public_html/ja-JP/toc.html | 15 + public_html/kn-IN/Site_Statistics.html | 4 +- public_html/kn-IN/toc.html | 15 + public_html/ko-KR/Site_Statistics.html | 4 +- public_html/ko-KR/toc.html | 15 + public_html/ml-IN/Site_Statistics.html | 4 +- public_html/ml-IN/toc.html | 15 + public_html/mr-IN/Site_Statistics.html | 4 +- public_html/mr-IN/toc.html | 15 + public_html/nb-NO/Site_Statistics.html | 4 +- public_html/nb-NO/toc.html | 15 + public_html/nl-NL/Site_Statistics.html | 4 +- public_html/nl-NL/toc.html | 44 + public_html/or-IN/Site_Statistics.html | 4 +- public_html/or-IN/toc.html | 15 + public_html/pa-IN/Site_Statistics.html | 4 +- public_html/pa-IN/toc.html | 15 + public_html/pl-PL/Site_Statistics.html | 4 +- public_html/pl-PL/toc.html | 15 + public_html/pt-BR/Site_Statistics.html | 4 +- public_html/pt-BR/toc.html | 15 + public_html/pt-PT/Site_Statistics.html | 4 +- public_html/pt-PT/toc.html | 15 + public_html/ru-RU/Site_Statistics.html | 4 +- public_html/ru-RU/toc.html | 15 + public_html/sk-SK/Site_Statistics.html | 4 +- public_html/sk-SK/toc.html | 15 + public_html/sr-Latn-RS/Site_Statistics.html | 4 +- public_html/sr-Latn-RS/toc.html | 15 + public_html/sr-RS/Site_Statistics.html | 4 +- public_html/sr-RS/toc.html | 15 + public_html/sv-SE/Site_Statistics.html | 4 +- public_html/sv-SE/toc.html | 15 + public_html/ta-IN/Site_Statistics.html | 4 +- public_html/ta-IN/toc.html | 15 + public_html/te-IN/Site_Statistics.html | 4 +- public_html/te-IN/toc.html | 15 + public_html/toc.html | 15 + public_html/uk-UA/Site_Statistics.html | 4 +- public_html/uk-UA/toc.html | 22 + public_html/zh-CN/Site_Statistics.html | 4 +- public_html/zh-CN/toc.html | 15 + public_html/zh-TW/Site_Statistics.html | 4 +- public_html/zh-TW/toc.html | 15 + 811 files changed, 44488 insertions(+), 84 deletions(-) --- diff --git a/fedoradocs.db b/fedoradocs.db index 7f2e136..24fb375 100644 Binary files a/fedoradocs.db and b/fedoradocs.db differ diff --git a/public_html/Sitemap b/public_html/Sitemap index 4fe5134..72fb6c9 100644 --- a/public_html/Sitemap +++ b/public_html/Sitemap @@ -1357,6 +1357,30 @@ <priority>0.8</priority> </url> <url> + <loc>http://docs.fedoraproject.org/en-US/Fedora/14/epub/Security_Guide/Fedora-14-...</loc> + <lastmod>2010-09-30</lastmod> + <changefreq>monthly</changefreq> + <priority>0.8</priority> +</url> +<url> + <loc>http://docs.fedoraproject.org/en-US/Fedora/14/html/Security_Guide/index.html</loc> + <lastmod>2010-09-30</lastmod> + <changefreq>monthly</changefreq> + <priority>0.8</priority> +</url> +<url> + <loc>http://docs.fedoraproject.org/en-US/Fedora/14/html-single/Security_Guide/ind...</loc> + <lastmod>2010-09-30</lastmod> + <changefreq>monthly</changefreq> + <priority>0.8</priority> +</url> +<url> + <loc>http://docs.fedoraproject.org/en-US/Fedora/14/pdf/Security_Guide/Fedora-14-S...</loc> + <lastmod>2010-09-30</lastmod> + <changefreq>monthly</changefreq> + <priority>0.8</priority> +</url> +<url> <loc>http://docs.fedoraproject.org/en-US/Fedora/13/epub/Accessibility_Guide/Fedor...</loc> <lastmod>2010-07-23</lastmod> <changefreq>monthly</changefreq> diff --git a/public_html/as-IN/Site_Statistics.html b/public_html/as-IN/Site_Statistics.html index 70d319e..51ff097 100644 --- a/public_html/as-IN/Site_Statistics.html +++ b/public_html/as-IN/Site_Statistics.html @@ -28,7 +28,7 @@ <td>4</td> <td>27</td> <td>15</td> - <td>82</td> + <td>83</td> </tr> <tr> @@ -466,7 +466,7 @@ </table> <div class="totals"> <b>Total Languages: </b>49<br /> - <b>Total Packages: </b>581 + <b>Total Packages: </b>582 </div> </body> </html> diff --git a/public_html/as-IN/toc.html b/public_html/as-IN/toc.html index cc158c8..ec6cb96 100644 --- a/public_html/as-IN/toc.html +++ b/public_html/as-IN/toc.html @@ -131,6 +131,21 @@ </div> </div> + <div id='Fedora.14.Security_Guide' class="book collapsed" onclick="toggle(event, 'Fedora.14.Security_Guide.types');"> + <a class="type" href="../en-US/Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/Fedora/14/html/Security_Guide/index.html'"><span class="book">Security Guide</span></a> + <div id='Fedora.14.Security_Guide.types' class="types hidden" onclick="work=0;"> + + <a class="type" href="../en-US/./Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub" >epub</a> + + <a class="type" href="../en-US/./Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html/Security_Guide/index.html';return false;">html</a> + + <a class="type" href="../en-US/./Fedora/14/html-single/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html-single/Security_Guide/index.html';return false;">html-single</a> + + <a class="type" href="../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf" onclick="window.top.location='../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf';return false;">pdf</a> + + </div> + </div> + </div> </div> diff --git a/public_html/bg-BG/Site_Statistics.html b/public_html/bg-BG/Site_Statistics.html index 70d319e..51ff097 100644 --- a/public_html/bg-BG/Site_Statistics.html +++ b/public_html/bg-BG/Site_Statistics.html @@ -28,7 +28,7 @@ <td>4</td> <td>27</td> <td>15</td> - <td>82</td> + <td>83</td> </tr> <tr> @@ -466,7 +466,7 @@ </table> <div class="totals"> <b>Total Languages: </b>49<br /> - <b>Total Packages: </b>581 + <b>Total Packages: </b>582 </div> </body> </html> diff --git a/public_html/bg-BG/toc.html b/public_html/bg-BG/toc.html index 1f0db10..ca77292 100644 --- a/public_html/bg-BG/toc.html +++ b/public_html/bg-BG/toc.html @@ -131,6 +131,21 @@ </div> </div> + <div id='Fedora.14.Security_Guide' class="book collapsed" onclick="toggle(event, 'Fedora.14.Security_Guide.types');"> + <a class="type" href="../en-US/Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/Fedora/14/html/Security_Guide/index.html'"><span class="book">Security Guide</span></a> + <div id='Fedora.14.Security_Guide.types' class="types hidden" onclick="work=0;"> + + <a class="type" href="../en-US/./Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub" >epub</a> + + <a class="type" href="../en-US/./Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html/Security_Guide/index.html';return false;">html</a> + + <a class="type" href="../en-US/./Fedora/14/html-single/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html-single/Security_Guide/index.html';return false;">html-single</a> + + <a class="type" href="../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf" onclick="window.top.location='../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf';return false;">pdf</a> + + </div> + </div> + </div> </div> diff --git a/public_html/bn-IN/Site_Statistics.html b/public_html/bn-IN/Site_Statistics.html index 70d319e..51ff097 100644 --- a/public_html/bn-IN/Site_Statistics.html +++ b/public_html/bn-IN/Site_Statistics.html @@ -28,7 +28,7 @@ <td>4</td> <td>27</td> <td>15</td> - <td>82</td> + <td>83</td> </tr> <tr> @@ -466,7 +466,7 @@ </table> <div class="totals"> <b>Total Languages: </b>49<br /> - <b>Total Packages: </b>581 + <b>Total Packages: </b>582 </div> </body> </html> diff --git a/public_html/bn-IN/toc.html b/public_html/bn-IN/toc.html index c03d876..8859cc0 100644 --- a/public_html/bn-IN/toc.html +++ b/public_html/bn-IN/toc.html @@ -131,6 +131,21 @@ </div> </div> + <div id='Fedora.14.Security_Guide' class="book collapsed" onclick="toggle(event, 'Fedora.14.Security_Guide.types');"> + <a class="type" href="../en-US/Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/Fedora/14/html/Security_Guide/index.html'"><span class="book">Security Guide</span></a> + <div id='Fedora.14.Security_Guide.types' class="types hidden" onclick="work=0;"> + + <a class="type" href="../en-US/./Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub" >epub</a> + + <a class="type" href="../en-US/./Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html/Security_Guide/index.html';return false;">html</a> + + <a class="type" href="../en-US/./Fedora/14/html-single/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html-single/Security_Guide/index.html';return false;">html-single</a> + + <a class="type" href="../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf" onclick="window.top.location='../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf';return false;">pdf</a> + + </div> + </div> + </div> </div> diff --git a/public_html/bs-BA/Site_Statistics.html b/public_html/bs-BA/Site_Statistics.html index 70d319e..51ff097 100644 --- a/public_html/bs-BA/Site_Statistics.html +++ b/public_html/bs-BA/Site_Statistics.html @@ -28,7 +28,7 @@ <td>4</td> <td>27</td> <td>15</td> - <td>82</td> + <td>83</td> </tr> <tr> @@ -466,7 +466,7 @@ </table> <div class="totals"> <b>Total Languages: </b>49<br /> - <b>Total Packages: </b>581 + <b>Total Packages: </b>582 </div> </body> </html> diff --git a/public_html/bs-BA/toc.html b/public_html/bs-BA/toc.html index 7b33272..c9f27c6 100644 --- a/public_html/bs-BA/toc.html +++ b/public_html/bs-BA/toc.html @@ -131,6 +131,21 @@ </div> </div> + <div id='Fedora.14.Security_Guide' class="book collapsed" onclick="toggle(event, 'Fedora.14.Security_Guide.types');"> + <a class="type" href="../en-US/Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/Fedora/14/html/Security_Guide/index.html'"><span class="book">Security Guide</span></a> + <div id='Fedora.14.Security_Guide.types' class="types hidden" onclick="work=0;"> + + <a class="type" href="../en-US/./Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub" >epub</a> + + <a class="type" href="../en-US/./Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html/Security_Guide/index.html';return false;">html</a> + + <a class="type" href="../en-US/./Fedora/14/html-single/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html-single/Security_Guide/index.html';return false;">html-single</a> + + <a class="type" href="../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf" onclick="window.top.location='../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf';return false;">pdf</a> + + </div> + </div> + </div> </div> diff --git a/public_html/ca-ES/Site_Statistics.html b/public_html/ca-ES/Site_Statistics.html index 70d319e..51ff097 100644 --- a/public_html/ca-ES/Site_Statistics.html +++ b/public_html/ca-ES/Site_Statistics.html @@ -28,7 +28,7 @@ <td>4</td> <td>27</td> <td>15</td> - <td>82</td> + <td>83</td> </tr> <tr> @@ -466,7 +466,7 @@ </table> <div class="totals"> <b>Total Languages: </b>49<br /> - <b>Total Packages: </b>581 + <b>Total Packages: </b>582 </div> </body> </html> diff --git a/public_html/ca-ES/toc.html b/public_html/ca-ES/toc.html index f79d0e2..e7073d4 100644 --- a/public_html/ca-ES/toc.html +++ b/public_html/ca-ES/toc.html @@ -127,6 +127,28 @@ </div> </div> + <div id='Fedora.14' class="version collapsed untranslated" onclick="toggle(event, 'Fedora.14.untrans_books');"> + <span class="version">Untranslated</span> + <div id='Fedora.14.untrans_books' class="books hidden"> + + <div id='Fedora.14.Security_Guide' class="book collapsed" onclick="toggle(event, 'Fedora.14.Security_Guide.types');"> + <a class="type" href="../en-US/Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/Fedora/14/html/Security_Guide/index.html'"><span class="book">Security Guide</span></a> + <div id='Fedora.14.Security_Guide.types' class="types hidden" onclick="work=0;"> + + <a class="type" href="../en-US/./Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub" >epub</a> + + <a class="type" href="../en-US/./Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html/Security_Guide/index.html';return false;">html</a> + + <a class="type" href="../en-US/./Fedora/14/html-single/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html-single/Security_Guide/index.html';return false;">html-single</a> + + <a class="type" href="../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf" onclick="window.top.location='../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf';return false;">pdf</a> + + </div> + </div> + + </div> + </div> + </div> </div> <div id='Fedora.13' class="version collapsed" onclick="toggle(event, 'Fedora.13.books');"> <span class="version">13</span> <div id='Fedora.13.books' class="books hidden"> diff --git a/public_html/cs-CZ/Site_Statistics.html b/public_html/cs-CZ/Site_Statistics.html index 70d319e..51ff097 100644 --- a/public_html/cs-CZ/Site_Statistics.html +++ b/public_html/cs-CZ/Site_Statistics.html @@ -28,7 +28,7 @@ <td>4</td> <td>27</td> <td>15</td> - <td>82</td> + <td>83</td> </tr> <tr> @@ -466,7 +466,7 @@ </table> <div class="totals"> <b>Total Languages: </b>49<br /> - <b>Total Packages: </b>581 + <b>Total Packages: </b>582 </div> </body> </html> diff --git a/public_html/cs-CZ/toc.html b/public_html/cs-CZ/toc.html index c694672..8242a0c 100644 --- a/public_html/cs-CZ/toc.html +++ b/public_html/cs-CZ/toc.html @@ -131,6 +131,21 @@ </div> </div> + <div id='Fedora.14.Security_Guide' class="book collapsed" onclick="toggle(event, 'Fedora.14.Security_Guide.types');"> + <a class="type" href="../en-US/Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/Fedora/14/html/Security_Guide/index.html'"><span class="book">Security Guide</span></a> + <div id='Fedora.14.Security_Guide.types' class="types hidden" onclick="work=0;"> + + <a class="type" href="../en-US/./Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub" >epub</a> + + <a class="type" href="../en-US/./Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html/Security_Guide/index.html';return false;">html</a> + + <a class="type" href="../en-US/./Fedora/14/html-single/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html-single/Security_Guide/index.html';return false;">html-single</a> + + <a class="type" href="../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf" onclick="window.top.location='../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf';return false;">pdf</a> + + </div> + </div> + </div> </div> diff --git a/public_html/da-DK/Site_Statistics.html b/public_html/da-DK/Site_Statistics.html index 70d319e..51ff097 100644 --- a/public_html/da-DK/Site_Statistics.html +++ b/public_html/da-DK/Site_Statistics.html @@ -28,7 +28,7 @@ <td>4</td> <td>27</td> <td>15</td> - <td>82</td> + <td>83</td> </tr> <tr> @@ -466,7 +466,7 @@ </table> <div class="totals"> <b>Total Languages: </b>49<br /> - <b>Total Packages: </b>581 + <b>Total Packages: </b>582 </div> </body> </html> diff --git a/public_html/da-DK/toc.html b/public_html/da-DK/toc.html index 1ec3648..23b5c0a 100644 --- a/public_html/da-DK/toc.html +++ b/public_html/da-DK/toc.html @@ -131,6 +131,21 @@ </div> </div> + <div id='Fedora.14.Security_Guide' class="book collapsed" onclick="toggle(event, 'Fedora.14.Security_Guide.types');"> + <a class="type" href="../en-US/Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/Fedora/14/html/Security_Guide/index.html'"><span class="book">Security Guide</span></a> + <div id='Fedora.14.Security_Guide.types' class="types hidden" onclick="work=0;"> + + <a class="type" href="../en-US/./Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub" >epub</a> + + <a class="type" href="../en-US/./Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html/Security_Guide/index.html';return false;">html</a> + + <a class="type" href="../en-US/./Fedora/14/html-single/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html-single/Security_Guide/index.html';return false;">html-single</a> + + <a class="type" href="../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf" onclick="window.top.location='../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf';return false;">pdf</a> + + </div> + </div> + </div> </div> diff --git a/public_html/de-DE/Site_Statistics.html b/public_html/de-DE/Site_Statistics.html index 70d319e..51ff097 100644 --- a/public_html/de-DE/Site_Statistics.html +++ b/public_html/de-DE/Site_Statistics.html @@ -28,7 +28,7 @@ <td>4</td> <td>27</td> <td>15</td> - <td>82</td> + <td>83</td> </tr> <tr> @@ -466,7 +466,7 @@ </table> <div class="totals"> <b>Total Languages: </b>49<br /> - <b>Total Packages: </b>581 + <b>Total Packages: </b>582 </div> </body> </html> diff --git a/public_html/de-DE/toc.html b/public_html/de-DE/toc.html index eb4f317..3bb04a4 100644 --- a/public_html/de-DE/toc.html +++ b/public_html/de-DE/toc.html @@ -131,6 +131,21 @@ </div> </div> + <div id='Fedora.14.Security_Guide' class="book collapsed" onclick="toggle(event, 'Fedora.14.Security_Guide.types');"> + <a class="type" href="../en-US/Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/Fedora/14/html/Security_Guide/index.html'"><span class="book">Security Guide</span></a> + <div id='Fedora.14.Security_Guide.types' class="types hidden" onclick="work=0;"> + + <a class="type" href="../en-US/./Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub" >epub</a> + + <a class="type" href="../en-US/./Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html/Security_Guide/index.html';return false;">html</a> + + <a class="type" href="../en-US/./Fedora/14/html-single/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html-single/Security_Guide/index.html';return false;">html-single</a> + + <a class="type" href="../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf" onclick="window.top.location='../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf';return false;">pdf</a> + + </div> + </div> + </div> </div> diff --git a/public_html/el-GR/Site_Statistics.html b/public_html/el-GR/Site_Statistics.html index 70d319e..51ff097 100644 --- a/public_html/el-GR/Site_Statistics.html +++ b/public_html/el-GR/Site_Statistics.html @@ -28,7 +28,7 @@ <td>4</td> <td>27</td> <td>15</td> - <td>82</td> + <td>83</td> </tr> <tr> @@ -466,7 +466,7 @@ </table> <div class="totals"> <b>Total Languages: </b>49<br /> - <b>Total Packages: </b>581 + <b>Total Packages: </b>582 </div> </body> </html> diff --git a/public_html/el-GR/toc.html b/public_html/el-GR/toc.html index 3de19a3..171af52 100644 --- a/public_html/el-GR/toc.html +++ b/public_html/el-GR/toc.html @@ -131,6 +131,21 @@ </div> </div> + <div id='Fedora.14.Security_Guide' class="book collapsed" onclick="toggle(event, 'Fedora.14.Security_Guide.types');"> + <a class="type" href="../en-US/Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/Fedora/14/html/Security_Guide/index.html'"><span class="book">Security Guide</span></a> + <div id='Fedora.14.Security_Guide.types' class="types hidden" onclick="work=0;"> + + <a class="type" href="../en-US/./Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub" >epub</a> + + <a class="type" href="../en-US/./Fedora/14/html/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html/Security_Guide/index.html';return false;">html</a> + + <a class="type" href="../en-US/./Fedora/14/html-single/Security_Guide/index.html" onclick="window.top.location='../en-US/./Fedora/14/html-single/Security_Guide/index.html';return false;">html-single</a> + + <a class="type" href="../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf" onclick="window.top.location='../en-US/./Fedora/14/pdf/Security_Guide/Fedora-14-Security_Guide-en-US.pdf';return false;">pdf</a> + + </div> + </div> + </div> </div> diff --git a/public_html/en-US/Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub b/public_html/en-US/Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub new file mode 100644 index 0000000..a10c43d Binary files /dev/null and b/public_html/en-US/Fedora/14/epub/Security_Guide/Fedora-14-Security_Guide-en-US.epub differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/common.css b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/common.css new file mode 100644 index 0000000..a196f22 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/common.css @@ -0,0 +1,1467 @@ +body, h1, h2, h3, h4, h5, h6, pre, li, div { + line-height: 1.29em; +} + +body { + background-color: white; + margin:0 auto; + font-family: "liberation sans", "Myriad ", "Bitstream Vera Sans", "Lucida Grande", "Luxi Sans", "Trebuchet MS", helvetica, verdana, arial, sans-serif; + font-size:12px; + max-width:55em; + color:black; +} + +body.toc_embeded { + /*for web hosting system only*/ + margin-left: 300px; +} + +object.toc, iframe.toc { + /*for web hosting system only*/ + border-style:none; + position:fixed; + width:290px; + height:99.99%; + top:0; + left:0; + z-index: 100; + border-style:none; + border-right:1px solid #999; +} + +/* desktop styles */ +body.desktop { + margin-left: 26em; +} + +body.desktop .book > .toc { + display:block; + width:24em; + height:99%; + position:fixed; + overflow:auto; + top:0px; + left:0px; + padding-left:1em; + background-color:#EEEEEE; +} + +.toc { + line-height:1.35em; +} + +.toc .glossary, +.toc .chapter, .toc .appendix { + margin-top:1em; +} + +.toc .part { + margin-top:1em; + display:block; +} + +span.glossary, +span.appendix { + display:block; + margin-top:0.5em; +} + +div { + padding-top:0px; +} + +div.section { + padding-top:1em; +} + +p, div.para, div.formalpara { + padding-top:0px; + margin-top:0.3em; + padding-bottom:0px; + margin-bottom:1em; +} + +/*Links*/ +a:link { + text-decoration:none; + border-bottom: 1px dotted ; + color:#3366cc; +} + +a:visited { + text-decoration:none; + border-bottom: 1px dotted ; + color:#003366; +} + +div.longdesc-link { + float:right; + color:#999; +} + +.toc a, .qandaset a { + font-weight:normal; +} + +/*headings*/ +h1, h2, h3, h4, h5, h6 { + color: #336699; + margin-top: 0em; + margin-bottom: 0em; + background-color: transparent; +} + +h1 { + font-size:2.0em; +} + +.titlepage h1.title { + font-size: 3.0em; + padding-top: 1em; + text-align:left; +} + +.book > .titlepage h1.title { + text-align:center; +} + +.article > .titlepage h1.title { + text-align:center; +} + +.set .titlepage > div > div > h1.title { + text-align:center; +} + +.producttitle { + margin-top: 0em; + margin-bottom: 0em; + font-size: 3.0em; + font-weight: bold; + background: #003d6e url(../images/h1-bg.png) top left repeat-x; + color: white; + text-align: center; + padding: 0.7em; +} + +.titlepage .corpauthor { + margin-top: 1em; + text-align: center; +} + +.section h1.title { + font-size: 1.6em; + padding: 0em; + color: #336699; + text-align: left; + background: white; +} + +h2 { + font-size:1.6em; +} + + +h2.subtitle, h3.subtitle { + margin-top: 1em; + margin-bottom: 1em; + font-size: 1.4em; + text-align: center; +} + +.preface > div > div > div > h2.title { + margin-top: 1em; + font-size: 2.0em; +} + +.appendix h2 { + margin-top: 1em; + font-size: 2.0em; +} + + + +h3 { + font-size:1.3em; + padding-top:0em; + padding-bottom:0em; +} +h4 { + font-size:1.1em; + padding-top:0em; + padding-bottom:0em; +} + +h5 { + font-size:1em; +} + +h6 { + font-size:1em; +} + +h5.formalpara { + font-size:1em; + margin-top:2em; + margin-bottom:.8em; +} + +.abstract h6 { + margin-top:1em; + margin-bottom:.5em; + font-size:2em; +} + +/*element rules*/ +hr { + border-collapse: collapse; + border-style:none; + border-top: 1px dotted #ccc; + width:100%; + margin-top: 3em; +} + +sup { + color:#999; +} + +/* web site rules */ +ul.languages, .languages li { + display:inline; + padding:0em; +} + +.languages li a { + padding:0em .5em; + text-decoration: none; +} + +.languages li p, .languages li div.para { + display:inline; +} + +.languages li a:link, .languages li a:visited { + color:#444; +} + +.languages li a:hover, .languages li a:focus, .languages li a:active { + color:black; +} + +ul.languages { + display:block; + background-color:#eee; + padding:.5em; +} + +/*supporting stylesheets*/ + +/*unique to the webpage only*/ +.books { + position:relative; +} + +.versions li { + width:100%; + clear:both; + display:block; +} + +a.version { + font-size:2em; + text-decoration:none; + width:100%; + display:block; + padding:1em 0em .2em 0em; + clear:both; +} + +a.version:before { + content:"Version"; + font-size:smaller; +} + +a.version:visited, a.version:link { + color:#666; +} + +a.version:focus, a.version:hover { + color:black; +} + +.books { + display:block; + position:relative; + clear:both; + width:100%; +} + +.books li { + display:block; + width:200px; + float:left; + position:relative; + clear: none ; +} + +.books .html { + width:170px; + display:block; +} + +.books .pdf { + position:absolute; + left:170px; + top:0px; + font-size:smaller; +} + +.books .pdf:link, .books .pdf:visited { + color:#555; +} + +.books .pdf:hover, .books .pdf:focus { + color:#000; +} + +.books li a { + text-decoration:none; +} + +.books li a:hover { + color:black; +} + +/*products*/ +.products li { + display: block; + width:300px; + float:left; +} + +.products li a { + width:300px; + padding:.5em 0em; +} + +.products ul { + clear:both; +} + +/*revision history*/ +.revhistory { + display:block; +} + +.revhistory table { + background-color:transparent; + border-color:#fff; + padding:0em; + margin: 0; + border-collapse:collapse; + border-style:none; +} + +.revhistory td { + text-align :left; + padding:0em; + border: none; + border-top: 1px solid #fff; + font-weight: bold; +} + +.revhistory .simplelist td { + font-weight: normal; +} + +.revhistory .simplelist { + margin-bottom: 1.5em; + margin-left: 1em; +} + +.revhistory table th { + display: none; +} + + +/*credits*/ +.authorgroup div { + clear:both; + text-align: center; +} + +h3.author { + margin: 0em; + padding: 0em; + padding-top: 1em; +} + +.authorgroup h4 { + padding: 0em; + margin: 0em; + padding-top: 1em; + margin-top: 1em; +} + +.author, +.editor, +.translator, +.othercredit, +.contrib { + display: block; +} + +.revhistory .author { + display: inline; +} + +.othercredit h3 { + padding-top: 1em; +} + + +.othercredit { + margin:0em; + padding:0em; +} + +.releaseinfo { + clear: both; +} + +.copyright { + margin-top: 1em; +} + +/* qanda sets */ +.answer { + margin-bottom:1em; + border-bottom:1px dotted #ccc; +} + +.qandaset .toc { + border-bottom:1px dotted #ccc; +} + +.question { + font-weight:bold; +} + +.answer .data, .question .data { + padding-left: 2.6em; +} + +.answer label, .question label { + float:left; + font-weight:bold; +} + +/* inline syntax highlighting */ +.perl_Alert { + color: #0000ff; +} + +.perl_BaseN { + color: #007f00; +} + +.perl_BString { + color: #5C3566; +} + +.perl_Char { + color: #ff00ff; +} + +.perl_Comment { + color: #FF00FF; +} + + +.perl_DataType { + color: #0000ff; +} + + +.perl_DecVal { + color: #00007f; +} + + +.perl_Error { + color: #ff0000; +} + + +.perl_Float { + color: #00007f; +} + + +.perl_Function { + color: #007f00; +} + + +.perl_IString { + color: #5C3566; +} + + +.perl_Keyword { + color: #002F5D; +} + + +.perl_Operator { + color: #ffa500; +} + + +.perl_Others { + color: #b03060; +} + + +.perl_RegionMarker { + color: #96b9ff; +} + + +.perl_Reserved { + color: #9b30ff; +} + + +.perl_String { + color: #5C3566; +} + + +.perl_Variable { + color: #0000ff; +} + + +.perl_Warning { + color: #0000ff; +} + +/*Lists*/ +ul { + padding-left:1.6em; + list-style-image:url(../images/dot.png); + list-style-type: circle; +} + +ul ul { + list-style-image:url(../images/dot2.png); + list-style-type: circle; +} + +ol { + list-style-image:none; + list-style-type: decimal; +} + +ol ol { + list-style-type: lower-alpha; +} + +ol.arabic { + list-style-type: decimal; +} + +ol.loweralpha { + list-style-type: lower-alpha; +} + +ol.lowerroman { + list-style-type: lower-roman; +} + +ol.upperalpha { + list-style-type: upper-alpha; +} + +ol.upperroman { + list-style-type: upper-roman; +} + +dt { + font-weight:bold; + margin-bottom:0em; + padding-bottom:0em; +} + +dd { + margin:0em; + margin-left:2em; + padding-top:0em; + padding-bottom: 1em; +} + +li { + padding-top:0px; + margin-top:0em; + padding-bottom:0px; + margin-bottom:0.4em; +} + +li p, li div.para { + padding-top:0px; + margin-top:0em; + padding-bottom:0px; + margin-bottom:0.3em; +} + +/*images*/ +img { + display:block; + margin:2em 0; +} + +.inlinemediaobject, .inlinemediaobject img { + display:inline; + margin:0em; +} + +.figure img { + display:block; + margin:0; +} + +.figure .title { + margin:0em; + margin-bottom:2em; + padding:0px; +} + +/*document modes*/ +.confidential { + background-color:#900; + color:White; + padding:.5em .5em; + text-transform:uppercase; + text-align:center; +} + +.longdesc-link { + display:none; +} + +.longdesc { + display:none; +} + +.prompt { + background-color:#ede7c8; + padding:0em .3em; +} + +/*user interface styles*/ +.screen .replaceable { + color:#444; +} + +.guibutton, .guilabel { + font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace; + font-weight:bold; + white-space:nowrap; +} + +.example { + background-color:#dc9f2e; + padding:5px; + margin-bottom:10px; +} + + +/*terminal/console text*/ +.computeroutput, +.option { + font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace; + font-weight:bold; +} + +.replaceable { + font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace; + font-style: italic; +} + +.command, .filename, .keycap, .classname, .literal { + font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace; + font-weight:bold; +} + +/* no bold in toc */ +.toc * { + font-weight: inherit; +} + +pre { + font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace; + display:block; + background-color:#eeeeee; + margin-bottom: 0.3em; + padding:.5em 1em; + white-space: pre-wrap; /* css-3 */ + white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ + font-size: 0.9em; +} + +pre .replaceable, +pre .keycap { + color:white; +} + +code { + font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace; + white-space: nowrap; + font-weight:bold; +} + +.parameter code { + display: inline; + white-space: pre-wrap; /* css-3 */ + white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ +} + +/*Notifications*/ +div.note, div.important, div.warning { + padding:1em; + padding-bottom:20px; + margin-top:.5em; + margin-bottom:1.5em; + background-repeat:no-repeat; + background-position:1em 1em; +} + +div.note pre, div.important pre, div.warning pre { + background-color: #333; + color: white; + margin-left: 4.5em; +} + + +div.note { + background-image:url(../images/note.png); + background-color:#8e9f00; + color:white; +} + +div.important { + background-color:#d08e13; + color:white; + background-image:url(../images/important.png); +} + +div.warning { + background-color:#9e292b; + color:white; + background-image:url(../images/warning.png); +} + + +/* Admonition Headings */ +div.note h2, div.important h2, div.warning h2 { + height:32px; + font-size:1.3em; +} + +div.note h2, div.important h2, div.warning h2 { + color:white; +} + +/* Admonition Inlines */ +div.note .replaceable, div.important .replaceable, div.warning .replaceable { + color:#e3dcc0; +} + +pre .replaceable, tt .replaceable { + color:#444; +} + +div.note .guilabel, div.important .guilabel, div.warning .guilabel { + color:#e3dcc0; +} + + +/* Admonition Lists ... really? */ +div.note li, div.warning li, div.important li { + padding-left:10px; + margin:0em; +} + +div.note ul, div.warning ul, div.important ul { + padding-left:40px; + margin:0em; +} + +/* Admonition links in verbatim ... *really* */ +div.note pre pre a:visited, div.important pre pre a:visited, + div.warning pre pre a:visited, div.note pre a:link, div.important pre a:link, div.warning pre a:link { + color:#0066cc; +} + +/* Admonition links */ +div.note a:visited, div.important a:visited, div.warning a:visited, div.note a:link , div.important a:link , div.warning a:link { + color:#f7f2d0; +} + +/*notification icons*/ +div.note h2, div.note p, div.note div.para, div.warning h2, div.warning p, div.warning div.para, div.important h2, .important p, .important div.para { + padding:0em; + margin:0em; + padding-left:56px; +} + +/*Page Title*/ +#title { + display:block; + height:45px; + padding-bottom:1em; + margin:0em; +} + +#title a.left{ + display:inline; + border:none; +} + +#title a.left img{ + border:none; + float:left; + margin:0em; + margin-top:.7em; +} + +#title a.right { + padding-bottom:1em; +} + +#title a.right img { + border:none; + float:right; + margin:0em; + margin-top:.7em; +} + +/*Table*/ +table { + border:1px solid #6c614b; + width:100%; + border-collapse:collapse; +} + +table.simplelist, .calloutlist table { + border-style: none; +} + +table th { + text-align:left; + background-color:#6699cc; + padding:.3em .5em; + color:white; +} + +table td { + padding:.15em .5em; +} + +table tr.even td { + background-color:#f5f5f5; +} + +table th p:first-child, table td p:first-child, table li p:first-child, +table th div.para:first-child, table td div.para:first-child, table li div.para:first-child { + margin-top:0em; + padding-top:0em; + display:inline; +} + +th, td { + border-style:none; + vertical-align: top; + border: 1px solid #000; +} + +.simplelist th, .simplelist td { + border: none; +} + +table table td { + border-bottom:1px dotted #aaa; + background-color:white; + padding:.6em 0em; +} + +table table { + border:1px solid white; +} + +td.remarkval { + color:#444; +} + +td.fieldval { + font-weight:bold; +} + +.lbname, .lbtype, .lbdescr, .lbdriver, .lbhost { + color:white; + font-weight:bold; + background-color:#999; + width:120px; +} + +td.remarkval { + width:230px; +} + +td.tname { + font-weight:bold; +} + +th.dbfield { + width:120px; +} + +th.dbtype { + width:70px; +} + +th.dbdefault { + width:70px; +} + +th.dbnul { + width:70px; +} + +th.dbkey { + width:70px; +} + +span.book { + margin-top:4em; + display:block; +} + +span.chapter { + display:block; + margin-top:0.5em; +} + +table.simplelist td, .calloutlist table td { + border-style: none; +} + +/*Breadcrumbs*/ +#breadcrumbs ul li.first:before { + content:" "; +} + +#breadcrumbs { + color:#900; + padding:3px; + margin-bottom:25px; +} + +#breadcrumbs ul { + margin-left:0; + padding-left:0; + display:inline; + border:none; +} + +#breadcrumbs ul li { + margin-left:0; + padding-left:2px; + border:none; + list-style:none; + display:inline; +} + +#breadcrumbs ul li:before { + content:"\0020 \0020 \0020 \00BB \0020"; + color:#333; +} + +/*index*/ +.glossary h3, +.index h3 { + font-size: 2em; + color:#aaa; + margin:0em; +} + +.indexdiv { + margin-bottom:1em; +} + +.glossary dt, +.index dt { + color:#444; + padding-top:.5em; +} + +.glossary dl dl dt, +.index dl dl dt { + color:#777; + font-weight:normal; + padding-top:0em; +} + +.index dl dl dt:before { + content:"- "; + color:#ccc; +} + +/*changes*/ +.footnote { + padding:.2em 1em; + background-color:#c8c5ac; + font-size: .7em; + margin:0em; + margin-bottom:.5em; + color:#222; +} + +table .footnote { + margin:1em .5em; +} + +sup { + padding:0em .3em; + padding-left:0em; +} + +.footnote { + position:relative; +} + +.footnote sup { + color:#e3dcc0; + position:absolute; + left: .4em; +} + +.footnote sup a:link, +.footnote sup a:visited { + color:#92917d; + text-decoration:none; +} + +.footnote:hover sup a { + color:#fff; + text-decoration:none; +} + +.footnote p,.footnote div.para { + padding-left:5em; +} + +.footnote a:link, +.footnote a:visited { + color:#00537c; +} + +.footnote a:hover { + color:white; +} + +/**/ +div.chapter { + margin-top:3em; +} + +div.section { + margin-top:1em; +} + +div.note .replaceable, +div.important .replaceable, +div.warning .replaceable, +div.note .keycap, +div.important .keycap, +div.warning .keycap +{ + color:white; +} + +ul li p:last-child, ul li div.para:last-child { + margin-bottom:0em; + padding-bottom:0em; +} + +/*document navigation*/ +.docnav a, .docnav strong { + border:none; + text-decoration:none; + font-weight:normal; +} + +.docnav { + list-style:none; + margin:0em; + padding:0em; + position:relative; + width:100%; + padding-bottom:2em; + padding-top:1em; + border-top:1px dotted #ccc; +} + +.docnav li { + list-style:none; + margin:0em; + padding:0em; + display:inline; + font-size:.8em; +} + +.docnav li:before { + content:" "; +} + +.docnav li.previous, .docnav li.next { + position:absolute; + top:1em; +} + +.docnav li.up, .docnav li.home { + margin:0em 1.5em; +} + +.docnav li.previous { + left:0px; + text-align:left; +} + +.docnav li.next { + right:0px; + text-align:right; +} + +.docnav li.previous strong, .docnav li.next strong { + height:22px; + display:block; +} + +.docnav { + margin:0 auto; + text-align:center; +} + +.docnav li.next a strong { + background: url(../images/stock-go-forward.png) top right no-repeat; + padding-top:3px; + padding-bottom:4px; + padding-right:28px; + font-size:1.2em; +} + +.docnav li.previous a strong { + background: url(../images/stock-go-back.png) top left no-repeat; + padding-top:3px; + padding-bottom:4px; + padding-left:28px; + padding-right:0.5em; + font-size:1.2em; +} + +.docnav li.home a strong { + background: url(../images/stock-home.png) top left no-repeat; + padding:5px; + padding-left:28px; + font-size:1.2em; +} + +.docnav li.up a strong { + background: url(../images/stock-go-up.png) top left no-repeat; + padding:5px; + padding-left:28px; + font-size:1.2em; +} + +.docnav a:link, .docnav a:visited { + color:#666; +} + +.docnav a:hover, .docnav a:focus, .docnav a:active { + color:black; +} + +.docnav a { + max-width: 10em; + overflow:hidden; +} + +.docnav a:link strong { + text-decoration:none; +} + +.docnav { + margin:0 auto; + text-align:center; +} + +ul.docnav { + margin-bottom: 1em; +} +/* Reports */ +.reports ul { + list-style:none; + margin:0em; + padding:0em; +} + +.reports li{ + margin:0em; + padding:0em; +} + +.reports li.odd { + background-color: #eeeeee; + margin:0em; + padding:0em; +} + +.reports dl { + display:inline; + margin:0em; + padding:0em; + float:right; + margin-right: 17em; + margin-top:-1.3em; +} + +.reports dt { + display:inline; + margin:0em; + padding:0em; +} + +.reports dd { + display:inline; + margin:0em; + padding:0em; + padding-right:.5em; +} + +.reports h2, .reports h3{ + display:inline; + padding-right:.5em; + font-size:10pt; + font-weight:normal; +} + +.reports div.progress { + display:inline; + float:right; + width:16em; + background:#c00 url(../images/shine.png) top left repeat-x; + margin:0em; + margin-top:-1.3em; + padding:0em; + border:none; +} + +/*uniform*/ +body.results, body.reports { + max-width:57em ; + padding:0em; +} + +/*Progress Bar*/ +div.progress { + display:block; + float:left; + width:16em; + background:#c00 url(../images/shine.png) top left repeat-x; + height:1em; +} + +div.progress span { + height:1em; + float:left; +} + +div.progress span.translated { + background:#6c3 url(../images/shine.png) top left repeat-x; +} + +div.progress span.fuzzy { + background:#ff9f00 url(../images/shine.png) top left repeat-x; +} + + +/*Results*/ + +.results ul { + list-style:none; + margin:0em; + padding:0em; +} + +.results li{ + margin:0em; + padding:0em; +} + +.results li.odd { + background-color: #eeeeee; + margin:0em; + padding:0em; +} + +.results dl { + display:inline; + margin:0em; + padding:0em; + float:right; + margin-right: 17em; + margin-top:-1.3em; +} + +.results dt { + display:inline; + margin:0em; + padding:0em; +} + +.results dd { + display:inline; + margin:0em; + padding:0em; + padding-right:.5em; +} + +.results h2, .results h3{ + display:inline; + padding-right:.5em; + font-size:10pt; + font-weight:normal; +} + +.results div.progress { + display:inline; + float:right; + width:16em; + background:#c00 url(../images/shine.png) top left repeat-x; + margin:0em; + margin-top:-1.3em; + padding:0em; + border:none; +} + +/* Dirty EVIL Mozilla hack for round corners */ +pre { + -moz-border-radius:11px; + -webkit-border-radius:11px; + border-radius: 11px; +} + +.example { + -moz-border-radius:15px; + -webkit-border-radius:15px; + border-radius: 15px; +} + +.package, .citetitle { + font-style: italic; +} + +.edition { + color: #336699; + background-color: transparent; + margin-top: 1em; + margin-bottom: 1em; + font-size: 1.4em; + font-weight: bold; + text-align: center; +} + +span.remark { + background-color: #ff00ff; +} + +.draft { + background-image: url(../images/watermark-draft.png); + background-repeat: repeat-y; + background-position: center; +} + +.foreignphrase { + font-style: inherit; +} + +dt { + clear:both; +} + +dt img { + border-style: none; + max-width: 112px; +} + +dt object { + max-width: 112px; +} + +dt .inlinemediaobject, dt object { + display: inline; + float: left; + margin-bottom: 1em; + padding-right: 1em; + width: 112px; +} + +dl:after { + display: block; + clear: both; + content: ""; +} + +.toc dd { + padding-bottom: 0em; + margin-bottom: 1em; + padding-left: 1.3em; + margin-left: 0em; +} + +div.toc > dl > dt { + padding-bottom: 0em; + margin-bottom: 0em; + margin-top: 1em; +} + + +.strikethrough { + text-decoration: line-through; +} + +.underline { + text-decoration: underline; +} + +.calloutlist img, .callout { + padding: 0em; + margin: 0em; + width: 12pt; + display: inline; + vertical-align: middle; +} + +.stepalternatives { + list-style-image: none; + list-style-type: none; +} + diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/default.css b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/default.css new file mode 100644 index 0000000..bf38ebb --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/default.css @@ -0,0 +1,3 @@ +@import url("common.css"); +@import url("overrides.css"); +@import url("lang.css"); diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/lang.css b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/lang.css new file mode 100644 index 0000000..81c3115 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/lang.css @@ -0,0 +1,2 @@ +/* place holder */ + diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/overrides.css b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/overrides.css new file mode 100644 index 0000000..895173d --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/overrides.css @@ -0,0 +1,51 @@ +a:link { + color:#0066cc; +} + +a:hover, a:active { + color:#003366; +} + +a:visited { + color:#6699cc; +} + + +h1 { + color:#3c6eb4 +} + +.producttitle { + background: #3c6eb4 url(../images/h1-bg.png) top left repeat; +} + +.section h1.title { + color:#3c6eb4; +} + + +h2,h3,h4,h5,h6 { + color:#3c6eb4; +} + +table { + border:1px solid #3c6eb4; +} + +table th { + background-color:#3c6eb4; +} + + +table tr.even td { + background-color:#f5f5f5; +} + +.revhistory table th { + color:#3c6eb4; +} + +.edition { + color: #3c6eb4; +} + diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/print.css b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/print.css new file mode 100644 index 0000000..773d8ae --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/css/print.css @@ -0,0 +1,16 @@ +@import url("common.css"); +@import url("overrides.css"); +@import url("lang.css"); + +#tocframe { + display: none; +} + +body.toc_embeded { + margin-left: 30px; +} + +.producttitle { + color: #336699; +} + diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/1.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/1.png new file mode 100644 index 0000000..1098dab Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/1.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/1.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/1.svg new file mode 100644 index 0000000..3736523 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/1.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 17.993,22.013004 L 17.993,10.113004 L 15.239,10.113004 C 14.899001,11.218003 14.286999,11.643004 12.757,11.728004 L 12.757,13.819004 L 14.763,13.819004 L 14.763,22.013004 L 17.993,22.013004" + id="text2207" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/10.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/10.png new file mode 100644 index 0000000..ef058e3 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/10.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/10.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/10.svg new file mode 100644 index 0000000..84ee18f --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/10.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 12.252562,22 L 12.252562,10.1 L 9.4985624,10.1 C 9.1585628,11.204999 8.5465609,11.63 7.0165624,11.715 L 7.0165624,13.806 L 9.0225624,13.806 L 9.0225624,22 L 12.252562,22 M 24.983438,16.033 C 24.983438,12.072004 22.705435,9.913 19.611438,9.913 C 16.517441,9.913 14.205438,12.106004 14.205438,16.067 C 14.205438,20.027996 16.483441,22.187 19.577438,22.187 C 22.671435,22.187 24.983438,19.993996 24.983438,16.033 M 21.600438,16.067 C 21.600438,18.242998 20.886437,19.348 19.611438,19.348 C 18.336439,19.348 17.588438,18.208998 17.588438,16.033 C 17.588438,13.857002 18.302439,12.752 19.577438,12.752 C 20.852437,12.752 21.600438,13.891002 21.600438,16.067" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/11.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/11.png new file mode 100644 index 0000000..fa20ec4 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/11.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/11.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/11.svg new file mode 100644 index 0000000..47f0c80 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/11.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 14.623052,22 L 14.623052,10.1 L 11.869052,10.1 C 11.529053,11.204999 10.917051,11.63 9.3870527,11.715 L 9.3870527,13.806 L 11.393052,13.806 L 11.393052,22 L 14.623052,22 M 21.794928,22 L 21.794928,10.1 L 19.040928,10.1 C 18.700928,11.204999 18.088926,11.63 16.558928,11.715 L 16.558928,13.806 L 18.564928,13.806 L 18.564928,22 L 21.794928,22" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/12.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/12.png new file mode 100644 index 0000000..84c132a Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/12.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/12.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/12.svg new file mode 100644 index 0000000..94ddaac --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/12.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 12.677562,22 L 12.677562,10.1 L 9.9235624,10.1 C 9.5835628,11.204999 8.9715609,11.63 7.4415624,11.715 L 7.4415624,13.806 L 9.4475624,13.806 L 9.4475624,22 L 12.677562,22 M 24.558438,22 L 24.558438,19.314 L 18.353438,19.314 C 18.608438,18.600001 19.27144,17.936999 21.651438,16.832 C 23.929436,15.778001 24.473438,14.825998 24.473438,13.262 C 24.473438,11.103002 22.926435,9.913 19.968438,9.913 C 17.92844,9.913 16.381436,10.491001 14.868438,11.46 L 16.381438,13.891 C 17.571437,13.092001 18.727439,12.684 19.917438,12.684 C 20.869437,12.684 21.243438,12.973001 21.243438,13.5 C 21.243438,13.976 21.056437,14.163001 19.798438,14.724 C 16.823441,16.049999 14.936438,17.988004 14.834438,22 L 24.558438,22" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/13.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/13.png new file mode 100644 index 0000000..f41ec8f Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/13.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/13.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/13.svg new file mode 100644 index 0000000..040dd6c --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/13.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 12.550062,22 L 12.550062,10.1 L 9.7960624,10.1 C 9.4560628,11.204999 8.8440609,11.63 7.3140624,11.715 L 7.3140624,13.806 L 9.3200624,13.806 L 9.3200624,22 L 12.550062,22 M 24.685938,18.226 C 24.685938,16.713002 23.716937,15.914 22.611938,15.659 C 23.427937,15.268 24.192938,14.638999 24.192938,13.33 C 24.192938,10.814003 22.288935,9.913 19.432938,9.913 C 17.35894,9.913 15.930937,10.610001 14.825938,11.46 L 16.389938,13.602 C 17.307937,12.939001 18.191939,12.582 19.347938,12.582 C 20.520937,12.582 20.996938,12.922001 20.996938,13.551 C 20.996938,14.332999 20.656937,14.554 19.619938,14.554 L 18.089938,14.554 L 18.089938,17.121 L 19.806938,17.121 C 21.013937,17.121 21.489938,17.427001 21.489938,18.26 C 21.489938,19.075999 20.911937,19.467 19.534938,19.467 C 18.225939,19.467 17.120937,18.973999 16.151938,18.226 L 14.451938,20.368 C 15.726937,21.489999 17.44394,22.187 19.466938,22.187 C 22.696935,22.187 24.685938,20.979997 24.685938,18.226" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/14.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/14.png new file mode 100644 index 0000000..c491206 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/14.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/14.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/14.svg new file mode 100644 index 0000000..7f4fcfd --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/14.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 12.040062,22 L 12.040062,10.1 L 9.2860624,10.1 C 8.9460628,11.204999 8.3340609,11.63 6.8040624,11.715 L 6.8040624,13.806 L 8.8100624,13.806 L 8.8100624,22 L 12.040062,22 M 25.195938,19.96 L 25.195938,17.172 L 23.665938,17.172 L 23.665938,10.1 L 20.401938,10.1 L 13.992938,17.461 L 13.992938,19.875 L 20.707938,19.875 L 20.707938,22 L 23.665938,22 L 23.665938,19.96 L 25.195938,19.96 M 20.758938,13.432 C 20.724938,13.992999 20.707938,15.302001 20.707938,15.999 L 20.707938,17.172 L 19.823938,17.172 C 19.007939,17.172 18.191937,17.189 17.596938,17.223 C 18.038938,16.798 18.531939,16.253999 19.160938,15.489 L 19.330938,15.285 C 20.112937,14.350001 20.435938,13.925 20.758938,13.432" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/15.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/15.png new file mode 100644 index 0000000..7656c94 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/15.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/15.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/15.svg new file mode 100644 index 0000000..a8eba4d --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/15.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 12.388562,22 L 12.388562,10.1 L 9.6345624,10.1 C 9.2945628,11.204999 8.6825609,11.63 7.1525624,11.715 L 7.1525624,13.806 L 9.1585624,13.806 L 9.1585624,22 L 12.388562,22 M 24.847438,17.852 C 24.847438,15.200003 23.164435,13.908 20.597438,13.908 C 19.407439,13.908 18.693437,14.112 18.030438,14.435 L 18.132438,12.786 L 24.133438,12.786 L 24.133438,10.1 L 15.463438,10.1 L 15.055438,16.271 L 17.877438,17.223 C 18.472437,16.798 19.067439,16.543 20.070438,16.543 C 21.090437,16.543 21.668438,17.019001 21.668438,17.937 C 21.668438,18.888999 21.107436,19.45 19.577438,19.45 C 18.302439,19.45 16.891437,18.956999 15.752438,18.277 L 14.409438,20.742 C 15.871436,21.625999 17.43544,22.187 19.492438,22.187 C 22.875435,22.187 24.847438,20.622997 24.847438,17.852" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/16.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/16.png new file mode 100644 index 0000000..1f2535a Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/16.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/16.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/16.svg new file mode 100644 index 0000000..1adc217 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/16.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 12.405562,22 L 12.405562,10.1 L 9.6515624,10.1 C 9.3115628,11.204999 8.6995609,11.63 7.1695624,11.715 L 7.1695624,13.806 L 9.1755624,13.806 L 9.1755624,22 L 12.405562,22 M 24.830438,17.903 C 24.830438,15.387003 23.096435,14.214 20.631438,14.214 C 19.203439,14.214 18.336437,14.486 17.571438,14.911 C 18.472437,13.534001 20.104441,12.616 23.215438,12.616 L 23.215438,9.913 C 16.415445,9.913 14.341438,14.112003 14.341438,17.257 C 14.341438,20.537997 16.415441,22.187 19.407438,22.187 C 22.773435,22.187 24.830438,20.588997 24.830438,17.903 M 21.651438,18.124 C 21.651438,19.075999 20.818437,19.586 19.577438,19.586 C 18.132439,19.586 17.486438,18.990999 17.486438,18.141 C 17.486438,17.206001 18.183439,16.645 19.645438,16.645 C 20.903437,16.645 21.651438,17.206001 21.651438,18.124" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/17.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/17.png new file mode 100644 index 0000000..67fe7ce Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/17.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/17.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/17.svg new file mode 100644 index 0000000..b007799 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/17.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 12.652062,22 L 12.652062,10.1 L 9.8980624,10.1 C 9.5580628,11.204999 8.9460609,11.63 7.4160624,11.715 L 7.4160624,13.806 L 9.4220624,13.806 L 9.4220624,22 L 12.652062,22 M 24.583938,12.48 L 24.583938,10.1 L 14.740938,10.1 L 14.740938,12.786 L 20.656938,12.786 C 18.36194,15.131998 17.239938,17.920004 17.205938,22 L 20.435938,22 C 20.435938,18.141004 21.098941,15.675997 24.583938,12.48" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/18.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/18.png new file mode 100644 index 0000000..76aa05b Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/18.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/18.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/18.svg new file mode 100644 index 0000000..140c8ec --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/18.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 12.176062,22 L 12.176062,10.1 L 9.4220624,10.1 C 9.0820628,11.204999 8.4700609,11.63 6.9400624,11.715 L 6.9400624,13.806 L 8.9460624,13.806 L 8.9460624,22 L 12.176062,22 M 25.059938,18.294 C 25.059938,16.764002 23.971937,15.948 23.206938,15.642 C 23.954937,15.166 24.549938,14.519999 24.549938,13.449 C 24.549938,11.171002 22.526935,9.913 19.653938,9.913 C 16.780941,9.913 14.723938,11.171002 14.723938,13.449 C 14.723938,14.519999 15.352939,15.251 16.066938,15.676 C 15.301939,15.982 14.213938,16.764002 14.213938,18.294 C 14.213938,20.707998 16.287941,22.187 19.619938,22.187 C 22.951935,22.187 25.059938,20.707998 25.059938,18.294 M 21.387938,13.5 C 21.387938,14.094999 20.945937,14.639 19.653938,14.639 C 18.361939,14.639 17.885938,14.094999 17.885938,13.5 C 17.885938,12.905001 18.327939,12.31 19.619938,12.31 C 20.911937,12.31 21.387938,12.905001 21.387938,13.5 M 21.897938,18.26 C 21.897938,19.075999 21.149936,19.688 19.653938,19.688 C 18.157939,19.688 17.375938,19.07599 9 17.375938,18.26 C 17.375938,17.444001 18.106939,16.849 19.619938,16.849 C 21.115936,16.849 21.897938,17.444001 21.897938,18.26" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/19.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/19.png new file mode 100644 index 0000000..5f5ada0 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/19.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/19.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/19.svg new file mode 100644 index 0000000..ae864c4 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/19.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 12.414062,22 L 12.414062,10.1 L 9.6600624,10.1 C 9.3200628,11.204999 8.7080609,11.63 7.1780624,11.715 L 7.1780624,13.806 L 9.1840624,13.806 L 9.1840624,22 L 12.414062,22 M 24.821938,14.843 C 24.821938,11.562003 22.747935,9.913 19.755938,9.913 C 16.389941,9.913 14.332938,11.511003 14.332938,14.197 C 14.332938,16.712997 16.06694,17.886 18.531938,17.886 C 19.959937,17.886 20.826939,17.614 21.591938,17.189 C 20.690939,18.565999 19.058935,19.484 15.947938,19.484 L 15.947938,22.187 C 22.747931,22.187 24.821938,17.987997 24.821938,14.843 M 21.676938,13.959 C 21.676938,14.893999 20.979936,15.455 19.517938,15.455 C 18.259939,15.455 17.511938,14.893999 17.511938,13.976 C 17.511938,13.024001 18.344939,12.514 19.585938,12.514 C 21.030936,12.514 21.676938,13.109001 21.676938,13.959" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/2.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/2.png new file mode 100644 index 0000000..8fe3709 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/2.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/2.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/2.svg new file mode 100644 index 0000000..ee96128 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/2.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 20.862,22.013004 L 20.862,19.327004 L 14.657,19.327004 C 14.912,18.613005 15.575003,17.950003 17.955,16.845004 C 20.232998,15.791005 20.777,14.839003 20.777,13.275004 C 20.777,11.116006 19.229997,9.9260043 16.272,9.9260043 C 14.232002,9.9260043 12.684999,10.504005 11.172,11.473004 L 12.685,13.904004 C 13.874999,13.105005 15.031001,12.697004 16.221,12.697004 C 17.172999,12.697004 17.547,12.986005 17.547,13.513004 C 17.547,13.989004 17.359999,14.176005 16.102,14.737004 C 13.127003,16.063003 11.24,18.001008 11.138,22.013004 L 20.862,22.013004" + id="text2207" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/20.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/20.png new file mode 100644 index 0000000..5e2ad33 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/20.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/20.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/20.svg new file mode 100644 index 0000000..1678a9f --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/20.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 14.685,22 L 14.685,19.314 L 8.4799999,19.314 C 8.7349997,18.600001 9.3980023,17.936999 11.778,16.832 C 14.055998,15.778001 14.6,14.825998 14.6,13.262 C 14.6,11.103002 13.052997,9.913 10.095,9.913 C 8.055002,9.913 6.5079984,10.491001 4.9949999,11.46 L 6.5079999,13.891 C 7.6979988,13.092001 8.8540011,12.684 10.044,12.684 C 10.995999,12.684 11.37,12.973001 11.37,13.5 C 11.37,13.976 11.182999,14.163001 9.9249999,14.724 C 6.9500029,16.049999 5.0629998,17.988004 4.9609999,22 L 14.685,22 M 27.421719,16.033 C 27.421719,12.072004 25.143716,9.913 22.049719,9.913 C 18.955722,9.913 16.643719,12.106004 16.643719,16.067 C 16.643719,20.027996 18.921722,22.187 22.015719,22.187 C 25.109716,22.187 27.421719,19.993996 27.421719,16.033 M 24.038719,16.067 C 24.038719,18.242998 23.324717,19.348 22.049719,19.348 C 20.77472,19.348 20.026719,18.208998 20.026719,16.033 C 20.026719,13.857002 20.74072,12.752 22.015719,12.752 C 23.290717,12.752 24.038719,13.891002 24.038719,16.067" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/21.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/21.png new file mode 100644 index 0000000..cfafd1f Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/21.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/21.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/21.svg new file mode 100644 index 0000000..4199512 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/21.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 16.648141,22 L 16.648141,19.314 L 10.44314,19.314 C 10.69814,18.600001 11.361143,17.936999 13.741141,16.832 C 16.019139,15.778001 16.563141,14.825998 16.563141,13.262 C 16.563141,11.103002 15.016138,9.913 12.058141,9.913 C 10.018143,9.913 8.471139,10.491001 6.9581405,11.46 L 8.4711405,13.891 C 9.661139,13.092001 10.817142,12.684 12.007141,12.684 C 12.95914,12.684 13.333141,12.973001 13.333141,13.5 C 13.333141,13.976 13.14614,14.163001 11.88814,14.724 C 8.9131435,16.049999 7.0261404,17.988004 6.9241405,22 L 16.648141,22 M 23.82586,22 L 23.82586,10.1 L 21.07186,10.1 C 20.73186,11.204999 20.119858,11.63 18.58986,11.715 L 18.58986,13.806 L 20.59586,13.806 L 20.59586,22 L 23.82586,22" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/22.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/22.png new file mode 100644 index 0000000..5415d35 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/22.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/22.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/22.svg new file mode 100644 index 0000000..c1f4479 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/22.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 14.685,22 L 14.685,19.314 L 8.4799999,19.314 C 8.7349997,18.600001 9.3980023,17.936999 11.778,16.832 C 14.055998,15.778001 14.6,14.825998 14.6,13.262 C 14.6,11.103002 13.052997,9.913 10.095,9.913 C 8.055002,9.913 6.5079984,10.491001 4.9949999,11.46 L 6.5079999,13.891 C 7.6979988,13.092001 8.8540011,12.684 10.044,12.684 C 10.995999,12.684 11.37,12.973001 11.37,13.5 C 11.37,13.976 11.182999,14.163001 9.9249999,14.724 C 6.9500029,16.049999 5.0629998,17.988004 4.9609999,22 L 14.685,22 M 26.571719,22 L 26.571719,19.314 L 20.366719,19.314 C 20.621718,18.600001 21.284721,17.936999 23.664719,16.832 C 25.942716,15.778001 26.486719,14.825998 26.486719,13.262 C 26.486719,11.103002 24.939716,9.913 21.981719,9.913 C 19.941721,9.913 18.394717,10.491001 16.881719,11.46 L 18.394719,13.891 C 19.584718,13.092001 20.74072,12.684 21.930719,12.684 C 22.882718,12.684 23.256719,12.973001 23.256719,13.5 C 23.256719,13.976 23.069717,14.163001 21.811719,14.724 C 18.836722,16.049999 16.94971 9,17.988004 16.847719,22 L 26.571719,22" + id="number" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/23.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/23.png new file mode 100644 index 0000000..658e22b Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/23.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/23.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/23.svg new file mode 100644 index 0000000..ea3c85a --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/23.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 15.32239,22.013004 L 15.32239,19.327004 L 9.1173907,19.327004 C 9.3723904,18.613005 10.035393,17.950003 12.41539,16.845004 C 14.693388,15.791005 15.23739,14.839003 15.23739,13.275004 C 15.23739,11.116006 13.690387,9.9260043 10.73239,9.9260043 C 8.6923927,9.9260043 7.1453891,10.504005 5.6323906,11.473004 L 7.1453906,13.904004 C 8.3353896,13.105005 9.4913919,12.697004 10.68139,12.697004 C 11.633389,12.697004 12.00739,12.986005 12.00739,13.513004 C 12.00739,13.989004 11.820389,14.176005 10.56239,14.737004 C 7.5873937,16.063003 5.7003905,18.001008 5.5983906,22.013004 L 15.32239,22.013004 M 26.401609,18.239004 C 26.401609,16.726006 25.432608,15.927004 24.327609,15.672004 C 25.143608,15.281005 25.908609,14.652003 25.908609,13.343004 C 25.908609,10.827007 24.004606,9.9260043 21.148609,9.9260043 C 19.074611,9.9260043 17.646608,10.623005 16.541609,11.473004 L 18.105609,13.615004 C 19.023608,12.952005 19.90761,12.595004 21.063609,12.595004 C 22.236608,12.595004 22.712609,12. 935005 22.712609,13.564004 C 22.712609,14.346004 22.372608,14.567004 21.335609,14.567004 L 19.805609,14.567004 L 19.805609,17.134004 L 21.522609,17.134004 C 22.729608,17.134004 23.205609,17.440005 23.205609,18.273004 C 23.205609,19.089003 22.627608,19.480004 21.250609,19.480004 C 19.94161,19.480004 18.836608,18.987004 17.867609,18.239004 L 16.167609,20.381004 C 17.442608,21.503003 19.159611,22.200004 21.182609,22.200004 C 24.412606,22.200004 26.401609,20.993002 26.401609,18.239004" + id="text2207" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/3.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/3.png new file mode 100644 index 0000000..449ef5a Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/3.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/3.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/3.svg new file mode 100644 index 0000000..d3a7e73 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/3.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 21.117,18.239004 C 21.117,16.726006 20.147999,15.927004 19.043,15.672004 C 19.858999,15.281005 20.624,14.652003 20.624,13.343004 C 20.624,10.827007 18.719997,9.9260043 15.864,9.9260043 C 13.790002,9.9260043 12.361999,10.623005 11.257,11.473004 L 12.821,13.615004 C 13.738999,12.952005 14.623001,12.595004 15.779,12.595004 C 16.951999,12.595004 17.428,12.935005 17.428,13.564004 C 17.428,14.346004 17.087999,14.567004 16.051,14.567004 L 14.521,14.567004 L 14.521,17.134004 L 16.238,17.134004 C 17.444999,17.134004 17.921,17.440005 17.921,18.273004 C 17.921,19.089003 17.342999,19.480004 15.966,19.480004 C 14.657002,19.480004 13.551999,18.987004 12.583,18.239004 L 10.883,20.381004 C 12.157999,21.503003 13.875002,22.200004 15.898,22.200004 C 19.127997,22.200004 21.117,20.993002 21.117,18.239004" + id="text2207" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/4.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/4.png new file mode 100644 index 0000000..0a2634a Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/4.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/4.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/4.svg new file mode 100644 index 0000000..e6bbe8e --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/4.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 20.573772,19.96 L 20.573772,17.172 L 19.043772,17.172 L 19.043772,10.1 L 15.779772,10.1 L 9.3707718,17.461 L 9.3707718,19.875 L 16.085772,19.875 L 16.085772,22 L 19.043772,22 L 19.043772,19.96 L 20.573772,19.96 M 16.136772,13.432 C 16.102772,13.992999 16.085772,15.302001 16.085772,15.999 L 16.085772,17.172 L 15.201772,17.172 C 14.385773,17.172 13.569771,17.189 12.974772,17.223 C 13.416772,16.798 13.909773,16.253999 14.538772,15.489 L 14.708772,15.285 C 15.490771,14.350001 15.813772,13.925 16.136772,13.432" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/5.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/5.png new file mode 100644 index 0000000..bc1d337 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/5.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/5.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/5.svg new file mode 100644 index 0000000..d8578f2 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/5.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 21.219,17.852 C 21.219,15.200003 19.535997,13.908 16.969,13.908 C 15.779001,13.908 15.064999,14.112 14.402,14.435 L 14.504,12.786 L 20.505,12.786 L 20.505,10.1 L 11.835,10.1 L 11.427,16.271 L 14.249,17.223 C 14.843999,16.798 15.439001,16.543 16.442,16.543 C 17.461999,16.543 18.04,17.019001 18.04,17.937 C 18.04,18.888999 17.478998,19.45 15.949,19.45 C 14.674001,19.45 13.262999,18.956999 12.124,18.277 L 10.781,20.742 C 12.242999,21.625999 13.807002,22.187 15.864,22.187 C 19.246997,22.187 21.219,20.622997 21.219,17.852" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/6.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/6.png new file mode 100644 index 0000000..68cb4b6 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/6.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/6.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/6.svg new file mode 100644 index 0000000..14d62e0 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/6.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 21.2445,17.903 C 21.2445,15.387003 19.510497,14.214 17.0455,14.214 C 15.617501,14.214 14.750499,14.486 13.9855,14.911 C 14.886499,13.534001 16.518503,12.616 19.6295,12.616 L 19.6295,9.913 C 12.829507,9.913 10.7555,14.112003 10.7555,17.257 C 10.7555,20.537997 12.829503,22.187 15.8215,22.187 C 19.187497,22.187 21.2445,20.588997 21.2445,17.903 M 18.0655,18.124 C 18.0655,19.075999 17.232499,19.586 15.9915,19.586 C 14.546501,19.586 13.9005,18.990999 13.9005,18.141 C 13.9005,17.206001 14.597501,16.645 16.0595,16.645 C 17.317499,16.645 18.0655,17.206001 18.0655,18.124" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/7.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/7.png new file mode 100644 index 0000000..3b6cc72 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/7.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/7.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/7.svg new file mode 100644 index 0000000..8d71ee3 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/7.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 20.9215,12.48 L 20.9215,10.1 L 11.0785,10.1 L 11.0785,12.786 L 16.9945,12.786 C 14.699502,15.131998 13.5775,17.920004 13.5435,22 L 16.7735,22 C 16.7735,18.141004 17.436503,15.675997 20.9215,12.48" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/8.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/8.png new file mode 100644 index 0000000..b092185 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/8.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/8.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/8.svg new file mode 100644 index 0000000..1c31e86 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/8.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 21.423,18.294 C 21.423,16.764002 20.334999,15.948 19.57,15.642 C 20.317999,15.166 20.913,14.519999 20.913,13.449 C 20.913,11.171002 18.889997,9.913 16.017,9.913 C 13.144003,9.913 11.087,11.171002 11.087,13.449 C 11.087,14.519999 11.716001,15.251 12.43,15.676 C 11.665001,15.982 10.577,16.764002 10.577,18.294 C 10.577,20.707998 12.651003,22.187 15.983,22.187 C 19.314997,22.187 21.423,20.707998 21.423,18.294 M 17.751,13.5 C 17.751,14.094999 17.308999,14.639 16.017,14.639 C 14.725001,14.639 14.249,14.094999 14.249,13.5 C 14.249,12.905001 14.691001,12.31 15.983,12.31 C 17.274999,12.31 17.751,12.905001 17.751,13.5 M 18.261,18.26 C 18.261,19.075999 17.512998,19.688 16.017,19.688 C 14.521001,19.688 13.739,19.075999 13.739,18.26 C 13.739,17.444001 14.470002,16.849 15.983,16.849 C 17.478998,16.849 18.261,17.444001 18.261,18.26" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/9.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/9.png new file mode 100644 index 0000000..7706583 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/9.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/9.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/9.svg new file mode 100644 index 0000000..851e9a3 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/9.svg @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="32" + height="32" + id="svg2"> + <defs + id="defs15" /> + <circle + cx="16" + cy="16" + r="14" + id="circle" + style="fill:#aa0000" /> + <path + d="M 22.128383,14.843 C 22.128383,11.562003 20.05438,9.913 17.062383,9.913 C 13.696386,9.913 11.639383,11.511003 11.639383,14.197 C 11.639383,16.712997 13.373385,17.886 15.838383,17.886 C 17.266382,17.886 18.133384,17.614 18.898383,17.189 C 17.997384,18.565999 16.36538,19.484 13.254383,19.484 L 13.254383,22.187 C 20.054376,22.187 22.128383,17.987997 22.128383,14.843 M 18.983383,13.959 C 18.983383,14.893999 18.286381,15.455 16.824383,15.455 C 15.566384,15.455 14.818383,14.893999 14.818383,13.976 C 14.818383,13.024001 15.651384,12.514 16.892383,12.514 C 18.337381,12.514 18.983383,13.109001 18.983383,13.959" + id="text2219" + style="fill:#ffffff" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/bkgrnd_greydots.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/bkgrnd_greydots.png new file mode 100644 index 0000000..2333a6d Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/bkgrnd_greydots.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/bullet_arrowblue.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/bullet_arrowblue.png new file mode 100644 index 0000000..c235534 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/bullet_arrowblue.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/documentation.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/documentation.png new file mode 100644 index 0000000..79d0a80 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/documentation.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/dot.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/dot.png new file mode 100644 index 0000000..36a6859 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/dot.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/dot2.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/dot2.png new file mode 100644 index 0000000..40aff92 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/dot2.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/h1-bg.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/h1-bg.png new file mode 100644 index 0000000..a2aad24 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/h1-bg.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/image_left.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/image_left.png new file mode 100644 index 0000000..e8fe7a4 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/image_left.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/image_right.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/image_right.png new file mode 100644 index 0000000..5b67443 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/image_right.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/important.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/important.png new file mode 100644 index 0000000..f7594a3 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/important.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/important.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/important.svg new file mode 100644 index 0000000..2d33045 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/important.svg @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.0" + width="48" + height="48" + id="svg5921" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="important.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:export-filename="/home/jfearn/Build/src/fedora/publican/trunk/publican-fedora/en-US/images/important.png" + inkscape:export-xdpi="111.32" + inkscape:export-ydpi="111.32"> + <metadata + id="metadata2611"> + rdf:RDF + <cc:Work + rdf:about=""> + dc:formatimage/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="681" + inkscape:window-width="738" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="false" + inkscape:zoom="11.5" + inkscape:cx="20" + inkscape:cy="20" + inkscape:window-x="0" + inkscape:window-y="51" + inkscape:current-layer="svg5921" /> + <defs + id="defs5923"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 20 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="40 : 20 : 1" + inkscape:persp3d-origin="20 : 13.333333 : 1" + id="perspective2613" /> + </defs> + <g + transform="matrix(0.4626799,0,0,0.4626799,-5.2934127,-3.3160376)" + id="g5485"> + <path + d="M 29.97756,91.885882 L 55.586992,80.409826 L 81.231619,91.807015 L 78.230933,63.90468 L 96.995009,43.037218 L 69.531053,37.26873 L 55.483259,12.974592 L 41.510292,37.311767 L 14.064204,43.164717 L 32.892392,63.97442 L 29.97756,91.885882 z" + id="path6799" + style="fill:#f3de82;fill-opacity:1;enable-background:new" /> + <path + d="M 55.536215,56.538729 L 55.48324,12.974601 L 41.51028,37.311813 L 55.536215,56.538729 z" + id="path6824" + style="opacity:0.91005291;fill:#f9f2cb;fill-opacity:1;enable-background:new" /> + <path + d="M 55.57947,56.614318 L 78.241135,63.937979 L 96.976198,43.044318 L 55.57947,56.614318 z" + id="use6833" + style="opacity:1;fill:#d0bc64;fill-opacity:1;enable-background:new" /> + <path + d="M 55.523838,56.869126 L 55.667994,80.684281 L 81.379011,91.931065 L 55.523838,56.869126 z" + id="use6835" + style="opacity:1;fill:#e0c656;fill-opacity:1;enable-background:new" /> + <path + d="M 55.283346,56.742618 L 13.877363,43.200977 L 32.640089,64.069652 L 55.283346,56.742618 z" + id="use6831" + style="opacity:1;fill:#d1ba59;fill-opacity:1;enable-background:new" /> + <path + d="M 55.472076,56.869126 L 55.32792,80.684281 L 29.616903,91.931065 L 55.472076,56.869126 z" + id="use6837" + style="opacity:1;fill:#d2b951;fill-opacity:1;enable-background:new" /> + <path + d="M 55.57947,56.614318 L 96.976198,43.044318 L 69.504294,37.314027 L 55.57947,56.614318 z" + id="path7073" + style="opacity:1;fill:#f6e7a3;fill-opacity:1;enable-background:new" /> + <path + d="M 55.523838,56.869126 L 81.379011,91.931065 L 78.214821,64.046881 L 55.523838,56.869126 z" + id="path7075" + style="opacity:1;fill:#f6e7a3;fill-opacity:1;enable-background:new" /> + <path + d="M 55.283346,56.742618 L 41.341708,37.434209 L 13.877363,43.200977 L 55.283346,56.742618 z" + id="path7077" + style="opacity:1;fill:#f6e59d;fill-opacity:1;enable-background:new" /> + <path + d="M 55.472076,56.869126 L 29.616903,91.931065 L 32.781093,64.046881 L 55.472076,56.869126 z" + id="path7079" + style="opacity:1;fill:#f3df8b;fill-opacity:1;enable-background:new" /> + </g> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/logo.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/logo.png new file mode 100644 index 0000000..66a3104 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/logo.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/note.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/note.png new file mode 100644 index 0000000..d6c4518 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/note.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/note.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/note.svg new file mode 100644 index 0000000..70e43b6 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/note.svg @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.0" + width="48" + height="48" + id="svg5921" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="note.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:export-filename="/home/jfearn/Build/src/fedora/publican/trunk/publican-fedora/en-US/images/note.png" + inkscape:export-xdpi="111.32" + inkscape:export-ydpi="111.32"> + <metadata + id="metadata16"> + rdf:RDF + <cc:Work + rdf:about=""> + dc:formatimage/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="1024" + inkscape:window-width="1205" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="false" + inkscape:zoom="11.5" + inkscape:cx="22.217181" + inkscape:cy="20" + inkscape:window-x="334" + inkscape:window-y="51" + inkscape:current-layer="svg5921" /> + <defs + id="defs5923"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 20 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="40 : 20 : 1" + inkscape:persp3d-origin="20 : 13.333333 : 1" + id="perspective18" /> + </defs> + <g + transform="matrix(0.468275,0,0,0.468275,-5.7626904,-7.4142703)" + id="layer1"> + <g + transform="matrix(0.115136,0,0,0.115136,9.7283,21.77356)" + id="g8014" + style="enable-background:new"> + <g + id="g8518" + style="opacity:1"> + <path + d="M -2512.4524,56.33197 L 3090.4719,56.33197 L 3090.4719,4607.3813 L -2512.4524,4607.3813 L -2512.4524,56.33197 z" + transform="matrix(0.1104659,-2.3734892e-2,2.2163258e-2,0.1031513,308.46782,74.820675)" + id="rect8018" + style="fill:#ffe680;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + <g + transform="matrix(0.5141653,-7.1944682e-2,7.1944682e-2,0.5141653,146.04015,-82.639785)" + id="g8020"> + <path + d="M 511.14114,441.25315 C 527.3248,533.52772 464.31248,622.82928 370.39916,640.71378 C 276.48584,658.59828 187.23462,598.29322 171.05095,506.01865 C 154.86728,413.74408 217.8796,324.44253 311.79292,306.55803 C 405.70624,288.67353 494.95747,348.97858 511.14114,441.25315 z" + id="path8022" + style="opacity:1;fill:#e0c96f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0804934;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + d="M 527.8214,393.1416 C 527.8214,461.31268 472.55783,516.57625 404.38675,516.57625 C 336.21567,516.57625 280.9521,461.31268 280.9521,393.1416 C 280.9521,324.97052 336.21567,269.70695 404.38675,269.70695 C 472.55783,269.70695 527.8214,324.97052 527.8214,393.1416 z" + transform="matrix(1.2585415,-0.2300055,0.2168789,1.1867072,-248.76141,68.254424)" + id="path8024" + style="opacity:1;fill:#c00000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0804934;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + d="M 358.5625,281.15625 C 348.09597,281.05155 337.43773,281.94729 326.71875,283.90625 C 240.96686,299.57789 183.37901,377.92385 198.15625,458.78125 C 209.70749,521.98673 262.12957,567.92122 325.40625,577.5625 L 357.25,433.6875 L 509.34375,405.875 C 509.14405,404.58166 509.0804,403.29487 508.84375,402 C 495.91366,331.24978 431.82821,281.88918 358.5625,281.15625 z" + id="path8026" + style="opacity:1;fill:#b60000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + d="M 294.2107,361.9442 L 282.79367,370.38482 L 261.73414,386.13346 C 253.13706,404.40842 254.3359,423.7989 259.7176,444.39774 C 273.6797,497.83861 313.42636,523.96124 369.50989,517.58957 C 398.21848,514.32797 424.51832,504.67345 440.64696,484.15958 L 469.89512,447.48298 L 294.2107,361.9442 z" + id="path8028" + style="fill:#750000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.09999999;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> + <path + d="M 527.8214,393.1416 C 527.8214,461.31268 472.55783,516.57625 404.38675,516.57625 C 336.21567,516.57625 280.9521,461.31268 280.9521,393.1416 C 280.9521,324.97052 336.21567,269.70695 404.38675,269.70695 C 472.55783,269.70695 527.8214,324.97052 527.8214,393.1416 z" + transform="matrix(0.9837071,-0.1797787,0.1695165,0.9275553,-78.013985,79.234385)" + id="path8030" + style="opacity:1;fill:#d40000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.10298239;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <path + d="M 527.8214,393.1416 C 527.8214,461.31268 472.55783,516.57625 404.38675,516.57625 C 336.21567,516.57625 280.9521,461.31268 280.9521,393.1416 C 280.9521,324.97052 336.21567,269.70695 404.38675,269.70695 C 472.55783,269.70695 527.8214,324.97052 527.8214,393.1416 z" + transform="matrix(0.9837071,-0.1797787,0.1695165,0.9275553,-69.306684,71.273294)" + id="path8032" + style="opacity:1;fill:#e11212;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.10298239;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + </g> + </g> + </g> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/shade.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/shade.png new file mode 100644 index 0000000..a73afdf Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/shade.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/shine.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/shine.png new file mode 100644 index 0000000..a18f7c4 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/shine.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-go-back.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-go-back.png new file mode 100644 index 0000000..d320f26 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-go-back.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-go-forward.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-go-forward.png new file mode 100644 index 0000000..1ee5a29 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-go-forward.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-go-up.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-go-up.png new file mode 100644 index 0000000..1cd7332 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-go-up.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-home.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-home.png new file mode 100644 index 0000000..122536d Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/stock-home.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/title_logo.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/title_logo.png new file mode 100644 index 0000000..d5182b4 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/title_logo.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/title_logo.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/title_logo.svg new file mode 100644 index 0000000..e8fd52b --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/title_logo.svg @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="220" + height="70" + id="svg6180"> + <defs + id="defs6182" /> + <g + transform="translate(-266.55899,-345.34488)" + id="layer1"> + <path + d="m 316.7736,397.581 c 0,0 0,0 -20.53889,0 0.3327,4.45245 3.92157,7.77609 8.70715,7.77609 3.38983,0 6.31456,-1.39616 8.64094,-3.65507 0.46553,-0.46679 0.99726,-0.59962 1.59519,-0.59962 0.79781,0 1.59561,0.39932 2.12692,1.06388 0.3327,0.46553 0.53216,0.99726 0.53216,1.52857 0,0.73118 -0.3327,1.52857 -0.93106,2.12734 -2.7919,2.99052 -7.51086,4.98503 -12.16403,4.98503 -8.44149,0 -15.22074,-6.77967 -15.22074,-15.22158 0,-8.44149 6.58022,-15.22074 15.02171,-15.22074 8.37529,0 14.62323,6.51317 14.62323,15.08749 0,1.26418 -1.12924,2.12861 -2.39258,2.12861 z m -12.23065,-11.76512 c -4.45329,0 -7.51085,2.92473 -8.17499,7.17731 10.03626,0 16.35083,0 16.35083,0 -0.59836,-4.05355 -3.78874,-7.17731 -8.17584,-7.17731 z" + id="path11" + style="fill:#3c6eb4" /> + <path + d="m 375.46344,410.80807 c -8.44106,0 -15.22074,-6.77968 -15.22074,-15.22159 0,-8.44149 6.77968,-15.22074 15.22074,-15.22074 8.44234,0 15.22159,6.77925 15.22159,15.22074 -4.2e-4,8.44149 -6.77968,15.22159 -15.22159,15.22159 z m 0,-24.65992 c -5.31688,0 -8.77377,4.25427 -8.77377,9.43833 0,5.18364 3.45689,9.43833 8.77377,9.43833 5.31731,0 8.77504,-4.25469 8.77504,-9.43833 -4.2e-4,-5.18406 -3.45773,-9.43833 -8.77504,-9.43833 z" + id="path13" + style="fill:#3c6eb4" /> + <path + d="m 412.66183,380.36574 c -4.45963,0 -7.40966,1.319 -10.01391,4.62956 l -0.24036,-1.53995 0,0 c -0.20198,-1.60743 -1.57326,-2.84926 -3.23382,-2.84926 -1.80139,0 -3.26206,1.459 -3.26206,3.26081 0,0.003 0,0.005 0,0.008 l 0,0 0,0.003 0,0 0,23.40712 c 0,1.79464 1.46194,3.25743 3.257,3.25743 1.79465,0 3.25744,-1.46279 3.25744,-3.25743 l 0,-12.56209 c 0,-5.71621 4.98502,-8.57432 10.23613,-8.57432 1.59519,0 2.85726,-1.32953 2.85726,-2.92515 0,-1.59561 -1.26207,-2.85726 -2.85768,-2.85726 z" + id="path15" + style="fill:#3c6eb4" /> + <path + d="m 447.02614,395.58648 c 0.0666,-8.17541 -5.78326,-15.22074 -15.222,-15.22074 -8.44192,0 -15.28779,6.77925 -15.28779,15.22074 0,8.44191 6.64684,15.22159 14.68985,15.22159 4.01434,0 7.62682,-2.06621 9.23846,-4.22518 l 0.79359,2.01434 0,0 c 0.42589,1.13177 1.5176,1.93717 2.7978,1.93717 1.65001,0 2.98756,-1.33671 2.99009,-2.98545 l 0,0 0,-7.80687 0,0 0,-4.1556 z m -15.222,9.43833 c -5.31773,0 -8.77419,-4.25469 -8.77419,-9.43833 0,-5.18406 3.45604,-9.43833 8.77419,-9.43833 5.3173,0 8.77419,4.25427 8.77419,9.43833 0,5.18364 -3.45689,9.43833 -8.77419,9.43833 z" + id="path17" + style="fill:#3c6eb4" /> + <path + d="m 355.01479,368.3337 c 0,-1.7938 -1.46194,-3.18997 -3.25659,-3.18997 -1.79422,0 -3.25743,1.39659 -3.25743,3.18997 l 0,17.1499 c -1.66097,-3.05756 -5.25026,-5.11786 -9.50495,-5.11786 -8.64052,0 -14.42336,6.51318 -14.42336,15.22074 0,8.70757 5.98229,15.22159 14.42336,15.22159 3.76555,0 7.03057,-1.55429 8.98587,-4.25554 l 0.72317,1.83428 c 0.44782,1.25912 1.64917,2.16024 3.06051,2.16024 1.78621,0 3.24984,-1.45435 3.24984,-3.24815 0,-0.005 0,-0.009 0,-0.0139 l 0,0 0,-38.95128 -4.2e-4,0 z m -15.22116,36.69111 c -5.31731,0 -8.70715,-4.25469 -8.70715,-9.43833 0,-5.18406 3.38984,-9.43833 8.70715,-9.43833 5.31773,0 8.70714,4.0544 8.70714,9.43833 0,5.38309 -3.38941,9.43833 -8.70714,9.43833 z" + id="path19" + style="fill:#3c6eb4" /> + <path + d="m 287.21553,365.34023 c -0.59414,-0.0877 -1.19966,-0.13198 -1.80097,-0.13198 -6.73118,0 -12.20746,5.4767 -12.20746,12.20788 l 0,3.8132 -3.98903,0 c -1.46237,0 -2.65908,1.19671 -2.65908,2.65781 0,1.46321 1.19671,2.93738 2.65908,2.93738 l 3.98819,0 0,20.46004 c 0,1.79464 1.46236,3.25743 3.25658,3.25743 1.79507,0 3.25744,-1.46279 3.25744,-3.25743 l 0,-20.46004 4.40986,0 c 1.46194,0 2.65823,-1.47417 2.65823,-2.93738 0,-1.46152 -1.19629,-2.65823 -2.65823,-2.65823 l -4.40733,0 0,-3.8132 c 0,-3.13852 2.55323,-6.11469 5.69175,-6.11469 0.28294,0 0.56757,0.0211 0.84672,0.062 1.78031,0.26355 3.4358,-0.54269 3.70019,-2.32342 0.2627,-1.77904 -0.96606,-3.43538 -2.74594,-3.69935 z" + id="path21" + style="fill:#3c6eb4" /> + <path + d="m 482.01243,363.57426 c 0,-10.06788 -8.16108,-18.22938 -18.22897,-18.22938 -10.06282,0 -18.22179,8.15475 -18.22854,18.21631 l -4.2e-4,-4.2e-4 0,14.1071 4.2e-4,4.2e-4 c 0.005,2.28463 1.85832,4.13409 4.14463,4.13409 0.007,0 0.0127,-8.4e-4 0.0194,-8.4e-4 l 0.001,8.4e-4 14.07083,0 0,0 c 10.06409,-0.004 18.22138,-8.16276 18.22138,-18.22812 z" + id="path25" + style="fill:#294172" /> + <path + d="m 469.13577,349.66577 c -4.72528,0 -8.55576,3.83049 -8.55576,8.55577 0,0.002 0,0.004 0,0.006 l 0,4.52836 -4.51444,0 c -8.5e-4,0 -8.5e-4,0 -0.001,0 -4.72528,0 -8.55576,3.81193 -8.55576,8.53678 0,4.72528 3.83048,8.55577 8.55576,8.55577 4.72486,0 8.55534,-3.83049 8.55534,-8.55577 0,-0.002 0,-0.004 0,-0.006 l 0,-4.54733 4.51444,0 c 8.5e-4,0 0.001,0 0.002,0 4.72486,0 8.55534,-3.79296 8.55534,-8.51781 0,-4.72528 -3.83048,-8.55577 -8.55534,-8.55577 z m -8.55576,21.63483 c -0.004,2.48998 -2.02446,4.50811 -4.51571,4.50811 -2.49378,0 -4.53426,-2.02193 -4.53426,-4.5157 0,-2.49421 2.04048,-4.55366 4.53426,-4.55366 0.002,0 0.004,4.2e-4 0.006,4.2e-4 l 3.86971,0 c 0.001,0 0.002,-4.2e-4 0.003,-4.2e-4 0.35209,0 0.63799,0.28505 0.63799,0.63715 0,4.2e-4 -4.2e-4,8.4e-4 -4.2e-4,0.001 l 0,3.92284 -4.2e-4,0 z m 8.55534,-8.5448 c -0.001,0 -0.003,0 -0.004,0 l -3.87223,0 c -8.4e-4,0 -0.002,0 -0.002,0 -0.35252,0 -0.63757,-0.28506 -0.63757,-0.63758 l 0,-4.2e-4 0,-3.90343 c 0.004,-2.49083 2.02 446,-4.50854 4.51571,-4.50854 2.49378,0 4.53468,2.02193 4.53468,4.51613 4.2e-4,2.49336 -2.04048,4.53384 -4.53426,4.53384 z" + id="path29" + style="fill:#3c6eb4" /> + <path + d="m 460.58001,362.7558 0,-4.52836 c 0,-0.002 0,-0.004 0,-0.006 0,-4.72528 3.83048,-8.55577 8.55576,-8.55577 0.71685,0 1.22623,0.0805 1.88952,0.25469 0.96774,0.25385 1.75796,1.04618 1.75838,1.96922 4.2e-4,1.11575 -0.80919,1.92621 -2.0194,1.92621 -0.57642,0 -0.78473,-0.11048 -1.62892,-0.11048 -2.49125,0 -4.51149,2.01771 -4.51571,4.50854 l 0,3.90385 0,4.2e-4 c 0,0.35252 0.28505,0.63758 0.63757,0.63758 4.3e-4,0 0.001,0 0.002,0 l 2.96521,0 c 1.10521,0 1.99747,0.88467 1.99832,1.99283 0,1.10816 -0.89353,1.99114 -1.99832,1.99114 l -3.60489,0 0,4.54733 c 0,0.002 0,0.004 0,0.006 0,4.72485 -3.83048,8.55534 -8.55534,8.55534 -0.71684,0 -1.22623,-0.0805 -1.88952,-0.25469 -0.96774,-0.25343 -1.75838,-1.04618 -1.7588,-1.9688 0,-1.11575 0.80919,-1.92663 2.01982,-1.92663 0.576,0 0.78473,0.11048 1.6285,0.11048 2.49125,0 4.51191,-2.01771 4.51613,-4.50811 0,0 0,-3.92368 0,-3.9241 0,-0.35168 -0.2859,-0.63673 -0.63799,-0.63673 -4.3e-4,0 -8.5e-4,0 -0.002,0 l -2.96521,-4.2e-4 c -1.10521,0 -1. 99831,-0.88214 -1.99831,-1.9903 -4.3e-4,-1.11533 0.90238,-1.99367 2.01939,-1.99367 l 3.58339,0 0,0 z" + id="path31" + style="fill:#ffffff" /> + <path + d="m 477.41661,378.55292 2.81558,0 0,0.37898 -1.18152,0 0,2.94935 -0.45254,0 0,-2.94935 -1.18152,0 0,-0.37898 m 3.26144,0 0.67101,0 0.84937,2.26496 0.85381,-2.26496 0.67102,0 0,3.32833 -0.43917,0 0,-2.9226 -0.85828,2.28279 -0.45255,0 -0.85827,-2.28279 0,2.9226 -0.43694,0 0,-3.32833" + id="text6223" + style="fill:#294172;enable-background:new" /> + </g> + <path + d="m 181.98344,61.675273 2.81558,0 0,0.37898 -1.18152,0 0,2.94935 -0.45254,0 0,-2.94935 -1.18152,0 0,-0.37898 m 3.26144,0 0.67101,0 0.84937,2.26496 0.85381,-2.26496 0.67102,0 0,3.32833 -0.43917,0 0,-2.9226 -0.85828,2.28279 -0.45255,0 -0.85827,-2.28279 0,2.9226 -0.43694,0 0,-3.32833" + id="path2391" + style="fill:#294172;enable-background:new" /> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/warning.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/warning.png new file mode 100644 index 0000000..ce09951 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/warning.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/warning.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/warning.svg new file mode 100644 index 0000000..5f2612c --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/warning.svg @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.0" + width="48" + height="48" + id="svg5921" + sodipodi:version="0.32" + inkscape:version="0.46" + sodipodi:docname="warning.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:export-filename="/home/jfearn/Build/src/fedora/publican/trunk/publican-fedora/en-US/images/warning.png" + inkscape:export-xdpi="111.32" + inkscape:export-ydpi="111.32"> + <metadata + id="metadata2482"> + rdf:RDF + <cc:Work + rdf:about=""> + dc:formatimage/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="910" + inkscape:window-width="1284" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showgrid="false" + inkscape:zoom="11.5" + inkscape:cx="20" + inkscape:cy="20" + inkscape:window-x="0" + inkscape:window-y="51" + inkscape:current-layer="svg5921" /> + <defs + id="defs5923"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 20 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="40 : 20 : 1" + inkscape:persp3d-origin="20 : 13.333333 : 1" + id="perspective2484" /> + </defs> + <g + transform="matrix(0.4536635,0,0,0.4536635,-5.1836431,-4.6889387)" + id="layer1"> + <g + transform="translate(2745.6887,-1555.5977)" + id="g8304" + style="enable-background:new"> + <path + d="M -1603,1054.4387 L -1577.0919,1027.891 L -1540,1027.4387 L -1513.4523,1053.3468 L -1513,1090.4387 L -1538.9081,1116.9864 L -1576,1117.4387 L -1602.5477,1091.5306 L -1603,1054.4387 z" + transform="matrix(0.8233528,8.9983906e-3,-8.9983906e-3,0.8233528,-1398.5561,740.7914)" + id="path8034" + style="opacity:1;fill:#efd259;fill-opacity:1;stroke:#efd259;stroke-opacity:1" /> + <path + d="M -1603,1054.4387 L -1577.0919,1027.891 L -1540,1027.4387 L -1513.4523,1053.3468 L -1513,1090.4387 L -1538.9081,1116.9864 L -1576,1117.4387 L -1602.5477,1091.5306 L -1603,1054.4387 z" + transform="matrix(0.6467652,7.0684723e-3,-7.0684723e-3,0.6467652,-1675.7492,927.16391)" + id="path8036" + style="opacity:1;fill:#a42324;fill-opacity:1;stroke:#a42324;stroke-opacity:1" /> + <path + d="M -2686.7886,1597.753 C -2686.627,1596.5292 -2686.5462,1595.6987 -2686.5462,1595.218 C -2686.5462,1593.1637 -2688.0814,1592.0711 -2690.9899,1592.0711 C -2693.8985,1592.0711 -2695.4336,1593.12 -2695.4336,1595.218 C -2695.4336,1595.961 -2695.3528,1596.7914 -2695.1912,1597.753 L -2692.929,1614.4491 L -2689.0508,1614.4491 L -2686.7886,1597.753" + id="path8038" + style="font-size:107.13574219px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Charter" /> + <path + d="M -2690.9899,1617.8197 C -2693.6124,1617.8197 -2695.8118,1619.9346 -2695.8118,1622.6416 C -2695.8118,1625.3486 -2693.6124,1627.4635 -2690.9899,1627.4635 C -2688.2829,1627.4635 -2686.168,1625.264 -2686.168,1622.6416 C -2686.168,1619.9346 -2688.2829,1617.8197 -2690.9899,1617.8197" + id="path8040" + style="font-size:107.13574219px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Charter" /> + </g> + </g> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/watermark-draft.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/watermark-draft.png new file mode 100644 index 0000000..0ead5af Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/Common_Content/images/watermark-draft.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/SCLogin.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/SCLogin.png new file mode 100644 index 0000000..5bdef58 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/SCLogin.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/SCLoginEnrollment.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/SCLoginEnrollment.png new file mode 100644 index 0000000..2809b32 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/SCLoginEnrollment.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/auth-panel.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/auth-panel.png new file mode 100644 index 0000000..6335d2f Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/auth-panel.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/authicon.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/authicon.png new file mode 100644 index 0000000..e397b63 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/authicon.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-firefox_kerberos_SSO.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-firefox_kerberos_SSO.png new file mode 100644 index 0000000..1dbf27d Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-firefox_kerberos_SSO.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-firewall_config.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-firewall_config.png new file mode 100644 index 0000000..6abd4b0 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-firewall_config.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-ipsec_host2host.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-ipsec_host2host.png new file mode 100644 index 0000000..4a236a7 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-ipsec_host2host.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-ipsec_n_to_n_local.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-ipsec_n_to_n_local.png new file mode 100644 index 0000000..e49a5c1 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-ipsec_n_to_n_local.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-ipsec_n_to_n_remote.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-ipsec_n_to_n_remote.png new file mode 100644 index 0000000..5457d97 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-ipsec_n_to_n_remote.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-service_config.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-service_config.png new file mode 100644 index 0000000..71b4c21 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-service_config.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-user_pass_groups.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-user_pass_groups.png new file mode 100644 index 0000000..9527476 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-user_pass_groups.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-user_pass_info.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-user_pass_info.png new file mode 100644 index 0000000..54ccc33 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/fed-user_pass_info.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/icon.svg b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/icon.svg new file mode 100644 index 0000000..c471a60 --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/icon.svg @@ -0,0 +1,3936 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/" + xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.0" + width="32" + height="32" + id="svg3017" + sodipodi:version="0.32" + inkscape:version="0.44+devel" + sodipodi:docname="book.svg" + sodipodi:docbase="/home/andy/Desktop"> + <metadata + id="metadata489"> + rdf:RDF + <cc:Work + rdf:about=""> + dc:formatimage/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + inkscape:window-height="480" + inkscape:window-width="858" + inkscape:pageshadow="0" + inkscape:pageopacity="0.0" + guidetolerance="10.0" + gridtolerance="10.0" + objecttolerance="10.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + inkscape:zoom="1" + inkscape:cx="16" + inkscape:cy="15.944056" + inkscape:window-x="0" + inkscape:window-y="33" + inkscape:current-layer="svg3017" /> + <defs + id="defs3019"> + <linearGradient + id="linearGradient2381"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="stop2383" /> + <stop + style="stop-color:white;stop-opacity:0" + offset="1" + id="stop2385" /> + </linearGradient> + <linearGradient + x1="415.73831" + y1="11.854" + x2="418.13361" + y2="18.8104" + id="XMLID_1758_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)"> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="0" + id="stop3903" /> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="1" + id="stop3905" /> + <a:midPointStop + style="stop-color:#CCCCCC" + offset="0" /> + <a:midPointStop + style="stop-color:#CCCCCC" + offset="0.5" /> + <a:midPointStop + style="stop-color:#F2F2F2" + offset="1" /> + </linearGradient> + <linearGradient + x1="500.70749" + y1="-13.2441" + x2="513.46442" + y2="-2.1547" + id="XMLID_1757_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0" + id="stop3890" /> + <stop + style="stop-color:#96bad6;stop-opacity:1" + offset="1" + id="stop3892" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#96BAD6" + offset="1" /> + </linearGradient> + <clipPath + id="XMLID_1755_"> + <use + id="use3874" + x="0" + y="0" + width="744.09448" + height="600" + xlink:href="#XMLID_343_" /> + </clipPath> + <linearGradient + x1="505.62939" + y1="-14.9526" + x2="527.49402" + y2="-0.7536" + id="XMLID_1756_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0" + id="stop3877" /> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0.51120001" + id="stop3879" /> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0.64609998" + id="stop3881" /> + <stop + style="stop-color:#16336e;stop-opacity:1" + offset="1" + id="stop3883" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5112" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.6461" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#16336E" + offset="1" /> + </linearGradient> + <linearGradient + x1="471.0806" + y1="201.07761" + x2="481.91711" + y2="210.4977" + id="XMLID_1754_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#6498c1;stop-opacity:1" + offset="0.005618" + id="stop3863" /> + <stop + style="stop-color:#79a9cc;stop-opacity:1" + offset="0.2332" + id="stop3865" /> + <stop + style="stop-color:#a4cde2;stop-opacity:1" + offset="0.74049997" + id="stop3867" /> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="1" + id="stop3869" /> + <a:midPointStop + style="stop-color:#6498C1" + offset="5.618000e-003" /> + <a:midPointStop + style="stop-color:#6498C1" + offset="0.4438" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="1" /> + </linearGradient> + <linearGradient + x1="516.57672" + y1="-15.769" + x2="516.57672" + y2="0.84280002" + id="XMLID_1753_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="0" + id="stop3851" /> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="1" + id="stop3853" /> + <a:midPointStop + style="stop-color:#B2B2B2" + offset="0" /> + <a:midPointStop + style="stop-color:#B2B2B2" + offset="0.5" /> + <a:midPointStop + style="stop-color:#F2F2F2" + offset="1" /> + </linearGradient> + <clipPath + id="XMLID_1751_"> + <use + id="use3837" + x="0" + y="0" + width="744.09448" + height="600" + xlink:href="#XMLID_338_" /> + </clipPath> + <linearGradient + x1="506.09909" + y1="-11.5137" + x2="527.99609" + y2="2.7063999" + id="XMLID_1752_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0" + id="stop3840" /> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0.51120001" + id="stop3842" /> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0.64609998" + id="stop3844" /> + <stop + style="stop-color:#16336e;stop-opacity:1" + offset="1" + id="stop3846" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5112" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.6461" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#16336E" + offset="1" /> + </linearGradient> + <linearGradient + x1="468.2915" + y1="204.7612" + x2="479.39871" + y2="214.4166" + id="XMLID_1750_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0" + id="stop3830" /> + <stop + style="stop-color:#96bad6;stop-opacity:1" + offset="1" + id="stop3832" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#96BAD6" + offset="1" /> + </linearGradient> + <linearGradient + x1="502.70749" + y1="115.3013" + x2="516.39001" + y2="127.1953" + id="XMLID_1749_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)"> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0" + id="stop3818" /> + <stop + style="stop-color:#96bad6;stop-opacity:1" + offset="1" + id="stop3820" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#96BAD6" + offset="1" /> + </linearGradient> + <linearGradient + x1="501.0903" + y1="-19.2544" + x2="531.85413" + y2="0.72390002" + id="XMLID_1748_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0" + id="stop3803" /> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0.51120001" + id="stop3805" /> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0.64609998" + id="stop3807" /> + <stop + style="stop-color:#16336e;stop-opacity:1" + offset="1" + id="stop3809" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5112" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.6461" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#16336E" + offset="1" /> + </linearGradient> + <linearGradient + x1="481.23969" + y1="212.5742" + x2="472.92981" + y2="207.4967" + id="XMLID_2275_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#f3403f;stop-opacity:1" + offset="0" + id="stop9947" /> + <stop + style="stop-color:#d02a28;stop-opacity:1" + offset="0.37889999" + id="stop9949" /> + <stop + style="stop-color:#b21714;stop-opacity:1" + offset="0.77649999" + id="stop9951" /> + <stop + style="stop-color:#a6100c;stop-opacity:1" + offset="1" + id="stop9953" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0.4213" /> + <a:midPointStop + style="stop-color:#A6100C" + offset="1" /> + </linearGradient> + <clipPath + id="XMLID_2273_"> + <use + id="use9933" + x="0" + y="0" + width="744.09448" + height="600" + xlink:href="#XMLID_960_" /> + </clipPath> + <linearGradient + x1="473.7681" + y1="209.17529" + x2="486.98099" + y2="213.2001" + id="XMLID_2274_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#f3403f;stop-opacity:1" + offset="0" + id="stop9936" /> + <stop + style="stop-color:#d02a28;stop-opacity:1" + offset="0.37889999" + id="stop9938" /> + <stop + style="stop-color:#b21714;stop-opacity:1" + offset="0.77649999" + id="stop9940" /> + <stop + style="stop-color:#a6100c;stop-opacity:1" + offset="1" + id="stop9942" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0.4213" /> + <a:midPointStop + style="stop-color:#A6100C" + offset="1" /> + </linearGradient> + <linearGradient + x1="478.21341" + y1="-131.9297" + x2="469.85818" + y2="-140.28481" + id="XMLID_2272_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)"> + <stop + style="stop-color:#f3403f;stop-opacity:1" + offset="0" + id="stop9917" /> + <stop + style="stop-color:#d02a28;stop-opacity:1" + offset="0.37889999" + id="stop9919" /> + <stop + style="stop-color:#b21714;stop-opacity:1" + offset="0.77649999" + id="stop9921" /> + <stop + style="stop-color:#a6100c;stop-opacity:1" + offset="1" + id="stop9923" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0.4213" /> + <a:midPointStop + style="stop-color:#A6100C" + offset="1" /> + </linearGradient> + <marker + refX="0" + refY="0" + orient="auto" + style="overflow:visible" + id="TriangleInM"> + <path + d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z " + transform="scale(-0.4,-0.4)" + style="fill:#5c5c4f" + id="path3197" /> + </marker> + <linearGradient + x1="200.7363" + y1="100.4028" + x2="211.99519" + y2="89.143997" + id="XMLID_3298_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#bfbfbf;stop-opacity:1" + offset="0" + id="stop20103" /> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="1" + id="stop20105" /> + <a:midPointStop + offset="0" + style="stop-color:#BFBFBF" /> + <a:midPointStop + offset="0.5" + style="stop-color:#BFBFBF" /> + <a:midPointStop + offset="1" + style="stop-color:#F2F2F2" /> + </linearGradient> + <linearGradient + x1="200.7363" + y1="100.4028" + x2="211.99519" + y2="89.143997" + id="linearGradient36592" + xlink:href="#XMLID_3298_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" /> + <linearGradient + x1="181.2925" + y1="110.8481" + x2="192.6369" + y2="99.5037" + id="XMLID_3297_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0" + id="stop20096" /> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="1" + id="stop20098" /> + <a:midPointStop + offset="0" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="1" + style="stop-color:#CCCCCC" /> + </linearGradient> + <linearGradient + x1="181.2925" + y1="110.8481" + x2="192.6369" + y2="99.5037" + id="linearGradient36595" + xlink:href="#XMLID_3297_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" /> + <linearGradient + x1="211.77589" + y1="105.7749" + x2="212.6619" + y2="108.2092" + id="XMLID_3296_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#0f6124;stop-opacity:1" + offset="0" + id="stop20087" /> + <stop + style="stop-color:#219630;stop-opacity:1" + offset="1" + id="stop20089" /> + <a:midPointStop + offset="0" + style="stop-color:#0F6124" /> + <a:midPointStop + offset="0.5" + style="stop-color:#0F6124" /> + <a:midPointStop + offset="1" + style="stop-color:#219630" /> + </linearGradient> + <linearGradient + x1="211.77589" + y1="105.7749" + x2="212.6619" + y2="108.2092" + id="linearGradient36677" + xlink:href="#XMLID_3296_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" /> + <linearGradient + x1="208.9834" + y1="116.8296" + x2="200.0811" + y2="96.834602" + id="XMLID_3295_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="0" + id="stop20076" /> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0.5" + id="stop20078" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="1" + id="stop20080" /> + <a:midPointStop + offset="0" + style="stop-color:#B2B2B2" /> + <a:midPointStop + offset="0.5" + style="stop-color:#B2B2B2" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="1" + style="stop-color:#FFFFFF" /> + </linearGradient> + <linearGradient + x1="208.9834" + y1="116.8296" + x2="200.0811" + y2="96.834602" + id="linearGradient36604" + xlink:href="#XMLID_3295_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" /> + <linearGradient + x1="195.5264" + y1="97.911102" + x2="213.5213" + y2="115.9061" + id="XMLID_3294_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="0" + id="stop20069" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="1" + id="stop20071" /> + <a:midPointStop + offset="0" + style="stop-color:#CCCCCC" /> + <a:midPointStop + offset="0.5" + style="stop-color:#CCCCCC" /> + <a:midPointStop + offset="1" + style="stop-color:#FFFFFF" /> + </linearGradient> + <linearGradient + x1="195.5264" + y1="97.911102" + x2="213.5213" + y2="115.9061" + id="linearGradient36607" + xlink:href="#XMLID_3294_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" /> + <linearGradient + x1="186.1938" + y1="109.1343" + x2="206.6881" + y2="88.639999" + id="XMLID_3293_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="0" + id="stop20056" /> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0.16850001" + id="stop20058" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="0.23029999" + id="stop20060" /> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0.2809" + id="stop20062" /> + <stop + style="stop-color:#c2c2c2;stop-opacity:1" + offset="0.5" + id="stop20064" /> + <a:midPointStop + offset="0" + style="stop-color:#B2B2B2" /> + <a:midPointStop + offset="0.5" + style="stop-color:#B2B2B2" /> + <a:midPointStop + offset="0.1685" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.2303" + style="stop-color:#FFFFFF" /> + <a:midPointStop + offset="0.5" + style="stop-color:#FFFFFF" /> + <a:midPointStop + offset="0.2809" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.5" + style="stop-color:#C2C2C2" /> + </linearGradient> + <linearGradient + x1="186.1938" + y1="109.1343" + x2="206.6881" + y2="88.639999" + id="linearGradient36610" + xlink:href="#XMLID_3293_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" /> + <linearGradient + x1="184.8569" + y1="112.2676" + x2="211.94099" + y2="89.541397" + id="XMLID_3292_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="0" + id="stop20043" /> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0.16850001" + id="stop20045" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="0.23029999" + id="stop20047" /> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0.2809" + id="stop20049" /> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="1" + id="stop20051" /> + <a:midPointStop + offset="0" + style="stop-color:#B2B2B2" /> + <a:midPointStop + offset="0.5" + style="stop-color:#B2B2B2" /> + <a:midPointStop + offset="0.1685" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.2303" + style="stop-color:#FFFFFF" /> + <a:midPointStop + offset="0.5" + style="stop-color:#FFFFFF" /> + <a:midPointStop + offset="0.2809" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="1" + style="stop-color:#CCCCCC" /> + </linearGradient> + <linearGradient + x1="184.8569" + y1="112.2676" + x2="211.94099" + y2="89.541397" + id="linearGradient36613" + xlink:href="#XMLID_3292_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" /> + <marker + refX="0" + refY="0" + orient="auto" + style="overflow:visible" + id="TriangleOutM"> + <path + d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z " + transform="scale(0.4,0.4)" + style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none" + id="path3238" /> + </marker> + <linearGradient + x1="165.3" + y1="99.5" + x2="165.3" + y2="115.9" + id="XMLID_3457_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#999;stop-opacity:1" + offset="0" + id="stop8309" /> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="0.30000001" + id="stop8311" /> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="1" + id="stop8313" /> + <a:midPointstop + offset="0" + style="stop-color:#999999" /> + <a:midPointstop + offset="0.5" + style="stop-color:#999999" /> + <a:midPointstop + offset="0.3" + style="stop-color:#B2B2B2" /> + <a:midPointstop + offset="0.5" + style="stop-color:#B2B2B2" /> + <a:midPointstop + offset="1" + style="stop-color:#B2B2B2" /> + </linearGradient> + <linearGradient + x1="165.3" + y1="99.5" + x2="165.3" + y2="115.9" + id="lg1997" + xlink:href="#XMLID_3457_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" /> + <linearGradient + x1="175" + y1="99.800003" + x2="175" + y2="112.5" + id="XMLID_3456_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#737373;stop-opacity:1" + offset="0" + id="stop8300" /> + <stop + style="stop-color:#191919;stop-opacity:1" + offset="0.60000002" + id="stop8302" /> + <stop + style="stop-color:#191919;stop-opacity:1" + offset="1" + id="stop8304" /> + <a:midPointstop + offset="0" + style="stop-color:#737373" /> + <a:midPointstop + offset="0.5" + style="stop-color:#737373" /> + <a:midPointstop + offset="0.6" + style="stop-color:#191919" /> + <a:midPointstop + offset="0.5" + style="stop-color:#191919" /> + <a:midPointstop + offset="1" + style="stop-color:#191919" /> + </linearGradient> + <linearGradient + x1="175" + y1="99.800003" + x2="175" + y2="112.5" + id="lg2000" + xlink:href="#XMLID_3456_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" /> + <linearGradient + x1="168.8" + y1="107.1" + x2="164.5" + y2="110" + id="XMLID_3455_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#666;stop-opacity:1" + offset="0" + id="stop8291" /> + <stop + style="stop-color:#191919;stop-opacity:1" + offset="0.69999999" + id="stop8293" /> + <stop + style="stop-color:#191919;stop-opacity:1" + offset="1" + id="stop8295" /> + <a:midPointstop + offset="0" + style="stop-color:#666666" /> + <a:midPointstop + offset="0.5" + style="stop-color:#666666" /> + <a:midPointstop + offset="0.7" + style="stop-color:#191919" /> + <a:midPointstop + offset="0.5" + style="stop-color:#191919" /> + <a:midPointstop + offset="1" + style="stop-color:#191919" /> + </linearGradient> + <linearGradient + x1="168.8" + y1="107.1" + x2="164.5" + y2="110" + id="lg2003" + xlink:href="#XMLID_3455_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" /> + <linearGradient + id="lg63694"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="stop63696" /> + <stop + style="stop-color:white;stop-opacity:0" + offset="1" + id="stop63698" /> + </linearGradient> + <linearGradient + x1="458" + y1="483" + x2="465.20001" + y2="271.39999" + id="lg2006" + xlink:href="#lg63694" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" /> + <linearGradient + x1="176.3" + y1="110.1" + x2="158.7" + y2="105" + id="XMLID_3453_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#666;stop-opacity:1" + offset="0" + id="stop8271" /> + <stop + style="stop-color:#737373;stop-opacity:1" + offset="0.2" + id="stop8273" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="1" + id="stop8275" /> + <a:midPointstop + offset="0" + style="stop-color:#666666" /> + <a:midPointstop + offset="0.5" + style="stop-color:#666666" /> + <a:midPointstop + offset="0.2" + style="stop-color:#737373" /> + <a:midPointstop + offset="0.5" + style="stop-color:#737373" /> + <a:midPointstop + offset="1" + style="stop-color:#FFFFFF" /> + </linearGradient> + <linearGradient + x1="176.3" + y1="110.1" + x2="158.7" + y2="105" + id="lg2009" + xlink:href="#XMLID_3453_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" /> + <linearGradient + x1="173.60001" + y1="118.9" + x2="172.8" + y2="128.2" + id="XMLID_3449_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#ecb300;stop-opacity:1" + offset="0" + id="stop8232" /> + <stop + style="stop-color:#fff95e;stop-opacity:1" + offset="0.60000002" + id="stop8234" /> + <stop + style="stop-color:#ecd600;stop-opacity:1" + offset="1" + id="stop8236" /> + <a:midPointstop + offset="0" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.5" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.6" + style="stop-color:#FFF95E" /> + <a:midPointstop + offset="0.5" + style="stop-color:#FFF95E" /> + <a:midPointstop + offset="1" + style="stop-color:#ECD600" /> + </linearGradient> + <linearGradient + x1="173.60001" + y1="118.9" + x2="172.8" + y2="128.2" + id="lg2016" + xlink:href="#XMLID_3449_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" /> + <radialGradient + cx="284.60001" + cy="172.60001" + r="6.5" + fx="284.60001" + fy="172.60001" + id="XMLID_3448_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)"> + <stop + style="stop-color:#ecb300;stop-opacity:1" + offset="0" + id="stop8219" /> + <stop + style="stop-color:#ecb300;stop-opacity:1" + offset="0.30000001" + id="stop8221" /> + <stop + style="stop-color:#c96b00;stop-opacity:1" + offset="0.89999998" + id="stop8223" /> + <stop + style="stop-color:#9a5500;stop-opacity:1" + offset="1" + id="stop8225" /> + <a:midPointstop + offset="0" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.5" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.3" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.5" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.9" + style="stop-color:#C96B00" /> + <a:midPointstop + offset="0.5" + style="stop-color:#C96B00" /> + <a:midPointstop + offset="1" + style="stop-color:#9A5500" /> + </radialGradient> + <radialGradient + cx="284.60001" + cy="172.60001" + r="6.5" + fx="284.60001" + fy="172.60001" + id="rg2020" + xlink:href="#XMLID_3448_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" /> + <linearGradient + x1="158.10001" + y1="123" + x2="164.2" + y2="126.6" + id="XMLID_3447_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#ecd600;stop-opacity:1" + offset="0" + id="stop8204" /> + <stop + style="stop-color:#ffffb3;stop-opacity:1" + offset="0.30000001" + id="stop8206" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="1" + id="stop8208" /> + <a:midPointstop + offset="0" + style="stop-color:#ECD600" /> + <a:midPointstop + offset="0.5" + style="stop-color:#ECD600" /> + <a:midPointstop + offset="0.3" + style="stop-color:#FFFFB3" /> + <a:midPointstop + offset="0.5" + style="stop-color:#FFFFB3" /> + <a:midPointstop + offset="1" + style="stop-color:#FFFFFF" /> + </linearGradient> + <linearGradient + x1="158.10001" + y1="123" + x2="164.2" + y2="126.6" + id="lg2026" + xlink:href="#XMLID_3447_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" /> + <radialGradient + cx="280.89999" + cy="163.7" + r="10.1" + fx="280.89999" + fy="163.7" + id="XMLID_3446_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="stop8197" /> + <stop + style="stop-color:#fff95e;stop-opacity:1" + offset="1" + id="stop8199" /> + <a:midPointstop + offset="0" + style="stop-color:#FFFFFF" /> + <a:midPointstop + offset="0.5" + style="stop-color:#FFFFFF" /> + <a:midPointstop + offset="1" + style="stop-color:#FFF95E" /> + </radialGradient> + <radialGradient + cx="280.89999" + cy="163.7" + r="10.1" + fx="280.89999" + fy="163.7" + id="rg2029" + xlink:href="#XMLID_3446_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" /> + <linearGradient + x1="156.5" + y1="122.7" + x2="180.10001" + y2="122.7" + id="XMLID_3445_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#ecb300;stop-opacity:1" + offset="0" + id="stop8184" /> + <stop + style="stop-color:#ffe900;stop-opacity:1" + offset="0.2" + id="stop8186" /> + <stop + style="stop-color:#ffffb3;stop-opacity:1" + offset="0.30000001" + id="stop8188" /> + <stop + style="stop-color:#ffe900;stop-opacity:1" + offset="0.40000001" + id="stop8190" /> + <stop + style="stop-color:#d68100;stop-opacity:1" + offset="1" + id="stop8192" /> + <a:midPointstop + offset="0" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.5" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.2" + style="stop-color:#FFE900" /> + <a:midPointstop + offset="0.5" + style="stop-color:#FFE900" /> + <a:midPointstop + offset="0.3" + style="stop-color:#FFFFB3" /> + <a:midPointstop + offset="0.5" + style="stop-color:#FFFFB3" /> + <a:midPointstop + offset="0.4" + style="stop-color:#FFE900" /> + <a:midPointstop + offset="0.5" + style="stop-color:#FFE900" /> + <a:midPointstop + offset="1" + style="stop-color:#D68100" /> + </linearGradient> + <linearGradient + x1="156.5" + y1="122.7" + x2="180.10001" + y2="122.7" + id="lg2032" + xlink:href="#XMLID_3445_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" /> + <linearGradient + x1="156.39999" + y1="115.4" + x2="180.10001" + y2="115.4" + id="XMLID_3444_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#ecb300;stop-opacity:1" + offset="0" + id="stop8171" /> + <stop + style="stop-color:#ffe900;stop-opacity:1" + offset="0.2" + id="stop8173" /> + <stop + style="stop-color:#ffffb3;stop-opacity:1" + offset="0.30000001" + id="stop8175" /> + <stop + style="stop-color:#ffe900;stop-opacity:1" + offset="0.40000001" + id="stop8177" /> + <stop + style="stop-color:#d68100;stop-opacity:1" + offset="1" + id="stop8179" /> + <a:midPointstop + offset="0" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.5" + style="stop-color:#ECB300" /> + <a:midPointstop + offset="0.2" + style="stop-color:#FFE900" /> + <a:midPointstop + offset="0.5" + style="stop-color:#FFE900" /> + <a:midPointstop + offset="0.3" + style="stop-color:#FFFFB3" /> + <a:midPointstop + offset="0.5" + style="stop-color:#FFFFB3" /> + <a:midPointstop + offset="0.4" + style="stop-color:#FFE900" /> + <a:midPointstop + offset="0.5" + style="stop-color:#FFE900" /> + <a:midPointstop + offset="1" + style="stop-color:#D68100" /> + </linearGradient> + <linearGradient + x1="156.39999" + y1="115.4" + x2="180.10001" + y2="115.4" + id="lg2035" + xlink:href="#XMLID_3444_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" /> + <linearGradient + x1="379.70001" + y1="167.89999" + x2="383.89999" + y2="172.89999" + id="lg4286_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="s16159" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="0.1" + id="s16161" /> + <stop + style="stop-color:#737373;stop-opacity:1" + offset="1" + id="s16163" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0.1" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#737373" + offset="1" /> + </linearGradient> + <linearGradient + x1="379.60001" + y1="167.8" + x2="383.79999" + y2="172" + id="lg6416" + xlink:href="#lg4286_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" /> + <linearGradient + x1="384.20001" + y1="169.8" + x2="384.79999" + y2="170.39999" + id="lg4285_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)"> + <stop + style="stop-color:#737373;stop-opacity:1" + offset="0" + id="s16152" /> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="1" + id="s16154" /> + <ns:midPointStop + style="stop-color:#737373" + offset="0" /> + <ns:midPointStop + style="stop-color:#737373" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#D9D9D9" + offset="1" /> + </linearGradient> + <linearGradient + x1="384.20001" + y1="169.8" + x2="384.79999" + y2="170.39999" + id="lg6453" + xlink:href="#lg4285_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" /> + <linearGradient + x1="380.5" + y1="172.60001" + x2="382.79999" + y2="173.7" + id="lg4284_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)"> + <stop + style="stop-color:gray;stop-opacity:1" + offset="0" + id="s16145" /> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="1" + id="s16147" /> + <ns:midPointStop + style="stop-color:#808080" + offset="0" /> + <ns:midPointStop + style="stop-color:#808080" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#E5E5E5" + offset="1" /> + </linearGradient> + <linearGradient + x1="380.5" + y1="172.60001" + x2="382.79999" + y2="173.7" + id="lg6456" + xlink:href="#lg4284_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" /> + <radialGradient + cx="347.29999" + cy="244.5" + r="5.1999998" + fx="347.29999" + fy="244.5" + id="lg4282_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)"> + <stop + style="stop-color:#333;stop-opacity:1" + offset="0" + id="s16135" /> + <stop + style="stop-color:#999;stop-opacity:1" + offset="1" + id="s16137" /> + <ns:midPointStop + style="stop-color:#333333" + offset="0" /> + <ns:midPointStop + style="stop-color:#333333" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#999999" + offset="1" /> + </radialGradient> + <linearGradient + x1="310.39999" + y1="397.70001" + x2="310.89999" + y2="399.5" + id="lg4280_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)"> + <stop + style="stop-color:#ffcd00;stop-opacity:1" + offset="0" + id="s16111" /> + <stop + style="stop-color:#ffffb3;stop-opacity:1" + offset="0.60000002" + id="s16113" /> + <stop + style="stop-color:#ffffb3;stop-opacity:1" + offset="1" + id="s16115" /> + <ns:midPointStop + style="stop-color:#FFCD00" + offset="0" /> + <ns:midPointStop + style="stop-color:#FFCD00" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFFFB3" + offset="0.6" /> + <ns:midPointStop + style="stop-color:#FFFFB3" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFFFB3" + offset="1" /> + </linearGradient> + <linearGradient + x1="310.39999" + y1="397.70001" + x2="310.89999" + y2="399.5" + id="lg6467" + xlink:href="#lg4280_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" /> + <linearGradient + x1="310.89999" + y1="395.79999" + x2="313.29999" + y2="403.10001" + id="lg4279_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)"> + <stop + style="stop-color:#ffffb3;stop-opacity:1" + offset="0" + id="s16100" /> + <stop + style="stop-color:#ffffb3;stop-opacity:1" + offset="0.40000001" + id="s16102" /> + <stop + style="stop-color:#ffcd00;stop-opacity:1" + offset="0.89999998" + id="s16104" /> + <stop + style="stop-color:#ffcd00;stop-opacity:1" + offset="1" + id="s16106" /> + <ns:midPointStop + style="stop-color:#FFFFB3" + offset="0" /> + <ns:midPointStop + style="stop-color:#FFFFB3" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFFFB3" + offset="0.4" /> + <ns:midPointStop + style="stop-color:#FFFFB3" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFCD00" + offset="0.9" /> + <ns:midPointStop + style="stop-color:#FFCD00" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFCD00" + offset="1" /> + </linearGradient> + <linearGradient + x1="310.89999" + y1="395.79999" + x2="313.29999" + y2="403.10001" + id="lg6465" + xlink:href="#lg4279_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" /> + <linearGradient + x1="307.79999" + y1="395.20001" + x2="313.79999" + y2="413.60001" + id="lg4278_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)"> + <stop + style="stop-color:#ffffb3;stop-opacity:1" + offset="0" + id="s16091" /> + <stop + style="stop-color:#fcd72f;stop-opacity:1" + offset="0.40000001" + id="s16093" /> + <stop + style="stop-color:#ffcd00;stop-opacity:1" + offset="1" + id="s16095" /> + <ns:midPointStop + style="stop-color:#FFFFB3" + offset="0" /> + <ns:midPointStop + style="stop-color:#FFFFB3" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FCD72F" + offset="0.4" /> + <ns:midPointStop + style="stop-color:#FCD72F" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFCD00" + offset="1" /> + </linearGradient> + <linearGradient + x1="306.5" + y1="393" + x2="309" + y2="404" + id="lg6400" + xlink:href="#lg4278_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" /> + <linearGradient + x1="352.10001" + y1="253.60001" + x2="348.5" + y2="237.8" + id="lg4276_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)"> + <stop + style="stop-color:#ffff87;stop-opacity:1" + offset="0" + id="s16077" /> + <stop + style="stop-color:#ffad00;stop-opacity:1" + offset="1" + id="s16079" /> + <ns:midPointStop + style="stop-color:#FFFF87" + offset="0" /> + <ns:midPointStop + style="stop-color:#FFFF87" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFAD00" + offset="1" /> + </linearGradient> + <linearGradient + x1="335.60001" + y1="354.79999" + x2="337.89999" + y2="354.79999" + id="lg4275_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)"> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0" + id="s16057" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="0.80000001" + id="s16059" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="1" + id="s16061" /> + <ns:midPointStop + style="stop-color:#D9D9D9" + offset="0" /> + <ns:midPointStop + style="stop-color:#D9D9D9" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0.8" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="1" /> + </linearGradient> + <linearGradient + x1="335.60001" + y1="354.79999" + x2="337.89999" + y2="354.79999" + id="lg6463" + xlink:href="#lg4275_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" /> + <linearGradient + x1="337.39999" + y1="353.10001" + x2="339.39999" + y2="357.10001" + id="lg4274_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="s16048" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="0.1" + id="s16050" /> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="1" + id="s16052" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0.1" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#CCCCCC" + offset="1" /> + </linearGradient> + <linearGradient + x1="337.39999" + y1="353.10001" + x2="339.39999" + y2="357.10001" + id="lg6461" + xlink:href="#lg4274_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" /> + <linearGradient + x1="334.39999" + y1="355.5" + x2="335.5" + y2="356.79999" + id="lg4273_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="s16041" /> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="1" + id="s16043" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="5.6e-003" /> + <ns:midPointStop + style="stop-color:#FFFFFF" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#CCCCCC" + offset="1" /> + </linearGradient> + <linearGradient + x1="334.39999" + y1="355.5" + x2="335.5" + y2="356.79999" + id="lg6381" + xlink:href="#lg4273_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" /> + <linearGradient + x1="348.39999" + y1="247.39999" + x2="354.10001" + y2="242" + id="lg4271_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)"> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="0" + id="s16025" /> + <stop + style="stop-color:#9e9e9e;stop-opacity:1" + offset="0.40000001" + id="s16027" /> + <stop + style="stop-color:black;stop-opacity:1" + offset="1" + id="s16029" /> + <ns:midPointStop + style="stop-color:#F2F2F2" + offset="0" /> + <ns:midPointStop + style="stop-color:#F2F2F2" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#000000" + offset="1" /> + </linearGradient> + <linearGradient + x1="351.29999" + y1="257.29999" + x2="346.29999" + y2="235.5" + id="lg4270_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#ffff87;stop-opacity:1" + offset="0" + id="s16007" /> + <stop + style="stop-color:#ffad00;stop-opacity:1" + offset="1" + id="s16009" /> + <ns:midPointStop + style="stop-color:#FFFF87" + offset="0" /> + <ns:midPointStop + style="stop-color:#FFFF87" + offset="0.5" /> + <ns:midPointStop + style="stop-color:#FFAD00" + offset="1" /> + </linearGradient> + <linearGradient + x1="351.29999" + y1="257.29999" + x2="346.29999" + y2="235.5" + id="lg6459" + xlink:href="#lg4270_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" /> + <linearGradient + x1="43.799999" + y1="32.5" + x2="63.299999" + y2="66.400002" + id="XMLID_2708_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="stop75318" /> + <stop + style="stop-color:#fffcea;stop-opacity:1" + offset="1" + id="stop75320" /> + <a:midPointStop + style="stop-color:#FFFFFF" + offset="0" /> + <a:midPointStop + style="stop-color:#FFFFFF" + offset="0.5" /> + <a:midPointStop + style="stop-color:#FFFCEA" + offset="1" /> + </linearGradient> + <linearGradient + x1="43.799999" + y1="32.5" + x2="63.299999" + y2="66.400002" + id="lg1907" + xlink:href="#XMLID_2708_" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-29,-22.6)" /> + <linearGradient + x1="52.5" + y1="40.400002" + x2="58.200001" + y2="64" + id="XMLID_2707_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#ffdea0;stop-opacity:1" + offset="0" + id="stop75305" /> + <stop + style="stop-color:#ffd89e;stop-opacity:1" + offset="0.30000001" + id="stop75307" /> + <stop + style="stop-color:#ffd79e;stop-opacity:1" + offset="0.30000001" + id="stop75309" /> + <stop + style="stop-color:#dbaf6d;stop-opacity:1" + offset="0.69999999" + id="stop75311" /> + <stop + style="stop-color:#6f4c24;stop-opacity:1" + offset="1" + id="stop75313" /> + <a:midPointStop + style="stop-color:#FFDEA0" + offset="0" /> + <a:midPointStop + style="stop-color:#FFDEA0" + offset="0.6" /> + <a:midPointStop + style="stop-color:#FFD79E" + offset="0.3" /> + <a:midPointStop + style="stop-color:#FFD79E" + offset="0.5" /> + <a:midPointStop + style="stop-color:#DBAF6D" + offset="0.7" /> + <a:midPointStop + style="stop-color:#DBAF6D" + offset="0.5" /> + <a:midPointStop + style="stop-color:#6F4C24" + offset="1" /> + </linearGradient> + <linearGradient + x1="52.5" + y1="40.400002" + x2="58.200001" + y2="64" + id="lg1910" + xlink:href="#XMLID_2707_" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-29,-22.6)" /> + <linearGradient + x1="58" + y1="73.199997" + x2="44.5" + y2="19" + id="XMLID_2704_" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-29,-22.6)"> + <stop + style="stop-color:#d4a96c;stop-opacity:1" + offset="0.5" + id="stop75284" /> + <stop + style="stop-color:#dcb273;stop-opacity:1" + offset="0.60000002" + id="stop75286" /> + <stop + style="stop-color:#f0ca87;stop-opacity:1" + offset="0.80000001" + id="stop75288" /> + <stop + style="stop-color:#ffdc96;stop-opacity:1" + offset="0.69999999" + id="stop75290" /> + <stop + style="stop-color:#c18a42;stop-opacity:1" + offset="1" + id="stop75292" /> + <a:midPointStop + style="stop-color:#D4A96C" + offset="0.5" /> + <a:midPointStop + style="stop-color:#D4A96C" + offset="0.6" /> + <a:midPointStop + style="stop-color:#FFDC96" + offset="0.7" /> + <a:midPointStop + style="stop-color:#FFDC96" + offset="0.5" /> + <a:midPointStop + style="stop-color:#C18A42" + offset="1" /> + </linearGradient> + <linearGradient + x1="53.700001" + y1="32" + x2="53.700001" + y2="64.599998" + id="XMLID_2703_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#e5c9b0;stop-opacity:1" + offset="0" + id="stop75268" /> + <stop + style="stop-color:#e5c9b0;stop-opacity:1" + offset="0.40000001" + id="stop75270" /> + <stop + style="stop-color:#c0aa94;stop-opacity:1" + offset="1" + id="stop75272" /> + <a:midPointStop + style="stop-color:#E5C9B0" + offset="0" /> + <a:midPointStop + style="stop-color:#E5C9B0" + offset="0.5" /> + <a:midPointStop + style="stop-color:#E5C9B0" + offset="0.4" /> + <a:midPointStop + style="stop-color:#E5C9B0" + offset="0.5" /> + <a:midPointStop + style="stop-color:#C0AA94" + offset="1" /> + </linearGradient> + <linearGradient + x1="53.700001" + y1="32" + x2="53.700001" + y2="64.599998" + id="lg1916" + xlink:href="#XMLID_2703_" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-29,-22.6)" /> + <linearGradient + x1="224.31" + y1="19.450001" + x2="214.33" + y2="11.46" + id="XMLID_419_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#404040;stop-opacity:1" + offset="0" + id="s1903" /> + <stop + style="stop-color:#6d6d6d;stop-opacity:1" + offset="0.33000001" + id="s1905" /> + <stop + style="stop-color:#e9e9e9;stop-opacity:1" + offset="1" + id="s1907" /> + <a:midPointStop + offset="0" + style="stop-color:#404040" /> + <a:midPointStop + offset="0.5" + style="stop-color:#404040" /> + <a:midPointStop + offset="0.33" + style="stop-color:#6D6D6D" /> + <a:midPointStop + offset="0.5" + style="stop-color:#6D6D6D" /> + <a:midPointStop + offset="1" + style="stop-color:#E9E9E9" /> + </linearGradient> + <linearGradient + x1="221.84" + y1="32.779999" + x2="212.2" + y2="20.27" + id="lg1988" + xlink:href="#XMLID_419_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" /> + <linearGradient + x1="228.35001" + y1="33.279999" + x2="215.42999" + y2="33.279999" + id="lg1900" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="s1902" /> + <stop + style="stop-color:white;stop-opacity:0" + offset="1" + id="s1906" /> + <a:midPointStop + style="stop-color:#575757" + offset="0" /> + <a:midPointStop + style="stop-color:#575757" + offset="0.5" /> + <a:midPointStop + style="stop-color:#6D6D6D" + offset="0.33" /> + <a:midPointStop + style="stop-color:#6D6D6D" + offset="0.5" /> + <a:midPointStop + style="stop-color:#D3D3D3" + offset="1" /> + </linearGradient> + <linearGradient + x1="234.81" + y1="33.279999" + x2="228.27" + y2="33.279999" + id="lg1908" + xlink:href="#lg1900" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" /> + <linearGradient + x1="228.35001" + y1="33.279999" + x2="215.42999" + y2="33.279999" + id="XMLID_416_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#575757;stop-opacity:1" + offset="0" + id="s1874" /> + <stop + style="stop-color:#6d6d6d;stop-opacity:1" + offset="0.33000001" + id="s1876" /> + <stop + style="stop-color:#d3d3d3;stop-opacity:1" + offset="1" + id="s1878" /> + <a:midPointStop + offset="0" + style="stop-color:#575757" /> + <a:midPointStop + offset="0.5" + style="stop-color:#575757" /> + <a:midPointStop + offset="0.33" + style="stop-color:#6D6D6D" /> + <a:midPointStop + offset="0.5" + style="stop-color:#6D6D6D" /> + <a:midPointStop + offset="1" + style="stop-color:#D3D3D3" /> + </linearGradient> + <linearGradient + x1="228.35001" + y1="33.279999" + x2="215.42999" + y2="33.279999" + id="lg1991" + xlink:href="#XMLID_416_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" /> + <radialGradient + cx="603.19" + cy="230.77" + r="1.67" + fx="603.19" + fy="230.77" + id="x5010_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)"> + <stop + style="stop-color:#c9ffc9;stop-opacity:1" + offset="0" + id="stop29201" /> + <stop + style="stop-color:#23a11f;stop-opacity:1" + offset="1" + id="stop29203" /> + <a:midPointStop + offset="0" + style="stop-color:#C9FFC9" /> + <a:midPointStop + offset="0.5" + style="stop-color:#C9FFC9" /> + <a:midPointStop + offset="1" + style="stop-color:#23A11F" /> + </radialGradient> + <radialGradient + cx="603.19" + cy="230.77" + r="1.67" + fx="603.19" + fy="230.77" + id="radialGradient5711" + xlink:href="#x5010_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" /> + <linearGradient + x1="592.31" + y1="162.60001" + x2="609.32001" + y2="145.59" + id="lg5722" + xlink:href="#x5003_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" /> + <linearGradient + x1="601.48999" + y1="170.16" + x2="613.84003" + y2="170.16" + id="x5002_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0" + id="stop29134" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="0.2" + id="stop29136" /> + <stop + style="stop-color:#999;stop-opacity:1" + offset="1" + id="stop29138" /> + <a:midPointStop + offset="0" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="0.5" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="0.20" + style="stop-color:#FFFFFF" /> + <a:midPointStop + offset="0.5" + style="stop-color:#FFFFFF" /> + <a:midPointStop + offset="1" + style="stop-color:#999999" /> + </linearGradient> + <linearGradient + x1="601.48999" + y1="170.16" + x2="613.84003" + y2="170.16" + id="lg5725" + xlink:href="#x5002_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" /> + <linearGradient + x1="592.20001" + y1="156.45" + x2="609.98999" + y2="174.23" + id="x5004_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)"> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0" + id="stop29157" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="1" + id="stop29159" /> + <a:midPointStop + offset="0" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="0.5" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="1" + style="stop-color:#FFFFFF" /> + </linearGradient> + <linearGradient + x1="592.20001" + y1="156.45" + x2="609.98999" + y2="174.23" + id="lg5728" + xlink:href="#x5004_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" /> + <linearGradient + x1="592.31" + y1="162.60001" + x2="609.32001" + y2="145.59" + id="x5003_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="0" + id="stop29143" /> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="1" + id="stop29145" /> + <a:midPointStop + offset="0" + style="stop-color:#F2F2F2" /> + <a:midPointStop + offset="0.5" + style="stop-color:#F2F2F2" /> + <a:midPointStop + offset="1" + style="stop-color:#E5E5E5" /> + </linearGradient> + <linearGradient + x1="592.31" + y1="162.60001" + x2="609.32001" + y2="145.59" + id="lg5732" + xlink:href="#x5003_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" /> + <linearGradient + x1="592.20001" + y1="156.45" + x2="609.98999" + y2="174.24001" + id="x5000_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)"> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0" + id="stop29124" /> + <stop + style="stop-color:white;stop-opacity:1" + offset="1" + id="stop29126" /> + <a:midPointStop + offset="0" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="0.5" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="1" + style="stop-color:#FFFFFF" /> + </linearGradient> + <linearGradient + x1="592.20001" + y1="156.45" + x2="609.98999" + y2="174.24001" + id="lg5735" + xlink:href="#x5000_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" /> + <linearGradient + x1="308.54999" + y1="149.89999" + x2="299.72" + y2="148.83" + id="XMLID_2433_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#d6d6d6;stop-opacity:1" + offset="0" + id="71615" /> + <stop + style="stop-color:#a5a5a5;stop-opacity:1" + offset="1" + id="71617" /> + <a:midPointStop + offset="0" + style="stop-color:#D6D6D6" /> + <a:midPointStop + offset="0.5" + style="stop-color:#D6D6D6" /> + <a:midPointStop + offset="1" + style="stop-color:#A5A5A5" /> + </linearGradient> + <linearGradient + x1="308.54999" + y1="149.89999" + x2="299.72" + y2="148.83" + id="lg1952" + xlink:href="#XMLID_2433_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" /> + <radialGradient + cx="307.39999" + cy="121" + r="23.35" + fx="307.39999" + fy="121" + id="XMLID_2432_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)"> + <stop + style="stop-color:#d2d2d2;stop-opacity:1" + offset="0.19" + id="71592" /> + <stop + style="stop-color:#cfcfcf;stop-opacity:1" + offset="0.44999999" + id="71594" /> + <stop + style="stop-color:#c7c7c7;stop-opacity:1" + offset="0.60000002" + id="71596" /> + <stop + style="stop-color:#b9b9b9;stop-opacity:1" + offset="0.74000001" + id="71598" /> + <stop + style="stop-color:#a4a4a4;stop-opacity:1" + offset="0.86000001" + id="71600" /> + <stop + style="stop-color:#8a8a8a;stop-opacity:1" + offset="0.95999998" + id="71602" /> + <stop + style="stop-color:gray;stop-opacity:1" + offset="1" + id="71604" /> + <a:midPointStop + offset="0.19" + style="stop-color:#D2D2D2" /> + <a:midPointStop + offset="0.8" + style="stop-color:#D2D2D2" /> + <a:midPointStop + offset="1" + style="stop-color:#808080" /> + </radialGradient> + <radialGradient + cx="307.39999" + cy="121" + r="23.35" + fx="307.39999" + fy="121" + id="radialGradient2331" + xlink:href="#XMLID_2432_" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-276.62,-121.54)" /> + <linearGradient + x1="294.13" + y1="127.07" + x2="294.13" + y2="142.2" + id="XMLID_2430_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#b5d8ff;stop-opacity:1" + offset="0" + id="71582" /> + <stop + style="stop-color:black;stop-opacity:1" + offset="1" + id="71584" /> + <a:midPointStop + offset="0" + style="stop-color:#B5D8FF" /> + <a:midPointStop + offset="0.5" + style="stop-color:#B5D8FF" /> + <a:midPointStop + offset="1" + style="stop-color:#000000" /> + </linearGradient> + <linearGradient + x1="294.13" + y1="127.07" + x2="294.13" + y2="142.2" + id="lg2820" + xlink:href="#XMLID_2430_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" /> + <linearGradient + x1="279.10999" + y1="148.03" + x2="309.16" + y2="148.03" + id="XMLID_2429_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#e1e1e1;stop-opacity:1" + offset="0" + id="71564" /> + <stop + style="stop-color:#e1e1e1;stop-opacity:1" + offset="0.25" + id="71566" /> + <stop + style="stop-color:#a5a5a5;stop-opacity:1" + offset="0.44" + id="71568" /> + <stop + style="stop-color:#a5a5a5;stop-opacity:1" + offset="1" + id="71570" /> + <a:midPointStop + offset="0" + style="stop-color:#E1E1E1" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E1E1E1" /> + <a:midPointStop + offset="0.25" + style="stop-color:#E1E1E1" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E1E1E1" /> + <a:midPointStop + offset="0.44" + style="stop-color:#A5A5A5" /> + <a:midPointStop + offset="0.5" + style="stop-color:#A5A5A5" /> + <a:midPointStop + offset="1" + style="stop-color:#A5A5A5" /> + </linearGradient> + <linearGradient + x1="279.10999" + y1="148.03" + x2="309.16" + y2="148.03" + id="lg2818" + xlink:href="#XMLID_2429_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" /> + <radialGradient + cx="622.34302" + cy="14.449" + r="26.496" + fx="622.34302" + fy="14.449" + id="lg3499_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)"> + <stop + style="stop-color:#23468e;stop-opacity:1" + offset="0" + id="stop10972" /> + <stop + style="stop-color:#012859;stop-opacity:1" + offset="1" + id="stop10974" /> + <a:midPointStop + offset="0" + style="stop-color:#23468E" /> + <a:midPointStop + offset="0.5" + style="stop-color:#23468E" /> + <a:midPointStop + offset="1" + style="stop-color:#012859" /> + </radialGradient> + <radialGradient + cx="622.34302" + cy="14.449" + r="26.496" + fx="622.34302" + fy="14.449" + id="rg5791" + xlink:href="#lg3499_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" /> + <linearGradient + x1="616.112" + y1="76.247002" + x2="588.14099" + y2="60.742001" + id="lg3497_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#01326e;stop-opacity:1" + offset="0" + id="stop10962" /> + <stop + style="stop-color:#012859;stop-opacity:1" + offset="1" + id="stop10964" /> + <a:midPointStop + offset="0" + style="stop-color:#01326E" /> + <a:midPointStop + offset="0.5" + style="stop-color:#01326E" /> + <a:midPointStop + offset="1" + style="stop-color:#012859" /> + </linearGradient> + <linearGradient + x1="617.698" + y1="82.445999" + x2="585.95203" + y2="54.848999" + id="lg3496_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0" + id="stop10950" /> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="1" + id="stop10952" /> + <a:midPointStop + offset="0" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="0.5" + style="stop-color:#E5E5E5" /> + <a:midPointStop + offset="1" + style="stop-color:#CCCCCC" /> + </linearGradient> + <linearGradient + x1="617.698" + y1="82.445999" + x2="585.95203" + y2="54.848999" + id="lg5794" + xlink:href="#lg3496_" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="601.39001" + y1="55.341" + x2="588.29199" + y2="71.515999" + id="lg3495_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0" + id="stop10941" /> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="0.52200001" + id="stop10943" /> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="1" + id="stop10945" /> + <a:midPointStop + offset="0" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="0.5" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="0.522" + style="stop-color:#F2F2F2" /> + <a:midPointStop + offset="0.5" + style="stop-color:#F2F2F2" /> + <a:midPointStop + offset="1" + style="stop-color:#CCCCCC" /> + </linearGradient> + <linearGradient + x1="601.39001" + y1="55.341" + x2="588.29199" + y2="71.515999" + id="lg5771" + xlink:href="#lg3495_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" /> + <linearGradient + x1="611.34601" + y1="55.279999" + x2="590.39001" + y2="81.157997" + id="lg3494_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0" + id="stop10932" /> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="0.52200001" + id="stop10934" /> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="1" + id="stop10936" /> + <a:midPointStop + offset="0" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="0.5" + style="stop-color:#D9D9D9" /> + <a:midPointStop + offset="0.522" + style="stop-color:#F2F2F2" /> + <a:midPointStop + offset="0.5" + style="stop-color:#F2F2F2" /> + <a:midPointStop + offset="1" + style="stop-color:#CCCCCC" /> + </linearGradient> + <linearGradient + x1="611.34601" + y1="55.279999" + x2="590.39001" + y2="81.157997" + id="lg5774" + xlink:href="#lg3494_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" /> + <linearGradient + x1="798.72998" + y1="69.839996" + x2="799.04999" + y2="70.709999" + id="g3302_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#005e00;stop-opacity:1" + offset="0" + id="s6504" /> + <stop + style="stop-color:#23a11f;stop-opacity:1" + offset="1" + id="s6506" /> + <a:midPointstop + style="stop-color:#005E00" + offset="0" /> + <a:midPointstop + style="stop-color:#005E00" + offset="0.5" /> + <a:midPointstop + style="stop-color:#23A11F" + offset="1" /> + </linearGradient> + <linearGradient + x1="798.72998" + y1="69.839996" + x2="799.04999" + y2="70.709999" + id="lg5851" + xlink:href="#g3302_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" /> + <linearGradient + x1="779.19" + y1="122.73" + x2="811.69" + y2="149.74001" + id="g3301_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,-0.25,0,1,0,129.19)"> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="0" + id="s6483" /> + <stop + style="stop-color:#eee;stop-opacity:1" + offset="0.17" + id="s6485" /> + <stop + style="stop-color:#e3e3e3;stop-opacity:1" + offset="0.34" + id="s6487" /> + <stop + style="stop-color:#cfcfcf;stop-opacity:1" + offset="0.50999999" + id="s6489" /> + <stop + style="stop-color:#b4b4b4;stop-opacity:1" + offset="0.67000002" + id="s6491" /> + <stop + style="stop-color:#919191;stop-opacity:1" + offset="0.83999997" + id="s6493" /> + <stop + style="stop-color:#666;stop-opacity:1" + offset="1" + id="s6495" /> + <a:midPointstop + style="stop-color:#F2F2F2" + offset="0" /> + <a:midPointstop + style="stop-color:#F2F2F2" + offset="0.71" /> + <a:midPointstop + style="stop-color:#666666" + offset="1" /> + </linearGradient> + <linearGradient + x1="779.19" + y1="122.73" + x2="811.69" + y2="149.74001" + id="lg5855" + xlink:href="#g3301_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" /> + <clipPath + id="g3299_"> + <use + id="use6469" + x="0" + y="0" + width="1005.92" + height="376.97" + xlink:href="#g101_" /> + </clipPath> + <radialGradient + cx="1189.9301" + cy="100.05" + r="40.400002" + fx="1189.9301" + fy="100.05" + id="g3300_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="s6472" /> + <stop + style="stop-color:white;stop-opacity:0" + offset="1" + id="s6474" /> + <a:midPointstop + style="stop-color:#FFFFFF" + offset="0" /> + <a:midPointstop + style="stop-color:#FFFFFF" + offset="0.5" /> + <a:midPointstop + style="stop-color:#000000" + offset="1" /> + </radialGradient> + <radialGradient + cx="1199.74" + cy="97.150002" + r="40.400002" + fx="1199.74" + fy="97.150002" + id="rg5860" + xlink:href="#g3300_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" /> + <linearGradient + x1="796.38" + y1="67.580002" + x2="781.28003" + y2="58.549999" + id="g3298_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#4c8bca;stop-opacity:1" + offset="0" + id="s6462" /> + <stop + style="stop-color:#b7e9ff;stop-opacity:1" + offset="1" + id="s6464" /> + <a:midPointstop + style="stop-color:#4C8BCA" + offset="0" /> + <a:midPointstop + style="stop-color:#4C8BCA" + offset="0.5" /> + <a:midPointstop + style="stop-color:#B7E9FF" + offset="1" /> + </linearGradient> + <linearGradient + x1="800.97998" + y1="140.72" + x2="777.71997" + y2="121.76" + id="g3297_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,-0.25,0,1,0,129.19)"> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0" + id="s6448" /> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="1" + id="s6450" /> + <a:midPointstop + style="stop-color:#E5E5E5" + offset="0" /> + <a:midPointstop + style="stop-color:#E5E5E5" + offset="0.5" /> + <a:midPointstop + style="stop-color:#CCCCCC" + offset="1" /> + </linearGradient> + <linearGradient + x1="800.97998" + y1="140.72" + x2="777.71997" + y2="121.76" + id="lg5890" + xlink:href="#g3297_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,-0.25,0,1,0,129.19)" /> + <linearGradient + x1="790.03998" + y1="-16.33" + x2="779.84003" + y2="-3.73" + id="g3296_" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(0,70.17)"> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0" + id="s6439" /> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="0.51999998" + id="s6441" /> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="1" + id="s6443" /> + <a:midPointstop + style="stop-color:#D9D9D9" + offset="0" /> + <a:midPointstop + style="stop-color:#D9D9D9" + offset="0.5" /> + <a:midPointstop + style="stop-color:#F2F2F2" + offset="0.52" /> + <a:midPointstop + style="stop-color:#F2F2F2" + offset="0.5" /> + <a:midPointstop + style="stop-color:#CCCCCC" + offset="1" /> + </linearGradient> + <linearGradient + x1="790.03998" + y1="-16.33" + x2="779.84003" + y2="-3.73" + id="lg5866" + xlink:href="#g3296_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" /> + <linearGradient + x1="785.84003" + y1="72.989998" + x2="785.26001" + y2="76.279999" + id="g3293_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="s6412" /> + <stop + style="stop-color:#737373;stop-opacity:1" + offset="1" + id="s6414" /> + <a:midPointstop + style="stop-color:#FFFFFF" + offset="0" /> + <a:midPointstop + style="stop-color:#FFFFFF" + offset="0.5" /> + <a:midPointstop + style="stop-color:#737373" + offset="1" /> + </linearGradient> + <linearGradient + x1="785.84003" + y1="72.989998" + x2="785.26001" + y2="76.279999" + id="lg5871" + xlink:href="#g3293_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" /> + <linearGradient + x1="789.37" + y1="69.879997" + x2="791.03998" + y2="77.120003" + id="g3292_" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#999;stop-opacity:1" + offset="0" + id="s6403" /> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="0.28" + id="s6405" /> + <stop + style="stop-color:#666;stop-opacity:1" + offset="1" + id="s6407" /> + <a:midPointstop + style="stop-color:#999999" + offset="0" /> + <a:midPointstop + style="stop-color:#999999" + offset="0.5" /> + <a:midPointstop + style="stop-color:#F2F2F2" + offset="0.28" /> + <a:midPointstop + style="stop-color:#F2F2F2" + offset="0.5" /> + <a:midPointstop + style="stop-color:#666666" + offset="1" /> + </linearGradient> + <linearGradient + x1="789.37" + y1="69.879997" + x2="791.03998" + y2="77.120003" + id="lg5874" + xlink:href="#g3292_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" /> + <linearGradient + x1="786.65997" + y1="136.12" + x2="786.71002" + y2="134.33" + id="g3290_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,-0.25,0,1,0,137.29)"> + <stop + style="stop-color:#d9d9d9;stop-opacity:1" + offset="0" + id="s6380" /> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="1" + id="s6382" /> + <a:midPointstop + style="stop-color:#D9D9D9" + offset="0" /> + <a:midPointstop + style="stop-color:#D9D9D9" + offset="0.5" /> + <a:midPointstop + style="stop-color:#B2B2B2" + offset="1" /> + </linearGradient> + <linearGradient + x1="786.65997" + y1="136.12" + x2="786.71002" + y2="134.33" + id="lg5878" + xlink:href="#g3290_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" /> + <radialGradient + cx="1458.77" + cy="-5.0999999" + r="35.130001" + fx="1458.77" + fy="-5.0999999" + id="g3289_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)"> + <stop + style="stop-color:white;stop-opacity:1" + offset="0" + id="s6371" /> + <stop + style="stop-color:#999;stop-opacity:1" + offset="1" + id="s6373" /> + <a:midPointstop + style="stop-color:#FFFFFF" + offset="0" /> + <a:midPointstop + style="stop-color:#FFFFFF" + offset="0.5" /> + <a:midPointstop + style="stop-color:#999999" + offset="1" /> + </radialGradient> + <radialGradient + cx="1458.77" + cy="-5.0999999" + r="35.130001" + fx="1458.77" + fy="-5.0999999" + id="rg5881" + xlink:href="#g3289_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" /> + <radialGradient + cx="1612.98" + cy="-4.4699998" + r="36.580002" + fx="1612.98" + fy="-4.4699998" + id="g3288_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)"> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0" + id="s6362" /> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="0.63999999" + id="s6364" /> + <stop + style="stop-color:#737373;stop-opacity:1" + offset="1" + id="s6366" /> + <a:midPointstop + style="stop-color:#E5E5E5" + offset="0" /> + <a:midPointstop + style="stop-color:#E5E5E5" + offset="0.5" /> + <a:midPointstop + style="stop-color:#B2B2B2" + offset="0.64" /> + <a:midPointstop + style="stop-color:#B2B2B2" + offset="0.5" /> + <a:midPointstop + style="stop-color:#737373" + offset="1" /> + </radialGradient> + <radialGradient + cx="1612.98" + cy="-4.4699998" + r="36.580002" + fx="1612.98" + fy="-4.4699998" + id="rg5884" + xlink:href="#g3288_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" /> + <radialGradient + cx="1470.5" + cy="-10.21" + r="33.290001" + fx="1470.5" + fy="-10.21" + id="g3287_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)"> + <stop + style="stop-color:#e5e5e5;stop-opacity:1" + offset="0" + id="s6347" /> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="0.38999999" + id="s6349" /> + <stop + style="stop-color:#b1b1b1;stop-opacity:1" + offset="0.75" + id="s6351" /> + <stop + style="stop-color:#aaa;stop-opacity:1" + offset="0.88" + id="s6353" /> + <stop + style="stop-color:#9e9e9e;stop-opacity:1" + offset="0.97000003" + id="s6355" /> + <stop + style="stop-color:#999;stop-opacity:1" + offset="1" + id="s6357" /> + <a:midPointstop + style="stop-color:#E5E5E5" + offset="0" /> + <a:midPointstop + style="stop-color:#E5E5E5" + offset="0.5" /> + <a:midPointstop + style="stop-color:#B2B2B2" + offset="0.39" /> + <a:midPointstop + style="stop-color:#B2B2B2" + offset="0.87" /> + <a:midPointstop + style="stop-color:#999999" + offset="1" /> + </radialGradient> + <radialGradient + cx="1470.5" + cy="-10.21" + r="33.290001" + fx="1470.5" + fy="-10.21" + id="rg5887" + xlink:href="#g3287_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" /> + <pattern + patternTransform="matrix(0.592927,0,0,0.592927,78,462)" + id="cream-spots" + height="32" + width="32" + patternUnits="userSpaceOnUse"> + <g + transform="translate(-365.3146,-513.505)" + id="g3047"> + id="path2858" /> + <path + inkscape:label="#path2854" + sodipodi:nodetypes="czzzz" + style="fill:#e3dcc0" + id="path3060" + d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " /> +</g> + </pattern> + <pattern + patternTransform="matrix(0.733751,0,0,0.733751,67,367)" + id="dark-cream-spots" + height="32" + width="32" + patternUnits="userSpaceOnUse"> + <g + transform="translate(-408.0946,-513.505)" + id="dark-cream-spot" + inkscape:label="#g3043"> + <path + sodipodi:nodetypes="czzzz" + style="fill:#c8c5ac" + d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z " + id="path2953" /> + </g> + </pattern> + <pattern + patternTransform="matrix(0.375,0,0,0.375,379,400)" + id="white-spots" + height="32" + width="32" + patternUnits="userSpaceOnUse"> + <g + transform="translate(-484.3997,-513.505)" + id="white-spot" + inkscape:label="#g3035"> + <path + style="opacity:0.25;fill:white" + id="path3033" + d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z " + sodipodi:nodetypes="czzzz" /> + </g> + </pattern> + <pattern + patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)" + id="black-spots" + height="32" + width="32" + patternUnits="userSpaceOnUse"> + <g + transform="translate(-448.3997,-513.505)" + id="black-spot" + inkscape:label="#g3039"> + <path + sodipodi:nodetypes="czzzz" + d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z " + id="path2961" + style="opacity:0.25;fill:black" /> + </g> + </pattern> + <linearGradient + x1="501.0903" + y1="-19.2544" + x2="531.85413" + y2="0.72390002" + id="linearGradient17334" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0" + id="stop17336" /> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0.51120001" + id="stop17338" /> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0.64609998" + id="stop17340" /> + <stop + style="stop-color:#16336e;stop-opacity:1" + offset="1" + id="stop17342" /> + <a:midPointStop + offset="0" + style="stop-color:#B4DAEA" /> + <a:midPointStop + offset="0.5" + style="stop-color:#B4DAEA" /> + <a:midPointStop + offset="0.5112" + style="stop-color:#B4DAEA" /> + <a:midPointStop + offset="0.5" + style="stop-color:#B4DAEA" /> + <a:midPointStop + offset="0.6461" + style="stop-color:#5387BA" /> + <a:midPointStop + offset="0.5" + style="stop-color:#5387BA" /> + <a:midPointStop + offset="1" + style="stop-color:#16336E" /> + </linearGradient> + <linearGradient + x1="415.73831" + y1="11.854" + x2="418.13361" + y2="18.8104" + id="linearGradient17426" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)"> + <stop + style="stop-color:#ccc;stop-opacity:1" + offset="0" + id="stop17428" /> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="1" + id="stop17430" /> + <a:midPointStop + offset="0" + style="stop-color:#CCCCCC" /> + <a:midPointStop + offset="0.5" + style="stop-color:#CCCCCC" /> + <a:midPointStop + offset="1" + style="stop-color:#F2F2F2" /> + </linearGradient> + <linearGradient + x1="478.21341" + y1="-131.9297" + x2="469.85818" + y2="-140.28481" + id="linearGradient17434" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)"> + <stop + style="stop-color:#f3403f;stop-opacity:1" + offset="0" + id="stop17436" /> + <stop + style="stop-color:#d02a28;stop-opacity:1" + offset="0.37889999" + id="stop17438" /> + <stop + style="stop-color:#b21714;stop-opacity:1" + offset="0.77649999" + id="stop17440" /> + <stop + style="stop-color:#a6100c;stop-opacity:1" + offset="1" + id="stop17442" /> + <a:midPointStop + offset="0" + style="stop-color:#F3403F" /> + <a:midPointStop + offset="0.4213" + style="stop-color:#F3403F" /> + <a:midPointStop + offset="1" + style="stop-color:#A6100C" /> + </linearGradient> + <linearGradient + x1="502.70749" + y1="115.3013" + x2="516.39001" + y2="127.1953" + id="linearGradient17709" + xlink:href="#XMLID_1749_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" /> + <linearGradient + x1="506.09909" + y1="-11.5137" + x2="527.99609" + y2="2.7063999" + id="linearGradient17711" + xlink:href="#XMLID_1752_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" /> + <linearGradient + x1="516.57672" + y1="-15.769" + x2="516.57672" + y2="0.84280002" + id="linearGradient17713" + xlink:href="#XMLID_1753_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" /> + <linearGradient + x1="505.62939" + y1="-14.9526" + x2="527.49402" + y2="-0.7536" + id="linearGradient17715" + xlink:href="#XMLID_1756_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" /> + <linearGradient + x1="500.70749" + y1="-13.2441" + x2="513.46442" + y2="-2.1547" + id="linearGradient17717" + xlink:href="#XMLID_1757_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" /> + <linearGradient + x1="473.7681" + y1="209.17529" + x2="486.98099" + y2="213.2001" + id="linearGradient17721" + xlink:href="#XMLID_2274_" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="481.23969" + y1="212.5742" + x2="472.92981" + y2="207.4967" + id="linearGradient17723" + xlink:href="#XMLID_2275_" + gradientUnits="userSpaceOnUse" /> + <linearGradient + x1="500.70749" + y1="-13.2441" + x2="513.46442" + y2="-2.1547" + id="linearGradient17416" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0" + id="stop17418" /> + <stop + style="stop-color:#96bad6;stop-opacity:1" + offset="1" + id="stop17420" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#96BAD6" + offset="1" /> + </linearGradient> + <defs + id="defs9929"> + <path + d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z " + id="XMLID_960_" /> + </defs> + <clipPath + id="clipPath17448"> + <use + id="use17450" + x="0" + y="0" + width="744.09448" + height="600" + xlink:href="#XMLID_960_" /> + </clipPath> + <linearGradient + x1="473.7681" + y1="209.17529" + x2="486.98099" + y2="213.2001" + id="linearGradient17452" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#f3403f;stop-opacity:1" + offset="0" + id="stop17454" /> + <stop + style="stop-color:#d02a28;stop-opacity:1" + offset="0.37889999" + id="stop17456" /> + <stop + style="stop-color:#b21714;stop-opacity:1" + offset="0.77649999" + id="stop17458" /> + <stop + style="stop-color:#a6100c;stop-opacity:1" + offset="1" + id="stop17460" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0.4213" /> + <a:midPointStop + style="stop-color:#A6100C" + offset="1" /> + </linearGradient> + <linearGradient + x1="481.23969" + y1="212.5742" + x2="472.92981" + y2="207.4967" + id="linearGradient17463" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#f3403f;stop-opacity:1" + offset="0" + id="stop17465" /> + <stop + style="stop-color:#d02a28;stop-opacity:1" + offset="0.37889999" + id="stop17467" /> + <stop + style="stop-color:#b21714;stop-opacity:1" + offset="0.77649999" + id="stop17469" /> + <stop + style="stop-color:#a6100c;stop-opacity:1" + offset="1" + id="stop17471" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0" /> + <a:midPointStop + style="stop-color:#F3403F" + offset="0.4213" /> + <a:midPointStop + style="stop-color:#A6100C" + offset="1" /> + </linearGradient> + <linearGradient + x1="481.23969" + y1="212.5742" + x2="472.92981" + y2="207.4967" + id="linearGradient17807" + xlink:href="#XMLID_2275_" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-177.1654,35.43307)" /> + <linearGradient + x1="473.7681" + y1="209.17529" + x2="486.98099" + y2="213.2001" + id="linearGradient17810" + xlink:href="#XMLID_2274_" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-177.1654,35.43307)" /> + <linearGradient + x1="502.70749" + y1="115.3013" + x2="516.39001" + y2="127.1953" + id="linearGradient17812" + xlink:href="#XMLID_1749_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" /> + <linearGradient + x1="506.09909" + y1="-11.5137" + x2="527.99609" + y2="2.7063999" + id="linearGradient17814" + xlink:href="#XMLID_1752_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" /> + <linearGradient + x1="516.57672" + y1="-15.769" + x2="516.57672" + y2="0.84280002" + id="linearGradient17816" + xlink:href="#XMLID_1753_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" /> + <linearGradient + x1="505.62939" + y1="-14.9526" + x2="527.49402" + y2="-0.7536" + id="linearGradient17818" + xlink:href="#XMLID_1756_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" /> + <linearGradient + x1="502.70749" + y1="115.3013" + x2="516.39001" + y2="127.1953" + id="linearGradient17347" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)"> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0" + id="stop17349" /> + <stop + style="stop-color:#96bad6;stop-opacity:1" + offset="1" + id="stop17351" /> + <a:midPointStop + offset="0" + style="stop-color:#5387BA" /> + <a:midPointStop + offset="0.5" + style="stop-color:#5387BA" /> + <a:midPointStop + offset="1" + style="stop-color:#96BAD6" /> + </linearGradient> + <linearGradient + x1="516.57672" + y1="-15.769" + x2="516.57672" + y2="0.84280002" + id="linearGradient17379" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#b2b2b2;stop-opacity:1" + offset="0" + id="stop17381" /> + <stop + style="stop-color:#f2f2f2;stop-opacity:1" + offset="1" + id="stop17383" /> + <a:midPointStop + offset="0" + style="stop-color:#B2B2B2" /> + <a:midPointStop + offset="0.5" + style="stop-color:#B2B2B2" /> + <a:midPointStop + offset="1" + style="stop-color:#F2F2F2" /> + </linearGradient> + <linearGradient + x1="502.70749" + y1="115.3013" + x2="516.39001" + y2="127.1953" + id="linearGradient17862" + xlink:href="#XMLID_1749_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" /> + <linearGradient + x1="505.62939" + y1="-14.9526" + x2="527.49402" + y2="-0.7536" + id="linearGradient17864" + xlink:href="#XMLID_1756_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" /> + <defs + id="defs3859"> + <polygon + points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 " + id="XMLID_343_" /> + </defs> + <linearGradient + x1="471.0806" + y1="201.07761" + x2="481.91711" + y2="210.4977" + id="linearGradient17389" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#6498c1;stop-opacity:1" + offset="0.005618" + id="stop17391" /> + <stop + style="stop-color:#79a9cc;stop-opacity:1" + offset="0.2332" + id="stop17393" /> + <stop + style="stop-color:#a4cde2;stop-opacity:1" + offset="0.74049997" + id="stop17395" /> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="1" + id="stop17397" /> + <a:midPointStop + style="stop-color:#6498C1" + offset="5.618000e-003" /> + <a:midPointStop + style="stop-color:#6498C1" + offset="0.4438" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="1" /> + </linearGradient> + <clipPath + id="clipPath17400"> + <use + id="use17402" + x="0" + y="0" + width="744.09448" + height="600" + xlink:href="#XMLID_343_" /> + </clipPath> + <linearGradient + x1="505.62939" + y1="-14.9526" + x2="527.49402" + y2="-0.7536" + id="linearGradient17404" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0" + id="stop17406" /> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0.51120001" + id="stop17408" /> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0.64609998" + id="stop17410" /> + <stop + style="stop-color:#16336e;stop-opacity:1" + offset="1" + id="stop17412" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5112" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.6461" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#16336E" + offset="1" /> + </linearGradient> + <linearGradient + x1="506.09909" + y1="-11.5137" + x2="527.99609" + y2="2.7063999" + id="linearGradient17882" + xlink:href="#XMLID_1752_" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" /> + <defs + id="defs3826"> + <polygon + points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 " + id="XMLID_338_" /> + </defs> + <linearGradient + x1="468.2915" + y1="204.7612" + x2="479.39871" + y2="214.4166" + id="linearGradient17357" + gradientUnits="userSpaceOnUse"> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0" + id="stop17359" /> + <stop + style="stop-color:#96bad6;stop-opacity:1" + offset="1" + id="stop17361" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#96BAD6" + offset="1" /> + </linearGradient> + <clipPath + id="clipPath17364"> + <use + id="use17366" + x="0" + y="0" + width="744.09448" + height="600" + xlink:href="#XMLID_338_" /> + </clipPath> + <linearGradient + x1="506.09909" + y1="-11.5137" + x2="527.99609" + y2="2.7063999" + id="linearGradient17368" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)"> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0" + id="stop17370" /> + <stop + style="stop-color:#b4daea;stop-opacity:1" + offset="0.51120001" + id="stop17372" /> + <stop + style="stop-color:#5387ba;stop-opacity:1" + offset="0.64609998" + id="stop17374" /> + <stop + style="stop-color:#16336e;stop-opacity:1" + offset="1" + id="stop17376" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5112" /> + <a:midPointStop + style="stop-color:#B4DAEA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.6461" /> + <a:midPointStop + style="stop-color:#5387BA" + offset="0.5" /> + <a:midPointStop + style="stop-color:#16336E" + offset="1" /> + </linearGradient> + <linearGradient + x1="296.4996" + y1="188.81061" + x2="317.32471" + y2="209.69398" + id="linearGradient2387" + xlink:href="#linearGradient2381" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" /> + <linearGradient + x1="296.4996" + y1="188.81061" + x2="317.32471" + y2="209.69398" + id="linearGradient5105" + xlink:href="#linearGradient2381" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" /> + <linearGradient + x1="296.4996" + y1="188.81061" + x2="317.32471" + y2="209.69398" + id="linearGradient5145" + xlink:href="#linearGradient2381" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient2381" + id="linearGradient2371" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" + x1="296.4996" + y1="188.81061" + x2="317.32471" + y2="209.69398" /> + </defs> + <g + transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)" + id="g5089"> + <path + d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z " + transform="translate(282.8327,227.1903)" + style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none" + id="path5091" /> + <rect + width="27.85074" + height="29.369793" + rx="1.1414107" + ry="1.1414107" + x="286.96509" + y="227.63805" + style="fill:#032c87" + id="rect5093" /> + <path + d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z " + style="fill:white" + id="rect5095" /> + <path + d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z " + style="fill:#a70000;fill-opacity:1;stroke-width:2" + id="path5097" /> + <rect + width="25.241802" + height="29.736675" + rx="0.89682275" + ry="0.89682275" + x="290.73544" + y="220.92249" + style="fill:#809cc9" + id="rect5099" /> + <path + d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z " + transform="matrix(0.499065,-0.866565,0,1,0,0)" + style="fill:#4573b3;fill-opacity:1" + id="rect5101" /> + <path + d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z " + style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1" + id="path5103" /> + </g> +</svg> diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/n-t-n-ipsec-diagram.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/n-t-n-ipsec-diagram.png new file mode 100644 index 0000000..281afd6 Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/n-t-n-ipsec-diagram.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/images/tcp_wrap_diagram.png b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/tcp_wrap_diagram.png new file mode 100644 index 0000000..38ee5ea Binary files /dev/null and b/public_html/en-US/Fedora/14/html-single/Security_Guide/images/tcp_wrap_diagram.png differ diff --git a/public_html/en-US/Fedora/14/html-single/Security_Guide/index.html b/public_html/en-US/Fedora/14/html-single/Security_Guide/index.html new file mode 100644 index 0000000..571155f --- /dev/null +++ b/public_html/en-US/Fedora/14/html-single/Security_Guide/index.html @@ -0,0 +1,4299 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Security Guide</title><link rel="stylesheet" href="Common_Content/css/default.css" type="text/css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.1" /><meta name="package" content="Fedora-Security_Guide-14-en-US-14.1-1" /><meta name="description" content="The Fedora Security Guide is designed to assist users of Fedora in learning the processes and practices of securing workstations and servers against local and remote intrusion, exploitation, and malicious activity. Focused on Fedora Linux but detailing concepts and techniques valid for all Linux systems, the Fedora Security Guide details the planning and the tools involved in creating a secured computing environment for the data center, workplace, and home. With proper administrative knowledge, vigilance, and tool s, systems running Linux can be both fully functional and secured from most common intrusion and exploit methods." /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><div xml:lang="en-US" class="book" title="Security Guide" id="id4618122" lang="en-US"><div class="titlepage"><div><div class="producttitle" font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><span class="productname">Fedora</span> <span class="productnumber"></span></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-wei ght="bold" font-size="12pt" text-align="center"><h1 id="id4618122" class="title">Security Guide</h1></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><h2 class="subtitle">A Guide to Securing Fedora Linux</h2></div><p class="edition">Edition 14.1</p><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><h3 class="corpauthor"> + <span class="inlinemediaobject"><object data="Common_Content/images/title_logo.svg" type="image/svg+xml"> Logo</object></span> + + </h3></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><div xml:lang="en-US" class="authorgroup" lang="en-US"><div class="author"><h3 class="author"><span class="firstname">Johnray</span> <span class="surname">Fuller</span></h3><div class="affiliation"><span class="orgname">Red Hat</span></div><code class="email"><a class="email" href="mailto:jrfuller@redhat.com">jrfuller@redhat.com</a></code></div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="surname">Ha</span></h3><div class="affiliation"><span class="orgname">Red Hat</span></div><code class="email"><a class="email" href="mailto:jha@redhat.com">jha@redhat.com</a></code></div><div class="author"><h3 class="author"><span class="firstname">David</span> <span class="surname">O'Brien</span></h3><div class="affiliation"><span class="orgname">Red Hat</span></div><code class="email"><a class="email" href="mailto:daobrien@redhat .com">daobrien@redhat.com</a></code></div><div class="author"><h3 class="author"><span class="firstname">Scott</span> <span class="surname">Radvan</span></h3><div class="affiliation"><span class="orgname">Red Hat</span></div><code class="email"><a class="email" href="mailto:sradvan@redhat.com">sradvan@redhat.com</a></code></div><div class="author"><h3 class="author"><span class="firstname">Eric</span> <span class="surname">Christensen</span></h3><div class="affiliation"><span class="orgname">Fedora Project</span> <span class="orgdiv">Documentation Team</span></div><code class="email"><a class="email" href="mailto:sparks@fedoraproject.org">sparks@fedoraproject.org</a></code></div><div class="author"><h3 class="author"><span class="firstname">Adam</span> <span class="surname">Ligas</span></h3><div class="affiliation"><span class="orgname">Fedora Project</span></div><code class="email"><a class="email" href="mailto:adam@physco.com">adam@physco.com</a></code></div></div></div><h r /><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><div id="id2934842" class="legalnotice"><h1 class="legalnotice">Legal Notice</h1><div class="para"> + Copyright <span class="trademark"></span>© 2010 Red Hat, Inc. + </div><div class="para"> + The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at <a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a>. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. + </div><div class="para"> + Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. + </div><div class="para"> + Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. + </div><div class="para"> + For guidelines on the permitted uses of the Fedora trademarks, refer to <a href="https://fedoraproject.org/wiki/Legal:Trademark_guidelines">https://fedoraproject.org/wiki/Legal:Trademark_guidelines</a>. + </div><div class="para"> + <span class="trademark">Linux</span>® is the registered trademark of Linus Torvalds in the United States and other countries. + </div><div class="para"> + <span class="trademark">Java</span>® is a registered trademark of Oracle and/or its affiliates. + </div><div class="para"> + <span class="trademark">XFS</span>® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. + </div><div class="para"> + All other trademarks are the property of their respective owners. + </div></div></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><div class="abstract" title="Abstract"><h6>Abstract</h6><div class="para"> + The Fedora Security Guide is designed to assist users of Fedora in learning the processes and practices of securing workstations and servers against local and remote intrusion, exploitation, and malicious activity. Focused on Fedora Linux but detailing concepts and techniques valid for all Linux systems, the Fedora Security Guide details the planning and the tools involved in creating a secured computing environment for the data center, workplace, and home. With proper administrative knowledge, vigilance, and tools, systems running Linux can be both fully functional and secured from most common intrusion and exploit methods. + </div></div></div></div><hr /></div><div class="toc"><dl><dt><span class="preface"><a href="#pref-Security_Guide-Preface">Preface</a></span></dt><dd><dl><dt><span class="section"><a href="#id3032066">1. Document Conventions</a></span></dt><dd><dl><dt><span class="section"><a href="#id3032082">1.1. Typographic Conventions</a></span></dt><dt><span class="section"><a href="#id2839145">1.2. Pull-quote Conventions</a></span></dt><dt><span class="section"><a href="#id2914512">1.3. Notes and Warnings</a></span></dt></dl></dd><dt><span class="section"><a href="#We_Need_Feedback">2. We Need Feedback!</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Security_Guide-Security_Overview">1. Security Overview</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security">1.1. Introduction to Security</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security-What_is_Computer_Security">1 .1.1. What is Computer Security?</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security-SELinux">1.1.2. SELinux</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security-Security_Controls">1.1.3. Security Controls</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security-Conclusion">1.1.4. Conclusion</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Vulnerability_Assessment">1.2. Vulnerability Assessment</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Vulnerability_Assessment-Thinking_Like_the_Enemy">1.2.1. Thinking Like the Enemy</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Vulnerability_Assessment-Defining_Assessment_and_Testing">1.2.2. Defining Assessment and Testing</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Vulnerability_Assessment-Evaluatin g_the_Tools">1.2.3. Evaluating the Tools</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities">1.3. Attackers and Vulnerabilities</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities-A_Quick_History_of_Hackers">1.3.1. A Quick History of Hackers</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Network_Security">1.3.2. Threats to Network Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Server_Security">1.3.3. Threats to Server Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Workstation_and_Home_PC_Security">1.3.4. Threats to Workstation and Home PC Security</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Common_Exploits_and_Atta cks">1.4. Common Exploits and Attacks</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Security_Updates">1.5. Security Updates</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Security_Updates-Updating_Packages">1.5.1. Updating Packages</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Updating_Packages-Verifying_Signed_Packages">1.5.2. Verifying Signed Packages</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Updating_Packages-Installing_Signed_Packages">1.5.3. Installing Signed Packages</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Updating_Packages-Applying_the_Changes">1.5.4. Applying the Changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#chap-Security_Guide-Securing_Your_Network">2. Securing Your Network</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security">2.1. Workstation Secu rity</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Evaluating_Workstation_Security">2.1.1. Evaluating Workstation Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-BIOS_and_Boot_Loader_Security">2.1.2. BIOS and Boot Loader Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Password_Security">2.1.3. Password Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Administrative_Controls">2.1.4. Administrative Controls</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Available_Network_Services">2.1.5. Available Network Services</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Personal_Firewalls">2.1.6. Personal Firewalls</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Works tation_Security-Security_Enhanced_Communication_Tools">2.1.7. Security Enhanced Communication Tools</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Server_Security">2.2. Server Security</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_Services_With_TCP_Wrappers_and_xinetd">2.2.1. Securing Services With TCP Wrappers and xinetd</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_Portmap">2.2.2. Securing Portmap</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_NIS">2.2.3. Securing NIS</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_NFS">2.2.4. Securing NFS</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_the_Apache_HTTP_Server">2.2.5. Securing the Apache HTTP Server</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_FTP">2.2.6. Securing FTP</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_Sendmail">2.2.7. Securing Sendmail</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Verifying_Which_Ports_Are_Listening">2.2.8. Verifying Which Ports Are Listening</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO">2.3. Single Sign-on (SSO)</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO-Introduction">2.3.1. Introduction</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO-Getting_Started_with_your_new_Smart_Card">2.3.2. Getting Started with your new Smart Card</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO-How_Smart_Card_Enrollment_Works">2.3.3. How Smart Card Enrollment Works</a></span></ dt><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO-How_Smart_Card_Login_Works">2.3.4. How Smart Card Login Works</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO-Configuring_Firefox_to_use_Kerberos_for_SSO">2.3.5. Configuring Firefox to use Kerberos for SSO</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM">2.4. Pluggable Authentication Modules (PAM)</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Advantages_of_PAM">2.4.1. Advantages of PAM</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_Configuration_Files">2.4.2. PAM Configuration Files</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_Configuration_File_Format">2.4.3. PAM Configuration File Format< /a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Sample_PAM_Configuration_Files">2.4.4. Sample PAM Configuration Files</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Creating_PAM_Modules">2.4.5. Creating PAM Modules</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_and_Administrative_Credential_Caching">2.4.6. PAM and Administrative Credential Caching</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_and_Device_Ownership">2.4.7. PAM and Device Ownership</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Additional_Resources">2.4.8. Additional Resources</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd">2.5. TCP Wrappers and x inetd</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers">2.5.1. TCP Wrappers</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers_Configuration_Files">2.5.2. TCP Wrappers Configuration Files</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-xinetd">2.5.3. xinetd</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-xinetd_Configuration_Files">2.5.4. xinetd Configuration Files</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-Additional_Resources">2.5.5. Additional Resources</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Kerberos">2.6. Kerberos</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-What_is_Kerberos">2.6.1. What is Kerberos?</a></span></dt><dt><sp an class="section"><a href="#sect-Security_Guide-Kerberos-Kerberos_Terminology">2.6.2. Kerberos Terminology</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-How_Kerberos_Works">2.6.3. How Kerberos Works</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Kerberos_and_PAM">2.6.4. Kerberos and PAM</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Configuring_a_Kerberos_5_Server">2.6.5. Configuring a Kerberos 5 Server</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Configuring_a_Kerberos_5_Client">2.6.6. Configuring a Kerberos 5 Client</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Domain_to_Realm_Mapping">2.6.7. Domain-to-Realm Mapping</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Setting_Up_Secondary_KDCs">2.6.8. Setting Up Secondary KDCs</a></span></dt><dt><span class="section"><a href="#se ct-Security_Guide-Kerberos-Setting_Up_Cross_Realm_Authentication">2.6.9. Setting Up Cross Realm Authentication</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Additional_Resources">2.6.10. Additional Resources</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs">2.7. Virtual Private Networks (VPNs)</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-How_Does_a_VPN_Work">2.7.1. How Does a VPN Work?</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-VPNs_and_PROD">2.7.2. VPNs and Fedora</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec">2.7.3. IPsec</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-Creating_an_IPsec_Connection">2.7.4. Creating an <abbr class="abbrev">IPsec</ab br> Connection</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Installation">2.7.5. IPsec Installation</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Host_to_Host_Configuration">2.7.6. IPsec Host-to-Host Configuration</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Network_to_Network_Configuration">2.7.7. IPsec Network-to-Network Configuration</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-Starting_and_Stopping_an_IPsec_Connection">2.7.8. Starting and Stopping an <abbr class="abbrev">IPsec</abbr> Connection</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Firewalls">2.8. Firewalls</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Netfilter_and_IPTables">2.8.1. Netfilter and IPT ables</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Basic_Firewall_Configuration">2.8.2. Basic Firewall Configuration</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Using_IPTables">2.8.3. Using IPTables</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Common_IPTables_Filtering">2.8.4. Common IPTables Filtering</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-FORWARD_and_NAT_Rules">2.8.5. <code class="computeroutput">FORWARD</code> and <acronym class="acronym">NAT</acronym> Rules</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Malicious_Software_and_Spoofed_IP_Addresses">2.8.6. Malicious Software and Spoofed IP Addresses</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-IPTables_and_Connection_Tracking">2.8.7. IPTables and Connection Tracking</a></span></dt><dt><span class="section"
<a href="#sect-Security_Guide-Firewalls-IPv6">2.8.8. IPv6</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Additional_Resources">2.8.9. Additional Resources</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-IPTables">2.9. IPTables</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-IPTables-Packet_Filtering">2.9.1. Packet Filtering</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-IPTables-Command_Options_for_IPTables">2.9.2. Command Options for IPTables</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-IPTables-Saving_IPTables_Rules">2.9.3. Saving IPTables Rules</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-IPTables-IPTables_Control_Scripts">2.9.4. IPTables Control Scripts</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-IPTables-IPTables_and_IPv6">2.9.5. IPTables and IPv6</a></span></dt><dt><span
class="section"><a href="#sect-Security_Guide-IPTables-Additional_Resources">2.9.6. Additional Resources</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#chap-Security_Guide-Encryption">3. Encryption</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Data_at_Rest">3.1. Data at Rest</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Protecting_Data_at_Rest-Full_Disk_Encryption">3.2. Full Disk Encryption</a></span></dt><dt><span class="section"><a href="#Security_Guide-Encryption-Protecting_Data_at_Rest-File_Based_Encryption">3.3. File Based Encryption</a></span></dt><dt><span class="section"><a href="#Security_Guide-Encryption-Data_in_Motion">3.4. Data in Motion</a></span></dt><dt><span class="section"><a href="#Security_Guide-Encryption-Data_in_Motion-Virtual_Private_Networks">3.5. Virtual Private Networks</a></span></dt><dt><span class="section"><a href="#Security_Guide-Encryption-D ata_in_Motion-Secure_Shell">3.6. Secure Shell</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-LUKS_Disk_Encryption">3.7. LUKS Disk Encryption</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-LUKS_Disk_Encryption-LUKS_Implementation_in_Fedora">3.7.1. LUKS Implementation in Fedora</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-LUKS_Disk_Encryption-Manually_Encrypting_Directories">3.7.2. Manually Encrypting Directories</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-LUKS_Disk_Encryption-Manually_Encrypting_Directories-Step_by_Step_Instructions">3.7.3. Step-by-Step Instructions</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-LUKS_Disk_Encryption-Manually_Encrypting_Directories-What_you_have_just_accomplished">3.7.4. What you have just accomplished.</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-LUKS_Disk_Encryption-Links_of_Interest"> 3.7.5. Links of Interest</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Encryption-7_Zip_Encrypted_Archives">3.8. 7-Zip Encrypted Archives</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Encryption-7_Zip_Encrypted_Archives-Installation">3.8.1. 7-Zip Installation in Fedora</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-7_Zip_Encrypted_Archives-Installation-Instructions">3.8.2. Step-by-Step Installation Instructions</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-7_Zip_Encrypted_Archives-Usage_Instructions">3.8.3. Step-by-Step Usage Instructions</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-7_Zip_Encrypted_Archives-Things_of_note">3.8.4. Things of note</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Using_GPG">3.9. Using GNU Privacy Guard (GnuPG)</a></span></dt><dd>< dl><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Using_GPG-Keys_in_GNOME">3.9.1. Generating GPG Keys in GNOME</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Using_GPG-Creating_GPG_Keys_in_KDE1">3.9.2. Generating GPG Keys in KDE</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Using_GPG-Creating_GPG_Keys_in_KDE">3.9.3. Generating GPG Keys Using the Command Line</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Using_GPG-Using_GPG_with_Alpine">3.9.4. Using GPG with Alpine</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Using_GPG-Using_GPG_with_Evolution">3.9.5. Using GPG with Evolution</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Using_GPG-Using_GPG_with_Thunderbird">3.9.6. Using GPG with Thunderbird</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Encryption-Using_G PG-About_Public_Key_Encryption">3.9.7. About Public Key Encryption</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#chap-Security_Guide-General_Principles_of_Information_Security">4. General Principles of Information Security</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-General_Principles_of_Information_Security-Tips_Guides_and_Tools">4.1. Tips, Guides, and Tools</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Security_Guide-Secure_Installation">5. Secure Installation</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Secure_Installation-Disk_Partitions">5.1. Disk Partitions</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Secure_Installation-Utilize_LUKS_Partition_Encryption">5.2. Utilize LUKS Partition Encryption</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Security_Guide-Software_Maintenance">6. Software Maintenance</a></span></d t><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Software_Maintenance-Install_Minimal_Software">6.1. Install Minimal Software</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Software_Maintenance-Plan_and_Configure_Security_Updates">6.2. Plan and Configure Security Updates</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Software_Maintenance-Plan_and_Configure_Security_Updates-Adjusting_Automatic_Updates">6.3. Adjusting Automatic Updates</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Software_Maintenance-Install_Signed_Packages_from_Well_Known_Repositories">6.4. Install Signed Packages from Well Known Repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Security_Guide-CVE">7. Common Vulnerabilities and Exposures</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-CVE-yum_plugin">7.1. YUM Plugin</a></span></dt><dt><span class="section"><a h ref="#sect-Security_Guide-CVE-yum_plugin-using_yum_plugin_security">7.2. Using yum-plugin-security</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Security_Guide-References">8. References</a></span></dt><dt><span class="appendix"><a href="#chap-Security_Guide-Encryption_Standards">A. Encryption Standards</a></span></dt><dd><dl><dt><span class="section"><a href="#id3116812">A.1. Synchronous Encryption</a></span></dt><dd><dl><dt><span class="section"><a href="#id3125933">A.1.1. Advanced Encryption Standard - AES</a></span></dt><dt><span class="section"><a href="#id3889337">A.1.2. Data Encryption Standard - DES</a></span></dt></dl></dd><dt><span class="section"><a href="#id4055366">A.2. Public-key Encryption</a></span></dt><dd><dl><dt><span class="section"><a href="#id4062378">A.2.1. Diffie-Hellman</a></span></dt><dt><span class="section"><a href="#id2872353">A.2.2. RSA</a></span></dt><dt><span class="section"><a href="#id3148161">A.2.3. DSA</a></span></dt><d t><span class="section"><a href="#id3148170">A.2.4. SSL/TLS</a></span></dt><dt><span class="section"><a href="#id2794759">A.2.5. Cramer-Shoup Cryptosystem</a></span></dt><dt><span class="section"><a href="#id2863687">A.2.6. ElGamal Encryption</a></span></dt></dl></dd></dl></dd><dt><span class="appendix"><a href="#appe-Publican-Revision_History">B. Revision History</a></span></dt></dl></div><div xml:lang="en-US" class="preface" title="Preface" id="pref-Security_Guide-Preface" lang="en-US"><div class="titlepage"><div><div><h1 class="title">Preface</h1></div></div></div><div xml:lang="en-US" class="section" title="1. Document Conventions" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="id3032066">1. Document Conventions</h2></div></div></div><div class="para"> + This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information. + </div><div class="para"> + In PDF and paper editions, this manual uses typefaces drawn from the <a href="https://fedorahosted.org/liberation-fonts/">Liberation Fonts</a> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default. + </div><div class="section" title="1.1. Typographic Conventions"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="id3032082">1.1. Typographic Conventions</h3></div></div></div><div class="para"> + Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows. + </div><div class="para"> + <code class="literal">Mono-spaced Bold</code> + </div><div class="para"> + Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example: + </div><div class="blockquote"><blockquote class="blockquote"><div class="para"> + To see the contents of the file <code class="filename">my_next_bestselling_novel</code> in your current working directory, enter the <code class="command">cat my_next_bestselling_novel</code> command at the shell prompt and press <span class="keycap"><strong>Enter</strong></span> to execute the command. + </div></blockquote></div><div class="para"> + The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context. + </div><div class="para"> + Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example: + </div><div class="blockquote"><blockquote class="blockquote"><div class="para"> + Press <span class="keycap"><strong>Enter</strong></span> to execute the command. + </div><div class="para"> + Press <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F1</strong></span> to switch to the first virtual terminal. Press <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F7</strong></span> to return to your X-Windows session. + </div></blockquote></div><div class="para"> + The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously). + </div><div class="para"> + If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <code class="literal">mono-spaced bold</code>. For example: + </div><div class="blockquote"><blockquote class="blockquote"><div class="para"> + File-related classes include <code class="classname">filesystem</code> for file systems, <code class="classname">file</code> for files, and <code class="classname">dir</code> for directories. Each class has its own associated set of permissions. + </div></blockquote></div><div class="para"> + <span class="application"><strong>Proportional Bold</strong></span> + </div><div class="para"> + This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example: + </div><div class="blockquote"><blockquote class="blockquote"><div class="para"> + Choose <span class="guimenu"><strong>System</strong></span> → <span class="guisubmenu"><strong>Preferences</strong></span> → <span class="guimenuitem"><strong>Mouse</strong></span> from the main menu bar to launch <span class="application"><strong>Mouse Preferences</strong></span>. In the <span class="guilabel"><strong>Buttons</strong></span> tab, click the <span class="guilabel"><strong>Left-handed mouse</strong></span> check box and click <span class="guibutton"><strong>Close</strong></span> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand). + </div><div class="para"> + To insert a special character into a <span class="application"><strong>gedit</strong></span> file, choose <span class="guimenu"><strong>Applications</strong></span> → <span class="guisubmenu"><strong>Accessories</strong></span> → <span class="guimenuitem"><strong>Character Map</strong></span> from the main menu bar. Next, choose <span class="guimenu"><strong>Search</strong></span> → <span class="guimenuitem"><strong>Find…</strong></span> from the <span class="application"><strong>Character Map</strong></span> menu bar, type the name of the character in the <span class="guilabel"><strong>Search</strong></span> field and click <span class="guibutton"><strong>Next</strong></span>. The character you sought will be highlighted in the <span class="guilabel"><strong>Character Table</strong></span>. Double-click this highlighted character to place it in the <span class="guilabel"><strong>Text to copy</strong></span> field and then click the <span class="guibutton"><stron g>Copy</strong></span> button. Now switch back to your document and choose <span class="guimenu"><strong>Edit</strong></span> → <span class="guimenuitem"><strong>Paste</strong></span> from the <span class="application"><strong>gedit</strong></span> menu bar. + </div></blockquote></div><div class="para"> + The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context. + </div><div class="para"> + <code class="command"><em class="replaceable"><code>Mono-spaced Bold Italic</code></em></code> or <span class="application"><strong><em class="replaceable"><code>Proportional Bold Italic</code></em></strong></span> + </div><div class="para"> + Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example: + </div><div class="blockquote"><blockquote class="blockquote"><div class="para"> + To connect to a remote machine using ssh, type <code class="command">ssh <em class="replaceable"><code>username</code></em>@<em class="replaceable"><code>domain.name</code></em></code> at a shell prompt. If the remote machine is <code class="filename">example.com</code> and your username on that machine is john, type <code class="command">ssh john@example.com</code>. + </div><div class="para"> + The <code class="command">mount -o remount <em class="replaceable"><code>file-system</code></em></code> command remounts the named file system. For example, to remount the <code class="filename">/home</code> file system, the command is <code class="command">mount -o remount /home</code>. + </div><div class="para"> + To see the version of a currently installed package, use the <code class="command">rpm -q <em class="replaceable"><code>package</code></em></code> command. It will return a result as follows: <code class="command"><em class="replaceable"><code>package-version-release</code></em></code>. + </div></blockquote></div><div class="para"> + Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system. + </div><div class="para"> + Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example: + </div><div class="blockquote"><blockquote class="blockquote"><div class="para"> + Publican is a <em class="firstterm">DocBook</em> publishing system. + </div></blockquote></div></div><div class="section" title="1.2. Pull-quote Conventions"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="id2839145">1.2. Pull-quote Conventions</h3></div></div></div><div class="para"> + Terminal output and source code listings are set off visually from the surrounding text. + </div><div class="para"> + Output sent to a terminal is set in <code class="computeroutput">mono-spaced roman</code> and presented thus: + </div><pre class="screen">books Desktop documentation drafts mss photos stuff svn +books_tests Desktop1 downloads images notes scripts svgs</pre><div class="para"> + Source-code listings are also set in <code class="computeroutput">mono-spaced roman</code> but add syntax highlighting as follows: + </div><pre class="programlisting">package org.<span class="perl_Function">jboss</span>.<span class="perl_Function">book</span>.<span class="perl_Function">jca</span>.<span class="perl_Function">ex1</span>; + +<span class="perl_Keyword">import</span> javax.naming.InitialContext; + +<span class="perl_Keyword">public</span> <span class="perl_Keyword">class</span> ExClient +{ + <span class="perl_Keyword">public</span> <span class="perl_DataType">static</span> <span class="perl_DataType">void</span> <span class="perl_Function">main</span>(String args[]) + <span class="perl_Keyword">throws</span> Exception + { + InitialContext iniCtx = <span class="perl_Keyword">new</span> InitialContext(); + Object ref = iniCtx.<span class="perl_Function">lookup</span>(<span class="perl_String">"EchoBean"</span>); + EchoHome home = (EchoHome) ref; + Echo echo = home.<span class="perl_Function">create</span>(); + + System.<span class="perl_Function">out</span>.<span class="perl_Function">println</span>(<span class="perl_String">"Created Echo"</span>); + + System.<span class="perl_Function">out</span>.<span class="perl_Function">println</span>(<span class="perl_String">"Echo.echo('Hello') = "</span> + echo.<span class="perl_Function">echo</span>(<span class="perl_String">"Hello"</span>)); + } +}</pre></div><div class="section" title="1.3. Notes and Warnings"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="id2914512">1.3. Notes and Warnings</h3></div></div></div><div class="para"> + Finally, we use three visual styles to draw attention to information that might otherwise be overlooked. + </div><div class="note"><h2>Note</h2><div class="para"> + Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier. + </div></div><div class="important"><h2>Important</h2><div class="para"> + Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' won't cause data loss but may cause irritation and frustration. + </div></div><div class="warning"><h2>Warning</h2><div class="para"> + Warnings should not be ignored. Ignoring warnings will most likely cause data loss. + </div></div></div></div><div xml:lang="en-US" class="section" title="2. We Need Feedback!" id="We_Need_Feedback" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="We_Need_Feedback">2. We Need Feedback!</h2></div></div></div><div class="para"> + More information about the Linux Security Guide project can be found at <a href="https://fedorahosted.org/securityguide">https://fedorahosted.org/securityguide</a> + </div><div class="para"> + To provide feedback for the Security Guide, please file a bug in <a href="https://bugzilla.redhat.com/enter_bug.cgi?component=security-guide&product=Fedora%20Documentation">https://bugzilla.redhat.com</a>. Please select the proper component for this guide. + </div></div></div><div xml:lang="en-US" class="chapter" title="Chapter 1. Security Overview" id="chap-Security_Guide-Security_Overview" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 1. Security Overview</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security">1.1. Introduction to Security</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security-What_is_Computer_Security">1.1.1. What is Computer Security?</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security-SELinux">1.1.2. SELinux</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security-Security_Controls">1.1.3. Security Controls</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Introduction_to_Security-Conclusion">1.1.4. Conclusion</a></span></dt></dl></dd><dt><span class="section "><a href="#sect-Security_Guide-Vulnerability_Assessment">1.2. Vulnerability Assessment</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Vulnerability_Assessment-Thinking_Like_the_Enemy">1.2.1. Thinking Like the Enemy</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Vulnerability_Assessment-Defining_Assessment_and_Testing">1.2.2. Defining Assessment and Testing</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Vulnerability_Assessment-Evaluating_the_Tools">1.2.3. Evaluating the Tools</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities">1.3. Attackers and Vulnerabilities</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities-A_Quick_History_of_Hackers">1.3.1. A Quick History of Hackers</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_ to_Network_Security">1.3.2. Threats to Network Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Server_Security">1.3.3. Threats to Server Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Workstation_and_Home_PC_Security">1.3.4. Threats to Workstation and Home PC Security</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Common_Exploits_and_Attacks">1.4. Common Exploits and Attacks</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Security_Updates">1.5. Security Updates</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Security_Updates-Updating_Packages">1.5.1. Updating Packages</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Updating_Packages-Verifying_Signed_Packages">1.5.2. Verifying Signed Packages</a></span></dt><dt><span class ="section"><a href="#sect-Security_Guide-Updating_Packages-Installing_Signed_Packages">1.5.3. Installing Signed Packages</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Updating_Packages-Applying_the_Changes">1.5.4. Applying the Changes</a></span></dt></dl></dd></dl></div><div class="para"> + Because of the increased reliance on powerful, networked computers to help run businesses and keep track of our personal information, entire industries have been formed around the practice of network and computer security. Enterprises have solicited the knowledge and skills of security experts to properly audit systems and tailor solutions to fit the operating requirements of the organization. Because most organizations are increasingly dynamic in nature, with workers accessing company IT resources locally and remotely, the need for secure computing environments has become more pronounced. + </div><div class="para"> + Unfortunately, most organizations (as well as individual users) regard security as an afterthought, a process that is overlooked in favor of increased power, productivity, and budgetary concerns. Proper security implementation is often enacted postmortem — <span class="emphasis"><em>after</em></span> an unauthorized intrusion has already occurred. Security experts agree that taking the correct measures prior to connecting a site to an untrusted network, such as the Internet, is an effective means of thwarting most attempts at intrusion. + </div><div xml:lang="en-US" class="section" title="1.1. Introduction to Security" id="sect-Security_Guide-Introduction_to_Security" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Introduction_to_Security">1.1. Introduction to Security</h2></div></div></div><div class="section" title="1.1.1. What is Computer Security?" id="sect-Security_Guide-Introduction_to_Security-What_is_Computer_Security"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Introduction_to_Security-What_is_Computer_Security">1.1.1. What is Computer Security?</h3></div></div></div><div class="para"> + Computer security is a general term that covers a wide area of computing and information processing. Industries that depend on computer systems and networks to conduct daily business transactions and access crucial information regard their data as an important part of their overall assets. Several terms and metrics have entered our daily business vocabulary, such as total cost of ownership (TCO) and quality of service (QoS). Using these metrics, industries can calculate aspects such as data integrity and high-availability as part of their planning and process management costs. In some industries, such as electronic commerce, the availability and trustworthiness of data can be the difference between success and failure. + </div><div class="section" title="1.1.1.1. How did Computer Security Come about?" id="sect-Security_Guide-What_is_Computer_Security-How_did_Computer_Security_Come_about"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-What_is_Computer_Security-How_did_Computer_Security_Come_about">1.1.1.1. How did Computer Security Come about?</h4></div></div></div><div class="para"> + Information security has evolved over the years due to the increasing reliance on public networks not to disclose personal, financial, and other restricted information. There are numerous instances such as the Mitnick <sup>[<a id="id3076006" href="#ftn.id3076006" class="footnote">1</a>]</sup>and the Vladimir Levin <sup>[<a id="id3062170" href="#ftn.id3062170" class="footnote">2</a>]</sup>cases that prompted organizations across all industries to re-think the way they handle information, as well as its transmission and disclosure. The popularity of the Internet was one of the most important developments that prompted an intensified effort in data security. + </div><div class="para"> + An ever-growing number of people are using their personal computers to gain access to the resources that the Internet has to offer. From research and information retrieval to electronic mail and commerce transaction, the Internet has been regarded as one of the most important developments of the 20th century. + </div><div class="para"> + The Internet and its earlier protocols, however, were developed as a <em class="firstterm">trust-based</em> system. That is, the Internet Protocol was not designed to be secure in itself. There are no approved security standards built into the TCP/IP communications stack, leaving it open to potentially malicious users and processes across the network. Modern developments have made Internet communication more secure, but there are still several incidents that gain national attention and alert us to the fact that nothing is completely safe. + </div></div><div class="section" title="1.1.1.2. Security Today" id="sect-Security_Guide-What_is_Computer_Security-Security_Today"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-What_is_Computer_Security-Security_Today">1.1.1.2. Security Today</h4></div></div></div><div class="para"> + In February of 2000, a Distributed Denial of Service (DDoS) attack was unleashed on several of the most heavily-trafficked sites on the Internet. The attack rendered yahoo.com, cnn.com, amazon.com, fbi.gov, and several other sites completely unreachable to normal users, as it tied up routers for several hours with large-byte ICMP packet transfers, also called a <em class="firstterm">ping flood</em>. The attack was brought on by unknown assailants using specially created, widely available programs that scanned vulnerable network servers, installed client applications called <em class="firstterm">trojans</em> on the servers, and timed an attack with every infected server flooding the victim sites and rendering them unavailable. Many blame the attack on fundamental flaws in the way routers and the protocols used are structured to accept all incoming data, no matter where or for what purpose the packets are sent. + </div><div class="para"> + In 2007, a data breach exploiting the widely-known weaknesses of the Wired Equivalent Privacy (WEP) wireless encryption protocol resulted in the theft from a global financial institution of over 45 million credit card numbers.<sup>[<a id="id3408011" href="#ftn.id3408011" class="footnote">3</a>]</sup> + </div><div class="para"> + In a separate incident, the billing records of over 2.2 million patients stored on a backup tape were stolen from the front seat of a courier's car.<sup>[<a id="id2917747" href="#ftn.id2917747" class="footnote">4</a>]</sup> + </div><div class="para"> + Currently, an estimated 1.8 billion people use or have used the Internet worldwide.<sup>[<a id="id2830730" href="#ftn.id2830730" class="footnote">5</a>]</sup> At the same time: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + On any given day, there are approximately 225 major incidences of security breach reported to the CERT Coordination Center at Carnegie Mellon University.<sup>[<a id="id3158467" href="#ftn.id3158467" class="footnote">6</a>]</sup> + </div></li><li class="listitem"><div class="para"> + In 2003, the number of CERT reported incidences jumped to 137,529 from 82,094 in 2002 and from 52,658 in 2001.<sup>[<a id="id2819712" href="#ftn.id2819712" class="footnote">7</a>]</sup> + </div></li><li class="listitem"><div class="para"> + The worldwide economic impact of the three most dangerous Internet Viruses of the last three years was estimated at US$13.2 Billion.<sup>[<a id="id2931089" href="#ftn.id2931089" class="footnote">8</a>]</sup> + </div></li></ul></div><div class="para"> + From a 2008 global survey of business and technology executives "The Global State of Information Security"<sup>[<a id="id2950718" href="#ftn.id2950718" class="footnote">9</a>]</sup>, undertaken by <span class="emphasis"><em>CIO Magazine</em></span>, some points are: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Just 43% of respondents audit or monitor user compliance with security policies + </div></li><li class="listitem"><div class="para"> + Only 22% keep an inventory of the outside companies that use their data + </div></li><li class="listitem"><div class="para"> + The source of nearly half of security incidents was marked as "Unknown" + </div></li><li class="listitem"><div class="para"> + 44% of respondents plan to increase security spending in the next year + </div></li><li class="listitem"><div class="para"> + 59% have an information security strategy + </div></li></ul></div><div class="para"> + These results enforce the reality that computer security has become a quantifiable and justifiable expense for IT budgets. Organizations that require data integrity and high availability elicit the skills of system administrators, developers, and engineers to ensure 24x7 reliability of their systems, services, and information. Falling victim to malicious users, processes, or coordinated attacks is a direct threat to the success of the organization. + </div><div class="para"> + Unfortunately, system and network security can be a difficult proposition, requiring an intricate knowledge of how an organization regards, uses, manipulates, and transmits its information. Understanding the way an organization (and the people that make up the organization) conducts business is paramount to implementing a proper security plan. + </div></div><div class="section" title="1.1.1.3. Standardizing Security" id="sect-Security_Guide-What_is_Computer_Security-Standardizing_Security"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-What_is_Computer_Security-Standardizing_Security">1.1.1.3. Standardizing Security</h4></div></div></div><div class="para"> + Enterprises in every industry rely on regulations and rules that are set by standards-making bodies such as the American Medical Association (AMA) or the Institute of Electrical and Electronics Engineers (IEEE). The same ideals hold true for information security. Many security consultants and vendors agree upon the standard security model known as CIA, or <em class="firstterm">Confidentiality, Integrity, and Availability</em>. This three-tiered model is a generally accepted component to assessing risks of sensitive information and establishing security policy. The following describes the CIA model in further detail: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Confidentiality — Sensitive information must be available only to a set of pre-defined individuals. Unauthorized transmission and usage of information should be restricted. For example, confidentiality of information ensures that a customer's personal or financial information is not obtained by an unauthorized individual for malicious purposes such as identity theft or credit fraud. + </div></li><li class="listitem"><div class="para"> + Integrity — Information should not be altered in ways that render it incomplete or incorrect. Unauthorized users should be restricted from the ability to modify or destroy sensitive information. + </div></li><li class="listitem"><div class="para"> + Availability — Information should be accessible to authorized users any time that it is needed. Availability is a warranty that information can be obtained with an agreed-upon frequency and timeliness. This is often measured in terms of percentages and agreed to formally in Service Level Agreements (SLAs) used by network service providers and their enterprise clients. + </div></li></ul></div></div></div><div class="section" title="1.1.2. SELinux" id="sect-Security_Guide-Introduction_to_Security-SELinux"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Introduction_to_Security-SELinux">1.1.2. SELinux</h3></div></div></div><div class="para"> + Fedora includes an enhancement to the Linux kernel called SELinux, which implements a Mandatory Access Control (MAC) architecture that provides a fine-grained level of control over files, processes, users and applications in the system. Detailed discussion of SELinux is beyond the scope of this document; however, for more information on SELinux and its use in Fedora, refer to the Fedora SELinux User Guide available at <a href="http://docs.fedoraproject.org/">http://docs.fedoraproject.org/</a>. For more information on configuring and running services in Fedora that are protected by SELinux, refer to the SELinux Managing Confined Services Guide available at <a href="http://docs.fedoraproject.org">http://docs.fedoraproject.org/</a>. Other available resources for SELinux are listed in <a class="xref" href="#chap-Security_Guide-References" title="Chapter 8. References">Chapter 8, <i>References</i></a>. + </div></div><div class="section" title="1.1.3. Security Controls" id="sect-Security_Guide-Introduction_to_Security-Security_Controls"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Introduction_to_Security-Security_Controls">1.1.3. Security Controls</h3></div></div></div><div class="para"> + Computer security is often divided into three distinct master categories, commonly referred to as <em class="wordasword">controls</em>: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Physical + </div></li><li class="listitem"><div class="para"> + Technical + </div></li><li class="listitem"><div class="para"> + Administrative + </div></li></ul></div><div class="para"> + These three broad categories define the main objectives of proper security implementation. Within these controls are sub-categories that further detail the controls and how to implement them. + </div><div class="section" title="1.1.3.1. Physical Controls" id="sect-Security_Guide-Security_Controls-Physical_Controls"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Security_Controls-Physical_Controls">1.1.3.1. Physical Controls</h4></div></div></div><div class="para"> + Physical control is the implementation of security measures in a defined structure used to deter or prevent unauthorized access to sensitive material. Examples of physical controls are: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Closed-circuit surveillance cameras + </div></li><li class="listitem"><div class="para"> + Motion or thermal alarm systems + </div></li><li class="listitem"><div class="para"> + Security guards + </div></li><li class="listitem"><div class="para"> + Picture IDs + </div></li><li class="listitem"><div class="para"> + Locked and dead-bolted steel doors + </div></li><li class="listitem"><div class="para"> + Biometrics (includes fingerprint, voice, face, iris, handwriting, and other automated methods used to recognize individuals) + </div></li></ul></div></div><div class="section" title="1.1.3.2. Technical Controls" id="sect-Security_Guide-Security_Controls-Technical_Controls"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Security_Controls-Technical_Controls">1.1.3.2. Technical Controls</h4></div></div></div><div class="para"> + Technical controls use technology as a basis for controlling the access and usage of sensitive data throughout a physical structure and over a network. Technical controls are far-reaching in scope and encompass such technologies as: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Encryption + </div></li><li class="listitem"><div class="para"> + Smart cards + </div></li><li class="listitem"><div class="para"> + Network authentication + </div></li><li class="listitem"><div class="para"> + Access control lists (ACLs) + </div></li><li class="listitem"><div class="para"> + File integrity auditing software + </div></li></ul></div></div><div class="section" title="1.1.3.3. Administrative Controls" id="sect-Security_Guide-Security_Controls-Administrative_Controls"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Security_Controls-Administrative_Controls">1.1.3.3. Administrative Controls</h4></div></div></div><div class="para"> + Administrative controls define the human factors of security. They involve all levels of personnel within an organization and determine which users have access to what resources and information by such means as: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Training and awareness + </div></li><li class="listitem"><div class="para"> + Disaster preparedness and recovery plans + </div></li><li class="listitem"><div class="para"> + Personnel recruitment and separation strategies + </div></li><li class="listitem"><div class="para"> + Personnel registration and accounting + </div></li></ul></div></div></div><div class="section" title="1.1.4. Conclusion" id="sect-Security_Guide-Introduction_to_Security-Conclusion"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Introduction_to_Security-Conclusion">1.1.4. Conclusion</h3></div></div></div><div class="para"> + Now that you have learned about the origins, reasons, and aspects of security, you will find it easier to determine the appropriate course of action with regard to Fedora. It is important to know what factors and conditions make up security in order to plan and implement a proper strategy. With this information in mind, the process can be formalized and the path becomes clearer as you delve deeper into the specifics of the security process. + </div></div></div><div xml:lang="en-US" class="section" title="1.2. Vulnerability Assessment" id="sect-Security_Guide-Vulnerability_Assessment" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Vulnerability_Assessment">1.2. Vulnerability Assessment</h2></div></div></div><div class="para"> + Given time, resources, and motivation, a cracker can break into nearly any system. At the end of the day, all of the security procedures and technologies currently available cannot guarantee that any systems are completely safe from intrusion. Routers help secure gateways to the Internet. Firewalls help secure the edge of the network. Virtual Private Networks safely pass data in an encrypted stream. Intrusion detection systems warn you of malicious activity. However, the success of each of these technologies is dependent upon a number of variables, including: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + The expertise of the staff responsible for configuring, monitoring, and maintaining the technologies. + </div></li><li class="listitem"><div class="para"> + The ability to patch and update services and kernels quickly and efficiently. + </div></li><li class="listitem"><div class="para"> + The ability of those responsible to keep constant vigilance over the network. + </div></li></ul></div><div class="para"> + Given the dynamic state of data systems and technologies, securing corporate resources can be quite complex. Due to this complexity, it is often difficult to find expert resources for all of your systems. While it is possible to have personnel knowledgeable in many areas of information security at a high level, it is difficult to retain staff who are experts in more than a few subject areas. This is mainly because each subject area of information security requires constant attention and focus. Information security does not stand still. + </div><div class="section" title="1.2.1. Thinking Like the Enemy" id="sect-Security_Guide-Vulnerability_Assessment-Thinking_Like_the_Enemy"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Vulnerability_Assessment-Thinking_Like_the_Enemy">1.2.1. Thinking Like the Enemy</h3></div></div></div><div class="para"> + Suppose that you administer an enterprise network. Such networks are commonly comprised of operating systems, applications, servers, network monitors, firewalls, intrusion detection systems, and more. Now imagine trying to keep current with each of these. Given the complexity of today's software and networking environments, exploits and bugs are a certainty. Keeping current with patches and updates for an entire network can prove to be a daunting task in a large organization with heterogeneous systems. + </div><div class="para"> + Combine the expertise requirements with the task of keeping current, and it is inevitable that adverse incidents occur, systems are breached, data is corrupted, and service is interrupted. + </div><div class="para"> + To augment security technologies and aid in protecting systems, networks, and data, you must think like a cracker and gauge the security of your systems by checking for weaknesses. Preventative vulnerability assessments against your own systems and network resources can reveal potential issues that can be addressed before a cracker exploits it. + </div><div class="para"> + A vulnerability assessment is an internal audit of your network and system security; the results of which indicate the confidentiality, integrity, and availability of your network (as explained in <a class="xref" href="#sect-Security_Guide-What_is_Computer_Security-Standardizing_Security" title="1.1.1.3. Standardizing Security">Section 1.1.1.3, “Standardizing Security”</a>). Typically, vulnerability assessment starts with a reconnaissance phase, during which important data regarding the target systems and resources is gathered. This phase leads to the system readiness phase, whereby the target is essentially checked for all known vulnerabilities. The readiness phase culminates in the reporting phase, where the findings are classified into categories of high, medium, and low risk; and methods for improving the security (or mitigating the risk of vulnerability) of the target are discussed. + </div><div class="para"> + If you were to perform a vulnerability assessment of your home, you would likely check each door to your home to see if they are closed and locked. You would also check every window, making sure that they closed completely and latch correctly. This same concept applies to systems, networks, and electronic data. Malicious users are the thieves and vandals of your data. Focus on their tools, mentality, and motivations, and you can then react swiftly to their actions. + </div></div><div class="section" title="1.2.2. Defining Assessment and Testing" id="sect-Security_Guide-Vulnerability_Assessment-Defining_Assessment_and_Testing"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Vulnerability_Assessment-Defining_Assessment_and_Testing">1.2.2. Defining Assessment and Testing</h3></div></div></div><div class="para"> + Vulnerability assessments may be broken down into one of two types: <em class="firstterm">Outside looking in</em> and <em class="firstterm">inside looking around</em>. + </div><div class="para"> + When performing an outside looking in vulnerability assessment, you are attempting to compromise your systems from the outside. Being external to your company provides you with the cracker's viewpoint. You see what a cracker sees — publicly-routable IP addresses, systems on your <em class="firstterm">DMZ</em>, external interfaces of your firewall, and more. DMZ stands for "demilitarized zone", which corresponds to a computer or small subnetwork that sits between a trusted internal network, such as a corporate private LAN, and an untrusted external network, such as the public Internet. Typically, the DMZ contains devices accessible to Internet traffic, such as Web (HTTP) servers, FTP servers, SMTP (e-mail) servers and DNS servers. + </div><div class="para"> + When you perform an inside looking around vulnerability assessment, you are somewhat at an advantage since you are internal and your status is elevated to trusted. This is the viewpoint you and your co-workers have once logged on to your systems. You see print servers, file servers, databases, and other resources. + </div><div class="para"> + There are striking distinctions between these two types of vulnerability assessments. Being internal to your company gives you elevated privileges more so than any outsider. Still today in most organizations, security is configured in such a manner as to keep intruders out. Very little is done to secure the internals of the organization (such as departmental firewalls, user-level access controls, authentication procedures for internal resources, and more). Typically, there are many more resources when looking around inside as most systems are internal to a company. Once you set yourself outside of the company, you immediately are given an untrusted status. The systems and resources available to you externally are usually very limited. + </div><div class="para"> + Consider the difference between vulnerability assessments and <em class="firstterm">penetration tests</em>. Think of a vulnerability assessment as the first step to a penetration test. The information gleaned from the assessment is used for testing. Whereas the assessment is undertaken to check for holes and potential vulnerabilities, the penetration testing actually attempts to exploit the findings. + </div><div class="para"> + Assessing network infrastructure is a dynamic process. Security, both information and physical, is dynamic. Performing an assessment shows an overview, which can turn up false positives and false negatives. + </div><div class="para"> + Security administrators are only as good as the tools they use and the knowledge they retain. Take any of the assessment tools currently available, run them against your system, and it is almost a guarantee that there are some false positives. Whether by program fault or user error, the result is the same. The tool may find vulnerabilities which in reality do not exist (false positive); or, even worse, the tool may not find vulnerabilities that actually do exist (false negative). + </div><div class="para"> + Now that the difference between a vulnerability assessment and a penetration test is defined, take the findings of the assessment and review them carefully before conducting a penetration test as part of your new best practices approach. + </div><div class="warning"><h2>Warning</h2><div class="para"> + Attempting to exploit vulnerabilities on production resources can have adverse effects to the productivity and efficiency of your systems and network. + </div></div><div class="para"> + The following list examines some of the benefits to performing vulnerability assessments. + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Creates proactive focus on information security + </div></li><li class="listitem"><div class="para"> + Finds potential exploits before crackers find them + </div></li><li class="listitem"><div class="para"> + Results in systems being kept up to date and patched + </div></li><li class="listitem"><div class="para"> + Promotes growth and aids in developing staff expertise + </div></li><li class="listitem"><div class="para"> + Abates financial loss and negative publicity + </div></li></ul></div><div class="section" title="1.2.2.1. Establishing a Methodology" id="sect-Security_Guide-Defining_Assessment_and_Testing-Establishing_a_Methodology"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Defining_Assessment_and_Testing-Establishing_a_Methodology">1.2.2.1. Establishing a Methodology</h4></div></div></div><div class="para"> + To aid in the selection of tools for a vulnerability assessment, it is helpful to establish a vulnerability assessment methodology. Unfortunately, there is no predefined or industry approved methodology at this time; however, common sense and best practices can act as a sufficient guide. + </div><div class="para"> + <span class="emphasis"><em>What is the target? Are we looking at one server, or are we looking at our entire network and everything within the network? Are we external or internal to the company?</em></span> The answers to these questions are important as they help determine not only which tools to select but also the manner in which they are used. + </div><div class="para"> + To learn more about establishing methodologies, refer to the following websites: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <a href="http://www.isecom.org/osstmm/">http://www.isecom.org/osstmm/</a> <em class="citetitle">The Open Source Security Testing Methodology Manual</em> (OSSTMM) + </div></li><li class="listitem"><div class="para"> + <a href="http://www.owasp.org/">http://www.owasp.org/</a> <em class="citetitle">The Open Web Application Security Project</em> + </div></li></ul></div></div></div><div class="section" title="1.2.3. Evaluating the Tools" id="sect-Security_Guide-Vulnerability_Assessment-Evaluating_the_Tools"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Vulnerability_Assessment-Evaluating_the_Tools">1.2.3. Evaluating the Tools</h3></div></div></div><div class="para"> + An assessment can start by using some form of an information gathering tool. When assessing the entire network, map the layout first to find the hosts that are running. Once located, examine each host individually. Focusing on these hosts requires another set of tools. Knowing which tools to use may be the most crucial step in finding vulnerabilities. + </div><div class="para"> + Just as in any aspect of everyday life, there are many different tools that perform the same job. This concept applies to performing vulnerability assessments as well. There are tools specific to operating systems, applications, and even networks (based on the protocols used). Some tools are free; others are not. Some tools are intuitive and easy to use, while others are cryptic and poorly documented but have features that other tools do not. + </div><div class="para"> + Finding the right tools may be a daunting task and in the end, experience counts. If possible, set up a test lab and try out as many tools as you can, noting the strengths and weaknesses of each. Review the README file or man page for the tool. Additionally, look to the Internet for more information, such as articles, step-by-step guides, or even mailing lists specific to a tool. + </div><div class="para"> + The tools discussed below are just a small sampling of the available tools. + </div><div class="section" title="1.2.3.1. Scanning Hosts with Nmap" id="sect-Security_Guide-Evaluating_the_Tools-Scanning_Hosts_with_Nmap"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Evaluating_the_Tools-Scanning_Hosts_with_Nmap">1.2.3.1. Scanning Hosts with Nmap</h4></div></div></div><div class="para"> + Nmap is a popular tool included in Fedora that can be used to determine the layout of a network. Nmap has been available for many years and is probably the most often used tool when gathering information. An excellent man page is included that provides a detailed description of its options and usage. Administrators can use Nmap on a network to find host systems and open ports on those systems. + </div><div class="para"> + Nmap is a competent first step in vulnerability assessment. You can map out all the hosts within your network and even pass an option that allows Nmap to attempt to identify the operating system running on a particular host. Nmap is a good foundation for establishing a policy of using secure services and stopping unused services. + </div><div class="section" title="1.2.3.1.1. Using Nmap" id="sect-Security_Guide-Scanning_Hosts_with_Nmap-Using_Nmap"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Scanning_Hosts_with_Nmap-Using_Nmap">1.2.3.1.1. Using Nmap</h5></div></div></div><div class="para"> + Nmap can be run from a shell prompt by typing the <code class="command">nmap</code> command followed by the hostname or IP address of the machine to scan. + </div><pre class="screen"><code class="command">nmap foo.example.com</code></pre><div class="para"> + The results of a basic scan (which could take up to a few minutes, depending on where the host is located and other network conditions) should look similar to the following: + </div><pre class="screen"> +Starting Nmap 4.68 ( http://nmap.org ) +Interesting ports on foo.example.com: +Not shown: 1710 filtered ports +PORT STATE SERVICE +22/tcp open ssh +53/tcp open domain +70/tcp closed gopher +80/tcp open http +113/tcp closed auth</pre><div class="para"> + Nmap tests the most common network communication ports for listening or waiting services. This knowledge can be helpful to an administrator who wants to close down unnecessary or unused services. + </div><div class="para"> + For more information about using Nmap, refer to the official homepage at the following URL: + </div><div class="para"> + <a href="http://www.insecure.org/">http://www.insecure.org/</a> + </div></div></div><div class="section" title="1.2.3.2. Nessus" id="sect-Security_Guide-Evaluating_the_Tools-Nessus"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Evaluating_the_Tools-Nessus">1.2.3.2. Nessus</h4></div></div></div><div class="para"> + Nessus is a full-service security scanner. The plug-in architecture of Nessus allows users to customize it for their systems and networks. As with any scanner, Nessus is only as good as the signature database it relies upon. Fortunately, Nessus is frequently updated and features full reporting, host scanning, and real-time vulnerability searches. Remember that there could be false positives and false negatives, even in a tool as powerful and as frequently updated as Nessus. + </div><div class="note"><h2>Note</h2><div class="para"> + The Nessus client and server software is included in Fedora repositories but requires a subscription to use. It has been included in this document as a reference to users who may be interested in using this popular application. + </div></div><div class="para"> + For more information about Nessus, refer to the official website at the following URL: + </div><div class="para"> + <a href="http://www.nessus.org/">http://www.nessus.org/</a> + </div></div><div class="section" title="1.2.3.3. Nikto" id="sect-Security_Guide-Evaluating_the_Tools-Nikto"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Evaluating_the_Tools-Nikto">1.2.3.3. Nikto</h4></div></div></div><div class="para"> + Nikto is an excellent common gateway interface (CGI) script scanner. Nikto not only checks for CGI vulnerabilities but does so in an evasive manner, so as to elude intrusion detection systems. It comes with thorough documentation which should be carefully reviewed prior to running the program. If you have Web servers serving up CGI scripts, Nikto can be an excellent resource for checking the security of these servers. + </div><div class="para"> + More information about Nikto can be found at the following URL: + </div><div class="para"> + <a href="http://www.cirt.net/code/nikto.shtml">http://www.cirt.net/code/nikto.shtml</a> + </div></div><div class="section" title="1.2.3.4. VLAD the Scanner" id="sect-Security_Guide-Evaluating_the_Tools-VLAD_the_Scanner"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Evaluating_the_Tools-VLAD_the_Scanner">1.2.3.4. VLAD the Scanner</h4></div></div></div><div class="para"> + VLAD is a vulnerabilities scanner developed by the <acronym class="acronym">RAZOR</acronym> team at Bindview, Inc., which checks for the SANS Top Ten list of common security issues (SNMP issues, file sharing issues, etc.). While not as full-featured as Nessus, VLAD is worth investigating. + </div><div class="note"><h2>Note</h2><div class="para"> + VLAD is not included with Fedora and is not supported. It has been included in this document as a reference to users who may be interested in using this popular application. + </div></div><div class="para"> + More information about VLAD can be found on the RAZOR team website at the following URL: + </div><div class="para"> + <a href="http://www.bindview.com/Support/Razor/Utilities/">http://www.bindview.com/Support/Razor/Utilities/</a> + </div></div><div class="section" title="1.2.3.5. Anticipating Your Future Needs" id="sect-Security_Guide-Evaluating_the_Tools-Anticipating_Your_Future_Needs"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Evaluating_the_Tools-Anticipating_Your_Future_Needs">1.2.3.5. Anticipating Your Future Needs</h4></div></div></div><div class="para"> + Depending upon your target and resources, there are many tools available. There are tools for wireless networks, Novell networks, Windows systems, Linux systems, and more. Another essential part of performing assessments may include reviewing physical security, personnel screening, or voice/PBX network assessment. New concepts, such as <em class="firstterm">war walking</em>, which involves scanning the perimeter of your enterprise's physical structures for wireless network vulnerabilities, are some emerging concepts that you can investigate and, if needed, incorporate into your assessments. Imagination and exposure are the only limits of planning and conducting vulnerability assessments. + </div></div></div></div><div xml:lang="en-US" class="section" title="1.3. Attackers and Vulnerabilities" id="sect-Security_Guide-Attackers_and_Vulnerabilities" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Attackers_and_Vulnerabilities">1.3. Attackers and Vulnerabilities</h2></div></div></div><div class="para"> + To plan and implement a good security strategy, first be aware of some of the issues which determined, motivated attackers exploit to compromise systems. However, before detailing these issues, the terminology used when identifying an attacker must be defined. + </div><div class="section" title="1.3.1. A Quick History of Hackers" id="sect-Security_Guide-Attackers_and_Vulnerabilities-A_Quick_History_of_Hackers"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Attackers_and_Vulnerabilities-A_Quick_History_of_Hackers">1.3.1. A Quick History of Hackers</h3></div></div></div><div class="para"> + The modern meaning of the term <em class="firstterm">hacker</em> has origins dating back to the 1960s and the Massachusetts Institute of Technology (MIT) Tech Model Railroad Club, which designed train sets of large scale and intricate detail. Hacker was a name used for club members who discovered a clever trick or workaround for a problem. + </div><div class="para"> + The term hacker has since come to describe everything from computer buffs to gifted programmers. A common trait among most hackers is a willingness to explore in detail how computer systems and networks function with little or no outside motivation. Open source software developers often consider themselves and their colleagues to be hackers, and use the word as a term of respect. + </div><div class="para"> + Typically, hackers follow a form of the <em class="firstterm">hacker ethic</em> which dictates that the quest for information and expertise is essential, and that sharing this knowledge is the hackers duty to the community. During this quest for knowledge, some hackers enjoy the academic challenges of circumventing security controls on computer systems. For this reason, the press often uses the term hacker to describe those who illicitly access systems and networks with unscrupulous, malicious, or criminal intent. The more accurate term for this type of computer hacker is <em class="firstterm">cracker</em> — a term created by hackers in the mid-1980s to differentiate the two communities. + </div><div class="section" title="1.3.1.1. Shades of Gray" id="sect-Security_Guide-A_Quick_History_of_Hackers-Shades_of_Gray"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-A_Quick_History_of_Hackers-Shades_of_Gray">1.3.1.1. Shades of Gray</h4></div></div></div><div class="para"> + Within the community of individuals who find and exploit vulnerabilities in systems and networks are several distinct groups. These groups are often described by the shade of hat that they "wear" when performing their security investigations and this shade is indicative of their intent. + </div><div class="para"> + The <em class="firstterm">white hat hacker</em> is one who tests networks and systems to examine their performance and determine how vulnerable they are to intrusion. Usually, white hat hackers crack their own systems or the systems of a client who has specifically employed them for the purposes of security auditing. Academic researchers and professional security consultants are two examples of white hat hackers. + </div><div class="para"> + A <em class="firstterm">black hat hacker</em> is synonymous with a cracker. In general, crackers are less focused on programming and the academic side of breaking into systems. They often rely on available cracking programs and exploit well known vulnerabilities in systems to uncover sensitive information for personal gain or to inflict damage on the target system or network. + </div><div class="para"> + The <em class="firstterm">gray hat hacker</em>, on the other hand, has the skills and intent of a white hat hacker in most situations but uses his knowledge for less than noble purposes on occasion. A gray hat hacker can be thought of as a white hat hacker who wears a black hat at times to accomplish his own agenda. + </div><div class="para"> + Gray hat hackers typically subscribe to another form of the hacker ethic, which says it is acceptable to break into systems as long as the hacker does not commit theft or breach confidentiality. Some would argue, however, that the act of breaking into a system is in itself unethical. + </div><div class="para"> + Regardless of the intent of the intruder, it is important to know the weaknesses a cracker may likely attempt to exploit. The remainder of the chapter focuses on these issues. + </div></div></div><div class="section" title="1.3.2. Threats to Network Security" id="sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Network_Security"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Network_Security">1.3.2. Threats to Network Security</h3></div></div></div><div class="para"> + Bad practices when configuring the following aspects of a network can increase the risk of attack. + </div><div class="section" title="1.3.2.1. Insecure Architectures" id="sect-Security_Guide-Threats_to_Network_Security-Insecure_Architectures"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Threats_to_Network_Security-Insecure_Architectures">1.3.2.1. Insecure Architectures</h4></div></div></div><div class="para"> + A misconfigured network is a primary entry point for unauthorized users. Leaving a trust-based, open local network vulnerable to the highly-insecure Internet is much like leaving a door ajar in a crime-ridden neighborhood — nothing may happen for an arbitrary amount of time, but <span class="emphasis"><em>eventually</em></span> someone exploits the opportunity. + </div><div class="section" title="1.3.2.1.1. Broadcast Networks" id="sect-Security_Guide-Insecure_Architectures-Broadcast_Networks"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Insecure_Architectures-Broadcast_Networks">1.3.2.1.1. Broadcast Networks</h5></div></div></div><div class="para"> + System administrators often fail to realize the importance of networking hardware in their security schemes. Simple hardware such as hubs and routers rely on the broadcast or non-switched principle; that is, whenever a node transmits data across the network to a recipient node, the hub or router sends a broadcast of the data packets until the recipient node receives and processes the data. This method is the most vulnerable to address resolution protocol (<em class="firstterm">ARP</em>) or media access control (<em class="firstterm">MAC</em>) address spoofing by both outside intruders and unauthorized users on local hosts. + </div></div><div class="section" title="1.3.2.1.2. Centralized Servers" id="sect-Security_Guide-Insecure_Architectures-Centralized_Servers"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Insecure_Architectures-Centralized_Servers">1.3.2.1.2. Centralized Servers</h5></div></div></div><div class="para"> + Another potential networking pitfall is the use of centralized computing. A common cost-cutting measure for many businesses is to consolidate all services to a single powerful machine. This can be convenient as it is easier to manage and costs considerably less than multiple-server configurations. However, a centralized server introduces a single point of failure on the network. If the central server is compromised, it may render the network completely useless or worse, prone to data manipulation or theft. In these situations, a central server becomes an open door which allows access to the entire network. + </div></div></div></div><div class="section" title="1.3.3. Threats to Server Security" id="sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Server_Security"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Server_Security">1.3.3. Threats to Server Security</h3></div></div></div><div class="para"> + Server security is as important as network security because servers often hold a great deal of an organization's vital information. If a server is compromised, all of its contents may become available for the cracker to steal or manipulate at will. The following sections detail some of the main issues. + </div><div class="section" title="1.3.3.1. Unused Services and Open Ports" id="sect-Security_Guide-Threats_to_Server_Security-Unused_Services_and_Open_Ports"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Threats_to_Server_Security-Unused_Services_and_Open_Ports">1.3.3.1. Unused Services and Open Ports</h4></div></div></div><div class="para"> + A full installation of Fedora contains 1000+ application and library packages. However, most server administrators do not opt to install every single package in the distribution, preferring instead to install a base installation of packages, including several server applications. + </div><div class="para"> + A common occurrence among system administrators is to install the operating system without paying attention to what programs are actually being installed. This can be problematic because unneeded services may be installed, configured with the default settings, and possibly turned on. This can cause unwanted services, such as Telnet, DHCP, or DNS, to run on a server or workstation without the administrator realizing it, which in turn can cause unwanted traffic to the server, or even, a potential pathway into the system for crackers. Refer To <a class="xref" href="#sect-Security_Guide-Server_Security" title="2.2. Server Security">Section 2.2, “Server Security”</a> for information on closing ports and disabling unused services. + </div></div><div class="section" title="1.3.3.2. Unpatched Services" id="sect-Security_Guide-Threats_to_Server_Security-Unpatched_Services"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Threats_to_Server_Security-Unpatched_Services">1.3.3.2. Unpatched Services</h4></div></div></div><div class="para"> + Most server applications that are included in a default installation are solid, thoroughly tested pieces of software. Having been in use in production environments for many years, their code has been thoroughly refined and many of the bugs have been found and fixed. + </div><div class="para"> + However, there is no such thing as perfect software and there is always room for further refinement. Moreover, newer software is often not as rigorously tested as one might expect, because of its recent arrival to production environments or because it may not be as popular as other server software. + </div><div class="para"> + Developers and system administrators often find exploitable bugs in server applications and publish the information on bug tracking and security-related websites such as the Bugtraq mailing list (<a href="http://www.securityfocus.com">http://www.securityfocus.com</a>) or the Computer Emergency Response Team (CERT) website (<a href="http://www.cert.org">http://www.cert.org</a>). Although these mechanisms are an effective way of alerting the community to security vulnerabilities, it is up to system administrators to patch their systems promptly. This is particularly true because crackers have access to these same vulnerability tracking services and will use the information to crack unpatched systems whenever they can. Good system administration requires vigilance, constant bug tracking, and proper system maintenance to ensure a more secure computing environment. + </div><div class="para"> + Refer to <a class="xref" href="#sect-Security_Guide-Security_Updates" title="1.5. Security Updates">Section 1.5, “Security Updates”</a> for more information about keeping a system up-to-date. + </div></div><div class="section" title="1.3.3.3. Inattentive Administration" id="sect-Security_Guide-Threats_to_Server_Security-Inattentive_Administration"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Threats_to_Server_Security-Inattentive_Administration">1.3.3.3. Inattentive Administration</h4></div></div></div><div class="para"> + Administrators who fail to patch their systems are one of the greatest threats to server security. According to the <em class="firstterm">SysAdmin, Audit, Network, Security Institute</em> (<em class="firstterm">SANS</em>), the primary cause of computer security vulnerability is to "assign untrained people to maintain security and provide neither the training nor the time to make it possible to do the job."<sup>[<a id="id2865801" href="#ftn.id2865801" class="footnote">10</a>]</sup> This applies as much to inexperienced administrators as it does to overconfident or amotivated administrators. + </div><div class="para"> + Some administrators fail to patch their servers and workstations, while others fail to watch log messages from the system kernel or network traffic. Another common error is when default passwords or keys to services are left unchanged. For example, some databases have default administration passwords because the database developers assume that the system administrator changes these passwords immediately after installation. If a database administrator fails to change this password, even an inexperienced cracker can use a widely-known default password to gain administrative privileges to the database. These are only a few examples of how inattentive administration can lead to compromised servers. + </div></div><div class="section" title="1.3.3.4. Inherently Insecure Services" id="sect-Security_Guide-Threats_to_Server_Security-Inherently_Insecure_Services"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Threats_to_Server_Security-Inherently_Insecure_Services">1.3.3.4. Inherently Insecure Services</h4></div></div></div><div class="para"> + Even the most vigilant organization can fall victim to vulnerabilities if the network services they choose are inherently insecure. For instance, there are many services developed under the assumption that they are used over trusted networks; however, this assumption fails as soon as the service becomes available over the Internet — which is itself inherently untrusted. + </div><div class="para"> + One category of insecure network services are those that require unencrypted usernames and passwords for authentication. Telnet and FTP are two such services. If packet sniffing software is monitoring traffic between the remote user and such a service usernames and passwords can be easily intercepted. + </div><div class="para"> + Inherently, such services can also more easily fall prey to what the security industry terms the <em class="firstterm">man-in-the-middle</em> attack. In this type of attack, a cracker redirects network traffic by tricking a cracked name server on the network to point to his machine instead of the intended server. Once someone opens a remote session to the server, the attacker's machine acts as an invisible conduit, sitting quietly between the remote service and the unsuspecting user capturing information. In this way a cracker can gather administrative passwords and raw data without the server or the user realizing it. + </div><div class="para"> + Another category of insecure services include network file systems and information services such as NFS or NIS, which are developed explicitly for LAN usage but are, unfortunately, extended to include WANs (for remote users). NFS does not, by default, have any authentication or security mechanisms configured to prevent a cracker from mounting the NFS share and accessing anything contained therein. NIS, as well, has vital information that must be known by every computer on a network, including passwords and file permissions, within a plain text ASCII or DBM (ASCII-derived) database. A cracker who gains access to this database can then access every user account on a network, including the administrator's account. + </div><div class="para"> + By default, Fedora is released with all such services turned off. However, since administrators often find themselves forced to use these services, careful configuration is critical. Refer to <a class="xref" href="#sect-Security_Guide-Server_Security" title="2.2. Server Security">Section 2.2, “Server Security”</a> for more information about setting up services in a safe manner. + </div></div></div><div class="section" title="1.3.4. Threats to Workstation and Home PC Security" id="sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Workstation_and_Home_PC_Security"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Attackers_and_Vulnerabilities-Threats_to_Workstation_and_Home_PC_Security">1.3.4. Threats to Workstation and Home PC Security</h3></div></div></div><div class="para"> + Workstations and home PCs may not be as prone to attack as networks or servers, but since they often contain sensitive data, such as credit card information, they are targeted by system crackers. Workstations can also be co-opted without the user's knowledge and used by attackers as "slave" machines in coordinated attacks. For these reasons, knowing the vulnerabilities of a workstation can save users the headache of reinstalling the operating system, or worse, recovering from data theft. + </div><div class="section" title="1.3.4.1. Bad Passwords" id="sect-Security_Guide-Threats_to_Workstation_and_Home_PC_Security-Bad_Passwords"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Threats_to_Workstation_and_Home_PC_Security-Bad_Passwords">1.3.4.1. Bad Passwords</h4></div></div></div><div class="para"> + Bad passwords are one of the easiest ways for an attacker to gain access to a system. For more on how to avoid common pitfalls when creating a password, refer to <a class="xref" href="#sect-Security_Guide-Workstation_Security-Password_Security" title="2.1.3. Password Security">Section 2.1.3, “Password Security”</a>. + </div></div><div class="section" title="1.3.4.2. Vulnerable Client Applications" id="sect-Security_Guide-Threats_to_Workstation_and_Home_PC_Security-Vulnerable_Client_Applications"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Threats_to_Workstation_and_Home_PC_Security-Vulnerable_Client_Applications">1.3.4.2. Vulnerable Client Applications</h4></div></div></div><div class="para"> + Although an administrator may have a fully secure and patched server, that does not mean remote users are secure when accessing it. For instance, if the server offers Telnet or FTP services over a public network, an attacker can capture the plain text usernames and passwords as they pass over the network, and then use the account information to access the remote user's workstation. + </div><div class="para"> + Even when using secure protocols, such as SSH, a remote user may be vulnerable to certain attacks if they do not keep their client applications updated. For instance, v.1 SSH clients are vulnerable to an X-forwarding attack from malicious SSH servers. Once connected to the server, the attacker can quietly capture any keystrokes and mouse clicks made by the client over the network. This problem was fixed in the v.2 SSH protocol, but it is up to the user to keep track of what applications have such vulnerabilities and update them as necessary. + </div><div class="para"> + <a class="xref" href="#sect-Security_Guide-Workstation_Security" title="2.1. Workstation Security">Section 2.1, “Workstation Security”</a> discusses in more detail what steps administrators and home users should take to limit the vulnerability of computer workstations. + </div></div></div></div><div xml:lang="en-US" class="section" title="1.4. Common Exploits and Attacks" id="sect-Security_Guide-Common_Exploits_and_Attacks" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Common_Exploits_and_Attacks">1.4. Common Exploits and Attacks</h2></div></div></div><div class="para"> + <a class="xref" href="#tabl-Security_Guide-Common_Exploits_and_Attacks-Common_Exploits" title="Table 1.1. Common Exploits">Table 1.1, “Common Exploits”</a> details some of the most common exploits and entry points used by intruders to access organizational network resources. Key to these common exploits are the explanations of how they are performed and how administrators can properly safeguard their network against such attacks. + </div><div class="table" title="Table 1.1. Common Exploits" id="tabl-Security_Guide-Common_Exploits_and_Attacks-Common_Exploits"><div class="table-contents"><table summary="Common Exploits" border="1"><colgroup><col width="20%" /><col width="40%" /><col width="40%" /></colgroup><thead><tr><th> + Exploit + </th><th> + Description + </th><th> + Notes + </th></tr></thead><tbody><tr><td> + Null or Default Passwords + </td><td> + Leaving administrative passwords blank or using a default password set by the product vendor. This is most common in hardware such as routers and firewalls, though some services that run on Linux can contain default administrator passwords (though Fedora 12 does not ship with them). + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Commonly associated with networking hardware such as routers, firewalls, VPNs, and network attached storage (NAS) appliances. </td></tr><tr><td> Common in many legacy operating systems, especially those that bundle services (such as UNIX and Windows.) </td></tr><tr><td> Administrators sometimes create privileged user accounts in a rush and leave the password null, creating a perfect entry point for malicious users who discover the account. </td></tr></table> + + </td></tr><tr><td> + Default Shared Keys + </td><td> + Secure services sometimes package default security keys for development or evaluation testing purposes. If these keys are left unchanged and are placed in a production environment on the Internet, <span class="emphasis"><em>all</em></span> users with the same default keys have access to that shared-key resource, and any sensitive information that it contains. + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Most common in wireless access points and preconfigured secure server appliances. </td></tr></table> + + </td></tr><tr><td> + IP Spoofing + </td><td> + A remote machine acts as a node on your local network, finds vulnerabilities with your servers, and installs a backdoor program or trojan horse to gain control over your network resources. + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Spoofing is quite difficult as it involves the attacker predicting TCP/IP sequence numbers to coordinate a connection to target systems, but several tools are available to assist crackers in performing such a vulnerability. </td></tr><tr><td> Depends on target system running services (such as <code class="command">rsh</code>, <code class="command">telnet</code>, FTP and others) that use <em class="firstterm">source-based</em> authentication techniques, which are not recommended when compared to PKI or other forms of encrypted authentication used in <code class="command">ssh</code> or SSL/TLS. </td></tr></table> + + </td></tr><tr><td> + Eavesdropping + </td><td> + Collecting data that passes between two active nodes on a network by eavesdropping on the connection between the two nodes. + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> This type of attack works mostly with plain text transmission protocols such as Telnet, FTP, and HTTP transfers. </td></tr><tr><td> Remote attacker must have access to a compromised system on a LAN in order to perform such an attack; usually the cracker has used an active attack (such as IP spoofing or man-in-the-middle) to compromise a system on the LAN. </td></tr><tr><td> Preventative measures include services with cryptographic key exchange, one-time passwords, or encrypted authentication to prevent password snooping; strong encryption during transmission is also advised. </td></tr></table> + + </td></tr><tr><td> + Service Vulnerabilities + </td><td> + An attacker finds a flaw or loophole in a service run over the Internet; through this vulnerability, the attacker compromises the entire system and any data that it may hold, and could possibly compromise other systems on the network. + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> HTTP-based services such as CGI are vulnerable to remote command execution and even interactive shell access. Even if the HTTP service runs as a non-privileged user such as "nobody", information such as configuration files and network maps can be read, or the attacker can start a denial of service attack which drains system resources or renders it unavailable to other users. </td></tr><tr><td> Services sometimes can have vulnerabilities that go unnoticed during development and testing; these vulnerabilities (such as <em class="firstterm">buffer overflows</em>, where attackers crash a service using arbitary values that fill the memory buffer of an application, giving the attacker an interactive command prompt from which they may execute arbitrary commands) can give complete administrative control to an attacker. </td></tr><tr><td> Administrators should make sure that services do not run as the root user , and should stay vigilant of patches and errata updates for applications from vendors or security organizations such as CERT and CVE. </td></tr></table> + + </td></tr><tr><td> + Application Vulnerabilities + </td><td> + Attackers find faults in desktop and workstation applications (such as e-mail clients) and execute arbitrary code, implant trojan horses for future compromise, or crash systems. Further exploitation can occur if the compromised workstation has administrative privileges on the rest of the network. + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Workstations and desktops are more prone to exploitation as workers do not have the expertise or experience to prevent or detect a compromise; it is imperative to inform individuals of the risks they are taking when they install unauthorized software or open unsolicited email attachments. </td></tr><tr><td> Safeguards can be implemented such that email client software does not automatically open or execute attachments. Additionally, the automatic update of workstation software via Red Hat Network or other system management services can alleviate the burdens of multi-seat security deployments. </td></tr></table> + + </td></tr><tr><td> + Denial of Service (DoS) Attacks + </td><td> + Attacker or group of attackers coordinate against an organization's network or server resources by sending unauthorized packets to the target host (either server, router, or workstation). This forces the resource to become unavailable to legitimate users. + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> The most reported DoS case in the US occurred in 2000. Several highly-trafficked commercial and government sites were rendered unavailable by a coordinated ping flood attack using several compromised systems with high bandwidth connections acting as <em class="firstterm">zombies</em>, or redirected broadcast nodes. </td></tr><tr><td> Source packets are usually forged (as well as rebroadcasted), making investigation as to the true source of the attack difficult. </td></tr><tr><td> Advances in ingress filtering (IETF rfc2267) using <code class="command">iptables</code> and Network Intrusion Detection Systems such as <code class="command">snort</code> assist administrators in tracking down and preventing distributed DoS attacks. </td></tr></table> + + </td></tr></tbody></table></div><h6>Table 1.1. Common Exploits</h6></div><br class="table-break" /></div><div xml:lang="en-US" class="section" title="1.5. Security Updates" id="sect-Security_Guide-Security_Updates" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Security_Updates">1.5. Security Updates</h2></div></div></div><div class="para"> + As security vulnerabilities are discovered, the affected software must be updated in order to limit any potential security risks. If the software is part of a package within a Fedora distribution that is currently supported, Fedora is committed to releasing updated packages that fix the vulnerability as soon as is possible. Often, announcements about a given security exploit are accompanied with a patch (or source code that fixes the problem). This patch is then applied to the Fedora package and tested and released as an errata update. However, if an announcement does not include a patch, a developer first works with the maintainer of the software to fix the problem. Once the problem is fixed, the package is tested and released as an errata update. + </div><div class="para"> + If an errata update is released for software used on your system, it is highly recommended that you update the affected packages as soon as possible to minimize the amount of time the system is potentially vulnerable. + </div><div class="section" title="1.5.1. Updating Packages" id="sect-Security_Guide-Security_Updates-Updating_Packages"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Security_Updates-Updating_Packages">1.5.1. Updating Packages</h3></div></div></div><div class="para"> + When updating software on a system, it is important to download the update from a trusted source. An attacker can easily rebuild a package with the same version number as the one that is supposed to fix the problem but with a different security exploit and release it on the Internet. If this happens, using security measures such as verifying files against the original RPM does not detect the exploit. Thus, it is very important to only download RPMs from trusted sources, such as from Fedora and to check the signature of the package to verify its integrity. + </div><div class="note"><h2>Note</h2><div class="para"> + Fedora includes a convenient panel icon that displays visible alerts when there is an update for a Fedora system. + </div></div></div><div class="section" title="1.5.2. Verifying Signed Packages" id="sect-Security_Guide-Updating_Packages-Verifying_Signed_Packages"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Updating_Packages-Verifying_Signed_Packages">1.5.2. Verifying Signed Packages</h3></div></div></div><div class="para"> + All Fedora packages are signed with the Fedora <em class="firstterm">GPG</em> key. GPG stands for GNU Privacy Guard, or GnuPG, a free software package used for ensuring the authenticity of distributed files. For example, a private key (secret key) locks the package while the public key unlocks and verifies the package. If the public key distributed by Fedora does not match the private key during RPM verification, the package may have been altered and therefore cannot be trusted. + </div><div class="para"> + The RPM utility within Fedora automatically tries to verify the GPG signature of an RPM package before installing it. If the Fedora GPG key is not installed, install it from a secure, static location, such as an Fedora installation CD-ROM or DVD. + </div><div class="para"> + Assuming the disc is mounted in <code class="filename">/mnt/cdrom</code>, use the following command to import it into the <em class="firstterm">keyring</em> (a database of trusted keys on the system): + </div><pre class="screen"><code class="command">rpm --import /mnt/cdrom/RPM-GPG-KEY</code></pre><div class="para"> + To display a list of all keys installed for RPM verification, execute the following command: + </div><pre class="screen"><code class="command">rpm -qa gpg-pubkey*</code></pre><div class="para"> + The output will look similar to the following: + </div><pre class="screen"><code class="computeroutput">gpg-pubkey-db42a60e-37ea5438</code></pre><div class="para"> + To display details about a specific key, use the <code class="command">rpm -qi</code> command followed by the output from the previous command, as in this example: + </div><pre class="screen"><code class="command">rpm -qi gpg-pubkey-db42a60e-37ea5438</code></pre><div class="para"> + It is extremely important to verify the signature of the RPM files before installing them to ensure that they have not been altered from the original source of the packages. To verify all the downloaded packages at once, issue the following command: + </div><pre class="screen"><code class="command">rpm -K /tmp/updates/*.rpm</code></pre><div class="para"> + For each package, if the GPG key verifies successfully, the command returns <code class="computeroutput">gpg OK</code>. If it doesn't, make sure you are using the correct Fedora public key, as well as verifying the source of the content. Packages that do not pass GPG verifications should not be installed, as they may have been altered by a third party. + </div><div class="para"> + After verifying the GPG key and downloading all the packages associated with the errata report, install the packages as root at a shell prompt. + </div></div><div class="section" title="1.5.3. Installing Signed Packages" id="sect-Security_Guide-Updating_Packages-Installing_Signed_Packages"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Updating_Packages-Installing_Signed_Packages">1.5.3. Installing Signed Packages</h3></div></div></div><div class="para"> + Installation for most packages can be done safely (except kernel packages) by issuing the following command: + </div><pre class="screen"><code class="command">rpm -Uvh /tmp/updates/*.rpm</code></pre><div class="para"> + For kernel packages use the following command: + </div><pre class="screen"><code class="command">rpm -ivh /tmp/updates/<em class="replaceable"><code><kernel-package></code></em></code></pre><div class="para"> + Replace <em class="replaceable"><code><kernel-package></code></em> in the previous example with the name of the kernel RPM. + </div><div class="para"> + Once the machine has been safely rebooted using the new kernel, the old kernel may be removed using the following command: + </div><pre class="screen"><code class="command">rpm -e <em class="replaceable"><code><old-kernel-package></code></em></code></pre><div class="para"> + Replace <em class="replaceable"><code><old-kernel-package></code></em> in the previous example with the name of the older kernel RPM. + </div><div class="note"><h2>Note</h2><div class="para"> + It is not a requirement that the old kernel be removed. The default boot loader, GRUB, allows for multiple kernels to be installed, then chosen from a menu at boot time. + </div></div><div class="important"><h2>Important</h2><div class="para"> + Before installing any security errata, be sure to read any special instructions contained in the errata report and execute them accordingly. Refer to <a class="xref" href="#sect-Security_Guide-Updating_Packages-Applying_the_Changes" title="1.5.4. Applying the Changes">Section 1.5.4, “Applying the Changes”</a> for general instructions about applying the changes made by an errata update. + </div></div></div><div class="section" title="1.5.4. Applying the Changes" id="sect-Security_Guide-Updating_Packages-Applying_the_Changes"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Updating_Packages-Applying_the_Changes">1.5.4. Applying the Changes</h3></div></div></div><div class="para"> + After downloading and installing security errata and updates, it is important to halt usage of the older software and begin using the new software. How this is done depends on the type of software that has been updated. The following list itemizes the general categories of software and provides instructions for using the updated versions after a package upgrade. + </div><div class="note"><h2>Note</h2><div class="para"> + In general, rebooting the system is the surest way to ensure that the latest version of a software package is used; however, this option is not always required, or available to the system administrator. + </div></div><div class="variablelist"><dl><dt><span class="term">Applications</span></dt><dd><div class="para"> + User-space applications are any programs that can be initiated by a system user. Typically, such applications are used only when a user, script, or automated task utility launches them and they do not persist for long periods of time. + </div><div class="para"> + Once such a user-space application is updated, halt any instances of the application on the system and launch the program again to use the updated version. + </div></dd><dt><span class="term">Kernel</span></dt><dd><div class="para"> + The kernel is the core software component for the Fedora operating system. It manages access to memory, the processor, and peripherals as well as schedules all tasks. + </div><div class="para"> + Because of its central role, the kernel cannot be restarted without also stopping the computer. Therefore, an updated version of the kernel cannot be used until the system is rebooted. + </div></dd><dt><span class="term">Shared Libraries</span></dt><dd><div class="para"> + Shared libraries are units of code, such as <code class="filename">glibc</code>, which are used by a number of applications and services. Applications utilizing a shared library typically load the shared code when the application is initialized, so any applications using the updated library must be halted and relaunched. + </div><div class="para"> + To determine which running applications link against a particular library, use the <code class="command">lsof</code> command as in the following example: + </div><pre class="screen"><code class="command">lsof /lib/libwrap.so*</code></pre><div class="para"> + This command returns a list of all the running programs which use TCP wrappers for host access control. Therefore, any program listed must be halted and relaunched if the <code class="filename">tcp_wrappers</code> package is updated. + </div></dd><dt><span class="term">SysV Services</span></dt><dd><div class="para"> + SysV services are persistent server programs launched during the boot process. Examples of SysV services include <code class="command">sshd</code>, <code class="command">vsftpd</code>, and <code class="command">xinetd</code>. + </div><div class="para"> + Because these programs usually persist in memory as long as the machine is booted, each updated SysV service must be halted and relaunched after the package is upgraded. This can be done using the <span class="application"><strong>Services Configuration Tool</strong></span> or by logging into a root shell prompt and issuing the <code class="command">/sbin/service</code> command as in the following example: + </div><pre class="screen"><code class="command">/sbin/service <em class="replaceable"><code><service-name></code></em> restart</code></pre><div class="para"> + In the previous example, replace <em class="replaceable"><code><service-name></code></em> with the name of the service, such as <code class="command">sshd</code>. + </div></dd><dt><span class="term"><code class="command">xinetd</code> Services</span></dt><dd><div class="para"> + Services controlled by the <code class="command">xinetd</code> super service only run when a there is an active connection. Examples of services controlled by <code class="command">xinetd</code> include Telnet, IMAP, and POP3. + </div><div class="para"> + Because new instances of these services are launched by <code class="command">xinetd</code> each time a new request is received, connections that occur after an upgrade are handled by the updated software. However, if there are active connections at the time the <code class="command">xinetd</code> controlled service is upgraded, they are serviced by the older version of the software. + </div><div class="para"> + To kill off older instances of a particular <code class="command">xinetd</code> controlled service, upgrade the package for the service then halt all processes currently running. To determine if the process is running, use the <code class="command">ps</code> command and then use the <code class="command">kill</code> or <code class="command">killall</code> command to halt current instances of the service. + </div><div class="para"> + For example, if security errata <code class="filename">imap</code> packages are released, upgrade the packages, then type the following command as root into a shell prompt: + </div><pre class="screen"><code class="command">ps -aux | grep imap</code></pre><div class="para"> + This command returns all active IMAP sessions. Individual sessions can then be terminated by issuing the following command: + </div><pre class="screen"><code class="command">kill <em class="replaceable"><code><PID></code></em></code></pre><div class="para"> + If this fails to terminate the session, use the following command instead: + </div><pre class="screen"><code class="command">kill -9 <em class="replaceable"><code><PID></code></em></code></pre><div class="para"> + In the previous examples, replace <em class="replaceable"><code><PID></code></em> with the process identification number (found in the second column of the <code class="command">ps</code> command) for an IMAP session. + </div><div class="para"> + To kill all active IMAP sessions, issue the following command: + </div><pre class="screen"><code class="command">killall imapd</code></pre></dd></dl></div></div></div><div class="footnotes"><br /><hr width="100" align="left" /><div class="footnote"><p><sup>[<a id="ftn.id3076006" href="#id3076006" class="para">1</a>] </sup> + http://law.jrank.org/pages/3791/Kevin-Mitnick-Case-1999.html + </p></div><div class="footnote"><p><sup>[<a id="ftn.id3062170" href="#id3062170" class="para">2</a>] </sup> + http://www.livinginternet.com/i/ia_hackers_levin.htm + </p></div><div class="footnote"><p><sup>[<a id="ftn.id3408011" href="#id3408011" class="para">3</a>] </sup> + http://www.theregister.co.uk/2007/05/04/txj_nonfeasance/ + </p></div><div class="footnote"><p><sup>[<a id="ftn.id2917747" href="#id2917747" class="para">4</a>] </sup> + http://www.healthcareitnews.com/story.cms?id=9408 + </p></div><div class="footnote"><p><sup>[<a id="ftn.id2830730" href="#id2830730" class="para">5</a>] </sup> + http://www.internetworldstats.com/stats.htm + </p></div><div class="footnote"><p><sup>[<a id="ftn.id3158467" href="#id3158467" class="para">6</a>] </sup> + http://www.cert.org + </p></div><div class="footnote"><p><sup>[<a id="ftn.id2819712" href="#id2819712" class="para">7</a>] </sup> + http://www.cert.org/stats/fullstats.html + </p></div><div class="footnote"><p><sup>[<a id="ftn.id2931089" href="#id2931089" class="para">8</a>] </sup> + http://www.newsfactor.com/perl/story/16407.html + </p></div><div class="footnote"><p><sup>[<a id="ftn.id2950718" href="#id2950718" class="para">9</a>] </sup> + http://www.csoonline.com/article/454939/The_Global_State_of_Information_Secu... + </p></div><div class="footnote"><p><sup>[<a id="ftn.id2865801" href="#id2865801" class="para">10</a>] </sup> + http://www.sans.org/resources/errors.php + </p></div></div></div><div xml:lang="en-US" class="chapter" title="Chapter 2. Securing Your Network" id="chap-Security_Guide-Securing_Your_Network" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 2. Securing Your Network</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security">2.1. Workstation Security</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Evaluating_Workstation_Security">2.1.1. Evaluating Workstation Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-BIOS_and_Boot_Loader_Security">2.1.2. BIOS and Boot Loader Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Password_Security">2.1.3. Password Security</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Administrative_Controls">2.1. 4. Administrative Controls</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Available_Network_Services">2.1.5. Available Network Services</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Personal_Firewalls">2.1.6. Personal Firewalls</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Workstation_Security-Security_Enhanced_Communication_Tools">2.1.7. Security Enhanced Communication Tools</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Server_Security">2.2. Server Security</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_Services_With_TCP_Wrappers_and_xinetd">2.2.1. Securing Services With TCP Wrappers and xinetd</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_Portmap">2.2.2. Securing Portmap</a></span></dt><dt><span class="section"><a href= "#sect-Security_Guide-Server_Security-Securing_NIS">2.2.3. Securing NIS</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_NFS">2.2.4. Securing NFS</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_the_Apache_HTTP_Server">2.2.5. Securing the Apache HTTP Server</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_FTP">2.2.6. Securing FTP</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Securing_Sendmail">2.2.7. Securing Sendmail</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Server_Security-Verifying_Which_Ports_Are_Listening">2.2.8. Verifying Which Ports Are Listening</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO">2.3. Single Sign-on (SSO)</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_ on_SSO-Introduction">2.3.1. Introduction</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO-Getting_Started_with_your_new_Smart_Card">2.3.2. Getting Started with your new Smart Card</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO-How_Smart_Card_Enrollment_Works">2.3.3. How Smart Card Enrollment Works</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO-How_Smart_Card_Login_Works">2.3.4. How Smart Card Login Works</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Single_Sign_on_SSO-Configuring_Firefox_to_use_Kerberos_for_SSO">2.3.5. Configuring Firefox to use Kerberos for SSO</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM">2.4. Pluggable Authentication Modules (PAM)</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_M odules_PAM-Advantages_of_PAM">2.4.1. Advantages of PAM</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_Configuration_Files">2.4.2. PAM Configuration Files</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_Configuration_File_Format">2.4.3. PAM Configuration File Format</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Sample_PAM_Configuration_Files">2.4.4. Sample PAM Configuration Files</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Creating_PAM_Modules">2.4.5. Creating PAM Modules</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_and_Administrative_Credential_Caching">2.4.6. PAM and Administrative Credential Caching</a></span></dt><dt><span class="section"><a href="#sect-Se curity_Guide-Pluggable_Authentication_Modules_PAM-PAM_and_Device_Ownership">2.4.7. PAM and Device Ownership</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Additional_Resources">2.4.8. Additional Resources</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd">2.5. TCP Wrappers and xinetd</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers">2.5.1. TCP Wrappers</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers_Configuration_Files">2.5.2. TCP Wrappers Configuration Files</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-xinetd">2.5.3. xinetd</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-xinetd_Configuration_Files">2.5.4. xinetd Configuration Files</a></spa n></dt><dt><span class="section"><a href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-Additional_Resources">2.5.5. Additional Resources</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Kerberos">2.6. Kerberos</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-What_is_Kerberos">2.6.1. What is Kerberos?</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Kerberos_Terminology">2.6.2. Kerberos Terminology</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-How_Kerberos_Works">2.6.3. How Kerberos Works</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Kerberos_and_PAM">2.6.4. Kerberos and PAM</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Configuring_a_Kerberos_5_Server">2.6.5. Configuring a Kerberos 5 Server</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Config uring_a_Kerberos_5_Client">2.6.6. Configuring a Kerberos 5 Client</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Domain_to_Realm_Mapping">2.6.7. Domain-to-Realm Mapping</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Setting_Up_Secondary_KDCs">2.6.8. Setting Up Secondary KDCs</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Setting_Up_Cross_Realm_Authentication">2.6.9. Setting Up Cross Realm Authentication</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Kerberos-Additional_Resources">2.6.10. Additional Resources</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs">2.7. Virtual Private Networks (VPNs)</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-How_Does_a_VPN_Work">2.7.1. How Does a VPN Work?</a></span></dt><dt><span class="section"><a h ref="#sect-Security_Guide-Virtual_Private_Networks_VPNs-VPNs_and_PROD">2.7.2. VPNs and Fedora</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec">2.7.3. IPsec</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-Creating_an_IPsec_Connection">2.7.4. Creating an <abbr class="abbrev">IPsec</abbr> Connection</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Installation">2.7.5. IPsec Installation</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Host_to_Host_Configuration">2.7.6. IPsec Host-to-Host Configuration</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Network_to_Network_Configuration">2.7.7. IPsec Network-to-Network Configuration</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide -Virtual_Private_Networks_VPNs-Starting_and_Stopping_an_IPsec_Connection">2.7.8. Starting and Stopping an <abbr class="abbrev">IPsec</abbr> Connection</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-Firewalls">2.8. Firewalls</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Netfilter_and_IPTables">2.8.1. Netfilter and IPTables</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Basic_Firewall_Configuration">2.8.2. Basic Firewall Configuration</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Using_IPTables">2.8.3. Using IPTables</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Common_IPTables_Filtering">2.8.4. Common IPTables Filtering</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-FORWARD_and_NAT_Rules">2.8.5. <code class="computeroutput">FORWARD</code> and <acronym class="acrony m">NAT</acronym> Rules</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Malicious_Software_and_Spoofed_IP_Addresses">2.8.6. Malicious Software and Spoofed IP Addresses</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-IPTables_and_Connection_Tracking">2.8.7. IPTables and Connection Tracking</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-IPv6">2.8.8. IPv6</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-Firewalls-Additional_Resources">2.8.9. Additional Resources</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Security_Guide-IPTables">2.9. IPTables</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Security_Guide-IPTables-Packet_Filtering">2.9.1. Packet Filtering</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-IPTables-Command_Options_for_IPTables">2.9.2. Command Options for IPTables</a></span></dt><dt><spa n class="section"><a href="#sect-Security_Guide-IPTables-Saving_IPTables_Rules">2.9.3. Saving IPTables Rules</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-IPTables-IPTables_Control_Scripts">2.9.4. IPTables Control Scripts</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-IPTables-IPTables_and_IPv6">2.9.5. IPTables and IPv6</a></span></dt><dt><span class="section"><a href="#sect-Security_Guide-IPTables-Additional_Resources">2.9.6. Additional Resources</a></span></dt></dl></dd></dl></div><div xml:lang="en-US" class="section" title="2.1. Workstation Security" id="sect-Security_Guide-Workstation_Security" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Workstation_Security">2.1. Workstation Security</h2></div></div></div><div class="para"> + Securing a Linux environment begins with the workstation. Whether locking down a personal machine or securing an enterprise system, sound security policy begins with the individual computer. A computer network is only as secure as its weakest node. + </div><div class="section" title="2.1.1. Evaluating Workstation Security" id="sect-Security_Guide-Workstation_Security-Evaluating_Workstation_Security"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Workstation_Security-Evaluating_Workstation_Security">2.1.1. Evaluating Workstation Security</h3></div></div></div><div class="para"> + When evaluating the security of a Fedora workstation, consider the following: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em>BIOS and Boot Loader Security</em></span> — Can an unauthorized user physically access the machine and boot into single user or rescue mode without a password? + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Password Security</em></span> — How secure are the user account passwords on the machine? + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Administrative Controls</em></span> — Who has an account on the system and how much administrative control do they have? + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Available Network Services</em></span> — What services are listening for requests from the network and should they be running at all? + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Personal Firewalls</em></span> — What type of firewall, if any, is necessary? + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Security Enhanced Communication Tools</em></span> — Which tools should be used to communicate between workstations and which should be avoided? + </div></li></ul></div></div><div class="section" title="2.1.2. BIOS and Boot Loader Security" id="sect-Security_Guide-Workstation_Security-BIOS_and_Boot_Loader_Security"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Workstation_Security-BIOS_and_Boot_Loader_Security">2.1.2. BIOS and Boot Loader Security</h3></div></div></div><div class="para"> + Password protection for the BIOS (or BIOS equivalent) and the boot loader can prevent unauthorized users who have physical access to systems from booting using removable media or obtaining root privileges through single user mode. The security measures you should take to protect against such attacks depends both on the sensitivity of the information on the workstation and the location of the machine. + </div><div class="para"> + For example, if a machine is used in a trade show and contains no sensitive information, then it may not be critical to prevent such attacks. However, if an employee's laptop with private, unencrypted SSH keys for the corporate network is left unattended at that same trade show, it could lead to a major security breach with ramifications for the entire company. + </div><div class="para"> + If the workstation is located in a place where only authorized or trusted people have access, however, then securing the BIOS or the boot loader may not be necessary. + </div><div class="section" title="2.1.2.1. BIOS Passwords" id="sect-Security_Guide-BIOS_and_Boot_Loader_Security-BIOS_Passwords"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-BIOS_and_Boot_Loader_Security-BIOS_Passwords">2.1.2.1. BIOS Passwords</h4></div></div></div><div class="para"> + The two primary reasons for password protecting the BIOS of a computer are<sup>[<a id="id4058360" href="#ftn.id4058360" class="footnote">11</a>]</sup>: + </div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + <span class="emphasis"><em>Preventing Changes to BIOS Settings</em></span> — If an intruder has access to the BIOS, they can set it to boot from a diskette or CD-ROM. This makes it possible for them to enter rescue mode or single user mode, which in turn allows them to start arbitrary processes on the system or copy sensitive data. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Preventing System Booting</em></span> — Some BIOSes allow password protection of the boot process. When activated, an attacker is forced to enter a password before the BIOS launches the boot loader. + </div></li></ol></div><div class="para"> + Because the methods for setting a BIOS password vary between computer manufacturers, consult the computer's manual for specific instructions. + </div><div class="para"> + If you forget the BIOS password, it can either be reset with jumpers on the motherboard or by disconnecting the CMOS battery. For this reason, it is good practice to lock the computer case if possible. However, consult the manual for the computer or motherboard before attempting to disconnect the CMOS battery. + </div><div class="section" title="2.1.2.1.1. Securing Non-x86 Platforms" id="sect-Security_Guide-BIOS_Passwords-Securing_Non_x86_Platforms"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-BIOS_Passwords-Securing_Non_x86_Platforms">2.1.2.1.1. Securing Non-x86 Platforms</h5></div></div></div><div class="para"> + Other architectures use different programs to perform low-level tasks roughly equivalent to those of the BIOS on x86 systems. For instance, <span class="trademark">Intel</span>® <span class="trademark">Itanium</span>™ computers use the <em class="firstterm">Extensible Firmware Interface</em> (<em class="firstterm">EFI</em>) shell. + </div><div class="para"> + For instructions on password protecting BIOS-like programs on other architectures, refer to the manufacturer's instructions. + </div></div></div><div class="section" title="2.1.2.2. Boot Loader Passwords" id="sect-Security_Guide-BIOS_and_Boot_Loader_Security-Boot_Loader_Passwords"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-BIOS_and_Boot_Loader_Security-Boot_Loader_Passwords">2.1.2.2. Boot Loader Passwords</h4></div></div></div><div class="para"> + The primary reasons for password protecting a Linux boot loader are as follows: + </div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + <span class="emphasis"><em>Preventing Access to Single User Mode</em></span> — If attackers can boot the system into single user mode, they are logged in automatically as root without being prompted for the root password. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Preventing Access to the GRUB Console</em></span> — If the machine uses GRUB as its boot loader, an attacker can use the GRUB editor interface to change its configuration or to gather information using the <code class="command">cat</code> command. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Preventing Access to Insecure Operating Systems</em></span> — If it is a dual-boot system, an attacker can select an operating system at boot time (for example, DOS), which ignores access controls and file permissions. + </div></li></ol></div><div class="para"> + Fedora ships with the GRUB boot loader on the x86 platform. For a detailed look at GRUB, refer to the Red Hat Installation Guide. + </div><div class="section" title="2.1.2.2.1. Password Protecting GRUB" id="sect-Security_Guide-Boot_Loader_Passwords-Password_Protecting_GRUB"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Boot_Loader_Passwords-Password_Protecting_GRUB">2.1.2.2.1. Password Protecting GRUB</h5></div></div></div><div class="para"> + You can configure GRUB to address the first two issues listed in <a class="xref" href="#sect-Security_Guide-BIOS_and_Boot_Loader_Security-Boot_Loader_Passwords" title="2.1.2.2. Boot Loader Passwords">Section 2.1.2.2, “Boot Loader Passwords”</a> by adding a password directive to its configuration file. To do this, first choose a strong password, open a shell, log in as root, and then type the following command: + </div><pre class="screen"><code class="command">/sbin/grub-md5-crypt</code></pre><div class="para"> + When prompted, type the GRUB password and press <span class="keycap"><strong>Enter</strong></span>. This returns an MD5 hash of the password. + </div><div class="para"> + Next, edit the GRUB configuration file <code class="filename">/boot/grub/grub.conf</code>. Open the file and below the <code class="command">timeout</code> line in the main section of the document, add the following line: + </div><pre class="screen"><code class="command">password --md5 <em class="replaceable"><code><password-hash></code></em></code></pre><div class="para"> + Replace <em class="replaceable"><code><password-hash></code></em> with the value returned by <code class="command">/sbin/grub-md5-crypt</code><sup>[<a id="id2962629" href="#ftn.id2962629" class="footnote">12</a>]</sup>. + </div><div class="para"> + The next time the system boots, the GRUB menu prevents access to the editor or command interface without first pressing <span class="keycap"><strong>p</strong></span> followed by the GRUB password. + </div><div class="para"> + Unfortunately, this solution does not prevent an attacker from booting into an insecure operating system in a dual-boot environment. For this, a different part of the <code class="filename">/boot/grub/grub.conf</code> file must be edited. + </div><div class="para"> + Look for the <code class="computeroutput">title</code> line of the operating system that you want to secure, and add a line with the <code class="command">lock</code> directive immediately beneath it. + </div><div class="para"> + For a DOS system, the stanza should begin similar to the following: + </div><pre class="screen"><code class="computeroutput">title DOS lock</code></pre><div class="warning"><h2>Warning</h2><div class="para"> + A <code class="computeroutput">password</code> line must be present in the main section of the <code class="filename">/boot/grub/grub.conf</code> file for this method to work properly. Otherwise, an attacker can access the GRUB editor interface and remove the lock line. + </div></div><div class="para"> + To create a different password for a particular kernel or operating system, add a <code class="command">lock</code> line to the stanza, followed by a password line. + </div><div class="para"> + Each stanza protected with a unique password should begin with lines similar to the following example: + </div><pre class="screen"><code class="computeroutput">title DOS lock password --md5 <em class="replaceable"><code><password-hash></code></em></code></pre></div></div></div><div class="section" title="2.1.3. Password Security" id="sect-Security_Guide-Workstation_Security-Password_Security"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Workstation_Security-Password_Security">2.1.3. Password Security</h3></div></div></div><div class="para"> + Passwords are the primary method that Fedora uses to verify a user's identity. This is why password security is so important for protection of the user, the workstation, and the network. + </div><div class="para"> + For security purposes, the installation program configures the system to use <em class="firstterm">Message-Digest Algorithm</em> (<span class="emphasis"><em>MD5</em></span>) and shadow passwords. It is highly recommended that you do not alter these settings. + </div><div class="para"> + If MD5 passwords are deselected during installation, the older <em class="firstterm">Data Encryption Standard</em> (<em class="firstterm"><acronym class="acronym">DES</acronym></em>) format is used. This format limits passwords to eight alphanumeric characters (disallowing punctuation and other special characters), and provides a modest 56-bit level of encryption. + </div><div class="para"> + If shadow passwords are deselected during installation, all passwords are stored as a one-way hash in the world-readable <code class="filename">/etc/passwd</code> file, which makes the system vulnerable to offline password cracking attacks. If an intruder can gain access to the machine as a regular user, he can copy the <code class="filename">/etc/passwd</code> file to his own machine and run any number of password cracking programs against it. If there is an insecure password in the file, it is only a matter of time before the password cracker discovers it. + </div><div class="para"> + Shadow passwords eliminate this type of attack by storing the password hashes in the file <code class="filename">/etc/shadow</code>, which is readable only by the root user. + </div><div class="para"> + This forces a potential attacker to attempt password cracking remotely by logging into a network service on the machine, such as SSH or FTP. This sort of brute-force attack is much slower and leaves an obvious trail as hundreds of failed login attempts are written to system files. Of course, if the cracker starts an attack in the middle of the night on a system with weak passwords, the cracker may have gained access before dawn and edited the log files to cover his tracks. + </div><div class="para"> + In addition to format and storage considerations is the issue of content. The single most important thing a user can do to protect his account against a password cracking attack is create a strong password. + </div><div class="section" title="2.1.3.1. Creating Strong Passwords" id="sect-Security_Guide-Password_Security-Creating_Strong_Passwords"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Password_Security-Creating_Strong_Passwords">2.1.3.1. Creating Strong Passwords</h4></div></div></div><div class="para"> + When creating a secure password, it is a good idea to follow these guidelines: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em>Do Not Use Only Words or Numbers</em></span> — Never use only numbers or words in a password. + </div><div class="para"> + Some insecure examples include the following: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + 8675309 + </div></li><li class="listitem"><div class="para"> + juan + </div></li><li class="listitem"><div class="para"> + hackme + </div></li></ul></div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Do Not Use Recognizable Words</em></span> — Words such as proper names, dictionary words, or even terms from television shows or novels should be avoided, even if they are bookended with numbers. + </div><div class="para"> + Some insecure examples include the following: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + john1 + </div></li><li class="listitem"><div class="para"> + DS-9 + </div></li><li class="listitem"><div class="para"> + mentat123 + </div></li></ul></div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Do Not Use Words in Foreign Languages</em></span> — Password cracking programs often check against word lists that encompass dictionaries of many languages. Relying on foreign languages for secure passwords is not secure. + </div><div class="para"> + Some insecure examples include the following: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + cheguevara + </div></li><li class="listitem"><div class="para"> + bienvenido1 + </div></li><li class="listitem"><div class="para"> + 1dumbKopf + </div></li></ul></div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Do Not Use Hacker Terminology</em></span> — If you think you are elite because you use hacker terminology — also called l337 (LEET) speak — in your password, think again. Many word lists include LEET speak. + </div><div class="para"> + Some insecure examples include the following: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + H4X0R + </div></li><li class="listitem"><div class="para"> + 1337 + </div></li></ul></div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Do Not Use Personal Information</em></span> — Avoid using any personal information in your passwords. If the attacker knows your identity, the task of deducing your password becomes easier. The following is a list of the types of information to avoid when creating a password: + </div><div class="para"> + Some insecure examples include the following: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Your name + </div></li><li class="listitem"><div class="para"> + The names of pets + </div></li><li class="listitem"><div class="para"> + The names of family members + </div></li><li class="listitem"><div class="para"> + Any birth dates + </div></li><li class="listitem"><div class="para"> + Your phone number or zip code + </div></li></ul></div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Do Not Invert Recognizable Words</em></span> — Good password checkers always reverse common words, so inverting a bad password does not make it any more secure. + </div><div class="para"> + Some insecure examples include the following: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + R0X4H + </div></li><li class="listitem"><div class="para"> + nauj + </div></li><li class="listitem"><div class="para"> + 9-DS + </div></li></ul></div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Do Not Write Down Your Password</em></span> — Never store a password on paper. It is much safer to memorize it. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Do Not Use the Same Password For All Machines</em></span> — It is important to make separate passwords for each machine. This way if one system is compromised, all of your machines are not immediately at risk. + </div></li></ul></div><div class="para"> + The following guidelines will help you to create a strong password: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em>Make the Password at Least Eight Characters Long</em></span> — The longer the password, the better. If using MD5 passwords, it should be 15 characters or longer. With DES passwords, use the maximum length (eight characters). + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Mix Upper and Lower Case Letters</em></span> — Fedora is case sensitive, so mix cases to enhance the strength of the password. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Mix Letters and Numbers</em></span> — Adding numbers to passwords, especially when added to the middle (not just at the beginning or the end), can enhance password strength. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Include Non-Alphanumeric Characters</em></span> — Special characters such as &, $, and > can greatly improve the strength of a password (this is not possible if using DES passwords). + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Pick a Password You Can Remember</em></span> — The best password in the world does little good if you cannot remember it; use acronyms or other mnemonic devices to aid in memorizing passwords. + </div></li></ul></div><div class="para"> + With all these rules, it may seem difficult to create a password that meets all of the criteria for good passwords while avoiding the traits of a bad one. Fortunately, there are some steps you can take to generate an easily-remembered, secure password. + </div><div class="section" title="2.1.3.1.1. Secure Password Creation Methodology" id="sect-Security_Guide-Creating_Strong_Passwords-Secure_Password_Creation_Methodology"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Creating_Strong_Passwords-Secure_Password_Creation_Methodology">2.1.3.1.1. Secure Password Creation Methodology</h5></div></div></div><div class="para"> + There are many methods that people use to create secure passwords. One of the more popular methods involves acronyms. For example: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Think of an easily-remembered phrase, such as: + </div><div class="para"> + "over the river and through the woods, to grandmother's house we go." + </div></li><li class="listitem"><div class="para"> + Next, turn it into an acronym (including the punctuation). + </div><div class="para"> + <strong class="userinput"><code>otrattw,tghwg.</code></strong> + </div></li><li class="listitem"><div class="para"> + Add complexity by substituting numbers and symbols for letters in the acronym. For example, substitute <strong class="userinput"><code>7</code></strong> for <strong class="userinput"><code>t</code></strong> and the at symbol (<strong class="userinput"><code>@</code></strong>) for <strong class="userinput"><code>a</code></strong>: + </div><div class="para"> + <strong class="userinput"><code>o7r@77w,7ghwg.</code></strong> + </div></li><li class="listitem"><div class="para"> + Add more complexity by capitalizing at least one letter, such as <strong class="userinput"><code>H</code></strong>. + </div><div class="para"> + <strong class="userinput"><code>o7r@77w,7gHwg.</code></strong> + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Finally, do not use the example password above for any systems, ever</em></span>. + </div></li></ul></div><div class="para"> + While creating secure passwords is imperative, managing them properly is also important, especially for system administrators within larger organizations. The following section details good practices for creating and managing user passwords within an organization. + </div></div></div><div class="section" title="2.1.3.2. Creating User Passwords Within an Organization" id="sect-Security_Guide-Password_Security-Creating_User_Passwords_Within_an_Organization"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Password_Security-Creating_User_Passwords_Within_an_Organization">2.1.3.2. Creating User Passwords Within an Organization</h4></div></div></div><div class="para"> + If an organization has a large number of users, the system administrators have two basic options available to force the use of good passwords. They can create passwords for the user, or they can let users create their own passwords, while verifying the passwords are of acceptable quality. + </div><div class="para"> + Creating the passwords for the users ensures that the passwords are good, but it becomes a daunting task as the organization grows. It also increases the risk of users writing their passwords down. + </div><div class="para"> + For these reasons, most system administrators prefer to have the users create their own passwords, but actively verify that the passwords are good and, in some cases, force users to change their passwords periodically through password aging. + </div><div class="section" title="2.1.3.2.1. Forcing Strong Passwords" id="sect-Security_Guide-Creating_User_Passwords_Within_an_Organization-Forcing_Strong_Passwords"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Creating_User_Passwords_Within_an_Organization-Forcing_Strong_Passwords">2.1.3.2.1. Forcing Strong Passwords</h5></div></div></div><div class="para"> + To protect the network from intrusion it is a good idea for system administrators to verify that the passwords used within an organization are strong ones. When users are asked to create or change passwords, they can use the command line application <code class="command">passwd</code>, which is <em class="firstterm">Pluggable Authentication Manager</em> (<em class="firstterm">PAM</em>) aware and therefore checks to see if the password is too short or otherwise easy to crack. This check is performed using the <code class="filename">pam_cracklib.so</code> PAM module. Since PAM is customizable, it is possible to add more password integrity checkers, such as <code class="filename">pam_passwdqc</code> (available from <a href="http://www.openwall.com/passwdqc/">http://www.openwall.com/passwdqc/</a>) or to write a new module. For a list of available PAM modules, refer to <a href="http://www.kernel.org/pub/linux/libs/pam/modules.html">http://www.kernel.org/pub/linux/libs/pam/mo dules.html</a>. For more information about PAM, refer to <a class="xref" href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM" title="2.4. Pluggable Authentication Modules (PAM)">Section 2.4, “Pluggable Authentication Modules (PAM)”</a>. + </div><div class="para"> + The password check that is performed at the time of their creation does not discover bad passwords as effectively as running a password cracking program against the passwords. + </div><div class="para"> + Many password cracking programs are available that run under Fedora, although none ship with the operating system. Below is a brief list of some of the more popular password cracking programs: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em><span class="application"><strong>John The Ripper</strong></span></em></span> — A fast and flexible password cracking program. It allows the use of multiple word lists and is capable of brute-force password cracking. It is available online at <a href="http://www.openwall.com/john/">http://www.openwall.com/john/</a>. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em><span class="application"><strong>Crack</strong></span></em></span> — Perhaps the most well known password cracking software, <span class="application"><strong>Crack</strong></span> is also very fast, though not as easy to use as <span class="application"><strong>John The Ripper</strong></span>. It can be found online at <a href="http://www.crypticide.com/alecm/security/crack/c50-faq.html">http://www.crypticide.com/alecm/security/crack/c50-faq.html</a>. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em><span class="application"><strong>Slurpie</strong></span></em></span> — <span class="application"><strong>Slurpie</strong></span> is similar to <span class="application"><strong>John The Ripper</strong></span> and <span class="application"><strong>Crack</strong></span>, but it is designed to run on multiple computers simultaneously, creating a distributed password cracking attack. It can be found along with a number of other distributed attack security evaluation tools online at <a href="http://www.ussrback.com/distributed.htm">http://www.ussrback.com/distributed.htm</a>. + </div></li></ul></div><div class="warning"><h2>Warning</h2><div class="para"> + Always get authorization in writing before attempting to crack passwords within an organization. + </div></div></div><div class="section" title="2.1.3.2.2. Passphrases" id="sect-Security_Guide-Passphrases"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Passphrases">2.1.3.2.2. Passphrases</h5></div></div></div><div class="para"> + Passphrases and passwords are the cornerstone to security in most of today's systems. Unfortunately, techniques such as biometrics and two-factor authentication have not yet become mainstream in many systems. If passwords are going to be used to secure a system, then the use of passphrases should be considered. Passphrases are longer than passwords and provide better protection than a password even when implemented with non-standard characters such as numbers and symbols. + </div></div><div class="section" title="2.1.3.2.3. Password Aging" id="sect-Security_Guide-Creating_User_Passwords_Within_an_Organization-Password_Aging"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Creating_User_Passwords_Within_an_Organization-Password_Aging">2.1.3.2.3. Password Aging</h5></div></div></div><div class="para"> + Password aging is another technique used by system administrators to defend against bad passwords within an organization. Password aging means that after a specified period (usually 90 days), the user is prompted to create a new password. The theory behind this is that if a user is forced to change his password periodically, a cracked password is only useful to an intruder for a limited amount of time. The downside to password aging, however, is that users are more likely to write their passwords down. + </div><div class="para"> + There are two primary programs used to specify password aging under Fedora: the <code class="command">chage</code> command or the graphical <span class="application"><strong>User Manager</strong></span> (<code class="command">system-config-users</code>) application. + </div><div class="para"> + The <code class="option">-M</code> option of the <code class="command">chage</code> command specifies the maximum number of days the password is valid. For example, to set a user's password to expire in 90 days, use the following command: + </div><pre class="screen"><code class="command">chage -M 90 <em class="replaceable"><code><username></code></em></code></pre><div class="para"> + In the above command, replace <em class="replaceable"><code><username></code></em> with the name of the user. To disable password expiration, it is traditional to use a value of <code class="command">99999</code> after the <code class="option">-M</code> option (this equates to a little over 273 years). + </div><div class="para"> + You can also use the <code class="command">chage</code> command in interactive mode to modify multiple password aging and account details. Use the following command to enter interactive mode: + </div><pre class="screen"><code class="command">chage <em class="replaceable"><code><username></code></em></code></pre><div class="para"> + The following is a sample interactive session using this command: + </div><pre class="screen">[root@myServer ~]# chage davido +Changing the aging information for davido +Enter the new value, or press ENTER for the default +Minimum Password Age [0]: 10 +Maximum Password Age [99999]: 90 +Last Password Change (YYYY-MM-DD) [2006-08-18]: +Password Expiration Warning [7]: +Password Inactive [-1]: +Account Expiration Date (YYYY-MM-DD) [1969-12-31]: +[root@myServer ~]#</pre><div class="para"> + Refer to the man page for chage for more information on the available options. + </div><div class="para"> + You can also use the graphical <span class="application"><strong>User Manager</strong></span> application to create password aging policies, as follows. Note: you need Administrator privileges to perform this procedure. + </div><div class="procedure"><ol class="1"><li class="step" title="Step 1"><div class="para"> + Click the <span class="guimenu"><strong>System</strong></span> menu on the Panel, point to <span class="guisubmenu"><strong>Administration</strong></span> and then click <span class="guimenuitem"><strong>Users and Groups</strong></span> to display the User Manager. Alternatively, type the command <code class="command">system-config-users</code> at a shell prompt. + </div></li><li class="step" title="Step 2"><div class="para"> + Click the <span class="guilabel"><strong>Users</strong></span> tab, and select the required user in the list of users. + </div></li><li class="step" title="Step 3"><div class="para"> + Click <span class="guibutton"><strong>Properties</strong></span> on the toolbar to display the User Properties dialog box (or choose <span class="guimenuitem"><strong>Properties</strong></span> on the <span class="guimenu"><strong>File</strong></span> menu). + </div></li><li class="step" title="Step 4"><div class="para"> + Click the <span class="guilabel"><strong>Password Info</strong></span> tab, and select the check box for <span class="guilabel"><strong>Enable password expiration</strong></span>. + </div></li><li class="step" title="Step 5"><div class="para"> + Enter the required value in the <span class="guilabel"><strong>Days before change required</strong></span> field, and click <span class="guibutton"><strong>OK</strong></span>. + </div></li></ol></div><div class="figure" title="Figure 2.1. Specifying password aging options" id="figu-Security_Guide-Password_Aging-Specifying_password_aging_options"><div class="figure-contents"><div class="mediaobject"><img src="images/fed-user_pass_info.png" width="444" alt="Specifying password aging options" /><div class="longdesc"><div class="para"> + <span class="guilabel"><strong>Password Info</strong></span> pane illustration. + </div></div></div></div><h6>Figure 2.1. Specifying password aging options</h6></div><br class="figure-break" /></div></div></div><div class="section" title="2.1.4. Administrative Controls" id="sect-Security_Guide-Workstation_Security-Administrative_Controls"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Workstation_Security-Administrative_Controls">2.1.4. Administrative Controls</h3></div></div></div><div class="para"> + When administering a home machine, the user must perform some tasks as the root user or by acquiring effective root privileges via a <em class="firstterm">setuid</em> program, such as <code class="command">sudo</code> or <code class="command">su</code>. A setuid program is one that operates with the user ID (<span class="emphasis"><em>UID</em></span>) of the program's owner rather than the user operating the program. Such programs are denoted by an <code class="computeroutput">s</code> in the owner section of a long format listing, as in the following example: + </div><pre class="screen"><code class="computeroutput">-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su</code></pre><div class="note"><h2>Note</h2><div class="para"> + The <code class="computeroutput">s</code> may be upper case or lower case. If it appears as upper case, it means that the underlying permission bit has not been set. + </div></div><div class="para"> + For the system administrators of an organization, however, choices must be made as to how much administrative access users within the organization should have to their machine. Through a PAM module called <code class="filename">pam_console.so</code>, some activities normally reserved only for the root user, such as rebooting and mounting removable media are allowed for the first user that logs in at the physical console (refer to <a class="xref" href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM" title="2.4. Pluggable Authentication Modules (PAM)">Section 2.4, “Pluggable Authentication Modules (PAM)”</a> for more information about the <code class="filename">pam_console.so</code> module.) However, other important system administration tasks, such as altering network settings, configuring a new mouse, or mounting network devices, are not possible without administrative privileges. As a result, system administrators must decide how much access the users on their network should receive. + </div><div class="section" title="2.1.4.1. Allowing Root Access" id="sect-Security_Guide-Administrative_Controls-Allowing_Root_Access"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Administrative_Controls-Allowing_Root_Access">2.1.4.1. Allowing Root Access</h4></div></div></div><div class="para"> + If the users within an organization are trusted and computer-literate, then allowing them root access may not be an issue. Allowing root access by users means that minor activities, like adding devices or configuring network interfaces, can be handled by the individual users, leaving system administrators free to deal with network security and other important issues. + </div><div class="para"> + On the other hand, giving root access to individual users can lead to the following issues: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em>Machine Misconfiguration</em></span> — Users with root access can misconfigure their machines and require assistance to resolve issues. Even worse, they might open up security holes without knowing it. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Running Insecure Services</em></span> — Users with root access might run insecure servers on their machine, such as FTP or Telnet, potentially putting usernames and passwords at risk. These services transmit this information over the network in plain text. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Running Email Attachments As Root</em></span> — Although rare, email viruses that affect Linux do exist. The only time they are a threat, however, is when they are run by the root user. + </div></li></ul></div></div><div class="section" title="2.1.4.2. Disallowing Root Access" id="sect-Security_Guide-Administrative_Controls-Disallowing_Root_Access"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Administrative_Controls-Disallowing_Root_Access">2.1.4.2. Disallowing Root Access</h4></div></div></div><div class="para"> + If an administrator is uncomfortable allowing users to log in as root for these or other reasons, the root password should be kept secret, and access to runlevel one or single user mode should be disallowed through boot loader password protection (refer to <a class="xref" href="#sect-Security_Guide-BIOS_and_Boot_Loader_Security-Boot_Loader_Passwords" title="2.1.2.2. Boot Loader Passwords">Section 2.1.2.2, “Boot Loader Passwords”</a> for more information on this topic.) + </div><div class="para"> + <a class="xref" href="#tabl-Security_Guide-Disallowing_Root_Access-Methods_of_Disabling_the_Root_Account" title="Table 2.1. Methods of Disabling the Root Account">Table 2.1, “Methods of Disabling the Root Account”</a> describes ways that an administrator can further ensure that root logins are disallowed: + </div><div class="table" title="Table 2.1. Methods of Disabling the Root Account" id="tabl-Security_Guide-Disallowing_Root_Access-Methods_of_Disabling_the_Root_Account"><div class="table-contents"><table summary="Methods of Disabling the Root Account" border="1"><colgroup><col width="12%" /><col width="29%" /><col width="29%" /><col width="29%" /></colgroup><thead><tr><th> + Method + </th><th> + Description + </th><th> + Effects + </th><th> + Does Not Affect + </th></tr></thead><tbody><tr><td> + Changing the root shell. + </td><td> + Edit the <code class="filename">/etc/passwd</code> file and change the shell from <code class="command">/bin/bash</code> to <code class="command">/sbin/nologin</code>. + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Prevents access to the root shell and logs any such attempts. </td></tr><tr><td> The following programs are prevented from accessing the root account: </td></tr><tr><td> · <code class="command">login</code></td></tr><tr><td> · <code class="command">gdm</code></td></tr><tr><td> · <code class="command">kdm</code></td></tr><tr><td> · <code class="command">xdm</code></td></tr><tr><td> · <code class="command">su</code></td></tr><tr><td> · <code class="command">ssh</code></td></tr><tr><td> · <code class="command">scp</code></td></tr><tr><td> · <code class="command">sftp</code></td></tr></table> + + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Programs that do not require a shell, such as FTP clients, mail clients, and many setuid programs. </td></tr><tr><td> The following programs are <span class="emphasis"><em>not</em></span> prevented from accessing the root account: </td></tr><tr><td> · <code class="command">sudo</code></td></tr><tr><td> · FTP clients </td></tr><tr><td> · Email clients </td></tr></table> + + </td></tr><tr><td> + Disabling root access via any console device (tty). + </td><td> + An empty <code class="filename">/etc/securetty</code> file prevents root login on any devices attached to the computer. + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Prevents access to the root account via the console or the network. The following programs are prevented from accessing the root account: </td></tr><tr><td> · <code class="command">login</code></td></tr><tr><td> · <code class="command">gdm</code></td></tr><tr><td> · <code class="command">kdm</code></td></tr><tr><td> · <code class="command">xdm</code></td></tr><tr><td> · Other network services that open a tty </td></tr></table> + + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Programs that do not log in as root, but perform administrative tasks through setuid or other mechanisms. </td></tr><tr><td> The following programs are <span class="emphasis"><em>not</em></span> prevented from accessing the root account: </td></tr><tr><td> · <code class="command">su</code></td></tr><tr><td> · <code class="command">sudo</code></td></tr><tr><td> · <code class="command">ssh</code></td></tr><tr><td> · <code class="command">scp</code></td></tr><tr><td> · <code class="command">sftp</code></td></tr></table> + + </td></tr><tr><td> + Disabling root SSH logins. + </td><td> + Edit the <code class="filename">/etc/ssh/sshd_config</code> file and set the <code class="command">PermitRootLogin</code> parameter to <code class="command">no</code>. + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Prevents root access via the OpenSSH suite of tools. The following programs are prevented from accessing the root account: </td></tr><tr><td> · <code class="command">ssh</code></td></tr><tr><td> · <code class="command">scp</code></td></tr><tr><td> · <code class="command">sftp</code></td></tr></table> + + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> This only prevents root access to the OpenSSH suite of tools. </td></tr></table> + + </td></tr><tr><td> + Use PAM to limit root access to services. + </td><td> + Edit the file for the target service in the <code class="filename">/etc/pam.d/</code> directory. Make sure the <code class="filename">pam_listfile.so</code> is required for authentication.<sup>[<a id="id2965757" href="#ftn.id2965757" class="footnote">a</a>]</sup> + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Prevents root access to network services that are PAM aware. </td></tr><tr><td> The following services are prevented from accessing the root account: </td></tr><tr><td> · FTP clients </td></tr><tr><td> · Email clients </td></tr><tr><td> · <code class="command">login</code></td></tr><tr><td> · <code class="command">gdm</code></td></tr><tr><td> · <code class="command">kdm</code></td></tr><tr><td> · <code class="command">xdm</code></td></tr><tr><td> · <code class="command">ssh</code></td></tr><tr><td> · <code class="command">scp</code></td></tr><tr><td> · <code class="command">sftp</code></td></tr><tr><td> · Any PAM aware services </td></tr></table> + + </td><td> + <table border="0" summary="Simple list" class="simplelist"><tr><td> Programs and services that are not PAM aware. </td></tr></table> + + </td></tr></tbody><tbody class="footnotes"><tr><td colspan="4"><div class="footnote"><p><sup>[<a id="ftn.id2965757" href="#id2965757" class="para">a</a>] </sup> + Refer to <a class="xref" href="#sect-Security_Guide-Disallowing_Root_Access-Disabling_Root_Using_PAM" title="2.1.4.2.4. Disabling Root Using PAM">Section 2.1.4.2.4, “Disabling Root Using PAM”</a> for details. + </p></div></td></tr></tbody></table></div><h6>Table 2.1. Methods of Disabling the Root Account</h6></div><br class="table-break" /><div class="section" title="2.1.4.2.1. Disabling the Root Shell" id="sect-Security_Guide-Disallowing_Root_Access-Disabling_the_Root_Shell"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Disallowing_Root_Access-Disabling_the_Root_Shell">2.1.4.2.1. Disabling the Root Shell</h5></div></div></div><div class="para"> + To prevent users from logging in directly as root, the system administrator can set the root account's shell to <code class="command">/sbin/nologin</code> in the <code class="filename">/etc/passwd</code> file. This prevents access to the root account through commands that require a shell, such as the <code class="command">su</code> and the <code class="command">ssh</code> commands. + </div><div class="important"><h2>Important</h2><div class="para"> + Programs that do not require access to the shell, such as email clients or the <code class="command">sudo</code> command, can still access the root account. + </div></div></div><div class="section" title="2.1.4.2.2. Disabling Root Logins" id="sect-Security_Guide-Disallowing_Root_Access-Disabling_Root_Logins"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Disallowing_Root_Access-Disabling_Root_Logins">2.1.4.2.2. Disabling Root Logins</h5></div></div></div><div class="para"> + To further limit access to the root account, administrators can disable root logins at the console by editing the <code class="filename">/etc/securetty</code> file. This file lists all devices the root user is allowed to log into. If the file does not exist at all, the root user can log in through any communication device on the system, whether via the console or a raw network interface. This is dangerous, because a user can log in to his machine as root via Telnet, which transmits the password in plain text over the network. By default, Fedora's <code class="filename">/etc/securetty</code> file only allows the root user to log in at the console physically attached to the machine. To prevent root from logging in, remove the contents of this file by typing the following command: + </div><pre class="screen"><code class="command">echo > /etc/securetty</code></pre><div class="warning"><h2>Warning</h2><div class="para"> + A blank <code class="filename">/etc/securetty</code> file does <span class="emphasis"><em>not</em></span> prevent the root user from logging in remotely using the OpenSSH suite of tools because the console is not opened until after authentication. + </div></div></div><div class="section" title="2.1.4.2.3. Disabling Root SSH Logins" id="sect-Security_Guide-Disallowing_Root_Access-Disabling_Root_SSH_Logins"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Disallowing_Root_Access-Disabling_Root_SSH_Logins">2.1.4.2.3. Disabling Root SSH Logins</h5></div></div></div><div class="para"> + Root logins via the SSH protocol are disabled by default in Fedora; however, if this option has been enabled, it can be disabled again by editing the SSH daemon's configuration file (<code class="filename">/etc/ssh/sshd_config</code>). Change the line that reads: + </div><pre class="screen"><code class="computeroutput">PermitRootLogin yes</code></pre><div class="para"> + to read as follows: + </div><pre class="screen"><code class="computeroutput">PermitRootLogin no</code></pre><div class="para"> + For these changes to take effect, the SSH daemon must be restarted. This can be done via the following command: + </div><pre class="screen"><code class="computeroutput">kill -HUP `cat /var/run/sshd.pid`</code></pre></div><div class="section" title="2.1.4.2.4. Disabling Root Using PAM" id="sect-Security_Guide-Disallowing_Root_Access-Disabling_Root_Using_PAM"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Disallowing_Root_Access-Disabling_Root_Using_PAM">2.1.4.2.4. Disabling Root Using PAM</h5></div></div></div><div class="para"> + PAM, through the <code class="filename">/lib/security/pam_listfile.so</code> module, allows great flexibility in denying specific accounts. The administrator can use this module to reference a list of users who are not allowed to log in. Below is an example of how the module is used for the <code class="command">vsftpd</code> FTP server in the <code class="filename">/etc/pam.d/vsftpd</code> PAM configuration file (the <code class="computeroutput"></code> character at the end of the first line in the following example is <span class="emphasis"><em>not</em></span> necessary if the directive is on one line): + </div><pre class="screen">auth required /lib/security/pam_listfile.so item=user \ +sense=deny file=/etc/vsftpd.ftpusers onerr=succeed</pre><div class="para"> + This instructs PAM to consult the <code class="filename">/etc/vsftpd.ftpusers</code> file and deny access to the service for any listed user. The administrator can change the name of this file, and can keep separate lists for each service or use one central list to deny access to multiple services. + </div><div class="para"> + If the administrator wants to deny access to multiple services, a similar line can be added to the PAM configuration files, such as <code class="filename">/etc/pam.d/pop</code> and <code class="filename">/etc/pam.d/imap</code> for mail clients, or <code class="filename">/etc/pam.d/ssh</code> for SSH clients. + </div><div class="para"> + For more information about PAM, refer to <a class="xref" href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM" title="2.4. Pluggable Authentication Modules (PAM)">Section 2.4, “Pluggable Authentication Modules (PAM)”</a>. + </div></div></div><div class="section" title="2.1.4.3. Limiting Root Access" id="sect-Security_Guide-Administrative_Controls-Limiting_Root_Access"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Administrative_Controls-Limiting_Root_Access">2.1.4.3. Limiting Root Access</h4></div></div></div><div class="para"> + Rather than completely denying access to the root user, the administrator may want to allow access only via setuid programs, such as <code class="command">su</code> or <code class="command">sudo</code>. + </div><div class="section" title="2.1.4.3.1. The su Command" id="sect-Security_Guide-Limiting_Root_Access-The_su_Command"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Limiting_Root_Access-The_su_Command">2.1.4.3.1. The <code class="command">su</code> Command</h5></div></div></div><div class="para"> + When a user executes the <code class="command">su</code> command, they are prompted for the root password and, after authentication, is given a root shell prompt. + </div><div class="para"> + Once logged in via the <code class="command">su</code> command, the user <span class="emphasis"><em>is</em></span> the root user and has absolute administrative access to the system<sup>[<a id="id4063601" href="#ftn.id4063601" class="footnote">13</a>]</sup>. In addition, once a user has become root, it is possible for them to use the <code class="command">su</code> command to change to any other user on the system without being prompted for a password. + </div><div class="para"> + Because this program is so powerful, administrators within an organization may wish to limit who has access to the command. + </div><div class="para"> + One of the simplest ways to do this is to add users to the special administrative group called <em class="firstterm">wheel</em>. To do this, type the following command as root: + </div><pre class="screen"><code class="command">usermod -G wheel <em class="replaceable"><code><username></code></em></code></pre><div class="para"> + In the previous command, replace <em class="replaceable"><code><username></code></em> with the username you want to add to the <code class="command">wheel</code> group. + </div><div class="para"> + You can also use the <span class="application"><strong>User Manager</strong></span> to modify group memberships, as follows. Note: you need Administrator privileges to perform this procedure. + </div><div class="procedure"><ol class="1"><li class="step" title="Step 1"><div class="para"> + Click the <span class="guimenu"><strong>System</strong></span> menu on the Panel, point to <span class="guisubmenu"><strong>Administration</strong></span> and then click <span class="guimenuitem"><strong>Users and Groups</strong></span> to display the User Manager. Alternatively, type the command <code class="command">system-config-users</code> at a shell prompt. + </div></li><li class="step" title="Step 2"><div class="para"> + Click the <span class="guilabel"><strong>Users</strong></span> tab, and select the required user in the list of users. + </div></li><li class="step" title="Step 3"><div class="para"> + Click <span class="guibutton"><strong>Properties</strong></span> on the toolbar to display the User Properties dialog box (or choose <span class="guimenuitem"><strong>Properties</strong></span> on the <span class="guimenu"><strong>File</strong></span> menu). + </div></li><li class="step" title="Step 4"><div class="para"> + Click the <span class="guilabel"><strong>Groups</strong></span> tab, select the check box for the wheel group, and then click <span class="guibutton"><strong>OK</strong></span>. Refer to <a class="xref" href="#figu-Security_Guide-The_su_Command-Adding_users_to_the_wheel_group." title="Figure 2.2. Adding users to the "wheel" group.">Figure 2.2, “Adding users to the "wheel" group.”</a>. + </div></li><li class="step" title="Step 5"><div class="para"> + Open the PAM configuration file for <code class="command">su</code> (<code class="filename">/etc/pam.d/su</code>) in a text editor and remove the comment <span class="keycap"><strong>#</strong></span> from the following line: + </div><pre class="screen">auth required /lib/security/$ISA/pam_wheel.so use_uid</pre><div class="para"> + This change means that only members of the administrative group <code class="computeroutput">wheel</code> can use this program. + </div></li></ol></div><div class="figure" title="Figure 2.2. Adding users to the "wheel" group." id="figu-Security_Guide-The_su_Command-Adding_users_to_the_wheel_group."><div class="figure-contents"><div class="mediaobject"><img src="images/fed-user_pass_groups.png" width="444" alt="Adding users to the "wheel" group." /><div class="longdesc"><div class="para"> + <span class="guilabel"><strong>Groups</strong></span> pane illustration + </div></div></div></div><h6>Figure 2.2. Adding users to the "wheel" group.</h6></div><br class="figure-break" /><div class="note"><h2>Note</h2><div class="para"> + The root user is part of the <code class="computeroutput">wheel</code> group by default. + </div></div></div><div class="section" title="2.1.4.3.2. The sudo Command" id="sect-Security_Guide-Limiting_Root_Access-The_sudo_Command"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Limiting_Root_Access-The_sudo_Command">2.1.4.3.2. The <code class="command">sudo</code> Command</h5></div></div></div><div class="para"> + The <code class="command">sudo</code> command offers another approach to giving users administrative access. When trusted users precede an administrative command with <code class="command">sudo</code>, they are prompted for <span class="emphasis"><em>their own</em></span> password. Then, when they have been authenticated and assuming that the command is permitted, the administrative command is executed as if they were the root user. + </div><div class="para"> + The basic format of the <code class="command">sudo</code> command is as follows: + </div><pre class="screen"><code class="command">sudo <em class="replaceable"><code><command></code></em></code></pre><div class="para"> + In the above example, <em class="replaceable"><code><command></code></em> would be replaced by a command normally reserved for the root user, such as <code class="command">mount</code>. + </div><div class="important"><h2>Important</h2><div class="para"> + Users of the <code class="command">sudo</code> command should take extra care to log out before walking away from their machines since sudoers can use the command again without being asked for a password within a five minute period. This setting can be altered via the configuration file, <code class="filename">/etc/sudoers</code>. + </div></div><div class="para"> + The <code class="command">sudo</code> command allows for a high degree of flexibility. For instance, only users listed in the <code class="filename">/etc/sudoers</code> configuration file are allowed to use the <code class="command">sudo</code> command and the command is executed in <span class="emphasis"><em>the user's</em></span> shell, not a root shell. This means the root shell can be completely disabled, as shown in <a class="xref" href="#sect-Security_Guide-Disallowing_Root_Access-Disabling_the_Root_Shell" title="2.1.4.2.1. Disabling the Root Shell">Section 2.1.4.2.1, “Disabling the Root Shell”</a>. + </div><div class="para"> + The <code class="command">sudo</code> command also provides a comprehensive audit trail. Each successful authentication is logged to the file <code class="filename">/var/log/messages</code> and the command issued along with the issuer's user name is logged to the file <code class="filename">/var/log/secure</code>. + </div><div class="para"> + Another advantage of the <code class="command">sudo</code> command is that an administrator can allow different users access to specific commands based on their needs. + </div><div class="para"> + Administrators wanting to edit the <code class="command">sudo</code> configuration file, <code class="filename">/etc/sudoers</code>, should use the <code class="command">visudo</code> command. + </div><div class="para"> + To give someone full administrative privileges, type <code class="command">visudo</code> and add a line similar to the following in the user privilege specification section: + </div><pre class="screen"><code class="command">juan ALL=(ALL) ALL</code></pre><div class="para"> + This example states that the user, <code class="computeroutput">juan</code>, can use <code class="command">sudo</code> from any host and execute any command. + </div><div class="para"> + The example below illustrates the granularity possible when configuring <code class="command">sudo</code>: + </div><pre class="screen"><code class="command">%users localhost=/sbin/shutdown -h now</code></pre><div class="para"> + This example states that any user can issue the command <code class="command">/sbin/shutdown -h now</code> as long as it is issued from the console. + </div><div class="para"> + The man page for <code class="filename">sudoers</code> has a detailed listing of options for this file. + </div></div></div></div><div class="section" title="2.1.5. Available Network Services" id="sect-Security_Guide-Workstation_Security-Available_Network_Services"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Workstation_Security-Available_Network_Services">2.1.5. Available Network Services</h3></div></div></div><div class="para"> + While user access to administrative controls is an important issue for system administrators within an organization, monitoring which network services are active is of paramount importance to anyone who administers and operates a Linux system. + </div><div class="para"> + Many services under Fedora behave as network servers. If a network service is running on a machine, then a server application (called a <em class="firstterm">daemon</em>), is listening for connections on one or more network ports. Each of these servers should be treated as a potential avenue of attack. + </div><div class="section" title="2.1.5.1. Risks To Services" id="sect-Security_Guide-Available_Network_Services-Risks_To_Services"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Available_Network_Services-Risks_To_Services">2.1.5.1. Risks To Services</h4></div></div></div><div class="para"> + Network services can pose many risks for Linux systems. Below is a list of some of the primary issues: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em>Denial of Service Attacks (DoS)</em></span> — By flooding a service with requests, a denial of service attack can render a system unusable as it tries to log and answer each request. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Distributed Denial of Service Attack (DDoS)</em></span> — A type of DoS attack which uses multiple compromised machines (often numbering in the thousands or more) to direct a co-ordinated attack on a service, flooding it with requests and making it unusable. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Script Vulnerability Attacks</em></span> — If a server is using scripts to execute server-side actions, as Web servers commonly do, a cracker can attack improperly written scripts. These script vulnerability attacks can lead to a buffer overflow condition or allow the attacker to alter files on the system. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Buffer Overflow Attacks</em></span> — Services that connect to ports numbered 0 through 1023 must run as an administrative user. If the application has an exploitable buffer overflow, an attacker could gain access to the system as the user running the daemon. Because exploitable buffer overflows exist, crackers use automated tools to identify systems with vulnerabilities, and once they have gained access, they use automated rootkits to maintain their access to the system. + </div></li></ul></div><div class="note"><h2>Note</h2><div class="para"> + The threat of buffer overflow vulnerabilities is mitigated in Fedora by <em class="firstterm">ExecShield</em>, an executable memory segmentation and protection technology supported by x86-compatible uni- and multi-processor kernels. ExecShield reduces the risk of buffer overflow by separating virtual memory into executable and non-executable segments. Any program code that tries to execute outside of the executable segment (such as malicious code injected from a buffer overflow exploit) triggers a segmentation fault and terminates. + </div><div class="para"> + Execshield also includes support for <em class="firstterm">No eXecute</em> (<acronym class="acronym">NX</acronym>) technology on AMD64 platforms and <em class="firstterm">eXecute Disable</em> (<acronym class="acronym">XD</acronym>) technology on Itanium and <span class="trademark">Intel</span>® 64 systems. These technologies work in conjunction with ExecShield to prevent malicious code from running in the executable portion of virtual memory with a granularity of 4KB of executable code, lowering the risk of attack from stealthy buffer overflow exploits. + </div></div><div class="important"><h2>Important</h2><div class="para"> + To limit exposure to attacks over the network, all services that are unused should be turned off. + </div></div></div><div class="section" title="2.1.5.2. Identifying and Configuring Services" id="sect-Security_Guide-Available_Network_Services-Identifying_and_Configuring_Services"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Available_Network_Services-Identifying_and_Configuring_Services">2.1.5.2. Identifying and Configuring Services</h4></div></div></div><div class="para"> + To enhance security, most network services installed with Fedora are turned off by default. There are, however, some notable exceptions: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">cupsd</code> — The default print server for Fedora. + </div></li><li class="listitem"><div class="para"> + <code class="command">lpd</code> — An alternative print server. + </div></li><li class="listitem"><div class="para"> + <code class="command">xinetd</code> — A super server that controls connections to a range of subordinate servers, such as <code class="command">gssftp</code> and <code class="command">telnet</code>. + </div></li><li class="listitem"><div class="para"> + <code class="command">sendmail</code> — The Sendmail <em class="firstterm">Mail Transport Agent</em> (<abbr class="abbrev">MTA</abbr>) is enabled by default, but only listens for connections from the <span class="interface">localhost</span>. + </div></li><li class="listitem"><div class="para"> + <code class="command">sshd</code> — The OpenSSH server, which is a secure replacement for Telnet. + </div></li></ul></div><div class="para"> + When determining whether to leave these services running, it is best to use common sense and err on the side of caution. For example, if a printer is not available, do not leave <code class="command">cupsd</code> running. The same is true for <code class="command">portmap</code>. If you do not mount NFSv3 volumes or use NIS (the <code class="command">ypbind</code> service), then <code class="command">portmap</code> should be disabled. + </div><div class="figure" title="Figure 2.3. Services Configuration Tool" id="figu-Security_Guide-Identifying_and_Configuring_Services-Services_Configuration_Tool"><div class="figure-contents"><div class="mediaobject"><img src="images/fed-service_config.png" width="444" alt="Services Configuration Tool" /><div class="longdesc"><div class="para"> + <span class="application"><strong>Services Configuration Tool</strong></span> illustration + </div></div></div></div><h6>Figure 2.3. <span class="application">Services Configuration Tool</span></h6></div><br class="figure-break" /><div class="para"> + If unsure of the purpose for a particular service, the <span class="application"><strong>Services Configuration Tool</strong></span> has a description field, illustrated in <a class="xref" href="#figu-Security_Guide-Identifying_and_Configuring_Services-Services_Configuration_Tool" title="Figure 2.3. Services Configuration Tool">Figure 2.3, “<span class="application">Services Configuration Tool</span>”</a>, that provides additional information. + </div><div class="para"> + Checking which network services are available to start at boot time is only part of the story. You should also check which ports are open and listening. Refer to <a class="xref" href="#sect-Security_Guide-Server_Security-Verifying_Which_Ports_Are_Listening" title="2.2.8. Verifying Which Ports Are Listening">Section 2.2.8, “Verifying Which Ports Are Listening”</a> for more information. + </div></div><div class="section" title="2.1.5.3. Insecure Services" id="sect-Security_Guide-Available_Network_Services-Insecure_Services"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Available_Network_Services-Insecure_Services">2.1.5.3. Insecure Services</h4></div></div></div><div class="para"> + Potentially, any network service is insecure. This is why turning off unused services is so important. Exploits for services are routinely revealed and patched, making it very important to regularly update packages associated with any network service. Refer to <a class="xref" href="#sect-Security_Guide-Security_Updates" title="1.5. Security Updates">Section 1.5, “Security Updates”</a> for more information. + </div><div class="para"> + Some network protocols are inherently more insecure than others. These include any services that: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em>Transmit Usernames and Passwords Over a Network Unencrypted</em></span> — Many older protocols, such as Telnet and FTP, do not encrypt the authentication session and should be avoided whenever possible. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Transmit Sensitive Data Over a Network Unencrypted</em></span> — Many protocols transmit data over the network unencrypted. These protocols include Telnet, FTP, HTTP, and SMTP. Many network file systems, such as NFS and SMB, also transmit information over the network unencrypted. It is the user's responsibility when using these protocols to limit what type of data is transmitted. + </div><div class="para"> + Remote memory dump services, like <code class="command">netdump</code>, transmit the contents of memory over the network unencrypted. Memory dumps can contain passwords or, even worse, database entries and other sensitive information. + </div><div class="para"> + Other services like <code class="command">finger</code> and <code class="command">rwhod</code> reveal information about users of the system. + </div></li></ul></div><div class="para"> + Examples of inherently insecure services include <code class="command">rlogin</code>, <code class="command">rsh</code>, <code class="command">telnet</code>, and <code class="command">vsftpd</code>. + </div><div class="para"> + All remote login and shell programs (<code class="command">rlogin</code>, <code class="command">rsh</code>, and <code class="command">telnet</code>) should be avoided in favor of SSH. Refer to <a class="xref" href="#sect-Security_Guide-Workstation_Security-Security_Enhanced_Communication_Tools" title="2.1.7. Security Enhanced Communication Tools">Section 2.1.7, “Security Enhanced Communication Tools”</a> for more information about <code class="command">sshd</code>. + </div><div class="para"> + FTP is not as inherently dangerous to the security of the system as remote shells, but FTP servers must be carefully configured and monitored to avoid problems. Refer to <a class="xref" href="#sect-Security_Guide-Server_Security-Securing_FTP" title="2.2.6. Securing FTP">Section 2.2.6, “Securing FTP”</a> for more information about securing FTP servers. + </div><div class="para"> + Services that should be carefully implemented and behind a firewall include: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">finger</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">authd</code> (this was called <code class="command">identd</code> in previous Fedora releases.) + </div></li><li class="listitem"><div class="para"> + <code class="command">netdump</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">netdump-server</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">nfs</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">rwhod</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">sendmail</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">smb</code> (Samba) + </div></li><li class="listitem"><div class="para"> + <code class="command">yppasswdd</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">ypserv</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">ypxfrd</code> + </div></li></ul></div><div class="para"> + More information on securing network services is available in <a class="xref" href="#sect-Security_Guide-Server_Security" title="2.2. Server Security">Section 2.2, “Server Security”</a>. + </div><div class="para"> + The next section discusses tools available to set up a simple firewall. + </div></div></div><div class="section" title="2.1.6. Personal Firewalls" id="sect-Security_Guide-Workstation_Security-Personal_Firewalls"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Workstation_Security-Personal_Firewalls">2.1.6. Personal Firewalls</h3></div></div></div><div class="para"> + After the <span class="emphasis"><em>necessary</em></span> network services are configured, it is important to implement a firewall. + </div><div class="important"><h2>Important</h2><div class="para"> + You should configure the necessary services and implement a firewall <span class="emphasis"><em>before</em></span> connecting to the Internet or any other network that you do not trust. + </div></div><div class="para"> + Firewalls prevent network packets from accessing the system's network interface. If a request is made to a port that is blocked by a firewall, the request is ignored. If a service is listening on one of these blocked ports, it does not receive the packets and is effectively disabled. For this reason, care should be taken when configuring a firewall to block access to ports not in use, while not blocking access to ports used by configured services. + </div><div class="para"> + For most users, the best tool for configuring a simple firewall is the graphical firewall configuration tool which ships with Fedora: the <span class="application"><strong>Firewall Configuration Tool</strong></span> (<code class="command">system-config-firewall</code>). This tool creates broad <code class="command">iptables</code> rules for a general-purpose firewall using a control panel interface. + </div><div class="para"> + Refer to <a class="xref" href="#sect-Security_Guide-Firewalls-Basic_Firewall_Configuration" title="2.8.2. Basic Firewall Configuration">Section 2.8.2, “Basic Firewall Configuration”</a> for more information about using this application and its available options. + </div><div class="para"> + For advanced users and server administrators, manually configuring a firewall with <code class="command">iptables</code> is probably a better option. Refer to <a class="xref" href="#sect-Security_Guide-Firewalls" title="2.8. Firewalls">Section 2.8, “Firewalls”</a> for more information. Refer to <a class="xref" href="#sect-Security_Guide-IPTables" title="2.9. IPTables">Section 2.9, “IPTables”</a> for a comprehensive guide to the <code class="command">iptables</code> command. + </div></div><div class="section" title="2.1.7. Security Enhanced Communication Tools" id="sect-Security_Guide-Workstation_Security-Security_Enhanced_Communication_Tools"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Workstation_Security-Security_Enhanced_Communication_Tools">2.1.7. Security Enhanced Communication Tools</h3></div></div></div><div class="para"> + As the size and popularity of the Internet has grown, so has the threat of communication interception. Over the years, tools have been developed to encrypt communications as they are transferred over the network. + </div><div class="para"> + Fedora ships with two basic tools that use high-level, public-key-cryptography-based encryption algorithms to protect information as it travels over the network. + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em>OpenSSH</em></span> — A free implementation of the SSH protocol for encrypting network communication. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Gnu Privacy Guard (GPG)</em></span> — A free implementation of the PGP (Pretty Good Privacy) encryption application for encrypting data. + </div></li></ul></div><div class="para"> + OpenSSH is a safer way to access a remote machine and replaces older, unencrypted services like <code class="command">telnet</code> and <code class="command">rsh</code>. OpenSSH includes a network service called <code class="command">sshd</code> and three command line client applications: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">ssh</code> — A secure remote console access client. + </div></li><li class="listitem"><div class="para"> + <code class="command">scp</code> — A secure remote copy command. + </div></li><li class="listitem"><div class="para"> + <code class="command">sftp</code> — A secure pseudo-ftp client that allows interactive file transfer sessions. + </div></li></ul></div><div class="para"> + Refer to <a class="xref" href="#Security_Guide-Encryption-Data_in_Motion-Secure_Shell" title="3.6. Secure Shell">Section 3.6, “Secure Shell”</a> for more information regarding OpenSSH. + </div><div class="important"><h2>Important</h2><div class="para"> + Although the <code class="command">sshd</code> service is inherently secure, the service <span class="emphasis"><em>must</em></span> be kept up-to-date to prevent security threats. Refer to <a class="xref" href="#sect-Security_Guide-Security_Updates" title="1.5. Security Updates">Section 1.5, “Security Updates”</a> for more information. + </div></div><div class="para"> + GPG is one way to ensure private email communication. It can be used both to email sensitive data over public networks and to protect sensitive data on hard drives. + </div></div></div><div xml:lang="en-US" class="section" title="2.2. Server Security" id="sect-Security_Guide-Server_Security" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Server_Security">2.2. Server Security</h2></div></div></div><div class="para"> + When a system is used as a server on a public network, it becomes a target for attacks. Hardening the system and locking down services is therefore of paramount importance for the system administrator. + </div><div class="para"> + Before delving into specific issues, review the following general tips for enhancing server security: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Keep all services current, to protect against the latest threats. + </div></li><li class="listitem"><div class="para"> + Use secure protocols whenever possible. + </div></li><li class="listitem"><div class="para"> + Serve only one type of network service per machine whenever possible. + </div></li><li class="listitem"><div class="para"> + Monitor all servers carefully for suspicious activity. + </div></li></ul></div><div class="section" title="2.2.1. Securing Services With TCP Wrappers and xinetd" id="sect-Security_Guide-Server_Security-Securing_Services_With_TCP_Wrappers_and_xinetd"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Server_Security-Securing_Services_With_TCP_Wrappers_and_xinetd">2.2.1. Securing Services With TCP Wrappers and xinetd</h3></div></div></div><div class="para"> + <em class="firstterm">TCP Wrappers</em> provide access control to a variety of services. Most modern network services, such as SSH, Telnet, and FTP, make use of TCP Wrappers, which stand guard between an incoming request and the requested service. + </div><div class="para"> + The benefits offered by TCP Wrappers are enhanced when used in conjunction with <code class="command">xinetd</code>, a super server that provides additional access, logging, binding, redirection, and resource utilization control. + </div><div class="note"><h2>Note</h2><div class="para"> + It is a good idea to use iptables firewall rules in conjunction with TCP Wrappers and <code class="command">xinetd</code> to create redundancy within service access controls. Refer to <a class="xref" href="#sect-Security_Guide-Firewalls" title="2.8. Firewalls">Section 2.8, “Firewalls”</a> for more information about implementing firewalls with iptables commands. + </div></div><div class="para"> + The following subsections assume a basic knowledge of each topic and focus on specific security options. + </div><div class="section" title="2.2.1.1. Enhancing Security With TCP Wrappers" id="sect-Security_Guide-Securing_Services_With_TCP_Wrappers_and_xinetd-Enhancing_Security_With_TCP_Wrappers"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_Services_With_TCP_Wrappers_and_xinetd-Enhancing_Security_With_TCP_Wrappers">2.2.1.1. Enhancing Security With TCP Wrappers</h4></div></div></div><div class="para"> + TCP Wrappers are capable of much more than denying access to services. This section illustrates how they can be used to send connection banners, warn of attacks from particular hosts, and enhance logging functionality. Refer to the <code class="filename">hosts_options</code> man page for information about the TCP Wrapper functionality and control language. + </div><div class="section" title="2.2.1.1.1. TCP Wrappers and Connection Banners" id="sect-Security_Guide-Enhancing_Security_With_TCP_Wrappers-TCP_Wrappers_and_Connection_Banners"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Enhancing_Security_With_TCP_Wrappers-TCP_Wrappers_and_Connection_Banners">2.2.1.1.1. TCP Wrappers and Connection Banners</h5></div></div></div><div class="para"> + Displaying a suitable banner when users connect to a service is a good way to let potential attackers know that the system administrator is being vigilant. You can also control what information about the system is presented to users. To implement a TCP Wrappers banner for a service, use the <code class="option">banner</code> option. + </div><div class="para"> + This example implements a banner for <code class="command">vsftpd</code>. To begin, create a banner file. It can be anywhere on the system, but it must have same name as the daemon. For this example, the file is called <code class="filename">/etc/banners/vsftpd</code> and contains the following line: + </div><pre class="screen">220-Hello, %c +220-All activity on ftp.example.com is logged. +220-Inappropriate use will result in your access privileges being removed.</pre><div class="para"> + The <code class="command">%c</code> token supplies a variety of client information, such as the username and hostname, or the username and IP address to make the connection even more intimidating. + </div><div class="para"> + For this banner to be displayed to incoming connections, add the following line to the <code class="filename">/etc/hosts.allow</code> file: + </div><pre class="screen"><code class="command"> vsftpd : ALL : banners /etc/banners/ </code></pre></div><div class="section" title="2.2.1.1.2. TCP Wrappers and Attack Warnings" id="sect-Security_Guide-Enhancing_Security_With_TCP_Wrappers-TCP_Wrappers_and_Attack_Warnings"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Enhancing_Security_With_TCP_Wrappers-TCP_Wrappers_and_Attack_Warnings">2.2.1.1.2. TCP Wrappers and Attack Warnings</h5></div></div></div><div class="para"> + If a particular host or network has been detected attacking the server, TCP Wrappers can be used to warn the administrator of subsequent attacks from that host or network using the <code class="command">spawn</code> directive. + </div><div class="para"> + In this example, assume that a cracker from the 206.182.68.0/24 network has been detected attempting to attack the server. Place the following line in the <code class="filename">/etc/hosts.deny</code> file to deny any connection attempts from that network, and to log the attempts to a special file: + </div><pre class="screen"><code class="command"> ALL : 206.182.68.0 : spawn /bin/ 'date' %c %d >> /var/log/intruder_alert </code></pre><div class="para"> + The <code class="command">%d</code> token supplies the name of the service that the attacker was trying to access. + </div><div class="para"> + To allow the connection and log it, place the <code class="command">spawn</code> directive in the <code class="filename">/etc/hosts.allow</code> file. + </div><div class="note"><h2>Note</h2><div class="para"> + Because the <code class="command">spawn</code> directive executes any shell command, it is a good idea to create a special script to notify the administrator or execute a chain of commands in the event that a particular client attempts to connect to the server. + </div></div></div><div class="section" title="2.2.1.1.3. TCP Wrappers and Enhanced Logging" id="sect-Security_Guide-Enhancing_Security_With_TCP_Wrappers-TCP_Wrappers_and_Enhanced_Logging"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Enhancing_Security_With_TCP_Wrappers-TCP_Wrappers_and_Enhanced_Logging">2.2.1.1.3. TCP Wrappers and Enhanced Logging</h5></div></div></div><div class="para"> + If certain types of connections are of more concern than others, the log level can be elevated for that service using the <code class="command">severity</code> option. + </div><div class="para"> + For this example, assume that anyone attempting to connect to port 23 (the Telnet port) on an FTP server is a cracker. To denote this, place an <code class="command">emerg</code> flag in the log files instead of the default flag, <code class="command">info</code>, and deny the connection. + </div><div class="para"> + To do this, place the following line in <code class="filename">/etc/hosts.deny</code>: + </div><pre class="screen"><code class="command"> in.telnetd : ALL : severity emerg </code></pre><div class="para"> + This uses the default <code class="command">authpriv</code> logging facility, but elevates the priority from the default value of <code class="command">info</code> to <code class="command">emerg</code>, which posts log messages directly to the console. + </div></div></div><div class="section" title="2.2.1.2. Enhancing Security With xinetd" id="sect-Security_Guide-Securing_Services_With_TCP_Wrappers_and_xinetd-Enhancing_Security_With_xinetd"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_Services_With_TCP_Wrappers_and_xinetd-Enhancing_Security_With_xinetd">2.2.1.2. Enhancing Security With xinetd</h4></div></div></div><div class="para"> + This section focuses on using <code class="command">xinetd</code> to set a trap service and using it to control resource levels available to any given <code class="command">xinetd</code> service. Setting resource limits for services can help thwart <em class="firstterm">Denial of Service</em> (<acronym class="acronym">DoS</acronym>) attacks. Refer to the man pages for <code class="command">xinetd</code> and <code class="filename">xinetd.conf</code> for a list of available options. + </div><div class="section" title="2.2.1.2.1. Setting a Trap" id="sect-Security_Guide-Enhancing_Security_With_xinetd-Setting_a_Trap"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Enhancing_Security_With_xinetd-Setting_a_Trap">2.2.1.2.1. Setting a Trap</h5></div></div></div><div class="para"> + One important feature of <code class="command">xinetd</code> is its ability to add hosts to a global <code class="filename">no_access</code> list. Hosts on this list are denied subsequent connections to services managed by <code class="command">xinetd</code> for a specified period or until <code class="command">xinetd</code> is restarted. You can do this using the <code class="command">SENSOR</code> attribute. This is an easy way to block hosts attempting to scan the ports on the server. + </div><div class="para"> + The first step in setting up a <code class="command">SENSOR</code> is to choose a service you do not plan on using. For this example, Telnet is used. + </div><div class="para"> + Edit the file <code class="filename">/etc/xinetd.d/telnet</code> and change the <code class="option">flags</code> line to read: + </div><pre class="screen">flags = SENSOR</pre><div class="para"> + Add the following line: + </div><pre class="screen">deny_time = 30</pre><div class="para"> + This denies any further connection attempts to that port by that host for 30 minutes. Other acceptable values for the <code class="command">deny_time</code> attribute are FOREVER, which keeps the ban in effect until <code class="command">xinetd</code> is restarted, and NEVER, which allows the connection and logs it. + </div><div class="para"> + Finally, the last line should read: + </div><pre class="screen">disable = no</pre><div class="para"> + This enables the trap itself. + </div><div class="para"> + While using <code class="option">SENSOR</code> is a good way to detect and stop connections from undesirable hosts, it has two drawbacks: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + It does not work against stealth scans. + </div></li><li class="listitem"><div class="para"> + An attacker who knows that a <code class="option">SENSOR</code> is running can mount a Denial of Service attack against particular hosts by forging their IP addresses and connecting to the forbidden port. + </div></li></ul></div></div><div class="section" title="2.2.1.2.2. Controlling Server Resources" id="sect-Security_Guide-Enhancing_Security_With_xinetd-Controlling_Server_Resources"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Enhancing_Security_With_xinetd-Controlling_Server_Resources">2.2.1.2.2. Controlling Server Resources</h5></div></div></div><div class="para"> + Another important feature of <code class="command">xinetd</code> is its ability to set resource limits for services under its control. + </div><div class="para"> + It does this using the following directives: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="option">cps = <number_of_connections> <wait_period></code> — Limits the rate of incoming connections. This directive takes two arguments: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="option"><number_of_connections></code> — The number of connections per second to handle. If the rate of incoming connections is higher than this, the service is temporarily disabled. The default value is fifty (50). + </div></li><li class="listitem"><div class="para"> + <code class="option"><wait_period></code> — The number of seconds to wait before re-enabling the service after it has been disabled. The default interval is ten (10) seconds. + </div></li></ul></div></li><li class="listitem"><div class="para"> + <code class="option">instances = <number_of_connections></code> — Specifies the total number of connections allowed to a service. This directive accepts either an integer value or <code class="command">UNLIMITED</code>. + </div></li><li class="listitem"><div class="para"> + <code class="option">per_source = <number_of_connections></code> — Specifies the number of connections allowed to a service by each host. This directive accepts either an integer value or <code class="command">UNLIMITED</code>. + </div></li><li class="listitem"><div class="para"> + <code class="option">rlimit_as = <number[K|M]></code> — Specifies the amount of memory address space the service can occupy in kilobytes or megabytes. This directive accepts either an integer value or <code class="command">UNLIMITED</code>. + </div></li><li class="listitem"><div class="para"> + <code class="option">rlimit_cpu = <number_of_seconds></code> — Specifies the amount of time in seconds that a service may occupy the CPU. This directive accepts either an integer value or <code class="command">UNLIMITED</code>. + </div></li></ul></div><div class="para"> + Using these directives can help prevent any single <code class="command">xinetd</code> service from overwhelming the system, resulting in a denial of service. + </div></div></div></div><div class="section" title="2.2.2. Securing Portmap" id="sect-Security_Guide-Server_Security-Securing_Portmap"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Server_Security-Securing_Portmap">2.2.2. Securing Portmap</h3></div></div></div><div class="para"> + The <code class="command">portmap</code> service is a dynamic port assignment daemon for RPC services such as NIS and NFS. It has weak authentication mechanisms and has the ability to assign a wide range of ports for the services it controls. For these reasons, it is difficult to secure. + </div><div class="note"><h2>Note</h2><div class="para"> + Securing <code class="command">portmap</code> only affects NFSv2 and NFSv3 implementations, since NFSv4 no longer requires it. If you plan to implement an NFSv2 or NFSv3 server, then <code class="command">portmap</code> is required, and the following section applies. + </div></div><div class="para"> + If running RPC services, follow these basic rules. + </div><div class="section" title="2.2.2.1. Protect portmap With TCP Wrappers" id="sect-Security_Guide-Securing_Portmap-Protect_portmap_With_TCP_Wrappers"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_Portmap-Protect_portmap_With_TCP_Wrappers">2.2.2.1. Protect portmap With TCP Wrappers</h4></div></div></div><div class="para"> + It is important to use TCP Wrappers to limit which networks or hosts have access to the <code class="command">portmap</code> service since it has no built-in form of authentication. + </div><div class="para"> + Further, use <span class="emphasis"><em>only</em></span> IP addresses when limiting access to the service. Avoid using hostnames, as they can be forged by DNS poisoning and other methods. + </div></div><div class="section" title="2.2.2.2. Protect portmap With iptables" id="sect-Security_Guide-Securing_Portmap-Protect_portmap_With_iptables"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_Portmap-Protect_portmap_With_iptables">2.2.2.2. Protect portmap With iptables</h4></div></div></div><div class="para"> + To further restrict access to the <code class="command">portmap</code> service, it is a good idea to add iptables rules to the server and restrict access to specific networks. + </div><div class="para"> + Below are two example iptables commands. The first allows TCP connections to the port 111 (used by the <code class="command">portmap</code> service) from the 192.168.0.0/24 network. The second allows TCP connections to the same port from the localhost. This is necessary for the <code class="command">sgi_fam</code> service used by <span class="application"><strong>Nautilus</strong></span>. All other packets are dropped. + </div><pre class="screen">iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 111 -j DROP +iptables -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT</pre><div class="para"> + To similarly limit UDP traffic, use the following command. + </div><pre class="screen">iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 111 -j DROP</pre><div class="note"><h2>Note</h2><div class="para"> + Refer to <a class="xref" href="#sect-Security_Guide-Firewalls" title="2.8. Firewalls">Section 2.8, “Firewalls”</a> for more information about implementing firewalls with iptables commands. + </div></div></div></div><div class="section" title="2.2.3. Securing NIS" id="sect-Security_Guide-Server_Security-Securing_NIS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Server_Security-Securing_NIS">2.2.3. Securing NIS</h3></div></div></div><div class="para"> + The <em class="firstterm">Network Information Service</em> (<acronym class="acronym">NIS</acronym>) is an RPC service, called <code class="command">ypserv</code>, which is used in conjunction with <code class="command">portmap</code> and other related services to distribute maps of usernames, passwords, and other sensitive information to any computer claiming to be within its domain. + </div><div class="para"> + An NIS server is comprised of several applications. They include the following: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">/usr/sbin/rpc.yppasswdd</code> — Also called the <code class="command">yppasswdd</code> service, this daemon allows users to change their NIS passwords. + </div></li><li class="listitem"><div class="para"> + <code class="command">/usr/sbin/rpc.ypxfrd</code> — Also called the <code class="command">ypxfrd</code> service, this daemon is responsible for NIS map transfers over the network. + </div></li><li class="listitem"><div class="para"> + <code class="command">/usr/sbin/yppush</code> — This application propagates changed NIS databases to multiple NIS servers. + </div></li><li class="listitem"><div class="para"> + <code class="command">/usr/sbin/ypserv</code> — This is the NIS server daemon. + </div></li></ul></div><div class="para"> + NIS is somewhat insecure by today's standards. It has no host authentication mechanisms and transmits all of its information over the network unencrypted, including password hashes. As a result, extreme care must be taken when setting up a network that uses NIS. This is further complicated by the fact that the default configuration of NIS is inherently insecure. + </div><div class="para"> + It is recommended that anyone planning to implement an NIS server first secure the <code class="command">portmap</code> service as outlined in <a class="xref" href="#sect-Security_Guide-Server_Security-Securing_Portmap" title="2.2.2. Securing Portmap">Section 2.2.2, “Securing Portmap”</a>, then address the following issues, such as network planning. + </div><div class="section" title="2.2.3.1. Carefully Plan the Network" id="sect-Security_Guide-Securing_NIS-Carefully_Plan_the_Network"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_NIS-Carefully_Plan_the_Network">2.2.3.1. Carefully Plan the Network</h4></div></div></div><div class="para"> + Because NIS transmits sensitive information unencrypted over the network, it is important the service be run behind a firewall and on a segmented and secure network. Whenever NIS information is transmitted over an insecure network, it risks being intercepted. Careful network design can help prevent severe security breaches. + </div></div><div class="section" title="2.2.3.2. Use a Password-like NIS Domain Name and Hostname" id="sect-Security_Guide-Securing_NIS-Use_a_Password_like_NIS_Domain_Name_and_Hostname"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_NIS-Use_a_Password_like_NIS_Domain_Name_and_Hostname">2.2.3.2. Use a Password-like NIS Domain Name and Hostname</h4></div></div></div><div class="para"> + Any machine within an NIS domain can use commands to extract information from the server without authentication, as long as the user knows the NIS server's DNS hostname and NIS domain name. + </div><div class="para"> + For instance, if someone either connects a laptop computer into the network or breaks into the network from outside (and manages to spoof an internal IP address), the following command reveals the <code class="command">/etc/passwd</code> map: + </div><pre class="screen">ypcat -d <em class="replaceable"><code><NIS_domain></code></em> -h <em class="replaceable"><code><DNS_hostname></code></em> passwd</pre><div class="para"> + If this attacker is a root user, they can obtain the <code class="command">/etc/shadow</code> file by typing the following command: + </div><pre class="screen">ypcat -d <em class="replaceable"><code><NIS_domain></code></em> -h <em class="replaceable"><code><DNS_hostname></code></em> shadow</pre><div class="note"><h2>Note</h2><div class="para"> + If Kerberos is used, the <code class="command">/etc/shadow</code> file is not stored within an NIS map. + </div></div><div class="para"> + To make access to NIS maps harder for an attacker, create a random string for the DNS hostname, such as <code class="filename">o7hfawtgmhwg.domain.com</code>. Similarly, create a <span class="emphasis"><em>different</em></span> randomized NIS domain name. This makes it much more difficult for an attacker to access the NIS server. + </div></div><div class="section" title="2.2.3.3. Edit the /var/yp/securenets File" id="sect-Security_Guide-Securing_NIS-Edit_the_varypsecurenets_File"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_NIS-Edit_the_varypsecurenets_File">2.2.3.3. Edit the <code class="filename">/var/yp/securenets</code> File</h4></div></div></div><div class="para"> + If the <code class="filename">/var/yp/securenets</code> file is blank or does not exist (as is the case after a default installation), NIS listens to all networks. One of the first things to do is to put netmask/network pairs in the file so that <code class="command">ypserv</code> only responds to requests from the appropriate network. + </div><div class="para"> + Below is a sample entry from a <code class="filename">/var/yp/securenets</code> file: + </div><pre class="screen">255.255.255.0 192.168.0.0</pre><div class="warning"><h2>Warning</h2><div class="para"> + Never start an NIS server for the first time without creating the <code class="filename">/var/yp/securenets</code> file. + </div></div><div class="para"> + This technique does not provide protection from an IP spoofing attack, but it does at least place limits on what networks the NIS server services. + </div></div><div class="section" title="2.2.3.4. Assign Static Ports and Use iptables Rules" id="sect-Security_Guide-Securing_NIS-Assign_Static_Ports_and_Use_iptables_Rules"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_NIS-Assign_Static_Ports_and_Use_iptables_Rules">2.2.3.4. Assign Static Ports and Use iptables Rules</h4></div></div></div><div class="para"> + All of the servers related to NIS can be assigned specific ports except for <code class="command">rpc.yppasswdd</code> — the daemon that allows users to change their login passwords. Assigning ports to the other two NIS server daemons, <code class="command">rpc.ypxfrd</code> and <code class="command">ypserv</code>, allows for the creation of firewall rules to further protect the NIS server daemons from intruders. + </div><div class="para"> + To do this, add the following lines to <code class="filename">/etc/sysconfig/network</code>: + </div><pre class="screen">YPSERV_ARGS="-p 834" YPXFRD_ARGS="-p 835"</pre><div class="para"> + The following iptables rules can then be used to enforce which network the server listens to for these ports: + </div><pre class="screen">iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 834 -j DROP +iptables -A INPUT -p ALL -s! 192.168.0.0/24 --dport 835 -j DROP</pre><div class="para"> + This means that the server only allows connections to ports 834 and 835 if the requests come from the 192.168.0.0/24 network, regardless of the protocol. + </div><div class="note"><h2>Note</h2><div class="para"> + Refer to <a class="xref" href="#sect-Security_Guide-Firewalls" title="2.8. Firewalls">Section 2.8, “Firewalls”</a> for more information about implementing firewalls with iptables commands. + </div></div></div><div class="section" title="2.2.3.5. Use Kerberos Authentication" id="sect-Security_Guide-Securing_NIS-Use_Kerberos_Authentication"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_NIS-Use_Kerberos_Authentication">2.2.3.5. Use Kerberos Authentication</h4></div></div></div><div class="para"> + One of the issues to consider when NIS is used for authentication is that whenever a user logs into a machine, a password hash from the <code class="filename">/etc/shadow</code> map is sent over the network. If an intruder gains access to an NIS domain and sniffs network traffic, they can collect usernames and password hashes. With enough time, a password cracking program can guess weak passwords, and an attacker can gain access to a valid account on the network. + </div><div class="para"> + Since Kerberos uses secret-key cryptography, no password hashes are ever sent over the network, making the system far more secure. Refer to <a class="xref" href="#sect-Security_Guide-Kerberos" title="2.6. Kerberos">Section 2.6, “Kerberos”</a> for more information about Kerberos. + </div></div></div><div class="section" title="2.2.4. Securing NFS" id="sect-Security_Guide-Server_Security-Securing_NFS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Server_Security-Securing_NFS">2.2.4. Securing NFS</h3></div></div></div><div class="important"><h2>Important</h2><div class="para"> + The version of NFS included in Fedora, NFSv4, no longer requires the <code class="command">portmap</code> service as outlined in <a class="xref" href="#sect-Security_Guide-Server_Security-Securing_Portmap" title="2.2.2. Securing Portmap">Section 2.2.2, “Securing Portmap”</a>. NFS traffic now utilizes TCP in all versions, rather than UDP, and requires it when using NFSv4. NFSv4 now includes Kerberos user and group authentication, as part of the <code class="filename">RPCSEC_GSS</code> kernel module. Information on <code class="command">portmap</code> is still included, since Fedora supports NFSv2 and NFSv3, both of which utilize <code class="command">portmap</code>. + </div></div><div class="section" title="2.2.4.1. Carefully Plan the Network" id="sect-Security_Guide-Securing_NFS-Carefully_Plan_the_Network"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_NFS-Carefully_Plan_the_Network">2.2.4.1. Carefully Plan the Network</h4></div></div></div><div class="para"> + Now that NFSv4 has the ability to pass all information encrypted using Kerberos over a network, it is important that the service be configured correctly if it is behind a firewall or on a segmented network. NFSv2 and NFSv3 still pass data insecurely, and this should be taken into consideration. Careful network design in all of these regards can help prevent security breaches. + </div></div><div class="section" title="2.2.4.2. Beware of Syntax Errors" id="sect-Security_Guide-Securing_NFS-Beware_of_Syntax_Errors"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_NFS-Beware_of_Syntax_Errors">2.2.4.2. Beware of Syntax Errors</h4></div></div></div><div class="para"> + The NFS server determines which file systems to export and which hosts to export these directories to by consulting the <code class="filename">/etc/exports</code> file. Be careful not to add extraneous spaces when editing this file. + </div><div class="para"> + For instance, the following line in the <code class="filename">/etc/exports</code> file shares the directory <code class="command">/tmp/nfs/</code> to the host <code class="command">bob.example.com</code> with read/write permissions. + </div><pre class="screen">/tmp/nfs/ bob.example.com(rw)</pre><div class="para"> + The following line in the <code class="filename">/etc/exports</code> file, on the other hand, shares the same directory to the host <code class="computeroutput">bob.example.com</code> with read-only permissions and shares it to the <span class="emphasis"><em>world</em></span> with read/write permissions due to a single space character after the hostname. + </div><pre class="screen">/tmp/nfs/ bob.example.com (rw)</pre><div class="para"> + It is good practice to check any configured NFS shares by using the <code class="command">showmount</code> command to verify what is being shared: + </div><pre class="screen">showmount -e <em class="replaceable"><code><hostname></code></em></pre></div><div class="section" title="2.2.4.3. Do Not Use the no_root_squash Option" id="sect-Security_Guide-Securing_NFS-Do_Not_Use_the_no_root_squash_Option"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_NFS-Do_Not_Use_the_no_root_squash_Option">2.2.4.3. Do Not Use the <code class="command">no_root_squash</code> Option</h4></div></div></div><div class="para"> + By default, NFS shares change the root user to the <code class="command">nfsnobody</code> user, an unprivileged user account. This changes the owner of all root-created files to <code class="command">nfsnobody</code>, which prevents uploading of programs with the setuid bit set. + </div><div class="para"> + If <code class="command">no_root_squash</code> is used, remote root users are able to change any file on the shared file system and leave applications infected by trojans for other users to inadvertently execute. + </div></div><div class="section" title="2.2.4.4. NFS Firewall Configuration" id="sect-Security_Guide-Securing_NFS-NFS_Firewall_Configuration"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_NFS-NFS_Firewall_Configuration">2.2.4.4. NFS Firewall Configuration</h4></div></div></div><div class="para"> + The ports used for NFS are assigned dynamically by rpcbind, which can cause problems when creating firewall rules. To simplify this process, use the <span class="emphasis"><em>/etc/sysconfig/nfs</em></span> file to specify which ports are to be used: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">MOUNTD_PORT</code> — TCP and UDP port for mountd (rpc.mountd) + </div></li><li class="listitem"><div class="para"> + <code class="command">STATD_PORT</code> — TCP and UDP port for status (rpc.statd) + </div></li><li class="listitem"><div class="para"> + <code class="command">LOCKD_TCPPORT</code> — TCP port for nlockmgr (rpc.lockd) + </div></li><li class="listitem"><div class="para"> + <code class="command">LOCKD_UDPPORT</code> — UDP port nlockmgr (rpc.lockd) + </div></li></ul></div><div class="para"> + Port numbers specified must not be used by any other service. Configure your firewall to allow the port numbers specified, as well as TCP and UDP port 2049 (NFS). + </div><div class="para"> + Run the <code class="command">rpcinfo -p</code> command on the NFS server to see which ports and RPC programs are being used. + </div></div></div><div class="section" title="2.2.5. Securing the Apache HTTP Server" id="sect-Security_Guide-Server_Security-Securing_the_Apache_HTTP_Server"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Server_Security-Securing_the_Apache_HTTP_Server">2.2.5. Securing the Apache HTTP Server</h3></div></div></div><div class="para"> + The Apache HTTP Server is one of the most stable and secure services that ships with Fedora. A large number of options and techniques are available to secure the Apache HTTP Server — too numerous to delve into deeply here. The following section briefly explains good practices when running the Apache HTTP Server. + </div><div class="para"> + Always verify that any scripts running on the system work as intended <span class="emphasis"><em>before</em></span> putting them into production. Also, ensure that only the root user has write permissions to any directory containing scripts or CGIs. To do this, run the following commands as the root user: + </div><div class="orderedlist"><ol><li class="listitem"><pre class="screen">chown root <em class="replaceable"><code><directory_name></code></em></pre></li><li class="listitem"><pre class="screen">chmod 755 <em class="replaceable"><code><directory_name></code></em></pre></li></ol></div><div class="para"> + System administrators should be careful when using the following configuration options (configured in <code class="filename">/etc/httpd/conf/httpd.conf</code>): + </div><div class="variablelist"><dl><dt><span class="term"><code class="option">FollowSymLinks</code></span></dt><dd><div class="para"> + This directive is enabled by default, so be sure to use caution when creating symbolic links to the document root of the Web server. For instance, it is a bad idea to provide a symbolic link to <code class="filename">/</code>. + </div></dd><dt><span class="term"><code class="option">Indexes</code></span></dt><dd><div class="para"> + This directive is enabled by default, but may not be desirable. To prevent visitors from browsing files on the server, remove this directive. + </div></dd><dt><span class="term"><code class="option">UserDir</code></span></dt><dd><div class="para"> + The <code class="option">UserDir</code> directive is disabled by default because it can confirm the presence of a user account on the system. To enable user directory browsing on the server, use the following directives: + </div><pre class="screen">UserDir enabled +UserDir disabled root</pre><div class="para"> + These directives activate user directory browsing for all user directories other than <code class="filename">/root/</code>. To add users to the list of disabled accounts, add a space-delimited list of users on the <code class="option">UserDir disabled</code> line. + </div></dd></dl></div><div class="important"><h2>Important</h2><div class="para"> + Do not remove the <code class="option">IncludesNoExec</code> directive. By default, the <em class="firstterm">Server-Side Includes</em> (<abbr class="abbrev">SSI</abbr>) module cannot execute commands. It is recommended that you do not change this setting unless absolutely necessary, as it could, potentially, enable an attacker to execute commands on the system. + </div></div></div><div class="section" title="2.2.6. Securing FTP" id="sect-Security_Guide-Server_Security-Securing_FTP"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Server_Security-Securing_FTP">2.2.6. Securing FTP</h3></div></div></div><div class="para"> + The <em class="firstterm">File Transfer Protocol</em> (<abbr class="abbrev">FTP</abbr>) is an older TCP protocol designed to transfer files over a network. Because all transactions with the server, including user authentication, are unencrypted, it is considered an insecure protocol and should be carefully configured. + </div><div class="para"> + Fedora provides three FTP servers. + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">gssftpd</code> — A Kerberos-aware <code class="command">xinetd</code>-based FTP daemon that does not transmit authentication information over the network. + </div></li><li class="listitem"><div class="para"> + <span class="application"><strong>Red Hat Content Accelerator</strong></span> (<code class="command">tux</code>) — A kernel-space Web server with FTP capabilities. + </div></li><li class="listitem"><div class="para"> + <code class="command">vsftpd</code> — A standalone, security oriented implementation of the FTP service. + </div></li></ul></div><div class="para"> + The following security guidelines are for setting up the <code class="command">vsftpd</code> FTP service. + </div><div class="section" title="2.2.6.1. FTP Greeting Banner" id="sect-Security_Guide-Securing_FTP-FTP_Greeting_Banner"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_FTP-FTP_Greeting_Banner">2.2.6.1. FTP Greeting Banner</h4></div></div></div><div class="para"> + Before submitting a username and password, all users are presented with a greeting banner. By default, this banner includes version information useful to crackers trying to identify weaknesses in a system. + </div><div class="para"> + To change the greeting banner for <code class="command">vsftpd</code>, add the following directive to the <code class="filename">/etc/vsftpd/vsftpd.conf</code> file: + </div><pre class="screen">ftpd_banner=<em class="replaceable"><code><insert_greeting_here></code></em></pre><div class="para"> + Replace <em class="replaceable"><code><insert_greeting_here></code></em> in the above directive with the text of the greeting message. + </div><div class="para"> + For mutli-line banners, it is best to use a banner file. To simplify management of multiple banners, place all banners in a new directory called <code class="filename">/etc/banners/</code>. The banner file for FTP connections in this example is <code class="filename">/etc/banners/ftp.msg</code>. Below is an example of what such a file may look like: + </div><pre class="screen">######### # Hello, all activity on ftp.example.com is logged. #########</pre><div class="note"><h2>Note</h2><div class="para"> + It is not necessary to begin each line of the file with <code class="command">220</code> as specified in <a class="xref" href="#sect-Security_Guide-Enhancing_Security_With_TCP_Wrappers-TCP_Wrappers_and_Connection_Banners" title="2.2.1.1.1. TCP Wrappers and Connection Banners">Section 2.2.1.1.1, “TCP Wrappers and Connection Banners”</a>. + </div></div><div class="para"> + To reference this greeting banner file for <code class="command">vsftpd</code>, add the following directive to the <code class="filename">/etc/vsftpd/vsftpd.conf</code> file: + </div><pre class="screen">banner_file=/etc/banners/ftp.msg</pre><div class="para"> + It also is possible to send additional banners to incoming connections using TCP Wrappers as described in <a class="xref" href="#sect-Security_Guide-Enhancing_Security_With_TCP_Wrappers-TCP_Wrappers_and_Connection_Banners" title="2.2.1.1.1. TCP Wrappers and Connection Banners">Section 2.2.1.1.1, “TCP Wrappers and Connection Banners”</a>. + </div></div><div class="section" title="2.2.6.2. Anonymous Access" id="sect-Security_Guide-Securing_FTP-Anonymous_Access"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_FTP-Anonymous_Access">2.2.6.2. Anonymous Access</h4></div></div></div><div class="para"> + The presence of the <code class="filename">/var/ftp/</code> directory activates the anonymous account. + </div><div class="para"> + The easiest way to create this directory is to install the <code class="filename">vsftpd</code> package. This package establishes a directory tree for anonymous users and configures the permissions on directories to read-only for anonymous users. + </div><div class="para"> + By default the anonymous user cannot write to any directories. + </div><div class="warning"><h2>Warning</h2><div class="para"> + If enabling anonymous access to an FTP server, be aware of where sensitive data is stored. + </div></div><div class="section" title="2.2.6.2.1. Anonymous Upload" id="sect-Security_Guide-Anonymous_Access-Anonymous_Upload"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Anonymous_Access-Anonymous_Upload">2.2.6.2.1. Anonymous Upload</h5></div></div></div><div class="para"> + To allow anonymous users to upload files, it is recommended that a write-only directory be created within <code class="filename">/var/ftp/pub/</code>. + </div><div class="para"> + To do this, type the following command: + </div><pre class="screen">mkdir /var/ftp/pub/upload</pre><div class="para"> + Next, change the permissions so that anonymous users cannot view the contents of the directory: + </div><pre class="screen">chmod 730 /var/ftp/pub/upload</pre><div class="para"> + A long format listing of the directory should look like this: + </div><pre class="screen">drwx-wx--- 2 root ftp 4096 Feb 13 20:05 upload</pre><div class="warning"><h2>Warning</h2><div class="para"> + Administrators who allow anonymous users to read and write in directories often find that their servers become a repository of stolen software. + </div></div><div class="para"> + Additionally, under <code class="command">vsftpd</code>, add the following line to the <code class="filename">/etc/vsftpd/vsftpd.conf</code> file: + </div><pre class="screen">anon_upload_enable=YES</pre></div></div><div class="section" title="2.2.6.3. User Accounts" id="sect-Security_Guide-Securing_FTP-User_Accounts"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_FTP-User_Accounts">2.2.6.3. User Accounts</h4></div></div></div><div class="para"> + Because FTP transmits unencrypted usernames and passwords over insecure networks for authentication, it is a good idea to deny system users access to the server from their user accounts. + </div><div class="para"> + To disable all user accounts in <code class="command">vsftpd</code>, add the following directive to <code class="filename">/etc/vsftpd/vsftpd.conf</code>: + </div><pre class="screen">local_enable=NO</pre><div class="section" title="2.2.6.3.1. Restricting User Accounts" id="sect-Security_Guide-User_Accounts-Restricting_User_Accounts"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-User_Accounts-Restricting_User_Accounts">2.2.6.3.1. Restricting User Accounts</h5></div></div></div><div class="para"> + To disable FTP access for specific accounts or specific groups of accounts, such as the root user and those with <code class="command">sudo</code> privileges, the easiest way is to use a PAM list file as described in <a class="xref" href="#sect-Security_Guide-Disallowing_Root_Access-Disabling_Root_Using_PAM" title="2.1.4.2.4. Disabling Root Using PAM">Section 2.1.4.2.4, “Disabling Root Using PAM”</a>. The PAM configuration file for <code class="command">vsftpd</code> is <code class="filename">/etc/pam.d/vsftpd</code>. + </div><div class="para"> + It is also possible to disable user accounts within each service directly. + </div><div class="para"> + To disable specific user accounts in <code class="command">vsftpd</code>, add the username to <code class="filename">/etc/vsftpd.ftpusers</code> + </div></div></div><div class="section" title="2.2.6.4. Use TCP Wrappers To Control Access" id="sect-Security_Guide-Securing_FTP-Use_TCP_Wrappers_To_Control_Access"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_FTP-Use_TCP_Wrappers_To_Control_Access">2.2.6.4. Use TCP Wrappers To Control Access</h4></div></div></div><div class="para"> + Use TCP Wrappers to control access to either FTP daemon as outlined in <a class="xref" href="#sect-Security_Guide-Securing_Services_With_TCP_Wrappers_and_xinetd-Enhancing_Security_With_TCP_Wrappers" title="2.2.1.1. Enhancing Security With TCP Wrappers">Section 2.2.1.1, “Enhancing Security With TCP Wrappers”</a>. + </div></div></div><div class="section" title="2.2.7. Securing Sendmail" id="sect-Security_Guide-Server_Security-Securing_Sendmail"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Server_Security-Securing_Sendmail">2.2.7. Securing Sendmail</h3></div></div></div><div class="para"> + Sendmail is a Mail Transfer Agent (MTA) that uses the Simple Mail Transfer Protocol (SMTP) to deliver electronic messages between other MTAs and to email clients or delivery agents. Although many MTAs are capable of encrypting traffic between one another, most do not, so sending email over any public networks is considered an inherently insecure form of communication. + </div><div class="para"> + It is recommended that anyone planning to implement a Sendmail server address the following issues. + </div><div class="section" title="2.2.7.1. Limiting a Denial of Service Attack" id="sect-Security_Guide-Securing_Sendmail-Limiting_a_Denial_of_Service_Attack"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_Sendmail-Limiting_a_Denial_of_Service_Attack">2.2.7.1. Limiting a Denial of Service Attack</h4></div></div></div><div class="para"> + Because of the nature of email, a determined attacker can flood the server with mail fairly easily and cause a denial of service. By setting limits to the following directives in <code class="filename">/etc/mail/sendmail.mc</code>, the effectiveness of such attacks is limited. + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">confCONNECTION_RATE_THROTTLE</code> — The number of connections the server can receive per second. By default, Sendmail does not limit the number of connections. If a limit is set and reached, further connections are delayed. + </div></li><li class="listitem"><div class="para"> + <code class="command">confMAX_DAEMON_CHILDREN</code> — The maximum number of child processes that can be spawned by the server. By default, Sendmail does not assign a limit to the number of child processes. If a limit is set and reached, further connections are delayed. + </div></li><li class="listitem"><div class="para"> + <code class="command">confMIN_FREE_BLOCKS</code> — The minimum number of free blocks which must be available for the server to accept mail. The default is 100 blocks. + </div></li><li class="listitem"><div class="para"> + <code class="command">confMAX_HEADERS_LENGTH</code> — The maximum acceptable size (in bytes) for a message header. + </div></li><li class="listitem"><div class="para"> + <code class="command">confMAX_MESSAGE_SIZE</code> — The maximum acceptable size (in bytes) for a single message. + </div></li></ul></div></div><div class="section" title="2.2.7.2. NFS and Sendmail" id="sect-Security_Guide-Securing_Sendmail-NFS_and_Sendmail"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_Sendmail-NFS_and_Sendmail">2.2.7.2. NFS and Sendmail</h4></div></div></div><div class="para"> + Never put the mail spool directory, <code class="filename">/var/spool/mail/</code>, on an NFS shared volume. + </div><div class="para"> + Because NFSv2 and NFSv3 do not maintain control over user and group IDs, two or more users can have the same UID, and receive and read each other's mail. + </div><div class="note"><h2>Note</h2><div class="para"> + With NFSv4 using Kerberos, this is not the case, since the <code class="filename">SECRPC_GSS</code> kernel module does not utilize UID-based authentication. However, it is still considered good practice <span class="emphasis"><em>not</em></span> to put the mail spool directory on NFS shared volumes. + </div></div></div><div class="section" title="2.2.7.3. Mail-only Users" id="sect-Security_Guide-Securing_Sendmail-Mail_only_Users"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Securing_Sendmail-Mail_only_Users">2.2.7.3. Mail-only Users</h4></div></div></div><div class="para"> + To help prevent local user exploits on the Sendmail server, it is best for mail users to only access the Sendmail server using an email program. Shell accounts on the mail server should not be allowed and all user shells in the <code class="filename">/etc/passwd</code> file should be set to <code class="command">/sbin/nologin</code> (with the possible exception of the root user). + </div></div></div><div class="section" title="2.2.8. Verifying Which Ports Are Listening" id="sect-Security_Guide-Server_Security-Verifying_Which_Ports_Are_Listening"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Server_Security-Verifying_Which_Ports_Are_Listening">2.2.8. Verifying Which Ports Are Listening</h3></div></div></div><div class="para"> + After configuring network services, it is important to pay attention to which ports are actually listening on the system's network interfaces. Any open ports can be evidence of an intrusion. + </div><div class="para"> + There are two basic approaches for listing the ports that are listening on the network. The less reliable approach is to query the network stack using commands such as <code class="command">netstat -an</code> or <code class="command">lsof -i</code>. This method is less reliable since these programs do not connect to the machine from the network, but rather check to see what is running on the system. For this reason, these applications are frequent targets for replacement by attackers. Crackers attempt to cover their tracks if they open unauthorized network ports by replacing <code class="command">netstat</code> and <code class="command">lsof</code> with their own, modified versions. + </div><div class="para"> + A more reliable way to check which ports are listening on the network is to use a port scanner such as <code class="command">nmap</code>. + </div><div class="para"> + The following command issued from the console determines which ports are listening for TCP connections from the network: + </div><pre class="screen">nmap -sT -O localhost</pre><div class="para"> + The output of this command appears as follows: + </div><pre class="screen">Starting Nmap 4.68 ( http://nmap.org ) at 2009-03-06 12:08 EST +Interesting ports on localhost.localdomain (127.0.0.1): +Not shown: 1711 closed ports +PORT STATE SERVICE +22/tcp open ssh +25/tcp open smtp +111/tcp open rpcbind +113/tcp open auth +631/tcp open ipp +834/tcp open unknown +2601/tcp open zebra +32774/tcp open sometimes-rpc11 +Device type: general purpose +Running: Linux 2.6.X +OS details: Linux 2.6.17 - 2.6.24 +Uptime: 4.122 days (since Mon Mar 2 09:12:31 2009) +Network Distance: 0 hops +OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . +Nmap done: 1 IP address (1 host up) scanned in 1.420 seconds</pre><div class="para"> + This output shows the system is running <code class="command">portmap</code> due to the presence of the <code class="computeroutput">sunrpc</code> service. However, there is also a mystery service on port 834. To check if the port is associated with the official list of known services, type: + </div><pre class="screen">cat /etc/services | grep 834</pre><div class="para"> + This command returns no output. This indicates that while the port is in the reserved range (meaning 0 through 1023) and requires root access to open, it is not associated with a known service. + </div><div class="para"> + Next, check for information about the port using <code class="command">netstat</code> or <code class="command">lsof</code>. To check for port 834 using <code class="command">netstat</code>, use the following command: + </div><pre class="screen">netstat -anp | grep 834</pre><div class="para"> + The command returns the following output: + </div><pre class="screen">tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind</pre><div class="para"> + The presence of the open port in <code class="command">netstat</code> is reassuring because a cracker opening a port surreptitiously on a hacked system is not likely to allow it to be revealed through this command. Also, the <code class="option">[p]</code> option reveals the process ID (PID) of the service that opened the port. In this case, the open port belongs to <code class="command">ypbind</code> (<abbr class="abbrev">NIS</abbr>), which is an <abbr class="abbrev">RPC</abbr> service handled in conjunction with the <code class="command">portmap</code> service. + </div><div class="para"> + The <code class="command">lsof</code> command reveals similar information to <code class="command">netstat</code> since it is also capable of linking open ports to services: + </div><pre class="screen">lsof -i | grep 834</pre><div class="para"> + The relevant portion of the output from this command follows: + </div><pre class="screen">ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN) +ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN) +ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN) +ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)</pre><div class="para"> + These tools reveal a great deal about the status of the services running on a machine. These tools are flexible and can provide a wealth of information about network services and configuration. Refer to the man pages for <code class="command">lsof</code>, <code class="command">netstat</code>, <code class="command">nmap</code>, and <code class="filename">services</code> for more information. + </div></div></div><div xml:lang="en-US" class="section" title="2.3. Single Sign-on (SSO)" id="sect-Security_Guide-Single_Sign_on_SSO" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Single_Sign_on_SSO">2.3. Single Sign-on (SSO)</h2></div></div></div><div class="section" title="2.3.1. Introduction" id="sect-Security_Guide-Single_Sign_on_SSO-Introduction"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Single_Sign_on_SSO-Introduction">2.3.1. Introduction</h3></div></div></div><div class="para"> + The Fedora SSO functionality reduces the number of times Fedora desktop users have to enter their passwords. Several major applications leverage the same underlying authentication and authorization mechanisms so that users can log in to Fedora from the log-in screen, and then not need to re-enter their passwords. These applications are detailed below. + </div><div class="para"> + In addition, users can log in to their machines even when there is no network (<em class="firstterm">offline mode</em>) or where network connectivity is unreliable, for example, wireless access. In the latter case, services will degrade gracefully. + </div><div class="section" title="2.3.1.1. Supported Applications" id="sect-Security_Guide-Introduction-Supported_Applications"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Introduction-Supported_Applications">2.3.1.1. Supported Applications</h4></div></div></div><div class="para"> + The following applications are currently supported by the unified log-in scheme in Fedora: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Login + </div></li><li class="listitem"><div class="para"> + Screensaver + </div></li><li class="listitem"><div class="para"> + Firefox and Thunderbird + </div></li></ul></div></div><div class="section" title="2.3.1.2. Supported Authentication Mechanisms" id="sect-Security_Guide-Introduction-Supported_Authentication_Mechanisms"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Introduction-Supported_Authentication_Mechanisms">2.3.1.2. Supported Authentication Mechanisms</h4></div></div></div><div class="para"> + Fedora currently supports the following authentication mechanisms: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Kerberos name/password login + </div></li><li class="listitem"><div class="para"> + Smart card/PIN login + </div></li></ul></div></div><div class="section" title="2.3.1.3. Supported Smart Cards" id="sect-Security_Guide-Introduction-Supported_Smart_Cards"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Introduction-Supported_Smart_Cards">2.3.1.3. Supported Smart Cards</h4></div></div></div><div class="para"> + Fedora has been tested with the Cyberflex e-gate card and reader, but any card that complies with both Java card 2.1.1 and Global Platform 2.0.1 specifications should operate correctly, as should any reader that is supported by PCSC-lite. + </div><div class="para"> + Fedora has also been tested with Common Access Cards (CAC). The supported reader for CAC is the SCM SCR 331 USB Reader. + </div><div class="para"> + As of Fedora 5.2, Gemalto smart cards (Cyberflex Access 64k v2, standard with DER SHA1 value configured as in PKCSI v2.1) are now supported. These smart cards now use readers compliant with Chip/Smart Card Interface Devices (CCID). + </div></div><div class="section" title="2.3.1.4. Advantages of Fedora Single Sign-on" id="sect-Security_Guide-Introduction-Advantages_of_PROD_Single_Sign_on"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Introduction-Advantages_of_PROD_Single_Sign_on">2.3.1.4. Advantages of Fedora Single Sign-on</h4></div></div></div><div class="para"> + Numerous security mechanisms currently exist that utilize a large number of protocols and credential stores. Examples include SSL, SSH, IPsec, and Kerberos. Fedora SSO aims to unify these schemes to support the requirements listed above. This does not mean replacing Kerberos with X.509v3 certificates, but rather uniting them to reduce the burden on both system users and the administrators who manage them. + </div><div class="para"> + To achieve this goal, Fedora: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Provides a single, shared instance of the NSS crypto libraries on each operating system. + </div></li><li class="listitem"><div class="para"> + Ships the Certificate System's Enterprise Security Client (ESC) with the base operating system. The ESC application monitors smart card insertion events. If it detects that the user has inserted a smart card that was designed to be used with the Fedora Certificate System server product, it displays a user interface instructing the user how to enroll that smart card. + </div></li><li class="listitem"><div class="para"> + Unifies Kerberos and NSS so that users who log in to the operating system using a smart card also obtain a Kerberos credential (which allows them to log in to file servers, etc.) + </div></li></ul></div></div></div><div class="section" title="2.3.2. Getting Started with your new Smart Card" id="sect-Security_Guide-Single_Sign_on_SSO-Getting_Started_with_your_new_Smart_Card"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Single_Sign_on_SSO-Getting_Started_with_your_new_Smart_Card">2.3.2. Getting Started with your new Smart Card</h3></div></div></div><div class="para"> + Before you can use your smart card to log in to your system and take advantage of the increased security options this technology provides, you need to perform some basic installation and configuration steps. These are described below. + </div><div class="note"><h2>Note</h2><div class="para"> + This section provides a high-level view of getting started with your smart card. More detailed information is available in the Red Hat Certificate System Enterprise Security Client Guide. + </div></div><div class="procedure"><ol class="1"><li class="step" title="Step 1"><div class="para"> + Log in with your Kerberos name and password + </div></li><li class="step" title="Step 2"><div class="para"> + Make sure you have the <code class="filename">nss-tools</code> package loaded. + </div></li><li class="step" title="Step 3"><div class="para"> + Download and install your corporate-specific root certificates. Use the following command to install the root CA certificate: + </div><pre class="screen">certutil -A -d /etc/pki/nssdb -n "root ca cert" -t "CT,C,C" -i ./ca_cert_in_base64_format.crt</pre></li><li class="step" title="Step 4"><div class="para"> + Verify that you have the following RPMs installed on your system: esc, pam_pkcs11, coolkey, ifd-egate, ccid, gdm, authconfig, and authconfig-gtk. + </div></li><li class="step" title="Step 5"><div class="para"> + Enable Smart Card Login Support + </div><ol class="a"><li class="step" title="Step 5.a"><div class="para"> + On the Gnome Title Bar, select System->Administration->Authentication. + </div></li><li class="step" title="Step 5.b"><div class="para"> + Type your machine's root password if necessary. + </div></li><li class="step" title="Step 5.c"><div class="para"> + In the Authentication Configuration dialog, click the <span class="guilabel"><strong>Authentication</strong></span> tab. + </div></li><li class="step" title="Step 5.d"><div class="para"> + Select the <span class="guilabel"><strong>Enable Smart Card Support</strong></span> check box. + </div></li><li class="step" title="Step 5.e"><div class="para"> + Click the <span class="guibutton"><strong>Configure Smart Card...</strong></span> button to display the Smartcard Settings dialog, and specify the required settings: + </div><div class="para"> + <div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="guilabel"><strong>Require smart card for login</strong></span> — Clear this check box. After you have successfully logged in with the smart card you can select this option to prevent users from logging in without a smart card. + </div></li><li class="listitem"><div class="para"> + <span class="guilabel"><strong>Card Removal Action</strong></span> — This controls what happens when you remove the smart card after you have logged in. The available options are: + </div><div class="para"> + <div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="guilabel"><strong>Lock</strong></span> — Removing the smart card locks the X screen. + </div></li><li class="listitem"><div class="para"> + <span class="guilabel"><strong>Ignore</strong></span> — Removing the smart card has no effect. + </div></li></ul></div> + + </div></li></ul></div> + + </div></li></ol></li><li class="step" title="Step 6"><div class="para"> + If you need to enable the Online Certificate Status Protocol (<abbr class="abbrev">OCSP</abbr>), open the <code class="filename">/etc/pam_pkcs11/pam_pkcs11.conf</code> file, and locate the following line: + </div><div class="para"> + <code class="command">enable_ocsp = false;</code> + </div><div class="para"> + Change this value to true, as follows: + </div><div class="para"> + <code class="command">enable_ocsp = true;</code> + </div></li><li class="step" title="Step 7"><div class="para"> + Enroll your smart card + </div></li><li class="step" title="Step 8"><div class="para"> + If you are using a CAC card, you also need to perform the following steps: + </div><ol class="a"><li class="step" title="Step 8.a"><div class="para"> + Change to the root account and create a file called <code class="filename">/etc/pam_pkcs11/cn_map</code>. + </div></li><li class="step" title="Step 8.b"><div class="para"> + Add the following entry to the <code class="filename">cn_map</code> file: + </div><div class="para"> + <em class="replaceable"><code>MY.CAC_CN.123454</code></em> -> <em class="replaceable"><code>myloginid</code></em> + </div><div class="para"> + where <em class="replaceable"><code>MY.CAC_CN.123454</code></em> is the Common Name on your CAC and <em class="replaceable"><code>myloginid</code></em> is your UNIX login ID. + </div></li></ol></li><li class="step" title="Step 9"><div class="para"> + Logout + </div></li></ol></div><div class="section" title="2.3.2.1. Troubleshooting" id="sect-Security_Guide-Getting_Started_with_your_new_Smart_Card-Troubleshooting"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Getting_Started_with_your_new_Smart_Card-Troubleshooting">2.3.2.1. Troubleshooting</h4></div></div></div><div class="para"> + If you have trouble getting your smart card to work, try using the following command to locate the source of the problem: + </div><pre class="screen">pklogin_finder debug</pre><div class="para"> + If you run the <code class="command">pklogin_finder</code> tool in debug mode while an enrolled smart card is plugged in, it attempts to output information about the validity of certificates, and if it is successful in attempting to map a login ID from the certificates that are on the card. + </div></div></div><div class="section" title="2.3.3. How Smart Card Enrollment Works" id="sect-Security_Guide-Single_Sign_on_SSO-How_Smart_Card_Enrollment_Works"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Single_Sign_on_SSO-How_Smart_Card_Enrollment_Works">2.3.3. How Smart Card Enrollment Works</h3></div></div></div><div class="para"> + Smart cards are said to be <em class="firstterm">enrolled</em> when they have received an appropriate certificate signed by a valid Certificate Authority (<abbr class="abbrev">CA</abbr>). This involves several steps, described below: + </div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + The user inserts their smart card into the smart card reader on their workstation. This event is recognized by the Enterprise Security Client (<abbr class="abbrev">ESC</abbr>). + </div></li><li class="listitem"><div class="para"> + The enrollment page is displayed on the user's desktop. The user completes the required details and the user's system then connects to the Token Processing System (<abbr class="abbrev">TPS</abbr>) and the <abbr class="abbrev">CA</abbr>. + </div></li><li class="listitem"><div class="para"> + The <abbr class="abbrev">TPS</abbr> enrolls the smart card using a certificate signed by the <abbr class="abbrev">CA</abbr>. + </div></li></ol></div><div class="figure" title="Figure 2.4. How Smart Card Enrollment Works" id="figu-Security_Guide-How_Smart_Card_Enrollment_Works-How_Smart_Card_Enrollment_Works"><div class="figure-contents"><div class="mediaobject"><img src="images/SCLoginEnrollment.png" width="444" alt="How Smart Card Enrollment Works" /><div class="longdesc"><div class="para"> + How Smart Card Enrollment Works. + </div></div></div></div><h6>Figure 2.4. How Smart Card Enrollment Works</h6></div><br class="figure-break" /></div><div class="section" title="2.3.4. How Smart Card Login Works" id="sect-Security_Guide-Single_Sign_on_SSO-How_Smart_Card_Login_Works"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Single_Sign_on_SSO-How_Smart_Card_Login_Works">2.3.4. How Smart Card Login Works</h3></div></div></div><div class="para"> + This section provides a brief overview of the process of logging in using a smart card. + </div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + When the user inserts their smart card into the smart card reader, this event is recognized by the PAM facility, which prompts for the user's PIN. + </div></li><li class="listitem"><div class="para"> + The system then looks up the user's current certificates and verifies their validity. The certificate is then mapped to the user's UID. + </div></li><li class="listitem"><div class="para"> + This is validated against the KDC and login granted. + </div></li></ol></div><div class="figure" title="Figure 2.5. How Smart Card Login Works" id="figu-Security_Guide-How_Smart_Card_Login_Works-How_Smart_Card_Login_Works"><div class="figure-contents"><div class="mediaobject"><img src="images/SCLogin.png" width="444" alt="How Smart Card Login Works" /><div class="longdesc"><div class="para"> + How Smart Card Login Works. + </div></div></div></div><h6>Figure 2.5. How Smart Card Login Works</h6></div><br class="figure-break" /><div class="note"><h2>Note</h2><div class="para"> + You cannot log in with a card that has not been enrolled, even if it has been formatted. You need to log in with a formatted, enrolled card, or not using a smart card, before you can enroll a new card. + </div></div><div class="para"> + Refer to <a class="xref" href="#sect-Security_Guide-Kerberos" title="2.6. Kerberos">Section 2.6, “Kerberos”</a> and <a class="xref" href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM" title="2.4. Pluggable Authentication Modules (PAM)">Section 2.4, “Pluggable Authentication Modules (PAM)”</a> for more information on Kerberos and <acronym class="acronym">PAM</acronym>. + </div></div><div class="section" title="2.3.5. Configuring Firefox to use Kerberos for SSO" id="sect-Security_Guide-Single_Sign_on_SSO-Configuring_Firefox_to_use_Kerberos_for_SSO"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Single_Sign_on_SSO-Configuring_Firefox_to_use_Kerberos_for_SSO">2.3.5. Configuring Firefox to use Kerberos for SSO</h3></div></div></div><div class="para"> + You can configure Firefox to use Kerberos for Single Sign-on. In order for this functionality to work correctly, you need to configure your web browser to send your Kerberos credentials to the appropriate <abbr class="abbrev">KDC</abbr>.The following section describes the configuration changes and other requirements to achieve this. + </div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + In the address bar of Firefox, type <strong class="userinput"><code>about:config</code></strong> to display the list of current configuration options. + </div></li><li class="listitem"><div class="para"> + In the <span class="guilabel"><strong>Filter</strong></span> field, type <strong class="userinput"><code>negotiate</code></strong> to restrict the list of options. + </div></li><li class="listitem"><div class="para"> + Double-click the <span class="emphasis"><em>network.negotiate-auth.trusted-uris</em></span> entry to display the <span class="emphasis"><em>Enter string value</em></span> dialog box. + </div></li><li class="listitem"><div class="para"> + Enter the name of the domain against which you want to authenticate, for example, <em class="replaceable"><code>.example.com</code></em>. + </div></li><li class="listitem"><div class="para"> + Repeat the above procedure for the <span class="emphasis"><em>network.negotiate-auth.delegation-uris</em></span> entry, using the same domain. + </div><div class="para"> + <div class="note"><h2>Note</h2><div class="para"> + You can leave this value blank, as it allows Kerberos ticket passing, which is not required. + </div><div class="para"> + If you do not see these two configuration options listed, your version of Firefox may be too old to support Negotiate authentication, and you should consider upgrading. + </div></div> + + </div></li></ol></div><div class="figure" title="Figure 2.6. Configuring Firefox for SSO with Kerberos" id="figu-Security_Guide-Configuring_Firefox_to_use_Kerberos_for_SSO-Configuring_Firefox_for_SSO_with_Kerberos"><div class="figure-contents"><div class="mediaobject"><img src="images/fed-firefox_kerberos_SSO.png" width="444" alt="Configuring Firefox for SSO with Kerberos" /><div class="longdesc"><div class="para"> + Configuring Firefox to use Kerberos for SSO. + </div></div></div></div><h6>Figure 2.6. Configuring Firefox for SSO with Kerberos</h6></div><br class="figure-break" /><div class="para"> + You now need to ensure that you have Kerberos tickets. In a command shell, type <code class="command">kinit</code> to retrieve Kerberos tickets. To display the list of available tickets, type <code class="command">klist</code>. The following shows an example output from these commands: + </div><pre class="screen">[user@host ~] $ kinit +Password for user@EXAMPLE.COM: + +[user@host ~] $ klist +Ticket cache: FILE:/tmp/krb5cc_10920 +Default principal: user@EXAMPLE.COM + +Valid starting Expires Service principal +10/26/06 23:47:54 10/27/06 09:47:54 krbtgt/USER.COM@USER.COM + renew until 10/26/06 23:47:54 + +Kerberos 4 ticket cache: /tmp/tkt10920 +klist: You have no tickets cached</pre><div class="section" title="2.3.5.1. Troubleshooting" id="sect-Security_Guide-Configuring_Firefox_to_use_Kerberos_for_SSO-Troubleshooting"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Configuring_Firefox_to_use_Kerberos_for_SSO-Troubleshooting">2.3.5.1. Troubleshooting</h4></div></div></div><div class="para"> + If you have followed the configuration steps above and Negotiate authentication is not working, you can turn on verbose logging of the authentication process. This could help you find the cause of the problem. To enable verbose logging, use the following procedure: + </div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + Close all instances of Firefox. + </div></li><li class="listitem"><div class="para"> + Open a command shell, and enter the following commands: + </div><pre class="screen">export NSPR_LOG_MODULES=negotiateauth:5 +export NSPR_LOG_FILE=/tmp/moz.log</pre></li><li class="listitem"><div class="para"> + Restart Firefox <span class="emphasis"><em>from that shell</em></span>, and visit the website you were unable to authenticate to earlier. Information will be logged to <code class="filename">/tmp/moz.log</code>, and may give a clue to the problem. For example: + </div><pre class="screen">-1208550944[90039d0]: entering nsNegotiateAuth::GetNextToken() +-1208550944[90039d0]: gss_init_sec_context() failed: Miscellaneous failure +No credentials cache found</pre><div class="para"> + This indicates that you do not have Kerberos tickets, and need to run <code class="command">kinit</code>. + </div></li></ol></div><div class="para"> + If you are able to run <code class="command">kinit</code> successfully from your machine but you are unable to authenticate, you might see something like this in the log file: + </div><pre class="screen">-1208994096[8d683d8]: entering nsAuthGSSAPI::GetNextToken() +-1208994096[8d683d8]: gss_init_sec_context() failed: Miscellaneous failure +Server not found in Kerberos database</pre><div class="para"> + This generally indicates a Kerberos configuration problem. Make sure that you have the correct entries in the [domain_realm] section of the <code class="filename">/etc/krb5.conf</code> file. For example: + </div><pre class="screen">.example.com = EXAMPLE.COM +example.com = EXAMPLE.COM</pre><div class="para"> + If nothing appears in the log it is possible that you are behind a proxy, and that proxy is stripping off the HTTP headers required for Negotiate authentication. As a workaround, you can try to connect to the server using HTTPS instead, which allows the request to pass through unmodified. Then proceed to debug using the log file, as described above. + </div></div></div></div><div xml:lang="en-US" class="section" title="2.4. Pluggable Authentication Modules (PAM)" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM">2.4. Pluggable Authentication Modules (PAM)</h2></div></div></div><div class="para"> + Programs that grant users access to a system use <em class="firstterm">authentication</em> to verify each other's identity (that is, to establish that a user is who they say they are). + </div><div class="para"> + Historically, each program had its own way of authenticating users. In Fedora, many programs are configured to use a centralized authentication mechanism called <em class="firstterm">Pluggable Authentication Modules</em> (<acronym class="acronym">PAM</acronym>). + </div><div class="para"> + PAM uses a pluggable, modular architecture, which affords the system administrator a great deal of flexibility in setting authentication policies for the system. + </div><div class="para"> + In most situations, the default PAM configuration file for a PAM-aware application is sufficient. Sometimes, however, it is necessary to edit a PAM configuration file. Because misconfiguration of PAM can compromise system security, it is important to understand the structure of these files before making any modifications. Refer to <a class="xref" href="#sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_Configuration_File_Format" title="2.4.3. PAM Configuration File Format">Section 2.4.3, “PAM Configuration File Format”</a> for more information. + </div><div class="section" title="2.4.1. Advantages of PAM" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Advantages_of_PAM"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Advantages_of_PAM">2.4.1. Advantages of PAM</h3></div></div></div><div class="para"> + PAM offers the following advantages: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + a common authentication scheme that can be used with a wide variety of applications. + </div></li><li class="listitem"><div class="para"> + significant flexibility and control over authentication for both system administrators and application developers. + </div></li><li class="listitem"><div class="para"> + a single, fully-documented library which allows developers to write programs without having to create their own authentication schemes. + </div></li></ul></div></div><div class="section" title="2.4.2. PAM Configuration Files" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_Configuration_Files"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_Configuration_Files">2.4.2. PAM Configuration Files</h3></div></div></div><div class="para"> + The <code class="filename">/etc/pam.d/</code> directory contains the PAM configuration files for each PAM-aware application. In earlier versions of PAM, the <code class="filename">/etc/pam.conf</code> file was used, but this file is now deprecated and is only used if the <code class="filename">/etc/pam.d/</code> directory does not exist. + </div><div class="section" title="2.4.2.1. PAM Service Files" id="sect-Security_Guide-PAM_Configuration_Files-PAM_Service_Files"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-PAM_Configuration_Files-PAM_Service_Files">2.4.2.1. PAM Service Files</h4></div></div></div><div class="para"> + Each PAM-aware application or <em class="firstterm">service</em> has a file in the <code class="filename">/etc/pam.d/</code> directory. Each file in this directory has the same name as the service to which it controls access. + </div><div class="para"> + The PAM-aware program is responsible for defining its service name and installing its own PAM configuration file in the <code class="filename">/etc/pam.d/</code> directory. For example, the <code class="command">login</code> program defines its service name as <code class="command">login</code> and installs the <code class="filename">/etc/pam.d/login</code> PAM configuration file. + </div></div></div><div class="section" title="2.4.3. PAM Configuration File Format" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_Configuration_File_Format"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_Configuration_File_Format">2.4.3. PAM Configuration File Format</h3></div></div></div><div class="para"> + Each PAM configuration file contains a group of directives formatted as follows: + </div><pre class="screen"><em class="replaceable"><code><module interface></code></em> <em class="replaceable"><code><control flag></code></em> <em class="replaceable"><code><module name></code></em> <em class="replaceable"><code><module arguments></code></em></pre><div class="para"> + Each of these elements is explained in the following sections. + </div><div class="section" title="2.4.3.1. Module Interface" id="sect-Security_Guide-PAM_Configuration_File_Format-Module_Interface"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-PAM_Configuration_File_Format-Module_Interface">2.4.3.1. Module Interface</h4></div></div></div><div class="para"> + Four types of PAM module interface are currently available. Each of these corresponds to a different aspect of the authorization process: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">auth</code> — This module interface authenticates use. For example, it requests and verifies the validity of a password. Modules with this interface can also set credentials, such as group memberships or Kerberos tickets. + </div></li><li class="listitem"><div class="para"> + <code class="command">account</code> — This module interface verifies that access is allowed. For example, it may check if a user account has expired or if a user is allowed to log in at a particular time of day. + </div></li><li class="listitem"><div class="para"> + <code class="command">password</code> — This module interface is used for changing user passwords. + </div></li><li class="listitem"><div class="para"> + <code class="command">session</code> — This module interface configures and manages user sessions. Modules with this interface can also perform additional tasks that are needed to allow access, like mounting a user's home directory and making the user's mailbox available. + </div></li></ul></div><div class="note"><h2>Note</h2><div class="para"> + An individual module can provide any or all module interfaces. For instance, <code class="filename">pam_unix.so</code> provides all four module interfaces. + </div></div><div class="para"> + In a PAM configuration file, the module interface is the first field defined. For example, a typical line in a configuration may look like this: + </div><pre class="screen">auth required pam_unix.so</pre><div class="para"> + This instructs PAM to use the <code class="filename">pam_unix.so</code> module's <code class="command">auth</code> interface. + </div><div class="section" title="2.4.3.1.1. Stacking Module Interfaces" id="sect-Security_Guide-Module_Interface-Stacking_Module_Interfaces"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Module_Interface-Stacking_Module_Interfaces">2.4.3.1.1. Stacking Module Interfaces</h5></div></div></div><div class="para"> + Module interface directives can be <span class="emphasis"><em>stacked</em></span>, or placed upon one another, so that multiple modules are used together for one purpose. If a module's control flag uses the "sufficient" or "requisite" value (refer to <a class="xref" href="#sect-Security_Guide-PAM_Configuration_File_Format-Control_Flag" title="2.4.3.2. Control Flag">Section 2.4.3.2, “Control Flag”</a> for more information on these flags), then the order in which the modules are listed is important to the authentication process. + </div><div class="para"> + Stacking makes it easy for an administrator to require specific conditions to exist before allowing the user to authenticate. For example, the <code class="command">reboot</code> command normally uses several stacked modules, as seen in its PAM configuration file: + </div><pre class="screen">[root@MyServer ~]# cat /etc/pam.d/reboot +#%PAM-1.0 +auth sufficient pam_rootok.so +auth required pam_console.so +#auth include system-auth +account required pam_permit.so</pre><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + The first line is a comment and is not processed. + </div></li><li class="listitem"><div class="para"> + <code class="command">auth sufficient pam_rootok.so</code> — This line uses the <code class="filename">pam_rootok.so</code> module to check whether the current user is root, by verifying that their UID is 0. If this test succeeds, no other modules are consulted and the command is executed. If this test fails, the next module is consulted. + </div></li><li class="listitem"><div class="para"> + <code class="command">auth required pam_console.so</code> — This line uses the <code class="filename">pam_console.so</code> module to attempt to authenticate the user. If this user is already logged in at the console, <code class="filename">pam_console.so</code> checks whether there is a file in the <code class="filename">/etc/security/console.apps/</code> directory with the same name as the service name (reboot). If such a file exists, authentication succeeds and control is passed to the next module. + </div></li><li class="listitem"><div class="para"> + <code class="command">#auth include system-auth</code> — This line is commented and is not processed. + </div></li><li class="listitem"><div class="para"> + <code class="command">account required pam_permit.so</code> — This line uses the <code class="filename">pam_permit.so</code> module to allow the root user or anyone logged in at the console to reboot the system. + </div></li></ul></div></div></div><div class="section" title="2.4.3.2. Control Flag" id="sect-Security_Guide-PAM_Configuration_File_Format-Control_Flag"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-PAM_Configuration_File_Format-Control_Flag">2.4.3.2. Control Flag</h4></div></div></div><div class="para"> + All PAM modules generate a success or failure result when called. Control flags tell PAM what do with the result. Modules can be stacked in a particular order, and the control flags determine how important the success or failure of a particular module is to the overall goal of authenticating the user to the service. + </div><div class="para"> + There are four predefined control flags: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">required</code> — The module result must be successful for authentication to continue. If the test fails at this point, the user is not notified until the results of all module tests that reference that interface are complete. + </div></li><li class="listitem"><div class="para"> + <code class="command">requisite</code> — The module result must be successful for authentication to continue. However, if a test fails at this point, the user is notified immediately with a message reflecting the first failed <code class="command">required</code> <span class="emphasis"><em>or</em></span> <code class="command">requisite</code> module test. + </div></li><li class="listitem"><div class="para"> + <code class="command">sufficient</code> — The module result is ignored if it fails. However, if the result of a module flagged <code class="command">sufficient</code> is successful <span class="emphasis"><em>and</em></span> no previous modules flagged <code class="command">required</code> have failed, then no other results are required and the user is authenticated to the service. + </div></li><li class="listitem"><div class="para"> + <code class="command">optional</code> — The module result is ignored. A module flagged as <code class="command">optional</code> only becomes necessary for successful authentication when no other modules reference the interface. + </div></li></ul></div><div class="important"><h2>Important</h2><div class="para"> + The order in which <code class="command">required</code> modules are called is not critical. Only the <code class="command">sufficient</code> and <code class="command">requisite</code> control flags cause order to become important. + </div></div><div class="para"> + A newer control flag syntax that allows for more precise control is now available for PAM. + </div><div class="para"> + The <code class="command">pam.d</code> man page, and the PAM documentation, located in the <code class="filename">/usr/share/doc/pam-<em class="replaceable"><code><version-number></code></em>/</code> directory, where <em class="replaceable"><code><version-number></code></em> is the version number for PAM on your system, describe this newer syntax in detail. + </div></div><div class="section" title="2.4.3.3. Module Name" id="sect-Security_Guide-PAM_Configuration_File_Format-Module_Name"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-PAM_Configuration_File_Format-Module_Name">2.4.3.3. Module Name</h4></div></div></div><div class="para"> + The module name provides PAM with the name of the pluggable module containing the specified module interface. In older versions of Fedora, the full path to the module was provided in the PAM configuration file. However, since the advent of <em class="firstterm">multilib</em> systems, which store 64-bit PAM modules in the <code class="filename">/lib64/security/</code> directory, the directory name is omitted because the application is linked to the appropriate version of <code class="filename">libpam</code>, which can locate the correct version of the module. + </div></div><div class="section" title="2.4.3.4. Module Arguments" id="sect-Security_Guide-PAM_Configuration_File_Format-Module_Arguments"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-PAM_Configuration_File_Format-Module_Arguments">2.4.3.4. Module Arguments</h4></div></div></div><div class="para"> + PAM uses <em class="firstterm">arguments</em> to pass information to a pluggable module during authentication for some modules. + </div><div class="para"> + For example, the <code class="filename">pam_userdb.so</code> module uses information stored in a Berkeley DB file to authenticate the user. Berkeley DB is an open source database system embedded in many applications. The module takes a <code class="filename">db</code> argument so that Berkeley DB knows which database to use for the requested service. + </div><div class="para"> + The following is a typical <code class="filename">pam_userdb.so</code> line in a PAM configuration. The <em class="replaceable"><code><path-to-file></code></em> is the full path to the Berkeley DB database file: + </div><pre class="screen">auth required pam_userdb.so db=<em class="replaceable"><code><path-to-file></code></em></pre><div class="para"> + Invalid arguments are <span class="emphasis"><em>generally</em></span> ignored and do not otherwise affect the success or failure of the PAM module. Some modules, however, may fail on invalid arguments. Most modules report errors to the <code class="filename">/var/log/secure</code> file. + </div></div></div><div class="section" title="2.4.4. Sample PAM Configuration Files" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Sample_PAM_Configuration_Files"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Sample_PAM_Configuration_Files">2.4.4. Sample PAM Configuration Files</h3></div></div></div><div class="para"> + The following is a sample PAM application configuration file: + </div><pre class="screen">#%PAM-1.0 +auth required pam_securetty.so +auth required pam_unix.so nullok +auth required pam_nologin.so +account required pam_unix.so +password required pam_cracklib.so retry=3 +password required pam_unix.so shadow nullok use_authtok +session required pam_unix.so</pre><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + The first line is a comment, indicated by the hash mark (<code class="command">#</code>) at the beginning of the line. + </div></li><li class="listitem"><div class="para"> + Lines two through four stack three modules for login authentication. + </div><div class="para"> + <code class="command">auth required pam_securetty.so</code> — This module ensures that <span class="emphasis"><em>if</em></span> the user is trying to log in as root, the tty on which the user is logging in is listed in the <code class="filename">/etc/securetty</code> file, <span class="emphasis"><em>if</em></span> that file exists. + </div><div class="para"> + If the tty is not listed in the file, any attempt to log in as root fails with a <code class="computeroutput">Login incorrect</code> message. + </div><div class="para"> + <code class="command">auth required pam_unix.so nullok</code> — This module prompts the user for a password and then checks the password using the information stored in <code class="filename">/etc/passwd</code> and, if it exists, <code class="filename">/etc/shadow</code>. + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + The argument <code class="command">nullok</code> instructs the <code class="filename">pam_unix.so</code> module to allow a blank password. + </div></li></ul></div></li><li class="listitem"><div class="para"> + <code class="command">auth required pam_nologin.so</code> — This is the final authentication step. It checks whether the <code class="filename">/etc/nologin</code> file exists. If it exists and the user is not root, authentication fails. + </div><div class="note"><h2>Note</h2><div class="para"> + In this example, all three <code class="command">auth</code> modules are checked, even if the first <code class="command">auth</code> module fails. This prevents the user from knowing at what stage their authentication failed. Such knowledge in the hands of an attacker could allow them to more easily deduce how to crack the system. + </div></div></li><li class="listitem"><div class="para"> + <code class="command">account required pam_unix.so</code> — This module performs any necessary account verification. For example, if shadow passwords have been enabled, the account interface of the <code class="filename">pam_unix.so</code> module checks to see if the account has expired or if the user has not changed the password within the allowed grace period. + </div></li><li class="listitem"><div class="para"> + <code class="command">password required pam_cracklib.so retry=3</code> — If a password has expired, the password component of the <code class="filename">pam_cracklib.so</code> module prompts for a new password. It then tests the newly created password to see whether it can easily be determined by a dictionary-based password cracking program. + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + The argument <code class="command">retry=3</code> specifies that if the test fails the first time, the user has two more chances to create a strong password. + </div></li></ul></div></li><li class="listitem"><div class="para"> + <code class="command">password required pam_unix.so shadow nullok use_authtok</code> — This line specifies that if the program changes the user's password, it should use the <code class="command">password</code> interface of the <code class="filename">pam_unix.so</code> module to do so. + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + The argument <code class="command">shadow</code> instructs the module to create shadow passwords when updating a user's password. + </div></li><li class="listitem"><div class="para"> + The argument <code class="command">nullok</code> instructs the module to allow the user to change their password <span class="emphasis"><em>from</em></span> a blank password, otherwise a null password is treated as an account lock. + </div></li><li class="listitem"><div class="para"> + The final argument on this line, <code class="command">use_authtok</code>, provides a good example of the importance of order when stacking PAM modules. This argument instructs the module not to prompt the user for a new password. Instead, it accepts any password that was recorded by a previous password module. In this way, all new passwords must pass the <code class="filename">pam_cracklib.so</code> test for secure passwords before being accepted. + </div></li></ul></div></li><li class="listitem"><div class="para"> + <code class="command">session required pam_unix.so</code> — The final line instructs the session interface of the <code class="filename">pam_unix.so</code> module to manage the session. This module logs the user name and the service type to <code class="filename">/var/log/secure</code> at the beginning and end of each session. This module can be supplemented by stacking it with other session modules for additional functionality. + </div></li></ul></div></div><div class="section" title="2.4.5. Creating PAM Modules" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Creating_PAM_Modules"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Creating_PAM_Modules">2.4.5. Creating PAM Modules</h3></div></div></div><div class="para"> + You can create or add new PAM modules at any time for use by PAM-aware applications. + </div><div class="para"> + For example, a developer might create a one-time-password creation method and write a PAM module to support it. PAM-aware programs can immediately use the new module and password method without being recompiled or otherwise modified. + </div><div class="para"> + This allows developers and system administrators to mix-and-match, as well as test, authentication methods for different programs without recompiling them. + </div><div class="para"> + Documentation on writing modules is included in the <code class="filename">/usr/share/doc/pam-<em class="replaceable"><code><version-number></code></em>/</code> directory, where <em class="replaceable"><code><version-number></code></em> is the version number for PAM on your system. + </div></div><div class="section" title="2.4.6. PAM and Administrative Credential Caching" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_and_Administrative_Credential_Caching"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_and_Administrative_Credential_Caching">2.4.6. PAM and Administrative Credential Caching</h3></div></div></div><div class="para"> + A number of graphical administrative tools in Fedora provide users with elevated privileges for up to five minutes using the <code class="filename">pam_timestamp.so</code> module. It is important to understand how this mechanism works, because a user who walks away from a terminal while <code class="filename">pam_timestamp.so</code> is in effect leaves the machine open to manipulation by anyone with physical access to the console. + </div><div class="para"> + In the PAM timestamp scheme, the graphical administrative application prompts the user for the root password when it is launched. When the user has been authenticated, the <code class="filename">pam_timestamp.so</code> module creates a timestamp file. By default, this is created in the <code class="filename">/var/run/sudo/</code> directory. If the timestamp file already exists, graphical administrative programs do not prompt for a password. Instead, the <code class="filename">pam_timestamp.so</code> module freshens the timestamp file, reserving an extra five minutes of unchallenged administrative access for the user. + </div><div class="para"> + You can verify the actual state of the timestamp file by inspecting the <code class="filename">/var/run/sudo/<user></code> file. For the desktop, the relevant file is <code class="filename">unknown:root</code>. If it is present and its timestamp is less than five minutes old, the credentials are valid. + </div><div class="para"> + The existence of the timestamp file is indicated by an authentication icon, which appears in the notification area of the panel. + </div><div class="figure" title="Figure 2.7. The Authentication Icon" id="figu-Security_Guide-PAM_and_Administrative_Credential_Caching-The_Authentication_Icon"><div class="figure-contents"><div class="mediaobject"><img src="images/authicon.png" alt="The Authentication Icon" /><div class="longdesc"><div class="para"> + Illustration of the authentication icon. + </div></div></div></div><h6>Figure 2.7. The Authentication Icon</h6></div><br class="figure-break" /><div class="section" title="2.4.6.1. Removing the Timestamp File" id="sect-Security_Guide-PAM_and_Administrative_Credential_Caching-Removing_the_Timestamp_File"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-PAM_and_Administrative_Credential_Caching-Removing_the_Timestamp_File">2.4.6.1. Removing the Timestamp File</h4></div></div></div><div class="para"> + Before abandoning a console where a PAM timestamp is active, it is recommended that the timestamp file be destroyed. To do this from a graphical environment, click the authentication icon on the panel. This causes a dialog box to appear. Click the <span class="guibutton"><strong>Forget Authorization</strong></span> button to destroy the active timestamp file. + </div><div class="figure" title="Figure 2.8. Dismiss Authentication Dialog" id="figu-Security_Guide-Removing_the_Timestamp_File-Dismiss_Authentication_Dialog"><div class="figure-contents"><div class="mediaobject"><img src="images/auth-panel.png" width="444" alt="Dismiss Authentication Dialog" /><div class="longdesc"><div class="para"> + Illustration of the authentication dismissal dialog box. + </div></div></div></div><h6>Figure 2.8. Dismiss Authentication Dialog</h6></div><br class="figure-break" /><div class="para"> + You should be aware of the following with respect to the PAM timestamp file: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + If logged in to the system remotely using <code class="command">ssh</code>, use the <code class="command">/sbin/pam_timestamp_check -k root</code> command to destroy the timestamp file. + </div></li><li class="listitem"><div class="para"> + You need to run the <code class="command">/sbin/pam_timestamp_check -k root</code> command from the same terminal window from which you launched the privileged application. + </div></li><li class="listitem"><div class="para"> + You must be logged in as the user who originally invoked the <code class="filename">pam_timestamp.so</code> module in order to use the <code class="command">/sbin/pam_timestamp_check -k</code> command. Do not log in as root to use this command. + </div></li><li class="listitem"><div class="para"> + If you want to kill the credentials on the desktop (without using the <span class="guibutton"><strong>Forget Authorization</strong></span> action on the icon), use the following command: + </div><pre class="screen">/sbin/pam_timestamp_check -k root </dev/null >/dev/null 2>/dev/null</pre><div class="para"> + Failure to use this command will only remove the credentials (if any) from the pty where you run the command. + </div></li></ul></div><div class="para"> + Refer to the <code class="filename">pam_timestamp_check</code> man page for more information about destroying the timestamp file using <code class="command">pam_timestamp_check</code>. + </div></div><div class="section" title="2.4.6.2. Common pam_timestamp Directives" id="sect-Security_Guide-PAM_and_Administrative_Credential_Caching-Common_pam_timestamp_Directives"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-PAM_and_Administrative_Credential_Caching-Common_pam_timestamp_Directives">2.4.6.2. Common pam_timestamp Directives</h4></div></div></div><div class="para"> + The <code class="filename">pam_timestamp.so</code> module accepts several directives. The following are the two most commonly used options: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">timestamp_timeout</code> — Specifies the period (in seconds) for which the timestamp file is valid. The default value is 300 (five minutes). + </div></li><li class="listitem"><div class="para"> + <code class="command">timestampdir</code> — Specifies the directory in which the timestamp file is stored. The default value is <code class="command">/var/run/sudo/</code>. + </div></li></ul></div><div class="para"> + Refer to <a class="xref" href="#sect-Security_Guide-Additional_Resources-Installed_Firewall_Documentation" title="2.8.9.1. Installed Firewall Documentation">Section 2.8.9.1, “Installed Firewall Documentation”</a> for more information about controlling the <code class="filename">pam_timestamp.so</code> module. + </div></div></div><div class="section" title="2.4.7. PAM and Device Ownership" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_and_Device_Ownership"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-PAM_and_Device_Ownership">2.4.7. PAM and Device Ownership</h3></div></div></div><div class="para"> + In Fedora, the first user who logs in at the physical console of the machine can manipulate certain devices and perform certain tasks normally reserved for the root user. This is controlled by a PAM module called <code class="filename">pam_console.so</code>. + </div><div class="section" title="2.4.7.1. Device Ownership" id="sect-Security_Guide-PAM_and_Device_Ownership-Device_Ownership"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-PAM_and_Device_Ownership-Device_Ownership">2.4.7.1. Device Ownership</h4></div></div></div><div class="para"> + When a user logs in to a Fedora system, the <code class="filename">pam_console.so</code> module is called by <code class="command">login</code> or the graphical login programs, <span class="application"><strong>gdm</strong></span>, <span class="application"><strong>kdm</strong></span>, and <span class="application"><strong>xdm</strong></span>. If this user is the first user to log in at the physical console — referred to as the <em class="firstterm">console user</em> — the module grants the user ownership of a variety of devices normally owned by root. The console user owns these devices until the last local session for that user ends. After this user has logged out, ownership of the devices reverts back to the root user. + </div><div class="para"> + The devices affected include, but are not limited to, sound cards, diskette drives, and CD-ROM drives. + </div><div class="para"> + This facility allows a local user to manipulate these devices without obtaining root access, thus simplifying common tasks for the console user. + </div><div class="para"> + You can modify the list of devices controlled by <code class="filename">pam_console.so</code> by editing the following files: + <div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="filename">/etc/security/console.perms</code> + </div></li><li class="listitem"><div class="para"> + <code class="filename">/etc/security/console.perms.d/50-default.perms</code> + </div></li></ul></div> + + </div><div class="para"> + You can change the permissions of different devices than those listed in the above files, or override the specified defaults. Rather than modify the <code class="filename">50-default.perms</code> file, you should create a new file (for example, <code class="filename"><em class="replaceable"><code>xx</code></em>-name.perms</code>) and enter the required modifications. The name of the new default file must begin with a number higher than 50 (for example, <code class="filename">51-default.perms</code>). This will override the defaults in the <code class="filename">50-default.perms</code> file. + </div><div class="warning"><h2>Warning</h2><div class="para"> + If the <span class="application"><strong>gdm</strong></span>, <span class="application"><strong>kdm</strong></span>, or <span class="application"><strong>xdm</strong></span> display manager configuration file has been altered to allow remote users to log in <span class="emphasis"><em>and</em></span> the host is configured to run at runlevel 5, it is advisable to change the <code class="command"><console></code> and <code class="command"><xconsole></code> directives in the <code class="filename">/etc/security/console.perms</code> to the following values: + </div><pre class="screen"><console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0.[0-9] :0 +<xconsole>=:0.[0-9] :0</pre><div class="para"> + This prevents remote users from gaining access to devices and restricted applications on the machine. + </div><div class="para"> + If the <span class="application"><strong>gdm</strong></span>, <span class="application"><strong>kdm</strong></span>, or <span class="application"><strong>xdm</strong></span> display manager configuration file has been altered to allow remote users to log in <span class="emphasis"><em>and</em></span> the host is configured to run at any multiple user runlevel other than 5, it is advisable to remove the <code class="command"><xconsole></code> directive entirely and change the <code class="command"><console></code> directive to the following value: + </div><pre class="screen"><console>=tty[0-9][0-9]* vc/[0-9][0-9]*</pre></div></div><div class="section" title="2.4.7.2. Application Access" id="sect-Security_Guide-PAM_and_Device_Ownership-Application_Access"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-PAM_and_Device_Ownership-Application_Access">2.4.7.2. Application Access</h4></div></div></div><div class="para"> + The console user also has access to certain programs configured for use in the <code class="filename">/etc/security/console.apps/</code> directory. + </div><div class="para"> + This directory contains configuration files which enable the console user to run certain applications in <code class="filename">/sbin</code> and <code class="filename">/usr/sbin</code>. + </div><div class="para"> + These configuration files have the same name as the applications that they set up. + </div><div class="para"> + One notable group of applications that the console user has access to are three programs that shut down or reboot the system: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">/sbin/halt</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">/sbin/reboot</code> + </div></li><li class="listitem"><div class="para"> + <code class="command">/sbin/poweroff</code> + </div></li></ul></div><div class="para"> + Because these are PAM-aware applications, they call the <code class="filename">pam_console.so</code> module as a requirement for use. + </div><div class="para"> + Refer to <a class="xref" href="#sect-Security_Guide-Additional_Resources-Installed_Firewall_Documentation" title="2.8.9.1. Installed Firewall Documentation">Section 2.8.9.1, “Installed Firewall Documentation”</a> for more information. + </div></div></div><div class="section" title="2.4.8. Additional Resources" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Additional_Resources"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Pluggable_Authentication_Modules_PAM-Additional_Resources">2.4.8. Additional Resources</h3></div></div></div><div class="para"> + The following resources further explain methods to use and configure PAM. In addition to these resources, read the PAM configuration files on the system to better understand how they are structured. + </div><div class="section" title="2.4.8.1. Installed PAM Documentation" id="sect-Security_Guide-Additional_Resources-Installed_PAM_Documentation"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Additional_Resources-Installed_PAM_Documentation">2.4.8.1. Installed PAM Documentation</h4></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + PAM-related man pages — Several man pages exist for the various applications and configuration files involved with PAM. The following is a list of some of the more important man pages. + </div><div class="variablelist"><dl><dt><span class="term">Configuration Files</span></dt><dd><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">pam</code> — Good introductory information on PAM, including the structure and purpose of the PAM configuration files. + </div><div class="para"> + Note that this man page discusses both <code class="filename">/etc/pam.conf</code> and individual configuration files in the <code class="filename">/etc/pam.d/</code> directory. By default, Fedora uses the individual configuration files in the <code class="filename">/etc/pam.d/</code> directory, ignoring <code class="filename">/etc/pam.conf</code> even if it exists. + </div></li><li class="listitem"><div class="para"> + <code class="command">pam_console</code> — Describes the purpose of the <code class="filename">pam_console.so</code> module. It also describes the appropriate syntax for an entry within a PAM configuration file. + </div></li><li class="listitem"><div class="para"> + <code class="command">console.apps</code> — Describes the format and options available in the <code class="filename">/etc/security/console.apps</code> configuration file, which defines which applications are accessible by the console user assigned by PAM. + </div></li><li class="listitem"><div class="para"> + <code class="command">console.perms</code> — Describes the format and options available in the <code class="filename">/etc/security/console.perms</code> configuration file, which specifies the console user permissions assigned by PAM. + </div></li><li class="listitem"><div class="para"> + <code class="command">pam_timestamp</code> — Describes the <code class="filename">pam_timestamp.so</code> module. + </div></li></ul></div></dd></dl></div></li><li class="listitem"><div class="para"> + <code class="filename">/usr/share/doc/pam-<em class="replaceable"><code><version-number></code></em></code> — Contains a <em class="citetitle">System Administrators' Guide</em>, a <em class="citetitle">Module Writers' Manual</em>, and the <em class="citetitle">Application Developers' Manual</em>, as well as a copy of the PAM standard, DCE-RFC 86.0, where <em class="replaceable"><code><version-number></code></em> is the version number of PAM. + </div></li><li class="listitem"><div class="para"> + <code class="filename">/usr/share/doc/pam-<em class="replaceable"><code><version-number></code></em>/txts/README.pam_timestamp</code> — Contains information about the <code class="filename">pam_timestamp.so</code> PAM module, where <em class="replaceable"><code><version-number></code></em> is the version number of PAM. + </div></li></ul></div></div><div class="section" title="2.4.8.2. Useful PAM Websites" id="sect-Security_Guide-Additional_Resources-Useful_PAM_Websites"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Additional_Resources-Useful_PAM_Websites">2.4.8.2. Useful PAM Websites</h4></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <a href="http://www.kernel.org/pub/linux/libs/pam/">http://www.kernel.org/pub/linux/libs/pam/</a> — The primary distribution website for the Linux-PAM project, containing information on various PAM modules, a FAQ, and additional PAM documentation. + </div><div class="note"><h2>Note</h2><div class="para"> + The documentation in the above website is for the last released upstream version of PAM and might not be 100% accurate for the PAM version included in Fedora. + </div></div></li></ul></div></div></div></div><div xml:lang="en-US" class="section" title="2.5. TCP Wrappers and xinetd" id="sect-Security_Guide-TCP_Wrappers_and_xinetd" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-TCP_Wrappers_and_xinetd">2.5. TCP Wrappers and xinetd</h2></div></div></div><div class="para"> + Controlling access to network services is one of the most important security tasks facing a server administrator. Fedora provides several tools for this purpose. For example, an <code class="command">iptables</code>-based firewall filters out unwelcome network packets within the kernel's network stack. For network services that utilize it, <em class="firstterm">TCP Wrappers</em> add an additional layer of protection by defining which hosts are or are not allowed to connect to "<span class="emphasis"><em>wrapped</em></span>" network services. One such wrapped network service is the <code class="systemitem">xinetd</code> <span class="emphasis"><em>super server</em></span>. This service is called a super server because it controls connections to a subset of network services and further refines access control. + </div><div class="para"> + <a class="xref" href="#figu-Security_Guide-TCP_Wrappers_and_xinetd-Access_Control_to_Network_Services" title="Figure 2.9. Access Control to Network Services">Figure 2.9, “Access Control to Network Services”</a> is a basic illustration of how these tools work together to protect network services. + </div><div class="figure" title="Figure 2.9. Access Control to Network Services" id="figu-Security_Guide-TCP_Wrappers_and_xinetd-Access_Control_to_Network_Services"><div class="figure-contents"><div class="mediaobject"><img src="images/tcp_wrap_diagram.png" alt="Access Control to Network Services" /><div class="longdesc"><div class="para"> + Exhibit A: Access Control to Network Services Flowchart + </div></div></div></div><h6>Figure 2.9. Access Control to Network Services</h6></div><br class="figure-break" /><div class="para"> + This chapter focuses on the role of TCP Wrappers and <code class="systemitem">xinetd</code> in controlling access to network services and reviews how these tools can be used to enhance both logging and utilization management. Refer to <a class="xref" href="#sect-Security_Guide-IPTables" title="2.9. IPTables">Section 2.9, “IPTables”</a> for information about using firewalls with <code class="command">iptables</code>. + </div><div class="section" title="2.5.1. TCP Wrappers" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers">2.5.1. TCP Wrappers</h3></div></div></div><div class="para"> + The TCP Wrappers package (<code class="filename">tcp_wrappers</code>) is installed by default and provides host-based access control to network services. The most important component within the package is the <code class="filename">/usr/lib/libwrap.a</code> library. In general terms, a TCP-wrapped service is one that has been compiled against the <code class="filename">libwrap.a</code> library. + </div><div class="para"> + When a connection attempt is made to a TCP-wrapped service, the service first references the host's access files (<code class="filename">/etc/hosts.allow</code> and <code class="filename">/etc/hosts.deny</code>) to determine whether or not the client is allowed to connect. In most cases, it then uses the syslog daemon (<code class="systemitem">syslogd</code>) to write the name of the requesting client and the requested service to <code class="filename">/var/log/secure</code> or <code class="filename">/var/log/messages</code>. + </div><div class="para"> + If a client is allowed to connect, TCP Wrappers release control of the connection to the requested service and take no further part in the communication between the client and the server. + </div><div class="para"> + In addition to access control and logging, TCP Wrappers can execute commands to interact with the client before denying or releasing control of the connection to the requested network service. + </div><div class="para"> + Because TCP Wrappers are a valuable addition to any server administrator's arsenal of security tools, most network services within Fedora are linked to the <code class="filename">libwrap.a</code> library. Some such applications include <code class="systemitem">/usr/sbin/sshd</code>, <code class="command">/usr/sbin/sendmail</code>, and <code class="systemitem">/usr/sbin/xinetd</code>. + </div><div class="note"><h2>Note</h2><div class="para"> + To determine if a network service binary is linked to <code class="filename">libwrap.a</code>, type the following command as the root user: + </div><pre class="screen">ldd <binary-name> | grep libwrap</pre><div class="para"> + Replace <em class="replaceable"><code><binary-name></code></em> with the name of the network service binary. + </div><div class="para"> + If the command returns straight to the prompt with no output, then the network service is <span class="emphasis"><em>not</em></span> linked to <code class="filename">libwrap.a</code>. + </div><div class="para"> + The following example indicates that <code class="systemitem">/usr/sbin/sshd</code> is linked to <code class="filename">libwrap.a</code>: + </div><pre class="screen">[root@myServer ~]# ldd /usr/sbin/sshd | grep libwrap + libwrap.so.0 => /lib/libwrap.so.0 (0x00655000) +[root@myServer ~]#</pre></div><div class="section" title="2.5.1.1. Advantages of TCP Wrappers" id="sect-Security_Guide-TCP_Wrappers-Advantages_of_TCP_Wrappers"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-TCP_Wrappers-Advantages_of_TCP_Wrappers">2.5.1.1. Advantages of TCP Wrappers</h4></div></div></div><div class="para"> + TCP Wrappers provide the following advantages over other network service control techniques: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em>Transparency to both the client and the wrapped network service</em></span> — Both the connecting client and the wrapped network service are unaware that TCP Wrappers are in use. Legitimate users are logged and connected to the requested service while connections from banned clients fail. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>Centralized management of multiple protocols</em></span> — TCP Wrappers operate separately from the network services they protect, allowing many server applications to share a common set of access control configuration files, making for simpler management. + </div></li></ul></div></div></div><div class="section" title="2.5.2. TCP Wrappers Configuration Files" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers_Configuration_Files"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers_Configuration_Files">2.5.2. TCP Wrappers Configuration Files</h3></div></div></div><div class="para"> + To determine if a client is allowed to connect to a service, TCP Wrappers reference the following two files, which are commonly referred to as <em class="firstterm">hosts access</em> files: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="filename">/etc/hosts.allow</code> + </div></li><li class="listitem"><div class="para"> + <code class="filename">/etc/hosts.deny</code> + </div></li></ul></div><div class="para"> + When a TCP-wrapped service receives a client request, it performs the following steps: + </div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + <span class="emphasis"><em>It references <code class="filename">/etc/hosts.allow</code>.</em></span> — The TCP-wrapped service sequentially parses the <code class="filename">/etc/hosts.allow</code> file and applies the first rule specified for that service. If it finds a matching rule, it allows the connection. If not, it moves on to the next step. + </div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>It references <code class="filename">/etc/hosts.deny</code>.</em></span> — The TCP-wrapped service sequentially parses the <code class="filename">/etc/hosts.deny</code> file. If it finds a matching rule, it denies the connection. If not, it grants access to the service. + </div></li></ol></div><div class="para"> + The following are important points to consider when using TCP Wrappers to protect network services: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Because access rules in <code class="filename">hosts.allow</code> are applied first, they take precedence over rules specified in <code class="filename">hosts.deny</code>. Therefore, if access to a service is allowed in <code class="filename">hosts.allow</code>, a rule denying access to that same service in <code class="filename">hosts.deny</code> is ignored. + </div></li><li class="listitem"><div class="para"> + The rules in each file are read from the top down and the first matching rule for a given service is the only one applied. The order of the rules is extremely important. + </div></li><li class="listitem"><div class="para"> + If no rules for the service are found in either file, or if neither file exists, access to the service is granted. + </div></li><li class="listitem"><div class="para"> + TCP-wrapped services do not cache the rules from the hosts access files, so any changes to <code class="filename">hosts.allow</code> or <code class="filename">hosts.deny</code> take effect immediately, without restarting network services. + </div></li></ul></div><div class="warning"><h2>Warning</h2><div class="para"> + If the last line of a hosts access file is not a newline character (created by pressing the <span class="keycap"><strong>Enter</strong></span> key), the last rule in the file fails and an error is logged to either <code class="filename">/var/log/messages</code> or <code class="filename">/var/log/secure</code>. This is also the case for a rule that spans multiple lines without using the backslash character. The following example illustrates the relevant portion of a log message for a rule failure due to either of these circumstances: + </div><pre class="screen">warning: /etc/hosts.allow, line 20: missing newline or line too long</pre></div><div class="section" title="2.5.2.1. Formatting Access Rules" id="sect-Security_Guide-TCP_Wrappers_Configuration_Files-Formatting_Access_Rules"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-TCP_Wrappers_Configuration_Files-Formatting_Access_Rules">2.5.2.1. Formatting Access Rules</h4></div></div></div><div class="para"> + The format for both <code class="filename">/etc/hosts.allow</code> and <code class="filename">/etc/hosts.deny</code> is identical. Each rule must be on its own line. Blank lines or lines that start with a hash (#) are ignored. + </div><div class="para"> + Each rule uses the following basic format to control access to network services: + </div><pre class="screen"><em class="replaceable"><code><daemon list></code></em>: <em class="replaceable"><code><client list></code></em> [: <em class="replaceable"><code><option></code></em>: <em class="replaceable"><code><option></code></em>: ...]</pre><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <em class="replaceable"><code><daemon list></code></em> — A comma-separated list of process names (<span class="emphasis"><em>not</em></span> service names) or the <code class="option">ALL</code> wildcard. The daemon list also accepts operators (refer to <a class="xref" href="#sect-Security_Guide-Formatting_Access_Rules-Operators" title="2.5.2.1.4. Operators">Section 2.5.2.1.4, “Operators”</a>) to allow greater flexibility. + </div></li><li class="listitem"><div class="para"> + <em class="replaceable"><code><client list></code></em> — A comma-separated list of hostnames, host IP addresses, special patterns, or wildcards which identify the hosts affected by the rule. The client list also accepts operators listed in <a class="xref" href="#sect-Security_Guide-Formatting_Access_Rules-Operators" title="2.5.2.1.4. Operators">Section 2.5.2.1.4, “Operators”</a> to allow greater flexibility. + </div></li><li class="listitem"><div class="para"> + <em class="replaceable"><code><option></code></em> — An optional action or colon-separated list of actions performed when the rule is triggered. Option fields support expansions, launch shell commands, allow or deny access, and alter logging behavior. + </div></li></ul></div><div class="note"><h2>Note</h2><div class="para"> + More information on the specialist terms above can be found elsewhere in this Guide: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <a class="xref" href="#sect-Security_Guide-Formatting_Access_Rules-Wildcards" title="2.5.2.1.1. Wildcards">Section 2.5.2.1.1, “Wildcards”</a> + </div></li><li class="listitem"><div class="para"> + <a class="xref" href="#sect-Security_Guide-Formatting_Access_Rules-Patterns" title="2.5.2.1.2. Patterns">Section 2.5.2.1.2, “Patterns”</a> + </div></li><li class="listitem"><div class="para"> + <a class="xref" href="#sect-Security_Guide-Option_Fields-Expansions" title="2.5.2.2.4. Expansions">Section 2.5.2.2.4, “Expansions”</a> + </div></li><li class="listitem"><div class="para"> + <a class="xref" href="#sect-Security_Guide-TCP_Wrappers_Configuration_Files-Option_Fields" title="2.5.2.2. Option Fields">Section 2.5.2.2, “Option Fields”</a> + </div></li></ul></div></div><div class="para"> + The following is a basic sample hosts access rule: + </div><pre class="screen">vsftpd : .example.com</pre><div class="para"> + This rule instructs TCP Wrappers to watch for connections to the FTP daemon (<code class="systemitem">vsftpd</code>) from any host in the <code class="systemitem">example.com</code> domain. If this rule appears in <code class="filename">hosts.allow</code>, the connection is accepted. If this rule appears in <code class="filename">hosts.deny</code>, the connection is rejected. + </div><div class="para"> + The next sample hosts access rule is more complex and uses two option fields: + </div><pre class="screen">sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ : deny</pre><div class="para"> + Note that each option field is preceded by the backslash (). Use of the backslash prevents failure of the rule due to length. + </div><div class="para"> + This sample rule states that if a connection to the SSH daemon (<code class="systemitem">sshd</code>) is attempted from a host in the <code class="systemitem">example.com</code> domain, execute the <code class="command">echo</code> command to append the attempt to a special log file, and deny the connection. Because the optional <code class="command">deny</code> directive is used, this line denies access even if it appears in the <code class="filename">hosts.allow</code> file. Refer to <a class="xref" href="#sect-Security_Guide-TCP_Wrappers_Configuration_Files-Option_Fields" title="2.5.2.2. Option Fields">Section 2.5.2.2, “Option Fields”</a> for a more detailed look at available options. + </div><div class="section" title="2.5.2.1.1. Wildcards" id="sect-Security_Guide-Formatting_Access_Rules-Wildcards"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Formatting_Access_Rules-Wildcards">2.5.2.1.1. Wildcards</h5></div></div></div><div class="para"> + Wildcards allow TCP Wrappers to more easily match groups of daemons or hosts. They are used most frequently in the client list field of access rules. + </div><div class="para"> + The following wildcards are available: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="option">ALL</code> — Matches everything. It can be used for both the daemon list and the client list. + </div></li><li class="listitem"><div class="para"> + <code class="option">LOCAL</code> — Matches any host that does not contain a period (.), such as localhost. + </div></li><li class="listitem"><div class="para"> + <code class="option">KNOWN</code> — Matches any host where the hostname and host address are known or where the user is known. + </div></li><li class="listitem"><div class="para"> + <code class="option">UNKNOWN</code> — Matches any host where the hostname or host address are unknown or where the user is unknown. + </div></li><li class="listitem"><div class="para"> + <code class="option">PARANOID</code> — Matches any host where the hostname does not match the host address. + </div></li></ul></div><div class="important"><h2>Important</h2><div class="para"> + The <code class="option">KNOWN</code>, <code class="option">UNKNOWN</code>, and <code class="option">PARANOID</code> wildcards should be used with care, because they rely on functioning DNS server for correct operation. Any disruption to name resolution may prevent legitimate users from gaining access to a service. + </div></div></div><div class="section" title="2.5.2.1.2. Patterns" id="sect-Security_Guide-Formatting_Access_Rules-Patterns"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Formatting_Access_Rules-Patterns">2.5.2.1.2. Patterns</h5></div></div></div><div class="para"> + Patterns can be used in the client field of access rules to more precisely specify groups of client hosts. + </div><div class="para"> + The following is a list of common patterns for entries in the client field: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <span class="emphasis"><em>Hostname beginning with a period (.)</em></span> — Placing a period at the beginning of a hostname matches all hosts sharing the listed components of the name. The following example applies to any host within the <code class="systemitem">example.com</code> domain: + </div><pre class="screen">ALL : .example.com</pre></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>IP address ending with a period (.)</em></span> — Placing a period at the end of an IP address matches all hosts sharing the initial numeric groups of an IP address. The following example applies to any host within the <code class="systemitem">192.168.x.x</code> network: + </div><pre class="screen">ALL : 192.168.</pre></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>IP address/netmask pair</em></span> — Netmask expressions can also be used as a pattern to control access to a particular group of IP addresses. The following example applies to any host with an address range of <code class="systemitem">192.168.0.0</code> through <code class="systemitem">192.168.1.255</code>: + </div><pre class="screen">ALL : 192.168.0.0/255.255.254.0</pre><div class="important"><h2>Important</h2><div class="para"> + When working in the IPv4 address space, the address/prefix length (<em class="firstterm">prefixlen</em>) pair declarations (<abbr class="abbrev">CIDR</abbr> notation) are not supported. Only IPv6 rules can use this format. + </div></div></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>[IPv6 address]/prefixlen pair</em></span> — [net]/prefixlen pairs can also be used as a pattern to control access to a particular group of IPv6 addresses. The following example would apply to any host with an address range of <code class="systemitem">3ffe:505:2:1::</code> through <code class="systemitem">3ffe:505:2:1:ffff:ffff:ffff:ffff</code>: + </div><pre class="screen">ALL : [3ffe:505:2:1::]/64</pre></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>The asterisk (*)</em></span> — Asterisks can be used to match entire groups of hostnames or IP addresses, as long as they are not mixed in a client list containing other types of patterns. The following example would apply to any host within the <code class="systemitem">example.com</code> domain: + </div><pre class="screen">ALL : *.example.com</pre></li><li class="listitem"><div class="para"> + <span class="emphasis"><em>The slash (/)</em></span> — If a client list begins with a slash, it is treated as a file name. This is useful if rules specifying large numbers of hosts are necessary. The following example refers TCP Wrappers to the <code class="filename">/etc/telnet.hosts</code> file for all Telnet connections: + </div><pre class="screen">in.telnetd : /etc/telnet.hosts</pre></li></ul></div><div class="para"> + Other, lesser used, patterns are also accepted by TCP Wrappers. Refer to the <code class="filename">hosts_access</code> man 5 page for more information. + </div><div class="warning"><h2>Warning</h2><div class="para"> + Be very careful when using hostnames and domain names. Attackers can use a variety of tricks to circumvent accurate name resolution. In addition, disruption to DNS service prevents even authorized users from using network services. It is, therefore, best to use IP addresses whenever possible. + </div></div></div><div class="section" title="2.5.2.1.3. Portmap and TCP Wrappers" id="sect-Security_Guide-Formatting_Access_Rules-Portmap_and_TCP_Wrappers"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Formatting_Access_Rules-Portmap_and_TCP_Wrappers">2.5.2.1.3. Portmap and TCP Wrappers</h5></div></div></div><div class="para"> + <code class="command">Portmap</code>'s implementation of TCP Wrappers does not support host look-ups, which means <code class="command">portmap</code> can not use hostnames to identify hosts. Consequently, access control rules for portmap in <code class="filename">hosts.allow</code> or <code class="filename">hosts.deny</code> must use IP addresses, or the keyword <code class="option">ALL</code>, for specifying hosts. + </div><div class="para"> + Changes to <code class="command">portmap</code> access control rules may not take effect immediately. You may need to restart the <code class="command">portmap</code> service. + </div><div class="para"> + Widely used services, such as NIS and NFS, depend on <code class="command">portmap</code> to operate, so be aware of these limitations. + </div></div><div class="section" title="2.5.2.1.4. Operators" id="sect-Security_Guide-Formatting_Access_Rules-Operators"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Formatting_Access_Rules-Operators">2.5.2.1.4. Operators</h5></div></div></div><div class="para"> + At present, access control rules accept one operator, <code class="option">EXCEPT</code>. It can be used in both the daemon list and the client list of a rule. + </div><div class="para"> + The <code class="option">EXCEPT</code> operator allows specific exceptions to broader matches within the same rule. + </div><div class="para"> + In the following example from a <code class="filename">hosts.allow</code> file, all <code class="systemitem">example.com</code> hosts are allowed to connect to all services except <code class="systemitem">cracker.example.com</code>: + </div><pre class="screen">ALL: .example.com EXCEPT cracker.example.com</pre><div class="para"> + In another example from a <code class="filename">hosts.allow</code> file, clients from the <code class="systemitem">192.168.0.<em class="replaceable"><code>x</code></em></code> network can use all services except for FTP: + </div><pre class="screen">ALL EXCEPT vsftpd: 192.168.0.</pre><div class="note"><h2>Note</h2><div class="para"> + Organizationally, it is often easier to avoid using <code class="option">EXCEPT</code> operators. This allows other administrators to quickly scan the appropriate files to see what hosts are allowed or denied access to services, without having to sort through <code class="option">EXCEPT</code> operators. + </div></div></div></div><div class="section" title="2.5.2.2. Option Fields" id="sect-Security_Guide-TCP_Wrappers_Configuration_Files-Option_Fields"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-TCP_Wrappers_Configuration_Files-Option_Fields">2.5.2.2. Option Fields</h4></div></div></div><div class="para"> + In addition to basic rules that allow and deny access, the Fedora implementation of TCP Wrappers supports extensions to the access control language through <em class="firstterm">option fields</em>. By using option fields in hosts access rules, administrators can accomplish a variety of tasks such as altering log behavior, consolidating access control, and launching shell commands. + </div><div class="section" title="2.5.2.2.1. Logging" id="sect-Security_Guide-Option_Fields-Logging"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Option_Fields-Logging">2.5.2.2.1. Logging</h5></div></div></div><div class="para"> + Option fields let administrators easily change the log facility and priority level for a rule by using the <code class="option">severity</code> directive. + </div><div class="para"> + In the following example, connections to the SSH daemon from any host in the <code class="systemitem">example.com</code> domain are logged to the default <code class="option">authpriv</code> <code class="option">syslog</code> facility (because no facility value is specified) with a priority of <code class="option">emerg</code>: + </div><pre class="screen">sshd : .example.com : severity emerg</pre><div class="para"> + It is also possible to specify a facility using the <code class="option">severity</code> option. The following example logs any SSH connection attempts by hosts from the <code class="systemitem">example.com</code> domain to the <code class="option">local0</code> facility with a priority of <code class="option">alert</code>: + </div><pre class="screen">sshd : .example.com : severity local0.alert</pre><div class="note"><h2>Note</h2><div class="para"> + In practice, this example does not work until the syslog daemon (<code class="systemitem">syslogd</code>) is configured to log to the <code class="command">local0</code> facility. Refer to the <code class="filename">syslog.conf</code> man page for information about configuring custom log facilities. + </div></div></div><div class="section" title="2.5.2.2.2. Access Control" id="sect-Security_Guide-Option_Fields-Access_Control"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Option_Fields-Access_Control">2.5.2.2.2. Access Control</h5></div></div></div><div class="para"> + Option fields also allow administrators to explicitly allow or deny hosts in a single rule by adding the <code class="option">allow</code> or <code class="option">deny</code> directive as the final option. + </div><div class="para"> + For example, the following two rules allow SSH connections from <code class="systemitem">client-1.example.com</code>, but deny connections from <code class="systemitem">client-2.example.com</code>: + </div><pre class="screen">sshd : client-1.example.com : allow +sshd : client-2.example.com : deny</pre><div class="para"> + By allowing access control on a per-rule basis, the option field allows administrators to consolidate all access rules into a single file: either <code class="filename">hosts.allow</code> or <code class="filename">hosts.deny</code>. Some administrators consider this an easier way of organizing access rules. + </div></div><div class="section" title="2.5.2.2.3. Shell Commands" id="sect-Security_Guide-Option_Fields-Shell_Commands"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Option_Fields-Shell_Commands">2.5.2.2.3. Shell Commands</h5></div></div></div><div class="para"> + Option fields allow access rules to launch shell commands through the following two directives: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">spawn</code> — Launches a shell command as a child process. This directive can perform tasks like using <code class="command">/usr/sbin/safe_finger</code> to get more information about the requesting client or create special log files using the <code class="command">echo</code> command. + </div><div class="para"> + In the following example, clients attempting to access Telnet services from the <code class="systemitem">example.com</code> domain are quietly logged to a special file: + </div><pre class="screen">in.telnetd : .example.com \ + : spawn /bin/echo `/bin/date` from %h>>/var/log/telnet.log \ + : allow</pre></li><li class="listitem"><div class="para"> + <code class="command">twist</code> — Replaces the requested service with the specified command. This directive is often used to set up traps for intruders (also called "honey pots"). It can also be used to send messages to connecting clients. The <code class="command">twist</code> directive must occur at the end of the rule line. + </div><div class="para"> + In the following example, clients attempting to access FTP services from the <code class="systemitem">example.com</code> domain are sent a message using the <code class="command">echo</code> command: + </div><pre class="screen">vsftpd : .example.com \ + : twist /bin/echo "421 This domain has been black-listed. Access denied!"</pre></li></ul></div><div class="para"> + For more information about shell command options, refer to the <code class="filename">hosts_options</code> man page. + </div></div><div class="section" title="2.5.2.2.4. Expansions" id="sect-Security_Guide-Option_Fields-Expansions"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Option_Fields-Expansions">2.5.2.2.4. Expansions</h5></div></div></div><div class="para"> + Expansions, when used in conjunction with the <code class="command">spawn</code> and <code class="command">twist</code> directives, provide information about the client, server, and processes involved. + </div><div class="para"> + The following is a list of supported expansions: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="option">%a</code> — Returns the client's IP address. + </div></li><li class="listitem"><div class="para"> + <code class="option">%A</code> — Returns the server's IP address. + </div></li><li class="listitem"><div class="para"> + <code class="option">%c</code> — Returns a variety of client information, such as the username and hostname, or the username and IP address. + </div></li><li class="listitem"><div class="para"> + <code class="option">%d</code> — Returns the daemon process name. + </div></li><li class="listitem"><div class="para"> + <code class="option">%h</code> — Returns the client's hostname (or IP address, if the hostname is unavailable). + </div></li><li class="listitem"><div class="para"> + <code class="option">%H</code> — Returns the server's hostname (or IP address, if the hostname is unavailable). + </div></li><li class="listitem"><div class="para"> + <code class="option">%n</code> — Returns the client's hostname. If unavailable, <code class="computeroutput">unknown</code> is printed. If the client's hostname and host address do not match, <code class="computeroutput">paranoid</code> is printed. + </div></li><li class="listitem"><div class="para"> + <code class="option">%N</code> — Returns the server's hostname. If unavailable, <code class="computeroutput">unknown</code> is printed. If the server's hostname and host address do not match, <code class="computeroutput">paranoid</code> is printed. + </div></li><li class="listitem"><div class="para"> + <code class="option">%p</code> — Returns the daemon's process ID. + </div></li><li class="listitem"><div class="para"> + <code class="option">%s</code> —Returns various types of server information, such as the daemon process and the host or IP address of the server. + </div></li><li class="listitem"><div class="para"> + <code class="option">%u</code> — Returns the client's username. If unavailable, <code class="computeroutput">unknown</code> is printed. + </div></li></ul></div><div class="para"> + The following sample rule uses an expansion in conjunction with the <code class="command">spawn</code> command to identify the client host in a customized log file. + </div><div class="para"> + When connections to the SSH daemon (<code class="systemitem">sshd</code>) are attempted from a host in the <code class="systemitem">example.com</code> domain, execute the <code class="command">echo</code> command to log the attempt, including the client hostname (by using the <code class="option">%h</code> expansion), to a special file: + </div><pre class="screen">sshd : .example.com \ + : spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \ + : deny</pre><div class="para"> + Similarly, expansions can be used to personalize messages back to the client. In the following example, clients attempting to access FTP services from the <code class="systemitem">example.com</code> domain are informed that they have been banned from the server: + </div><pre class="screen">vsftpd : .example.com \ +: twist /bin/echo "421 %h has been banned from this server!"</pre><div class="para"> + For a full explanation of available expansions, as well as additional access control options, refer to section 5 of the man pages for <code class="filename">hosts_access</code> (<code class="command">man 5 hosts_access</code>) and the man page for <code class="filename">hosts_options</code>. + </div><div class="para"> + Refer to <a class="xref" href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-Additional_Resources" title="2.5.5. Additional Resources">Section 2.5.5, “Additional Resources”</a> for more information about TCP Wrappers. + </div></div></div></div><div class="section" title="2.5.3. xinetd" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-xinetd"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-xinetd">2.5.3. xinetd</h3></div></div></div><div class="para"> + The <code class="systemitem">xinetd</code> daemon is a TCP-wrapped <em class="firstterm">super service</em> which controls access to a subset of popular network services, including FTP, IMAP, and Telnet. It also provides service-specific configuration options for access control, enhanced logging, binding, redirection, and resource utilization control. + </div><div class="para"> + When a client attempts to connect to a network service controlled by <code class="systemitem">xinetd</code>, the super service receives the request and checks for any TCP Wrappers access control rules. + </div><div class="para"> + If access is allowed, <code class="systemitem">xinetd</code> verifies that the connection is allowed under its own access rules for that service. It also checks that the service can have more resources allotted to it and that it is not in breach of any defined rules. + </div><div class="para"> + If all these conditions are met (that is, access is allowed to the service; the service has not reached its resource limit; and the service is not in breach of any defined rule), <code class="systemitem">xinetd</code> then starts an instance of the requested service and passes control of the connection to it. After the connection has been established, <code class="systemitem">xinetd</code> takes no further part in the communication between the client and the server. + </div></div><div class="section" title="2.5.4. xinetd Configuration Files" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-xinetd_Configuration_Files"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-xinetd_Configuration_Files">2.5.4. xinetd Configuration Files</h3></div></div></div><div class="para"> + The configuration files for <code class="systemitem">xinetd</code> are as follows: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="filename">/etc/xinetd.conf</code> — The global <code class="systemitem">xinetd</code> configuration file. + </div></li><li class="listitem"><div class="para"> + <code class="filename">/etc/xinetd.d/</code> — The directory containing all service-specific files. + </div></li></ul></div><div class="section" title="2.5.4.1. The /etc/xinetd.conf File" id="sect-Security_Guide-xinetd_Configuration_Files-The_etcxinetd.conf_File"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-xinetd_Configuration_Files-The_etcxinetd.conf_File">2.5.4.1. The /etc/xinetd.conf File</h4></div></div></div><div class="para"> + The <code class="filename">/etc/xinetd.conf</code> file contains general configuration settings which affect every service under <code class="systemitem">xinetd</code>'s control. It is read when the <code class="systemitem">xinetd</code> service is first started, so for configuration changes to take effect, you need to restart the <code class="systemitem">xinetd</code> service. The following is a sample <code class="filename">/etc/xinetd.conf</code> file: + </div><pre class="screen">defaults +{ + instances = 60 + log_type = SYSLOG authpriv + log_on_success = HOST PID + log_on_failure = HOST + cps = 25 30 +} +includedir /etc/xinetd.d</pre><div class="para"> + These lines control the following aspects of <code class="systemitem">xinetd</code>: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="option">instances</code> — Specifies the maximum number of simultaneous requests that <code class="systemitem">xinetd</code> can process. + </div></li><li class="listitem"><div class="para"> + <code class="option">log_type</code> — Configures <code class="systemitem">xinetd</code> to use the <code class="command">authpriv</code> log facility, which writes log entries to the <code class="filename">/var/log/secure</code> file. Adding a directive such as <code class="option">FILE /var/log/xinetdlog</code> would create a custom log file called <code class="filename">xinetdlog</code> in the <code class="filename">/var/log/</code> directory. + </div></li><li class="listitem"><div class="para"> + <code class="option">log_on_success</code> — Configures <code class="systemitem">xinetd</code> to log successful connection attempts. By default, the remote host's IP address and the process ID of the server processing the request are recorded. + </div></li><li class="listitem"><div class="para"> + <code class="option">log_on_failure</code> — Configures <code class="systemitem">xinetd</code> to log failed connection attempts or if the connection was denied. + </div></li><li class="listitem"><div class="para"> + <code class="option">cps</code> — Configures <code class="systemitem">xinetd</code> to allow no more than 25 connections per second to any given service. If this limit is exceeded, the service is retired for 30 seconds. + </div></li><li class="listitem"><div class="para"> + <code class="option">includedir</code> <code class="filename">/etc/xinetd.d/</code> — Includes options declared in the service-specific configuration files located in the <code class="filename">/etc/xinetd.d/</code> directory. Refer to <a class="xref" href="#sect-Security_Guide-xinetd_Configuration_Files-The_etcxinetd.d_Directory" title="2.5.4.2. The /etc/xinetd.d/ Directory">Section 2.5.4.2, “The /etc/xinetd.d/ Directory”</a> for more information. + </div></li></ul></div><div class="note"><h2>Note</h2><div class="para"> + Often, both the <code class="option">log_on_success</code> and <code class="option">log_on_failure</code> settings in <code class="filename">/etc/xinetd.conf</code> are further modified in the service-specific configuration files. More information may therefore appear in a given service's log file than the <code class="filename">/etc/xinetd.conf</code> file may indicate. Refer to <a class="xref" href="#sect-Security_Guide-Altering_xinetd_Configuration_Files-Logging_Options" title="2.5.4.3.1. Logging Options">Section 2.5.4.3.1, “Logging Options”</a> for further information. + </div></div></div><div class="section" title="2.5.4.2. The /etc/xinetd.d/ Directory" id="sect-Security_Guide-xinetd_Configuration_Files-The_etcxinetd.d_Directory"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-xinetd_Configuration_Files-The_etcxinetd.d_Directory">2.5.4.2. The /etc/xinetd.d/ Directory</h4></div></div></div><div class="para"> + The <code class="filename">/etc/xinetd.d/</code> directory contains the configuration files for each service managed by <code class="systemitem">xinetd</code> and the names of the files correlate to the service. As with <code class="filename">xinetd.conf</code>, this directory is read only when the <code class="systemitem">xinetd</code> service is started. For any changes to take effect, the administrator must restart the <code class="systemitem">xinetd</code> service. + </div><div class="para"> + The format of files in the <code class="filename">/etc/xinetd.d/</code> directory use the same conventions as <code class="filename">/etc/xinetd.conf</code>. The primary reason the configuration for each service is stored in a separate file is to make customization easier and less likely to affect other services. + </div><div class="para"> + To gain an understanding of how these files are structured, consider the <code class="filename">/etc/xinetd.d/krb5-telnet</code> file: + </div><pre class="screen">service telnet +{ + flags = REUSE + socket_type = stream + wait = no + user = root + server = /usr/kerberos/sbin/telnetd + log_on_failure += USERID + disable = yes +}</pre><div class="para"> + These lines control various aspects of the <code class="command">telnet</code> service: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="option">service</code> — Specifies the service name, usually one of those listed in the <code class="filename">/etc/services</code> file. + </div></li><li class="listitem"><div class="para"> + <code class="option">flags</code> — Sets any of a number of attributes for the connection. <code class="option">REUSE</code> instructs <code class="systemitem">xinetd</code> to reuse the socket for a Telnet connection. + </div><div class="note"><h2>Note</h2><div class="para"> + The <code class="option">REUSE</code> flag is deprecated. All services now implicitly use the <code class="option">REUSE</code> flag. + </div></div></li><li class="listitem"><div class="para"> + <code class="option">socket_type</code> — Sets the network socket type to <code class="option">stream</code>. + </div></li><li class="listitem"><div class="para"> + <code class="option">wait</code> — Specifies whether the service is single-threaded (<code class="option">yes</code>) or multi-threaded (<code class="option">no</code>). + </div></li><li class="listitem"><div class="para"> + <code class="option">user</code> — Specifies which user ID the process runs under. + </div></li><li class="listitem"><div class="para"> + <code class="option">server</code> — Specifies which binary executable to launch. + </div></li><li class="listitem"><div class="para"> + <code class="option">log_on_failure</code> — Specifies logging parameters for <code class="option">log_on_failure</code> in addition to those already defined in <code class="filename">xinetd.conf</code>. + </div></li><li class="listitem"><div class="para"> + <code class="option">disable</code> — Specifies whether the service is disabled (<code class="option">yes</code>) or enabled (<code class="option">no</code>). + </div></li></ul></div><div class="para"> + Refer to the <code class="filename">xinetd.conf</code> man page for more information about these options and their usage. + </div></div><div class="section" title="2.5.4.3. Altering xinetd Configuration Files" id="sect-Security_Guide-xinetd_Configuration_Files-Altering_xinetd_Configuration_Files"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-xinetd_Configuration_Files-Altering_xinetd_Configuration_Files">2.5.4.3. Altering xinetd Configuration Files</h4></div></div></div><div class="para"> + A range of directives is available for services protected by <code class="systemitem">xinetd</code>. This section highlights some of the more commonly used options. + </div><div class="section" title="2.5.4.3.1. Logging Options" id="sect-Security_Guide-Altering_xinetd_Configuration_Files-Logging_Options"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Altering_xinetd_Configuration_Files-Logging_Options">2.5.4.3.1. Logging Options</h5></div></div></div><div class="para"> + The following logging options are available for both <code class="filename">/etc/xinetd.conf</code> and the service-specific configuration files within the <code class="filename">/etc/xinetd.d/</code> directory. + </div><div class="para"> + The following is a list of some of the more commonly used logging options: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="option">ATTEMPT</code> — Logs the fact that a failed attempt was made (<code class="option">log_on_failure</code>). + </div></li><li class="listitem"><div class="para"> + <code class="option">DURATION</code> — Logs the length of time the service is used by a remote system (<code class="option">log_on_success</code>). + </div></li><li class="listitem"><div class="para"> + <code class="option">EXIT</code> — Logs the exit status or termination signal of the service (<code class="option">log_on_success</code>). + </div></li><li class="listitem"><div class="para"> + <code class="option">HOST</code> — Logs the remote host's IP address (<code class="option">log_on_failure</code> and <code class="option">log_on_success</code>). + </div></li><li class="listitem"><div class="para"> + <code class="option">PID</code> — Logs the process ID of the server receiving the request (<code class="option">log_on_success</code>). + </div></li><li class="listitem"><div class="para"> + <code class="option">USERID</code> — Logs the remote user using the method defined in RFC 1413 for all multi-threaded stream services (<code class="option">log_on_failure</code> and<code class="option">log_on_success</code>). + </div></li></ul></div><div class="para"> + For a complete list of logging options, refer to the <code class="filename">xinetd.conf</code> man page. + </div></div><div class="section" title="2.5.4.3.2. Access Control Options" id="sect-Security_Guide-Altering_xinetd_Configuration_Files-Access_Control_Options"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Altering_xinetd_Configuration_Files-Access_Control_Options">2.5.4.3.2. Access Control Options</h5></div></div></div><div class="para"> + Users of <code class="systemitem">xinetd</code> services can choose to use the TCP Wrappers hosts access rules, provide access control via the <code class="systemitem">xinetd</code> configuration files, or a mixture of both. Refer to <a class="xref" href="#sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers_Configuration_Files" title="2.5.2. TCP Wrappers Configuration Files">Section 2.5.2, “TCP Wrappers Configuration Files”</a> for more information about TCP Wrappers hosts access control files. + </div><div class="para"> + This section discusses using <code class="systemitem">xinetd</code> to control access to services. + </div><div class="note"><h2>Note</h2><div class="para"> + Unlike TCP Wrappers, changes to access control only take effect if the <code class="systemitem">xinetd</code> administrator restarts the <code class="systemitem">xinetd</code> service. + </div><div class="para"> + Also, unlike TCP Wrappers, access control through <code class="systemitem">xinetd</code> only affects services controlled by <code class="systemitem">xinetd</code>. + </div></div><div class="para"> + The <code class="systemitem">xinetd</code> hosts access control differs from the method used by TCP Wrappers. While TCP Wrappers places all of the access configuration within two files, <code class="filename">/etc/hosts.allow</code> and <code class="filename">/etc/hosts.deny</code>, <code class="systemitem">xinetd</code>'s access control is found in each service's configuration file in the <code class="filename">/etc/xinetd.d/</code> directory. + </div><div class="para"> + The following hosts access options are supported by <code class="systemitem">xinetd</code>: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="option">only_from</code> — Allows only the specified hosts to use the service. + </div></li><li class="listitem"><div class="para"> + <code class="option">no_access</code> — Blocks listed hosts from using the service. + </div></li><li class="listitem"><div class="para"> + <code class="option">access_times</code> — Specifies the time range when a particular service may be used. The time range must be stated in 24-hour format notation, HH:MM-HH:MM. + </div></li></ul></div><div class="para"> + The <code class="option">only_from</code> and <code class="option">no_access</code> options can use a list of IP addresses or host names, or can specify an entire network. Like TCP Wrappers, combining <code class="systemitem">xinetd</code> access control with the enhanced logging configuration can increase security by blocking requests from banned hosts while verbosely recording each connection attempt. + </div><div class="para"> + For example, the following <code class="filename">/etc/xinetd.d/telnet</code> file can be used to block Telnet access from a particular network group and restrict the overall time range that even allowed users can log in: + </div><pre class="screen">service telnet +{ + disable = no + flags = REUSE + socket_type = stream + wait = no + user = root + server = /usr/kerberos/sbin/telnetd + log_on_failure += USERID + no_access = 172.16.45.0/24 + log_on_success += PID HOST EXIT + access_times = 09:45-16:15 +}</pre><div class="para"> + In this example, when a client system from the <code class="systemitem">172.16.45.0/24</code> network, such as <code class="systemitem">172.16.45.2</code>, tries to access the Telnet service, it receives the following message: + </div><pre class="screen">Connection closed by foreign host.</pre><div class="para"> + In addition, their login attempts are logged in <code class="filename">/var/log/messages</code> as follows: + </div><pre class="screen">Sep 7 14:58:33 localhost xinetd[5285]: FAIL: telnet address from=172.16.45.107 +Sep 7 14:58:33 localhost xinetd[5283]: START: telnet pid=5285 from=172.16.45.107 +Sep 7 14:58:33 localhost xinetd[5283]: EXIT: telnet status=0 pid=5285 duration=0(sec)</pre><div class="para"> + When using TCP Wrappers in conjunction with <code class="systemitem">xinetd</code> access controls, it is important to understand the relationship between the two access control mechanisms. + </div><div class="para"> + The following is the sequence of events followed by <code class="systemitem">xinetd</code> when a client requests a connection: + </div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + The <code class="systemitem">xinetd</code> daemon accesses the TCP Wrappers hosts access rules using a <code class="filename">libwrap.a</code> library call. If a deny rule matches the client, the connection is dropped. If an allow rule matches the client, the connection is passed to <code class="systemitem">xinetd</code>. + </div></li><li class="listitem"><div class="para"> + The <code class="systemitem">xinetd</code> daemon checks its own access control rules both for the <code class="systemitem">xinetd</code> service and the requested service. If a deny rule matches the client, the connection is dropped. Otherwise, <code class="systemitem">xinetd</code> starts an instance of the requested service and passes control of the connection to that service. + </div></li></ol></div><div class="important"><h2>Important</h2><div class="para"> + Care should be taken when using TCP Wrappers access controls in conjunction with <code class="systemitem">xinetd</code> access controls. Misconfiguration can cause undesirable effects. + </div></div></div><div class="section" title="2.5.4.3.3. Binding and Redirection Options" id="sect-Security_Guide-Altering_xinetd_Configuration_Files-Binding_and_Redirection_Options"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Altering_xinetd_Configuration_Files-Binding_and_Redirection_Options">2.5.4.3.3. Binding and Redirection Options</h5></div></div></div><div class="para"> + The service configuration files for <code class="systemitem">xinetd</code> support binding the service to an IP address and redirecting incoming requests for that service to another IP address, hostname, or port. + </div><div class="para"> + Binding is controlled with the <code class="option">bind</code> option in the service-specific configuration files and links the service to one IP address on the system. When this is configured, the <code class="option">bind</code> option only allows requests to the correct IP address to access the service. You can use this method to bind different services to different network interfaces based on requirements. + </div><div class="para"> + This is particularly useful for systems with multiple network adapters or with multiple IP addresses. On such a system, insecure services (for example, Telnet), can be configured to listen only on the interface connected to a private network and not to the interface connected to the Internet. + </div><div class="para"> + The <code class="option">redirect</code> option accepts an IP address or hostname followed by a port number. It configures the service to redirect any requests for this service to the specified host and port number. This feature can be used to point to another port number on the same system, redirect the request to a different IP address on the same machine, shift the request to a totally different system and port number, or any combination of these options. A user connecting to a certain service on a system may therefore be rerouted to another system without disruption. + </div><div class="para"> + The <code class="systemitem">xinetd</code> daemon is able to accomplish this redirection by spawning a process that stays alive for the duration of the connection between the requesting client machine and the host actually providing the service, transferring data between the two systems. + </div><div class="para"> + The advantages of the <code class="option">bind</code> and <code class="option">redirect</code> options are most clearly evident when they are used together. By binding a service to a particular IP address on a system and then redirecting requests for this service to a second machine that only the first machine can see, an internal system can be used to provide services for a totally different network. Alternatively, these options can be used to limit the exposure of a particular service on a multi-homed machine to a known IP address, as well as redirect any requests for that service to another machine especially configured for that purpose. + </div><div class="para"> + For example, consider a system that is used as a firewall with this setting for its Telnet service: + </div><pre class="screen">service telnet +{ + socket_type = stream + wait = no + server = /usr/kerberos/sbin/telnetd + log_on_success += DURATION USERID + log_on_failure += USERID + bind = 123.123.123.123 + redirect = 10.0.1.13 23 +}</pre><div class="para"> + The <code class="option">bind</code> and <code class="option">redirect</code> options in this file ensure that the Telnet service on the machine is bound to the external IP address (<code class="systemitem">123.123.123.123</code>), the one facing the Internet. In addition, any requests for Telnet service sent to <code class="systemitem">123.123.123.123</code> are redirected via a second network adapter to an internal IP address (<code class="systemitem">10.0.1.13</code>) that only the firewall and internal systems can access. The firewall then sends the communication between the two systems, and the connecting system thinks it is connected to <code class="systemitem">123.123.123.123</code> when it is actually connected to a different machine. + </div><div class="para"> + This feature is particularly useful for users with broadband connections and only one fixed IP address. When using Network Address Translation (NAT), the systems behind the gateway machine, which are using internal-only IP addresses, are not available from outside the gateway system. However, when certain services controlled by <code class="systemitem">xinetd</code> are configured with the <code class="option">bind</code> and <code class="option">redirect</code> options, the gateway machine can act as a proxy between outside systems and a particular internal machine configured to provide the service. In addition, the various <code class="systemitem">xinetd</code> access control and logging options are also available for additional protection. + </div></div><div class="section" title="2.5.4.3.4. Resource Management Options" id="sect-Security_Guide-Altering_xinetd_Configuration_Files-Resource_Management_Options"><div class="titlepage"><div><div keep-together.within-column="always"><h5 class="title" id="sect-Security_Guide-Altering_xinetd_Configuration_Files-Resource_Management_Options">2.5.4.3.4. Resource Management Options</h5></div></div></div><div class="para"> + The <code class="systemitem">xinetd</code> daemon can add a basic level of protection from Denial of Service (DoS) attacks. The following is a list of directives which can aid in limiting the effectiveness of such attacks: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="option">per_source</code> — Defines the maximum number of instances for a service per source IP address. It accepts only integers as an argument and can be used in both <code class="filename">xinetd.conf</code> and in the service-specific configuration files in the <code class="filename">xinetd.d/</code> directory. + </div></li><li class="listitem"><div class="para"> + <code class="option">cps</code> — Defines the maximum number of connections per second. This directive takes two integer arguments separated by white space. The first argument is the maximum number of connections allowed to the service per second. The second argument is the number of seconds that <code class="systemitem">xinetd</code> must wait before re-enabling the service. It accepts only integers as arguments and can be used in either the <code class="filename">xinetd.conf</code> file or the service-specific configuration files in the <code class="filename">xinetd.d/</code> directory. + </div></li><li class="listitem"><div class="para"> + <code class="option">max_load</code> — Defines the CPU usage or load average threshold for a service. It accepts a floating point number argument. + </div><div class="para"> + The load average is a rough measure of how many processes are active at a given time. See the <code class="command">uptime</code>, <code class="command">who</code>, and <code class="command">procinfo</code> commands for more information about load average. + </div></li></ul></div><div class="para"> + There are more resource management options available for <code class="systemitem">xinetd</code>. Refer to the <code class="filename">xinetd.conf</code> man page for more information. + </div></div></div></div><div class="section" title="2.5.5. Additional Resources" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-Additional_Resources"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-TCP_Wrappers_and_xinetd-Additional_Resources">2.5.5. Additional Resources</h3></div></div></div><div class="para"> + More information about TCP Wrappers and <code class="systemitem">xinetd</code> is available from system documentation and on the Internet. + </div><div class="section" title="2.5.5.1. Installed TCP Wrappers Documentation" id="sect-Security_Guide-Additional_Resources-Installed_TCP_Wrappers_Documentation"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Additional_Resources-Installed_TCP_Wrappers_Documentation">2.5.5.1. Installed TCP Wrappers Documentation</h4></div></div></div><div class="para"> + The documentation on your system is a good place to start looking for additional configuration options for TCP Wrappers, <code class="systemitem">xinetd</code>, and access control. + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="filename">/usr/share/doc/tcp_wrappers-<em class="replaceable"><code><version></code></em>/</code> — This directory contains a <code class="filename">README</code> file that discusses how TCP Wrappers work and the various hostname and host address spoofing risks that exist. + </div></li><li class="listitem"><div class="para"> + <code class="filename">/usr/share/doc/xinetd-<em class="replaceable"><code><version></code></em>/</code> — This directory contains a <code class="filename">README</code> file that discusses aspects of access control and a <code class="filename">sample.conf</code> file with various ideas for modifying service-specific configuration files in the <code class="filename">/etc/xinetd.d/</code> directory. + </div></li><li class="listitem"><div class="para"> + TCP Wrappers and <code class="systemitem">xinetd</code>-related man pages — A number of man pages exist for the various applications and configuration files involved with TCP Wrappers and <code class="systemitem">xinetd</code>. The following are some of the more important man pages: + </div><div class="variablelist"><dl><dt><span class="term">Server Applications</span></dt><dd><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">man xinetd</code> — The man page for <code class="systemitem">xinetd</code>. + </div></li></ul></div></dd><dt><span class="term">Configuration Files</span></dt><dd><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">man 5 hosts_access</code> — The man page for the TCP Wrappers hosts access control files. + </div></li><li class="listitem"><div class="para"> + <code class="command">man hosts_options</code> — The man page for the TCP Wrappers options fields. + </div></li><li class="listitem"><div class="para"> + <code class="command">man xinetd.conf</code> — The man page listing <code class="systemitem">xinetd</code> configuration options. + </div></li></ul></div></dd></dl></div></li></ul></div></div><div class="section" title="2.5.5.2. Useful TCP Wrappers Websites" id="sect-Security_Guide-Additional_Resources-Useful_TCP_Wrappers_Websites"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Additional_Resources-Useful_TCP_Wrappers_Websites">2.5.5.2. Useful TCP Wrappers Websites</h4></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <a href="http://www.xinetd.org">http://www.xinetd.org/</a> — The home of <code class="systemitem">xinetd</code>, containing sample configuration files, a full listing of features, and an informative FAQ. + </div></li><li class="listitem"><div class="para"> + <a href="http://www.docstoc.com/docs/2133633/An-Unofficial-Xinetd-Tutorial">http://www.docstoc.com/docs/2133633/An-Unofficial-Xinetd-Tutorial</a> — A thorough tutorial that discusses many different ways to optimize default <code class="systemitem">xinetd</code> configuration files to meet specific security goals. + </div></li></ul></div></div><div class="section" title="2.5.5.3. Related Books" id="sect-Security_Guide-Additional_Resources-Related_Books"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Additional_Resources-Related_Books">2.5.5.3. Related Books</h4></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <em class="citetitle">Hacking Linux Exposed</em> by Brian Hatch, James Lee, and George Kurtz; Osbourne/McGraw-Hill — An excellent security resource with information about TCP Wrappers and <code class="systemitem">xinetd</code>. + </div></li></ul></div></div></div></div><div xml:lang="en-US" class="section" title="2.6. Kerberos" id="sect-Security_Guide-Kerberos" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Kerberos">2.6. Kerberos</h2></div></div></div><div class="para"> + System security and integrity within a network can be unwieldy. It can occupy the time of several administrators just to keep track of what services are being run on a network and the manner in which these services are used. + </div><div class="para"> + Further, authenticating users to network services can prove dangerous when the method used by the protocol is inherently insecure, as evidenced by the transfer of unencrypted passwords over a network using the traditional FTP and Telnet protocols. + </div><div class="para"> + Kerberos is a way to eliminate the need for protocols that allow unsafe methods of authentication, thereby enhancing overall network security. + </div><div class="section" title="2.6.1. What is Kerberos?" id="sect-Security_Guide-Kerberos-What_is_Kerberos"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-What_is_Kerberos">2.6.1. What is Kerberos?</h3></div></div></div><div class="para"> + Kerberos is a network authentication protocol created by MIT, and uses symmetric-key cryptography<sup>[<a id="id3053193" href="#ftn.id3053193" class="footnote">14</a>]</sup> to authenticate users to network services, which means passwords are never actually sent over the network. + </div><div class="para"> + Consequently, when users authenticate to network services using Kerberos, unauthorized users attempting to gather passwords by monitoring network traffic are effectively thwarted. + </div><div class="section" title="2.6.1.1. Advantages of Kerberos" id="sect-Security_Guide-What_is_Kerberos-Advantages_of_Kerberos"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-What_is_Kerberos-Advantages_of_Kerberos">2.6.1.1. Advantages of Kerberos</h4></div></div></div><div class="para"> + Most conventional network services use password-based authentication schemes. Such schemes require a user to authenticate to a given network server by supplying their username and password. Unfortunately, the transmission of authentication information for many services is unencrypted. For such a scheme to be secure, the network has to be inaccessible to outsiders, and all computers and users on the network must be trusted and trustworthy. + </div><div class="para"> + Even if this is the case, a network that is connected to the Internet can no longer be assumed to be secure. Any attacker who gains access to the network can use a simple packet analyzer, also known as a packet sniffer, to intercept usernames and passwords, compromising user accounts and the integrity of the entire security infrastructure. + </div><div class="para"> + The primary design goal of Kerberos is to eliminate the transmission of unencrypted passwords across the network. If used properly, Kerberos effectively eliminates the threat that packet sniffers would otherwise pose on a network. + </div></div><div class="section" title="2.6.1.2. Disadvantages of Kerberos" id="sect-Security_Guide-What_is_Kerberos-Disadvantages_of_Kerberos"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-What_is_Kerberos-Disadvantages_of_Kerberos">2.6.1.2. Disadvantages of Kerberos</h4></div></div></div><div class="para"> + Although Kerberos removes a common and severe security threat, it may be difficult to implement for a variety of reasons: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Migrating user passwords from a standard UNIX password database, such as <code class="filename">/etc/passwd</code> or <code class="filename">/etc/shadow</code>, to a Kerberos password database can be tedious, as there is no automated mechanism to perform this task. Refer to Question 2.23 in the online Kerberos FAQ: + </div><div class="para"> + <a href="http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html#pwconvert"> http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html</a> + </div></li><li class="listitem"><div class="para"> + Kerberos has only partial compatibility with the Pluggable Authentication Modules (PAM) system used by most Fedora servers. Refer to <a class="xref" href="#sect-Security_Guide-Kerberos-Kerberos_and_PAM" title="2.6.4. Kerberos and PAM">Section 2.6.4, “Kerberos and PAM”</a> for more information about this issue. + </div></li><li class="listitem"><div class="para"> + Kerberos assumes that each user is trusted but is using an untrusted host on an untrusted network. Its primary goal is to prevent unencrypted passwords from being transmitted across that network. However, if anyone other than the proper user has access to the one host that issues tickets used for authentication — called the <em class="firstterm">key distribution center</em> (<em class="firstterm">KDC</em>) — the entire Kerberos authentication system is at risk. + </div></li><li class="listitem"><div class="para"> + For an application to use Kerberos, its source must be modified to make the appropriate calls into the Kerberos libraries. Applications modified in this way are considered to be <em class="firstterm">Kerberos-aware</em>, or <em class="firstterm">kerberized</em>. For some applications, this can be quite problematic due to the size of the application or its design. For other incompatible applications, changes must be made to the way in which the server and client communicate. Again, this may require extensive programming. Closed-source applications that do not have Kerberos support by default are often the most problematic. + </div></li><li class="listitem"><div class="para"> + Kerberos is an all-or-nothing solution. If Kerberos is used on the network, any unencrypted passwords transferred to a non-Kerberos aware service is at risk. Thus, the network gains no benefit from the use of Kerberos. To secure a network with Kerberos, one must either use Kerberos-aware versions of <span class="emphasis"><em>all</em></span> client/server applications that transmit passwords unencrypted, or not use <span class="emphasis"><em>any</em></span> such client/server applications at all. + </div></li></ul></div></div></div><div class="section" title="2.6.2. Kerberos Terminology" id="sect-Security_Guide-Kerberos-Kerberos_Terminology"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-Kerberos_Terminology">2.6.2. Kerberos Terminology</h3></div></div></div><div class="para"> + Kerberos has its own terminology to define various aspects of the service. Before learning how Kerberos works, it is important to learn the following terms. + </div><div class="variablelist"><dl><dt><span class="term">authentication server (AS)</span></dt><dd><div class="para"> + A server that issues tickets for a desired service which are in turn given to users for access to the service. The AS responds to requests from clients who do not have or do not send credentials with a request. It is usually used to gain access to the ticket-granting server (TGS) service by issuing a ticket-granting ticket (TGT). The AS usually runs on the same host as the key distribution center (KDC). + </div></dd><dt><span class="term">ciphertext</span></dt><dd><div class="para"> + Encrypted data. + </div></dd><dt><span class="term">client</span></dt><dd><div class="para"> + An entity on the network (a user, a host, or an application) that can receive a ticket from Kerberos. + </div></dd><dt><span class="term">credentials</span></dt><dd><div class="para"> + A temporary set of electronic credentials that verify the identity of a client for a particular service. Also called a ticket. + </div></dd><dt><span class="term">credential cache or ticket file</span></dt><dd><div class="para"> + A file which contains the keys for encrypting communications between a user and various network services. Kerberos 5 supports a framework for using other cache types, such as shared memory, but files are more thoroughly supported. + </div></dd><dt><span class="term">crypt hash</span></dt><dd><div class="para"> + A one-way hash used to authenticate users. These are more secure than using unencrypted data, but they are still relatively easy to decrypt for an experienced cracker. + </div></dd><dt><span class="term">GSS-API</span></dt><dd><div class="para"> + The Generic Security Service Application Program Interface (defined in RFC-2743 published by The Internet Engineering Task Force) is a set of functions which provide security services. This API is used by clients and services to authenticate to each other without either program having specific knowledge of the underlying mechanism. If a network service (such as cyrus-IMAP) uses GSS-API, it can authenticate using Kerberos. + </div></dd><dt><span class="term">hash</span></dt><dd><div class="para"> + Also known as a <em class="firstterm">hash value</em>. A value generated by passing a string through a <em class="firstterm">hash function</em>. These values are typically used to ensure that transmitted data has not been tampered with. + </div></dd><dt><span class="term">hash function</span></dt><dd><div class="para"> + A way of generating a digital "fingerprint" from input data. These functions rearrange, transpose or otherwise alter data to produce a <em class="firstterm">hash value</em>. + </div></dd><dt><span class="term">key</span></dt><dd><div class="para"> + Data used when encrypting or decrypting other data. Encrypted data cannot be decrypted without the proper key or extremely good fortune on the part of the cracker. + </div></dd><dt><span class="term">key distribution center (KDC)</span></dt><dd><div class="para"> + A service that issues Kerberos tickets, and which usually run on the same host as the ticket-granting server (TGS). + </div></dd><dt><span class="term">keytab (or key table)</span></dt><dd><div class="para"> + A file that includes an unencrypted list of principals and their keys. Servers retrieve the keys they need from keytab files instead of using <code class="command">kinit</code>. The default keytab file is <code class="filename">/etc/krb5.keytab</code>. The KDC administration server, <code class="command">/usr/kerberos/sbin/kadmind</code>, is the only service that uses any other file (it uses <code class="filename">/var/kerberos/krb5kdc/kadm5.keytab</code>). + </div></dd><dt><span class="term">kinit</span></dt><dd><div class="para"> + The <code class="command">kinit</code> command allows a principal who has already logged in to obtain and cache the initial ticket-granting ticket (TGT). Refer to the <code class="command">kinit</code> man page for more information. + </div></dd><dt><span class="term">principal (or principal name)</span></dt><dd><div class="para"> + The principal is the unique name of a user or service allowed to authenticate using Kerberos. A principal follows the form <code class="computeroutput">root[/instance]@REALM</code>. For a typical user, the root is the same as their login ID. The <code class="computeroutput">instance</code> is optional. If the principal has an instance, it is separated from the root with a forward slash ("/"). An empty string ("") is considered a valid instance (which differs from the default <code class="computeroutput">NULL</code> instance), but using it can be confusing. All principals in a realm have their own key, which for users is derived from a password or is randomly set for services. + </div></dd><dt><span class="term">realm</span></dt><dd><div class="para"> + A network that uses Kerberos, composed of one or more servers called KDCs and a potentially large number of clients. + </div></dd><dt><span class="term">service</span></dt><dd><div class="para"> + A program accessed over the network. + </div></dd><dt><span class="term">ticket</span></dt><dd><div class="para"> + A temporary set of electronic credentials that verify the identity of a client for a particular service. Also called credentials. + </div></dd><dt><span class="term">ticket-granting server (TGS)</span></dt><dd><div class="para"> + A server that issues tickets for a desired service which are in turn given to users for access to the service. The TGS usually runs on the same host as the KDC. + </div></dd><dt><span class="term">ticket-granting ticket (TGT)</span></dt><dd><div class="para"> + A special ticket that allows the client to obtain additional tickets without applying for them from the KDC. + </div></dd><dt><span class="term">unencrypted password</span></dt><dd><div class="para"> + A plain text, human-readable password. + </div></dd></dl></div></div><div class="section" title="2.6.3. How Kerberos Works" id="sect-Security_Guide-Kerberos-How_Kerberos_Works"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-How_Kerberos_Works">2.6.3. How Kerberos Works</h3></div></div></div><div class="para"> + Kerberos differs from username/password authentication methods. Instead of authenticating each user to each network service, Kerberos uses symmetric encryption and a trusted third party (a KDC), to authenticate users to a suite of network services. When a user authenticates to the KDC, the KDC sends a ticket specific to that session back to the user's machine, and any Kerberos-aware services look for the ticket on the user's machine rather than requiring the user to authenticate using a password. + </div><div class="para"> + When a user on a Kerberos-aware network logs in to their workstation, their principal is sent to the KDC as part of a request for a TGT from the Authentication Server. This request can be sent by the log-in program so that it is transparent to the user, or can be sent by the <code class="command">kinit</code> program after the user logs in. + </div><div class="para"> + The KDC then checks for the principal in its database. If the principal is found, the KDC creates a TGT, which is encrypted using the user's key and returned to that user. + </div><div class="para"> + The login or <code class="command">kinit</code> program on the client then decrypts the TGT using the user's key, which it computes from the user's password. The user's key is used only on the client machine and is <span class="emphasis"><em>not</em></span> transmitted over the network. + </div><div class="para"> + The TGT is set to expire after a certain period of time (usually ten to twenty-four hours) and is stored in the client machine's credentials cache. An expiration time is set so that a compromised TGT is of use to an attacker for only a short period of time. After the TGT has been issued, the user does not have to re-enter their password until the TGT expires or until they log out and log in again. + </div><div class="para"> + Whenever the user needs access to a network service, the client software uses the TGT to request a new ticket for that specific service from the TGS. The service ticket is then used to authenticate the user to that service transparently. + </div><div class="warning"><h2>Warning</h2><div class="para"> + The Kerberos system can be compromised if a user on the network authenticates against a non-Kerberos aware service by transmitting a password in plain text. The use of non-Kerberos aware services is highly discouraged. Such services include Telnet and FTP. The use of other encrypted protocols, such as SSH or SSL-secured services, however, is preferred, although not ideal. + </div></div><div class="para"> + This is only a broad overview of how Kerberos authentication works. Refer to <a class="xref" href="#sect-Security_Guide-Kerberos-Additional_Resources" title="2.6.10. Additional Resources">Section 2.6.10, “Additional Resources”</a> for links to more in-depth information. + </div><div class="note"><h2>Note</h2><div class="para"> + Kerberos depends on the following network services to function correctly. + <div class="itemizedlist"><ul><li class="listitem"><div class="para"> + Approximate clock synchronization between the machines on the network. + </div><div class="para"> + A clock synchronization program should be set up for the network, such as <code class="command">ntpd</code>. Refer to <code class="filename">/usr/share/doc/ntp-<em class="replaceable"><code><version-number></code></em>/index.html</code> for details on setting up Network Time Protocol servers (where <em class="replaceable"><code><version-number></code></em> is the version number of the <code class="filename">ntp</code> package installed on your system). + </div></li><li class="listitem"><div class="para"> + Domain Name Service (DNS). + </div><div class="para"> + You should ensure that the DNS entries and hosts on the network are all properly configured. Refer to the <em class="citetitle">Kerberos V5 System Administrator's Guide</em> in <code class="filename">/usr/share/doc/krb5-server-<em class="replaceable"><code><version-number></code></em></code> for more information (where <em class="replaceable"><code><version-number></code></em> is the version number of the <code class="filename">krb5-server</code> package installed on your system). + </div></li></ul></div> + + </div></div></div><div class="section" title="2.6.4. Kerberos and PAM" id="sect-Security_Guide-Kerberos-Kerberos_and_PAM"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-Kerberos_and_PAM">2.6.4. Kerberos and PAM</h3></div></div></div><div class="para"> + Kerberos-aware services do not currently make use of Pluggable Authentication Modules (PAM) — these services bypass PAM completely. However, applications that use PAM can make use of Kerberos for authentication if the <code class="filename">pam_krb5</code> module (provided in the <code class="filename">pam_krb5</code> package) is installed. The <code class="filename">pam_krb5</code> package contains sample configuration files that allow services such as <code class="command">login</code> and <code class="command">gdm</code> to authenticate users as well as obtain initial credentials using their passwords. If access to network servers is always performed using Kerberos-aware services or services that use GSS-API, such as IMAP, the network can be considered reasonably safe. + </div><div class="important"><h2>Important</h2><div class="para"> + Administrators should be careful not to allow users to authenticate to most network services using Kerberos passwords. Many protocols used by these services do not encrypt the password before sending it over the network, destroying the benefits of the Kerberos system. For example, users should not be allowed to authenticate to Telnet services with the same password they use for Kerberos authentication. + </div></div></div><div class="section" title="2.6.5. Configuring a Kerberos 5 Server" id="sect-Security_Guide-Kerberos-Configuring_a_Kerberos_5_Server"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-Configuring_a_Kerberos_5_Server">2.6.5. Configuring a Kerberos 5 Server</h3></div></div></div><div class="para"> + When setting up Kerberos, install the KDC first. If it is necessary to set up slave servers, install the master first. + </div><div class="para"> + To configure the first Kerberos KDC, follow these steps: + </div><div class="procedure"><ol class="1"><li class="step" title="Step 1"><div class="para"> + Ensure that time synchronization and DNS are functioning correctly on all client and server machines before configuring Kerberos. Pay particular attention to time synchronization between the Kerberos server and its clients. If the time difference between the server and client is greater than five minutes (this is configurable in Kerberos 5), Kerberos clients can not authenticate to the server. This time synchronization is necessary to prevent an attacker from using an old Kerberos ticket to masquerade as a valid user. + </div><div class="para"> + It is advisable to set up a Network Time Protocol (NTP) compatible client/server network even if Kerberos is not being used. Fedora includes the <code class="filename">ntp</code> package for this purpose. Refer to <code class="filename">/usr/share/doc/ntp-<em class="replaceable"><code><version-number></code></em>/index.html</code> (where <em class="replaceable"><code><version-number></code></em> is the version number of the <code class="filename">ntp</code> package installed on your system) for details about how to set up Network Time Protocol servers, and <a href="http://www.ntp.org">http://www.ntp.org</a> for more information about NTP. + </div></li><li class="step" title="Step 2"><div class="para"> + Install the <code class="filename">krb5-libs</code>, <code class="filename">krb5-server</code>, and <code class="filename">krb5-workstation</code> packages on the dedicated machine which runs the KDC. This machine needs to be very secure — if possible, it should not run any services other than the KDC. + </div></li><li class="step" title="Step 3"><div class="para"> + Edit the <code class="filename">/etc/krb5.conf</code> and <code class="filename">/var/kerberos/krb5kdc/kdc.conf</code> configuration files to reflect the realm name and domain-to-realm mappings. A simple realm can be constructed by replacing instances of <em class="replaceable"><code>EXAMPLE.COM</code></em> and <em class="replaceable"><code>example.com</code></em> with the correct domain name — being certain to keep uppercase and lowercase names in the correct format — and by changing the KDC from <em class="replaceable"><code>kerberos.example.com</code></em> to the name of the Kerberos server. By convention, all realm names are uppercase and all DNS hostnames and domain names are lowercase. For full details about the formats of these configuration files, refer to their respective man pages. + </div></li><li class="step" title="Step 4"><div class="para"> + Create the database using the <code class="command">kdb5_util</code> utility from a shell prompt: + </div><pre class="screen">/usr/kerberos/sbin/kdb5_util create -s</pre><div class="para"> + The <code class="command">create</code> command creates the database that stores keys for the Kerberos realm. The <code class="command">-s</code> switch forces creation of a <em class="firstterm">stash</em> file in which the master server key is stored. If no stash file is present from which to read the key, the Kerberos server (<code class="command">krb5kdc</code>) prompts the user for the master server password (which can be used to regenerate the key) every time it starts. + </div></li><li class="step" title="Step 5"><div class="para"> + Edit the <code class="filename">/var/kerberos/krb5kdc/kadm5.acl</code> file. This file is used by <code class="command">kadmind</code> to determine which principals have administrative access to the Kerberos database and their level of access. Most organizations can get by with a single line: + </div><pre class="screen">*/admin@EXAMPLE.COM *</pre><div class="para"> + Most users are represented in the database by a single principal (with a <span class="emphasis"><em>NULL</em></span>, or empty, instance, such as <span class="emphasis"><em>joe@EXAMPLE.COM</em></span>). In this configuration, users with a second principal with an instance of <span class="emphasis"><em>admin</em></span> (for example, <span class="emphasis"><em>joe/admin@EXAMPLE.COM</em></span>) are able to wield full power over the realm's Kerberos database. + </div><div class="para"> + After <code class="command">kadmind</code> has been started on the server, any user can access its services by running <code class="command">kadmin</code> on any of the clients or servers in the realm. However, only users listed in the <code class="filename">kadm5.acl</code> file can modify the database in any way, except for changing their own passwords. + </div><div class="note"><h2>Note</h2><div class="para"> + The <code class="command">kadmin</code> utility communicates with the <code class="command">kadmind</code> server over the network, and uses Kerberos to handle authentication. Consequently, the first principal must already exist before connecting to the server over the network to administer it. Create the first principal with the <code class="command">kadmin.local</code> command, which is specifically designed to be used on the same host as the KDC and does not use Kerberos for authentication. + </div></div><div class="para"> + Type the following <code class="command">kadmin.local</code> command at the KDC terminal to create the first principal: + </div><pre class="screen">/usr/kerberos/sbin/kadmin.local -q "addprinc <em class="replaceable"><code>username</code></em>/admin"</pre></li><li class="step" title="Step 6"><div class="para"> + Start Kerberos using the following commands: + </div><pre class="screen">/sbin/service krb5kdc start +/sbin/service kadmin start +/sbin/service krb524 start</pre></li><li class="step" title="Step 7"><div class="para"> + Add principals for the users using the <code class="command">addprinc</code> command within <code class="command">kadmin</code>. <code class="command">kadmin</code> and <code class="command">kadmin.local</code> are command line interfaces to the KDC. As such, many commands — such as <code class="command">addprinc</code> — are available after launching the <code class="command">kadmin</code> program. Refer to the <code class="command">kadmin</code> man page for more information. + </div></li><li class="step" title="Step 8"><div class="para"> + Verify that the KDC is issuing tickets. First, run <code class="command">kinit</code> to obtain a ticket and store it in a credential cache file. Next, use <code class="command">klist</code> to view the list of credentials in the cache and use <code class="command">kdestroy</code> to destroy the cache and the credentials it contains. + </div><div class="note"><h2>Note</h2><div class="para"> + By default, <code class="command">kinit</code> attempts to authenticate using the same system login username (not the Kerberos server). If that username does not correspond to a principal in the Kerberos database, <code class="command">kinit</code> issues an error message. If that happens, supply <code class="command">kinit</code> with the name of the correct principal as an argument on the command line (<code class="command">kinit <em class="replaceable"><code><principal></code></em></code>). + </div></div></li></ol></div><div class="para"> + Once these steps are completed, the Kerberos server should be up and running. + </div></div><div class="section" title="2.6.6. Configuring a Kerberos 5 Client" id="sect-Security_Guide-Kerberos-Configuring_a_Kerberos_5_Client"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-Configuring_a_Kerberos_5_Client">2.6.6. Configuring a Kerberos 5 Client</h3></div></div></div><div class="para"> + Setting up a Kerberos 5 client is less involved than setting up a server. At a minimum, install the client packages and provide each client with a valid <code class="filename">krb5.conf</code> configuration file. While <code class="command">ssh</code> and <code class="command">slogin</code> are the preferred method of remotely logging in to client systems, Kerberized versions of <code class="command">rsh</code> and <code class="command">rlogin</code> are still available, though deploying them requires that a few more configuration changes be made. + </div><div class="procedure"><ol class="1"><li class="step" title="Step 1"><div class="para"> + Be sure that time synchronization is in place between the Kerberos client and the KDC. Refer to <a class="xref" href="#sect-Security_Guide-Kerberos-Configuring_a_Kerberos_5_Server" title="2.6.5. Configuring a Kerberos 5 Server">Section 2.6.5, “Configuring a Kerberos 5 Server”</a> for more information. In addition, verify that DNS is working properly on the Kerberos client before configuring the Kerberos client programs. + </div></li><li class="step" title="Step 2"><div class="para"> + Install the <code class="filename">krb5-libs</code> and <code class="filename">krb5-workstation</code> packages on all of the client machines. Supply a valid <code class="filename">/etc/krb5.conf</code> file for each client (usually this can be the same <code class="filename">krb5.conf</code> file used by the KDC). + </div></li><li class="step" title="Step 3"><div class="para"> + Before a workstation in the realm can use Kerberos to authenticate users who connect using <code class="command">ssh</code> or Kerberized <code class="command">rsh</code> or <code class="command">rlogin</code>, it must have its own host principal in the Kerberos database. The <code class="command">sshd</code>, <code class="command">kshd</code>, and <code class="command">klogind</code> server programs all need access to the keys for the <span class="emphasis"><em>host</em></span> service's principal. Additionally, in order to use the kerberized <code class="command">rsh</code> and <code class="command">rlogin</code> services, that workstation must have the <code class="filename">xinetd</code> package installed. + </div><div class="para"> + Using <code class="command">kadmin</code>, add a host principal for the workstation on the KDC. The instance in this case is the hostname of the workstation. Use the <code class="command">-randkey</code> option for the <code class="command">kadmin</code>'s <code class="command">addprinc</code> command to create the principal and assign it a random key: + </div><pre class="screen">addprinc -randkey host/<em class="replaceable"><code>blah.example.com</code></em></pre><div class="para"> + Now that the principal has been created, keys can be extracted for the workstation by running <code class="command">kadmin</code> <span class="emphasis"><em>on the workstation itself</em></span>, and using the <code class="command">ktadd</code> command within <code class="command">kadmin</code>: + </div><pre class="screen">ktadd -k /etc/krb5.keytab host/<em class="replaceable"><code>blah.example.com</code></em></pre></li><li class="step" title="Step 4"><div class="para"> + To use other kerberized network services, they must first be started. Below is a list of some common kerberized services and instructions about enabling them: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">ssh</code> — OpenSSH uses GSS-API to authenticate users to servers if the client's and server's configuration both have <code class="option">GSSAPIAuthentication</code> enabled. If the client also has <code class="option">GSSAPIDelegateCredentials</code> enabled, the user's credentials are made available on the remote system. + </div></li><li class="listitem"><div class="para"> + <code class="command">rsh</code> and <code class="command">rlogin</code> — To use the kerberized versions of <code class="command">rsh</code> and <code class="command">rlogin</code>, enable <code class="command">klogin</code>, <code class="command">eklogin</code>, and <code class="command">kshell</code>. + </div></li><li class="listitem"><div class="para"> + Telnet — To use kerberized Telnet, <code class="command">krb5-telnet</code> must be enabled. + </div></li><li class="listitem"><div class="para"> + FTP — To provide FTP access, create and extract a key for the principal with a root of <code class="computeroutput">ftp</code>. Be certain to set the instance to the fully qualified hostname of the FTP server, then enable <code class="command">gssftp</code>. + </div></li><li class="listitem"><div class="para"> + IMAP — To use a kerberized IMAP server, the <code class="filename">cyrus-imap</code> package uses Kerberos 5 if it also has the <code class="filename">cyrus-sasl-gssapi</code> package installed. The <code class="filename">cyrus-sasl-gssapi</code> package contains the Cyrus SASL plugins which support GSS-API authentication. Cyrus IMAP should function properly with Kerberos as long as the <code class="command">cyrus</code> user is able to find the proper key in <code class="filename">/etc/krb5.keytab</code>, and the root for the principal is set to <code class="command">imap</code> (created with <code class="command">kadmin</code>). + </div><div class="para"> + An alternative to <code class="filename">cyrus-imap</code> can be found in the <code class="command">dovecot</code> package, which is also included in Fedora. This package contains an IMAP server but does not, to date, support GSS-API and Kerberos. + </div></li><li class="listitem"><div class="para"> + CVS — To use a kerberized CVS server, <code class="command">gserver</code> uses a principal with a root of <code class="computeroutput">cvs</code> and is otherwise identical to the CVS <code class="command">pserver</code>. + </div></li></ul></div></li></ol></div></div><div class="section" title="2.6.7. Domain-to-Realm Mapping" id="sect-Security_Guide-Kerberos-Domain_to_Realm_Mapping"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-Domain_to_Realm_Mapping">2.6.7. Domain-to-Realm Mapping</h3></div></div></div><div class="para"> + When a client attempts to access a service running on a particular server, it knows the name of the service (<span class="emphasis"><em>host</em></span>) and the name of the server (<span class="emphasis"><em>foo.example.com</em></span>), but because more than one realm may be deployed on your network, it must guess at the name of the realm in which the service resides. + </div><div class="para"> + By default, the name of the realm is taken to be the DNS domain name of the server, upper-cased. + </div><div class="literallayout"><p>foo.example.org → EXAMPLE.ORG<br /> + foo.example.com → EXAMPLE.COM<br /> + foo.hq.example.com → HQ.EXAMPLE.COM<br /> +</p></div><div class="para"> + In some configurations, this will be sufficient, but in others, the realm name which is derived will be the name of a non-existant realm. In these cases, the mapping from the server's DNS domain name to the name of its realm must be specified in the <span class="emphasis"><em>domain_realm</em></span> section of the client system's <code class="filename">krb5.conf</code>. For example: + </div><pre class="screen">[domain_realm] +.example.com = EXAMPLE.COM +example.com = EXAMPLE.COM</pre><div class="para"> + The above configuration specifies two mappings. The first mapping specifies that any system in the "example.com" DNS domain belongs to the <span class="emphasis"><em>EXAMPLE.COM</em></span> realm. The second specifies that a system with the exact name "example.com" is also in the realm. (The distinction between a domain and a specific host is marked by the presence or lack of an initial ".".) The mapping can also be stored directly in DNS. + </div></div><div class="section" title="2.6.8. Setting Up Secondary KDCs" id="sect-Security_Guide-Kerberos-Setting_Up_Secondary_KDCs"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-Setting_Up_Secondary_KDCs">2.6.8. Setting Up Secondary KDCs</h3></div></div></div><div class="para"> + For a number of reasons, you may choose to run multiple KDCs for a given realm. In this scenario, one KDC (the <span class="emphasis"><em>master KDC</em></span>) keeps a writable copy of the realm database and runs <code class="command">kadmind</code> (it is also your realm's <span class="emphasis"><em>admin server</em></span>), and one or more KDCs (<span class="emphasis"><em>slave KDCs</em></span>) keep read-only copies of the database and run <code class="command">kpropd</code>. + </div><div class="para"> + The master-slave propagation procedure entails the master KDC dumping its database to a temporary dump file and then transmitting that file to each of its slaves, which then overwrite their previously-received read-only copies of the database with the contents of the dump file. + </div><div class="para"> + To set up a slave KDC, first ensure that the master KDC's <code class="filename">krb5.conf</code> and <code class="filename">kdc.conf</code> files are copied to the slave KDC. + </div><div class="para"> + Start <code class="command">kadmin.local</code> from a root shell on the master KDC and use its <code class="command">add_principal</code> command to create a new entry for the master KDC's <span class="emphasis"><em>host</em></span> service, and then use its <code class="command">ktadd</code> command to simultaneously set a random key for the service and store the random key in the master's default keytab file. This key will be used by the <code class="command">kprop</code> command to authenticate to the slave servers. You will only need to do this once, regardless of how many slave servers you install. + </div><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>kadmin.local -r EXAMPLE.COM</code></strong> + +Authenticating as principal root/admin@EXAMPLE.COM with password. + +<code class="prompt">kadmin:</code> <strong class="userinput"><code>add_principal -randkey host/masterkdc.example.com</code></strong> + +Principal "host/host/masterkdc.example.com@EXAMPLE.COM" created. + +<code class="prompt">kadmin:</code> <strong class="userinput"><code>ktadd host/masterkdc.example.com</code></strong> + +Entry for principal host/masterkdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. + +Entry for principal host/masterkdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab. + +Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. + +Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab. + +<code class="prompt">kadmin:</code> <strong class="userinput"><code>quit</code></strong></pre><div class="para"> + Start <code class="command">kadmin</code> from a root shell on the slave KDC and use its <code class="command">add_principal</code> command to create a new entry for the slave KDC's <span class="emphasis"><em>host</em></span> service, and then use <code class="command">kadmin</code>'s <code class="command">ktadd</code> command to simultaneously set a random key for the service and store the random key in the slave's default keytab file. This key is used by the <code class="command">kpropd</code> service when authenticating clients. + </div><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>kadmin -p jimbo/admin@EXAMPLE.COM -r EXAMPLE.COM</code></strong> + +Authenticating as principal jimbo/admin@EXAMPLE.COM with password. + +<code class="prompt">Password for jimbo/admin@EXAMPLE.COM: </code> + +<code class="prompt">kadmin:</code> <strong class="userinput"><code>add_principal -randkey host/slavekdc.example.com</code></strong> + +Principal "host/slavekdc.example.com@EXAMPLE.COM" created. + +<code class="prompt">kadmin:</code> <strong class="userinput"><code>ktadd host/slavekdc.example.com@EXAMPLE.COM</code></strong> + +Entry for principal host/slavekdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. + +Entry for principal host/slavekdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab. + +Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. + +Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab. + +<code class="prompt">kadmin:</code> <strong class="userinput"><code>quit</code></strong></pre><div class="para"> + With its service key, the slave KDC could authenticate any client which would connect to it. Obviously, not all of them should be allowed to provide the slave's <code class="command">kprop</code> service with a new realm database. To restrict access, the <code class="command">kprop</code> service on the slave KDC will only accept updates from clients whose principal names are listed in <code class="filename">/var/kerberos/krb5kdc/kpropd.acl</code>. Add the master KDC's host service's name to that file. + </div><div class="literallayout"><p> <code class="computeroutput"><code class="prompt">#</code> <strong class="userinput"><code>echo host/masterkdc.example.com@EXAMPLE.COM > /var/kerberos/krb5kdc/kpropd.acl</code></strong></code></p></div><div class="para"> + Once the slave KDC has obtained a copy of the database, it will also need the master key which was used to encrypt it. If your KDC database's master key is stored in a <span class="emphasis"><em>stash</em></span> file on the master KDC (typically named <code class="filename">/var/kerberos/krb5kdc/.k5.REALM</code>, either copy it to the slave KDC using any available secure method, or create a dummy database and identical stash file on the slave KDC by running <code class="command">kdb5_util create -s</code> (the dummy database will be overwritten by the first successful database propagation) and supplying the same password. + </div><div class="para"> + Ensure that the slave KDC's firewall allows the master KDC to contact it using TCP on port 754 (<span class="emphasis"><em>krb5_prop</em></span>), and start the <code class="command">kprop</code> service. Then, double-check that the <code class="command">kadmin</code> service is <span class="emphasis"><em>disabled</em></span>. + </div><div class="para"> + Now perform a manual database propagation test by dumping the realm database, on the master KDC, to the default data file which the <code class="command">kprop</code> command will read (<code class="filename">/var/kerberos/krb5kdc/slave_datatrans</code>), and then use the <code class="command">kprop</code> command to transmit its contents to the slave KDC. + </div><div class="literallayout"><p> <code class="computeroutput"><code class="prompt">#</code> <strong class="userinput"><code>/usr/kerberos/sbin/kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans</code></strong><code class="prompt">#</code> <strong class="userinput"><code>kprop slavekdc.example.com</code></strong></code></p></div><div class="para"> + Using <code class="command">kinit</code>, verify that a client system whose <code class="filename">krb5.conf</code> lists only the slave KDC in its list of KDCs for your realm is now correctly able to obtain initial credentials from the slave KDC. + </div><div class="para"> + That done, simply create a script which dumps the realm database and runs the <code class="command">kprop</code> command to transmit the database to each slave KDC in turn, and configure the <code class="command">cron</code> service to run the script periodically. + </div></div><div class="section" title="2.6.9. Setting Up Cross Realm Authentication" id="sect-Security_Guide-Kerberos-Setting_Up_Cross_Realm_Authentication"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-Setting_Up_Cross_Realm_Authentication">2.6.9. Setting Up Cross Realm Authentication</h3></div></div></div><div class="para"> + <span class="emphasis"><em>Cross-realm authentication</em></span> is the term which is used to describe situations in which clients (typically users) of one realm use Kerberos to authenticate to services (typically server processes running on a particular server system) which belong to a realm other than their own. + </div><div class="para"> + For the simplest case, in order for a client of a realm named <code class="literal">A.EXAMPLE.COM</code> to access a service in the <code class="literal">B.EXAMPLE.COM</code> realm, both realms must share a key for a principal named <code class="literal">krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM</code>, and both keys must have the same key version number associated with them. + </div><div class="para"> + To accomplish this, select a very strong password or passphrase, and create an entry for the principal in both realms using kadmin. + </div><div class="literallayout"><p> <code class="computeroutput"><code class="prompt">#</code> <strong class="userinput"><code>kadmin -r A.EXAMPLE.COM</code></strong></code> <code class="computeroutput"><code class="prompt">kadmin:</code> <strong class="userinput"><code>add_principal krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM</code></strong></code> <code class="computeroutput">Enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM":</code> <code class="computeroutput">Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM":</code> <code class="computeroutput">Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created.</code> <strong class="userinput"><code>quit</code></strong> <code class="computeroutput"><code class="prompt">#</code> <strong class="userinput"><code>kadmin -r B.EXAMPLE.COM</code></strong></code> <code class="computeroutput"><code class="prompt">kadmin:</code> <strong class="userinput"><code>add_principal krbtgt/B.EXA MPLE.COM@A.EXAMPLE.COM</code></strong></code> <code class="computeroutput">Enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM":</code> <code class="computeroutput">Re-enter password for principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM":</code> <code class="computeroutput">Principal "krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM" created.</code> <strong class="userinput"><code>quit</code></strong></p></div><div class="para"> + Use the <code class="command">get_principal</code> command to verify that both entries have matching key version numbers (<code class="literal">kvno</code> values) and encryption types. + </div><div class="important"><h2>Dumping the Database Doesn't Do It</h2><div class="para"> + Security-conscious administrators may attempt to use the <code class="command">add_principal</code> command's <code class="literal">-randkey</code> option to assign a random key instead of a password, dump the new entry from the database of the first realm, and import it into the second. This will not work unless the master keys for the realm databases are identical, as the keys contained in a database dump are themselves encrypted using the master key. + </div></div><div class="para"> + Clients in the <code class="literal">A.EXAMPLE.COM</code> realm are now able to authenticate to services in the <code class="literal">B.EXAMPLE.COM</code> realm. Put another way, the <code class="literal">B.EXAMPLE.COM</code> realm now <span class="emphasis"><em>trusts</em></span> the <code class="literal">A.EXAMPLE.COM</code> realm, or phrased even more simply, <code class="literal">B.EXAMPLE.COM</code> now <span class="emphasis"><em>trusts</em></span> <code class="literal">A.EXAMPLE.COM</code>. + </div><div class="para"> + This brings us to an important point: cross-realm trust is unidirectional by default. The KDC for the <code class="literal">B.EXAMPLE.COM</code> realm may trust clients from the <code class="literal">A.EXAMPLE.COM</code> to authenticate to services in the <code class="literal">B.EXAMPLE.COM</code> realm, but the fact that it does has no effect on whether or not clients in the <code class="literal">B.EXAMPLE.COM</code> realm are trusted to authenticate to services in the <code class="literal">A.EXAMPLE.COM</code> realm. To establish trust in the other direction, both realms would need to share keys for the <code class="literal">krbtgt/A.EXAMPLE.COM@B.EXAMPLE.COM</code> service (take note of the reversed in order of the two realms compared to the example above). + </div><div class="para"> + If direct trust relationships were the only method for providing trust between realms, networks which contain multiple realms would be very difficult to set up. Luckily, cross-realm trust is transitive. If clients from <code class="literal">A.EXAMPLE.COM</code> can authenticate to services in <code class="literal">B.EXAMPLE.COM</code>, and clients from <code class="literal">B.EXAMPLE.COM</code> can authenticate to services in <code class="literal">C.EXAMPLE.COM</code>, then clients in <code class="literal">A.EXAMPLE.COM</code> can also authenticate to services in <code class="literal">C.EXAMPLE.COM</code>, <span class="emphasis"><em>even if <code class="literal">C.EXAMPLE.COM</code> doesn't directly trust <code class="literal">A.EXAMPLE.COM</code></em></span>. This means that, on a network with multiple realms which all need to trust each other, making good choices about which trust relationships to set up can greatly reduce the amount of effort required. + </div><div class="para"> + Now you face the more conventional problems: the client's system must be configured so that it can properly deduce the realm to which a particular service belongs, and it must be able to determine how to obtain credentials for services in that realm. + </div><div class="para"> + First things first: the principal name for a service provided from a specific server system in a given realm typically looks like this: + </div><div class="literallayout"><p>service/server.example.com@EXAMPLE.COM</p></div><div class="para"> + In this example, <span class="emphasis"><em>service</em></span> is typically either the name of the protocol in use (other common values include <span class="emphasis"><em>ldap</em></span>, <span class="emphasis"><em>imap</em></span>, <span class="emphasis"><em>cvs</em></span>, and <span class="emphasis"><em>HTTP</em></span>) or <span class="emphasis"><em>host</em></span>, <span class="emphasis"><em>server.example.com</em></span> is the fully-qualified domain name of the system which runs the service, and <code class="literal">EXAMPLE.COM</code> is the name of the realm. + </div><div class="para"> + To deduce the realm to which the service belongs, clients will most often consult DNS or the <code class="literal">domain_realm</code> section of <code class="filename">/etc/krb5.conf</code> to map either a hostname (<span class="emphasis"><em>server.example.com</em></span>) or a DNS domain name (<span class="emphasis"><em>.example.com</em></span>) to the name of a realm (<span class="emphasis"><em>EXAMPLE.COM</em></span>). + </div><div class="para"> + Having determined which to which realm a service belongs, a client then has to determine the set of realms which it needs to contact, and in which order it must contact them, to obtain credentials for use in authenticating to the service. + </div><div class="para"> + This can be done in one of two ways. + </div><div class="para"> + The default method, which requires no explicit configuration, is to give the realms names within a shared hierarchy. For an example, assume realms named <code class="literal">A.EXAMPLE.COM</code>, <code class="literal">B.EXAMPLE.COM</code>, and <code class="literal">EXAMPLE.COM</code>. When a client in the <code class="literal">A.EXAMPLE.COM</code> realm attempts to authenticate to a service in <code class="literal">B.EXAMPLE.COM</code>, it will, by default, first attempt to get credentials for the <code class="literal">EXAMPLE.COM</code> realm, and then to use those credentials to obtain credentials for use in the <code class="literal">B.EXAMPLE.COM</code> realm. + </div><div class="para"> + The client in this scenario treats the realm name as one might treat a DNS name. It repeatedly strips off the components of its own realm's name to generate the names of realms which are "above" it in the hierarchy until it reaches a point which is also "above" the service's realm. At that point it begins prepending components of the service's realm name until it reaches the service's realm. Each realm which is involved in the process is another "hop". + </div><div class="para"> + For example, using credentials in <code class="literal">A.EXAMPLE.COM</code>, authenticating to a service in <code class="literal">B.EXAMPLE.COM</code><code class="literal">A.EXAMPLE.COM → EXAMPLE.COM → B.EXAMPLE.COM </code> <div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="literal">A.EXAMPLE.COM</code> and <code class="literal">EXAMPLE.COM</code> share a key for <code class="literal">krbtgt/EXAMPLE.COM@A.EXAMPLE.COM</code> + </div></li><li class="listitem"><div class="para"> + <code class="literal">EXAMPLE.COM</code> and <code class="literal">B.EXAMPLE.COM</code> share a key for <code class="literal">krbtgt/B.EXAMPLE.COM@EXAMPLE.COM</code> + </div></li></ul></div> + + </div><div class="para"> + Another example, using credentials in <code class="literal">SITE1.SALES.EXAMPLE.COM</code>, authenticating to a service in <code class="literal">EVERYWHERE.EXAMPLE.COM</code><code class="literal">SITE1.SALES.EXAMPLE.COM → SALES.EXAMPLE.COM → EXAMPLE.COM → EVERYWHERE.EXAMPLE.COM </code> <div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="literal">SITE1.SALES.EXAMPLE.COM</code> and <code class="literal">SALES.EXAMPLE.COM</code> share a key for <code class="literal">krbtgt/SALES.EXAMPLE.COM@SITE1.SALES.EXAMPLE.COM</code> + </div></li><li class="listitem"><div class="para"> + <code class="literal">SALES.EXAMPLE.COM</code> and <code class="literal">EXAMPLE.COM</code> share a key for <code class="literal">krbtgt/EXAMPLE.COM@SALES.EXAMPLE.COM</code> + </div></li><li class="listitem"><div class="para"> + <code class="literal">EXAMPLE.COM</code> and <code class="literal">EVERYWHERE.EXAMPLE.COM</code> share a key for <code class="literal">krbtgt/EVERYWHERE.EXAMPLE.COM@EXAMPLE.COM</code> + </div></li></ul></div> + + </div><div class="para"> + Another example, this time using realm names whose names share no common suffix (<code class="literal">DEVEL.EXAMPLE.COM</code> and <code class="literal">PROD.EXAMPLE.ORG</code><code class="literal"> DEVEL.EXAMPLE.COM → EXAMPLE.COM → COM → ORG → EXAMPLE.ORG → PROD.EXAMPLE.ORG </code> <div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="literal">DEVEL.EXAMPLE.COM</code> and <code class="literal">EXAMPLE.COM</code> share a key for <code class="literal">krbtgt/EXAMPLE.COM@DEVEL.EXAMPLE.COM</code> + </div></li><li class="listitem"><div class="para"> + <code class="literal">EXAMPLE.COM</code> and <code class="literal">COM</code> share a key for <code class="literal">krbtgt/COM@EXAMPLE.COM</code> + </div></li><li class="listitem"><div class="para"> + <code class="literal">COM</code> and <code class="literal">ORG</code> share a key for <code class="literal">krbtgt/ORG@COM</code> + </div></li><li class="listitem"><div class="para"> + <code class="literal">ORG</code> and <code class="literal">EXAMPLE.ORG</code> share a key for <code class="literal">krbtgt/EXAMPLE.ORG@ORG</code> + </div></li><li class="listitem"><div class="para"> + <code class="literal">EXAMPLE.ORG</code> and <code class="literal">PROD.EXAMPLE.ORG</code> share a key for <code class="literal">krbtgt/PROD.EXAMPLE.ORG@EXAMPLE.ORG</code> + </div></li></ul></div> + + </div><div class="para"> + The more complicated, but also more flexible, method involves configuring the <code class="literal">capaths</code> section of <code class="filename">/etc/krb5.conf</code>, so that clients which have credentials for one realm will be able to look up which realm is next in the chain which will eventually lead to the being able to authenticate to servers. + </div><div class="para"> + The format of the <code class="literal">capaths</code> section is relatively straightforward: each entry in the section is named after a realm in which a client might exist. Inside of that subsection, the set of intermediate realms from which the client must obtain credentials is listed as values of the key which corresponds to the realm in which a service might reside. If there are no intermediate realms, the value "." is used. + </div><div class="para"> + Here's an example: + </div><div class="literallayout"><p> [capaths]<br /> + A.EXAMPLE.COM = {<br /> + B.EXAMPLE.COM = .<br /> + C.EXAMPLE.COM = B.EXAMPLE.COM<br /> + D.EXAMPLE.COM = B.EXAMPLE.COM<br /> + D.EXAMPLE.COM = C.EXAMPLE.COM<br /> + }<br /> +<br /> +</p></div><div class="para"> + In this example, clients in the <code class="literal">A.EXAMPLE.COM</code> realm can obtain cross-realm credentials for <code class="literal">B.EXAMPLE.COM</code> directly from the <code class="literal">A.EXAMPLE.COM</code> KDC. + </div><div class="para"> + If those clients wish to contact a service in the<code class="literal">C.EXAMPLE.COM</code> realm, they will first need to obtain necessary credentials from the <code class="literal">B.EXAMPLE.COM</code> realm (this requires that <code class="literal">krbtgt/B.EXAMPLE.COM@A.EXAMPLE.COM</code> exist), and then use <code class="literal">those</code> credentials to obtain credentials for use in the <code class="literal">C.EXAMPLE.COM</code> realm (using <code class="literal">krbtgt/C.EXAMPLE.COM@B.EXAMPLE.COM</code>). + </div><div class="para"> + If those clients wish to contact a service in the <code class="literal">D.EXAMPLE.COM</code> realm, they will first need to obtain necessary credentials from the <code class="literal">B.EXAMPLE.COM</code> realm, and then credentials from the <code class="literal">C.EXAMPLE.COM</code> realm, before finally obtaining credentials for use with the <code class="literal">D.EXAMPLE.COM</code> realm. + </div><div class="note"><h2>Note</h2><div class="para"> + Without a capath entry indicating otherwise, Kerberos assumes that cross-realm trust relationships form a hierarchy. + </div><div class="para"> + Clients in the <code class="literal">A.EXAMPLE.COM</code> realm can obtain cross-realm credentials from <code class="literal">B.EXAMPLE.COM</code> realm directly. Without the "." indicating this, the client would instead attempt to use a hierarchical path, in this case: + </div><div class="literallayout"><p> A.EXAMPLE.COM → EXAMPLE.COM → B.EXAMPLE.COM<br /> +<br /> +</p></div></div></div><div class="section" title="2.6.10. Additional Resources" id="sect-Security_Guide-Kerberos-Additional_Resources"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Kerberos-Additional_Resources">2.6.10. Additional Resources</h3></div></div></div><div class="para"> + For more information about Kerberos, refer to the following resources. + </div><div class="section" title="2.6.10.1. Installed Kerberos Documentation" id="sect-Security_Guide-Additional_Resources-Installed_Kerberos_Documentation"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Additional_Resources-Installed_Kerberos_Documentation">2.6.10.1. Installed Kerberos Documentation</h4></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + The <em class="citetitle">Kerberos V5 Installation Guide</em> and the <em class="citetitle">Kerberos V5 System Administrator's Guide</em> in PostScript and HTML formats. These can be found in the <code class="filename">/usr/share/doc/krb5-server-<em class="replaceable"><code><version-number></code></em>/</code> directory (where <em class="replaceable"><code><version-number></code></em> is the version number of the <code class="command">krb5-server</code> package installed on your system). + </div></li><li class="listitem"><div class="para"> + The <em class="citetitle">Kerberos V5 UNIX User's Guide</em> in PostScript and HTML formats. These can be found in the <code class="filename">/usr/share/doc/krb5-workstation-<em class="replaceable"><code><version-number></code></em>/</code> directory (where <em class="replaceable"><code><version-number></code></em> is the version number of the <code class="command">krb5-workstation</code> package installed on your system). + </div></li><li class="listitem"><div class="para"> + Kerberos man pages — There are a number of man pages for the various applications and configuration files involved with a Kerberos implementation. The following is a list of some of the more important man pages. + </div><div class="variablelist"><dl><dt><span class="term">Client Applications</span></dt><dd><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">man kerberos</code> — An introduction to the Kerberos system which describes how credentials work and provides recommendations for obtaining and destroying Kerberos tickets. The bottom of the man page references a number of related man pages. + </div></li><li class="listitem"><div class="para"> + <code class="command">man kinit</code> — Describes how to use this command to obtain and cache a ticket-granting ticket. + </div></li><li class="listitem"><div class="para"> + <code class="command">man kdestroy</code> — Describes how to use this command to destroy Kerberos credentials. + </div></li><li class="listitem"><div class="para"> + <code class="command">man klist</code> — Describes how to use this command to list cached Kerberos credentials. + </div></li></ul></div></dd><dt><span class="term">Administrative Applications</span></dt><dd><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">man kadmin</code> — Describes how to use this command to administer the Kerberos V5 database. + </div></li><li class="listitem"><div class="para"> + <code class="command">man kdb5_util</code> — Describes how to use this command to create and perform low-level administrative functions on the Kerberos V5 database. + </div></li></ul></div></dd><dt><span class="term">Server Applications</span></dt><dd><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">man krb5kdc</code> — Describes available command line options for the Kerberos V5 KDC. + </div></li><li class="listitem"><div class="para"> + <code class="command">man kadmind</code> — Describes available command line options for the Kerberos V5 administration server. + </div></li></ul></div></dd><dt><span class="term">Configuration Files</span></dt><dd><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">man krb5.conf</code> — Describes the format and options available within the configuration file for the Kerberos V5 library. + </div></li><li class="listitem"><div class="para"> + <code class="command">man kdc.conf</code> — Describes the format and options available within the configuration file for the Kerberos V5 AS and KDC. + </div></li></ul></div></dd></dl></div></li></ul></div></div><div class="section" title="2.6.10.2. Useful Kerberos Websites" id="sect-Security_Guide-Additional_Resources-Useful_Kerberos_Websites"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-Additional_Resources-Useful_Kerberos_Websites">2.6.10.2. Useful Kerberos Websites</h4></div></div></div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <a href="http://web.mit.edu/kerberos/www/">http://web.mit.edu/kerberos/www/</a> — <em class="citetitle">Kerberos: The Network Authentication Protocol</em> webpage from MIT. + </div></li><li class="listitem"><div class="para"> + <a href="http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html">http://www.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html</a> — The Kerberos Frequently Asked Questions (FAQ). + </div></li><li class="listitem"><div class="para"> + <a href="ftp://athena-dist.mit.edu/pub/kerberos/doc/usenix.PS">ftp://athena-dist.mit.edu/pub/kerberos/doc/usenix.PS</a> — The PostScript version of <em class="citetitle">Kerberos: An Authentication Service for Open Network Systems</em> by Jennifer G. Steiner, Clifford Neuman, and Jeffrey I. Schiller. This document is the original paper describing Kerberos. + </div></li><li class="listitem"><div class="para"> + <a href="http://web.mit.edu/kerberos/www/dialogue.html">http://web.mit.edu/kerberos/www/dialogue.html</a> — <em class="citetitle">Designing an Authentication System: a Dialogue in Four Scenes</em> originally by Bill Bryant in 1988, modified by Theodore Ts'o in 1997. This document is a conversation between two developers who are thinking through the creation of a Kerberos-style authentication system. The conversational style of the discussion make this a good starting place for people who are completely unfamiliar with Kerberos. + </div></li><li class="listitem"><div class="para"> + <a href="http://www.ornl.gov/~jar/HowToKerb.html">http://www.ornl.gov/~jar/HowToKerb.html</a> — <em class="citetitle">How to Kerberize your site</em> is a good reference for kerberizing a network. + </div></li><li class="listitem"><div class="para"> + <a href="http://www.networkcomputing.com/netdesign/kerb1.html">http://www.networkcomputing.com/netdesign/kerb1.html</a> — <em class="citetitle">Kerberos Network Design Manual</em> is a thorough overview of the Kerberos system. + </div></li></ul></div></div></div></div><div xml:lang="en-US" class="section" title="2.7. Virtual Private Networks (VPNs)" id="sect-Security_Guide-Virtual_Private_Networks_VPNs" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="sect-Security_Guide-Virtual_Private_Networks_VPNs">2.7. Virtual Private Networks (VPNs)</h2></div></div></div><div class="para"> + Organizations with several satellite offices often connect to each other with dedicated lines for efficiency and protection of sensitive data in transit. For example, many businesses use frame relay or <em class="firstterm">Asynchronous Transfer Mode</em> (<acronym class="acronym">ATM</acronym>) lines as an end-to-end networking solution to link one office with others. This can be an expensive proposition, especially for small to medium sized businesses (<acronym class="acronym">SMB</acronym>s) that want to expand without paying the high costs associated with enterprise-level, dedicated digital circuits. + </div><div class="para"> + To address this need, <em class="firstterm">Virtual Private Networks</em> (<abbr class="abbrev">VPN</abbr>s) were developed. Following the same functional principles as dedicated circuits, <abbr class="abbrev">VPN</abbr>s allow for secured digital communication between two parties (or networks), creating a <em class="firstterm">Wide Area Network</em> (<acronym class="acronym">WAN</acronym>) from existing <em class="firstterm">Local Area Networks</em> (<acronym class="acronym">LAN</acronym>s). Where it differs from frame relay or ATM is in its transport medium. <abbr class="abbrev">VPN</abbr>s transmit over IP using datagrams as the transport layer, making it a secure conduit through the Internet to an intended destination. Most free software <abbr class="abbrev">VPN</abbr> implementations incorporate open standard encryption methods to further mask data in transit. + </div><div class="para"> + Some organizations employ hardware <abbr class="abbrev">VPN</abbr> solutions to augment security, while others use software or protocol-based implementations. Several vendors provide hardware <abbr class="abbrev">VPN</abbr> solutions, such as Cisco, Nortel, IBM, and Checkpoint. There is a free software-based <abbr class="abbrev">VPN</abbr> solution for Linux called FreeS/Wan that utilizes a standardized <em class="firstterm">Internet Protocol Security</em> (<abbr class="abbrev">IPsec</abbr>) implementation. These <abbr class="abbrev">VPN</abbr> solutions, irrespective of whether they are hardware or software based, act as specialized routers that exist between the IP connection from one office to another. + </div><div class="section" title="2.7.1. How Does a VPN Work?" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-How_Does_a_VPN_Work"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-How_Does_a_VPN_Work">2.7.1. How Does a VPN Work?</h3></div></div></div><div class="para"> + When a packet is transmitted from a client, it sends it through the <abbr class="abbrev">VPN</abbr> router or gateway, which adds an <em class="firstterm">Authentication Header</em> (<abbr class="abbrev">AH</abbr>) for routing and authentication. The data is then encrypted and, finally, enclosed with an <em class="firstterm">Encapsulating Security Payload</em> (<abbr class="abbrev">ESP</abbr>). This latter constitutes the decryption and handling instructions. + </div><div class="para"> + The receiving <abbr class="abbrev">VPN</abbr> router strips the header information, decrypts the data, and routes it to its intended destination (either a workstation or other node on a network). Using a network-to-network connection, the receiving node on the local network receives the packets already decrypted and ready for processing. The encryption/decryption process in a network-to-network <abbr class="abbrev">VPN</abbr> connection is transparent to a local node. + </div><div class="para"> + With such a heightened level of security, an attacker must not only intercept a packet, but decrypt the packet as well. Intruders who employ a man-in-the-middle attack between a server and client must also have access to at least one of the private keys for authenticating sessions. Because they employ several layers of authentication and encryption, <abbr class="abbrev">VPN</abbr>s are a secure and effective means of connecting multiple remote nodes to act as a unified intranet. + </div></div><div class="section" title="2.7.2. VPNs and Fedora" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-VPNs_and_PROD"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-VPNs_and_PROD">2.7.2. VPNs and Fedora</h3></div></div></div><div class="para"> + Fedora provides various options in terms of implementing a software solution to securely connect to a <acronym class="acronym">WAN</acronym>. <em class="firstterm">Internet Protocol Security</em> (<acronym class="acronym">IPsec</acronym>) is the supported <abbr class="abbrev">VPN</abbr> implementation for Fedora, and sufficiently addresses the usability needs of organizations with branch offices or remote users. + </div></div><div class="section" title="2.7.3. IPsec" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec">2.7.3. IPsec</h3></div></div></div><div class="para"> + Fedora supports <abbr class="abbrev">IPsec</abbr> for connecting remote hosts and networks to each other using a secure tunnel on a common carrier network such as the Internet. <abbr class="abbrev">IPsec</abbr> can be implemented using a host-to-host (one computer workstation to another) or network-to-network (one <acronym class="acronym">LAN</acronym>/<acronym class="acronym">WAN</acronym> to another) configuration. + </div><div class="para"> + The <abbr class="abbrev">IPsec</abbr> implementation in Fedora uses <em class="firstterm">Internet Key Exchange</em> (<em class="firstterm">IKE</em>), a protocol implemented by the Internet Engineering Task Force (<acronym class="acronym">IETF</acronym>), used for mutual authentication and secure associations between connecting systems. + </div></div><div class="section" title="2.7.4. Creating an IPsec Connection" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-Creating_an_IPsec_Connection"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-Creating_an_IPsec_Connection">2.7.4. Creating an <abbr class="abbrev">IPsec</abbr> Connection</h3></div></div></div><div class="para"> + An <abbr class="abbrev">IPsec</abbr> connection is split into two logical phases. In phase 1, an <abbr class="abbrev">IPsec</abbr> node initializes the connection with the remote node or network. The remote node or network checks the requesting node's credentials and both parties negotiate the authentication method for the connection. + </div><div class="para"> + On Fedora systems, an <abbr class="abbrev">IPsec</abbr> connection uses the <em class="firstterm">pre-shared key</em> method of <abbr class="abbrev">IPsec</abbr> node authentication. In a pre-shared key <abbr class="abbrev">IPsec</abbr> connection, both hosts must use the same key in order to move to Phase 2 of the <abbr class="abbrev">IPsec</abbr> connection. + </div><div class="para"> + Phase 2 of the <abbr class="abbrev">IPsec</abbr> connection is where the <em class="firstterm">Security Association</em> (<acronym class="acronym">SA</acronym>) is created between <abbr class="abbrev">IPsec</abbr> nodes. This phase establishes an <abbr class="abbrev">SA</abbr> database with configuration information, such as the encryption method, secret session key exchange parameters, and more. This phase manages the actual <abbr class="abbrev">IPsec</abbr> connection between remote nodes and networks. + </div><div class="para"> + The Fedora implementation of <abbr class="abbrev">IPsec</abbr> uses IKE for sharing keys between hosts across the Internet. The <code class="command">racoon</code> keying daemon handles the IKE key distribution and exchange. Refer to the <code class="command">racoon</code> man page for more information about this daemon. + </div></div><div class="section" title="2.7.5. IPsec Installation" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Installation"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Installation">2.7.5. IPsec Installation</h3></div></div></div><div class="para"> + Implementing <abbr class="abbrev">IPsec</abbr> requires that the <code class="filename">ipsec-tools</code> RPM package be installed on all <abbr class="abbrev">IPsec</abbr> hosts (if using a host-to-host configuration) or routers (if using a network-to-network configuration). The RPM package contains essential libraries, daemons, and configuration files for setting up the <abbr class="abbrev">IPsec</abbr> connection, including: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="command">/sbin/setkey</code> — manipulates the key management and security attributes of <abbr class="abbrev">IPsec</abbr> in the kernel. This executable is controlled by the <code class="command">racoon</code> key management daemon. Refer to the <code class="command">setkey</code>(8) man page for more information. + </div></li><li class="listitem"><div class="para"> + <code class="command">/usr/sbin/racoon</code> — the IKE key management daemon, used to manage and control security associations and key sharing between IPsec-connected systems. + </div></li><li class="listitem"><div class="para"> + <code class="filename">/etc/racoon/racoon.conf</code> — the <code class="command">racoon</code> daemon configuration file used to configure various aspects of the <abbr class="abbrev">IPsec</abbr> connection, including authentication methods and encryption algorithms used in the connection. Refer to the <code class="filename">racoon.conf</code>(5) man page for a complete listing of available directives. + </div></li></ul></div><div class="para"> + To configure <abbr class="abbrev">IPsec</abbr> on Fedora, you can use the <span class="application"><strong>Network Administration Tool</strong></span>, or manually edit the networking and <abbr class="abbrev">IPsec</abbr> configuration files. + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + To connect two network-connected hosts via IPsec, refer to <a class="xref" href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Host_to_Host_Configuration" title="2.7.6. IPsec Host-to-Host Configuration">Section 2.7.6, “IPsec Host-to-Host Configuration”</a>. + </div></li><li class="listitem"><div class="para"> + To connect one <acronym class="acronym">LAN</acronym>/<acronym class="acronym">WAN</acronym> to another via IPsec, refer to <a class="xref" href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Network_to_Network_Configuration" title="2.7.7. IPsec Network-to-Network Configuration">Section 2.7.7, “IPsec Network-to-Network Configuration”</a>. + </div></li></ul></div></div><div class="section" title="2.7.6. IPsec Host-to-Host Configuration" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Host_to_Host_Configuration"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Host_to_Host_Configuration">2.7.6. IPsec Host-to-Host Configuration</h3></div></div></div><div class="para"> + IPsec can be configured to connect one desktop or workstation (host) to another using a host-to-host connection. This type of connection uses the network to which each host is connected to create a secure tunnel between each host. The requirements of a host-to-host connection are minimal, as is the configuration of <abbr class="abbrev">IPsec</abbr> on each host. The hosts need only a dedicated connection to a carrier network (such as the Internet) and Fedora to create the <abbr class="abbrev">IPsec</abbr> connection. + </div><div class="section" title="2.7.6.1. Host-to-Host Connection" id="sect-Security_Guide-IPsec_Host_to_Host_Configuration-Host_to_Host_Connection"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-IPsec_Host_to_Host_Configuration-Host_to_Host_Connection">2.7.6.1. Host-to-Host Connection</h4></div></div></div><div class="para"> + A host-to-host <abbr class="abbrev">IPsec</abbr> connection is an encrypted connection between two systems, both running <abbr class="abbrev">IPsec</abbr> with the same authentication key. With the <abbr class="abbrev">IPsec</abbr> connection active, any network traffic between the two hosts is encrypted. + </div><div class="para"> + To configure a host-to-host <abbr class="abbrev">IPsec</abbr> connection, use the following steps for each host: + </div><div class="note"><h2>Note</h2><div class="para"> + You should perform the following procedures on the actual machine that you are configuring. Avoid attempting to configure and establish <abbr class="abbrev">IPsec</abbr> connections remotely. + </div></div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + In a command shell, type <code class="command">system-config-network</code> to start the <span class="application"><strong>Network Administration Tool</strong></span>. + </div></li><li class="listitem"><div class="para"> + On the <span class="guilabel"><strong>IPsec</strong></span> tab, click <span class="guibutton"><strong>New</strong></span> to start the <abbr class="abbrev">IPsec</abbr> configuration wizard. + </div></li><li class="listitem"><div class="para"> + Click <span class="guibutton"><strong>Forward</strong></span> to start configuring a host-to-host <abbr class="abbrev">IPsec</abbr> connection. + </div></li><li class="listitem"><div class="para"> + Enter a unique name for the connection, for example, <strong class="userinput"><code>ipsec0</code></strong>. If required, select the check box to automatically activate the connection when the computer starts. Click <span class="guibutton"><strong>Forward</strong></span> to continue. + </div></li><li class="listitem"><div class="para"> + Select <span class="guilabel"><strong>Host to Host encryption</strong></span> as the connection type, and then click <span class="guibutton"><strong>Forward</strong></span>. + </div></li><li class="listitem" id="list-Security_Guide-list-Security_Guide-list-Security_Guide-st-host-encrypt-type"><div class="para"> + Select the type of encryption to use: manual or automatic. + </div><div class="para"> + If you select manual encryption, an encryption key must be provided later in the process. If you select automatic encryption, the <code class="command">racoon</code> daemon manages the encryption key. The <code class="filename">ipsec-tools</code> package must be installed if you want to use automatic encryption. + </div><div class="para"> + Click <span class="guibutton"><strong>Forward</strong></span> to continue. + </div></li><li class="listitem"><div class="para"> + Enter the IP address of the remote host. + </div><div class="para"> + To determine the IP address of the remote host, use the following command <span class="emphasis"><em>on the remote host</em></span>: + </div><pre class="screen">[root@myServer ~] # /sbin/ifconfig <em class="replaceable"><code><device></code></em></pre><div class="para"> + where <em class="replaceable"><code><device></code></em> is the Ethernet device that you want to use for the <abbr class="abbrev">VPN</abbr> connection. + </div><div class="para"> + If only one Ethernet card exists in the system, the device name is typically eth0. The following example shows the relevant information from this command (note that this is an example output only): + </div><pre class="screen">eth0 Link encap:Ethernet HWaddr 00:0C:6E:E8:98:1D + inet addr:172.16.44.192 Bcast:172.16.45.255 Mask:255.255.254.0</pre><div class="para"> + The IP address is the number following the <code class="computeroutput">inet addr:</code> label. + </div><div class="note"><h2>Note</h2><div class="para"> + For host-to-host connections, both hosts should have a public, routable address. Alternatively, both hosts can have a private, non-routable address (for example, from the 10.x.x.x or 192.168.x.x ranges) as long as they are on the same LAN. + </div><div class="para"> + If the hosts are on different LANs, or one has a public address while the other has a private address, refer to <a class="xref" href="#sect-Security_Guide-Virtual_Private_Networks_VPNs-IPsec_Network_to_Network_Configuration" title="2.7.7. IPsec Network-to-Network Configuration">Section 2.7.7, “IPsec Network-to-Network Configuration”</a>. + </div></div><div class="para"> + Click <span class="guibutton"><strong>Forward</strong></span> to continue. + </div></li><li class="listitem" id="list-Security_Guide-list-Security_Guide-list-Security_Guide-st-host-to-host-keys"><div class="para"> + If manual encryption was selected in step <a class="xref" href="#list-Security_Guide-list-Security_Guide-list-Security_Guide-st-host-encrypt-type">6</a>, specify the encryption key to use, or click <span class="guibutton"><strong>Generate</strong></span> to create one. + </div><div class="orderedlist"><ol><li class="listitem"><div class="para"> + Specify an authentication key or click <span class="guibutton"><strong>Generate</strong></span> to generate one. It can be any combination of numbers and letters. + </div></li><li class="listitem"><div class="para"> + Click <span class="guibutton"><strong>Forward</strong></span> to continue. + </div></li></ol></div></li><li class="listitem"><div class="para"> + Verify the information on the <span class="guilabel"><strong>IPsec — Summary</strong></span> page, and then click <span class="guibutton"><strong>Apply</strong></span>. + </div></li><li class="listitem"><div class="para"> + Click <span class="guimenu"><strong>File</strong></span> => <span class="guimenuitem"><strong>Save</strong></span> to save the configuration. + </div><div class="para"> + You may need to restart the network for the changes to take effect. To restart the network, use the following command: + </div><pre class="screen">[root@myServer ~]# service network restart</pre></li><li class="listitem"><div class="para"> + Select the <abbr class="abbrev">IPsec</abbr> connection from the list and click the <span class="guibutton"><strong>Activate</strong></span> button. + </div></li><li class="listitem"><div class="para"> + Repeat the entire procedure for the other host. It is essential that the same keys from step <a class="xref" href="#list-Security_Guide-list-Security_Guide-list-Security_Guide-st-host-to-host-keys">8</a> be used on the other hosts. Otherwise, <abbr class="abbrev">IPsec</abbr> will not work. + </div></li></ol></div><div class="para"> + After configuring the <abbr class="abbrev">IPsec</abbr> connection, it appears in the <abbr class="abbrev">IPsec</abbr> list as shown in <a class="xref" href="#figu-Security_Guide-Host_to_Host_Connection-IPsec_Connection" title="Figure 2.10. IPsec Connection">Figure 2.10, “IPsec Connection”</a>. + </div><div class="figure" title="Figure 2.10. IPsec Connection" id="figu-Security_Guide-Host_to_Host_Connection-IPsec_Connection"><div class="figure-contents"><div class="mediaobject"><img src="images/fed-ipsec_host2host.png" width="444" alt="IPsec Connection" /><div class="longdesc"><div class="para"> + IPsec Connection + </div></div></div></div><h6>Figure 2.10. IPsec Connection</h6></div><br class="figure-break" /><div class="para"> + The following files are created when the <abbr class="abbrev">IPsec</abbr> connection is configured: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + <code class="filename">/etc/sysconfig/network-scripts/ifcfg-<em class="replaceable"><code><nickname></code></em></code> + </div></li><li class="listitem"><div class="para"> + <code class="filename">/etc/sysconfig/network-scripts/keys-<em class="replaceable"><code><nickname></code></em></code> + </div></li><li class="listitem"><div class="para"> + <code class="filename">/etc/racoon/<em class="replaceable"><code><remote-ip></code></em>.conf</code> + </div></li><li class="listitem"><div class="para"> + <code class="filename">/etc/racoon/psk.txt</code> + </div></li></ul></div><div class="para"> + If automatic encryption is selected, <code class="filename">/etc/racoon/racoon.conf</code> is also created. + </div><div class="para"> + When the interface is up, <code class="filename">/etc/racoon/racoon.conf</code> is modified to include <code class="filename"><em class="replaceable"><code><remote-ip></code></em>.conf</code>. + </div></div><div class="section" title="2.7.6.2. Manual IPsec Host-to-Host Configuration" id="sect-Security_Guide-IPsec_Host_to_Host_Configuration-Manual_IPsec_Host_to_Host_Configuration"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="sect-Security_Guide-IPsec_Host_to_Host_Configuration-Manual_IPsec_Host_to_Host_Configuration">2.7.6.2. Manual <abbr class="abbrev">IPsec</abbr> Host-to-Host Configuration</h4></div></div></div><div class="para"> + The first step in creating a connection is to gather system and network information from each workstation. For a host-to-host connection, you need the following: + </div><div class="itemizedlist"><ul><li class="listitem"><div class="para"> + The IP address of each host + </div></li><li class="listitem"><div class="para"> + A unique name, for example, <code class="computeroutput">ipsec1</code>. This is used to identify the <abbr class="abbrev">IPsec</abbr> connection and to distinguish it from other devices or connections. + </div></li><li class="listitem"><div class="para"> + A fixed encryption key or one automatically generated by <code class="command">racoon</code>. + </div></li><li class="listitem"><div class="para"> + A pre-shared authentication key that is used during the initial stage of the connection and to exchange encryption keys during the session. + </div></li></ul></div><div class="para"> + For example, suppose Workstation A and Workstation B want to connect to each other through an <abbr class="abbrev">IPsec</abbr> tunnel. They want to connect using a pre-shared key with the value of <code class="computeroutput">Key_Value01</code>, and the users agree to let <code class="command">racoon</code> automatically generate and share an authentication key between each host. Both host users decide to name their connections <code class="computeroutput">ipsec1</code>. + </div><div class="note"><h2>Note</h2><div class="para"> + You should choose a PSK that uses a mixture of upper- and lower-case characters, numbers and punctuation. An easily-guessable PSK constitutes a security risk. + </div><div class="para"> + It is not necessary to use the same connection name for each host. You should choose a name that is convenient and meaningful for your installation. + </div></div><div class="para"> + The following is the <abbr class="abbrev">IPsec</abbr> configuration file for Workstation A for a host-to-host <abbr class="abbrev">IPsec</abbr> connection with Workstation B. The unique name to identify the connection in this example is <em class="replaceable"><code>ipsec1</code></em>, so the resulting file is called <code class="filename">/etc/sysconfig/network-scripts/ifcfg-ipsec1</code>. + </div><pre class="screen">DST=<em class="replaceable"><code>X.X.X.X</code></em>TYPE=IPSEC +ONBOOT=no +IKE_METHOD=PSK</pre><div class="para"> + For Workstation A, <em class="replaceable"><code>X.X.X.X</code></em> is the IP address of Workstation B. For Workstation B, <em class="replaceable"><code>X.X.X.X</code></em> is the IP address of Workstation A. This connection is not set to initiate on boot-up (<code class="computeroutput">ONBOOT=no</code>) and it uses the pre-shared key method of authentication (<code class="computeroutput">IKE_METHOD=PSK</code>). + </div><div class="para"> + The following is the content of the pre-shared key file (called <code class="filename">/etc/sysconfig/network-scripts/keys-ipsec1</code>) that both workstations need to authenticate each other. The contents of this file should be identical on both workstations, and only the root user should be able to read or write this file. + </div><pre class="screen">IKE_PSK=Key_Value01</pre><div class="important"><h2>Important</h2><div class="para"> + To change the <code class="filename">keys-ipsec1</code> file so that only the root user can read or edit the file, use the following command after creating the file: + </div><pre class="screen">[root@myServer ~] # chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1</pre></div><div class="para"> + To change the authentication key at any time, edit the <code cla