SSブログ

有料VPNを試してみる その4(2021/12/08) [Linux]

■Linux編
LinuxはZorin16(Ubuntu、Debian系)で試してみました。
ってまあ、基本的に以下に書いてあることをそのまま実行するだけなんですけどね。
https://support.nordvpn.com/Connectivity/Linux/1325531132/Installing-and-using-NordVPN-on-Debian-Ubuntu-Raspberry-Pi-Elementary-OS-and-Linux-Mint.htm

1.ターミナルで以下を実効(sudoのパスワードを聞かれます)
sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)

そのままだと設定ガイドにある通り、Permissionの問題が出ます。
yamaha@Zorin16:~$ nordvpn status
Whoops! Permission denied accessing /run/nordvpn/nordvpnd.sock
Run 'usermod -aG nordvpn $USER' to fix this issue and log out of OS afterwards for this to take an effect.


2.以下を実行して再起動
sudo usermod -aG nordvpn $USER

以上

なお、接続はCLIになるのでちょっと敷居は高くなります。Zorin16のアプリ一覧にNordVPNのフロントエンドがありますが、バージョンの不一致なのか私のところでは使えなかったのでインストールしてもゴミになります。
yamaha@Zorin16:~$ nordvpn 
Welcome to NordVPN Linux client app!
Version 3.12.1
Website: https://nordvpn.com

Usage: nordvpn [global options] command [command options] [arguments...]

Commands:
     account        Shows account information
     cities         Shows a list of cities where servers are available
     connect, c     Connects you to VPN
     countries      Shows a list of countries where servers are available
     disconnect, d  Disconnects you from VPN
     groups         Shows a list of available server groups
     login          Logs you in
     logout         Logs you out
     rate           Rate your last connection quality (1-5)
     register       Registers a new user account
     set, s         Sets a configuration option
     settings       Shows current settings
     status         Shows connection status
     version        Shows the app version
     whitelist      Adds or removes an option from a whitelist
     help, h        Shows a list of commands or help for one command

Global options:
   --help, -h     show help (default: false)
   --version, -v  print the version (default: false)

For more detailed information, please check manual page.

Our customer support works 24/7 so if you have any questions or issues, drop us a line at https://support.nordvpn.com/


nordvpn loginでクレデンシャル情報を設定し、nordvpn connect/disconnectで接続のON/OFFです。ただこのhelpは不完全なので、きちんとWebマニュアル or manで残りのオプションも確認しておいた方が良いです。
接続先は以下から確認することができます。
https://nordvpn.com/ja/servers/tools/


タグ:VPN NordVPN
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

rngdプロセスが暴走している (2021/07/06) [Linux]

CentOS 8でSambaのレスポンスが重く感じるときがあり、中に入ってみたら愕然。rngdプロセスが暴走していました。rngdは乱数発生に関するコンポーネントの模様です。
top - 01:58:09 up 21 days,  7:00,  1 user,  load average: 1.00, 1.00, 1.00
Tasks: 135 total,   2 running, 133 sleeping,   0 stopped,   0 zombie
%Cpu(s):  7.2 us, 17.6 sy,  0.0 ni, 74.8 id,  0.0 wa,  0.2 hi,  0.1 si,  0.1 st
MiB Mem :   1796.1 total,     92.0 free,    172.4 used,   1531.6 buff/cache
MiB Swap:   2084.0 total,   2000.0 free,     84.0 used.   1451.2 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    729 rngd      20   0  381340   2436   2044 R  99.0   0.1  30399:20 rngd
      1 root      20   0  252128   8484   5872 S   0.0   0.5   0:11.64 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.56 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-events_highpri
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq
     10 root      20   0       0      0      0 S   0.0   0.0   0:03.61 ksoftirqd/0
     11 root      20   0       0      0      0 I   0.0   0.0   2:05.04 rcu_sched
     12 root      rt   0       0      0      0 S   0.0   0.0   0:00.29 migration/0
     13 root      rt   0       0      0      0 S   0.0   0.0   0:01.13 watchdog/0

うちが仮想環境なので、それに起因する不具合かなと思ったのですが、仮想でないネイティブな環境でも事例報告がある模様。
https://access.redhat.com/solutions/3266261
https://bugzilla.redhat.com/show_bug.cgi?id=1739730

サポートサイトでサービス殺しておけば?と言われているので、とりあえず殺しておくことにします。「systemctl disable --now rngd」 CPU使用率は落ち着きました。

nice!(0)  コメント(0) 
共通テーマ:日記・雑感

rsyncで同期を取る (2021/03/25、CentOS 8.3) [Linux]

Citrix Hypervisor上のFreeBSD上でSambaサーバを立てていましたが、明らかにCitrix Hypervisor上のLinuxの方が速度が出るので、使い勝手を考えLinuxをメインのSambaサーバにすることにしました。(裏切り者とか言うなかれ)

ただ、バックアップ等を含めた冗長化の仕組みは欲しいもので、Linuxは特にこのあたりが心配です。ファイルシステムが高速化重視のため、クラッシュした際は完膚なきまでにズタズタになると聞いたことがあります。Linuxでもカーネルが提供するRAID1が使えるようですが、論理的に破壊されたディスクをミラーリングしても意味がないので、もうちょっと良い仕組みが必要です。

そこでは私は考えました。
仮想環境を生かし、FreeBSDとLinuxでrsyncすれば良いではないか。Sambaで公開しているディレクトリをrsyncで同期するようにし、FreeBSDでもSambaを立ち上げ、LinuxでもSambaを立ち上げるのです。当然、どちらの宛先でもアクセスできます。同期頻度は6時間に1回(後に12時間に1回に変更)としました。

Linuxを主、FreeBSDを従とすることで、FreeBSD側が12間毎のバックアップのようになります。

なかなかのシステム設計と言いたいところですが、いざrsyncしようとするとエラーで弾かれてしまいます。rsyncコマンド・オプションは以下を参考にしており、特に問題はありません。
https://www.atmarkit.co.jp/ait/articles/1702/02/news031.html

結果から言うとSELinuxによるアクセス制御だった訳ですが、どうにも直し方が分からない。SELinux自体を無効にする方法もありますが、何か負けたような気がして気が進みません。そして調べること半日。
「setsebool -P rsync_full_access 1」を以下のWebページで発見してうまくいくようになりました。
https://www.systutorials.com/docs/linux/man/8-rsync_selinux/

パラメータを見て分かる通りFullアクセスを有効にしているので、SELinux無効化とさほど変わらないかもしれません。できる形、分かる形で、小さなところからコツコツ始めるのが第一歩だと思います。



nice!(0)  コメント(0) 
共通テーマ:日記・雑感

CentOS 8でSambaサーバを立てる(2021/02/20) [Linux]

FreeBSDのSambaサーバが調子悪くなってしまいました。以前は60MB/s程度は確保できていたのですが、ある日突然、20MB/s程度しか速度が出なくなってしまいました。思い当たる節はありません。
思い切ってFreeBSD VM インスタンスを消して新規に再作成してみましたが、結果は変わらず。Citrix Hypervisorのベースシステム側の問題のようです。かれこれ3~4年ぐらい使っているはずですが、こんな事象は初めてです。(FreeBSDはSambaファイルサーバとして使っていたので、データの待避が大変でした)

Citrix Hypervisorはそのままにiperf3で速度測定をしてみたところ、FreeBSDで200Mbps、Cent OS 8で900Mbps。これはおかしい。大変でしたがCitrix Hypervisorの再インストールをすれば元に戻ったので、原因は不明です。再インストール後は、FreeBSDで800~900Mbps程度出るようになりました。


ただ、せっかくなのでCentOS8でもSambaサーバを立ててみようかと思いましたが、SELinux関連ではまったのでメモ。Sambaの設定ファイルはFreeBSDから持ってきたので、基本的に動作実績のある完成形です。以下はパターン化したお決まりの部分なので、特に問題なく完了。
・firewall-cmd --add-service=samba --permanent
・firewall-cmd --reload
・systemctl enable smb
・pdbedit -a xxxxx

ただ、Windowsから接続しようとするとSambaへの接続は確立するものの具体的なディレクトリアクセスをしようとすると、「権限がない」といった文言で弾かれます。設定は完璧なはずなのに…
試しにsmbclientを導入して、

smbclient //192.168.0.100/public -U samba

といった形で接続し、lsを行うと「NT_STATUS_ACCESS_DENIED」とのこと。やはり権限関係で弾かれているようです。ざっとWebを確認すると、SELinux関連で弾かれているようですね。このあたりはFreeBSDと概念が異なるので、ありがた迷惑といった感じでもあります。
http://blog2.zunbe.com/?p=1821
https://qiita.com/azuritev3coa3/items/4269228b4241c07ea2be

以下を指定して問題なく接続できるようになりました。
・setsebool -P samba_export_all_rw on

なおSambaの感想としては、明らかにFreeBSDよりも安定していて早いですね。まあ不安定なCitrix Hypervisor上で動かしているというのもありますが。


nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Zabbix 5.2 インストール その2(2021/02/16) [Linux]

アプライアンス版のZabbixはCentOSをベースにしているようなので、環境の整備を行ってあげます。

■静的IPアドレスの設定
[root@appliance etc]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO=none
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
IPV6INIT=no
NAME="eth0"


■yumでインストールしておくと便利なもの
・tar.x86_64
・mlocate.x86_64
・iperf3.x86_64

■タイムゾーンの設定
・timedatectl set-timezone Asia/Tokyo
・timedatectl status

■Citrix VM Toolsのインストール
・CitrixHypervisor-LinuxGuestTools-7.20.0-1.tar.gzをゲットして展開
・rpm -ivh xe-guest-utilities-7.20.0-1.x86_64.rpm
・rpm -ivh xe-guest-utilities-xenstore-7.20.0-1.x86_64.rpm
・service xe-linux-distribution start

中身は単純なLinuxと思って良いようです。

タグ:ZABBIX
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Zabbix 5.2 インストール その1(2021/02/14) [Linux]

Citrix Hypervisorのリソースが余っているので、Zabbixをインストールしてみることにしました。過去、Zabbixは何度かインストールしたことがあるのですが、MySQLが必要だったりとメンテナンスが大変だったり、メインメモリをSambaと奪い合ったりして管理が面倒だったりします。
当時導入していたのは4.4系だったと思いますが、最新バージョンを確認すると5.2になっている上、当時気付かなかったのですが、アプライアンス用のISOイメージがあるんですね。ぜひこちらをインストールさせてもらいましょう。

20210214_Zabbix_01.png


ISOからインストールするにあたり、必要なメモリやディスク容量が分かりません。マニュアルを見ても特に記載がないようなので、Open virtualization format (.ovf)を仮インポートし、メモリ4GB、ディスク10GBのひな形となっていたようなのでそちら参考にVMを作成しました。

インストールは完全全自動で特に問題なく終わりました。ただ、Y/Nもなく勝手にフォーマット、インストールまで終わってしまうため、間違えて大事なシステムでCDブートさせると大変なことになりそうです。

初期設定はDHCPによるIPアドレス取得になっているため、ベースとなっているCentOSの作法に従い/etc/sysconfig/network-scripts/ifcfg-eth0を修正して固定IPアドレスを割り当てました。
初期パスワードはマニュアルに記載のある通り、CLIではroot/zabbix、Zabbix WebインタフェースではAdmin/zabbixとなります。

ただ、見ての通り日本語が選べないんですよね。

20210214_Zabbix_02.png


こちらはyumでは日本語化キットが配布されているため、以下をインストールすることでJPが選べるようになりました。
[root@appliance ~]# yum search japanese
Last metadata expiration check: 0:56:56 ago on Sun 14 Feb 2021 02:51:07 AM UTC.
======================================================= Name & Summary Matched: japanese =======================================================
zabbix-web-japanese.noarch : Japanese font settings for Zabbix frontend



タグ:ZABBIX
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Elasticsearchの仕切り直し導入 その8(CentOS 7.5、2019/02/02) [Linux]

Logstashの設定を作り込むのはトライアルアンドエラーの要素が強く、何度も修正を余儀なくされることでしょう。毎回サービスを再起動させるのは面倒ですし、デバッグ出力も見たいので、私は下記のようにコマンドラインで、起動させています。
root@centos logstash]# /usr/share/logstash/bin/logstash -f /etc/logstash/mylog.conf

ちょっと待っているとずらずらと表示され、最終的に下記のような行で安定(=起動したまま)すれば準備OKです。
[INFO ] 2019-02-02 17:14:56.914 [Api Webserver] agent - Successfully started Logstash API endpoint {:port=>9600}


タグ:elasticsearch
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Elasticsearchの仕切り直し導入 その7(CentOS 7.5、2019/01/27) [Linux]

Elasticsearchの使い方がなんとなく使い方が分かってきたので、CISCOのsyslogを取り込んでみます。Logstashは様々なInputに対応しており、下記にpluginの一覧とその説明があります。
https://www.elastic.co/guide/en/logstash/current/input-plugins.html

今回はsyslogプラグインを使うことにします。syslogプラグインを使うと、hostやfacilityなどを自動的にデコードしてくれます。データ取り込み時に@timestampが設定されますが、CISCOのsyslogメッセージ内にもタイムスタンプが埋め込まれているので、分かりやすいように後者も抽出してみることにします。
なお、CISCO側の設定は下記のようになっています。Logstash側での処理を考えると、既存のsyslogサービスとポート番号がバッティングしないよう、このようにしています。
Router-C841MJ#show running-config
service timestamps log datetime msec localtime show-timezone year
clock timezone JST 9 0
logging facility local0
logging host 192.168.100.10 transport udp port 1514

CISCOのsyslogメッセージ内のタイムスタンプ(後述のmessageがsyslogの生データになります)を切り出すにあたり、下記パターンを独自に定義しています。実際のところ、c_monthなどは後で使わないので名前を付ける必要はないのですが、デバッグも兼ねてこのようにしています。
[root@centos ]# cat /etc/logstash/patterns/pattern-cisco
CISCOTIME     %{MONTH:c_month} %{MONTHDAY:c_mnum} %{YEAR:c_year} %{HOUR:c_hour}:%{MINUTE:c_min}:%{SECOND:c_second}

なお、Logstashに標準で定義されている正規表現パターンは下記を参照して下さい。
https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns

今回作ったコンフィグは下記の通りです。
[root@centos ]# cat cisco-syslog.conf

input {
  # cisco syslog
  syslog {
    port => 1514
    type => "syslog-cisco-841mj"
  }
  # debug
  stdin {}
}

filter {

  grok {
    patterns_dir => "/etc/logstash/patterns/"

    match => [ "message",
      "%{CISCOTIME:tmp_timestamp} %{WORD}: %{GREEDYDATA:cisco_syslog_message}"
    ]
  }

  date {
    match => [ "tmp_timestamp", "MMM dd yyyy HH:mm:ss.SSS" ]
    locale => "en"
    timezone => "Asia/Tokyo"
    target => "@c_timestamp"
  }

}

output {
  if "_grokparsefailure" in [tags] {
    file {
      path => "/var/log/logstash/fail.log"
    }
  }
  stdout { codec => rubydebug }

}

これで実際にsyslogを送出すると、下記のような出力が得られます。
{
                   "c_min" => "05",
                 "c_month" => "Jan",
                    "tags" => [
        [0] "_grokparsefailure_sysloginput"
    ],
          "severity_label" => "Emergency",
                  "c_mnum" => "27",
    "cisco_syslog_message" => "%SYS-5-CONFIG_I: Configured from console by test on vty0 (192.168.100.11)",
                "facility" => 0,
                "priority" => 0,
                    "type" => "syslog-cisco-841mj",
           "tmp_timestamp" => "Jan 27 2019 20:05:45.316",
            "@c_timestamp" => 2019-01-27T11:05:45.316Z,
                "severity" => 0,
              "@timestamp" => 2019-01-27T11:05:46.379Z,
          "facility_label" => "kernel",
                  "c_year" => "2019",
                 "message" => "<133>12919: Jan 27 2019 20:05:45.316 JST: %SYS-5-CONFIG_I: Configured from console by test on vty0 (192.168.100.11)",
                    "host" => "192.168.100.11",
                  "c_hour" => "20",
                "c_second" => "45.316",
                "@version" => "1"
}

出力を簡単に説明します。
c_min:syslog生データ(message)から、独自パターンでマッチさせた「分」データ
c_month:syslog生データ(message)から、独自パターンでマッチさせた「月」データ
_grokparsefailure_sysloginput:syslogメッセージのデコードに失敗している場合に出力されるものと思いますが、どうしようもないので放置
c_mnum:syslog生データ(message)から、独自パターンでマッチさせた「日」データ
cisco_syslog_message:syslog生データ(message)から、ゴミを除いたsyslogメッセージの実体
type:処理ルーチンの中で私が加えた値
tmp_timestamp:syslog生データ(message)から、独自パターンでマッチさせたタイムスタンプ部分を格納
@c_timestamp:syslog生データ(message)から、独自パターンでマッチさせたタイムスタンプ部分を時刻型に変換したもの
@timestamp:データ受信時に刻印したタイムスタンプ(自動生成)
c_year:syslog生データ(message)から、独自パターンでマッチさせた「年」データ
message:syslog生データそのもの(自動生成)
host:syslog送出元(自動生成)
c_hour:syslog生データ(message)から、独自パターンでマッチさせた「時」データ
c_second:syslog生データ(message)から、独自パターンでマッチさせた「秒」データ

タグ:elasticsearch
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Elasticsearchの仕切り直し導入 その6(CentOS 7.5、2019/01/24) [Linux]

Elasticsearchですが、なんとなく使い方が分かってきました。私なりの解釈で、ざっとおさらいしてみます。

1.Elasticsearchってどういうソリューション?
大量のテキストデータを扱うことを得意とするデータベースです。蓄積したデータの、高速検索や可視化を行うことができます。

2.Elasticsearchの使い方が、うまくイメージができない
ネットワークエンジニアがイメージしやすい使い方としては、syslogサーバやsnmp trapサーバでしょうか。膨大なログを高速検索できるようになります。
ただし、単純なsyslogサーバやsnmp trapサーバといった使い方だと、高速検索ができるだけのただのサーバです。本来の価値・能力を十分に発揮できていないと思います。

3.ElasticsearchとSplunkの違いは?
基本的に似たもの同士だと思います。CPUで言えば、IntelとAMDのような関係ですね。私の印象では、設計思想などの細かなところが違うといった感じです。(後述します)

4.Elasticsearchの上手な使い方は?
可視化を行うためには、集計することで価値や意味を見いだせるようなデータ(≒統計データ)を収集することです。そのためには、syslogデータをただのテキストデータとして収集するのではなく、送信元や時間、メッセージの中身(プロトコルやインタフェース、内容など)をきちんと分解し、集計できる状態で蓄積する必要があります。

5.テキストデータの分解ってどうやるの?
基本的に正規表現を駆使します。なかなかうまくいかないので、基本的にトライアル・アンド・エラー(試行錯誤)の繰り返しになるかと思います。
ただSplunkに関しては、Apacheログやxxxxログ向けといった各種ひな形プラグインが用意されているように見え、有償もしれませんが、定型ログを対象するなら立ち上げは早そうです。

6.素人でも使える?
エンタープライズ用途で使うなら、専門のSIerさんに任せた方が無難かと思います。

7.ElasticsearchとSplunkの違いは?(詳細編1)
お金を払うと使える機能が増え、正式サポートを受けられるところは同様です。ただ、Splunkはログの転送量(≒従量制)によっても追加料金が発生するようです。

8.ElasticsearchとSplunkの違いは?(詳細編2)
Elasticsearchは(Splunkに比べて)情報が少なく、マニア・ハッカー向けといった感じ。一方、Splunkはやや成熟している感じで、国内に多くのエンジニア(SIer、有識者)がいます。
まぁ、英語になりますがElasticsearchには公式のちゃんとしたマニュアルがありますけどね。

9.ElasticsearchとSplunkの違いは?(詳細編3)
Elasticsearchは、"Elasticsearch"、"Kibana"、"Logstash"などと主要コンポーネントが分かれていて、サーバの分散化は容易かもしれませんが、その分、管理は面倒なのかもしれません。
Splunkはインストールしたことがありませんが、コンポーネントが分かれているような話は聞かないので、パケージとしてまとまっているのではないでしょうか。

10.ElasticsearchとSplunkの違いは?(詳細編4)
Elasticsearchはデータを蓄積する前にテキストデータの分解を行います。うまく事前加工すれば、蓄積データ量の削減につながると思います。
Splunkは、紹介ページを見る限り、データ蓄積後にGUI上でデータ分解ができるように見えました。インタフェースは使いやすそうですが、ストレージに無加工のデータが蓄積するので、転送容量(つまりは料金体系)は多くなりそうです。

タグ:elasticsearch
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

Elasticsearchの仕切り直し導入 その5.5(CentOS 7.5、2019/01/16) [Linux]

Elasticsearchについても少し時間が空いてしまいました。エラーの対策がうまくいかなかったり、解決できない課題があったりと、少し充電期間を置いていた訳ですが、久々にいじってみたら(バージョンアップされたから?)、いろいろとうまくいくようになっていたので、こちらも近いうちにブログに起こせたらなと思います。
タグ:elasticsearch
nice!(0)  コメント(0) 
共通テーマ:日記・雑感