スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

323:操作のセキュリティ

いろいろと勉強したいことがあって困る。
ゲームのモチベというか優先度が大分下になっているのでどうしたものか。
閃の軌跡Ⅱが出たらそっち優先になるかもだけど。

というわけで今回は
操作のセキュリティについて。
さすが策定以来更新していないだけあってだいぶ古い技術が目白押しですが
試験範囲なので仕方がない。まあ古いといっても未だに使ってる企業はあるし無駄にはならないでしょう。

323.1 ホスト構成管理
・RCS
元祖バージョン管理システム。(もっと古いのあるかもしれないけど)
後続のCVS、SVNやgitなどに比べるとやっぱり不便。だけど企業で今でも使っているところがあるらしい。
1つのファイルだけをローカルに管理するならお手軽だし。
基本的には管理するファイル名,vというファイルに情報が書かれそれを元にロールバックしたりする。
ci
現在のワークファイルを,vファイルに登録する。
-l・・・チェックイン後チェックアウトしてロックする。一度チェックインしてその後も編集を続けるときに使う
r・・・指定したリビジョン登録する


co・・・現在のワークファイルにあるリビジョンの状態を書き込む
こっちのオプションも似た感じ。

rcsdiff
-rオプションで比較したいリビジョンを指定する。
指定しないと最新のリビジョンとワークファイルの比較を行う


・Puppet
こちらもかなり古くからあるシステム管理ツール。
似たのとしてはchefなどがある。こちらは設定をRubyで書くのに対して
Puppetは独自の言語で書かれる。オブジェクト指向なので書き方は直感的にはわかりやすい。
試験の範囲としては基本的な設定を抑えればよさそう

大項目としては次が最後でけどなかなかおもそう。
Oracle silverの勉強がもうそろそろ終わりそうなので、終わり次第試験受けて、
こっちに集中したい。できれば来月中にはLPIC3の認定は受けたいです。

GOLDはくっそたかい研修を受けないといけないので保留。
勉強はしといて知識はつけておく感じで。あとはRACとかの概念も覚えておきたいです。
そこらへんで一区切りで英語とかCCIEの勉強に移るつもり。
スポンサーサイト

322.アプリケーションのセキュリティ2

322.4 FTP
主に下記2つのサービスについてでるらしい問題集にはvftpdしかなかった。

・Pure-FTPd
あんまり資料がない
システムユーザを使うのではなく
バーチャルユーザを使うみたい
pure-pw useradd hoge -m -u ftpuser -d /home/ftp
みたく設定
起動オプション
-E(anonymousユーザのログインを禁止する)
-k 90(ディスク容量が残り90%になったら書き込みを禁止する)
-C 5(同一IPからの接続数を5に限定。数字は任意)


・vsftpd FTP
vsftpd.confに設定を記載主な設定は以下
chroot_list_enable・・・アクセスして来た時にユーザのホームディレクトリ配下にchrootする。
YESでリストを指定しNOは全てのユーザが対象となる
chroot_list_file・・・上記でYESを指定した時にユーザリストのファイルを指定する。
chroot_local_user・・・指定したディレクトリにchrootするか否か
passwd_chroot_enable ここに指定したディレクトリにchrootする

上2つと下2つはどっちが優先だろう

他にSSL/TLSの設定が出そうな雰囲気

322.5 OpenSSH
そこそこ重要そう。
ただ基本的なことが多かったので自分が知らなかったことだけ
・ssh-vulnleyコマンド。
鍵がセキュリティ上安全か確認するコマンド
脆弱性のあるlibsslを使って公開鍵を作成していると、認証が通らないことがある。
その時にこのコマンドを使うと原因がわかる。
COMPROMISEDと表示されるとそれは安全でないことを示す。

オプションとか特に指定しなくてもよさそうなのでこのコマンドで~./sshを調べてるのかな

./ssh/config
StrictHostKeyChecking

接続するホストが新規の時とかの振る舞いを指定する。
yes・・・自動的に鍵を追加しない。つまり手動?鍵がなかったり違うと認証まで進まない
no・・・何も聞かずにknown_hostsに追加される。同じホストで鍵が違ったら上書きされる。警告が出るだけで接続はできる。
ask・・・確認したときだけ鍵が追加される。

322.6 NFSv4
vごとに仕様が異なるので厄介。優先度は低いみたいなので簡単に。
その割には本家サイトの主要な知識範囲が広いような。

認識しておくべきは
セキュリティ上の問題→rpcを使わなくなったことによりポート番号が固定化されたこととか。ただしrpc関連のプロセスは起動しておかないといけない。
疑似ファイルシステム→pseudo
LIPKEY,SPKM,kerberos→セキュリティタイプ

322.7 syslog
syslogはかなり古いのでもうそれに代わるsyslog-ngとかrsyslogとかが使われるんじゃなかろうか。
設定的に好みなのはsyslog-ngの方
UDP514を使うのでパケロスをすることがある。というかカーネルパラメータをいじくらないとデフォルトだと
アプリケーション側でもつバッファサイズがカーネルで設定しているサイズと合わずかなりロスる。
ちなみにTCP514はrshこれも枯れた技術。
問題集にはリモートサーバに送る方法ぐらいし書かれていなかった。
セキュリティ上の問題やchroot環境に関しても出そう。

322.アプリケーションのセキュリティ

322.1 BIND/DNS
BINDはDNSの中でも有名なパッケージの一つだけどやたらと脆弱性が報告され、
いつもverUpやってる印象。

そのセキュリティの中で出るのは
chroot

まずDNSサーバを構築するときはこれを組み合わせて使う。
こいつは特定のディレクトリ以下をルートと見せかける。
その分マウントとかの設定が厄介だった気がする。

ACL
特定のホストからしか問い合わせを受け付けないようにする。
これにより例えば社内にあるDNSサーバは社内のIPからしか受け付けないようにしてセキュリティを高めることができる

ファイルにかけるACLとかでも、BINDが起動するユーザ(普通はnamed)が特定のファイル以外にアクセスできないようにするとかがある。

これらを怠ると
DNSキャッシュポイズにング
中間者攻撃
Smurf攻撃などを受ける


named-checkconf
よくあるコンフィグをチェックするコマンド。正常なら何も出ない。
またコード0を返す。
chrootしている場合は-tでルートを指定する。


ゾーン転送

マスターの情報をスレイブにコピーする。
DNSの問い合わせはUDP53を使うがゾーン転送にはTCP53を使う。
まあ失うとまずいのでTCPを使ってるんだと思われ。

この時変なサーバと同期しないように共通鍵で認証を行う。
それがTSIG

鍵は以下で生成
/usr/sbin/dnssec-keygen -a HMAC-MD5 -b 512 -n HOST 鍵の名前

この時2つの鍵ができるが
.keyとつく方に書かれている値が共有カギとなる

322.2 メールサービス
sendmail
postfix

メールサービスはこの二つが有名だがsendmailは古いうえ設定が結構複雑なのでどんな脆弱性があるかという把握だけでいいみたい。

・バージョンから脆弱性が漏れる危険性→設定でバージョンが出ないようにする。
Telnetなどでアクセスを試みようとすると設定がないとバージョンを返してしまうので返さないようにする。

・chroot jailを使うことで特定のディレクトリ以下にしかアクセスできなくなる。

・TLSを有効化し通信の暗号化をする

・踏み台として利用されないようにリレーに制限をかける

・デフォルトだと存在するメールアドレスが大三社にわかるため、わからないようにする。

上記が対策となる

postfixの設定
・main.cf メール配信に関する設定を行う
よく出るのはメールサーバ間の通信暗号化する設定。
smtpd_use_tls・・・starttlsコマンド使用の可否。
smtp over sslの違いは最初から暗号化するかコマンド後から暗号化するか。
smtpd_tls~で証明書などの管理を行う。

・master.cf プロセスに関する設定を行う
service
type
private
unpriv
chroot
wakeup
maxproc
command + args

設定ファイルは/etc/postfix/以下
設定後はreloadする必要がある

chrootするには専用のスクリプトを動かし
master.cfのchrootの部分をyにする。ただしlocalデーモンはnoのまま
rootは /var/spool/postfix/以下となる

proxymap
読み取り専用のテーブル検索サービス
・chroot外のファイルへアクセス
・複数のプロセス間での共有によりDB接続エラーの回避。


Apache/HTTP/HTTPS
Basic認証はhrpasswdコマンドで行う
-b・・・パスワードをコマンドラインで
-c・・・作成するファイル名
-D・・・ユーザ情報の削除

AllowOverrideディレクティブで.htaccessが設定できる項目を設定する。
All・・・全部
none・・・読み込まない
AuthConfig・・・、ユーザに認証の設定だけを許したい際に、明示的に指定
FileInfo・・・ドキュメントタイプの設定
Indexes・・・ディレクトリインデックスの設定
Limit・・・ホストへのアクセス制御(Allow,Deny,Order)
Options・・・

.htaccessは各ディレクトリにおきその中での制限事項を定める。

321.2 拡張属性とACL

P4Gを買おうかどうか考え中

LPIC3は認定資格として共通のSpecialtyとそれぞれの特化したものがあり、
更新するときは共通のものに関してはどれか一つ合格すれば更新されるが
それぞれの分野に関しては毎回合格しないといけないことに今日気がついた。

のでどうするか考え中。
さすがに5年に1度なんの補助もなく9万を使うのはきついので。
案としては5年に1度ずつ増やしていく。
その間に転職なりして補助が出るところにいけばいいし

LPIC303
321.2 拡張属性とACL

そこそこ重要度が高そうなので詳しめに。
ちなみに今参考にしているのは黒本。というか今はこれしかない。

拡張属性(Extended Attribute)はファイル名、パーミッション、更新日時などの基本的な属性以外のもの
以下の名前空間を持つ
user
trusted
security
system

設定するには以下のコマンド
setfattr
オプション
-n 設定する拡張属性の名前を指定。名前空間.変数
-v 設定する値
-x 削除する名前空間の指定


user.version
user.desc
user.test

逆に確認するコマンドは
getfattr

-n 指定した拡張属性を表示
-d 指定したパスに関連付けられている拡張属性をすべて表示

拡張属性がなにも設定されていないとコマンドを実行してもなにも表示されない


どうも試験にはいろいろな拡張属性が出るっぽいんですがネットだとあまり情報がない。

ACL

通常ファイルはユーザ、グループ、その他でアクセス権を制御するが、
特定のユーザに関して所有権を制御することができる。

ちなみにマウントするときにaclオプションが必要になる。
ACLを設定するには
setfaclが必要となる。

オプション
-b 全ての拡張ACLの削除
-d デフォルトのACLを適用。このデフォルトをどこで設定するのかあまり情報がなくてよくわからない。manコマンドには書かれているのだろうか。
どうもディレクトリに設定するっぽい
d:u::rwxみたいに
-m 権限
権限の書式はu:ユーザ名:rwxとなる。主にこれが出そう。
-M 指定したファイルの権限を設定
-x 指定した拡張ACLの削除
-X 指定したファイルの拡張ACLを削除
-R 再帰的に設定
-n mask値を適用しない。
--mask ここに設定した以上の権限は与えないように設定。

確認方法は
getfacl

覚えておくべきはこんなところか。
SELinuxはかなり重要度が高いので後回し、関連する強制アクセス制御システムも一緒に。
次はアプリケーションセキュリティと操作のセキュリティ。
ここら辺は重要度が低めなのでまとめて

ホストベースのアクセス制御

今日仕事帰りにOracle Bronze DBAを受けて85%で合格しますた。
次は合間を見てOracle silverですな。まあBronzeより深く突っ込まれるとかそんな感じだと思います

今日から主題321:アクセス制御について
まずホストベースのアクセス制御
優先度も低そうなのでさらっと
なぜかnsswitchも範囲に含まれてますが、名前解決の順序を制御する感じで入っているのでしょうか。
基本的には
hosts: files dns
こんな感じで制御。/etc/hosts→DNSの順番で解決。DNSの設定は別途reslve.confで行われる


PAMに関してはかなり多岐にわたるのでどういうのが入るかいまいちわかりませんが。
各設定について覚えればよさそう
/etc/pam.d/以下に設定を置く。用いられるモジュールは/lib/pam.d/以下においておく
ライブラリタイプ コントロール モジュール 引数となる。
LPIC202では引数はあまり出なかったのでそこら辺を抑えればよさそう。
どういう制御をおこなうかはモジュールの名前でだいたい予想がつくので

引数は
file = /etc/listfileが多い?ここに書いたユーザ名もしくはホスト名を制御の対象にする
item ユーザベースで制御するかリモートホストベースで制御するか設定
onerr listfileモジュールでエラーが出た時に処理を続けるかどうか
sence fileで指定した項目を許可するか拒否するか。いわゆるブラックリスト形式かホワイトリスト形式化の指定
こんなところでしょうか

あとはパスワードクラッキングjohnコマンドというのがあります。
いわゆる辞書攻撃で設定されているパスワードが解析されないか確かめるものですね。

/etc/shadowと/etc/passwdを結合したファイルに適用するのが主な使用方法の模様
チェックの仕方としては3つあり
ユーザ名を元に推測する
john --single privpasswd

ワードファイルを元に推測する
john --wordlist=password.lst privpasswd

作戦いろいろやろうぜ(すごく時間がかかる)
john --incremental privpasswd

--users=でユーザの指定も可能
最新記事
カウンター
月別アーカイブ
カテゴリ
リンク
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。