LPIC 201 ネットワーク関連
ネットワーク系コマンド
●arp -i(nterface) -a(ホスト名表示) -d(ホスト名削除) -n(逆引きしない)
MACとIPの解決 ブロードキャストを使う
arp -f ファイル ←ファイルの内容をキャッシュに追加(デフォルト/etc/ethers)
(ip neigh show)でも確認できる
●ifconfig
IPv6 ⇒ ifconfig eth0 inet6 add(del)
●ip オプション 操作対象 コマンド デバイス
-s(tatus) -r(esolve?名前解決して表示) -f inet/inet6(プロトコルファミリを指定)
link、addr、route、neigh
show、add
ip addr show eth0 や ip -s link show eth0
無線
WEP ⇒ RC4 古い
WPA ⇒ いくつかの技術の組み合わせ TKIPやAES
iwconfig essid key
iwlist
iwspy
●ping -b(roadcast) →DUP! 重複した回答 基本はブロードキャストあては不可
net.ipv4.icmp_echo_ignore_broadcast=
●route (表示) -n() -F(カーネルのテーブル) -C(カーネルのキャッシュ)
⇒ルーティング表示と設定
route add(del) -host(-net) IPアドレス
route add default gw IPアドレス デフォルトゲートウェイ用
●nmap スキャンタイプ オプション 対象
⇒ネットワークの調査やポートスキャン
スキャンタイプ ⇒ -sT(,U,P)それぞれTCP,UDP,Pingのスキャン
オプション ⇒ -p(ort) -F(有名ポート) -O(OS識別)
⇒様々な情報
-n(※ポートも数字で) -a(ll) -c(毎秒) -i(統計) -r(oute) -l(isten)
●tcpdump host(port) tcp(udp,icmp,arp) src(dst)
⇒パケットキャプチャ
-i(nterface) -n() -X(16進数とASCII形式の表で出力)
●nslookup
マルチホーム接続 ⇒ 1つのホスト名に複数のIP
●hostname -f(QDN) -d(omein) -i(p) -a(lias)
ネットワーク関連ファイル
/etc/hostsファイル (IPアドレスとホスト名の名前解決用)
IPアドレス ホスト名 [ホスト名…]
/etc/networksファイル (nwアドレスとネットワーク名の名前解決用)
ネットワーク名 nwアドレス
ネットワーク全体の設定ファイル
RHEL ⇒ /etc/sysconfig/network (NETWORKING=や_IPV6=、HOSTNAME=等)
Debian ⇒ /etc/network/interfaces ()
/etc/hostname
/etc/nsswitch.conf
ホスト名以外にもパスワードなど、名前解決の方法及び優先順位を設定するファイル
passwd: db files nisplus nis
hosts: files dns など
TCPラッパー
/etc/hosts.allow
/etc/hosts.deny
サービス名:ホスト名(IP):ALLOW(DENY)
※DENYが使えるのでhosts.allowだけでも問題なし
IP指定方法は192.168.10. や192.168.10.0/255.255.255.0
LPIC 201 カーネル関連 その2
カーネルパラメータの設定(sysctlや/proc/sys/について)
sysctl パラメータ または sysctl -a ←表示するだけ
↓一時的な変更↓
sysctl -w パラメータ=値 ←更新する
※sysctl -p ファイルから読み込む
/proc/sys/以下
kernel/ctrl-alt-delなど
→→ sysctl kernel.ctrl-alt-delみたいに、/を.に変えて指定する。
直接/proc/sys/以下のファイルをviで書き換えてもOK
↓恒久的な変更↓
/etc/sysctl.confに書き込む
usbの情報
/proc/bus/usb/devices
udevについて
デバイスファイルをカーネルが自動的に作成してくれる仕組み(udevdがsysfsと協力)
/etc/udev/rules.d/~ 設定ファイル
modprobe --show-depends 依存関係を調べる
LPIC 201 ストレージ関連
RAID
mdadm -C(--create)⇒-l(--level) -n(--raid-devices=) -x(--spare-devices=) --manege⇒-a -r -f(--fail) --misc -Q(--query) -D(--detail) -S(--stop)
/proc/mdstat
LVM
lvcreate -s(napshot) -L(サイズ) -n(ame)
mount /dev/vg1/lv1 /home ← こうなる
その他デバイス関連
scsi_id → WWIDを調べる(/proc/scsi/scsi)
LUN(Logical Unit Name)
サーバから1台のHDDと認識される、記憶装置を識別するための論理的な単位
iscsiadm ターゲット(サーバ)とイニシエータ(クライアント)
iscsiadm -m discovery -p 192.168.1.1 -t sendtargets
fstabには起動時マウントするため_netdevオプションを入れる
iscsiデーモンがいて、自動ログインを管理する(iscsid.confにnode.startup automaticの場合自動ログイン)
hdparm -d(dmaモードオンオフ) -c(32ビットオンオフ) -i(情報) -tT(timing 速さ計測大文字はキャッシュ)
PIOはProgrammed Input/Output ⇒ホストCPUで
DMA は(Direct Memory Access) ⇒コントローラ使用
LPIC 201 ファイルシステム関連
fstabについて
/etc/fstabの中身
デバイス名 マウント場所 タイプ オプション dump(バック) fsckチェック順
dump ⇒ 1でバックアップ対象 0で対象外
fsckチェック ⇒ 0で対象外 1~ 順番にチェック
※shutdown -r -F now ←-Fで起動時にチェック
マウントオプション
default ⇒ rw,suid,dev,exec,auto,nouser,async
user(nouser) 一般ユーザーでのマウント可否 ※users mount者以外でもumount可
auto(noauto) mount -a実行時のマウント有無
async(sync) そのファイルシステムI/Oの非同期
exec(noexec) バイナリの実行ファイルを実行可否
ro(rw) リードオンリー(リードライト)
suid(nosuid) すてぃっきービットの可否
atime(noatime) inodeのアクセス時刻更新有無(ファイルシステムへのアクセス毎)
uid=~ マウントしたファイルシステム上のファイル所有者を指定
mount デバイス マウント先 (umount デバイスorマウント先 ←片方)
引数なしで/etc/mtabや/proc/mountsと同じ内容表示
片方だけの引数⇒fstabを参考に自動でマウント(デバイス・マウント先・タイプ)
mount -a(ll noauto以外) -t(ype) -o(ption 上記オプション)
umount -a(ll mtab) -t(ype)
fuser コマンド⇒ 使用中のプロセス確認
ファイルシステムの種類
ext2・3 linux最標準(3はジャーナリング機能あり)
ext4 RHEL6 1EiB(大容量)サポート
xfs RHEL7 (シリコングラフィックス社作成)
btrfs スナップショットが取れる新しい(b-tree)
iso9660 CD/DVDなど
nfs ネットワーク越しでマウントできる
ntfs 最近のwindows
tmpfs メモリ上に展開 一時的で消えちゃう
sync メモリのディスクバッファにある内容をディスクに書き込む
※最近のumountやshutdownはコマンド内部でsyncを行っている
/lost+found ディレクトリ ⇒ fsckで認識できなくなったファイル保管場所
swapについて
dd if=入力ファイル of=出力ファイル名 その他ブロック数などbs= count=
※/dev/zero ⇒ null文字がいっぱいのファイル
/dev/urandam ⇒ 疑似乱数
dd if=/dev/zero of=/tmp/swapfile bs=1M count=2048 完全に消すときは上書きで
mkswap
swapon
swapon -s(表示)もしくはcat /proc/swaps
swapoff
S.M.A.R.T.(Self-Monitoring Analysis and Reporting Technology)について
ハードディスクの自己診断機能
smartctl -a(ll) -t(est self) -l(og type) -H(ealth) コマンドで情報を表示
オートマウントについて(CD/DVDなど)
普段はアンマウント ⇒ アクセスがあったときにマウント開始
automountデーモン(サービス名autofs)
・/etc/auto.master 設定ファイル ※設定変更後autofsの再起動が必要
マウントベース マップファイル オプション
/mnt/auto /etc/cdrom --timeout=60
・/etc/auto.~ 各マップファイル
マウントベース下ディレクトリ マウントオプション デバイスファイル名
cdrom -fstype=iso9660,ro :/dev/cdrom
⇒/mnt/auto/cdromというディレクトリがマウントポイントになる
(masterとマップファイルの1カラム目のディレクトリが自動作成される)
ファイルシステムの管理
ext2/ext3の構造 ブロックグループ(データb、iノードb、すーばーb)ext系はinodeに限りがある
iノードb ⇒ メタデータ(ファイルタイプやアクセス権など128byte)
スーバーb ⇒ ファイルシステム系の情報(データブロックサイズ、マウント回数など)大事なので自動でバックアップあり
mke2fs -n ⇒確認のみ
mke2fsコマンド(mkfs.ext2,3,4,xfs,reiserfs,vfat,minix、mkisofs)-j -b(lock) -m(root予備) -L(abel) -t(ype) -n(確認のみ) ⇒mkisofs -R →RockRidge形式 -J →joliet形式
e2fsckコマンド(fsck.ext2,3,4、xfs_check、fsck.xfs) -c(heck) -b(lock 指定のブロックを使用し修復) -p(自動修復)
tune2fsコマンド -jでext2⇒ext3へ変更できる
dumpe2fs (tune2fs -lと同じ?)
resize2fs (lvでextendした時など)
badblock (e2fsck -c)
cdrecord → CDに書き込める
xfs関連
xfs_admin 設定(tune相当)
xfs_info 情報表示(dump相当)
xfs_check チェック(fsck相当)
xfsdump(xfsrestore) バックアップ(リストア)
暗号化ファイルシステム Linux標準
LUKS(Linux Unified Key Setup)
cryptsetup-luks
cryptsetup create(remove)
LPIC 201 起動関連
はじめてのsystemdサービス管理ガイド | Developers.IO
BIOS →MBRのブートローダ → 2つ目のブートローダ → カーネル → init
ブートローダについて
GRUB Legacy ステージ 1(MBRにある) → 1.5(ステージ2までのつなぎ) → 2(本体 /boot/grub/stage2)
設定ファイルは/boot/grub/menu.lst
grubコマンドでいろいろできる インストールだけならgrub-install /dev/sdaでも
GRUB 2
設定ファイルは/boot/grub/grub.cfg (←直接編集はしない)
/etc/default/grubで設定し、update-grubコマンドでcfgを作成
2つの違い
GRUB Legacy
GRUB 2
起動時、カーネル選択画面(hiddenmenuをコメントアウトする必要あり)でeキーを押すとgrubモードになり、オプションを選択したり(さらにe)、grubシェル(c)が使える
起動オプションの設定
起動後に確認 ⇒ /proc/cmdline
inittabの設定
inittabの書式 x:5:respawn:/etc/X11/prefdm -nodaemon
ID:ランレベル:アクション指示子:処理
アクション指示子
[nyakka@localhost ~]$ cat /etc/inittab
#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
[nyakka@localhost ~]$
/etc/rc[0-6].d/の中にS03sysstatとかK02NetworkManagerとかがいて、そいつらが各ランレベルでの起動時に起動(S)終了(K)するプロセスになっている
(実は/etc/init.d/~の起動スクリプトへのシンボリックリンクになってるだけ)
自動起動の設定には、上述のように手動でシンボリックリンクのファイルを作るか、chkconfigやupdate-rc.dコマンドを使う
最近はupstartを使っている場合が多く、initctlというコマンドでジョブを管理する
RHEL6→RHEL7で変更された主要コマンドまとめ — | サイオスOSS | サイオステクノロジー
その他のブートローダ
SYSLINUX USBやCDからブート EXTLINUXやPXELINUXなど
PXELINUX ネットワークブート DHCPとTFTPを用いて起動
LPIC 201 カーネル関連 その1
linuxカーネル 再構築の流れ
- 現在のバージョンの確認 → uname -r か cat /proc/version
- カーネルsourceのダウンロード → https://www.kernel.org/
- /usr/src配下に展開する。
- カーネルコンフィグの設定
- カーネルのコンパイル
- カーネルコンフィグのコンパイル
- カーネルとモジュールの配置
- 初期RAMディスク作成
- ブートローダの設定変更
- リブート
1は説明省略
2について
コマンドではwget https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.14.74.tar.gzとかでもって来る(-oで保存先指定?)
置き場所は/usr/src/
3について
tar zxvf (オプション→.gz解凍、取り出し、詳細表示、ファイル名指定) tarボール名
で解凍、展開する
→linux ディレクトリにシンボリックリンク ln -s linux-ver linux
4について
make config(menuconfig、xconfig、gconfig)でコンフィグの設定をする
→ncursesとncurses-develが入っていない場合、yumで入れる必要あり(デビアンはlibncurses5-dev?)
もしくはmake oldconfigをする
Y,M,N (イエスかローダブルモジュールかノー)
カーパラは
Makefile(makeコマンドの動作を設定するファイル)の先頭、EXSTRAVERSIONにtestとか入れて2.6.20.testみたいにする
5,6について
make (カーネルとモジュール両方いっぺんにコンパイル)もしくはmake all
7,8,9について
make module_install
make install
でカーネルの移動(コピー)&リネームvmlinuz-、初期RAMディスク作成、ブートローダの設定ファイルにエントリ追加を自動でできる
手動でやる場合は以下の流れ
System.mapと/arch/アーキテクチャ/bootにあるbzimageをvmlinuz-バージョンという名前で/bootにコピー
vmlinuzとSystem.mapという名前のシンボリックリンクを作成
初期RAM作成 ファイルをマウントして、HDDのファイルシステムをマウントする準備
mkinitrd ファイル名 バージョン
mkinitramfs -o ファイル名 バージョン
/boot/grub/menu.lst (grub Legacy) にエントリを追加する
ビルド化やパッケージ化などmake につけるターゲット多し
(hd0)と/dev/sdaマッチング→device.map