本文へスキップ

JA2GZZ Shizuoka Japan. GL:PM95KF

CQ CQ CQ de JA2GZZ

QRZ.comはこちら

Banana Prolubuntu

 Banana Proで自宅サーバー構築

2017/2/12

 中華製の Bnana Pro というSmall Bord Computerがあります。この手のSBCはHDDがなくともSDメモリーカードのみで Linuxを動作させることが可能ですがサーバーとした場合、アクセス頻度にも依りますが1〜2年でSDメモリーの書き換え可能回数を超えてしまい新品のSDメモリーに交換する必要が出てきます。その点、本器は SATA HDD I/F を備えているので安心できます。早速購入すべくAmsazonで調べたら、SBC本体とケースのセットが売っていました。只、付属アクセサリーやACアダプターも欲しく、すべてがセットになったものを中華の販売店で見付けました。送料は無料でVISAによる決済が多少不安でしたが2週間ほどで無事配達されました。


【目 次】

・リナックスOSのインストール

・Windowsから Lubuntuの共有ホルダーにアクセス

・Lubuntuから Windowsの共有ホルダーにアクセス

・アンチウィルスソフト Clam AntiVirus の設定

・HTTPサーバー Apache の設定

・FTPサーバー vsfptd の設定

・CGI掲示板 Joyful Noteの設置

・メールサーバー Postfix の設定

・時刻サーバー NTPd の設定

・ファイヤーウオール gufwの設定

・その他

 

 

↑このページの先頭に戻る
リナックスOSのインストール
Lubuntu(ルブントゥ)Ver 14.04
↑このページの先頭に戻る

 

0. Windowsパソコンで前準備
  Bnana Pro のSDカード用 Linuxイメージは複数公開されていますが、今回は Lubuntu_For_BananaPro_v1412.7z ディスクイメージをダウンロードします。

  このページを参考にWindowsで動作する、MicroSDカード format tool 及びMicroSDカードに、解凍したディスクイメージ.img を書き込む Win32Diskimager を用いてLinuxが起動するMicroSDカードの準備をします。(2'項参照)

クリックで拡大 クリックで拡大

 

 

 1. Lubuntu の起動方法
OSイメージの書き込まれたMicro SDカードを Banana Pro のカードスロットに装着し、DC電源を本体に差し込むと(+5V電源オン)暫く内部処理を繰り返した後、Lubuntu(英語版) が立ち上げってきます。ログイン画面は以下の要領で操作してください。

  

 root 権限でログイン
  ログイン画面で[Lemaker ▼]を押して Others を選ぶ
  ユーザー名:root
  パスワード:bananapi
 クリックで拡大クリックで拡大

 

 

 

 

 2. 2.5" HDDのインストール

 本器をサーバー用途に使う場合はSDカードの書き換え可能回数超過を憂慮し、これは使わず 2.5" HDDを使用します。先ずSTATポートとHDD間の信号線及び電源線を配線します、OSイメージが書き込まれた Micro SDカードを本体に装着しDC電源を差し込むと(+5V電源オン)暫くして英語版が立ち上がってきます

・SATAパーティションの作成
OSが立ち上がったら root権限でログイン[スタートアイコン]⇒[Accessories]⇒[LXTerminal]fdiskを起動します。

 HDD内の既存パーティションをすべて削除
  root@Lubuntu:~# fdisk /dev/sda
  Command (m for help): d
  Command (m for help):
w

 

 新たにパーティションを作成

 root@Lubuntu:~# fdisk /dev/sda

  Command (m for help): n
  Command (m for help):
p
  Enter Partition number 1
  Accept the default start sector, press Enter
  Accept default end sector, press Enter
  Command (m for help): w

 ext4ホーマットしたディスクを /dev/sda1 としてマウント
 root@Lubuntu:~# mke2fs -t ext4 -L rootfs /dev/sda1

 

・OSをSATA HDDへコピー
SDカードの内容をSATAに書き込むためテンポラリー マウント ポイントを作成
root@Lubuntu:~#
mkdir /tmp/sata

 ドライブを /tmp/sata ディレクトリーへマウント
root@Lubuntu:~# mount /dev/sda1 /tmp/sata

root "/" で表示されるすべてのファイルを /tmp/sata ディレクトリーへコピー

(処理に10分程度掛かります)
root@Lubuntu:~# rsync -arx --progress / /tmp/sata

Banana Proの Boot を SATA ハードドライブに変更
root@Lubuntu:~# mount /dev/mmcblk0p1 /boot

root ホルダーを SATAドライブ /dev/sda1 に変更
root@Lubuntu:~# leafpad /boot/uEnv.txt  又は  gedit /boot/uEnv.txt

【注意】行や改行や空白を追加や削除しないこと(次の語句のみ変更する)
root=/dev/mmcblk0p2 root=/dev/sda1 に変更後保存する。


メモリにバッファされたすべてのデータをディスクに書込
root@Lubuntu:~# sync

 再起動すれば処理完了
root@Lubuntu:~# reboot

(再起動中・・・)

 

・再起動後、HDDのインストール(マウント)を確認
[スタートアイコン]⇒[設定]⇒[ディスク]を起動すると、図のようにHDDをマウントしてもディスクの起動情報(MBR)はSDメモリーに格納されているので、そのまま本体のSDカードホルダーに挿入しておく必要があります。【注意】14.04では[再起動]を指定するとBOOT途中でハングアップするバグがあるので、一旦[シャットダウン]⇒[電源アダプーターの脱着・再挿入]を行ってください。

クリックで拡大クリックで拡大

 

・HDDインストール後のトラブル(インストール毎に発生する場合としない場合がある?)

 当方の環境ではインストール後、ユーザー ted でログイン時 USBメモリーを刺しても図のエラーメッセ―ジが出て操作ができない現象が発生した・・・ root権限でログイン図のように /media/ted ホルダーを右クリック ⇒ [プロパティ―]⇒ [パーミッション]欄で3か所のアクセス制限を[すべて]に変更する。

クリックで拡大

 

 

2'.(参考資料)SDカード空き容量の拡張

 HDD使用時は本稿不要ですが SDカードのみで使用する場合は、前準備段階で Win32Diskimager を用いて MicroSDカードにOSイメージを書き込む時、4GB以上のSDカードを使用しますが、4GBのSDカードでは数百KBしかディスクの空き容量がなく実用的ではありません…と言って8GB〜16GB のSDカードでOSメージを書き込んでも4GB以上は未使用エリアーとなりディスクの空き容量は拡張されません。そこで以下の要領で8GB 以上のSDカードで、ディスクの空き容量を拡張します。

 OSを起動中のSDカードのパーティション変更はできないので、便宜上、OSイメージを書き込んだ 4GBの MicroSDカードと8GB〜16GBのものを用意し 4GBはOS起動用に、8GB〜16GBSDカードの空き容量を拡張する為、USB接続の「MicroSDカードリーダー」に入れて本器のUSB端子に接続します。

OSが立ち上がったら root権限でログイン[スタートアイコン]⇒[Accessories]⇒[LXTerminal]を起動し、パーティション編集ツール gpartrd をインストールします。

root@Lubuntu:~# apt-get install gparted

 インストールが完了したら[スタートアイコン]⇒[System Tools]⇒[GPerted]を起動し、下図の要領でSDカードの全未使用エリアーをディスク空き容量に統合しますが、鍵マークがある場合はリサイズ操作ができないので;
 【案
@USB端子から「MicroSDカードリーダー」を何回か抜き差しした後 鍵マークが消えればラッキー(操作可能)
 【
A
まだ鍵マークがある場合は下図[アンマウント]をクリックすれば[リサイズ/移動]が出来るようになります。

クリックで拡大クリックで拡大

   本体のSDカードスロットに4GBのものを挿入し、上記操作で鍵マークが消えた8GB〜16GBSDカードをUSB接続の「MicroSDカードリーダー」に入れて本体のUSB端子に接続します。[GPerted]

クリックで拡大クリックで拡大クリックで拡大クリックで拡大

 

 

 

3. エンドユーザー用初期設定
 ディスクトップ左下の[スタートアイコン]⇒[System Tools]⇒[Prepere shipping to end user]をクリックし、現れた画面の OK クリックします。次に[スタートアイコン]⇒[Logout]⇒[Reboot]再起動立ち上がってきた画面で、自分用のユーザー名、パスワード、言語:日本語、所在地:Tokyo 等を入力します。

  :
 再起動
  :

# --------↓↓ここから↓↓------所要時間90分------------------------------
Welcome [日本語]を選び ⇒[続ける]
ようこそ    [日本語]          ⇒[続ける]
・どこに住んでいますか?  [Tokyo]            ⇒[続ける]
・キーボードレイアウト[日本語]-[日本語] ⇒[続ける]
 クリックで拡大

・あなたの情報を入力してください。

  あ な た の  名 前:ted
  コンピューターの名前:Lubuntu
  ユ ザ ー 名 の 入力:ted
  パ ス ワ ー ド の 入力:************
  パ ス ワ ー ド の 確認:************
  ● 自動的にログインする
    ○ ログイン時にパスワードを要求する
      □ ホームホルダーを暗号化する ⇒[続ける]

 

・Lubuntu 14.04へようこそ

エンドユーザー処理中・・・(▼ハードウエア―を設定しています 画面の指示に従い時々Enterキーを押す)
自動終了しないバグあり

画面無操作10分で画面が暗くなりその後復帰できないバグもあるので、数分ごとにマウス右クリックでダミー操作のこと。さもなくば、画面が真っ暗で何も操作ができないので永遠にエンドユーザー処理が終わりません!

概ね20分経過したら、設定プログラム画面右上の をクリック ⇒ 本当に終了しますか? の確認メッセージ画面[終了]をクリック;
Applying Chenges 画面
・・(▼Detail 画面の指示に従い時々Enterキーを押す)
・タスクバーに[Software Updater]が隠れていてディスクトップに表示されていない⇒表示し[Install Now]をクリック
・[パスワード]入力
・・・(▼Detail 画面の指示に従い時々Enterキーを押す)
・[パスワード]入力後「再起動」をクリック ⇒ 暫く内部処理後自動的に再起動する

(途中で何回か表示される V16.04へのアップグレード誘惑は拒否すること)

 ■これらの処理には1時間強掛かります。
# --------↑↑ここまで↑↑----------------------------------------------------

 

    

4. Lubuntu のアップデート
[スタートアイコン]⇒[システム ツール]⇒[Software Updater]をクリックします。
(後半で表示される V16.04へのアップグレード誘惑は拒否すること)

 

 

5. Firefox の日本語化
https://addons.mozilla.org/ja/firefox/addon/japanese-language-pack-1

上記URLに従って、Japanese Language Pack の Add-ons を行ってください。
終了後 Firefox を再起動すれば日本語化されている筈です。

 

 

6. 日本語IMEに関し[半角/全角]キーを押しても切り替えができず、
   戸惑っています?
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0417

日本語入力(インプットメソッド)に関し、16.04にアップグレードすると自動的にFcitx+Mozcの組み合わせに変更・・・
       

取りあえず足りない日本語パッケージをインストールします。
root@Lubuntu:~# apt-get install $(check-language-support)

 
そして,次のコマンドでFcitxに切り替えます。
root@Lubuntu:~# im-config -n fcitx

変更後、一度ログアウトして再ログインしてください。

  

7. よく使うエディター gedit をインストールしておきましょう。
root@Lubuntu:~#  apt-get install gedit

 

 

 

↑このページの先頭に戻る
Windowsから Lubuntuの共有ホルダーにアクセス
↑このページの先頭に戻る

 Lubuntuに共有ホルダーを設定し、Windowsパソコン等からアクセス出来るようにします。

この設定で、Windows 10のファイル エクスプローラーからは次の2つの共有ホルダーにアクセス出来ます。
\\Lubuntu\html (実ホルダーは  /ver/www/html)
\\Lubuntu\work (実ホルダーは  /work)

1.sambaサーバーのインストール
1.1.サーバーのインストール

root@Lubuntu:~# apt-get -y install samba
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
                        :
attr (1:2.4.47-1ubuntu1) を設定しています ...
samba-dsdb-modules (2:4.3.11+dfsg-0ubuntu0.14.04.4) を設定しています ...
samba-vfs-modules (2:4.3.11+dfsg-0ubuntu0.14.04.4) を設定しています ...
Processing triggers for libc-bin (2.19-0ubuntu6.9) ...
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for ufw (0.34~rc-0ubuntu2) ...

 

1.2.サーバーへ ユーザーを(追加)登録
 Windows PCからLubuntuへアクセスする場合、Windows側ファイルエクスプローラー等で入力を求められる ユーザー名、パスワードをsambaサーバーへ登録します。(sambaへアクセスできるユーザを追加)

root@Lubuntu:~# pdbedit -a ted                  ← ユーザー名 ted を登録(ted は固有名詞に付き要変更)
tdbsam_open: Converting version 0 database to version 3.
new password:(エコーバック無し)               ← パスワードを入力する事
retype new password:(エコーバック無し)     ← パスワード再入力
Unix username: ted
NT username:
Account Flags: [U ]
User SID: S-1-5-21-2523982801-1627547015-649443663-1000
Primary Group SID: S-1-5-21-2523982801-1627547015-649443663-513
Full Name: ted
Home Directory: \\lubuntu\ted
HomeDir Drive:
Logon Script:
Profile Path: \\lubuntu\ted\profile
Domain: LUBUNTU
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: 火, 10 1月 2017 22:56:48 JST
Password can change: 火, 10 1月 2017 22:56:48 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

 

 

2.smb.conf設定ファイルの編集
oot@Lubuntu:~# gedit /etc/samba/smb.conf
(↓ファイル内容)
# --------↓↓ここから↓↓----------------------------------------------------

# #####################################################
# オリジナルの smb.conf はゴチャゴチャしているので廃棄し、ここの内容に置き換えます。

# gedit /etc/samba/smb.conf
#
# for Lubuntu 16.04 LTS
#
# ゴチャゴチャしているので必要最小限の記叙にしました。
# この設定で、Windows 10のファイル エクスプローラー
# からは次の2つの共有ホルダーにアクセス出来ます。
# \\Lubuntu\html  (実ホルダーは  /ver/www/html)
# \\Lubuntu\work (実ホルダーは  /work)
# #####################################################

[global]
usershare owner only = false
log file = /var/log/samba/%m.log
max log size = 50
cups options = raw
load printers = yes
# 共有コンピューター名
netbios name = Lubuntu
server string = Samba Server Version %v
# 共有するホルダー#1
path = /var/www/html
# ワークグループ
workgroup = WORKGROUP
# コメント
comment = Lubuntu
# 127.***.***.*** と 192.168.1.*** のアクセスを許可する。(自己の環境に合わせる事)
hosts allow = 127. 192.168.1.
# 共有ホルダー名#1 html
###security = html
###passdb backend = tdbsam
# 文字コード設定
unix charset = UTF-8
display charset = UTF-8
dos charset = CP932

# 共有ホルダー名#1 html の定義項目
[html]
## 共有するホルダー#1
## path = /var/www/html
# 強制的に root ユーザーと見做す
force user = root
writeable = yes
public = yes
share modes = yes
create mode = 0777
guest only = yes
directory mode = 0777

# 共有ホルダー名#2 work の定義項目
[work]
# 共有するホルダー#2
path = /work
# 強制的に root ユーザーと見做す
force user = root
writeable = yes
public = yes
create mode = 0777
guest only = yes
# --------↑↑ここまで↑↑----------------------------------------------------

 

/work ホルダーは存在しないので新たに作成し、外部からの読書を可能とする為フルパーミッションを与える必要があります。
root@Lubuntu:~# mkdir /work                   ←  /work ホルダーを新規作成
root@Lubuntu:~# chown -R ted /work       ←  /work ホルダー所有者を設定ted は固有名詞に付き要変更
root@Lubuntu:~# chmod 777 /work          ←  フル パーミッション 777 を設定

設定を変更したら、sambaを再起動する

root@Lubuntu:~# /etc/init.d/samba restart
[ ok ] Restarting nmbd (via systemctl): nmbd.service.
[ ok ] Restarting smbd (via systemctl): smbd.service.
[ ok ] Restarting samba-ad-dc (via systemctl): samba-ad-dc.service.

 

3.WindowsからLubuntu共有ホルダーをアクセス
3.1.Windows側の操作

クリックで拡大 Windowsエクスプローラーから「ネットワーク」を見ると smb.confで設定した共有ホルダー Lubuntu TED_NET - html ホルダーが見えている筈です。

 netbios name=Lubuntu、workgroup=TED_NETホルダー名=html

「ネットワーク資格情報の入力」欄には《1.2.サーバーへ ユーザーを(追加)登録》で登録したユーザー名とパスワードを入力します。

【ワンポイント】ファイヤーウオールの設定はOKですか?

【参考】セキュリティソフトが過敏すぎて相手PCを遮断している場合があります。一旦、セキュリティソフトを止めてネットワーク越しにアクセスできるか確認ください。

以上で Windowsエクスプローラーから 共有ホルダー html 内の読み書きが可能となりました。

 

 

↑このページの先頭に戻る
Lubuntuから Windowsの共有ホルダーにアクセス
↑このページの先頭に戻る

 ネットワーク経由でWindows 10パソコンの(共有設定済み)ホルダーへ Lubuntu からアクセスするには、Windows側PCで、その共有ホルダーのパーミッションが Everyone で全ての人に解放されているか、今からアクセスしようとしているLubuntuのユーザーに解放されている必要があります。

クリックで拡大 (CenrOS-6での例)

 [場所]→[ネットワーク]→[Windowsネットワーク] で接続したいドメイン(TED_NET)を選び、接続したい Windows PCGAZ77MXをクリックします。パスワード確認画面では接続したいWindows PC(GAZ77MX)側のユーザー名、パスワードを入力します。目的PCに入り込んだら、そのPCで予め Everyoneパーミッションで共有設定されているホルダーにアクセスします(アクセスすることが出来ます)

 但し、LubuntuからWindows 10パソコンにアクセスするにはサインイン方式が「ローカルアカウント」方式になっている必要があります。「Microsoftアカウント」方式では上手く接続できません。

【ワンポイント】ファイヤーウオールの設定はOKですか?

【参考】セキュリティソフトが過敏すぎて相手PCを遮断している場合があります。一旦、セキュリティソフトを止めてネットワーク越しにアクセスできるか確認ください。

 

 

↑このページの先頭に戻る
アンチウィルスソフト Clam AntiVirus の設定

↑このページの先頭に戻る

 Linuxのアンチウイルスソフト Clam AntiVirusを導入します。

1.Clam AntiVirusのインストール

root@Lubuntu:~# apt-get -y install clamav
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
clamav-base clamav-freshclam libclamav7 libllvm3.6v5
提案パッケージ:
clamav-docs libclamunrar7
以下のパッケージが新たにインストールされます:
clamav clamav-base clamav-freshclam libclamav7 libllvm3.6v5
アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
9,096 kB のアーカイブを取得する必要があります。
この操作後に追加で 36.7 MB のディスク容量が消費されます。
                            :
man-db (2.7.5-1) のトリガを処理しています ...
clamav-base (0.99+dfsg-1Lubuntu1.2) を設定しています ...
libllvm3.6v5:amd64 (1:3.6.2-3Lubuntu2) を設定しています ...
libclamav7 (0.99+dfsg-1Lubuntu1.2) を設定しています ...
clamav-freshclam (0.99+dfsg-1Lubuntu1.2) を設定しています ...
clamav (0.99+dfsg-1Lubuntu1.2) を設定しています ...
libc-bin (2.23-0Lubuntu3) のトリガを処理しています ...
systemd (229-4Lubuntu8) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...

 

 

2.動作確認としてスキャンを実行

root@Lubuntu:~# clamscan --infected --remove --recursive /home
----------- SCAN SUMMARY -----------
Known viruses: 4849435
Engine version: 0.99
Scanned directories: 158
Scanned files: 1682
Infected files: 0
Data scanned: 103.03 MB
Data read: 76.93 MB (ratio 1.34:1)
Time: 17.808 sec (0 m 17 s)

 

3.試験用無害ウィルスをダウンロード

root@Lubuntu:~# wget http://www.eicar.org/download/eicar.com
--2016-09-28 19:59:24-- http://www.eicar.org/download/eicar.com
www.eicar.org (www.eicar.org) をDNSに問いあわせています... 213.211.198.62
www.eicar.org (www.eicar.org)|213.211.198.62|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 68 [application/octet-stream]
`eicar.com' に保存中
eicar.com 100%[===================>] 68 --.-KB/s in 0s
2016-09-28 19:59:26 (7.55 MB/s) - `eicar.com' へ保存完了 [68/68]

ウイルススキャン実行

root@Lubuntu:~# clamscan --infected --remove --recursive ./

./eicar.com: Eicar-Test-Signature FOUND  #試験ウイルス発見
./eicar.com: Removed.   
#削除された
----------- SCAN SUMMARY -----------
Known viruses: 4849435
Engine version: 0.99
Scanned directories: 17
Scanned files: 15
Infected files: 1
Data scanned: 0.02 MB
Data read: 0.03 MB (ratio 0.86:1)
Time: 6.606 sec (0 m 6 s)

 

  

↑このページの先頭に戻る
HTTPサーバー Apache の設定
 ↑このページの先頭に戻る

 みなさんの中でも、ご自身又はご家族の方で「自前のホームページ」を開設されている方がいると思います、これにはインターネットプロバイダーとの契約時に付いてくる「無料ホームページ」「FC2」「nazca」等の無料ホームページを利用していると思います。 只、無料ホームページでは利用できる容量が少ない、速度が遅い、広告が入ってしまう等の不満もあると思います。このような時、往年の Windows XPマシンを転用したリナックス(Lubuntu)マシンによる本格的な「自宅HTTP・FTPサーバー/自宅ホームページ」を開設することができます・・・これを24時間稼働しておけば本格的なホームページが完成です。

1.HTTPd(Web)サーバーのインストール
1.1.
Apache Webサーバーのインストール

root@Lubuntu:~# apt-get -y install apache2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
提案パッケージ:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom
以下のパッケージが新たにインストールされます:
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
                    :
apache2-bin (2.4.18-2Lubuntu3.1) を設定しています ...
apache2-utils (2.4.18-2Lubuntu3.1) を設定しています ...
apache2-data (2.4.18-2Lubuntu3.1) を設定しています ...
apache2 (2.4.18-2Lubuntu3.1) を設定しています ...
                    :
ureadahead (0.100.0-19) のトリガを処理しています ...
ufw (0.35-0Lubuntu2) のトリガを処理しています ...

↑インストールが終わると既に Apacheは起動しています。試しにApacheをインストールしたPCのブラウザhttp://localhost もしくは http://127.0.0.1 と入力すれば index.html の内容が表示される筈です。

 

1.2.PHP5 をインストール  

root@Lubuntu:~# dpkg -l |grep php | awk '{print $2}'
root@Lubuntu:~# add-apt-repository ppa:ondrej/php
Co-installable PHP versions: PHP 5.5, 5.6, PHP 7.0 and batteries included.
You can get more information about the packages at https://deb.sury.org
For PHP 5.4 on Lubuntu 12.04 use: ppa:ondrej/php5-oldstable
BUGS&FEATURES: This PPA now has a issue tracker: https://deb.sury.org/#bug-reporting
PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/
WARNING: add-apt-repository is broken with non-UTF-8 locales, see https://github.com/oerdnj/deb.sury.org/issues/56 for workaround:
# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
詳しい情報: https://launchpad.net/~ondrej/+archive/Lubuntu/php
[ENTER] を押すと続行します。ctrl-c で追加をキャンセルできます
gpg: 鍵リング「/tmp/tmp5bws7ouz/secring.gpg」ができました
gpg: 鍵リング「/tmp/tmp5bws7ouz/pubring.gpg」ができました
gpg: 鍵E5267A6Cをhkpからサーバkeyserver.Lubuntu.comに要求
gpg: /tmp/tmp5bws7ouz/trustdb.gpg: 信用データベースができました
gpg: 鍵E5267A6C: 公開鍵"Launchpad PPA for Ondřej Surý"をインポートしました
gpg: 処理数の合計: 1
gpg: インポート: 1 (RSA: 1)
OK

 

1.3.パッケージライブラリをアップデート
root@Lubuntu:~# apt-get update

ヒット:1 http://jp.archive.Lubuntu.com/Lubuntu xenial InRelease
ヒット:2 http://jp.archive.Lubuntu.com/Lubuntu xenial-updates InRelease
ヒット:3 http://jp.archive.Lubuntu.com/Lubuntu xenial-backports InRelease
取得:4 http://ppa.launchpad.net/ondrej/php/Lubuntu xenial InRelease [23.9 kB]
ヒット:5 http://security.Lubuntu.com/Lubuntu xenial-security InRelease
取得:6 http://ppa.launchpad.net/ondrej/php/Lubuntu xenial/main amd64 Packages [45.8 kB]
取得:7 http://ppa.launchpad.net/ondrej/php/Lubuntu xenial/main i386 Packages [45.8 kB]
取得:8 http://ppa.launchpad.net/ondrej/php/Lubuntu xenial/main Translation-en [25.2 kB]
141 kB を 3秒 で取得しました (46.6 kB/s)
パッケージリストを読み込んでいます...
完了

 

 

2.HTTPdサーバーの基本設定
2.1.設定ファイルの編集

各設定ファイルの編集
root@Lubuntu:~#
gedit /etc/apache2/conf-enabled/security.conf
    # 25行目:変更
    ServerTokens Prod


root@Lubuntu:~# gedit /etc/apache2/mods-enabled/dir.conf
    # 2行目:ディレクトリ名のみでアクセスできるファイル名を確認
    DirectoryIndex index.html index.htm

 

root@Lubuntu:~# gedit /etc/apache2/apache2.conf
    # 70行目:サーバー名を追記
    ServerName ja2gzz.website

 

root@Lubuntu:~# gedit /etc/apache2/sites-enabled/000-default.conf
    # 11行目:管理者アドレス設定
    ServerAdmin mycall@jarl.com

  【注】別途設定追加あり

 

 ●各ファイルの編集が終わったらサーバーを再起動
root@Lubuntu:~# /etc/init.d/apache2 restart
[ ok ]
Restarting apache2 (via systemctl): apache2.service.

 

 

3.HTTPdサーバー使用の前準備
3.1.ルーターの設定
  Webサーバーを外部に公開するには httpや ftp用ポートの穴あけ等 ルーターの設定が必要です。 又、外部から自前の WEBサーバーにアクセスして貰う為には そのサーバーの(ローカル)IPアドレス(例 )192.168.1.3 が変化することなく常に同じ値でなくてはいけません。

【注】Windows PCでの説明文ですが Lubuntuでも同じ要領で設定します。

【補足】このルーター設定例ではDHCP自動割付IPアドレスが(例)192.168.1.10〜192.168.1.42 なので逆から言うと 192.168.1.1〜192.168.1.9 および 192.168.1.43〜192.168.1.253(192.168.1.254〜192.168.1.255を除く)の間は絶対にルーターに依って使われないアドレス範囲である・・・だから (例)192.168.1.3 (例)192.168.1.200 をHTTPサーバー用に割り当てる。

【注意】ローカルIPアドレスは一例を示す。現在筆者の自宅サーバーでは IP:192.168.1.200 GW:192.168.1.254 を使用しています。次にネットワークカードの設定で、図の要領で [スタートアイコン]⇒[設定]⇒[Network Connections]を開き、自宅サーバーのローカルIPアドレス例)192.168.1.200 を固定化します。

クリックで拡大 クリックで拡大 クリックで拡大

 

 

3.2.仮想 固定IP化DNSサーバー ドメイン名の取得
 外部から自前の WEBサーバーにアクセスして貰う為にはその(グローバル)IPアドレスが変化することなく常に同じ値(固定IPアドレス)でなくてはいけません。 しかし貴宅はインターネットプロバイダーと「動的IPアドレス」で契約していると思いますので仮想 固定IP化DNSサーバーのドメイン名を取得する必要があります。(例)MyDNS 社のサーバーでユーザー登録し無料ドメイン http://ja2gzz.mydns.jp が使用できるようになりました。

【注意】Windows PCでの説明文ですが Lubuntuでも同じ要領で設定します。

← 便利ツール for Linux    DiCE for Windows版での説明はこちら

 

 

3.3.hostsの編集
 以上でLANの外側(外部・インターネット)からアクセスする為の段取りが出来ましたが、まだ このままでは自宅内のLAN環境

(我が家の他のPC)からは(例)"http://192.168.1.200" でアクセス出来ても "http://ja2gzz.mydns.jp" の表現でアクセスできるように hostsファイルへ追記します。

 

root@Lubuntu:~# gedit /etc/hosts

(↓ファイル内容)
<!-- --------↓↓ここから↓↓----------------------------------------------- -->
127.0.0.1 localhost
127.0.1.1 Lubuntu

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

192.168.1.200 ja2gzz.mydns.jp
<!-- --------↑↑ここまで↑↑----------------------------------------------- -->

 

別の方法: 結果は上記方法と同じですが、[スタートアイコン]⇒[システム ツール]⇒

[ネットワーク]を開き、下図の要領で hostesを設定し、自宅内のLAN環境からも "http://ja2gzz.mydns.jp" の表現でアクセス出来るようにします。

 

クリックで拡大 クリックで拡大 クリックで拡大

【注】hostsを変更した時は次の要領で httpdの再起動 を行ってください
root@Lubuntu:~# /etc/init.d/apache2 restart
[ ok ]
Restarting apache2 (via systemctl): apache2.service.

 

 

4.ホームページ用 htmlソースファイル群の配置
 /var/www/html/ ホルダーにホームページ用 htmlソースファイル群を格納済みですか? 同ホルダーが空だとHTTPdサーバーや FTPdサーバー(含む ffftp)が正常に動作しません。最低でも簡単に作った試験用 index.html を配置する必要があります。試しにApacheをインストールしたPCのブラウザURL欄に http://localhost もしくは http://127.0.0.1 と入力し index.html の内容が表示されれば既に配置済みです。

root@Lubuntu:~# ls /var/www/html/index.html         ← index.html がある事を確認する
/var/www/html/index.html

試験用 index.html(新規作成例)
root@Lubuntu:~# gedit /var/www/html/index.html
(↓ファイル内容)
<!-- --------↓↓ここから↓↓----------------------------------------------- -->
========= TEST =========<br>
The HOMEPAGE is working now<br>
======================<br>
<!-- --------↑↑ここまで↑↑----------------------------------------------- -->

 

 

5.HTTPdサーバー起動
5.1.HTTPdサーバー起動
root@Lubuntu:~# /etc/init.d/apache2 restart         httpd 再起動
[ ok ] Restarting apache2 (via systemctl): apache2.service.

(その他のコマンド)
root@Lubuntu:~# /etc/init.d/apache2 stop              ← httpd 停止
root@Lubuntu:~# /etc/init.d/apache2 start              ← httpd 起動

設定ファイルを編集後、起動に失敗する場合は、/etc/apache2/apache2.con ファイルの設定・記入にミス(文法エラー)があるので要再点検。
(文法エラーを完全に取り除かない限り
起動[失敗]です

 

5.2.外部からのHTTPdサーバーアクセス確認
知人・友人の家から Webサーバーにアクセスできるか確認します。但し、不定期稼働です。

 

【ワンポイント】ファイヤーウオールの設定はOKですか?

 


 

↑このページの先頭に戻る
FTPサーバー vsfptd の設定
↑このページの先頭に戻る

 離れた場所にある他のパソコンから自宅サーバー上に構築したホームページのメンテナンスを行うにはFTP転送ソフト FFFTP等を使用しますが これは一般的なHTTPプロトコルでなくFTPプロトコルでアップデートファイルをWeb(HTTP)サーバーへアップロードします。
      ftp://ja2gzz.mydns.jp IE11 = OKMicrosoft Edge = NG、2016/9/27

1.vsftpdサーバーのインストール
root@Lubuntu:~# apt-get -y install vsftpd
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
vsftpd
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 162 個。
                     :
vsftpd (3.0.3-3Lubuntu2) を展開しています...
systemd (229-4Lubuntu7) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...
man-db (2.7.5-1) のトリガを処理しています ...
vsftpd (3.0.3-3Lubuntu2) を設定しています ...
systemd (229-4Lubuntu7) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...

 

.vsftpdサーバーの設定
2.1.vsftpd.conf設定ファイルの編集
 /etc ホルダーにある vsftpd.conf をエディターで開いて次の様に編集します(行頭に # を記述するとその行はコメント扱いとなる)
root@Lubuntu:~# gedit /etc/vsftpd.conf
(↓主な編集内容)
# --------↓↓ここから↓↓----------------------------------------------------
######################################
# オリジナルの vsftpd.conf はゴチャゴチャしているので廃棄し、ここの内容に置換えます。
# gedit /etc/vsftpd.conf
######################################
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out). ######################################
# 匿名ユーザはログインさせない
# anonymous_enable=YES
anonymous_enable=NO
# ######################################
#
# Uncomment this to allow local users to log in.
local_enable=YES
# ######################################
# ログイン ユーザの初期ディレクトリを指定
local_root=/var/www/html
# ######################################
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
# ######################################
# vsftp 経由で作成したファイルのデフォルトパーミッションを指定
# 022だとパーミッションは644となりグループに対して書き込み権限がない
# 002だとパーミッションは664となりグループに対して書き込みを許可
# local_umask=022
# local_umask=002
# file_open_modeの値からlocal_umaskの値が引かれる 0777-0000=0777
local_umask=0000
file_open_mode=0777
# ######################################
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# The target log file can be vsftpd_log_file or xferlog_file.
# This depends on setting xferlog_std_format parameter
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# The name of log file when xferlog_enable=YES and xferlog_std_format=YES
# WARNING - changing this filename affects /etc/logrotate.d/vsftpd.log
#xferlog_file=/var/log/xferlog
#
# Switches between logging into vsftpd_log_file and xferlog_file files.
# NO writes to vsftpd_log_file, YES to xferlog_file
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
# ######################################
# 接続時時のタイムアウトを設定
# idle_session_timeout=600
idle_session_timeout=300
# You may change the default value for timing out a data connection.
# 接続時時のタイムアウトを設定
#data_connection_timeout=120
data_connection_timeout=30
# ######################################
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
# ######################################
# アスキーモードでアップロード・ダウンロードを許可する
# ascii_upload_enable=YES
# ascii_download_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
# ######################################
#
# You may fully customise the login banner string:
# ######################################
# ログオン時のバナー(必須ではありません、好みで記入)
#ftpd_banner=Welcome to blah FTP service.
ftpd_banner=Welcome to MyName FTP service.
# ######################################
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# ######################################
#### IF chroot_local_user=YES ####
# local_root で指定してあるログイン ユーザの初期ディレクトリを、そのユーザのルート
# ディレクトリに変更 (chroot)する。ユーザはログインディレクトリの外側にアクセスできなくなる。
# 但し chroot_list_enable が YES の場合、chroot_list_file で指定したファイル
# に記載されたユーザはその対象から除外される。
#### ELSE chroot_local_user=NO ####
# ユーザはログイン ディレクトリの上部にも自由にアクセス可能。 (デフォルト)
# 但し chroot_list_enable が YES の場合、chroot_list_file で指定したファイル
# に記載されたユーザのルートディレクトリはログイン ディレクトリに変更 (chroot) される。
chroot_local_user=YES
#
# 一般ユーザはホームパスより上へアクセスさせない
#chroot_list_enable=YES
chroot_list_enable=YES
# ホームパスより上へアクセスさせないユーザリストファイル
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
chroot_list_file=/etc/vsftpd.chroot_list
# ######################################
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
# ######################################
# ディレクトリを削除可能にする
# ls_recurse_enable=YES
ls_recurse_enable=YES
# ######################################
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd whith two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES
# ######################################
# PAM認証のサービス名指定
pam_service_name=vsftpd
#
# [userlist_enable]の設定により、ファイル[/etc/vsftpd.user_list]内の
# ユーザ接続方法が異なります。但し、userlist_deny=YES(初期値)の場合。
# YES:ファイル「/etc/vsftpd.user_list」内に指定されたユーザは拒否される
# NO:「/etc/vsftpd.user_list」内の指定ユーザに関わらず接続が許可される
userlist_deny=YES
userlist_enable=YES
#
# tcp_wrappersを使用する
tcp_wrappers=YES
#
# これ以降は任意で追加
# ユーザが打ち込んだftpコマンドをログに残す(下記2つ)
xferlog_std_format=NO
log_ftp_protocol=YES
#
# タイムスタンプ時間を日本時間に合わせる
use_localtime=YES
#
# パッシブモードを利用にする
pasv_promiscuous=YES
# パッシブモード利用時のポート範囲(例:60000〜60030)
pasv_min_port=60000
pasv_max_port=60030

###################
pasv_addr_resolve=YES
pasv_address=ja2gzz.mydns.jp
#
#### ssl_enable=YES はハングアップ 500 OOPS:
# rsa_cert_file=/etc/ssl/private/vsftpd.pem
# rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=NO
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
######################################
# --------↑↑ここまで↑↑----------------------------------------------------

 

2.2.FTP接続ユーザ設定
ホームパスより上へアクセスさせないユーザ一覧
このファイルは当初存在しないので新規作成となります
root@Lubuntu:~# touch /etc/vsftpd.chroot_list
root@Lubuntu:~# gedit /etc/vsftpd.chroot_list
(↓ファイル内容)
# --------↓↓ここから↓↓----------------------------------------------------
# gedit /etc/vsftpd/chroot_list
# 管理者や自身のホームディレクトリ以外へアクセス可能とするユーザのみ登録しておく
(なし)
#
# --------↑↑ここまで↑↑----------------------------------------------------

 

FTP接続させないユーザ一覧
 userlist_enable=YES(初期値)の場合は /etc/vsftpd.user_list 内に指定されたユーザーは接続拒否される。
【注意】標準の user_list には色々記入されていますが全て削除し この様に(#コメントのみで実質未記入に等しい)に書き替えます・・・指定されたユーザーは全て接続拒否されます!
root@Lubuntu:~# gedit /etc/vsftpd.user_list
(↓ファイル内容)
# --------↓↓ここから↓↓----------------------------------------------------
# gedit /etc/vsftpd/user_list
# FTP接続させないユーザー(なし)
#
# --------↑↑ここまで↑↑----------------------------------------------------

 

2.3.FTP接続できるクライアントの制限(セキュリティ強化)
FTPログインできるクライアントを設定(tcp_wrappers)
root@Lubuntu:~# gedit /etc/hosts.allow
(↓ファイル内容)
# --------↓↓ここから↓↓----------------------------------------------------
# gedit /etc/hosts.allow
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
# FTPログインできるクライアントを設定
vsftpd : 127.0.0.1 192.168.1. ja2gzz.mydns.jp
# --------↑↑ここまで↑↑----------------------------------------------------

 

/etc/hosts.allow で指定されたクライアント以外は全て拒否
root@Lubuntu:~# gedit /etc/hosts.deny
(↓ファイル内容)
# --------↓↓ここから↓↓----------------------------------------------------
# gedit /etc/hosts.deny
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
# /etc/hosts.allow で指定されたクライアント以外は全て拒否
vsftpd : ALL
# --------↑↑ここまで↑↑----------------------------------------------------

 

 

3.vsftpdサーバー使用の前準備
3.1.HTTP用ポート及びFTP用ポートの開放
 既にhttpサーバーで設定済みと思いますが、 自宅サーバーとして使うPC(例)192.168.1.3 のみ外部WAN側からアクセス出来るようルーターのポート解放を行います。

クリックで拡大クリックで拡大 LANの外側(外部・インターネット)から内側へアクセスさせたい場合は明示的にそのアクセスを設定する必要があります。自宅サーバーを設置したPC(例)192.168.1.3 のみ インターネットからのアクセスに対し HTTPポート及び FTPポートを解放して そのアクセスを受け入れられるようにします。【注意】この図を参考に vsftpd PASVモード用に TCPポート 60000-60030 の穴あけも追加で行う必要があります。
    pasv_min_port=60000
    pasv_max_port=60030

クリックで拡大  Webサーバー設定とFTPサーバー設定:例 192.168.1.3 公開するにチェックを入れます。


【注意】IPアドレスは一例を示す。現在筆者の自宅サーバーでは IP:192.168.1.200 GW:192.168.1.254 を使用しています。

【ワンポイント】ファイヤーウオールの設定はOKですか?
  vsftpd PASVモード用にファイヤーウオールの穴あけ TCP 60000:60030 を行う必要があります。
 

 

3.2.ホームページ用 html ソースファイル群の配置
 /var/www/html ホルダーにホームページ用 htmlソースファイル群を格納済みですか? 同ホルダーが空だとHTTPdサーバーや FTPdサーバー(含む ffftp)が正常に動作しません。最低でも簡単に作った 試験用 index.html を配置する必要があります

index.html がある事を確認する
root@Lubuntu:~# ls /var/www/html/index.html
/var/www/html/index.html

 

 

3.3.vsftpサーバーの再起動
root@Lubuntu:~# /etc/init.d/vsftpd restart
[ ok ] Restarting vsftpd (via systemctl): vsftpd.service.

 

 

 

4.vsftpdサーバーへのアクセス時のユーザー名とパスワード
  外部から このサーバーへFTPアクセス時の【ユーザー名】【パスワード】は暗黙に
  Lubuntu インストール時のユーザー名とパスワードが採用されます。

クリックで拡大IEでのアクセス例: ftp://ja2gzz.mydns.jp        ← その後 現れた画面にユーザー名パスワードを入力する

IE11 = OKMicrosoft Edge = NG、2016/9/27

【ワンポイント】ファイヤーウオールの設定はOKですか?

 

 

 

↑このページの先頭に戻る
CGI掲示板 Joyful Note の設置
↑このページの先頭に戻る

↑このページの先頭に戻る 画像ファイルなどを添付可能な、返信式掲示板 Joyful Note を自宅サーバー内HPへ設置します。
但し
掲示板を設置するには 予め 自宅サーバー内の ホームページ及び FTPサーバーが正しく稼働している必要があります。
以下、掲示板設置の前準備を(掲示板を設置予定のパソコンと別の)Windows パソコンと FFFTPで行います。

 

1.Joyful Noteのダウンロード及び圧縮ファイルの解凍
 IE等で のサイトに入って Joyful Noteプログラムをダウンロードします。ダウンロードが完了したら joyful.zip ファイルを解凍すると新たに生成された joyful ホルダーに掲示板プログラムが格納されています。

 

2.自宅サーバー掲示板用ホルダー名 cgi-bin に名前を変更
Windowsのファイルエクスプローラー等で、前項で生成された joyful ホルダーの名前を cgi-bin に変更します。
(リネイムされた cgi-bin ホルダーの全内容を[3.2]項で自宅サーバーの /var/www/html/cgi-bin/ ホルダーにアップロードします)

[ホルダー構成]
cgi-bin/              ([xxx] はパーミッション値を示す)
   
 |
     +-- joyful.cgi     [755] ... 掲示板プログラム本体
     +-- regist.cgi     [755] ... 投稿用プログラム(スパム対策で改造予定)
     +-- admin.cgi    [755] ... 管理画面
     +-- captcha.cgi  [755] ... 画像認証プログラム
     +-- check.cgi     [755] ... 掲示板チェックプログラム
     +-- init.cgi         [644] ... 基本設定ファイル(スパム対策で改造予定)
      |
     +-- lib / *.pm
      |       |   *.pl
      |       |
      |      +-- GD / *.*
      |      +-- Crypt / *.*
      |      +-- bin / *.*
      |
     +-- data / log.cgi          [666] ... 投稿コメント(掲示板の内容)が保管されている
      |           |  count.dat      [666]
      |           |  pastno.dat    [666]
      |           |
      |           +- past [777] / 0001.cgi [666]
      |
      +-- img [777] /                     ... 投稿された画像(掲示板の画像)が保管されている
      |
     +-- cmn / *.*
      |
     +-- tmpl / *.html

 

 

3.Joyful Noteファイルにパーミッション設定
 
(すべて正しく設定しないと掲示板が動作しません!)

前項記載の[ホルダー構成]のように各ファイルのパーミッションをFFFTP等でリモート側から設定します。

 

3.1.FFFTPの設定
クリックで拡大

 前項記載の[ホルダー構成]に示す各ファイルの [パーミッション] を左図のようにFFFTPにプリセット・設定します。(9ファイル、ホルダーは全て 777)

クリックで拡大

 FFFTPのキャッシュ機能が有効になっているとキャッシュに騙されることがあるのでこれを無効にします。続いて現時点でのキャッシュをクリアーする為、FFFTPを再起動します。

 

3.2.FFFTPでリモートからパーミッション設定&アップロード
(事前にWindowsパソコンのメモ帳・ワードパッド等で4項 init.cgi の設定変更 を済ませて置くと良いでしょう)

cgi-bin ホルダーを自宅サーバー用HPの保管場所(index.htmlと同じ場所)に配置し、FFFTPで掲示板をインストールしたい自宅サーバーのHPと接続します。続いて cgi-bin ホルダーをHPへアップロードすると、FFFTPにプリセットされた属性(パーミッション)で掲示板用各ファイル群が自宅サーバー側へ転送されます。

 

[自宅サーバー側でのホルダー構成]
 FFFTPでアップロードしたファイルは自宅サーバーの /var/www/html/cgi-bin ホルダーに格納されている筈です。

 /var / www / html /
        |
        +-- index.html  *.htm(WEBソース ファイル類の格納場所)
        |
        +-- cgi-bin / Joyful Note 掲示板用各ファイル群(FFFTPでアップロードする事)

 


(以下、 自宅サーバー側に戻って操作する)
3.3.端末 Term パーミッションを設定する場合
root@Lubuntu:~# chmod 777 /var/www/html/cgi-bin 
root@Lubuntu:~# chmod 755 /var/www/html/cgi-bin/joyful.cgi
root@Lubuntu:~# chmod 755 /var/www/html/cgi-bin/regist.cgi
root@Lubuntu:~# chmod 755 /var/www/html/cgi-bin/admin.cgi
root@Lubuntu:~# chmod 755 /var/www/html/cgi-bin/captcha.cgi
root@Lubuntu:~# chmod 755 /var/www/html/cgi-bin/check.cgi
root@Lubuntu:~# chmod 644 /var/www/html/cgi-bin/init.cgi
root@Lubuntu:~# chmod 666 /var/www/html/cgi-bin/data/log.cgi
root@Lubuntu:~# chmod 666 /var/www/html/cgi-bin/data/count.dat
root@Lubuntu:~# chmod 666 /var/www/html/cgi-bin/data/pastno.dat
root@Lubuntu:~# chmod 777 /var/www/html/cgi-bin/data/past
root@Lubuntu:~# chmod 666 /var/www/html/cgi-bin/data/past/0001.cgi
root@Lubuntu:~# chmod 777 /var/www/html/cgi-bin/img

 

所定のパーミッションが与えられたか確認
root@Lubuntu:~# ll /var/www/html/cgi-bin/            ;(alias ll='ls -l')
合計 112
drwxrwxrwx 7 root root 4096 10月 2 20:51 ./
drwxr-xr-x 16 root root 4096 10月 2 20:51 ../
-rwxr-xr-x 1 root root 9666 10月 2 20:51 admin.cgi*
-rwxr-xr-x 1 root root 2020 10月 2 20:51 captcha.cgi*
-rwxr-xr-x 1 root root 1831 10月 2 20:51 check.cgi*
drwxrwxrwx 2 root root 4096 10月 2 20:51 cmn/
drwxrwxrwx 3 root root 4096 10月 2 20:51 data/
drwxrwxrwx 2 root root 4096 10月 2 20:51 img/
-rw-r--r-- 1 root root 7494 10月 2 20:51 init.cgi
-rwxr-xr-x 1 root root 28103 10月 2 20:51 joyful.cgi*
drwxrwxrwx 6 root root 4096 10月 2 20:51 lib/
-rwxr-xr-x 1 root root 25076 10月 2 20:51 regist.cgi*
drwxrwxrwx 2 root root 4096 10月 2 20:51 tmpl/

root@Lubuntu:~# ll /var/www/html/cgi-bin/data/        ;(alias ll='ls -l')
計 36
drwxrwxrwx 3 root root 4096 10月 2 20:51 ./
drwxrwxrwx 7 root root 4096 10月 2 20:51 ../
-rwxrwxrwx 1 root root 14 10月 2 20:51 .htaccess*
-rw-rw-rw- 1 root root 11 10月 2 20:51 count.dat
-rwxrwxrwx 1 root root 28 10月 2 20:51 index.html*
-rw-rw-rw- 1 root root 4277 10月 2 20:51 log.cgi
drwxrwxrwx 2 root root 4096 10月 2 20:51 past/
-rw-rw-rw- 1 root root 1 10月 2 20:51 pastno.dat

root@Lubuntu:~# ll /var/www/html/cgi-bin/data/past/        ;(alias ll='ls -l')
合計 12
drwxrwxrwx 2
root root 4096 10月 2 20:51 ./
drwxrwxrwx 3
root root 4096 10月 2 20:51 ../
-rw-rw-rw- 1
root root 0 10月 2 20:51 0001.cgi
-rwxrwxrwx 1
root root


【注意】もし所有者とグループが ted ted だと上手く動作しないので root root に戻す。↑このページの先頭に戻る
-rwxr-xr-x 1 ted ted 27445 1月 5 11:30 joyful.cgi(例)
root@Lubuntu:~#
chown -R root:root /var/www/html/cgi-bin      ←  cgi-binの所有者とグループを root root に変更
root@Lubuntu:~# ll /var/www/html/cgi-bin                             ← 所有者変更確認(alias ll='ls -l')
-rwxr-xr-x 1 root root 27445 1月 5 11:30 joyful.cgi(例)

(以下同様に)

root@Lubuntu:~# chown -R root:root /var/www/html/cgi-bin/data      ←  root root に変更
root@Lubuntu:~# chown -R root:root /var/www/html/cgi-bin/data/past       ← root root に変更

 

(以下、 自宅サーバー側に戻って操作する)
4./var/www/html/cgi-bin/init.cgi の設定変更

3.2項で修正が済んでいないなら以下の要領で設定変更を行います。
root@Lubuntu:~# gedit /var/www/html/cgi-bin/init.cgi


 

↑このページの先頭に戻る
  怪しげなブランド品広告スパムの投稿を排除する
↑このページの先頭に戻る

 @ まずメール通知機能と禁止ワードを設定
 A その他 状況に応じてオン設定

root@Lubuntu:~# gedit /var/www/html/cgi-bin/init.cgi
(↓スパム対策 変更箇所のみ一部抜粋

# --------↓↓ここから↓↓----------------------------------------------------
# ##########################################
# アップロードファイル管理者チェック機能 (0=no 1=yes)
# → アップロードファイルは管理者がチェック後表示(必要に応じて y/n)
$cf{img_check} = 0;
# ##########################################
# ##########################################
# 自動通知されるメール(例)メール通知機能を有効にし、新規投稿された内容が不適切でないか目視確認します。
# → 0=no 1=yes
$cf{mailing} = 1;

# メール通知先アドレス(メール通知する場合)
$cf{mailto} = 'mycall@jarl.com';

# sendmailのパス(メール通知する場合)
$cf{sendmail} = '/usr/lib/sendmail';

# sendmailの -fコマンドが必要な場合
# 0=no 1=yes
$cf{sendm_f} = 0;
# ##########################################
# ##########################################
# アクセス制限(半角スペースで区切る、アスタリスク可)
# → 拒否ホスト名を記述(後方一致)【例】*.anonymizer.com
$cf{deny_host} = '';
# → 拒否IPアドレスを記述(前方一致)【例】210.12.345.*
$cf{deny_addr} = '';
# 投稿コメント中に「禁止ワード」が検知されると、このエラーメッセージが出て投稿を拒否する禁止ワードを設定し不適切な投稿を排除します。
# → 投稿時禁止するワードをコンマで区切る(例)
$cf{no_wd} = 'ロレックス,激安,期間限定,腕時計,最高級,特別価格,www.spam.com';
# 日本語チェック(投稿時日本語が含まれていなければ拒否する)
# 0=No 1=Yes
$cf{jp_wd} = 1;
# 怪しげな広告は投稿コメント中にURLを記述し自分のHPへリンクを張りたい訳だが、これを禁止します。
# → 投稿コメント中に含まれるURL個数の最大値0に修正(此処と↓下記regist.cgi での修正も必要
# $cf{urlnum} = 5;
$cf{urlnum} = 0;

# ##############################################
# --------↑↑ここまで↑↑----------------------------------------------------

 

$cf{urlnum} = 0; で投稿コメント中に URLが含まれると、このエラーメッセージが出て投稿を拒否するよう改造↑上記 init.cgiでの URL個数チェックの最大値を $cf{urlnum} = 0; に修正しました。引き続き regist.cgi 0も受付る様に改造します。投稿コメント中にURL記述を検知すれば 図の様なエラーメッセージが出て投稿を拒否します。 従って怪しげな広告主は自分のHPへリンクを張れず、リンク記載の無い投稿では広告として意味のない物となってしまいます (^_^;

投稿コメント中のURL記述を禁止 ************* スパム対策 ***************
# 標準では URL個数の最小値は 1なので 0も指定できるよう regist.cgi を改造します。
root@Lubuntu:~#
gedit /var/www/html/cgi-bin/regist.cgi
# --------↓↓ここから↓↓----------------------------------------------------
# ###########################################
# チェック
if ($cf{no_wd}) { no_wd(); }
if ($cf{jp_wd}) { jp_wd(); }
## if ($cf{urlnum} > 0) { urlnum(); }   ">" を ">=" に変更すれば 0も受付る
if ($cf{urlnum} >= 0) { urlnum(); }
# ###########################################
# --------↑↑ここまで↑↑----------------------------------------------------

 

「参照URL」欄への記述を禁止するよう改造「参照URL」欄への記述を禁止するよう改造↑前記の対策で投稿コメント中へのURL記述を禁止してあったが 、今度は「参照URL」欄を広告スパムへのリンクとして流用する輩が現れたので「参照URL」欄への記述を禁止し広告スパムに悪用されない様 regist.cgi を改造します。

#「参照URL」欄への記述を禁止する様に改造 ******* スパム対策 *********
root@Lubuntu:~# gedit /var/www/html/cgi-bin/regist.cgi
更箇所のみ一部抜粋
# --------↓↓ここから↓↓----------------------------------------------------
# ###########################################
#-----------------------------------------------------------
# フォーム入力チェック下方参照)
#-----------------------------------------------------------
sub form_check {
# 不要改行カット
$in{sub} =~ s/<br>//g;
$in{name} =~ s/<br>//g;
$in{pwd} =~ s/<br>//g;
$in{captcha} =~ s/<br>//g;
$in{color} =~ s/<br>//g;
$in{comment} =~ s/(<br>)+$//g;

# コード変換
if ($cf{conv_code} == 1) {
$in{name} = Jcode->new($in{name})->sjis;
$in{sub} = Jcode->new($in{sub})->sjis;
$in{comment} = Jcode->new($in{comment})->sjis;
}

# チェック
if ($cf{no_wd}) { no_wd(); }
if ($cf{jp_wd}) { jp_wd(); }
if ($cf{urlnum} >= 0) { urlnum(); }

# 入力値調整
if ($in{url} eq 'http://') { $in{url} = ''; }
$in{sub} ||= "無題";

# 入力項目チェック
my $err;
if (length($in{sub}) > $cf{sub_len}*2) {
        $err .= "タイトル名は全角$cf{sub_len}文字以内です<br>";
}
if ($in{name} eq "") { $err .= "名前が入力されていません<br>"; }
if ($in{comment} eq "") { $err .= "コメントが入力されていません<br>"; }
if ($in{email} ne '' && $in{email} !~ /^[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/) {
        $err .= "Eメールの入力内容が不正です<br>";
}
#「参照URL」欄への記述を禁止する様に改造
# if ($in{url} ne '' && $in{url} !~ /^https?:\/\/[\w-.!~*'();\/?:\@&=+\$,%#]+$/) {      でコメント扱い
#         $err .= "URL情報が不正です<br>";      
でコメント扱い
if ($in{url} ne '') {
            $err .= "参照URL欄は使用禁止です<br>";

}
error($err) if ($err);
}
# ###########################################
# --------↑↑ここまで↑↑----------------------------------------------------

 

5.Perlのインストール
 CGI掲示板 Joyful Note を動作させる為には Perlが必要となります。

root@Lubuntu:~# apt-get -y install perl
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了

●CGIモジュールを有効にする
root@Lubuntu:~#
a2enmod cgid
Your MPM seems to be threaded. Selecting cgid instead of cgi.
Enabling module cgid.
To activate the new configuration, you need to run:
service apache2 restart


root@Lubuntu:~#
/etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.

 

6.Perlコマンドへ /usr/local/bin/perlでもアクセスできるようにする
● Parlのパス(置かれている場所) /usr/local/bin/perl を有効にする。

root@Lubuntu:~# ln -s /usr/bin/perl /usr/local/bin/perl           ←  /usr/bin/perlから/usr/local/bin/perlへリンクをはる

root@Lubuntu:~# whereis perl                                                ← Perlのパスを確認

perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz    Perlのパスに/usr/local/bin/perlが表示されることを確認

● cgiファイルへ Perlのパス設定
 前項でPerlへのパス /usr/local/bin/perl が判明したら次の要領で cgiファイルへ設定します。
joyful.cgi の文頭のPerlへのパスを #!/usr/local/bin/perl に(修正)します

root@Lubuntu:~# gedit /var/www/html/cgi-bin/joyful.cgi
# --------↓↓ここから↓↓----------------------------------------------------
#!/usr/local/bin/perl
#┌─────────────────────────────────
#│ JOYFUL NOTE : joyful.cgi - 2015/04/11
#│ copyright (c) KentWeb, 1997-2015
#│ http://www.kent-web.com/
#└─────────────────────────────────

# --------↑↑ここまで↑↑----------------------------------------------------

● cgiファイルへPerlへのパスの設定2
 以下、同じ要領で regist.cgi, admin.cgi, check.cgi, captcha.cgi の文頭のPerlへのパスを #!/usr/local/bin/perl に(修正)します。

root@Lubuntu:~# gedit /var/www/html/cgi-bin/regist.cgi
root@Lubuntu:~# gedit /var/www/html/cgi-bin/admin.cgi
root@Lubuntu:~# gedit /var/www/html/cgi-bin/check.cgi
root@Lubuntu:~# gedit /var/www/html/cgi-bin/captcha.cgi

 

 

7.Apache 2.4 CGIの設定
● /ect/apache2/mods-enabledにcgi.loadがあるか確認

 root@Lubuntu:~# ls /etc/apache2/mods-enabled/cgi.load

   ls: '/etc/apache2/mods-enabled/cgi.load' にアクセスできません: そのようなファイルやディレクトリはありません

#もしなければリンクを作成する

 root@Lubuntu:~# ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

 

● /etc/apache2/sites-available/000-default.confを編集
 root@Lubuntu:~# gedit /etc/apache2/sites-available/000-default.conf

# --------↓↓ここから↓↓----------------------------------------------------
Include conf-available/serve-cgi-bin.conf     ← 28行目文頭の # を外す
# --------↑↑ここまで↑↑----------------------------------------------------

 

● serve-cgi-bin.confを編集してCGIディレクトリを/usr/lib/cgi-binから/var/www/html/cgi-binに変更及び

  CGIプログラム内の画像ファイル認識設定AddHandler image/...)
 root@Lubuntu:~# gedit /etc/apache2/conf-available/serve-cgi-bin.conf

# --------↓↓ここから↓↓----------------------------------------------------
<IfModule mod_alias.c>
    <IfModule mod_cgi.c>
        Define ENALBLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfModule mod_cgid.c>
        Define ENALBLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfDefine ENALBLE_USR_LIB_CGI_BIN>
        #ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        #<Directory "/usr/lib/cgi-bin">
        ScriptAlias /cgi-bin/ /var/www/html/cgi-bin/
        < Directory "/var/www/html/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Require all granted

                #↓画像ファイルとして認識させる設定
                AddHandler image/gif .gif
                AddHandler image/png .png
                AddHandler image/jpg .jpg .jpeg
        </Directory>
    </IfDefine>
< /IfModule>
# --------↑↑ここまで↑↑----------------------------------------------------

 

● 次のコマンドを実行すると上記設定が有効になります。
root@Ubuntu:~# a2enmod cgid
Your MPM seems to be threaded. Selecting cgid instead of cgi.
Enabling module cgid.
To activate the new configuration, you need to run:
service apache2 restart

 


(確認)Joyful Note のファイル群がある事を確認
root@Lubuntu:~# ls /var/www/html/cgi-bin
admin.cgi check.cgi icon init.cgi lib style.css captcha.cgi data img joyful.cgi regist.cgi tmpl

 

● 設定が終わったらHTTPサーバーを再起動
root@Lubuntu:~# /etc/init.d/apache2 restart
[ ok ]
Restarting apache2 (via systemctl): apache2.service.

 

8.掲示板 Joyful Note の動作確認(例)

【例1bin/joyful.cgi(常時稼働)
例2http://ja2gzz.mydns.jp/cgi-bin/joyful.cgi(不定期稼働)

 

 

 

 

↑このページの先頭に戻る
メールサーバー Postfix の設定
↑このページの先頭に戻る

 自宅サーバーでメールサーバーを構築すると、メールアドレスが無限に発行できるようになります。 更にメールアドレスは完全に自由、@以後はドメインになるので自分で複数のメールアドレスを使い分けたり、家族や親戚、友人にメールアカウントをプレゼントすることもできます。 (例)tedja2gzz.mydns.jp

↑このページの先頭に戻る外部リンクへ迂回下さい・・・

 

 

↑このページの先頭に戻る


↑このページの先頭に戻る

その他
↑このページの先頭に戻る

 

忘備録
root 権限への移行方法:

    ted@Lubuntu:~$ sudo su -
    [sudo] ted のパスワード:エコーバック無し
    root@Lubuntu:~#

 

 ソフトウエアー アップデート
   
root@Lubuntu:~# apt-get update
    root@Lubuntu:~# apt-get -y upgrade

   

外部リンク
・Windows 10搭載の「Bash」を使ってみた! リンク集 へジャンプ

・bash シェルスクリプト入門 リンク集 へジャンプ

bash コマンド (プログラム) の説明 リンク集 へジャンプ

Linux コマンド一覧 リンク集 へジャンプ

 

 

↑このページの先頭に戻る




JA2GZZ
See my Rig and Antennas