keima's caprice diary

気付いたことをメモのように綴ります。なるべく義務っぽくならないように気まぐれに記録します。

Windowsのコンピュータ名とホスト名

Windowsサーバを構築する際に、パラメータシートを作成する必要があるわけで、Windowsには「コンピュータ名」と「ホスト名」という設定値がある。

NetBiosを用いたファイル共有やプリントスプール等の通信で使うのがコンピュータ名で、TCP/IP等のインターネット等のIPアドレスを必要とする通信で使うのがホスト名だそうで。。。ワタクシとしてはNetBIOSなど無くても困らないのでホスト名に統一してもらいたいものだけど、NetBIOSって、MSさんにてどういった処遇を受けているのかな。

centosのsyslogをslackに転送する

あちこちの機器からシスログサーに転送されてくるログメッセージをslackでも眺めてみたいという衝動に駆られ、それとなくslackに転送することにした

 

シスログサーバへの前提条件

  • OSはcentOs6.8
  • ログ監視ソフトとしてrsyslogを使用
  • シスログ受信サーバとして稼働中
    (rsyslogの基本的な設定については割愛)
  • slackのtokenを取得できること(権限的要件)

くらいかな。

 

01. slack token 取得

"Legacy tokens | Slack" にて "Legacy token generator" を使用してtokenを控える。

"xoxp-" で始まる文字列がそれ。

 

02. 名前つきパイプを作成

mkfifo /var/log/[任意のパイプ名]_pipo

03. ログ出力先をパイプに指定する

vi /etc/rsyslog.conf

:fromhost-ip, isequal, "[ログ転送元IPアドレス]" |/var/log/[任意のパイプ名]_pipo

04. rsyslog 再起動

service rsyslog restart

 

05. slack転送スクリプトを作成

vi /root/[任意のスクリプト名].sh

 

while : ; do 
while read LINE ; do
TEXT=$LINE
curl -XPOST -d "token=[slackトークン]" -d "channel=#[slackチャンネル名]" -d "text=$TEXT" -d "username=[slack投稿者名(何でもOK)]" "https://slack.com/api/chat.postMessage"
done < /var/log/[任意のパイプ名]_pipo
done

06. slackに転送用チャンネルを作成

スクリプトにて curl コマンドのオプションパラメータ -d で指定したチャンネルをslack側にて作成する。

07. スクリプトを実行

nohup sh /root/[スクリプトファイル名] > /dev/null &

 

以上。

 

実行環境がシャットダウン or 再起動したらスクリプト処理が終了してしまうので、再度スクリプトを実行するように工夫する必要はある。

"/etc/rc.local" に追記する等、いくつか方法が思いつくけど、後ほど本ブログに記述することに、しようかな(怪しい)。

Linux nginx アクセスログからDNS逆引きscript

ふと思いつきで、

nginxのアクセスログからアクセス元をDNS逆引きしたくなり、

とっさにシェルスクリプトを書いた。 

 

■環境

OS:CentOS release 6.8 (Final)

bashGNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu)

 

■nginxのaccess.logパターン

164.52.6.150 - - [25/Jan/2018:02:02:22 +0900] "GET / HTTP/1.1" 200 26588 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0" "-"

# 行頭にアクセス元IPアドレスがセットされる。 

 

#!/bin/bash
awk '{print $1}' $1 | sort -n | uniq | while read line
 do
  dig -x $line | while read lime
   do
    if  ${lime} =~ PTR  ; then
     if  ! ${lime} =~ ^\;  ; then
      echo ${lime} >> ./tmpawk
     fi
    fi
   done
 done
awk '{print $5}' tmpawk
rm -rf tmpawk

 

これ、活用する日はあるのだろうか。。。

もっとスマートな方法があればご指摘頂ければと思う。

 

Windows10 Home Edition で WindowsUpdate を無効化する方法

 

 

 

 

 

 

01. 高速スタートアップ無効化

 

01-01.

Windowsキー+Xキー同時押し(又はスタートボタンを右クリック)で、メニューから電源オプションをクリックする。

 

01-02.

「電源とスリープ」が表示されるので、「関連設定」の「電源の追加設定]をクリックする。

 

01-03.

「電源プランの選択またはカスタマイズ」が表示されるので、左ペインの[電源ボタンの動作を選択する]をクリックする。

 

01-04.

「電源ボタンの定義とパスワード保護の有効化」が表示されるので、[現在利用可能ではない設定を変更します]をクリックする。

 

01-05.

「シャットダウン設定」配下の[高速スタートアップを有効にする(推奨)]のチェックを外す。

 

01-06.

「変更を保存」をクリックする。

 

 

02. WindowsUpdateサービス無効化

 

02-01.

スタートメニューから「Windows管理ツール」の「サービス」をクリックする。

 

02-02

. サービス一覧にて「拡張タブ」内の「WindowsUpdate」をダブルクリックする。

 

02-03.

「スタートアップの種類」プルダウンをクリックし、「無効」をクリックする。

 

02-04.

「適用」をクリックし、次に「OK」をクリックする。

 

02-05.

PCを再起動する。

 

# 本手順にてWindowsUpdate を無効化すると更新プログラムの確認及び適用が「自動的」に実施されなくなる。

perl 配列に改行を付与して出力

perlで配列変数のそれぞれの要素をprintで出力する際にそれぞれの配列要素を改行区切りで表示させる方法(2通り)。

  • print join "\n", @list ;
  • foreach (@list) { print "$_\n"; }

他にもあると思うけど、今のところjoin関数を使うとシンプルで(・∀・)イイ!!。

FTPサーバ構築 centos linux vsftpd ftp

CentOS6系でFTPサーバをサクっと構築するためのメモ。
一応FTPはプレーンテキストで通信をする点を頭においておきたい。
じきに暗号化FTPのメモもこちらへ。。

1. FTPパッケージインスコ
yum -y install vsftpd --downloadonly --downloaddir=/root

2. コメント行削除用スクリプト準備
vi delcom.sh
export TEMPVAR=$1 ; \cp -f $TEMPVAR $TEMPVAR.org ; \cp -f $TEMPVAR $TEMPVAR.tmp ; cat $TEMPVAR.tmp | egrep -v "^#" | egrep -v "^;" | egrep -v "^\n?+$" | egrep -v "^\s?+$" > $TEMPVAR ; rm -rf $TEMPVAR.tmp ; unset TEMPVAR

3. オリジナルコンフィグコピー
. /root/delcom.sh /etc/vsftpd/vsftpd.conf

4. コンフィグ書き換え
#---VVV-----</etc/vsftpd/vsftpd.conf>-----VVV---#
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
idle_session_timeout=300
data_connection_timeout=30
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to KANEPON FTP service.
chroot_list_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
xferlog_std_format=NO
log_ftp_protocol=YES
use_localtime=YES
pasv_promiscuous=YES
pasv_min_port=50000
pasv_max_port=50030
#---AAA-----</etc/vsftpd/vsftpd.conf>-----AAA---#

5. SELINUX無効化&再起動
vi /etc/selinux/config
SELINUX=enforcing -> SELINUX=disabled
reboot

6. hosts.allow書き換え
vi /etc/hosts.allow
#---VVV-----</etc/hosts.allow>-----VVV---#
vsftpd : 192.168.10. 127.0.0.1 192.168.2.
#---AAA-----</etc/hosts.allow>-----AAA---#

7. hosts.deny書き換え
vi /etc/hosts.deny
#---VVV-----<vi /etc/hosts.deny>-----VVV---#
vsftpd : ALL
#---AAA-----<vi /etc/hosts.deny>-----AAA---#

8. 自動起動設定
chkconfig vsftpd on

9. サービス開始
service vsftpd start

 

10. iptables 関連

▼/etc/sysconfig/iptablesに以下を追記
iptables -I INPUT 4 -p tcp --dport 21 -j ACCEPT
▼/etc/sysconfig/iptables-configに以下を追記
IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp"
iptables再起動
seirvice iptables restart

以上。
この後OSにユーザを作成すると、
そのユーザでログイン可能になる。

zabbix snmp コミュニティ設定 community

zabbix でsnmp監視を実施する際、zabbix側に設定する「SNMPコミュニティ」を設定する方法を忘れがちなのでメモ。

 

zabbix > 管理 > 一般設定 > マクロ

マクロ「{$SNMP_COMMUNITY}」の値を任意のコミュニティ文字列にして更新をクリック

以上