raspi:squid

QNAP上でSquidを稼働させている記事は以前書きましたが、今回はSquid+SquidGuardを使ってフィルタとして稼働させてみます。
raspiのシステムは、microsd cardに入っているので、ガリガリ書き込みしたくないので、squidについては、NOCACHEにて運用しよう。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install squid

squidのインストールが完了すれば、confを書いていく

$ cd /etc/squid
$ sudo cp squid.conf squid.conf.org
$ sudo vi squid.conf

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
#acl localnet src fc00::/7       # RFC 4193 local private network range
#acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
acl localnet src 192.168.0.0/16
acl homenet src 192.168.10.0/16

#
# 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
http_access allow localhost
http_access allow localnet
http_access allow homenet

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

# キャッシュを無効にする。下記を最下部に追記。
acl NOCACHE src all
cache deny NOCACHE

別のターミナルを立ち上げ、logファイルを垂れ流しておく

***terminal 2***
$ sudo tail -f /var/log/squid/access.log

configを編集したターミナルでsquidを再起動する。

$ sudo service squid restart

クライアントのブラウザでproxyの設定を行い、logを確認する。
このような感じでlogが流れていく。

1538618882.922     15 192.168.0.230 TCP_MISS/200 1208 GET http://image.itmedia.co.jp/enterprise/images/icon_rss_s.gif - HIER_DIRECT/52.193.116.243 image/gif
1538618882.925     16 192.168.0.230 TCP_MISS/200 991 GET http://image.itmedia.co.jp/images/ulli_mail2.gif - HIER_DIRECT/52.193.116.243 image/gif
1538618882.928     18 192.168.0.230 TCP_MISS/200 916 GET http://image.itmedia.co.jp/enterprise/images/ulli_document1.gif - HIER_DIRECT/52.193.116.243 image/gif
1538618882.974     20 192.168.0.230 TCP_MISS/200 2777 GET http://api.popin.cc/searchbox/itmedia_enterprise.js - HIER_DIRECT/192.229.144.139 text/javascript
1538618883.188     12 192.168.0.230 TCP_MISS/200 38980 GET http://api.popin.cc/popin_discovery5-min.js - HIER_DIRECT/192.229.144.139 text/javascript
1538618883.209    120 192.168.0.230 TCP_MISS/503 367 GET http://ipv6.beacon.itmedia.jp/1.gif? - HIER_DIRECT/2406:da14:a0b:8101:6857:a45e:4b75:c2d text/html
1538618883.241    155 192.168.0.230 TCP_MISS/200 343 GET http://ipv4.beacon.itmedia.jp/1.gif? - HIER_DIRECT/52.193.116.243 image/gif
1538618883.284    197 192.168.0.230 TCP_MISS/200 343 GET http://dualstack.beacon.itmedia.jp/1.gif? - HIER_DIRECT/13.115.214.152 image/gif
1538618883.626      9 192.168.0.230 TCP_MISS/200 13263 GET http://api.popin.cc/td_js_sdk_171.js - HIER_DIRECT/192.229.144.139 text/javascript
1538618883.880     11 192.168.0.230 TCP_MISS/200 27989 GET http://api.popin.cc/media_search-min_v2.js - HIER_DIRECT/192.229.144.139 text/javascript
1538618885.428     44 192.168.0.230 TCP_MISS/200 5909 GET http://cdn.pardot.com/pd.js - HIER_DIRECT/151.139.109.8 text/javascript
1538618885.574     17 192.168.0.230 TCP_MISS/200 1536 GET http://www.itmedia.co.jp/favicon.ico - HIER_DIRECT/54.95.197.12 image/vnd.microsoft.icon
1538618892.359     35 192.168.0.230 TCP_MISS/200 380 GET http://rlog.popin.cc/s.gif? - HIER_DIRECT/54.248.244.173 image/gif

raspi:mysql

apt-get install mysql

でインストール完了後、設定しているうちに、データの整合性がとれなくなった。
しかたなく、mysqlのデータベースを全て削除し、再インストールを行う。

$ sudo service mysql stop
$ sudo rm -rf /var/lib/mysql/*
$ sudo mysql_install_db --datadir=/var/lib/mysql
$ sudo service mysql start
$ sudo /usr/bin/mysql_secure_installation
$ sudo mysql_secure_installation
$ mysqladmin -u root password 'passwd'
$ mysql -u root -p

ログイン出来る事を確認する。

raspi:proftpd ssl Let’s encrypt

raspiにproftpdをインストールし、ssl/tls運用を始める。

apt-get update
apt-get install proftpd

sslはcertbotで作成した証明書をそのまま使用する。

/etc/proftpd/proftpd.conf
ServerName                      "ras.viasv.com"
Include /etc/proftpd/tls.conf
Port                            xxxxx
#今回はPassiveじゃなくてもOKなはずだが、Passiveにしておく
PassivePorts                  xxxx xxxx
MasqueradeAddress               xxx.xxx.xxx.xxx
Include /etc/proftpd/tls.conf
[code]
基本的な設定が済めば、tlsの設定を行う。

[code]
/etc/proftpd/tls.conf
TLSEngine               on
TLSLog                  /var/log/proftpd/tls.log
TLSProtocol             SSLV23

TLSRSACertificateFile           /etc/letsencrypt/live/domain_name/cert.pem
TLSRSACertificateKeyFile        /etc/letsencrypt/live/domain_name/privkey.pem
TLSCACertificateFile            /etc/letsencrypt/live/domain_name/chain.pem

service proftpd restart
でOKなはず。
cyberduckで確認OK

raspi:環境設定

前回、SDカードにRaspbianOSのインストールを行ったので、OSを起動して自分の環境に合わせて設定していく。

SDカードをRasPiにセットし、Networkケーブル、HDMIケーブル、USBKeyboardを接続し、USB Powerで給電開始する。今回は、2018-06-27-raspbian-stretch-lite.imgをインストールしたため、CUI環境のみで利用するつもりだ。しかしいざ起動してみると、2018-06-27-raspbian-stretch.imgをインストールしていたようで、この通りX-Windowが起動してきた。
2018-06-27-raspbian-stretch.imgをインストールしたのであれば、マウスも必要になる。

電源投入後、Partitionのリサイズが自動的に行われる。

初期ユーザー
Login:pi@raspberry

OSのバージョンを確認しておく

$ uname -a
Linux raspberrypi 4.14.50-v7+ #1122 SMP Tue Jun 19 12:26:26 BST 2018 armv7l GNU/Linux
$ cat /etc/debian_version 
9.4

debian 9.4(stretch)だ。

rootのパスワードを設定しておく

piユーザーは嫌なので、新規にUserを作成

Default [pi]ユーザーのGroupを確認

$ groups pi

pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio

sudo useradd --groups adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio -m [user_name]

作成したuserのパスワードを設定

sudo passwd [user_name]

新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました

pi ユーザーを削除するので、その前に、作成したUserIDでlogin出来るか確認しておく。

piユーザーのロック

$ sudo passwd --lock pi

passwd: パスワード期限切れ情報を変更しました

新規作成したUserのshellが未設定なので、/etc/passwdに/bin/bashを追加

なにやら自動的に、apt-get update&apt-get upgradeがかかったようだ。
しばらく時間がかかりそう15分くらい???

$ sudo passwd
Enter new UNIX password:
Retype new UNIX password:

続いてネットワークをstaticに変更する。このRaspbianOSでは、以前の作法と変わっているようで、 IP ADDRESS は、このように設定した。

$ ip a s | grep glo
inet 192.168.0.136/24 brd 192.168.0.255 scope global enxb827ebf734ad

/etc/dhcpcd.conf
#interface eth0
interface enxb827ebf734ad
static ip_address=192.168.0.232/24
static routers=192.168.0.254
static domain_name_servers=192.168.0.254 8.8.8.8

言われるがままに、再起動する。

再起動後、sshdの起動設定を行う。再起動前にやっておけよ。

sshdの起動

$ sudo raspi-config
5 Interfacing Options
P2 SSH
P3 VNC
P4 SPI
P5 I2C

これで、sshdで作業が出来る環境が整いました。

piユーザーは嫌なので、直接/etc/passwd , /etc/group を編集し、別のユーザー名に変更
以下の作業は行わない方が良いかもしれない。後々問題が出てくるかもしれない。

$vi /etc/password

$vi /etc/group

$mv pi kaz

$root@ras2:/home# chown -R kaz:kaz kaz

$sudo passwd kaz

ssh鍵登録

macosで作成した鍵をraspiに登録する。

scp .ssh/id_rsa.pub ras:/home/username/.ssh/authorized_keys

macからsshでpassphrase無しでlogin出来る事を確認する。