VMware で Tera Term を使用したシリアルコンソール接続

1.VMware 側の設定

仮想マシン設定」で「シリアルポート」を「名前付きパイプに出力」の以下の設定で追加する。

「\\.\pipe\com_1」★Tera Term の接続で使用する
「この端末はサーバです」
「接続先はアプリケーションです」

2.RHEL 側の設定

/boot/grub/grub.conf に以下の設定を追加して、OS を再起動

console=tty0 console=ttyS0,115200n8


3.Tera Term による接続

「ホスト(T:)」に「\\.\pipe\com_1」を入力して「OK」を押下。

参考情報
http://www.ajisaba.net/linux/serial_console.html
http://ttssh2.sourceforge.jp/manual/ja/usage/tips/namedpipe.html

RHEL7 の色々

1.ランレベル
デフォルトのランレベル (ランレベルという概念はなくなったらしいが) を確認する。

# systemctl get-default
multi-user.target


上記のコマンドの結果とランレベルの紐付けは以下の情報を参照。

# ls -l /lib/systemd/system/runlevel*target
lrwxrwxrwx. 1 root root 15  9月 11  2014 /lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13  9月 11  2014 /lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17  9月 11  2014 /lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17  9月 11  2014 /lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17  9月 11  2014 /lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16  9月 11  2014 /lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13  9月 11  2014 /lib/systemd/system/runlevel6.target -> reboot.target
#
# ls -l /usr/lib/systemd/system/default.target
lrwxrwxrwx. 1 root root 16  9月 11  2014 /usr/lib/systemd/system/default.target -> graphical.target


デフォルトのランレベルの変更手順は以下となる。
OS を再起動すると以下の状態で起動する。

# systemctl get-default
multi-user.target
#
# systemctl set-default graphical.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'
#
# systemctl get-default
graphical.target


再起動なしでランレベルを変更するには以下の手順となる。

# runlevel
N 5
#
# systemctl isolate multi-user.target
#
# runlevel
5 3

参考情報
http://thinkit.co.jp/story/2014/12/11/5388


2.NIC の設定

まずは、現在の接続とデバイスの状態を確認。

# nmcli c s
名前    UUID                                  タイプ          デバイス
test01  99c13513-9423-4d09-89a2-1773fd7c6ab6  802-3-ethernet  eno33554984
#
# nmcli d s
デバイス     タイプ    状態      接続
eno33554984  ethernet  接続済み  test01
eno16777736  ethernet  切断済み  --
eno50332208  ethernet  切断済み  --
eno67109432  ethernet  切断済み  --
lo           loopback  管理無し  --


続いて、上記の「eno50332208」というデバイスを「eth0」という接続で追加。
※IP アドレスは 「192.168.110.127/24」で、ゲートウェイが「192.168.110.2」となる。
この場合、デフォルトゲートウェイが未設定の場合、この「192.168.110.2」が割り当てられる。

# nmcli con add type ethernet con-name eth0 ifname eno50332208 ip4 192.168.110.127/24 gw4 192.168.110.2
接続 'eth0' (82a1431d-6844-4a8b-bc99-98e790960fbe) が正常に追加されました。
#
# nmcli c s
名前    UUID                                  タイプ          デバイス
test01  99c13513-9423-4d09-89a2-1773fd7c6ab6  802-3-ethernet  eno33554984
eth0    82a1431d-6844-4a8b-bc99-98e790960fbe  802-3-ethernet  eno50332208
#
#  nmcli d s
デバイス     タイプ    状態      接続
eno33554984  ethernet  接続済み  test01
eno50332208  ethernet  接続済み  eth0
eno16777736  ethernet  切断済み  --
eno67109432  ethernet  切断済み  --
lo           loopback  管理無し  --


デバイスの情報を表示。

# nmcli device show eno50332208
libudev: udev_device_new_from_syspath: device 0x7f7784057030 has devpath '/devices/pci0000:00/0000:00:11.0/0000:02:06.0/net/eno50332208'
libudev: udev_device_read_db: device 0x7f7784057030 filled with db file data
libudev: udev_device_new_from_syspath: device 0x7f778405a490 has devpath '/devices/pci0000:00/0000:00:11.0/0000:02:06.0'
libudev: udev_device_read_db: device 0x7f778405a490 filled with db file data
libudev: udev_device_new_from_syspath: device 0x7f778405adb0 has devpath '/devices/pci0000:00/0000:00:11.0'
libudev: udev_device_read_db: device 0x7f778405adb0 filled with db file data
libudev: udev_device_new_from_syspath: device 0x7f778405c120 has devpath '/devices/pci0000:00'
libudev: udev_device_new_from_syspath: device 0x7f778405c120 has devpath '/devices/pci0000:00/0000:00:11.0/0000:02:06.0/net/eno50332208'
libudev: udev_device_read_db: device 0x7f778405c120 filled with db file data
libudev: udev_device_new_from_syspath: device 0x7f778405adb0 has devpath '/devices/pci0000:00/0000:00:11.0/0000:02:06.0'
libudev: udev_device_read_db: device 0x7f778405adb0 filled with db file data
libudev: udev_device_new_from_syspath: device 0x7f7784057030 has devpath '/devices/pci0000:00/0000:00:11.0'
libudev: udev_device_read_db: device 0x7f7784057030 filled with db file data
libudev: udev_device_new_from_syspath: device 0x7f778405a490 has devpath '/devices/pci0000:00'
GENERAL.デバイス:                       eno50332208
GENERAL.タイプ:                         ethernet
GENERAL.HWADDR:                         00:0C:29:73:63:48
GENERAL.MTU:                            1500
GENERAL.状態:                           100 (接続済み)
GENERAL.接続:                           eth0
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/ActiveConnection/22
WIRED-PROPERTIES.キャリア:              オン
IP4.アドレス[1]:                        ip = 192.168.110.127/24, gw = 192.168.110.2
IP6.アドレス[1]:                        ip = fe80::20c:29ff:fe73:6348/64, gw = ::


デバイスの情報 (特定のフィールドのみ) を表示。

# nmcli --fields IP4 device show eno50332208
IP4.アドレス[1]:                        ip = 192.168.110.127/24, gw = 192.168.110.2


接続の情報を表示。

# nmcli c s eth0
connection.id:                          eth0
connection.uuid:                        82a1431d-6844-4a8b-bc99-98e790960fbe
connection.interface-name:              eno50332208
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.timestamp:                   1439647093
connection.read-only:                   no
connection.permissions:
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.secondaries:
connection.gateway-ping-timeout:        0
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:
ipv4.method:                            manual
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:                         { ip = 192.168.110.127/24, gw = 192.168.110.2 }
ipv4.routes:
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv6.method:                            auto
ipv6.dns:
ipv6.dns-search:
ipv6.addresses:
ipv6.routes:
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (不明)
ipv6.dhcp-hostname:                     --
GENERAL.名前:                           eth0
GENERAL.UUID:                           82a1431d-6844-4a8b-bc99-98e790960fbe
GENERAL.デバイス:                       eno50332208
GENERAL.状態:                           アクティベート済み
GENERAL.デフォルト:                     はい
GENERAL.デフォルト6:                    いいえ
GENERAL.VPN:                            いいえ
GENERAL.ゾーン:                         --
GENERAL.DBUS パス:                      /org/freedesktop/NetworkManager/ActiveConnection/22
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/Settings/23
GENERAL.スペックオブジェクト:           --
GENERAL.マスターパス:                   --
IP4.アドレス[1]:                        ip = 192.168.110.127/24, gw = 192.168.110.2
IP6.アドレス[1]:                        ip = fe80::20c:29ff:fe73:6348/64, gw = ::


接続の情報 (特定のフィールドのみ) を表示。

# nmcli --fields ipv4 connection show eth0
ipv4.method:                            manual
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:                         { ip = 192.168.110.127/24, gw = 192.168.110.2 }
ipv4.routes:
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes


接続の停止と起動。

# nmcli c show
名前    UUID                                  タイプ          デバイス
eth0    8c94448c-a235-40b3-9526-3a29f1e627c2  802-3-ethernet  eno50332208
test01  cbead119-159c-4b0f-84a5-9bd168cfe338  802-3-ethernet  eno16777736
#
# nmcli con down eth0
#
# nmcli c show
名前    UUID                                  タイプ          デバイス
eth0    8c94448c-a235-40b3-9526-3a29f1e627c2  802-3-ethernet  --
test01  cbead119-159c-4b0f-84a5-9bd168cfe338  802-3-ethernet  eno16777736
#
# nmcli con up eth0
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/5)
#
# nmcli c show
名前    UUID                                  タイプ          デバイス
eth0    8c94448c-a235-40b3-9526-3a29f1e627c2  802-3-ethernet  eno50332208
test01  cbead119-159c-4b0f-84a5-9bd168cfe338  802-3-ethernet  eno16777736


デフォルトゲートウェイの追加と削除

# ip r
default via 192.168.110.2 dev eno50332208  proto static  metric 1024
192.168.16.0/24 dev eno16777736  proto kernel  scope link  src 192.168.16.131
192.168.110.0/24 dev eno50332208  proto kernel  scope link  src 192.168.110.127
#
# ip route del default via 192.168.110.2 dev eno50332208
#
# ip r
192.168.16.0/24 dev eno16777736  proto kernel  scope link  src 192.168.16.131
192.168.110.0/24 dev eno50332208  proto kernel  scope link  src 192.168.110.127
#
# ip route add default via 192.168.110.2 dev eno50332208
#
# ip r
default via 192.168.110.2 dev eno50332208
192.168.16.0/24 dev eno16777736  proto kernel  scope link  src 192.168.16.131
192.168.110.0/24 dev eno50332208  proto kernel  scope link  src 192.168.110.127


IP アドレスの変更

# nmcli --fields ipv4.addresses connection show eth0
ipv4.addresses:                         { ip = 192.168.110.127/24, gw = 0.0.0.0 }
#
# nmcli connection modify eth0 ipv4.addresses "192.168.110.128/24"
#
# nmcli --fields ipv4.addresses connection show eth0
ipv4.addresses:                         { ip = 192.168.110.128/24, gw = 0.0.0.0 }


参考情報
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Networking_Guide/index.html#sec-Static-Routes_and_the_Default_Gateway
http://enakai00.hatenablog.com/entry/20140712/1405139841
http://blog.yuryu.jp/2014/07/networkmanager-nmtui-nmcli.html
http://seesaawiki.jp/internetwiki/d/CentOS7/%A5%CD%A5%C3%A5%C8%A5%EF%A1%BC%A5%AF%C0%DF%C4%EA#content_1
http://thinkit.co.jp/author/271
http://thinkit.co.jp/story/2014/12/25/5412
http://www.school.ctc-g.co.jp/columns/nakai/nakai47.html
https://oss.sios.com/yorozu-blog/rhel6-rhel7change
https://oss.sios.com/yorozu-blog/oss-matome201508
https://oss.sios.com/redhat-ch
http://qiita.com/sion_cojp/items/115e1671fcbc8f214aee

audit による情報採取

1.特定のシステムコールの追跡

以下は、kill 関連の追跡の場合。

まずは、システムコール番号の確認を行う。
これがわからないと audit のログに記録されたシステムコールが何かわからない。

# ausyscall i386 kill
kill               37
tkill              238
tgkill             270
# ausyscall x86_64 kill
kill               62
tkill              200
tgkill             234

参考資料
http://qiita.com/h2suzuki/items/c2b0b51abb252155db2f

そして、以下のように、/etc/audit/audit.rules に追跡用のルールを設定する。

-a exit,always -F arch=b64 -S kill -k teste_kill
                                   ^^^^^^^^^^^^^★ログの検索用に設定

auditd を再起動して、以下のようにルールが設定されたことを確認する。

# auditctl -l
LIST_RULES: exit,always arch=3221225534 (0xc000003e) key=teste_kill syscall=kill

システムコールが発行されると以下のように記録される。

# ausearch -if /var/log/audit/audit.log -k teste_kill
----
time->Mon Mar 16 02:26:42 2015
type=OBJ_PID msg=audit(1426440402.942:284): opid=2193 oauid=0 ouid=0 oses=42 ocomm="tail"
type=SYSCALL msg=audit(1426440402.942:284): arch=c000003e syscall=62 success=yes exit=0 a0=891 a1=9 a2=0 a3=891 items=0 ppid=1516 pid=1518 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="bash" exe="/bin/bash" key="teste_kill"

上記のログから、以下の情報などが読み取れる。

arch=c000003e : 64 bit
syscall=62    : kill
a0=891        : 対象の PID が 2193
a1=9          : シグナル値が 9 から SIGKILL が発行

参考情報Security Guide


2.デバイスファイルへのアクセスの追跡

以下は、/dev/sdf への追跡の場合。

まずは、デバイスファイルのメジャー番号、マイナー番号を確認する。

# ll /dev/sdf
brw-rw---- 1 root disk 8, 80  3月 17 19:16 2015 /dev/sdf

上記の情報をもとにルールを設定する。

# auditctl -a exit,always -F arch=b64 -F devmajor=8 -F devminor=80 -S all -k teste_kill
# auditctl -l
LIST_RULES: exit,always arch=3221225534 (0xc000003e) devmajor=8 (0x8) devminor=80 (0x50) key=teste_kill syscall=all

以下は、/dev/sdf に ls した場合の出力。

# ausearch -if /var/log/audit/audit.log -k teste_kill
----
time->Tue Mar 17 20:35:28 2015
type=CONFIG_CHANGE msg=audit(1426592128.816:11926): auid=0 ses=19 op="add rule" key="teste_kill" list=4 res=1
----
time->Tue Mar 17 20:35:38 2015
type=PATH msg=audit(1426592138.127:11928): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50
type=CWD msg=audit(1426592138.127:11928):  cwd="/etc/audit"
type=SYSCALL msg=audit(1426592138.127:11928): arch=c000003e syscall=192 success=no exit=-95 a0=7fff9045890c a1=7f5d5c3a0319 a2=2390980 a3=ff items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill"
----
time->Tue Mar 17 20:35:38 2015
type=PATH msg=audit(1426592138.127:11927): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50
type=CWD msg=audit(1426592138.127:11927):  cwd="/etc/audit"
type=SYSCALL msg=audit(1426592138.127:11927): arch=c000003e syscall=6 success=yes exit=0 a0=7fff9045890c a1=238be80 a2=238be80 a3=7fff90457990 items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill"
----
time->Tue Mar 17 20:35:38 2015
type=PATH msg=audit(1426592138.127:11929): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50
type=CWD msg=audit(1426592138.127:11929):  cwd="/etc/audit"
type=SYSCALL msg=audit(1426592138.127:11929): arch=c000003e syscall=6 success=yes exit=0 a0=7fff9045890c a1=7fff90457b70 a2=7fff90457b70 a3=7fff90457900 items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill"
----
time->Tue Mar 17 20:35:38 2015
type=PATH msg=audit(1426592138.127:11930): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50
type=CWD msg=audit(1426592138.127:11930):  cwd="/etc/audit"
type=SYSCALL msg=audit(1426592138.127:11930): arch=c000003e syscall=192 success=no exit=-61 a0=7fff9045890c a1=7f5d5bd7bdb7 a2=0 a3=0 items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill"
----
time->Tue Mar 17 20:35:38 2015
type=PATH msg=audit(1426592138.127:11931): item=0 name="/dev/sdf" inode=6111 dev=00:05 mode=060660 ouid=0 ogid=6 rdev=08:50
type=CWD msg=audit(1426592138.127:11931):  cwd="/etc/audit"
type=SYSCALL msg=audit(1426592138.127:11931): arch=c000003e syscall=192 success=no exit=-61 a0=7fff9045890c a1=7f5d5bd7bd88 a2=0 a3=0 items=1 ppid=1476 pid=3195 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key="teste_kill"


参考資料
https://access.redhat.com/ja/solutions/786713
http://eng-manima.blogspot.jp/2014/10/linux-auditd.html

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Security_Guide/index.html#chap-system_auditing
http://www.secureos.jp/index.php?plugin=attach&refer=events%2Fjsosjk06&openfile=jsosjk06-linux-audit.pdf

http://www.usupi.org/sysad/222.html
https://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf
http://a4dosanddos.hatenablog.com/entry/2013/07/10/230710
https://www.suse.com/documentation/sled10/pdfdoc/auditqs_sp2/auditqs_sp2.pdf
http://people.redhat.com/sgrubb/audit/audit-parse.txt

date コマンド

翌日の日付 (時刻は 00:00) に設定する方法

# date -s "`date -d '1 days' '+%Y/%m/%d'`"

前日の日付 (時刻は 00:00) に設定する方法

# date -s "`date -d '1 days ago' '+%Y/%m/%d'`"

翌月の日付 (翌月の同日、時刻は 00:00) に設定する方法

# date -s "`date -d '1 months' '+%Y/%m/%d'`"

翌日の日付 (時刻は変更なし) に設定する方法

# date -s "`date -d '1 days' '+%m/%d %H:%M:%S %Y'`"

10 分後に設定する方法

# date -s "`date -d '10 minutes' '+%m/%d %H:%M:%S %Y'`"

10 分前に設定する方法

# date -s "`date -d '10 minutes ago' '+%m/%d %H:%M:%S %Y'`"

参考
http://qiita.com/na0AaooQ/items/af6b853faf32c58c21d3
http://linux.just4fun.biz/%E9%80%86%E5%BC%95%E3%81%8DUNIX%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/%E7%BF%8C%E6%97%A5%E3%81%AE%E6%97%A5%E4%BB%98%E3%82%92%E5%8F%96%E5%BE%97%E3%83%BBdate%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89.html

rndc 鍵 (rndc.key) の作成

rndc 鍵は rndc コマンドを実行するために必要となるが、RHEL6 では bind パッケージ導入後、サービスを起動しようとすると以下の rndc 鍵関連で停止する。

# service named start
Generating /etc/rndc.key:

この場合、手動で rndc.key を作成することで解決する。

以下が参考情報となる。
http://k4200.hatenablog.com/entry/20130304/1362379763


・rndc 鍵の作成方法

rndc-confgen コマンドを使用する。

# rndc-confgen -a -r /dev/urandom
wrote key file "/etc/rndc.key"

その後、サービスの起動は成功するが、その前に以下のコマンドで、/etc/rndc.key の属性の変更が必要。

# chmod 640 /etc/rndc.key
# chown root.named /etc/rndc.key

上記を実行していない場合、サービスの起動は成功するが、以下のメッセージが出力され rndc コマンドの実行に失敗する。

named[2411]: none:0: open: /etc/rndc.key: permission denied
named[2411]: couldn't add command channel 127.0.0.1#953: permission denied
named[2411]: none:0: open: /etc/rndc.key: permission denied
named[2411]: couldn't add command channel ::1#953: permission denied


rndc.key と類似のファイルで rndc.conf が存在する。
rndc.conf はリモートの bind サーバに対して、制御する際に使用されるものらしい。
以下が参考情報となる。

http://www.geocities.jp/yasasikukaitou/rndc.html
http://linux.kororo.jp/cont/server/bind_src.php
http://www.aconus.com/~oyaji/dns/bind_linux.htm