PVの特定位置にLVを作成する

 article  Comments Off on PVの特定位置にLVを作成する
Feb 012020
 

LVMでLogical Volume(LV)をアロケーションする際、Phisical Volume(PV)のPhisical Extent(PE)の位置を指定することができます。

Volume Group(VG)を構成する特定PVの最後のほうにLVをアロケーションすることも可能ということです。

現在のPE割り当て状態はpvdisplayの-m(マップ)オプションで確認することができます。

$ sudo pvdisplay -m /dev/nvme0n1p2
--- Physical volume ---
   PV Name               /dev/nvme0n1p2
   VG Name               vg_data
   PV Size               444.09 GiB / not usable 3.00 MiB
   Allocatable           yes 
   PE Size               4.00 MiB
   Total PE              113687
   Free PE               17431
   Allocated PE          96256
   PV UUID               vu3SHx-qCaA-MN48-NXZT-yH1A-uA3t-rc0UcO

--- Physical Segments ---
   Physical extent 0 to 65535:
     Logical volume    /dev/vg_data/lv_root
     Logical extents    0 to 65535
  Physical extent 65536 to 113686:
     FREE

$

上によるとPEの65536から113686まで空いていることになります。

LV作成時にPVの最後にPE開始位置と終了位置を設定することで特定の場所に作成することができるようになります。

上記PV空き領域の中の末尾に40GiBのLVを作成する場合は、以下のように指定することになります。Extent開始位置は末尾から逆算して算出します。

$ sudo lvcreate -L40G -n lv_test vg_data /dev/nvme0n1p2:103447-113686
  Logical volume "lv_test" created.
$

作成できました。pvdisplayで確認すると、PEの途中にFREEの領域があり末尾にアロケーションされていることがわかります。

$ sudo pvdisplay -m /dev/nvme0n1p2
  --- Physical volume ---
  PV Name               /dev/nvme0n1p2
  VG Name               vg_data
  PV Size               444.09 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              113687
  Free PE               37911
  Allocated PE          75776
  PV UUID               vu3SHx-qCaA-MN48-NXZT-yH1A-uA3t-rc0UcO
   
  --- Physical Segments ---
  Physical extent 0 to 65535:
    Logical volume	/dev/vg_data/lv_root
    Logical extents	0 to 65535
  Physical extent 65536 to 103446:
    FREE
  Physical extent 103447 to 113686:
    Logical volume	/dev/vg_data/lv_test
    Logical extents	0 to 10239
   
$
 Posted by at 1:11 am  Tagged with:

nftables環境でlibvirtを使うときはebtablesではなくiptables-nftを入れればよかった

 article  Comments Off on nftables環境でlibvirtを使うときはebtablesではなくiptables-nftを入れればよかった
Feb 012020
 

Arch LinuxでVirtualBoxからlibvirtへの切り替えを試みています。

Arch Linuxのlibvirtに関するWikiページを見ていると、libvirtでdefaultのNATテーブルを使う場合はebtablesとdnsmasqを入れるようにとの記載があります。

私はiptablesではなくnftablesに切り替えてしまったので、ebtablesを入れても効かないんではなかろうかと思いつつ調べましたら、nftables環境でiptablesやebtablesコマンドを使えるようにするiptables-nftというパッケージがあることを発見したので、そちらを導入して解決。

ちなみにnftables環境でもiptablesパッケージを使うことはできるのですが、こちらのiptablesコマンドではnftablesでの設定内容は表示されません。iptables-nftパッケージのiptablesコマンドであれば、nftablesで設定した内容も表示することができます。

Kali Linux NetHunter on Nexus 6P with LineageOS 15

 article  Comments Off on Kali Linux NetHunter on Nexus 6P with LineageOS 15
Jan 232020
 

Androidで動作するペネトレーションテスト環境のKali Linux NetHunterは、Nexus 6P (angler)用ですとNougat (Android 7.1)しか公式にサポートしていません。

最初はLineageOS 14 (Nougat)の環境に導入して使っていたのですが、SnoopSnitchでのパッチレベルを見るたびに悲しくなるので、LineageOS 15 (Oreo)の環境に導入しなおしました。

公式にはサポートされていませんが、公開されているビルドスクリプトではOreoやPieも対象に含まれていますので、自力でビルドすればOreo環境にも導入可能です。

以下、自前でビルドして導入した際の覚書。手順は以下に掲載されているものそのままですが、 当方は文鎮化も覚悟したうえで実施していますのでご容赦の程を。
Building NetHunter | Kali Linux Documentation

gitリポジトリーをcloneします。

$ git clone https://gitlab.com/kalilinux/nethunter/build-scripts/kali-nethunter-project.git

bootstrapを実行します。

$ cd kali-nethunter-project/nethunter-installer
$ ./bootstrap.sh

buildします。私のArch Linux環境ではpython2-requestsパッケージの導入が必要でした。

$ sudo pacman -S python2-requests
$ python2 build.py -d angler-los -o -fs full

指定できるデバイスやAndroidバージョンは-hオプションで確認できます。

あとは出来上がったファイルをTWRPからインストールして完了。

Fibocom L-850GLのUSBモデム化その後(2)

 article  Comments Off on Fibocom L-850GLのUSBモデム化その後(2)
Dec 152019
 

何がきっかけかわかりませんがモバイル接続できるようになりました!
IIJmioの タイプDデータ専用SIMです。開発者に感謝!
https://github.com/abrasive/xmm7360

$ mmcli -L
    /org/freedesktop/ModemManager1/Modem/2 [Fibocom Wireless Inc.] L850-GL
$ mmcli -m 2
  -----------------------------
  General  |         dbus path: /org/freedesktop/ModemManager1/Modem/2
           |         device id: adde8d2a200ae40256de3f06bf7f000d71d71f2b
  -----------------------------
  Hardware |      manufacturer: Fibocom Wireless Inc.
           |             model: L850-GL
           | firmware revision: 18500.5001.08.02.24.09
           |      h/w revision: V1.0.4
           |         supported: gsm-umts, lte
           |           current: gsm-umts, lte
           |      equipment id: XXXXXXXXXXXXXXX
  -----------------------------
  System   |            device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-6
           |           drivers: cdc_mbim
           |            plugin: Fibocom
           |      primary port: cdc-wdm0
           |             ports: cdc-wdm0 (mbim), wwan0 (net)
  -----------------------------
  Numbers  |               own: XXXXXXXXXXX
  -----------------------------
  Status   |    unlock retries: sim-pin2 (3)
           |             state: connected
           |       power state: on
           |       access tech: hsdpa
           |    signal quality: 41% (cached)
  -----------------------------
  Modes    |         supported: allowed: 3g, 4g; preferred: none
           |           current: allowed: 3g, 4g; preferred: none
  -----------------------------
  IP       |         supported: ipv4, ipv6, ipv4v6
  -----------------------------
  3GPP     |              imei: XXXXXXXXXXXXXXX
           |     enabled locks: fixed-dialing
           |       operator id: 44010
           |     operator name: NTT DOCOMO
           |      registration: home
           |               pco: 
           |                    0: (complete) '272280000D04CAE80202000D04CAE80203802110030100108106CAE802028306CAE80203'

  -----------------------------
  SIM      |         dbus path: /org/freedesktop/ModemManager1/SIM/2
  -----------------------------
  Bearer   |         dbus path: /org/freedesktop/ModemManager1/Bearer/1
$ 

Fibocom L-850GLのUSBモデム化その後(1)

 article  Comments Off on Fibocom L-850GLのUSBモデム化その後(1)
Nov 092019
 
ThinkPad T480sのLTEモジュール(Fibocom L-850GL)をUSBモデムとして認識させるでUSBモデムとして認識するようになったものの、肝心のモバイルネットワーク接続ができません。

もう一度Tools for the Fibocom L850-GL / Intel XMM7360 LTE modemのサイトを眺めていると”FCC Lock”の記述があります。
mmcliでモデムを確認すると、Statusでdisabledになっている部分があるのですが、こちらの影響でしょうか。

$ mmcli -m 0
  -----------------------------
  General  |         dbus path: /org/freedesktop/ModemManager1/Modem/0
           |         device id: adde8d2a200ae40256de3f06bf7f000d71d71f2b
  -----------------------------
  Hardware |      manufacturer: Fibocom Wireless Inc.
           |             model: L850-GL
           | firmware revision: 18500.5001.08.02.24.09
           |      h/w revision: V1.0.4
           |         supported: gsm-umts, lte
           |           current: gsm-umts, lte
           |      equipment id: XXXXXXXXXXXXXXX
  -----------------------------
  System   |            device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-6
           |           drivers: cdc_mbim
           |            plugin: Fibocom
           |      primary port: cdc-wdm0
           |             ports: cdc-wdm0 (mbim), wwan0 (net)
  -----------------------------
  Numbers  |               own: NNNNNNNNNNN
  -----------------------------
  Status   |    unlock retries: sim-pin2 (3)
           |             state: disabled
           |       power state: low
           |    signal quality: 0% (cached)
  -----------------------------
  Modes    |         supported: allowed: 3g, 4g; preferred: none
           |           current: allowed: 3g, 4g; preferred: none
  -----------------------------
  IP       |         supported: ipv4, ipv6, ipv4v6
  -----------------------------
  3GPP     |              imei: XXXXXXXXXXXXXXX
           |     enabled locks: fixed-dialing
  -----------------------------
  SIM      |         dbus path: /org/freedesktop/ModemManager1/SIM/0

IMEIや電話番号は伏せています。

もともと人柱覚悟で始めたことですのでFCC Lockのところに記述されているATコマンドを実行してみます。

$ sudo screen /dev/ttyACM0
+PBREADY
at@nvm:fix_cat_fcclock.fcclock_mode=0

OK
at@store_nvm(fix_cat_fcclock)
Committed to NVM flash...
OK
AT+CFUN=15
$ mmcli -L
    /org/freedesktop/ModemManager1/Modem/1 [Fibocom Wireless Inc.] L850-GL
$ mmcli -m 1
  -----------------------------
  General  |         dbus path: /org/freedesktop/ModemManager1/Modem/1
           |         device id: adde8d2a200ae40256de3f06bf7f000d71d71f2b
  -----------------------------
  Hardware |      manufacturer: Fibocom Wireless Inc.
           |             model: L850-GL
           | firmware revision: 18500.5001.08.02.24.09
           |      h/w revision: V1.0.4
           |         supported: gsm-umts, lte
           |           current: gsm-umts, lte
           |      equipment id: XXXXXXXXXXXXXXX
  -----------------------------
  System   |            device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-6
           |           drivers: cdc_mbim
           |            plugin: Fibocom
           |      primary port: cdc-wdm0
           |             ports: cdc-wdm0 (mbim), wwan0 (net)
  -----------------------------
  Numbers  |               own: NNNNNNNNNNN
  -----------------------------
  Status   |    unlock retries: sim-pin2 (3)
           |             state: enabled
           |       power state: on
           |    signal quality: 0% (cached)
  -----------------------------
  Modes    |         supported: allowed: 3g, 4g; preferred: none
           |           current: allowed: 3g, 4g; preferred: none
  -----------------------------
  IP       |         supported: ipv4, ipv6, ipv4v6
  -----------------------------
  3GPP     |              imei: XXXXXXXXXXXXXXX
           |     enabled locks: fixed-dialing
           |      registration: idle
  -----------------------------
  SIM      |         dbus path: /org/freedesktop/ModemManager1/SIM/1
$ 

Statusがenabledになりました!

ところがnm-connection-editorでMobile NetworkのAPN設定をおこなっても接続できません。。。そう簡単にはいかないものですね。

ThinkPad T480sのLTEモジュール(Fibocom L-850GL)をUSBモデムとして認識させる

 article  Comments Off on ThinkPad T480sのLTEモジュール(Fibocom L-850GL)をUSBモデムとして認識させる
Oct 222019
 

ThinkPad X1やT480sにはLTEモジュールとしてFibocom L850-GLが搭載できます。こちらWindowsでは問題なく使えるのですがLinuxでは使えません。

Fibocomのサイトに掲載されている仕様ではLinuxもサポートされているように書かれているのですが、これはUSBモードの場合のみのようでLinuxで認識されるPCIeインターフェースの状態では利用できないようです。
Solved: WWAN Fibocom L850-GL and Linux support – Lenovo Communityなどでも語られています。

使える方法がないものかいろいろ散策しておりましたら、「Linux drivers for XMM 7360 LTE #7」の情報を見つけまして、この中のコメントにPCIeからUSBモードにする処理を作成したとの情報を発見。
Tools for the Fibocom L850-GL / Intel XMM7360 LTE modem
ちょっと人柱覚悟でArch Linuxにて試してみましたので覚書です。

ちなみにモデムとしては認識されるようになったもののMobile Network接続はまだうまくできておりません。

まずacpi_callカーネルモジュールをインストールします。

$ sudo pacman -S acpi_call

次に先ほど紹介したgitリポジトリーをcloneします。

$ git clone https://github.com/abrasive/xmm7360.git

変更前にPCIとUSBのデバイスを見てみると、LTEモジュールはPCIで認識されていることがわかります。

$ lspci | grep -i modem
02:00.0 Wireless controller [0d40]: Intel Corporation XMM7360 LTE Advanced Modem (rev 01) $ lsusb | grep -i modem $

先ほどのGitHubからcloneしたxmm2usbを実行してみます。

$ cd xmm7360
$ sudo ./xmm2usb
Found XMM7360 modem at 0000:02:00.0 (_SB_.PCI0.RP04.PXSX) Parent port is at 0000:00:1c.3
Disabling PCIe link… Resetting modem…
OK!
$

PCIリンクを無効にしたとのメッセージ。再びlspciとlsusb実行してみます。

$ lspci | grep -i modem
02:00.0 Wireless controller [0d40]: Intel Corporation XMM7360 LTE Advanced Modem (rev ff)
$ lsusb | grep -i modem
Bus 001 Device 006: ID 8087:095a Intel Corp. MODEM + 2 CDC-ACM + 3 CDC-NCM + SS
$

USBにモデムが出現するようになりました。PCIにも出現していますが、(rev ff)となっています。

続けてGitHubのページにあるように、MBIM(Mobile Broadband Interfaceモード?)へのスイッチを実行します。

$ sudo screen /dev/ttyACM0
AT+GTUSBMODE?
AT+GTUSBMODE=7
AT+CFUN=15
$

そうするとlsusbでの出力が以下に変わりました。

$ lsusb | grep -i fibocom
Bus 001 Device 006: ID 2cb7:0007 Fibocom Wireless Inc. L850-GL

dmesgをみてもUSBモデムと認識されているようです。

[  162.799214] usb 1-6: new high-speed USB device number 5 using xhci_hcd
[  162.940604] usb 1-6: New USB device found, idVendor=8087, idProduct=07f5, bcdDevice= 0.00
[  162.940612] usb 1-6: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  169.651754] usb 1-6: USB disconnect, device number 5
[  175.462630] usb 1-6: new high-speed USB device number 6 using xhci_hcd
[  175.620153] usb 1-6: New USB device found, idVendor=2cb7, idProduct=0007, bcdDevice= 3.33
[  175.620162] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  175.620167] usb 1-6: Product: L850-GL
[  175.620172] usb 1-6: Manufacturer: Fibocom Wireless Inc.
[  175.620176] usb 1-6: SerialNumber: 004999010640000
[  175.738001] cdc_acm 1-6:1.2: ttyACM0: USB ACM device
[  175.738980] cdc_acm 1-6:1.4: ttyACM1: USB ACM device
[  175.739743] cdc_acm 1-6:1.6: ttyACM2: USB ACM device
[  175.740493] usbcore: registered new interface driver cdc_acm
[  175.740494] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[  175.742909] usbcore: registered new interface driver cdc_ncm
[  175.744812] usbcore: registered new interface driver cdc_wdm
[  175.793275] cdc_mbim 1-6:1.0: setting rx_max = 16384
[  175.794443] cdc_mbim 1-6:1.0: cdc-wdm0: USB WDM device
[  175.794574] cdc_mbim 1-6:1.0 wwan0: register 'cdc_mbim' at usb-0000:00:14.0-6, CDC MBIM, a2:a6:4d:05:3f:91
[  175.794616] usbcore: registered new interface driver cdc_mbim

ちなみに冒頭でも述べましたようにMobile Network接続には至っておりません。またPC再起動後は毎回xmm2usbコマンドの実行が必要です。

Arch Linuxでswayを使う

 article  Comments Off on Arch Linuxでswayを使う
Jun 172019
 

先日購入したThinkPad T480sにArch Linuxを入れて使っています。
最初はGNOMEデスクトップ環境にしていましたが、タイル型Window Managerにしたくなり、折角Waylandで動いているのだからとswayを使ってみました。

パッケージはステータスバーにi3statusを使いますが、アプリケーションメニューのi3-dmenu-desktopとdmenuは動かないらしいので、j4-dmenu-desktopとbemenuを導入します。

$ sudo pacman -S sway i3status bemenu
$ yay j4-dmenu-desktop

パッケージデフォルトの設定は/etc/sway/configにありますので、そちらを~/.config/sway/configにコピーして以下の設定を追加しました。

ターミナル設定はurxvtd+urxvtcに変更

set $term urxvtc
exec urxvtd -q -o -f

メニューはj4-dmenu-desktop+bemenuに変更

set $menu j4-dmenu-desktop --dmenu='bemenu -i --nb "#3f3f3f" --nf "#dcdccc" --fn "pango:DejaVu Sans Mono 12"' --term='urxvtc'

ステータスコマンドはi3statusに変更

status_command i3status

WaylandではXのキーマップ設定が効かないので、swayで日本語キーボート設定を追加

# keymap
input * xkb_layout  jp
input * xkb_model   jp106
input * xkb_options ctrl:nocaps

fcitxの起動設定を追加

exec fcitx-autostart

i3のときもそんなにカストマイズして使っていたわけではないので、上の設定で今のところ不満なく動いています。

 Posted by at 11:48 pm  Tagged with:

Zabbix 4.0.9 SELinux設定

 article  Comments Off on Zabbix 4.0.9 SELinux設定
Jun 132019
 

SELinuxを有効にしたCentOS 7にZabbix 4.0.9を導入した際のSELinux設定メモです。

CentOS 7にZabbix 4.0.9、MariaDB、Apache HTTP Serverを導入し、SELinux無効化状態であれば起動するところまで設定済みなところから始めます。

まずはApacheからZabbix Serverへの接続許可、Zabbixからのネットワーク接続を許可するbool値を設定します。httpd_can_network_connect_dbというのもありますが、今回ApacheからMySQLへの接続はUNIXドメインソケット経由となり、ネットワーク経由ではありませんので不要です。

# setsebool -P httpd_can_connect_zabbix=on
# setsebool -P zabbix_can_network=on

ポリシー作成に必要なパッケージをインストールします。

# yum install -y policycoreutils-python selinux-policy-devel

単純にZabbix Serverを起動すると、/var/run/zabbix/配下に各種ソケットファイルが作成できないとのエラーが発生しますので、そちらを許可するポリシーを作成します。

# cat zabbix-server_local.te
module zabbix-server_local 1.0;

require {
        type zabbix_var_run_t;
        type zabbix_t;
        class sock_file create;
        class sock_file unlink;
        class unix_stream_socket connectto;
}

#============= zabbix_t ==============
allow zabbix_t zabbix_var_run_t:sock_file create;
allow zabbix_t self:unix_stream_socket connectto;
allow zabbix_t zabbix_var_run_t:sock_file unlink;

作成したポリシーファイルをビルドしてインストールします。

# make -f /usr/share/selinux/devel/Makefile zabbix-server_local.pp
# semodule -i zabbix-server_local.pp

通常はここまで実施すればZabbix Server自身の稼働には問題ないのですが、Template DB MySQLを適用してMariaDBの状態を監視しようとするとエラーになります。

具体的にはmysql UNIXドメインソケットに接続できない、my.cnfファイルが読み込めずにmysqlコマンドを実行できないため、これらを許可するポリシーを作成します。

# cat zabbix-agentd_local.te
module zabbix-agentd_local 1.0;

require {
        type mysqld_etc_t;
        type mysqld_home_t;
        type mysqld_t;
        type zabbix_agent_t;
        class unix_stream_socket connectto;
        class file open;
        class file read;
}

#============= zabbix_agent_t ==============
allow zabbix_agent_t mysqld_etc_t:file open;
allow zabbix_agent_t mysqld_etc_t:file read;
allow zabbix_agent_t mysqld_home_t:file open;
allow zabbix_agent_t mysqld_home_t:file read;
allow zabbix_agent_t mysqld_t:unix_stream_socket connectto;

また、zabbixユーザーが使用する.my.cnfは/var/lib/zabbix/.my.cnfに配置しますので、こちらのファイルタイプがmysqld_home_tになるようにファイルコンテキストも作成します。

# cat zabbix-agentd_local.fc
/var/lib/zabbix/\.my\.cnf -- unconfined_u:object_r:mysqld_home_t:s0

teファイル、fcファイル両方揃ったところでビルドしインストールします。

# make -f /usr/share/selinux/devel/Makefile zabbix-agentd_local.pp
# semodule -i zabbix-agentd_local.pp

これでMySQL監視もおこなえるようになりました。

導入したポリシーモジュールは以下のプライオリティ400のものになります。

# semodule -lfull|grep zabbix
400 zabbix-agentd_local pp
400 zabbix-server_local pp
100 zabbix              pp

ocf:heartbeat:apacheでZabbixのレスポンスチェックではまった

 article  Comments Off on ocf:heartbeat:apacheでZabbixのレスポンスチェックではまった
Sep 282018
 

CentOS 7.5のPacemaker/Corosync環境でZabbix 4.0のHA構成を試していていたら、ocf:heartbeat:apacheを使ったhttpdの起動がうまくいかなかった。
クラスターリソースは以下で作成している。

pcs resource create WebSite ocf:resource:apache statusurl="http://localhost/zabbix/" client=curl

Apacheのアクセスログではステータスコード200も返っているのに、なんでかなと思ったら、返答されるHTMLの終端タグ</html>が含まれていないからだった(curl http://localhost/zabbix/の応答が</body>で終わってる)。

pcs resource update WebSite testregex="< *html *>"

とやって解決。

ISC BINDのバージョン番号隠蔽

 article  Comments Off on ISC BINDのバージョン番号隠蔽
Jul 152018
 

RHEL7/CentOS7で使われているISC BIND 9.9.4では、version “適当な値”;とするより適切な設定があります。

バージョン番号隠蔽。デフォルトは稼働しているBINDのバージョン。

// disables processing query of the name version.bind with type TXT, class CHAOS.
version none;

ホスト名隠蔽。デフォルトはgethostbyname()の値。

// disables processing query of the name hostname.bind with type TXT, class CHAOS.
hostname none;

こちらもホスト名隠蔽だが、デフォルトnoneなので返答しない。server-id hostname;にするとgethostname()の値が応答される。

// disables processing query of the name ID.SERVER with type TXT, class CHAOS.
server-id none;

Administrator Reference Manual – Chapter 6. BIND 9 Configuration ReferenceのBuilt-in server information zonesに説明があります。