Qnap Squid

TS-869にSquidをインストールして許可したDomainのみアクセス可能とする。

App CenterからSquidをインストール
設定画面でManual configurationに変更し、configを記載する。

### squid.conf ###
# The user name and group name Squid will operate as
cache_effective_user httpdusr
cache_effective_group everyone

#
# Recommended minimum configuration:
#
# Auth Method
#auth_param basic program /share/MD0_DATA/.qpkg/Squid/opt/libexec/squid/ncsa_auth /etc/shadow
#auth_param basic children 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 192.168.0.0/16
#acl homenet src 192.168.10.0/16

acl whitelist dstdomain "/share/MD0_DATA/.qpkg/Squid/whitelist"
#acl whitelist_regex url_regex "/share/MD0_DATA/.qpkg/Squid/whitelist_regex"

acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT

#acl ncsa_users proxy_auth REQUIRED

#
# Recommended minimum Access Permission configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager

acl noncache-servers dstdomain .tokyosteel.co.jp
no_cache deny noncache-servers

# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed

http_access allow localnet whitelist
#http_access allow localnet homenet whitelist whitelist_regex
#http_access allow ncsa_users

# And finally deny all other access to this proxy
http_access deny all

# Squid normally listens to port 3128
http_port 3128

# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?

# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /share/MD0_DATA/.qpkg/Squid/opt/var/squid/cache 100 16 256

cache_mem 8 MB

# Leave coredumps in the first cache dir
coredump_dir /share/MD0_DATA/.qpkg/Squid/opt/var/squid/

access_log /share/MD0_DATA/.qpkg/Squid/opt/var/squid/logs/access.log squid
cache_log /share/MD0_DATA/.qpkg/Squid/opt/var/squid/logs/cache.log
cache_store_log /share/MD0_DATA/.qpkg/Squid/opt/var/squid/logs/store.log

# Add logfile rotated mechanism
logfile_rotate 7
debug_options rotate=1

#
mime_table /share/MD0_DATA/.qpkg/Squid/opt/etc/squid/mime.conf
pid_filename /share/MD0_DATA/.qpkg/Squid/opt/var/squid/run/squid.pid
diskd_program /share/MD0_DATA/.qpkg/Squid/opt/libexec/squid/diskd
unlinkd_program /share/MD0_DATA/.qpkg/Squid/opt/libexec/squid/unlinkd
icon_directory /share/MD0_DATA/.qpkg/Squid/opt/share/squid/icons
err_page_stylesheet /share/MD0_DATA/.qpkg/Squid/opt/etc/squid/errorpage.css
error_default_language en-us
error_directory /share/MD0_DATA/.qpkg/Squid/opt/share/squid/errors/ja
#error_directory /share/MD0_DATA/.qpkg/Squid/opt/share/squid/errors/en-us

# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320

whitelistを記述する。
acl whitelist dstdomain “/share/MD0_DATA/.qpkg/Squid/whitelist”としているので、

### /share/MD0_DATA/.qpkg/Squid/whitelist ###
# White list
# government
.go.jp

# Evernote
.evernote.com

# Dell
.dell.com
.dell.co.jp
.dellcdn.com

# 電子マニフェスト
.jars.gr.jp
.jwnet.or.jp
.jwnetweb.jp
ocsp.digicert.com
crl.globalsign.net

# 関西電力
.kepco.co.jp

#google
.gstatic.com
.googleusercontent.com
.googleapis.com
.google.com
.google.co.jp

# mozilla
.mozilla.org
.mozilla.jp

# windows update
.microsoft.com
.windowsupdate.com
.windows.com

みたいに書いていけばいいじゃないか。

raspi:denyhostsを導入

[code]
apt-get update
apt-get install denyhosts

vi /etc/denyhosts.conf
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911

sudo service denyhosts restart

sudo tail -f /var/log/denyhosts
2018-09-29 11:11:42,383 – denyhosts : INFO Processing log file (/var/log/auth.log) from offset (102619)
2018-09-29 11:11:42,391 – denyhosts : INFO launching DenyHosts daemon (version 2.10)…
2018-09-29 11:11:42,398 – denyhosts : INFO DenyHost daemon is now running, pid: 13773
2018-09-29 11:11:42,401 – denyhosts : INFO send daemon process a TERM signal to terminate cleanly
2018-09-29 11:11:42,403 – denyhosts : INFO eg. kill -TERM 13773
2018-09-29 11:11:42,404 – denyhosts : INFO monitoring log: /var/log/auth.log
2018-09-29 11:11:42,406 – denyhosts : INFO sync_time: 3600
2018-09-29 11:11:42,407 – denyhosts : INFO purging of /etc/hosts.deny is disabled
2018-09-29 11:11:42,408 – denyhosts : INFO sync_time: : 3600
2018-09-29 11:11:42,409 – denyhosts : INFO sync_sleep_ratio: 120
[code]

参考)

【DenyHosts】自動で攻撃者の IP アドレスを拒否リストに登録する設定を試しましたの♪★シンクロナイゼーション・モード★

QNAP UPS + VMware ESXi

先の記事でQNAPにUPSを接続し、QNAPのNUTでクライアントに商用電源の状態を送り、クライアントマシンをshutdownするまでの設定を行ったが、あと1台VMWare ESXiが稼働している。
このマシンにもshutdownの信号を受信できるよう少し調べてみたが、ssh経由でshutdownを行う感じで出来そうだ。

具体的には、QNAPのNUT SERVERからVMwareESXi上に展開したWindowsマシンでNUT CLIENTを建てて、商用電源の喪失信号を受けると、ShutdownScriptを走らせる。

upsmon.conf内のSHUTDOWNCMDを変更
OSのシャットダウンを行わず、ESXiにゲストの停止(/bin/shutdown.sh)とESXi自体の停止(poweroff)をSSHで実行すると良いそうだ。

#SHUTDOWNCMD “/sbin/shutdown -h +0”
SHUTDOWNCMD “/usr/bin/ssh root@ESXiのIP ‘/bin/shutdown.sh;/bin/poweroff’”

下記参考ページの構成と私の構成が異なっており、そのまま対応できない。
しかし、非常に参考になる。
参考ページのGuestOSはUbuntuを利用されているが、私の環境ではWindowsなので、WinNUTを使いGuestWindowsホストのupsmon.confにシャッドダウンコマンドにsshを足して設定すれば良さそうだ。
sshの設定は、参考ページと同じで良さそうだ。

upsmon.conf内のSHUTDOWNCMDを変更することでゲストOSのシャットダウンを行うのではなく、ESXiにゲストの停止(/bin/shutdown.sh)とESXi自体の停止(poweroff)をSSHで実行する。
#SHUTDOWNCMD “/sbin/shutdown -h +0”
SHUTDOWNCMD “/usr/bin/ssh root@ESXiのIP ‘/bin/shutdown.sh;/bin/poweroff'”

なお、これを動作させるためにはESXi上で以下の設定をしておく必要がある。
+ESXiへのSSHログインができるように設定しておく。~
→vSphere Clientからホストの[構成]-[セキュリティプロファイル]で[サービス]のプロパティを開きSSHを選んでオプションボタンを押す。「ホストに連携して開始および停止」を選んで開始ボタンを押した後、OKボタンを押す。
+nutを入れたサーバからのパスワードなしでコマンドを実行するために、SSHキーを登録する。~
→ESXiサーバの/etc/ssh/keys-root/authorized_keys にパブリックキーを登録する。
+ESXi 上でゲストOSの自動起動・停止を設定しておく。~
→vSphere Clientからホストの[構成]-ソフトウェア項目の[仮想マシン起動/シャットダウン]から自動起動設定を選ぶ。

VMwareESXiがGuestOSが何台か稼働中なので、間をみて設定しておくことにする。
参考)

VMware ESXiのUPS連携

QNAP UPS + Windows WinNUT

QNAPにはUPSのために、NUT(Network UPS Tools)がインストールされているようだ。
WEB GUIから設定できるので楽に稼働状態まで持って行ける。
Network UPS Toolsというくらいなので、クライアントへ渡す事も可能だ。

QNAP同士なら、全くCUIに頼らなくても設定できる。

QNAP同士の設定後、Client側で、きちんとUPSを認識してくれた。

QNAPをNUT SERVER、WindowをNUT CLIENTにしてWindowsマシンもShutdownさせる。

WinNUTをインストール
EDITを押し、下記設定を入力

# MONITOR myups@bigserver 1 monmaster blah master
# MONITOR su700@server.example.com 1 upsmon secretpass slave

MONITOR qnapups@192.168.xxx.xxx 1 admin 123456 slave

Install As Service Windowsのサービスとして起動
Use Timed Shutdown バッテリーに切り替わった時にWindowsをshutdown
Shutdown Method バッテリーに切り替わってから何秒後にシャットダウンするかの秒数
Normal(通常),Forced(強制),Force If Hung(止まった場合強制),Hibernate(休止)から選択

WinNUT Ups MonitorがServiceに追加されており、状態が開始、スタートアップが自動に設定されていればOK

WinNUT起動ログ

Level     INFO	09/19/2018 11:40:09	Detected OS as Windows 7
Level   NOTICE	09/19/2018 11:40:09	Network UPS Tools upsmon 2.0.0.4
Level     INFO	09/19/2018 11:40:09	UPS: qnapups@192.168.xxx.xxx (slave) (power value 1)
Level     INFO	09/19/2018 11:40:09	Config Load: MINSUPPLIES set to 1
Level     INFO	09/19/2018 11:40:09	Config Load: NOTIFYCMD set to c:\Program Files\WinNUT\alertPopup.exe
Level     INFO	09/19/2018 11:40:09	Config Load: POLLFREQ set to 5
Level     INFO	09/19/2018 11:40:09	Config Load: POLLFREQALERT set to 5
Level     INFO	09/19/2018 11:40:09	Config Load: HOSTSYNC set to 15
Level     INFO	09/19/2018 11:40:09	Config Load: DEADTIME set to 15
Level     INFO	09/19/2018 11:40:09	Config Load: RBWARNTIME set to 43200
Level     INFO	09/19/2018 11:40:09	Config Load: NOCOMMWARNTIME set to 300
Level     INFO	09/19/2018 11:40:09	Config Load: FINALDELAY set to 5
Level    ALERT	09/19/2018 11:40:09	WinNUTUpsMon Service is starting to monitor UPS

テレビサーバのT3500、T3500TV、T3600にインストール設定完了

QNAPのNUTと通信出来るかを確認するため、QNAP CLIENTから情報を取得してみる。

upsc qnapups@192.168.xxx.xxx
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.runtime: 1680
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 26.8
battery.voltage.nominal: 24.0
device.mfr: American Power Conversion 
device.model: Smart-UPS 750
device.serial: AS1317214978  
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 1
driver.parameter.port: /dev/ttyS1
driver.version: 2.6.5
driver.version.data: APC HID 0.95
driver.version.internal: 0.37
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.firmware: UPS 08.3 / ID=18
ups.mfr: American Power Conversion 
ups.mfr.date: 2013/04/27
ups.model: Smart-UPS 750
ups.productid: 0003
ups.serial: AS1317214978  
ups.status: OL
ups.timer.reboot: -1
ups.timer.shutdown: -1
ups.vendorid: 051d

このように情報が取得出来る。
ところで、Windows版のupscは何処にあるんだ?

動作確認のため、ACケーブルを抜いてみる。きちんと仕事をしてくれているようだ。

Level   NOTICE	09/19/2018 12:32:58	UPS qnapups@192.168.xxx.xxx on battery
Level   NOTICE	09/19/2018 12:33:09	UPS qnapups@192.168.xxx.xxx on line power

なぜか、popupが立ち上がってこないなぁ・・・
しかたないので、line通知に変更

windows版curl.exeを配置してから、sndline.batを作成

:line settings
	set url="https://notify-api.line.me/api/notify"
	set curl="E:\bin\curl.exe"
	set token="Line Token ID"
	set lineMSG="message=[ %COMPUTERNAME% ] UPS IS ON BATTERY!!!"
echo %lineMSG%
:Line送信処理
	%curl% %url% -H "Authorization: Bearer %token%" -d %lineMSG%

batを書いても通知が来ないなぁ・・・
Install先が悪いのかもしれないなぁ・・・
installディレクトリを変更してみるか。

参考)

Mac PegasusRaidのマウントポイントを変更する

Macで外部ディスクを接続すると、自動的にマウントしてくれる便利な機能だけど、諸般の事情でマウントポイントを変更したいと思ったので、fstabを書いた。

UUIDを調べて、
diskutil info /Volumes/Xsan

   Device Identifier:        disk3s2
   Device Node:              /dev/disk3s2
   Whole:                    No
   Part of Whole:            disk3
・・・略・・・
   Volume UUID:              17F30C58-2483-3D85-A047-****F491****
   Disk / Partition UUID:    6CC7D695-3550-4746-9C69-****F37B****
・・・略・・・
   Device Location:          External
   Removable Media:          Fixed

こんな感じで書けばOK
cat /etc/fstab

UUID=17F30C58-2483-3D85-A047-****F491**** /Volumes/Xsan/xsan1 hfs rw
UUID=FE316269-AE72-3304-AE9A-****AACE**** /Volumes/Xsan/xsan2 hfs rw

NFSDも動かしているので、
exportsも変更しておく
cat /etc/exports

/Volumes/Xsan/xsan1 -mapall=hoge:fuga
/Volumes/Xsan/xsan2 -mapall=hoge:fuga

書換後、systemに反映させる。

# sudo nfsd update