BlackIceCoffeePhenomenon

溶け出す氷によって味が薄くなると併せ、味覚が苦味に慣れていくことで、加速度的に味覚への刺激が減衰する現象に関するブログです。

LPIC Level2 Exam 202 対策メモ

おととい、いい感じに合格したので、毎度おなじみでメモ公開です。

 

 

# ---------- 主題207:ドメインネームサーバ -------------------


前提知識
 DNSサーバには2つの機能がある
 キャッシュサーバ:ほかのDNSサーバに問い合わせる
 コンテンツサーバ:自身が管理するドメイン情報を公開する
 BINDの解決ログ出力先 :messages, syslog
 DHCP機能付きDNS   :dnsmasq
 キャッシュ,コンテンツ:djbdns
 ↑+RDBバックエンド :PowerDNS

 

 

 

207.1 DNSサーバの基本的な設定 ★★★☆☆


 + /etc/named.conf(BINDの設定ファイル)
  options内
  - "directory"      :作業ディレクト
  - "version"       :バージョンの問い合わせに対する回答
  - recursion [yes|no]  :再起問い合わせ
  - forwarders      :転送先DNSサーバ
  - forward [first|onry] :失敗時自分で問い合わせをする|しない
  - allow-query     :問い合わせを許可するホスト
  - allow-recursion   :再帰も許可するホスト
  - allow-transfer    :ゾーン転送先ホスト(スレーブDNSを指定)
  - blackhole      :問い合わせを却下
  acl    :アクセス制御[IP|host]
  controls :rndcを許可するホスト     {inet 127.0.0 allow {lan;};};
  include  :外部ファイル読み込み     "/etc/hoge"
  zone   :ゾーン(管理範囲)を定義

 + rndc(namedの設定管理をするコマンド)
  status :表示
  reload :ゾーン指定時は単独で再読み込み
  halt  :瞬殺停止
  stop  :更新を保存し停止

 + named-checkconf(named.confの構文チェック)
  ゾーンの構文と整合性をチェックする

 

 

 


207.2 DNSゾーンの作成と保守 ★★★☆☆


 + 各レコードについて
  SOA :ゾーン管理人や更新時間を定義
  NS  :ゾーン情報を管理するサーバー
  MX  :ゾーン管理宛のメールサーバー
  A  :ゾーン内の名前とIPを紐付け
  CNAME:別名を記載
  PTR :逆引き定義に仕様。 形式は[4.3.2.1.in-addr.arpa]

 + ゾーンファイルの書式
  $ORIGIN example.com.
  $TTL 3600
  @ IN SOA <nameSRVのFQDN> <adminMail> (
    2010020101; シリアル番号
    3600;    更新タイミング
    1200;    リトライ間隔
    1209600;   有効期間
    900;     ネガティブキャッシュのTTL
  )
  @  IN NS ns.example.com     :名前解決ならこのドメイン
  @  IN MX 10 mail.example.com  :メールならこのドメイン
  ns  IN A 192.168///
  mail
  www 
  ftp IN CNAME www
  優先度は低いほど高い

 + named-compilezone ゾーン名 ゾーンファイル名
  -f 返還前ファイル形式
  -F 返還後ファイル形式
  -o 出力ファイル

 + masterfile-format
  named.confに追記する事でテキスト形式で扱える

 + named-checkzone
  整合性と構文チェック

 

 

 

 

207.3 DNSサーバを保護する ★★☆☆☆


 + /etc/named.conf
  key "example.com" {  Keyが必要
  algorithm hmac-md5;  =も"も不要
  secret "xxxxxxx";   パラメータは"で囲む

 + DNSSEC:  公開鍵による署名で正当かつ無改ざんを保障
  TSIG :共通秘密鍵による
  chroot:パス変更によって、ハック時の被害を軽減
  DANE :(DNS-based Authentication of Named Entities)
      DNSSECを応用した認証
 
 + named(BINDのデーモン名)
  -t:chrootディレクト
  -u:実行ユーザー
  -g:実行グループ

 + dnssec-keygen(鍵を作成)
  -a:アルゴリズム
  -b:ビット長
  -n TSIG:HOST DNSSEC:ZONE)

 + dnssec-signzone(ゾーンファイルへ署名)

 

 

 

 

# ---------- 主題208:HTTPサービス ---------------------------


208.1 Apacheの基本的な設定 ★★★★☆

 /etc/httpd/conf/httpd.conf
 /etc/apache2/apache2.conf
 + httpd.conf
  基本設定
  - Listen     : リクエストを受けるIPアドレスとポート
  - NameVirtualHost: バーチャルホスト時はListenの代わりにこっち
  - User      : 子プロセスの実行ユーザを指定
  - Group     : 子プロセスの実行グループを指定
  - DocumentRoot  : 公開する最上位のディレクト
  - DirectoryIndex : インデックスとして返すファイル名
  - Alias     : アクセス先ディレクトリを、パスに参照させる
  - UserDir    : 一般ユーザの公開ディレクトリを指定
  - ErrorDocument : エラー発生時の処理を指定(コードとファイル名)

  ログ関連
  - HostnameLookups :IP逆引きしてホスト名で記録するか
  - LogFormat    :アクセスログの書式 書式名
  - CustomLog    :ファイル名と上の定義
  - ErrorLog     :
  - LogLevel     :エラーログに残すログレベル

  サーバ処理関連
  - Timeout        :
  - KeepAlive       :複数リクエストの受付するかの有無
  - MaxKeepAliveRequests :最大リクエスト数を設定
  - KeepAliveTimeout   :次のリクエスト受けるまでの待ち時間
  - StartServers     :起動時の子プロセスの数
  - MinSpareServers    :待機子プロセスの最小数
  - MaxSpareServers    :待機子プロセスの最大数
  - MaxRequestWorkers   :生成される子プロセスの最大数
  - MaxConnectionsPerChild:子プロセスが処理するリクエストの最大数

   <Serverディレクティブ>
  - ServerName :稼働しているホスト名とポートを指定
  - ServerRoot :httpdの設定ファイル、ライブラリがあるベースディレクト
  - ServerAdmin :管理者のメールアドレス
  - ServerAlias :VitualHostでの別名

  外部設定ファイル<Directory ディレクトリ名>
  - AccessFileName: 外部設定ファイルを指定(デフォ.htaccess)
  - AllowOverride : 外部ファイルがhttpd.confを上書く
           (AuthConfig, Limit[アクセス制御], All, noneなど)

  ユーザー認証<AuthNameディレクティブ>
  - AuthType   : Basic|Digest認証方式
  - AuthName   : 認可領域名。画面に表示される
  - AuthUserFile : パスワードファイルを指定
  - AuthGroupFile : グループファイルを指定
  - Require    : 認証対象とするuserやgroupを指定

  アクセス制御<Requireディレクティブ>
  mod_authz_coreで制御
  - all granted : 全部許可
  - all denied  : 全部拒否
  - env 環境変数 : 環境変数が設定されていれば許可 (Require env URL_OK)
  - method http : 指定のhttpメソッドなら許可
  - expr 評価  : 指定の表現で許可
  mod_authz_hostで制御
  - ip
  - host
  mod_authz_userで制御
  - user
  - group
  - valid-user  : 認証されたユーザー
  <RequireAll><RequireAny><RequireNone>

 # htpasswd [OPT] ファイル名 ユーザー名
  -c パスワードファイルの作成
  -D ユーザーを削除

 # htdigest ファイル名 認可領域名 ユーザー名
  -c パスワードファイルの作成
  ダイジェスト認証の時はこれでユーザ管理を行う

 # httpd(apachectlでも使える)
  -l 静的モジュールの表示
  -M 静的動的モジュールの表示

 # apachectl, apache2ctl
  start, stop, restart
  graceful : 安全に再起動
  configtest: 設定ファイルの構文チェック

 + モジュール
  mod_auth_basic  : BASIC認証のフロントエンド
  mod_authz_host  : ホストベースのアクセス認証
  mod_access_compat : ホストベースのアクセス制御
  mod_[ssl, perl, php]

 + その他
  apxs

 + アクセスログとエラーログ
 + .htaccess
 + htgroup
 + httpd, apache2

 

 

 

 

 


208.2 HTTPS向けのApacheの設定 ★★★☆☆


 # Tips
  ブラウザ ルートCA照明:自身の公開鍵
  サーバ側 中間CA証明書:自身の公開鍵
  サーバ側 サーバ証明書:自身の公開鍵
  ブラウザの秘密鍵で署名し、上位CAの公開鍵で署名を複合

 秘密鍵の作成
 # openssl genrsa [-out 出力ファイル名] [鍵長]

 CSRの作成
 # openssl req -new -key server.key -out server.csr

 自己認証局CSRに署名し、サーバ証明書の作成
 openssl ca -out server.crt -infiles server.csr

 # CA.pl, CA.sh newca

 ssl.conf
  - SSLCertificateKeyFile : サーバ秘密鍵
  - SSLCertificateFile  : サーバ証明書 (中間CAはここ)
  - SSLVerifyClient    : クライアント認証レベル
  - SSLCACertificateFile : クライアント認証のCA証明書
  - SSLCACertificatePath : CA証明書の置かれたディレクト
  - SSLProtocol      : 使用可能なSSLプロトコル
  - SSLCipherSuite    : 使用可能な暗号スイート
  - SSLEngine       : SSLの有効無効onoff
    (ディレクトリ以外、かつポート番号を確認)

 httpd.conf
  セキュリティ関連
  - ServerTokens   :応答ヘッダに含める情報
  - ServerSignature :エラーメッセージのフッター表示onoff
  - TraceEnable   :TRACEメソッドの使用onoff

 SNI(Server Name Indication: クライアントから接続したいホストを提示)

 

 

 

 

208.3 キャッシュプロキシとしてのSquidの実装 ★★☆☆☆


 + squid.conf
  - http_port   : 使用するポート番号
  - cache_dir   : キャッシュディレクト
  - cache_mem   : 総メモリの最大量
  - cache_log   : キャッシュのログ
  - ipchache_size : 名前解決のキャッシュ数
  - acl      : アクセスcontrolリスト
  - http_access  : allow|denyなどの制御
  - auth_param  : ユーザ認証方式の設定

  - hierarchy_stoplist : キャッシュを使わない文字列
  - maximum_object_size : キャッシュデータの最大サイズ
  - minimum_object_size : キャッシュデータの最小サイズ
  - maximum_object_size_in_memory:メモリにキャッシュされるry

  - request_header_max_size: リクエストヘッダの
  - request_body_max_size : リクエストボディの

 + acl
  # acl aclaclタイプ 文字列|ファイル名
   acl blacklist url_regex "/etc/squid/blacklist"
  - src
  - dst
  - srcdomain
  - dstdomain
  - port   : 宛先のポート番号
  - arp
  - proto   : プロトコル
  - method
  - time
  - url_regex
  - uripath_regex
  - proxy_auth

 + http_access
  例
   acl all src 0.0.0.0/0.0.0.0
   acl localmembers src 192.168.10.0/255.255.255.0
   acl SSL port 443
   acl OK_port port 80 443
   acl CONNECT method CONNECT
   acl clients srcdomain test.com
   acl eigyobi time MTWHF 09:00-18:00
   http_access allow localmembers OK_port
   http_access deny !OK_port
   http_access deny CONNECT !SSL
   http_access allow clients
   http_access allow eigyobi
  訳
   ・localmembers(192.168.10.0/24に属しているクライアント)からのOK_port(80,443)でのアクセスを許可(この条件は2つacl名が並んでいるため、AND条件となっています。)
   ・OK_port(ポート番号が80,443)以外へのアクセスを禁止
   ・CONNECTメソッド(プロキシにトンネリング通信を要求するメソッド)を使った通信をSSL(443)以外禁止
   ・client(ドメイン名がtest.com)からのアクセスを許可
   ・eigyobi(月曜日から金曜日の9:00から18:00)の間アクセスを許可
   

 

 

 


208.4 WebサーバおよびリバースプロキシとしてのNginxの実装 ★★☆☆☆


 + /etc/nginx/nginx.conf
  http{}       :httpサーバの設定
  server{}      :バーチャルホストの設定
  location      :リスクエスURIに対する設定
  listen       :リクエストを受けるIPとポート
  server_name     :バーチャルホスト名
  index        :インデックスとして返すファイル名
  root        :htmlの最上位ディレクト
  proxy_pass     :プロキシ先
  proxy_set_header  :プロキシ先へのリクエストヘッダの再定義
  proxy_pass_header  :プロキシ先からクライアントへ通貨を許可するヘッダ
  fastcgi_pass    :FastCGIサーバの指定
  fastcgi_param    :FastCGIサーバに渡すパラメータ

  フォーマットサンプル
  server {
    listen 80;
    server_name www.example.com;
    location / {
      proxy_pass http://192.168.1.10/
      proxy_set_header Host $host;
      proxy_pass_header Server;
    }
  }

 

 

 

 

#---------- 主題209:ファイル共有 ---------------------------


209.1 Sambaサーバの設定


 sambaとLinuxでユーザーとパスワードは連携されない
 マスターブラウザはOSレベルの数字が大きいのがなれる

 + smbd   :ファイル/プリンタの共有とユーザ認証
  nmbd   :NW内のPC一覧表示、WINSサーバ
  winbindd :SambaからWindowsユーザの情報を利用可能にする

 + nmblookup(マスター/ホスト検索、NetBIOSの問い合わせ)
  -M マスターブラウザの検索
  -A IPを引数にMACアドレスやNetBIOSを表示

 + samba-tool (samba4から)
  dns
  domain
  testparm
  user

 + smbcontrol (smbd,nmbd,winbinddにメッセージ)
  all smbd,nmbd,winbinddの全部にブロードキャスト
  デーモンまたはPIDで指定のものだけ

 # smbpasswd   -d: 無効化、 -e: 有効化
 # pdbedit    -L: 一覧表示 (pdbeditはパス変更出来ない)
  -a: 作成、 -x: 削除

 # testparm (構文チェック)

 + smbstatus(smbに接続してるWindowsを確認する)
 + smbclient (Windowsの共有リソースにアクセス)
  smbclient [OPT] //hostname/directory
  -L [host] 指定したホストで利用可能なリソース表示
  -N     認証を行わない
  -U|--user= 接続ユーザーを指定

 
 + /etc/samba/smb.conf 全3セクション
  [global] # パスワードに関る
   username map  = ファイル名 ユーザー名情報があるファイルの場所
   guest account = ユーザ名  ゲストユーザーのユーザー名
   map to guest  = [Never|Bad User|Bad Password]認証できないときの挙動
   passwd program = パスワード変更時に実行するプログラム
   passwd chat  = 上プログラム実行時の応答内容を指定
   unix password sync = Linuxと同期するか

   hide dot files = [.]から始まるファイルを隠すか
   wins support = WINSサーバとして動作させるか
   netbios name = NetBios名設定

   Windowsとの接続に関わる
   - security = 認証方法。 user|domain|ads
   - passdb backend = 認証方式。 smbpasswdやldapsamなど
   - realm = ADのドメイン名指定
   - workgroup = ADドメインのNetBIOS名

  [homes]
  [printers]
   path = [name] 共有ディレクトリのパス指定
   
   printable = yes | print ok = yes
   guest ok = yes  | public  = yes
   writable = yes  | read only = no  write list

   valid users=,区切り@でグループ指定。アクセス許可
   force user= 所有
   force group=所有
   force directory mode = パーミッションデフォルトは0000
   directory mask = パーミッションのマスク。0755がデフォ
   forceはmode、通常はmask
 
 + /var/log/samba/
 + net
 + mount.cifs

 

 

 


209.2 NFSサーバの設定 ★★★☆☆


 NFSサーバが公開したディレクトリを、NFSクライアントがマウントして利用
 公開のことをエクスポートと呼ぶ
  デーモン
  mountd  : クライアントに必要。マウントするためのデーモン
  portmap  : サーバとクライアント療法に必要。RPCをTCP/IPに変換
  nfsd:   サーバ側の設定。全バージョンで必要
  rpc.idmapd: サーバとクライアント両方に必要。NFSv4の設定
  rpc.mountd: サーバ側の設定。

 + /etc/exports
  ro       : 読み取り専用
  rw       : 読み書き可能
  no_root_squash : rootのリクエストをroot権限で実行
  root_squash  : rootのリクエストを匿名権限で実行
  all_squash   : 全てのリクエストを匿名権限で実行
  sync      : サーバーとクライアントの書き込みを同期
  fsid      : fsid=0でルートディレクトリ化(NFSv4のみ)
   root権限でアクセスするのはセキュリティ上好ましくない。

  [Dir] [IPRange] [Option] 
    /share *(ro) lpic(rw,no_root_squash)
 
 + showmount (公開してるディレクトリをマウントしてるクライアントを調べる)
  -a ホスト名とディレクトリを表示
  -e [srv]でエクスポートしてるディレクトリを表示

 + rpcinfo(稼動しているRPCサービスを確認)
 # mount -t nfs -o [OPTION] nfsserver:/dir /mnt
  nolock  :ロックしない
  soft   :応答がないとタイムアウトで終了
  retrans :softの再試行回数を指定
  hard   :応答があるまで再接続する
  intr   :割り込み受付
  rsize  :読み取りのブロックサイズ(byte単位)
  wsize  :書き込みのブロックサイズ(byte単位)

 + exportfs(exportsの設定を反映)
  -a 全部のディレクト
  -r 全部のディレクトリを再エクスポート
  -u ディレクトリをアンエクスポート
  -v 詳細情報表示

 + nfsstat(NFSの統計情報を確認)

 + /proc/mounts
 + /etc/fstab
 + mountd
 + portmapper

 

 

 

 

---------- 主題210:ネットワーククライアントの管理 ---------


210.1 DHCPの設定 ★★☆☆☆


 + dhcpd, dhclient
 + dhcpd.conf
  - option domain-name     :ドメイン名;
  - option domain-name-servers :IPアドレス,;
  - option routers       :でふぉげのIPアドレス;
  - option subnet-mask     :サブネットマスク
  - option broadcast-address  :ブロキャスアドレス
  - option ntp-servers     :NTP
  - option nis-domain     :NISドメイン
  - option nis-servers     :NISサーバ
  - option net-bios-name-servers:WINSサーバ(NetBIOS)
  - default-lease-time     :デフォの貸し出し期限
  - max-lease-time       :最大の貸し出し期限
  - range           :貸し出すIPのレンジ
  - fixed-address       :割り当て時の固定IPを
  - hardware ethernet     :クライアント特定のMACアドレス
  - allow unknown-clients   :知らないMACアドレスを許可
  - deny unknown-clients    :許可しない


 + dhcpd.leases
 + syslog や systemd のジャーナル内の DHCP のログメッセージ
 + arp

 ルータ広告をするもの
 + radvd
 + radvd.conf

 + dhcrelay リレーエージェント

 

 

 

 

210.2 PAM認証 ★★★☆☆


 + sssd.conf(System Security Service Daemon)
  LDAPやADの認証記録をキャッシュする
  →オフラインでも認証できる

 + /etc/pam.d  (ある場合/etc/pam.confが無視される)
  モジュールタイプ コントロール モジュール 引数
 + モジュールタイプ
  auth   : パスワードを使いユーザ認証
  account : アカウントが有効かチェック
  password : パスワードの設定/変更
  session : 認証前後の処理を指定(ログ記録など)

 + PAM コントロール
  + requisite :失敗時即終了
  + required  :失敗時、requiredを実行し拒否
  + sufficient :requiredが全部成功時、許可する
  + optional  :成功失敗を問わずモジュールの実行を続ける

 + PAMモジュール
  + pam_unix   : 通常のパスワード認証
  + pam_cracklib :パスワードの書式制限
  + pam_limits  :ユーザー利用のリソース制限
  + pam_listfile :ファイルを使いプログラムのアクセス制御
  + pam_sss    :SSSD認証
  - pam_console  :端末からログイン時に管理権限を一部委譲
  - pam_deny   :認証を全て拒否
  - pam_env    :環境変数設定
  - pam_ldap   :LDAP認証
  - pam_nologin  :一般ユーザーのログイン拒否(etc/nologin)
  - pam_securetty :rootログイン可能な端末設定(etc/securetty)
  - pam_warn   :ログを記録
  - pam_wheel   :root権限アクセスをwheelグループのメンバに制限

 + nsswitch.conf

 

 

 

+ 210.3 LDAPクライアントの利用方法 ★★☆☆☆


 + ldappasswd
 + ldapsearch
  -d 識別名で検索開始位置
  -L  :LDIFv1形式で表示
  -LL :LDIFv1形式でかつ※なしで表示
  -LLL :LDIFv1形式でかつコメントとLDAPバージョンの表記なし
 + ldapadd
  -h 接続先ホスト
  -x 簡易認証
  -D 識別名
  -W 対話的入力
  -w password
  -f LDIFファイル指定
 + ldapdelete

 

 

 


210.4 OpenLDAPサーバの設定 ★★★★☆


 LDAP: 読み込み検索に最適化された、X500をベースとしたDAPの軽量化
 DIT : Directory Information Tree。LDAPの階層構造。RDNとDNがある
 LDAPの階層構造について
  - objectClass : オブジェクトクラス
  - dn  :DistinguishedName
  - c  :Country
  - cn  :CommonName
  - dc  :DomainComponent
  - mail :MailAddress
  - o  :Organization
  - ou  :PrganizationalUnit
  - sn  :SurName
  - uid :
  - telephoneNumber
  - uidNumber

 # slapadd (エントリーの追加)
  -l LDIFファイルを追加
 # slapcat (DBからデータをLDIFとして出力)
 # slaptest
 # slapindex (slapd.confよりインデックスを作成)
  -v 詳細情報
  -d デバッグレベル
  -f ファイル名
  -c エラー時も処理を継続
  -n slapd.confにあるDB番号に接続
  -d DNでDBを指定して接続

 + slapd.conf
  グローバルセクション
   argsfile  :起動用コマンドがあるファイルを指定
   pidfile   :PIDを格納するファイル指定
   include   :設定ファイルの場所
   logfile   :ログの出力先
   loglevel  :ログのレベル
   idletimeout :クライアント接続を切断する秒数
   timelimit  :検索要求の応答に使う秒数
  データベースセクション
   database : バックエンドのDBの種類
   suffix  : ディレクトリのトップとなるDN
   rootdn  : DB管理者のDN
   rootpw  : DB管理者のパスワード
   index   : 属性と、作成するインデックスの種類
   directory : DBファイルを格納するディレクト
  アクセスディレクティブ(アクセス制御)
   access to [アクセス対象]
    by [要求者] [アクセス権]
   アクセス対象:*, dn=, attrs=, filter=
   要求者:*, anonymous, users, self, dn=
   アクセス権:none, auth, compare, search, read, write
   初期状態:全ユーザがReadのみ。アンマッチはアクセス拒否


 # slapd
  -4,-6 : 使用するプロトコル
  -d N : デバッグレベル
  -f Na : 設定ファイル
  -u,-g :起動ユーザーグループ
  -r  :ルートディレクト
  

 スキーマ
  スキーマファイルは予め用意された、オブジェクトクラスや属性定義ファイル
  core.schema     :cn,ouなどの基本属性
  cosine.schema    :X500で定義された属性
  inetorgperson.schema :inetOrgPersonなどを定義
  nis.schema      :NIS関連のオブジェクトクラスを定義

 オブジェクトクラス
  エントリには必ず人るの構造型クラスが適用
  エントリには複数の補助型クラスが適用できる
  抽象型クラスは他のオブジェクトクラスを定義する基底クラス
  ABSTRACT :基底
  STRUCTUAL:人組織を現す
  AUXILIARY:補助型クラス

 OID
  IANAによって管理される
  オブジェクトクラスや属性に一意に割り当てられてる
  スキーマの拡張にはIANAからOIDをもらう必要がある

 + slapd-config
  olcLogLevel:N   :cn=config
  olcInclude:NAME  :cn=include
  olcAttributeTypes :cn=schema
  olcObjectClass  :cn=schema
  olcBackend=type  :colBackendConfig(bdb,config,ldap,ldif,passwd)
 
 + LDIF
  LDAPの情報をUTF-8で記載。バイナリはBase64エンコード
  空白で複数エントリで属性::属性値の記述
  dn:対象エントリの識別
  changetype:変更種別
   add,del,modrdn
   modify: add delete,replace

 + /var/lib/ldap/*
 + loglevel

 

 

 

# ---------- 主題211:電子メールサービス ---------------------


211.1 電子メールサーバの使用 ★★★★☆

 + postfix
  start  : 起動
  stop  : 終了
  abort  : 強制終了
  flush  : キューを消化
  reload : 設定のリロード
  check  : 設定の構文チェック
 + postconf -n デフォから変更されたものだけ表示
 + postqueue -p キューを表示
       -f 送信
 + postsuper -d キュー削除


 + main.cf
  myhostname   = 自サーバのホスト名
  mydomain    = ドメイン
  myorigin    = @以降のドメイン
  inet_interfaces = メールを受け取るIF
  mydestination  = ローカル配送のドメイン
  mynetworks   = リレーを許可するクライアント
  mail_spool_directory = スプールディレクト
  home_mailbox  = ユーザのホームディレクトリ以下のスプール
  mailbox_command = ローカル配送のプログラム指定
  disable_vrfy_command = SMTPのVRFYを無効にするか

  - # でコメント行
  - $設定項目で他の値を参照
  - ,で複数記述
  - 改行してスペースで、前行の継続として扱える

 + postfix TLS
  master.cf内  smtps        ;コメント解除
  main.cf    smtpd_use_tls    ;yes TLS有効化
          smtpd_enforce_tls  ;yes TLS強制
          smtpd_tls_cert_level ;may[任意],encrypt[強制]
          smtpd_tls_cert_file ;証明書ファイル
          smtpd_tls_CAfile   ;CA証明書ファイル
          smtpd_tls_key_file  ;秘密鍵ファイル


 + /etc/aliases
  アカウント: 受け取りユーザ名,受け取りユーザ名
  - admin: /ファイルパス
  - admin: |/usr/local/bin/example 
  - admin: user@domain 転送
  - admin: :include:/Path Path記載の内容を別名として読む

 

 + /etc/postfix/*
 + /var/spool/postfix
 + Sendmailエミュレーション層のコマンド
  -bp キュー表示  mailq
  -q 即送信

 + /var/log/のメール関連のログ

 

 

 

 

211.2 電子メール配信を管理する ★★☆☆☆


 + Control
  if    条件分岐
  require 拡張機能指定
  stop   処理停止

 + Test
  address 
  header 
  size  
  allof  
  anyof  
  not   
  true  
  false  

 + Action
  keep   でふぉ。メッセージを保管
  redirect アドレスに転送
  discard 破棄
  reject  配信拒否
  vacation 自動返信

 

 

 

 


211.3 メールボックスアクセスを管理する ★★☆☆☆


  SSL = yes
  ssl_key = </Path
  ssl_cert = </Path
 
 Courier-IMAP

 + /etc/dovecot/
 
 + doveconf
  -n デフォルト以外を表示
  -c 設定ファイルを指定
 + dovecot.conf
  mail_location
  mechanisms
  listen
  protocols
  verbose_proctitle = yes

 + doveadm
  reload
  stop
  mailbox
  pw
  who

 

 

 


# ---------- 主題212:システムのセキュリティ -----------------


212.1 ルータを構成する ★★★☆☆


 + /proc/sys/net/ipv4
 + /proc/sys/net/ipv6/
 + /etc/services

 + iptables
 + ip6tables
  -F 全削除
  -X 空のユーザ独自チェインを削除
  -D 1個ずつ削除
  -A 追加
  -P デフォのポリシー設定
  -N New (書き換え系はPre|Postが接頭語)

  -s   送信元
  --sport
  -d   送信先
  --dport
  -p    tcp,icmp,allなど
  -i    受信IF
  -o    送信IF
  -j    適用するアクション
   + ACCEPT   
   + DROP    破棄
   + REJECT   破棄(通知あり)
   + MASQUERADE 
   + SNAT    
   + LOG
  
  iptables-save > iptables.backup
  iptables-restore < iptables.backup

 

 

 

 

212.2 FTPサーバの保護 ★★☆☆☆


 + proftpd.conf
 + pure-ftpd.conf
  -E 匿名のログイン禁止
  -e 匿名のみログイン許可
  -i 匿名のアップロード禁止

 + vsftpd.conf
  anonymous_enable=yes|no  匿名ログイン
  anon_upload_enable=yes|no 匿名アップロード
  ftp_username=ftp      匿名ユーザー名
  
  接続要求を
   サーバ   :アクティブモード
   クライアント:パッシブモード

 + /etc/ftpusers
  改行単位の列挙型

 

 

 

 

212.3 セキュアシェル (SSH) ★★★★☆


 + ssh
  Protocol
  PermitRootLogin
  PermitEmptyPasswords
  PubkeyAuthentication
  PasswordAuthentication
  X11Forwarding
  AllowUsers
  AllowGroups
  DenyUsers
  DenyGroups

 + 秘密鍵:公開鍵のファイル組み合わせ
  identity   :identity.pub      クライアント Ver1
  id_dsa    :id_dsa.pub       クライアント Ver2
  ssh_host_key :ssh_host_key.pub    サーバ Ver1
  ssh_host_dsa_key:ssh_host_dsa_key.pub サーバ Ver2

  known_host   クライアント→サーバでの、サーバの公開鍵
  authlyzedkeys サーバ→クライアントでの、クライアントの公開鍵

 

 

 


212.4 セキュリティ業務 ★★★☆☆


 + 機関
  CERT  セキュリティインシデントと技術支援
  JPCERT
  CIAC  セキュリティインシデントの報告
  Bugtraq バグ情報を公開するML

 + Tripwire(改ざん検知)
  File Type/Size
  Owner User/Group Permit
  Date Access/Update
  Block Link/Hash/iNodeNo

 + fail2ban (ログ監視IP遮断[いわゆるIPS])
  jail: ログファイル監視、指定文字列と回数でアクション
  /etc/fail2ban
   fail2ban.conf, jail.conf, filter.d/, jail.d/

 

 

 


212.5 OpenVPN ★★☆☆☆


  # TIPS - OpenVPNのクライアント同士の通信について
  基本はサーバ-クライアント間のみ。しかしpushでルートを伝達できたりする
  クライアントに利用可能なネットワークを伝達する事ができる
  サーバ側の設定に client-to-client ディレクティブが必要

 + openvpn (/etc/openvpn/server.conf)
  nobind :クライアント側ポート自動割り当て
  status :記載したファイルに、接続中クライアントとルーティングを記載
  仮想ネットワーク tun tap
  使用ポート: 1194

-------------------------------------------------------------------------