LPIC 201 ネットワーク関連

ネットワーク系コマンド

arp -i(nterface) -a(ホスト名表示) -d(ホスト名削除) -n(逆引きしない)

 MACとIPの解決 ブロードキャストを使う

 arp -s IP MAC ←キャッシュに追加

 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識別)

 

netstat

 ⇒様々な情報

 -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)

ネットワーク関連ファイル

f:id:nakka-yuzu:20160814215521p:plain

 

/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でext2ext3へ変更できる

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

BIOSMBRブートローダ → 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

f:id:nakka-yuzu:20160807183138p:plain

GRUB 2

f:id:nakka-yuzu:20160807183131p:plain

 GRUB 2の/etc/default/grub

 

 

 

 起動時、カーネル選択画面(hiddenmenuをコメントアウトする必要あり)でeキーを押すとgrubモードになり、オプションを選択したり(さらにe)、grubシェル(c)が使える

起動オプションの設定

f:id:nakka-yuzu:20160807174441p:plain

 起動後に確認 ⇒ /proc/cmdline

 

inittabの設定

inittabの書式 x:5:respawn:/etc/X11/prefdm -nodaemon

ID:ランレベル:アクション指示子:処理

アクション指示子 

f:id:nakka-yuzu:20160804233848p:plain

 

 

[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というコマンドでジョブを管理する

 

f:id:nakka-yuzu:20170414065627j:plain

 

f:id:nakka-yuzu:20170414065639j:plain

RHEL6→RHEL7で変更された主要コマンドまとめ — | サイオスOSS | サイオステクノロジー

 

その他のブートローダ

LILO     古いやつ liloコマンドでインストール

SYSLINUX  USBやCDからブート EXTLINUXやPXELINUXなど

 PXELINUX  ネットワークブート DHCPとTFTPを用いて起動

 

LPIC 201 カーネル関連 その1

linuxカーネル 再構築の流れ

  1. 現在のバージョンの確認 → uname -r か cat /proc/version
  2. カーネルsourceのダウンロード → https://www.kernel.org/
  3. /usr/src配下に展開する。
  4. カーネルコンフィグの設定
  5. カーネルコンパイル
  6. カーネルコンフィグのコンパイル
  7. カーネルとモジュールの配置
  8. 初期RAMディスク作成
  9. ブートローダの設定変更
  10. リブート

 

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