本稿ではLinux認定試験のLPICで必要とされる知識のうち見直すべきポイントをまとめます。
DNS
BINDのサーバデーモン
named
DNSサーバ機能とDHCPサーバ機能を提供するソフトウェア
dnsmasq
masqはmasquerade(仮装)の略称だと覚えましょう。
コンテンツ・キャッシュサーバ機能を提供して複数のバックエンドをサポートするソフトウェア
PowerDNS
コンテンツ・キャッシュサーバ機能を分離してセキュリティを強化したソフトウェア
djbdns
djbは人名の頭文字らしいので覚えるしかありません。
Non-authoritative answerが返ってくるコマンドとその意味
nslookupで,キャッシュサーバが応答していることを示している
/etc/name.confでnamedを操作できるホストの指定を行うステートメント
controls
named自体の設定を行うoptionsと混同しやすいので注意です。
/etc/name.confでzoneステートメントでルートサーバを表すタイプ
hint
逆引きで利用される特別なドメイン
in-addr.arpa
/etc/name.confで構文チェックを行う
named-checkconf
named.confで指定されたゾーンファイルのチェックはnamed-checkzoneとなります。
ルートDNSサーバの情報を更新する方法
dig @m.root-servers.net. ns > /var/named/named.root
namedを操作するコマンド
rndc
Remote Name Daemon Controlの略称と覚えましょう。
ゾーンを配置するディレクトリはどこで指定するか
/etc/named.confのoptionsステートメント
ゾーンを配置するファイル名はどこで指定するか
/etc/named.confのzoneステートメント
MXレコードのプリファレンス値と優先度
値が小さいものほど高い優先度となる
DNSのクラスでINではないものを挙げよ
現在ではCH(Chaosnet)がBINDサーバのメタデータを提供するクラスとして利用されている
ZSK・KSKを作成するコマンド
dnssec-keygen
ゾーンファイルに署名するコマンド
dnssec-signzone
namedが指定したバージョンを答えるための設定
options {
version "9.8";
}
キャッシュオリジンサーバの設定方法を二つ挙げよ
- type hint;
- options { forward only; };
$ORGINはどこに書いてもよいか
どこに書いてもよいが,ドット(.)で終わらない名前の最後に付加するのはその行以降になる
namedのログはどこに出力されるか
syslogを使っているためデフォルトだと/var/log/messages
TSIGの公開鍵はサーバに保存するか
保存しない。公開鍵暗号というより共通鍵暗号の方が理解としては近い。
TSIGはTransaction Signatureですので時刻の同期も必要です。
DANEとは
DNSのリソースレコードにX.509v3認証情報を格納する方式
webサーバ
httpd.confの外部設定ファイルの明示
# 外部設定ファイルの置き場所
AccessFileName .htaccess
# 外部設定ファイルで上書き可能な設定
AllowOverride AuthConfig Limit
Apacheのインストール後にモジュールを組み込むためのコマンド
apxs
Apache eXtenSion toolの略称と捉えましょう。
DSOとは
Dynamic Shared Objectの略称で,Apache HTTP Serverなどで使われる動的共有モジュールの形式
基本認証のパスワードを設定するコマンド
htpasswd
ダイジェスト認証のパスワードを設定するコマンド
htdigest
基本認証のユーザlpicを作成し,パスワードをファイルに出力するコマンド
htpasswd -c /etc/httpd/conf/htpasswd lpic
cはcreateです。
apacheに接続して表示される情報を制御するディレクティブとその設定値
ServerTokens Prod
Squidで特定の文字列が含まれるURLをキャッシュしない設定
hierarchy_stoplist
ApacheとNginxのディレクティブの違い
- Apache:キャメルケース
- Nginx:スネークケース
httpd.confの構文チェック
apachectl configtest
Apache2.0以降でポート番号を変更するためのディレクティブ
Listen
SSHで1024番ポート以上を利用する場合はsshd_configのPortディレクティブで設定するため注意です。
DocumentRoot外のファイルへのアクセス方法
- Alias
- ScriptAlias
- Option FollowSymLinks
Apacheのモジュールと使用可能な引数を列挙せよ
- mod_authz_core:env/all/method/expr
- mod_authz_user:user/valid-user
- mod_authz_host:ip/host/forward-dns/local
Apacheでクライアントのアクセス制御の新旧を説明せよ
- 新:mod_authz_coreとmod_authz_hostを利用し,Require all deniedやRequire ipを利用
- 旧:mod_authz_compatを利用し,Orderで条件の順番を指定してAllowやDenyを書く
NameVirtualHostには何を指定するか
名前ベースのバーチャルホストで利用する一つのIPアドレス
バーチャルホストのデーモンはどのような単位で起動するか
クライアントのリクエスト単位
squid.confでhttp_accessの指定がない場合の挙動
リクエストは拒否される
squid.confで全てのhttp_accessに一致しない場合の挙動
最後のhttp_accessのallow/denyを反対にした挙動となる
最後がallow allやdeny allで終わっている場合は必ず一致するため分かりやすいです。
auth_paramとproxy_authの違い
- auth_param:認証方式の設定
- proxy_auth:認証を指定するaclのタイプ
ファイル共有
SMBとCIFSの違い
いずれもネットワークサービスの名称だが,CIFSではNetBIOSは利用せずにTCP/IPで直接通信する
NetBIOS名とIPアドレスの名前解決を行うサーバ
WINS
Sambaとは
Microsoftネットワークで使用されているSMB/CIFSというプロトコルを扱うことでLinuxホスト上でWindowsでのファイル共有の仕組みを実現するOSS
Sambaのデーモン
- smbd:samba block daemon
- nmbd:netbios message block daemon
/etc/samba/smb.confを変更したら再起動は必要か
- global:必要
- それ以外:不要
Sambaユーザとして認証できなかった場合の設定
map to guest Never|Bad User|Bad Password
Bad Userは存在しないユーザが指定された場合はゲストユーザ,Bad PasswordはBad Userに加えてパスワード入力ミスの場合もゲストユーザとする。
SambaのパスワードとLinuxのパスワードを同期させる設定
unix password sync
smb.confで表示もアクセスもさせたくないファイルやディレクトリの設定
veto files = /{ファイル名}/
smb.confの構文チェック
testparam
Sambaはsysログを介するか
介さない
smbdのログファイル名
/var/log/samba/log.smbd
smbd.logではない点に注意。
Sambaでマスターブラウザに選ばれやすくなるための設定
os level = {数値}
Active DirectoryドメインにKerberos認証を使ってログオンする
security = ADS
Sambaユーザを作成するコマンドで認証情報の格納方法としてどのbackendにも対応しているもの
pdbedit
Password Database Editの略称だと理解しましょう。
ネットワーク上にあるリモートホストの機能を別のホストから使えるようにする仕組み
RPC
RPCプログラム番号をTCP/IPのポート番号に変換するサービス
portmap
NFSの/etc/exportsでrootでのアクセス時にroot権限で実行するオプション
no_root_squash
squashは「root権限を潰す」と覚えましょう。root_squashがrootでのアクセス時に匿名アカウント権限で実行するオプションです。
/etc/exportsを反映させるコマンド
exportfs
ハードマウントで設定するべきオプション
intr
無限に再実行させないために割り込み中断を可能にするオプションです。
LMHOSTSファイルは何を記述するか
NetBIOS名とIPアドレスの対応
ワークグループMYGROUP内のマスターブラウザを検索する
nmblookup -M MYGROUP
NFSのfilesrvでエクスポートしている/share/pubを/mnt/nfs/pubにマウントする
mount -t nfs filesrv:/share/pub /mnt/nfs/pub
Linuxのユーザ名とWindowsクライアントの複数ユーザで共有するためのsmb.conf内の設定
username map
map usernameなどと誤解しないように注意してください。
Samba側でWindowsドメインのアカウントをUnixアカウントとして利用する機能
winbind
逆にwindows側でUnixアカウントを利用することはできません。
Kerberos認証ではkerberosサーバが発行した公開鍵を利用するか
利用しない
Kerberos認証では認証後の通信を暗号化するか
暗号化しない(Kerberos認証はあくまでも認証のフレーム)
kerberos認証を利用する際のsmb.confにおいてworkgroupはどのような設定を行うか
[global]セクションでドメイン名の左端の要素を指定する。EXAMPLE.COMの場合はEXAMPLE。
kerberos認証を利用する際のsmb.confにおいてrealmはどのような設定を行うか
[global]セクションでドメイン名を指定するEXAMPLE.COMの場合はEXAMPLE.COM。
kerberos認証を利用する際のsmb.confにおいてnetbios nameはどのような設定を行うか
DNSホスト名
NFSv3サーバ上で動作する基本的なデーモンを述べよ
portmapdもしくはrpcbinddを起動した上でmountdとnfsdとstatdを起動する
NFSv4サーバ上で動作する基本的なデーモンを述べよ
portmapdもしくはrpcbinddを起動した上でnfsdとidmapdを起動する
NFSv4におけるidmapdはNFSv3ではmountdとnfsdが担っていたと捉えましょう。
NFSサーバexamserverで利用できるディレクトリを表示するコマンド
showmount -e examserver
-eはexportedの略称と理解しましょう。
/etc/exportsで擬似ルートを設定するためのパラメータ
fsid=0
例えば/var/nfs *(ro,fsid=0)のように設定します。
全ユーザがゲストアカウントによりパスワードなしでプリンタを共有する設定
- security = share(パスワードだけの認証)
- guest ok = yes
ネットワーククライアント管理
eth0で172.17.0.1にDHCPリレーする設定
dhcreleay -i eth0 172.17.0.1
dhcとcが入る点に注意してください。clientのcです。
RAとRSを説明せよ
- RS:クライアント→ルータのルータ要請
- RA:ルータ→クライアントのルータ通知
PAMで失敗したらすぐに認証を拒否するコントロール
requisite
LDIFの識別名
dn(distinguished name)
OpenLDAPのサーバデーモンの設定ファイル
/etc/openldap/slapd.conf
LDAPの情報をローカルでキャッシュするサービス,およびそれを参照するような設定
/etc/nsswitch.confにsssを記述する
SSSD(System Security Service Daemon)の略称です。
pam_security.soが参照するファイル
/etc/securetty
rootとしてログイン可能な端末名を記載したファイルです。
DHCPはLDAP情報とNIS情報を提供するか
LDAPは提供せず,NISは提供する
DHCPサーバの設定でDNSサーバを設定するのはdomain-name-serversとdns-serversのどちらか
domain-name-servers
DHCPサーバの設定でデフォルトゲートウェイを設定するのはroutersとgatewaysのどちらか
routers
LDAPのエントリーでルートは左側か右側か
右側
exampl.comの場合はこのままdn: uid=lpic, ou=People, dc=example, dc=comのようにします。
slapaddはslapd(サーバプロセス)を経由するか
経由しない
slapcatはslapd(サーバプロセス)を経由するか
経由しない
slapdでログファイルを指定するディレクティブ
logfile
LDAPデータベースはどこに置かれるか
/var/lib/ldap
olcSuffixとolcRootDnを説明せよ
- olcSuffix:管理するディレクトリのルートDN
- olcRootDn:管理者アカウント
olcはOnline Configurationの略称です。システムに合わせて設定します。
OpenLDAPにxmlやtextは使えるか
使えない
pam.confとpam.dが共存した場合どうなるか
pam.confが無視される
pam_access.soはホストからのアクセス制御を行うか
行わない。ログインユーザの制御を行う。
PAMでユーザのログインを記録するタイプ
session
accountではないため注意してください。
pam_unix.soとpam_ldap.soについて説明せよ
unixはローカル認証なので,LDAPで完結させたい場合はpam_ldap.soのみを利用すればよい
メールサービス
postfixの設定を表示するコマンド
postconf
postfix flushは何を行うコマンドか
キューを全て再送信する。postqueue -fと同じ。全て削除するのはpostsuper -d ALLを利用する。
メールキューを表示するコマンド
- mailq
- postqueue -p
MDAの例を挙げよ
- procmail
- dovecot
最近はSieveを用いてプログラミングライクにフィルタリングを実装しています。
POP3のポート番号
110
POP3Sのポート番号
995
IMAPのポート番号
143
IMAPSのポート番号
993
ユーザーのホームディレクトリ直下にメールを保存する設定
- Postfixの場合:home_mailbox = Maildir/
- Dovecotの場合:mail_location = maildir:~/Maildir
dovecotで使用するプロトコルをIMAPとPOP3のみに設定する
protocols = imap pop3
postfixのデーモンの動作を記述するファイル
/etc/postfix/master.cf
postfixで最終の宛先として指定するパラメータ
mydestination = mylpic.com, mylinuc.com
mydestinationsと複数形にしないように注意してください。
mydestinationで指定した宛先以外の宛先を指定するパラメータ
relayhost
postfixでchrootしたい場合に編集する設定ファイル
/etc/postfix/master.cf
newaliases以外にエイリアスデータベースを更新するコマンド
postalias {更新対象のデータベース}
RBLが利用するプロトコル
DNS
RBLはRealtime Blackhole Listの略称で,スパムメールやウィルスメールの発信元IPをレコードとして登録したリストのことを指します。
dovecotでユーザの認証方式を指定する記述
- mechanisms(v1.x)
- auth_mechanisms(v2.x)
Sieveのコマンドとして格納/破棄/転送/他のメールボックスに格納を表すアクション
- 格納:keep
- 破棄:discard
- 転送:redirect
- 他のメールボックスに格納:fileinto
dropやtransferというアクションは存在しないため注意してください。
システムセキュリティ
iptablesにおけるパケットフィルタリングはsyslogやrsyslogに依存するか
依存する。あくまでもカーネルの機能であるため。
IPv6に対するiptablesコマンド
ip6tables
Linuxで動作するルーティングソフトウェア
Quagga
静的経路だけであればiptablesのみで動作します。
FTPのデータ転送と制御のポート番号
- データ転送:20
- データ制御:21
パケットスニファリングツール
Snort
非同期的に改ざんを検知するツール
Tripwire
Xmasスキャンを行う方法
nmap -sX example.com
XmasスキャンはTCPパケットのフラグ(FIN/PSH/URG)がすべてセットされており「クリスマスツリーのように点灯している」イメージに由来していると覚えましょう。
TCP wrapperの設定ファイルで指定したコマンドを実行するためのオプション
spawn
/etc/hosts.allowや/etc/hosts.denyで利用されます。
インストールされているパッケージの改ざんをチェックするコマンド
rpm -Va
主なテーブルとデフォルトチェインを述べよ
- filter:INPUT/OUTPUT/FORWARD
- nat:PREROUTING/POSTROUTING/OUTPUT
- mangle:filterのチェイン+natのチェイン
FTPでクライアント→サーバで転送するコマンド
STOR
FTPでサーバ→クライアントで転送するコマンド
RETR
retrieveの略称と覚えましょう。
id_rsaと~/.sshのパーミッション
- id_rsa:400
- ~/.ssh:700
Snortは開いているポートを調べられるか
調べられない。nmap/netstat/lsofなどを利用する。
tcpdumpは開いているポートを調べられるか
調べられない。nmap/netstat/lsofなどを利用する。
OpenVPNの設定ファイルで接続中のクライアントを/var/log/openvpn-status.logに出力する設定
status /var/log/openvpn-status.log
iptablesが操作するカーネルモジュール
netfilter
設定されたフィルタリングルールを表示するコマンド
iptables -L
route -nでリンクローカルアドレスは表示されるか
表示される
/var/ftpの適切なパーミッション
-wx --- ---
readは他のユーザから知られないために付与させません。
vsftpdで匿名ユーザを利用するための設定
anonymous_enable=YES
デフォルトで/var/ftpにchrootします。ルートディレクトリを変更したい場合はanon_root=/var/ftp/pubのようにします。
/var/ftp配下に共有ライブラリをコピーする方針はあり得るか
chrootしていたとしてもあり得ない。FTPはあくまでもアップロードのためのコマンドなので,仮に共有ライブラリが見つからない場合はchrootしていない場合と同様にld.so.confを編集してldconfigコマンドを実行する。
OpenSSHでログイン時のパスフレーズ入力を省略する方法
- ssh-agentの利用
- キーペア作成時にパスフレーズを入力しない
- サーバ側にknown_hostsと.shostsを設定
.shostsは.rhostsでもOKです。この設定はホストベース認証と呼ばれています。
SSHのホストベース認証を無効化する設定
IgnoreRhosts yes
sshの-Lと-R
- -L:ローカルからリモートへポート転送
- -R:リモートからローカルへポート転送
OpenSSHでX11のポートフォワーディングを許可するディレクティブ
X11Forwarding yes
root権限が不要なTCPポートスキャンを行う
nmap -sT {ホスト名}
TCP connect scanです。
OpenVPNでクライアント同士を接続可能にするオプション
client-to-client
問題演習で引っかかったポイント
Sambaサーバに接続されているクライアントと開いているファイルを表示するコマンド
smbstatus
/etc/exportsのホストは何で区切るか
半角スペース。/home/user 192.168.1.100(rw,no_root_squash)のように。
filesrvの/pubを/mnt/nfs/pubにハードマウントして割り込みを許可するコマンド
mount -t nfs -o hard,intr filesrv:/pub /mnt/nfs/pub
dhcpdのデフォルトゲートウェイの設定
option routers 192.168.0.254;
ログインに関するPAMの設定
/etc/pam.d/login
slapd.confでディレクトリ管理者のDNを設定
rootdn "cn=Manager,dc=lpic,dc=jp"
右側の方がDIT(Directory Information Tree)の根本に近いです。
LAPデータベースの内容をLDIF形式で出力
slapcat > ldapdb.ldif
iptablesで記録するログメッセージにヘッダを追加する
iptables -A MYFILTER -j LOG --log-prefix "Reject: "
nmapのOオプション
OSの種類を調べる
/etc/openvpn/server.confで「ca keys/ca.crt」と記述されている際のca.crtの絶対パス
/etc/openvpn/keys/ca.crt
mod_authz_coreにpath/methodは含まれるか
- path:含まれない
- method:含まれる
IgnoreRhosts yesとは
ユーザーが特定のホストから接続している場合にそのホストが信頼できると見なして認証を通す仕組みをIgnoreするための設定
Sambaの設定においてプリンタドライバを配置しておくべき共有の名前
print$
OpenVPNにおいてクライアント側で使用するポートを動的に決定するよう設定するパラメータ
nobind
LDAPの既存のエントリの更新を行うchangetype
modify
OpenLDAPの木構造においてルートにあたる要素の名前
config(ルート要素のcn)
LDAPエントリのパスワード変更を行うコマンド
ldappasswd
ゾーンファイルの構文や内容を検証するために使用されるコマンド
named-checkzone
テキスト形式のゾーンファイルをBINDの内部で使用できるバイナリ形式にコンパイルするコマンド
named-compilezone
named-checkzoneと同様に構文チェックもしてくれます。
BINDの設定におけるゾーンファイルの形式
masterfile-format
AuthUserFileを説明せよ
基本認証(mod_auth_basic)で使用されるユーザー名とパスワードの情報を格納するファイルのパスを指定する。
<Directory /var/www/html/secure>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
証明書発行業務を行うためのスクリプト
CA.pl(plはperlスクリプトの拡張子)
LinuxシステムをWindowsドメインに参加させて認証やアクセス制御を行う
winbindd
NetBIOS名の解決を行うコマンド
nmblookup
ADドメインサービスの管理を行うコマンド
samba-tool
RPCを使うシステム間でサービスがどのポート番号を利用しているか通知するサービス
portmapper
IPv6ネットワークにおいてRAを送信するデーモン
radvd
Router Advertisement Daemonの略称です。
FTPサーバを挙げよ
- ProFTPD
- vsftpd(very secure FTPDと覚える)
- Pure-FTPD
OpenVPNのポート番号
UDP/1194
rndc dumpdb {ファイル名}は正しいか
正しくない。出力先ファイルはname.confのdump-fileパラメータで指定する。
nginxでfastcgiにプロキシするディレクティブ
fastcgi_pass
fastcgi_proxyではない点に注意してください。
NFSで/homeの読み取り書き込み許可を与える
exportfs -o rw *:/home
LDAPのouとは
組織単位
管理者権限でLDAPデータベースにアクセスする方法
slapd.confにrootdnとrootpwを記述してslapdを再起動し,ログインする
LDIFファイルで設定を変更することを明示するもの
changetype: modify
Postfixで送信元アドレスの書き換えを行う
main.cfの中でsender_canonical_mapsを利用する
doveadmでユーザ名やクライアントIPが表示されるサブコマンド
who
sshd_configで特定のユーザにログインを許可する設定
AllowUsers
vsftpdで匿名ユーザのユーザ名
- anonymous
- ftp
ルートディレクトリを変更するanon_root=/var/ftp/pubのanonと混同しないように。
vsftpdで匿名ユーザの実行ユーザ
ftp
OpenVPNでクライアント同士を通信可能にするにはどこで何を設定すればよいか
サーバの設定ファイル(/etc/openvpn/server.confなど)でclient-to-clientを設定する。
クライアント側で設定する訳ではないため十分注意してください。
覚えるべきディレクトリ・ファイル
リゾルバが問い合わせ先のDNSサーバを指定する
/etc/resolv.conf
DHCPサーバの設定ファイル
/etc/dhcp.conf
DHCPのリース情報を記録するファイル
/var/lib/dhcp/dhcpd.leases
dhcpdとdが入る点に注意してください。
postfixとsendmailのメールキューの場所
- /var/spool/postfix
- /var/spool/mqueue
IPv4をIPv6でルータとして動作させるための一時的な設定ファイル
- /proc/sys/net/ipv4/ip_forward
- /proc/sys/net/ipv6/conf/all/forwarding
FTPでログインを許可しないユーザ一覧
/etc/ftpusers
「ログインできない」ユーザである点に十分注意してください。
sshdの設定ファイル
/etc/ssh/sshd_config
OpenVPNサーバの設定ファイル
/etc/openvpn/server.conf
Postfixで配送の基本動作を設定するファイル
/etc/postfix/main.cf
postfix.confというファイルは存在しません。
namedの作業ディレクトリ
/var/named/
PAMモジュールを置く場所
/lib/security
/etc/pam.d/securityではないため注意です。
squidの設定ファイル
/etc/squid/squid.conf
nginxも/etc/nginx/eginx.confにメイン設定ファイルを置いて,/etc/nginx/conf.dに詳細の設定ファイルを置きます。
コメント