本文へスキップ

JA2GZZ Shizuoka Japan. GL:PM95KF

CQ CQ CQ de JA2GZZ

QRZ.comはこちら

Ubuntu 16ubuntu

Linux Ubuntu 16.04 LTS について

最終更新日:2016/12/31

 

 2016年8月2日リリースの 「Windows 10 Anniversary Update」ビルド14316では、Linuxサブシステムが新たに導入され、Ubuntuディストリビューションのシェル「Bash」やその他の開発ツールなどが利用できるようになりました。現時点で Windowsにおける Bashは X Window System(GUI)なしの Ubuntuとほぼ同等です。後学のため本物の Linux版Ubuntuに慣れておくのも良いでしょう。以下 Linux版Ubuntuのインストールについての説明です。

 

目 次 
1 リナックスOSのインストール
2 Windowsから Ubuntuの共有ホルダーにアクセス
3 Ubuntuから Windowsの共有ホルダーにアクセス
4 アンチウィルスソフト Clam AntiVirus の設定
5 HTTPサーバー Apache の設定
6 FTPサーバー vsfptd の設定
7 CGI掲示板 Joyful Noteの設置
8 メールサーバー Postfix+Dovecot の設定
9 時刻サーバー NTPd の設定
10 ファイヤーウオール gufwの設定
11 仮想マシン VMware Workstation Player で遊ぶ
12 その他

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

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

0.Windowsパソコンで前準備(WindowsとUbuntuとのデュアルブート構成希望時)

 HDDパーティション編集ツールでUbuntuをインストールしたいHDD/SSDドライブの空きエリアー(16GB〜128GB) Ubuntu用に確保し、このエリアーは未認識・未割当て状態にしておきます。空きエリアーにパーティションを切ったりホーマットを掛けてはいけません。

 

【注意】この方法でデュアルブート構成とした場合、起動時に Linux(Ubuntu)のブートローダーが起動しますが、これは一般に馴染みが無く Windowsのブートローダーに戻したくなっても(そう簡単には)元に戻せないので事前に AOMEI Backupper等でドライブやパーティションを丸ごとバックアップしておく事!

 

 

1.Ubuntu インストールDVDの作成

OSのダウンロードは下図の Ubuntu Desktop をクリックし最新バージョンをダウンロードします。

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

 

 ダウンロードした isoファイルを ImgBurn 等のライティングソフトの ISOイメージ書込みモードでDVD-Rに焼いて Ubuntu Desktop インストールDVDを作成します。

 

 

2.インストール作業

 別途 Linux用に準備したパソコンに Ubuntu Desktop インストールDVDを挿入し、パソコンを再起動します。
もし、DVDからOSのインストール ウイザードが起動しない時は、パソコンのBIOS設定を確認します。起動ドライブ順が @CD/DVD AHDD と、CD/DVDの起動順がHDDより優先するようBIOSを設定してください。外部お助け隊:CD-ROM、DVD-ROM から起動

 

注意】このインストール例ではパソコンがLinux専用になります。1台のパソコンをWindowsとLinux(Ubuntu)のデュアルブート構成にする場合は事前に(SSD/HDDへの)Linux用空きエリアーの確保が必要です。 

 
 
 

 

 

 

3.インストール直後の作業

0.open-vm-tools のインストール(但し、仮想マシン VMware Workstation Playerの使用 の場合のみ)
  昨今はVMware Toolsの代わりに、各OSベンダーが提供している open-vm-toolsをインストールします。

 

ted@Ubuntu:~$ sudo apt-get install open-vm-tools
[sudo] ted のパスワード:エコーバック無し
ted@Ubuntu:~$ sudo apt-get install open-vm-tools-desktop

 

再起動すれば仮想マシンの拡張機能が有効となります

 

1.Ubuntu のアップデート

[システム設定]⇒[詳細]の概要欄にある「更新をインストール」をクリックします。

 

2.「端末」をLauncherへ登録

[コンピューターを検索]をクリックし、 term と入力し、一覧の中から「端末」を選択し、これを Launcherへ登録しておく。

 

root 権限への移行:

    ted@Ubuntu:~$ sudo su -

    [sudo] ted のパスワード:エコーバック無し

    root@Ubuntu:~#

 

3.Firefox の日本語化

https://support.mozilla.org/ja/kb/use-firefox-interface-other-languages-language-pack

 

上記URLのページ下方ユーザインターフェースの言語を変更するにはを参照ください:

1.Firefox のアドレスバー に about:config と入力し、Enter キーを押します。

▲動作保証対象外になります! という警告ページが表示されます。

危険性を承知の上で使用する をクリックし、about:config ページを開いてください。

2.ページ上部の 検索 フィールドに intl.locale.matchOS と入力してください。

3.intl.locale.matchOS 設定の値が true になっている場合は、それをダブルクリック して false に切り替えてください。

4.検索 フィールドの検索テキストを削除し、general.useragent.locale と入力してく ださい。

5.general.useragent.locale 設定をダブルクリックし、使用したい言語のコード ja を入力ます。

6.Firefoxを終了⇒再起動すると、新たに指定した言語で表示されます。

 

4.[システム設定]⇒[言語サポート]で不完全な部分があれば、これを更新する。

 

Japanese Teamによる追加パッケージの利用方法(必要に応じて)

https://www.ubuntulinux.jp/japanese

 

以下のコマンドを実行し、GPG鍵とレポジトリを追加します。

・Ubuntu 16.04 LTSの場合:

wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -

wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -

sudo wget https://www.ubuntulinux.jp/sources.list.d/xenial.list -O /etc/apt/sources.list.d/ubuntu-ja.list

sudo apt-get update

 

 

 

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

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

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

 

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

root@Ubuntu:~# apt-get -y install samba
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
attr libaio1 libsmbclient libwbclient0 python-crypto python-dnspython
python-ldb python-samba python-tdb samba-common samba-common-bin
samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools
提案パッケージ:
python-crypto-dbg python-crypto-doc bind9 bind9utils ctdb ldb-tools ntp
smbldap-tools winbind heimdal-clients
以下のパッケージが新たにインストールされます:
attr libaio1 python-crypto python-dnspython python-ldb python-samba
python-tdb samba samba-common samba-common-bin samba-dsdb-modules
samba-vfs-modules tdb-tools
以下のパッケージはアップグレードされます:
libsmbclient libwbclient0 samba-libs
                        :
samba-dsdb-modules (2:4.3.9+dfsg-0ubuntu0.16.04.3) を設定しています ...
samba-vfs-modules (2:4.3.9+dfsg-0ubuntu0.16.04.3) を設定しています ...
libc-bin (2.23-0ubuntu3) のトリガを処理しています ...
systemd (229-4ubuntu7) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...
ufw (0.35-0ubuntu2) のトリガを処理しています ...

 

 

1.2.サーバーへ ユーザーを(追加)登録

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

root@Ubuntu:~# 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-2653929141-470131564-2737904808-1000
Primary Group SID: S-1-5-21-2653929141-470131564-2737904808-513
Full Name: Ted
Home Directory: \\Ubuntu\ted
HomeDir Drive:
Logon Script:
Profile Path: \\Ubuntu\ted\profile
Domain: Ubuntu
Account desc:
Workstations:
Munged dial:
          :
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

 

 

2.smb.conf設定ファイルの編集

oot@Ubuntu:~# gedit /etc/samba/smb.conf
(↓ファイル内容)
# --------↓↓ここから↓↓----------------------------------------------------

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

# gedit /etc/samba/smb.conf
#
# for Ubuntu 16.04 LTS
#
# ゴチャゴチャしているので必要最小限の記叙にしました。
# この設定で、Windows 10のファイル エクスプローラー
# からは次の2つの共有ホルダーにアクセス出来ます。
# \\Ubuntu\html  (実ホルダーは  /ver/www/html)
# \\Ubuntu\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 = Ubuntu
server string = Samba Server Version %v
# 共有するホルダー#1
path = /var/www/html
# ワークグループ
workgroup = WORKGROUP
# コメント
comment = Ubuntu
# 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@Ubuntu:~# mkdir /work                   ←  /work ホルダーを新規作成
root@Ubuntu:~# chown -R ted /work       ←  /work ホルダー所有者を設定ted は固有名詞に付き要変更
root@Ubuntu:~# chmod 777 /work          ←  フル パーミッション 777 を設定

 

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

root@Ubuntu:~# /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からUbuntu共有ホルダーをアクセス

3.1.Windows側の操作

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

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

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

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

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

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

 

 

 

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

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

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

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

 

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

 

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

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

 

 

 

 

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

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

1.Clam AntiVirusのインストール

root@Ubuntu:~# 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-1ubuntu1.2) を設定しています ...
libllvm3.6v5:amd64 (1:3.6.2-3ubuntu2) を設定しています ...
libclamav7 (0.99+dfsg-1ubuntu1.2) を設定しています ...
clamav-freshclam (0.99+dfsg-1ubuntu1.2) を設定しています ...
clamav (0.99+dfsg-1ubuntu1.2) を設定しています ...
libc-bin (2.23-0ubuntu3) のトリガを処理しています ...
systemd (229-4ubuntu8) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...

 

 

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

root@Ubuntu:~# 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@Ubuntu:~# 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@Ubuntu:~# 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マシンを転用したリナックス(Ubuntu)マシンによる本格的な「自宅HTTP・FTPサーバー/自宅ホームページ」を開設することができます・・・これを24時間稼働しておけば本格的なホームページが完成です。

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

1.1.Apache Webサーバーのインストール

root@Ubuntu:~# 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-2ubuntu3.1) を設定しています ...
apache2-utils (2.4.18-2ubuntu3.1) を設定しています ...
apache2-data (2.4.18-2ubuntu3.1) を設定しています ...
apache2 (2.4.18-2ubuntu3.1) を設定しています ...
                    :
ureadahead (0.100.0-19) のトリガを処理しています ...
ufw (0.35-0ubuntu2) のトリガを処理しています ...

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

 

1.2.PHP5 をインストー

root@Ubuntu:~# dpkg -l |grep php | awk '{print $2}'
root@Ubuntu:~# 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 Ubuntu 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/ubuntu/php
[ENTER] を押すと続行します。ctrl-c で追加をキャンセルできます
gpg: 鍵リング「/tmp/tmp5bws7ouz/secring.gpg」ができました
gpg: 鍵リング「/tmp/tmp5bws7ouz/pubring.gpg」ができました
gpg: 鍵E5267A6Cをhkpからサーバkeyserver.ubuntu.comに要求
gpg: /tmp/tmp5bws7ouz/trustdb.gpg: 信用データベースができました
gpg: 鍵E5267A6C: 公開鍵"Launchpad PPA for Ondřej Surý"をインポートしました
gpg: 処理数の合計: 1
gpg: インポート: 1 (RSA: 1)
OK

 

 

 

1.3.パッケージライブラリをアップデート

root@Ubuntu:~# apt-get update

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

 

 

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

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

 


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

 


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

 


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

 

  【注】別途設定追加あり

 

 

  

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

 

  

2..ドキュメントルート所有者変更↑このページの先頭に戻る(未解決)

使用禁止ドキュメントルート所有者をWebコンテンツ編集ユーザーに変更する。
root@Ubuntu:~# chown -R ted /var/www/html           ←  html 所有者を変更(ted は固有名詞に付き要変更
root@Ubuntu:~# ll /var/www/html/                             ← 所有者変更確認(alias ll='ls -l')
合計 157644
-rwxrw-rw- 1 
ted root 479 6月 7 2014 index.html*
                :
drwxrwxrwx 7 ted root 4096 9月 29 23:06 cgi-bin/
                :
drwxrwxrwx 2
ted root 36864 9月 30 00:01 files/

 

 

【注意】所有者を ted に変更するとFTP接続時 ユーザー名 ted 及びインストール時のパスワードを受付けなくなるので 緊急避難的に所有者を root に戻す(これでFTP接続OK)
root@Ubuntu:~# chown -R root /var/www/html         ←  html 所有者を root に戻す
root@Ubuntu:~# ll /var/www/html/                             ← 所有者変更確認(alias ll='ls -l')
合計 157644
-rwxrw-rw- 1 
root root 479 6月 7 2014 index.html*
                :
drwxrwxrwx 7 root root 4096 9月 29 23:06 cgi-bin/
                :
drwxrwxrwx 2
root root 36864 9月 30 00:01 files/

 

 

 

 

3.HTTPdサーバー使用の前準備
3.1.ルーターの設定

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

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

【補足】このルーター設定例では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 を使用しています。次にネットワークカードの設定で、図の要領で [システム設定]→[ネットワーク]→[有線]→[オプション] →[IPv4設定] を開き、自宅サーバーのローカルIPアドレス例)192.168.1.200 を固定化します。
クリックで拡大

 

 

3.2.仮想 固定IP化DNSサーバー ドメイン名の取得

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

(注)Windows PCでの説明文ですが Ubuntuでも同じ要領で設定します。

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

 

 

3.3.hostsファイルの編集

 以上でLANの外側(外部・インターネット)からアクセスする為の段取りが出来ましたが、まだ このままでは自宅内のLAN環境(我が家の他のPC)からは(例)"http://192.168.1.200" でアクセス出来ても "http://ja2gzz.mydns.jp" の表現でアクセスできません。 /etc ディレクトリ−にある hosts ファイルを編集し自宅内のLAN環境からも "http://ja2gzz.mydns.jp" の表現でアクセス出来るようにします。

root@Ubuntu:~# gedit /etc/hosts
(↓hostsファイルの内容:WebサーバーのローカルIPアドレスが(例)192.168.1.200 の場合)
# --------↓↓ここから↓↓----------------------------------------------------
# gedit /etc/hosts
127.0.0.1            localhost
127.0.1.1            Ubuntu

192.168.1.200   ja2gzz.mydns.jp

# 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

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


↑もし複数のドメイン名をがある場合は、複数行記述します。

【注】hostsファイルの内容を変更した時は次の要領で httpdの再起動 を行ってください
root@Ubuntu:~# /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@Ubuntu:~# ls /var/www/html/index.html         ← index.html がある事を確認する
/var/www/html/index.html

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

 

 

5.HTTPdサーバー起動

5.1.HTTPdサーバー起動

root@Ubuntu:~# /etc/init.d/apache2 restart         httpd 再起動
[ ok ] Restarting apache2 (via systemctl): apache2.service.

 

(その他のコマンド)
root@Ubuntu:~# /etc/init.d/apache2 stop              ← httpd 停止
root@Ubuntu:~# /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@Ubuntu:~# apt-get -y install vsftpd
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
vsftpd
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 162 個。
                     :
vsftpd (3.0.3-3ubuntu2) を展開しています...
systemd (229-4ubuntu7) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...
man-db (2.7.5-1) のトリガを処理しています ...
vsftpd (3.0.3-3ubuntu2) を設定しています ...
systemd (229-4ubuntu7) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...

 

 

 

.vsftpdサーバーの設定

2.1.vsftpd.conf設定ファイルの編集

 /etc ホルダーにある vsftpd.conf をエディターで開いて次の様に編集します(行頭に # を記述するとその行はコメント扱いとなる)
root@Ubuntu:~# gedit /etc/vsftpd.conf

 /etc ホルダーにある vsftpd.conf をエディターで開いて次の様に編集します(行頭に # を記述するとその行はコメント扱いとなる)
root@Ubuntu:~# gedit /etc/vsftpd.conf

 

#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

# gedit /etc/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@Ubuntu:~# touch /etc/vsftpd.chroot_list
root@Ubuntu:~# gedit /etc/vsftpd.chroot_list
(↓ファイル内容)
# --------↓↓ここから↓↓----------------------------------------------------
# gedit /etc/vsftpd/chroot_list
# 管理者や自身のホームディレクトリ以外へアクセス可能とするユーザのみ登録しておく
(なし)
#
# --------↑↑ここまで↑↑----------------------------------------------------

 

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

 

2.3.FTP接続できるクライアントの制限(セキュリティ強化)

FTPログインできるクライアントを設定(tcp_wrappers)
root@Ubuntu:~# 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@Ubuntu:~# 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@Ubuntu:~# ls /var/www/html/index.html
/var/www/html/index.html

 

 

 

3.3.vsftpサーバーの再起動

root@Ubuntu:~# /etc/init.d/vsftpd restart

[ ok ] Restarting vsftpd (via systemctl): vsftpd.service.

 

 

 

4.vsftpdサーバーへのアクセス時のユーザー名とパスワード

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

 

クリックで拡大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@Ubuntu:~# chmod 777 /var/www/html/cgi-bin 
root@Ubuntu:~# chmod 755 /var/www/html/cgi-bin/joyful.cgi
root@Ubuntu:~# chmod 755 /var/www/html/cgi-bin/regist.cgi
root@Ubuntu:~# chmod 755 /var/www/html/cgi-bin/admin.cgi
root@Ubuntu:~# chmod 755 /var/www/html/cgi-bin/captcha.cgi
root@Ubuntu:~# chmod 755 /var/www/html/cgi-bin/check.cgi
root@Ubuntu:~# chmod 644 /var/www/html/cgi-bin/init.cgi
root@Ubuntu:~# chmod 666 /var/www/html/cgi-bin/data/log.cgi
root@Ubuntu:~# chmod 666 /var/www/html/cgi-bin/data/count.dat
root@Ubuntu:~# chmod 666 /var/www/html/cgi-bin/data/pastno.dat
root@Ubuntu:~# chmod 777 /var/www/html/cgi-bin/data/past
root@Ubuntu:~# chmod 666 /var/www/html/cgi-bin/data/past/0001.cgi
root@Ubuntu:~# chmod 777 /var/www/html/cgi-bin/img

 

所定のパーミッションが与えられたか確認
root@Ubuntu:~# 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@Ubuntu:~# 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@Ubuntu:~# 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 29 10月 2 20:51 index.html*

 

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

(以下同様に)

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

 

 

 

(以下、 自宅サーバー側に戻って操作する)

4./var/www/html/cgi-bin/init.cgi の設定変更

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


 

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

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

 

root@Ubuntu:~# 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@Ubuntu:~#
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@Ubuntu:~# 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);
}
# ###########################################
# --------↑↑ここまで↑↑----------------------------------------------------

 

(おまけ)
 掲示板の管理者自身が投稿コメント中に URLを追記したい場合の裏技:
@ 右上の [管理] をクリックし管理パスワードを入力;既投稿コメント中にURLを追記します。
A 掲示板の内容は dataホルダー内の log.cgi ファイルです、これをエディターで開き 追記したいURLを記述します。

(URL追記例:一般的には Windowsパソコン側で log.cgiファイルを編集後 FFFTPで自宅サーバーへアップロードします)
root@Ubuntu:~#
gedit /var/www/html/cgi-bin/data/log.cgi
# --------↓↓ここから↓↓----------------------------------------------------
<br>
http://www.qrz.com/db/JA2GZZ
# --------↑↑ここまで↑↑----------------------------------------------------

 

 

5.Perlのインストール

 CGI掲示板 Joyful Note を動作させる為には Perlが必要となります。

 

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

 

●CGIモジュールを有効にする
root@Ubuntu:~#
a2enmod cgi
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@Ubuntu:~#
/etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.

 

 

 

 

6.Perlコマンドへ /usr/local/bin/perl でもアクセスできるようにする

● Parlのパス(置かれている場所) /usr/local/bin/perl を有効にする。

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

root@Ubuntu:~# 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@Ubuntu:~# 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@Ubuntu:~# gedit /var/www/html/cgi-bin/regist.cgi
root@Ubuntu:~# gedit /var/www/html/cgi-bin/admin.cgi
root@Ubuntu:~# gedit /var/www/html/cgi-bin/check.cgi
root@Ubuntu:~# gedit /var/www/html/cgi-bin/captcha.cgi

  

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

7.Apache 2.4 CGIの設定

● /ect/apache2/mods-enabledにcgi.loadがあるか確認

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

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

 

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

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

 

 

● /etc/apache2/sites-available/000-default.confを編集

 root@Ubuntu:~# 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に変更

 root@Ubuntu:~# 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
        </Directory>
    </IfDefine>
< /IfModule>
# --------↑↑ここまで↑↑----------------------------------------------------

 

 

 

●CGIモジュールを有効にする
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

 

 

 

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





(確認)Joyful Note のファイル群がある事を確認
root@Ubuntu:~# 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@Ubuntu:~# /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 の設定
↑このページの先頭に戻る

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

 

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

 

↑このページの先頭に戻る
時刻サーバー NTPd の設定
↑このページの先頭に戻る

 サーバーの時刻設定が狂うと動作不安定になってしまうので NTPサーバーを導入して常に正しい時刻を保ちます。

 

1.NTPdサーバーのインストール

root@Ubuntu:~# apt-get -y install ntp
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
libopts25
提案パッケージ:
ntp-doc
以下のパッケージが新たにインストールされます:
libopts25 ntp
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 162 個。
575 kB のアーカイブを取得する必要があります。
この操作後に追加で 1,786 kB のディスク容量が消費されます。
                                :
ntp (1:4.2.8p4+dfsg-3ubuntu5.1) を展開しています...
libc-bin (2.23-0ubuntu3) のトリガを処理しています ...
man-db (2.7.5-1) のトリガを処理しています ...
systemd (229-4ubuntu7) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...
libopts25:amd64 (1:5.18.7-3) を設定しています ...
ntp (1:4.2.8p4+dfsg-3ubuntu5.1) を設定しています ...
libc-bin (2.23-0ubuntu3) のトリガを処理しています ...
systemd (229-4ubuntu7) のトリガを処理しています ...
ureadahead (0.100.0-19) のトリガを処理しています ...

 

 

 

2.ntp.conf設定ファイルの編集

root@Ubuntu:~# gedit /etc/ntp.conf
(↓ファイル内容)
# --------↓↓ここから↓↓----------------------------------------------------
# gedit /etc/vsftpd/chroot_list
# 19行目:コメント化

# server 0.ubuntu.pool.ntp.org
# server 1.ubuntu.pool.ntp.org
# server 2.ubuntu.pool.ntp.org
# server 3.ubuntu.pool.ntp.org
# server ntp.ubuntu.com
# 同期をとるサーバーを指定

server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp
# 48行目:時刻同期を許可する範囲を追記
restrict 10.0.0.0 mask 255.255.255.0 nomodify notrap
# --------↑↑ここまで↑↑----------------------------------------------------

 

3.ntp動作確認

root@Ubuntu:~# ntpq -p
 remote              refid      st t when poll reach delay   offset jitter

===============================================

0.ubuntu.pool.n .POOL.          16 p -      64    0  0.000    0.000  0.000
1.ubuntu.pool.n .POOL.          16 p -      64    0  0.000    0.000  0.000
2.ubuntu.pool.n .POOL.          16 p -      64    0  0.000    0.000  0.000
3.ubuntu.pool.n .POOL.          16 p -      64    0  0.000    0.000  0.000
ntp.ubuntu.com .POOL.           16 p -      64    0  0.000    0.000  0.000
+45.32.43.46 (45 47.187.174.51   2 u 34     64  377 26.539    4.127 65.335
+y.ns.gin.ntt.ne 249.224.99.213  2 u 27     64  377 19.288  -26.003 64.766
+nipper.paina.jp 131.112.125.48  2 u 33     64  377 24.966  -25.707 65.627
+extendwings.com 133.243.238.244 2 u 31     64  377 19.371  -25.441 68.139
+balthasar.gimas 210.173.160.87  3 u 28     64  377 24.626  -23.950 65.442
+133.130.120.204 133.243.238.164 2 u 30     64  377 22.425  -25.591 64.181
+chobi.paina.jp  131.113.192.40  2 u 38     64  377 28.414  -23.497 61.590
+v157-7-235-92.z 103.1.106.69    2 u 32     64  377 22.890  -27.056 64.696
*60-56-214-78f2. .GPS.           1 u 30     64  377 18.789  -27.436 67.074
+dns.intaa.net   .GPS.           1 u 35     64  377 38.023  -92.309 61.988
+alphyn.canonica 132.246.11.231  2 u 53     64  377 210.977 -20.174 69.933

 

 

 

↑このページの先頭に戻る
ファイヤーウオール gufwの設定
↑このページの先頭に戻る

 Linuxのファイヤーウオール gufwを導入します。

 

1.gufwのインストール

[Ubuntu Software]の検索欄にgufwと入力、表示されたファイアウォール設定ツールをクリック、「インストール」ボタンをクリックする。又はコマンドを使ってインストールする場合は以下を実行する
root@Ubuntu:~# apt-get install gufw

 

 

2.Windows ファイル共有用のポートを開ける

[ルール][+]をクリックしルール samba を追加する。

クリックで拡大

 

 

2.3.各種ポートの穴あけ

[ルール][+][簡易]をクリックし各種ポートを追加する。
クリックで拡大

 

 

 

(↑上図の要領で、これらポートの穴あけを追加します)

  サービスとポート番号   TCP   UDP
  Web(http)   80    -
  Web(http)拡張   8080    - 
  Web(https)   443    -
  SSH   22   22
  FTP   20,21    -
  vsftp_pasv   60000:60030    -
  samba   139,445   137,138
  NTP    -    123 
  OpenVPN    -   1194

 

 

 

  

↑このページの先頭に戻る
仮想マシン VMware Workstation Player で遊ぶ
↑このページの先頭に戻る 

 手軽に Linux版の Ubuntu Desktop と遊びたいなら、貴殿のPC(Windwos 10 64ビット)に、仮想マシン VMware Workstation Player をインストールし、次に VMware Workstation Playerを起動し此れに Linux版の Ubuntu Desktop をインストールして遊びましょう

 

 

 

 

 

 

 

 

 

 

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

忘備録

root 権限への移行方法:

    ted@Ubuntu:~$ sudo su -

    [sudo] ted のパスワード:エコーバック無し

    root@Ubuntu:~#

 

 

ソフトウエアー アップデート

    root@Ubuntu:~# apt-get update

    root@Ubuntu:~# apt-get -y upgrade

 

 

 

 

外部リンク

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

 

・bash シェルスクリプト入門 リンク集 へジャンプ
bash コマンド (プログラム) の説明 リンク集 へジャンプ
Linux コマンド一覧 リンク集 へジャンプ

 

XXXXXXXXXXXXXX

xxxx

 

 

 

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

 


JA2GZZ
See my Rig and Antennas