Novell Home

SUSE Linux Enterprise Server 10 セキュリティコース
Course 3075

SUSE Linux Enterprise Server 10 上で重要なサービスが動作するマシンが確実にセキュアになるようにするためにはどんな技能を持つ必要がありますか?

コース概要

Linuxを運用する上でセキュリティに強い関心をお持ちの方へのコースです。

このコースは、システム管理者の観点から、SUSE Linux Enterprise Server 10 の数々のセキュリティ関連の内容に焦点を合わせます。 暗号化やNovell AppArmor、パケットフィルタ、アプリケーションレベルゲートウェイ、 およびIPSecを用いたVPNの構築のなどのセキュリティポリシーを策定するための局面をトピックにしています。

サーバが構築できてもセキュリティに関しても学習する必要があります。セキュリティレベルが低いサーバをインターネットに接続した場合、外部から攻撃を受ける どころか、他のサーバへ影響を引き起こし、企業イメージの低下につながります。 このコースで扱う内容は、サーバ構築する上でのセキュリティの一般常識となります。このコースを受講することにより、構築したサーバが 初めてインターネットに接続できるといっても過言ではありません。

受講者はホストセキュリティ、ネットワークセキュリティ、Novell AppArmor、パケットフィルタ、そしてVPNまでの広範囲な話題に関して SUSE Linux Enterprise Server 10を管理する方法をハンズオン環境で学習できます。

トレーニング レベル:
 3 - 上級

期間:
 5日間

学習方法・価格:
 クラスルーム
¥262,500 (税込み)

 セルフトレーニングパック
¥63,000 (税、送料込み)

パンフレット(PDF)

トレーニングパックのサンプル抜粋(PDF)
サンプルは英語版ですが、製品は全て日本語版です。

内容

SUSE Linux Enterprise Server 10: セキュリティコース (Course 3075)は以下のスキルを学習します:

  • SUSE Linux Enterprise Server 10が動作しているコンピュータのセキュアな構築と管理
  • Novell AppArmor の構築
  • 認証局(CA)の作成と証明書の発行
  • パケットフィルタとアプリケーションゲートウェイやVPNゲートウェイの構築

受講対象

このコースは、Linuxで動作しているネットワークサービスに精通している、経験を積んだLinuxシステム管理者や、それらのスキルを向上することを目的にしている方、そして、SUSE Linux Enterprise Server 10 環境をセキュアにしたい方を対象にしています。Novell Certified Linux Engineer 10 certification を目指す方は、Novell Certified Linux Professional 10 certification を最初に取得する必要があります。

ネットワークプロトコルの深い理解がファイアウォール構築に必要となります。また、SUSE Linux Enterprise Server 10 : ネットワークサービスコース (Course 3074)の知識が、効果的なセキュリティタスクを支えるキーとなります。

コース資格情報

このコースは、SUSE Linux Enterprise Server 10: ネットワークサービスコース (Course 3074) とともに受講することによってNovell Certified Linux Engineer 10 Practicum 試験の対策となります。 もし、Novell Certified Linux Engineer 10 を取得する場合は、Novell Certified Linux Professional 10 Practicumを最初に取得する必要があります。

コース目次

このコースは、以下の広い範囲のトピックをカバーしています:

  • 一般的な注意事項と用語の定義
  • ホストセキュリティ
  • AppArmor
  • 暗号化: 基本と応用
  • ネットワークセキュリティ
  • 一般的なファイアウォールの設計
  • パケットフィルタ
  • アプリケーションレベルゲートウェイ
  • 仮想プライベートネットワーク
  • 侵入検知と問題への対応
  • 実践演習

  • Careers
  • Contact Us
  • Feedback
  • Legal
  • <%@page import="java.io.*,java.util.*,java.net.*" %><%@taglib uri="http://java.sun.com/jstl/core" prefix="c" %><%! public class Language { private String english_name; private String local_name; private String directory; public Language(String en, String ln, String dir) { english_name = en; local_name = ln; directory = dir; } public String getEnglishName() { return english_name; } public String getLocalName() { return local_name; } public String getDirectory() { return directory; } public String toString() { return local_name; } } public String getLanguageFromDocumentUri(String document_uri, HttpServletRequest request) { String language = "en-us"; if (document_uri.matches("^/[a-z][a-z]-[a-z][a-z]/.+$")) { language = document_uri.substring(1,6); } else { String cookie_language = deNull(getCookieValue(request, "novell_language")); if (cookie_language.length() > 0) { language = cookie_language; } } return language; } public String getQueryString(HttpServletRequest request) { StringBuffer retval = new StringBuffer(); Enumeration paramnames = request.getParameterNames(); while (paramnames.hasMoreElements()) { String nextparam = (String)paramnames.nextElement(); if (!(nextparam.equals("docroot") || nextparam.equals("document_uri") || nextparam.equals("lang") || nextparam.equals("cm_sp"))) { String[] paramvalues = request.getParameterValues(nextparam); for (int i=0; i<% // Trying to prevent caching // See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1 response.setHeader("Cache-Control", "max-age=0, s-maxage=0, public, must-revalidate, proxy-revalidate"); try { int found_languages = 0; boolean isstage = false; //boolean isstage = (System.getProperty("server") != null && System.getProperty("server").equals("stage")); // only uncomment for debugging // otherwise it clogs up the stage logs String docroot = deNull(request.getParameter("docroot")); String document_uri = deNull(request.getParameter("document_uri")); String document_uri_nolang = document_uri.replaceAll("^/[a-z][a-z]-[a-z][a-z]/", "/"); String document_uri_nolang_or_country = document_uri_nolang.replaceAll("^/[A-Z][A-Z]/", "/"); //String novell_language = deNull(getCookieValue(request, "novell_language")); String novell_language = getLanguageFromDocumentUri(document_uri, request); String query_string = getQueryString(request); //String query_string_replaced = request.getQueryString().replaceAll("&?docroot=[^&]+","").replaceAll("&?document_uri=[^&]+",""); // another way //if (query_string_replaced.startsWith("&")) { query_string_replaced = query_string_replaced.replaceFirst("&", ""); } String debug_string = deNull(request.getParameter("debug")); boolean debug = false; if (debug_string.equals("true")) { debug = true; } if (debug) { System.out.println("document_uri_nolang is: "+document_uri_nolang+"
    "); System.out.println("Docroot is: "+docroot+"
    "); System.out.println("document uri is: "+document_uri+"
    "); } //if (!(document_uri.endsWith("get_translations") || document_uri.endsWith("get_translations/"))) { // avoid recursive calls from 404 urls if (isstage) { System.out.println("\n\nInside footer_language_popup.jsp. document_uri is: "+document_uri+", document_uri_nolang is: "+document_uri_nolang+", document_uri_nolang_or_country is: "+document_uri_nolang_or_country); } if (isstage) { System.out.println("novell_language is: "+novell_language); } //if ((document_uri.endsWith(".html") || document_uri.endsWith(".htm")) && !document_uri.endsWith("ftr.html")) { if (!document_uri.startsWith("/get_translations") && !document_uri.endsWith("ftr.html")) { Language english = new Language("English", "English", ""); Language german = new Language("German", "Deutsch", "/de-de"); Language spanish = new Language("Spanish", "Español", "/es-es"); Language french = new Language("French", "Français", "/fr-fr"); Language italian = new Language("Italian", "Italiano", "/it-it"); Language dutch = new Language("Dutch", "Nederlands", "/nl-nl"); Language chineseSimplified = new Language("Chinese Simplified", "中文(简体)", "/zh-cn"); Language chineseTraditional = new Language("Chinese Traditional", "中文(繁体)", "/zh-tw"); Language japanese = new Language("Japanese", "日本語", "/ja-jp"); Language polish = new Language("Polish", "Polski", "/pl-pl"); Language portuguese = new Language("Portuguese", "Português (Brasil)", "/pt-br"); Language russian = new Language("Russian", "Русский", "/ru-ru"); Language swedish = new Language("Swedish", "Svenska", "/sv-se"); // Less used languages: Language danish = new Language("Danish", "Dansk", "/da-dk"); Language norwegian = new Language("Norwegian", "Norsk", "/no-no"); Language czech = new Language("Czech", "čeština", "/cs-cz"); Language hungarian = new Language("Hungarian", "Magyar", "/hu-hu"); Language finnish = new Language("Finnish", "suomi", "/fi-fi"); Language[] languages = new Language [] {danish, german, english, spanish, french, italian, dutch, norwegian, czech, chineseSimplified, chineseTraditional, japanese, hungarian, polish, portuguese, russian, finnish, swedish}; HashMap found = new HashMap(); HashMap language_translated = new HashMap(); language_translated.put("en-us","Language"); language_translated.put("es-es","Idioma"); language_translated.put("fr-fr","Langue"); language_translated.put("de-de","Sprache"); language_translated.put("it-it","Lingua"); language_translated.put("ja-jp","言語"); language_translated.put("zh-cn","语言"); language_translated.put("nl-nl","Taal"); language_translated.put("sv-se","Språk"); language_translated.put("pl-pl","Język"); language_translated.put("da-dk","Sprog"); language_translated.put("no-no","Språk"); language_translated.put("cs-cz","Jazyk"); language_translated.put("hu-hu","Nyelv"); language_translated.put("fi-fi","Kieli"); language_translated.put("ru-ru","Язык"); language_translated.put("pt-br","Idioma"); language_translated.put("zh-tw","語言"); String language = (String)language_translated.get(novell_language); if (language == null || language.length() <= 0) { language = "Language"; } HashMap save_preference_translated = new HashMap(); save_preference_translated.put("en-us","Save Preference"); save_preference_translated.put("es-es","Guardar
    preferencias"); save_preference_translated.put("fr-fr","Enregistrer les
    préférences"); save_preference_translated.put("de-de","Einstellungen
    speichern"); save_preference_translated.put("it-it","Salva preferenze"); save_preference_translated.put("ja-jp","設定を保存"); save_preference_translated.put("zh-cn","保存首选项"); save_preference_translated.put("nl-nl","Voorkeuren
    opslaan"); save_preference_translated.put("sv-se","Spara inställningar"); save_preference_translated.put("pl-pl","Zapisz preferencje"); save_preference_translated.put("da-dk","Gem opsætning"); save_preference_translated.put("no-no","Lagre innstillinger"); save_preference_translated.put("cs-cz","Uložit pøedvolby"); save_preference_translated.put("hu-hu","Beállítások
    mentése"); save_preference_translated.put("fi-fi","Tallenna valinnat"); save_preference_translated.put("ru-ru","Сохранить
    настройки"); save_preference_translated.put("pt-br","Salvar preferências"); save_preference_translated.put("zh-tw","儲存優先設定"); String save_preference = (String)save_preference_translated.get(novell_language); if (save_preference == null || save_preference.length() <= 0) { save_preference = "Save Preference"; } /************************************** 1. Search the filesystem ***************************************/ if (isstage) { System.out.println("Found these languages on the file system:\n"); } for (int i=0; i<% String plone_languages_string = deNull((String)pageContext.getAttribute("plone_languages", pageContext.PAGE_SCOPE)).trim(); if (isstage) { System.out.println(plone_languages_string.replaceAll("^","\t").replaceAll("\n","\n\t")); } if (plone_languages_string.indexOf("<") == -1) { // no language has a < in it. Use this to test for html String[] plone_languages = plone_languages_string.split("\n"); for (int i=0; i 0) { found.put(next_plone_language, "Found"); found_languages++; } } } } catch (Exception e) { if (isstage) { System.out.println(new java.util.Date() + "::/common/inc/footer_language_popup.jsp Couldn't access Plone translations at "+plone_languages_path_pagescope+"::Exception was:"); e.printStackTrace(); } } } /************************************** 3. Show what we've found! ***************************************/ String langselect_link = "/common/util/langselect.php?referer="+URLEncoder.encode(document_uri+(query_string.length() > 0 ? "?"+query_string : "")); if (found_languages > 1) { %>
  • <%=language%>
      <% for (int i=0; i 0 ? "?"+query_string : "") : "/inc/util/get_language_url.jsp?language=en-us&url="+URLEncoder.encode(document_uri_nolang_or_country+(query_string.length() > 0 ? "?"+query_string : ""),"utf-8"); if (found.get(english_name) != null) { out.println("\t\t\t\t\t\t\t
    • "+languages[i]+"
    • "); } } %>
  • <% } } } catch (Exception e) { System.out.println(new java.util.Date()+"::General exception in /common/inc/footer_language_popup.jsp::Exception was:"); e.printStackTrace(); } %>

© 2009 Novell, Inc. All Rights Reserved.