SLES12 より Squid プロクシが YaST からインストールできるようになったので、SLES12 SP3 で YaST インストーラからインストール、設定、起動までをやってみました。

- 参考 -

SUSE 11 で Squid3 を導入、設定

YaST > Software Management で調べると SLES12 sp3 で標準装備されているのは Squid 3.5 の様です。

a0056607_12252656.jpg

- Squid Proxy のインストール -

yast(yast2) より NetWork Service > Squid を Open します。YaST インストーラが起動し、自動的にインストールが開始されます。

a0056607_12261181.jpg


Start-Up : When Booting に変更

a0056607_12264319.jpg

HTTP Port は 3127 がデフォルトです。 ここでは 8080 に変更します。

a0056607_12270217.jpg

デフォルトでは最大キャッシュサイズ ( Max Object Size ) が小さいので大きな値を設定します。例えば Memory Cache 128 MB, Max Object Size 256Mb などです。Squid 専用サーバーであれば、これくらい与えても良いでしょう。

a0056607_12272542.jpg



Cache Memory と Max Object サイズを設定します。

キャッシュディレクトリのサイズは実装されたメモリ、ディスクのサイズに合わせて適度な数字を設定してみてください。また、キャッシュディレクトリは "/" ルートと違うパーティションに作成するのが理想です。特に物理的なハードディスクが違うパーティションを与えると、効果が上がります。SSD を使って割り当てると "爆速キャッシュ" になります。

a0056607_12281144.jpg
一旦、Squid キャッシュを再起動します。

確認くん

で確認してみました。
a0056607_12291638.jpg

Squid のバージョンが漏れています。

- 匿名性の確保 -

/etc/squid.conf を書き換え、次の行を追加しました。

visible_hostname unknown
forwarded_for off
request_header_access X-FORWARDED-FOR deny all
request_header_access Via deny all
request_header_access Cache-Control deny all

Squid を再起動して、もう一度確認くん


a0056607_12295289.jpg

Squid のバージョンを隠す事が出来ました。

- Squid cachemanager の設定 -

Squid cachemgr.cgi スクリプトが、Squid のインストールと同時に /usr/lib64 の下にコピーされます。これを /srv/www/cgi-bin の下にコピーします。

また apache2 がインストールされていなければ Apache2 をインストールしてください。

SUSE Linux (SLES12) で apache2 HTTPサーバー と PHP スクリプトのインストール

sles12sp3:~ # find / -name cachemgr.*
/usr/share/doc/packages/squid/scripts/cachemgr.readme
/usr/share/man/man8/cachemgr.cgi.8.gz
/usr/lib64/squid/cachemgr.cgi
/etc/squid/cachemgr.conf
/etc/squid/cachemgr.conf.default
sles12sp3:~ #
sles12sp3:~ # cp /usr/lib64/squid/cachemgr.cgi /srv/www/cgi-bin
sles12sp3:~ #

/etc/squid/cachemgr.cfg の localhost 行にポート番号(:8080)を追加しデフォルト 3128 から変更します。

sles12sp3:~ # vi /etc/squid/cachemgr.conf

: 編集中

sles12sp3:~ # cat /etc/squid/cachemgr.conf | grep localhost
localhost:8080
sles12sp3:~ #

ブラウザから cgi を開き "Cache Server" を トグルボタンで localhost:8080 に設定して "Continue" します。


a0056607_12324146.jpg


"Continue..."

a0056607_12332764.jpg

"Cache Clients:” のリンクを開くと、キャッシュのヒット率、ヒット数が表示されます。

a0056607_12340971.jpg
キャッシュのヒット率、ヒット数は、"ヒットしたキャッシュの量" を表すものではない事に注意してください。効率が良いキャッシュサーバーは、どれだけ、"トラフィック量" を捌いたかが重要です。実際、キャッシュ量は Squid キャッシュディレクトリの量を du コマンドなどで定期的に測って見るべきでしょう。

sles12sp3:~ # cd /var/cache/squid/
sles12sp3:/var/cache/squid # du -h
2.8M ./00/00
4.1M ./00/01
0 ./00/02

 : 中略

0 ./0F/FF
0 ./0F
6.9M .
sles12sp3:/var/cache/squid #

キャッシュは様々な理由で壊れたり、 Squid 自身がクラッシュする可能性もあるので、cron でキャッシュ最大サイズになる前に定期的に squid を停止させて、キャッシュディレクトリ全体を削除して再起動するのが良いでしょう。

実際の Squid の効率を調べる方法はこちらをご参考にしてください。

squid の効率をチェックして、キャッシュをクリアする

--
Squid の Local Cache は "効果がない" という意見もありますが、Cache サーバーを導入することで、インターネットの出入り口が交通整理されるため、混雑した環境では、ブラウザの動作が安定する場合があります。また、「遅い」と思う人ほど、最初のキャッシュミスヒットなので、遅いのは当たり前なんですね。

最近は動的コンテンツが多いため、あまり効果が分かりにくいのも事実です。

まぁ高速道路で "渋滞の中、加速したり止まったりで平均 40Km/h"で走るのと、"混んでいても 40Km/h で定速で安定して走っている"との違いのようなものなのですが、自動車の運転と違って、通信は目に見えないので、判りにくいのもよくわかります。

一人でも多くのユーザが利用できるようにすれば、静的コンテンツのキャッシュ効果が表れてきます。

「インターネットがブラウジングが遅い」というのは、相手サーバーとの距離でもありますし、多くはブラウザ内部のキャッシュを処理する使っているPCの性能の問題の様な気がします。相手サーバーとの間の MTU は経路のルータで 1,500 バイトに分割される事を忘れてはいけません。大抵は 1.5Kb 以上の画像などのコンテンツがあれば、やり取りを地球七周半/sec で経路中の装置のオーバーヘッドの影響を受けながら「行ったり来たり」しているのです。

また、Squid の負荷状態を様々なツールで分析できれば、ネットワークの実効容量が測れるので、その固定回線への固定投資は効果があるのかどうかの判断材料にもなります。



- Key Word -

SUSE Linux, SLES, SLES12, SLES12 SP3, Squid3.5, YaST, インストール, 導入, 設定


[PR]
by islandcenter | 2017-09-30 12:42 | SUSE | Trackback | Comments(0)


SUSE Linux Enterprise Server 12 Support Pack 3 (SLES12sp3) が 2017/8 にリリースされたので、インストールしてみました。ここではインストールの流れを見てゆきます。

- インストールのはじまりはじまり -

まず DVD からブートアップ > "Installation" を選びます。

a0056607_07110101.jpg

ライセンス同意画面と、キーボード、言語の選択です。

Language: English
Keybord : Japanese

を選び、日本語 106 キーで特殊キーや NUM Lock キーが押されていないかを "Keyboard Test" エリアで確認します。

※ いつものことですが、 Language : Japanese も選べますが、とても意味不明でステキなニッポン語のメニューになるため、SLES は常に第一言語 English 第二言語 Japanese を選んでいます。また、サーバーのコンソールはほとんどが英語ですし、YaST を使う場合の ALT+ショートカットキーが使いづらくなるので、日本語は優先言語としません。

License Agree をチェックして次へ

a0056607_07121664.jpg


アクティベーションの設定です。ここをチェックすると、インターネットに接続に行き、アクティベートされてしまうので、いつも Skip しています。リポジトリも登録されるため、細い回線環境だと、インストレーション作業に時間がかかるため、スキップして、ある程度チューニングした後にアクティベートして、アップデートを行っています。

a0056607_07133246.jpg

追加プロダクトです。通常は何もないので Add On Product は何もセットせず次へ

a0056607_07141729.jpg

デフォルトで入れるか XEN または KVM のハイパーバイザー起動とするかの選択です。ハイパーバイザーとして導入すると、アクティベートや 1 Click Install に必要なブラウザや yast2 や virt-manager などのGUIツールが入らないので、ここでは Default 導入して、後に ハイパーバイザーだけを導入しています。


a0056607_07150204.jpg


ボリューム定義です。マニュアルによると jeOS で 1.0Gb、最小のX環境で1.4Gb, フルインストールで 8.0Gb 程度のディスク容量が必要です。ただし SLES12 より "/" ルートパーティションは Default : BtrFS でスナップショットを取れるため、スナップショットからロールバックを使う場合は 使用量の倍の容量を確保することが推奨されます。そのまま鵜呑みすると 16G は欲しいネ、という事ですが、 ロールバックする対象はそれほど多くないですし、システムをロールバックするという事も滅多にありませんから 10Gb もあれば余裕でしょう。

SUSE Linux Enterprise Server 12 SP3 導入ガイド

なお、パーティションを分けた場合、 "/" ルート以外のパーティションは XFS がデフォルトになります。database などのロールバックが予測されるシステムでは BtrFS を使う事になります。

パーティションの構成を替えたい場合はここで "Expert Partitioner" を開きます。ここではデフォルトでそのまま進めます。


a0056607_07154653.jpg


タイムゾーンの設定です。世界地図から日本らしきところをクリックすると Asia/Japan が選択されます。

”Hardware Set to UTC” のチェックは外す事にしています。これはOSと CMOS クロックを UTC で同期させる機能なのですが、UTC で起動されると困る仮想サーバー(Windowsなど)のためのハイパーバイザー運用では、見事に9時間早くなってしまうので、このチェックを外して JST 運用することにしています。"UTC にしないのはどんなものなんでしょうね" という感じの警告を確認して次へ

a0056607_07164652.jpg


オペレータのフルネームとユーザ名、パスワードをセットします。

a0056607_07191429.jpg

root のパスワード設定です。必ず ”Test Keyboard” で特殊キーや NUM Lock のチェックをします。なお、パスワードとテストフィールドでテストした単語はシンクロしません。あくまでもテストのためのフィールドです。

a0056607_07211547.jpg


サマリ画面からデフォルト状態をいくつか修正します。

Firewall : Disable(Default Enable)
SSH : Open(Default Close)
Kdump : Disable (Default Enableカーネルダンプが必要なクリティカルなシステムでは Enable にしておくのが良いでしょう)
どうせコンソールは使わないので Systemd target : Text (Default Graphical )
その代わり gnome や yast2 などのパッケージはインストールされます。

a0056607_07222194.jpg

インストールが開始されます。

a0056607_07225418.jpg
ハードウェアの性能によりますが10~20分程度で自動で再起動します。

- 再起動 -

a0056607_07235405.jpg

再起動でログインプロンプトが出てくればOK


a0056607_07243573.jpg
あとは、IP アドレスの固定と NTP の設定をすれば、サーバーの基本的なインストール作業は終わります。この手順は SLES12 SP2 と同じです。

SUSE Linux (SLES12)  YaST で固定 IP アドレスの設定をする

SUSE Linux (SLES12) を YaST で NTP の設定

SUSE Enterprise Server 12, Ctrl+Alt+Del で誤って reboot させないようにするには


- インプレッション -

SLES11 より、インストール全体は簡素化されていますが、省略された分、後で設定すべきことが沢山出てきます。やはり initd より systemd による、起動/終了の高速化は素晴らしいと思いました。どれほど変わったか、細かな設定などはもう少し照査すべきですが、従来の SLES12.x とあまり変わらないな、という印象です。ここから本格的に評価したいのですが、使えるPCがないので、ハイパーバイザー運用より当面は仮想サーバーとしての評価になります。ちなみに、SLES11 の XEN 環境からもインストールできたのですが、 Full Virtual でないと動かないという問題がありました。恐らくブートアッププロセスにチューニングが必要なようです。当面は USB ブート用の環境でのテストもやってみたいところです。






- Keyword -

SUSE Linux, SLES12, SLES12sp3, インストール, 導入, 手順, DVD ブート, USB ブート, Howto


[PR]
by islandcenter | 2017-09-29 07:51 | SUSE | Trackback | Comments(0)

今回は SUSE Linux (SLES12) で GUI 版 yast2 で Samba ファイルサーバーを導入してみます。YaST のメニューは英語表記ですが、第一言語を日本語にすると、何となくカッチョ悪いけど日本語表記にすることもできます。

gnome デスクトップの computer > yast で起動するか X 端末から

# yast2 &

で起動します。

Network Service > Samba Server を開きます。

まだ、samba サーバーが設定されていない場合、インストールウィザードが起動して、インストールが開始されます。

a0056607_14142853.jpg


まずは WorkGroup の設定

a0056607_14150216.jpg


次にドメインタイプを選びます。ここではドメインを使用していないので "Not a Domain Controller" を選びます。

a0056607_14152828.jpg


"Start Up" タブから、起動方法 "During Boot" で自動起動を選びます。

a0056607_14161898.jpg

”Shares” タブを開き、デフォルトで "Share" される機能を確認します。デフォルトでは /home/が共有されます。追加したいときは "Add" ボタンで追加します。

a0056607_14164852.jpg


追加するディレクトリはあらかじめ作成しておきます。

sles12:/home # mkdir Share
sles12:/home #

"Share Path" をブラウズして、共有ディレクトリを指定し、 "Share Name" (必須)を設定します。 "Share Description" はオプションです。

a0056607_14174327.jpg

OKボタンを押すと、"Shares" に追加されます。

a0056607_14180728.jpg


こちらは CUI 版 yast です。"Add" ボタンから、共有ディレクトリの共有ディレクトリを指定します。

a0056607_14182530.jpg

既にシステムに登録済のユーザを samba ユーザに追加します。

sles12:/home # smbpasswd -a knakaj
New SMB password:
Retype new SMB password:
Mismatch - password unchanged. <--- おーっとまちがったぜ。
Unable to get new password. <--- 見逃すとはまります。
sles12:/home #
sles12:/home # smbpasswd -a knakaj
New SMB password:
Retype new SMB password:
Added user knakaj. <---- これを確認しないとね。
sles12:/home #
sles12:/home # chmod 777 Share
sles12:/home #
sles12:/home # chown nobody:nobody Share
sles12:/home # ls -l
total 0
drwxrwxrwx 1 nobody nobody 0 Sep 27 13:27 Share
drwxr-xr-x 1 knakaj users 234 Sep 23 16:32 knakaj
sles12:/home #
sles12:/home #
sles12:/home # rcsmb restart
sles12:/home #

でログイン

a0056607_14190339.jpg


- 出たな、妖怪! -

ネットワークに名前がでても、接続できない場合があります。いつものマスタブラウザが悪さしています。

a0056607_14192641.jpg

その時は \\ip_address でアクセスします。

無事アクセスできました。共有フォルダにファイルが作成できることを確認します。

a0056607_14194709.jpg

オーナーが root のままのディレクトリを作ってみます。

sles12:/home/Share # mkdir read-only
sles12:/home/Share # ls -al
total 0
drwxrwxrwx 1 nobody nobody 18 Sep 27 13:56 .
drwxr-xr-x 1 root root 22 Sep 27 13:27 ..
drwxr-xr-x 1 root root 0 Sep 27 13:56 read-only
sles12:/home/Share #

a0056607_14201964.jpg


root でテキストファイルを作ると Read はできますが、上書き保存 Overwrite はできません。

a0056607_14203895.jpg


ディレクトリから読み取りの権限を削除します。

sles12:/home/Share # ls -al
total 0
drwxrwxrwx 1 nobody nobody 106 Sep 27 13:58 .
drwxr-xr-x 1 root root 22 Sep 27 13:27 ..
drwxr-xr-x 1 root root 28 Sep 27 14:02 read-only
-rwxr--r-- 1 knakaj users 0 Sep 27 13:58 新しいテキスト ドキュメント.txt
sles12:/home/Share # chmod 700 read-only/
sles12:/home/Share # ls -al
total 0
drwxrwxrwx 1 nobody nobody 106 Sep 27 13:58 .
drwxr-xr-x 1 root root 22 Sep 27 13:27 ..
drwx------ 1 root root 28 Sep 27 14:02 read-only
-rwxr--r-- 1 knakaj users 0 Sep 27 13:58 新しいテキスト ドキュメント.txt
sles12:/home/Share #

フォルダは見えてもアクセスできません。

a0056607_14211593.jpg


- 読込権限のないディレクトリを非表示にする -

アクセス権のないフォルダ(ファイル)を非表示にしたい

/etc/samba/smb.conf の [Global ] セクションに

hide unreadable = yes

の行を追加します。

sles12:/etc/samba # vi smb.conf

: 編集中

sles12:/etc/samba # cd
sles12:~ # cat /etc/samba/smb.conf | grep hide
hide unreadable = yes
sles12:~ # rcsmb

YaST を使う場合、Identify タブの Expert Global Settings から、"hide unreadable" : "yes" を追加します。

a0056607_14214467.jpg

samba を再起動したら見えなくなりました。

a0056607_14220975.jpg

SUSE Linux で YaST からインストールして、ファイル共有までもおおざっぱな流れを見てみました。ただ、素の samba インストールなので、ユーザはいちいち ssh でログインして smbpasswd を使ってパスワードを変更しなくてはならないし(ユーザはまずやらないだろう)、PAM 認証や LDAP連携など(これは管理者がまずやらないだろう)がなく、そのような仕掛けを作るには、まだまだ複雑な作業が必要です。小規模ネットワークでは samba は手軽でコストパフォーマンスは良いですね。

また "Share" 自体に "秘密の人事" なんて名前の"共有"を作ると見えてしまうというのは、ちとまずいですね。実際には

\\server\ShareName\Secret(hidden)

に作成すべきでしょう。

その他、細かな操作はテキストベースの操作が必要ですし、「シェルを作って一発」という手段が使えるのは Linux/Unix 系OSの良い所なんですが、あまりそこまでやりたくないし、と言った事情があります。また、ボリューム(パーティション)単位のクオータは定義できても、ディレクトリ単位のクオータ定義ができないので、結局はファイルサーバーは、死んだファイルのごみ箱になりかねません。その中に黄金のファイルが含まれているかも知れないため、ストレージバックアップシステムにもお金をかけなければならないのです。

まぁ手をかけて samba を鍛えて属人システムにして Windows の CAL 代を節約するか、手をかけて稟議書を書いて Windows サーバーを購入するのがいいのか、それとも、そんな問題を全部解決する Novell Openenterprise Server のライセンスを購入するか、それは大人の事情ですから、ここでは何も言えませんね。





SUSE Linux, SLES, SLES12, Samba, インストール, 設定, YaST, フォルダを見えなくする。フォルダにアクセスさせたくない。




[PR]
by islandcenter | 2017-09-28 14:24 | SUSE | Trackback | Comments(0)

今回は SUSE Linux Enterprise Server 12 (SLES sp2) で PHP スクリプトを HTTP サービス を動かす方法を説明します。 SLES11 までは Web LAMP をインストールするだけで HTTP サーバーで PHP スクリプトを動かす事ができたのですが、 SLES 12 以降はちょっと面倒になりました。マニュアルにも記載がなかったり、誤記があるようなので、細かい所のご指摘があればコメント下さい。なお、この記事は参考程度に見てもらえればありがたいです。

公式には評価版ではなく、E-Media でインストールしたうえでアクティベーションしてサポートを受けることをお勧めします。

今回は第一言語 English の CUI 版 yast を使って作業をしてみました。 X が使える環境であれば yast2 を利用しても、日本語第一言語でもほぼ同じ操作です。

SUSE Linux Enterprise Server 12 SP3 管理ガイド

31.4 モジュールのインストール、有効化、および設定


SLES11 はこちらを参考にしてください。

Apache のインストールと設定まで30秒、SUSE Linux はこんなに簡単

- はじまりはじまり -

まずは YaST から

# yast
> Software > Software Management

を開きます。

a0056607_12351213.jpg


ここで Web and LAMP をチェックして、まとめてインストールします。

Filter > をトグルして "Patterns"


a0056607_12355694.jpg

"Web and LAMP server" をスペースキーでチェック > Acceptします。


a0056607_12361986.jpg

依存性のあるパッケージを確認して”OK”


a0056607_12363810.jpg


インストールが始まります。> Finish

a0056607_12365531.jpg

HTTPサーバーの細かな設定をします。

# yast
> Network Servece > HTTP server


a0056607_12390355.jpg

Wizard に従い”Next”

PHP5 Scripting を Enable にするため、選んで、スペースキーでチェック(敗因)


a0056607_12401312.jpg

※ 敗因 SLES11 までは、このチェックだけで apache2_mod_php5 がインストールできたのですが、SLES12 より PHP5 は Evaluation DVDから削除されたようです。マニュアルも、この指示通りでしたが動きません。評価版ではなく、アクティベーションした場合はまた違う動きがあるかも知れませんね。かと言って、開発途中でアクティベーションするのも何だか勿体ない。

詳しい理由は判らないのですが、PHP の様々な不具合により、サポート対象となっていないようです。php5 は openSUSE のリポジトリからインストールできるので、これは後述します。

オプションの確認、ここでは特に何も変更はありません。


a0056607_12403854.jpg

Virtual Host の設定、特にやることもないので、空欄のまま Next

a0056607_12411300.jpg

Start Apache2 server When Booting をスペースキーでチェック

a0056607_12413566.jpg

Apache2_mod_PHP5 が追加でインストール(敗因 - 実態は何も起こりません)

a0056607_12415786.jpg

一応インストールされた様に見えますが、実は YaST > Software Management で "Search" しても、php5 はリストされません。

ブラウザから、デフォルト index.html を開きます。

sles12:~ #
sles12:~ # w3m 192.168.1.199
sles12:~ #

a0056607_12422273.jpg

apache は動いているようです。

- PHP5 のインストール -

apache2_mod-php5 は openSUSE のソフトウェアページからダウンロード、インストールします。

FireFox ブラウザから


より PHP5 を "package Search"


を開き SLE12 > "PHP5.5.3.xx を "1 Click Install します。

a0056607_12430720.jpg

SUSE SL"12 を開き home:onzi をYaST 1-Click Install > OK

リポジトリの追加

a0056607_12434363.jpg

2017/9 現在 SUSE:SLES-12:GA/standard のレポジトリは実体がなく、エラーになるのでスキップして構いません。

インストールされるソフトウェアパッケージを確認して

a0056607_12450236.jpg

一応警告を確認して OK  (2017/9 現在、他にも途中エラーが出ますが無視しました)

a0056607_12452714.jpg

GNUpg_Key を "Trust" します。

a0056607_12455304.jpg

リポジトリが登録されたので YaST Software Management > Search > "apache" を検索し apache2_mod_php5 をスペースキーでチェック、インストールします。


a0056607_12462718.jpg

依存性のあるパッケージを確認して OK


a0056607_12464583.jpg
Finish

- apatche のサーバーモジュールの有効化 -

# yast
> Network Service > HTTP Server から "Server Modules" タブを開いて "php5" を選び "Toggle Status"Enabled に変更します。

a0056607_12470707.jpg

※ ここまでは E Media でも同じなのですが、E Media では Enable にはなりませんでした。結局 openSUSE のリポジトリからインストールして apach2_mod_php5 が結果OKという事になります。


簡単な /srv/www/htdocs/index.php を作成してみます。

a0056607_12472567.jpg

- ディレクトリインデックスの修正 -

/etc/apache2/httpd.conf にデフォルトファイルとして index.phpindex.htm を追加します。

sles12:~ # vi /etc/apache2/httpd.conf

: 編集中

sles12:~ # cat /etc/apache2/httpd.conf | grep DirectoryIndex
DirectoryIndex index.php index.htm index.html index.html.var
sles12:~ #

これで、ブラウザから URL でディレクトリを指定すると、index.php > index.htm > index.html > index.html.var の順で、ディレクトリのデフォルトページを表示します。HTTP サーバー全体を PHP で記述する場合、これで、ディレクトリ指定だけで index.php が最初に開かれる事になります。また html ではなく index.htm を記述したので、よくある Windows 用のオーガナイザーで作られる、htm 3文字拡張子にも対応できます。
apache2 を再起動して、デフォルト index.php が優先して、開けるか確認してみます。

sles12:~ # rcapache2 restart
sles12:~ # w3m 192.168.1.199
sles12:~ #

a0056607_12474880.jpg

PHP スクリプトが実行されました。

- あとがき -

SLES11 の場合は、このあたりは何の悩みもなくできましたが、SLES12 以降はかなり制限が厳しくなっています。理由は何となく想像するしかないのですが、マニュアル、ドキュメントの不備はちょっと不満があります。なお、MySQL はインストールされず mariadb がインストールされます。

a0056607_12480785.jpg

ちょっと SLES11 とは手順が違い、結局 openSUSE のリポジトリからインストールする結果になってしまいました。実際には、評価版である程度 Web サイトのデザインを作って、顧客から発注を受けたところでアクティベーションする事が多いと思います。

実際に MySQL も mariaDB に置き換わっていますし、このあたりは、SLES12 の新しい方針を示すものでしょう。従来の PHP+MySQL の環境で作業をする場合は SLES11 の方が良いかも知れません。新しい技術を身に着けたい場合はやはり SLES12 を選ぶことになります。



-Keyword-

SUSE Linux、SLES12, Apache HTTP サーバー PHP, PHP5, スクリプト、インストール, 有効化, 無効化, enable, disable, SLES11との違い











[PR]
by islandcenter | 2017-09-25 13:23 | SUSE | Trackback | Comments(0)

ここでは SUSE Linux Enterprise 12 (SLES12) を使って、YaST ツールから ntpd の初期設定の手順を説明しています。 openSUSE も大体似たようなものなので参考にしてください。

- はじまりはじまり -

今回は主に GUI 版 YaST (yast2) を使って説明します。キャプチャ画面は英語ですが、これは第一言語を英語にしているからで、第一言語が日本語であれば、一応日本語メニューも出てきます。(でも何だか英語版の方が私にはほっとするんですね)一部 CUI 番 yast のキャプチャがありますが、機能は全く同じです。

ntpd のインストールは YaST を起動して、"Network Services" > "NTP Configuration" を選ぶと自動的にインストールが開始されます。

a0056607_15591361.jpg

まれに YaST メニューに "NTP Configuration" のアイコンがない場合があります。"Software Management" から "NTP" をキーワードに "Search" して "yast2-ntp-client" のチェックが入っているかどうか確認します。チェックが入っていない場合、チェックして、 NTP Configuration ツールをインストールします。もちろんここから ntp のデーモンもチェックしてインストールしても構いません。チェックを入れたら、いったん YaST を終了して、もう一度 YaST を立ち上げるとメニューに出てきます。

a0056607_16001458.jpg


インストールが終わると、設定画面が自動的に開きます。 "Start NTP Deamon" が "only Manually" となっているところを "Now and on Boot" に設定しなおします。

※ この時点で 
0.opensuse.pool.ntp.org,
1.opensuse.pool.ntp.org,
2.opensuse.pool.ntp.org, or 3.opensuse.pool.ntp.org
の3つがデフォルトで NTP ソースとして選択されるようです。

Configuring an NTP Client with YaST
https://www.suse.com/documentation/opensuse121/book_opensuse_reference/data/sec_netz_xntp_yast.html



a0056607_16011410.jpg
まず "Security Settings" タブを開いてください。"Run NTP Deamon in Chroot Jail" にデフォルトでチェックが入っているはずです。たまに入っていない事があるので、確認します。もう一度 "General Settings" タブを開きます。

a0056607_16020532.jpg

初期値には "Synchronization Type" : "Undiscriplined Local Clock" が指定されています。この画面は別なベアメタルサーバーで見た CUI 版 YaST の設定画面です。

a0056607_16025029.jpg

ここで、重要なことは、

1 - ntpd が起動する時に "Undisciplined" な "設定されていないローカル時刻" をソースとする、つまりハードウェアクロックをソースとするかどうかです。SUSE をハイパーバイザー運用のためにインストールする場合など、 ntpd が起動する前に、"Orphan 状態"、つまりネットワークに繋がっていない"孤独な状態" に使用するものです。信頼できなくてもハードウェアの CMOS クロックをもらうようなので、まだネットワークが行動していない ntpd が起動していない、あるいは、ネットワーク障害が発生している時やブート時のログには、あまり正確とはいえないまでも、ローカルクロックで立ち上がってくれるわけです。ベアハードウェア上のサーバーは、この行をとりあえず残しておきます。

Undisciplined Local Clock

IDEA! The Undisciplined Local Clock should generally no longer be used.

とある様に、将来的にはサポートされない手段になるものです。

2 - このシステムが XEN や KVM, Hyper-V などで動作する場合は、”Undisciplined Local Clock”Delete します。

openSUSE のマニュアルなのですが、

第2章 KVM の制限事項

"時刻同期"

"多くのゲストでは、時刻を正確に維持するのに追加のサポートを必要とします。 利用可能であれば、 kvm-clock を使用してください。 それ以外にも NTP やその他のネットワークベースの時刻同期プロトコルを利用し、 安定した時刻を維持することを強くお勧めします (VM ホストサーバ と VM ゲスト の 両方に対して) 。ゲスト内での NTP は、 kvm-clock を利用している場合には推奨されません。詳しくは 8.7項 「時計の設定」 をお読みください。"

とあり、仮想環境下では、ホストOSからのハードウェア時刻同期は推奨されません。暗に ntpd が推奨です(と読めます)。そこで、仮想運用する場合、タイムソース "Undisciplined Local Clock" を削除して ntpd の設定は必須の事となります。

- タイムソースの追加 -

ntpd にタイムソースを追加します。”Add” ボタンを押して "Server" を選び Next

a0056607_16040057.jpg
"Address" の右にある、"Select" リストから "Public NTP Server" を選び、地域 "Japan" にある NTP ソースのリストが出てきます。 SLES12 の用意した List の中には NICT と "jp.pool.ntp.org" のリストが出てきます。SLES11 までは、jp.pool.ntp.org と福岡大学の NTP ソースがリストされました。

a0056607_16041880.jpg

1- セレクタを使わないで、オリジナルの NTP ソースを使う場合、"Server Settings" の "Address" 欄には、直接サーバーのアドレス ”ntp.nict.jp” とか "ntp1.mylocal.net"、”192.168.1.123” のように記載できます。一応 IP 直アドレスでも構わないのですが、FQDN 名で設定すべし、という事になっています。

社内向けのDNSサーバーがある場合、DNSサーバーの CNAME に LAN内 NTP ソースとなるレコードを追加しておくのが良いでしょう。

 ※ ちなみに time.windows.com とも同期できましたが、世界何億台が参照するため、滅茶苦茶時間がかかりました。できるだけ経路の短い国内の公開サーバーか、契約先ISPが提供する NTP サーバーを利用すべきでしょう。有名だからと言って、昔、人気があった福岡大学の NTP は様々なシステム機器のデフォルトで、トラフィックと遅延問題が大きく、あまりご迷惑をかけないように利用を控えた方が良いようです。(今は学内のみ利用可能なようです)


2- 公開NTPサーバーや ISP の指定 NTP を使うのは、ローカルネットワーク内部の2~3台までとして、他のシステムやWindows などのPCはこのローカルLAN内のNTP参照をすべきでしょう。(と言っても Windows が time.windows.com をデフォルト参照先になっているのはやっぱり問題ですよね)

NICT のFAQによくまとまっています。他、mfeed.ad.jp やリングサーバープロジェクトなどに、専門家が書いた使い方が載っています。この零細出鱈目ブログよりよっぽど為になりますので一読してください。

NICT公開NTP FAQ

インターネットマルチフィード(時刻情報提供サービス for Public)

NTP service : ntp.ring.gr.jp

どうやったらpool.ntp.orgを利用出来るのでしょうか?

NTP Download (Meinberg 氏による Windows 用 ntpd のバイナリ配布先)

3- NTP のプロトコルは 123 番ポートでほぼ UDP だそうです。ただ RFC のドキュメントには UDP の記述しかないので、TCP を使っても構わないようですが、かなり希少な存在なようです。ファイアウォール屋さんと相談の上、穴をあけてください。

「NTP のポート番号と UDP か TCP かどちらか教えろ」と質問してきた信じられない自称プロトコルの専門家、ファイアウォール担当の SI 屋が居ましたが、今なら首を絞めて教えてあげたい。というか、当時は Google 先生もいないし、マニュアルにもポート番号の記述しかなく、そんなことも知らなかった私が一番悪いんですけどね。

4- NTP の問い合わせは「行って」「帰って」の経路が同じものと想定して、その時差の真ん中あたりが、NTPソースサーバーが返した時刻だと補正の判断をするそうです。だからなるべく「行って帰って」の経路が単純で短い NTP ソースを誤差なく使うべし、という事です。他の海外製ディストリビューションでは、インストールした後のデフォルトが、海外にある自社の NTP プールを指定していることが多いようですが、あまり好ましいものではないでしょう。

ここで "Test" ボタンを押して、軽快にレスポンスが返ってくれば、NTPソースとして利用可能です。

a0056607_16044994.jpg
これをタイムソースとして利用するサーバー複数個を指定します。LAN 内サーバーであれば、内部にあるNTPサーバーを複数と、予備にISP指定の NTP サーバーや、nict や mfeed などの公開NTPサーバーを指定するのが良いでしょう。

"Display Log" ボタンから、 "Advanced" > "Save Settings and Restart NTP Deamon" を選ぶと設定内容が保存され、ntpd が起動します。

a0056607_16051267.jpg
ntpd は大きな時刻ずれを検出すると minpoll 64 秒の短い間隔から "徐々に時刻を正確なものに寄せて” このチェック間隔も広げます。さもないと、スケジューラをすっ飛ばしたりするような、予期せぬ動作が起こってしまいます。

おおよそ安定してくると Stepping Mode から Slew modeとなり、デフォルトで 1024 秒間隔で時刻ずれをチェックします。このあたりの詳細は


で確認してください。

なお、SLES12 (spなしの初期版) では apparmor の不具合らしいバグがあるため ntpd の起動に失敗します。

SLES12 ntpd が Fail 起動できない <とその解決方法

簡単に修正できるので、参考にしてください。


SUSE Linux, SLES, SLED, NTP 設定方法, YaST,




[PR]
by islandcenter | 2017-09-21 16:24 | SUSE | Trackback | Comments(0)

ここでは SUSE Linux (SLES12) をインストールした後、DHCP のランダムな IP アドレスを Static IP に固定する手順を説明します。
SLES/SLED/openSUSE のバージョンによって、若干違う場合がありますが、ほとんど共通のインターフェースなので簡単に設定することができます。


テキストコンソールの場合は
# yast

もしくは X 環境では gnome デスクトップの Computer アイコンから YaST の GUI 版を使います。テキストターミナルを開いて
# yast2 &

で GUI 版を開くこともできます。

ここでは主に CUI 版 YaST で説明します。

- はじまりはじまり -

※ ここでは、第一言語 English, 第二言語 Japanese で設定されていますので、なのでキャプチャ画面は表記は英語です。第一言語が Japanese だと訳の分からない変な”ニッポン語”でメニュー表記されるし、 ALT+ ショートカットキーもわかりづらいですし、それをまた英訳するのも面倒なので、サーバー運用に問題がないのであれば、英語で設定しています。

CUI 版 yast の操作は、ほとんどが TAB, カーソルキー, Space キー、 Enter キー、あるいは ALT+alphabet キーで操作します。第一言語がニッポン語の場合は、 ALT+Alphabet が分かりにくいので、やっぱりここは英語版がいいでしょう。

# yast から[Tab] キーで System > Network Settings を[Enter]開きます。

※ SLES11 までは Network Devices > Network Settings でした。

a0056607_16015344.jpg

Overview の Network Bridge (br0) が初期値 "DHCP" になっています。Device eth0 は IP アドレス "NONE" となっていますが、このデバイスは None のまま変更しません。SUSE Linux では "実NIC(ethX)" <-- "Brigde(BrX)" でブリッジ接続するため、 ethX は無設定、固定 IP の割り当ては BrX に行います。

ここでは br0 に対して設定します。"Edit" します。

a0056607_16031896.jpg

環境によっては物理NIC (Eth0) しか表示されない場合があるので、 Eth0 の設定を "Delete" して "Add" ボタンから、Brige ネットワークが構成できます。その際も Eth0 は設定なし(NONE) br0 に IP を設定します。必要なブリッジネットワークの構成ツールが自動的にインストールされます。

物理NIC が複数ある場合、 "Add" メニューから Bridge ネットワークを追加します。これは GUI 版 YaST の画面です。

a0056607_16034437.jpg

”Bridged Device” (BrX) にどの物理 NIC を繋げるかを選んでスペースキーでチェックします。ここでは一つの物理 NIC しかないのですが、NIC の複数差しの場合、 br0 --> eth0, br1 --> eth1 .... という感じで、異なる構内LANと管理用物理配線、あるいは SAN 用配線に割り当てることができます。

a0056607_16041999.jpg

DHCP から Statically Assigned IP Address に固定IP、サブネットマスク、インストール時のデフォルトランダムな Hostname の書き換えをします。

a0056607_16050452.jpg

例えば、 XEN や KVM などの仮想化システムのホストとして運用する場合、ホスト本体は内部の管理ネットワークやストレージ LAN だけに繋ぎ、仮想システムは公開ネットワークに繋げる、などの柔軟な運用で、仮想システムを非公開ネットワークだけに繋いで保護する事ができます。

"Hostname/DNS" を開き、 ランダムな初期値の "Hostname" と ”Domain Name” を、目的の環境、命名規則に合わせて変更します。

"Name Server 1,2,3" に、必要な DNS サービスの IP アドレスを与えます。

この作業でYaST を終了すると /etc/resolv.conf と /etc/HOSTNAME が更新されます。

a0056607_16054048.jpg

”Routing” を開いて "Default Gateway" の IP アドレスを設定します。

a0056607_16060699.jpg
[OK] ボタンを押して、設定を保存すると、設定ファイルの書き換え、ネットワークの再起動が行われます。

- 確認 -

ifconfig と ping で通信確認をします。この様な感じで ifconfig で brX に IP アドレスが割り当てられればOKです。恐らく、ping も成功するでしょう。

sles12:~ # cat /etc/HOSTNAME
sles12.intra

sles12:~ # ifconfig

br0 Link encap:Ethernet HWaddr 00:16:3E:24:71:21
inet addr:192.168.1.199 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::216:3eff:fe24:7121/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:699 errors:0 dropped:0 overruns:0 frame:0
TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:41287 (40.3 Kb) TX bytes:19384 (18.9 Kb)

eth0 Link encap:Ethernet HWaddr 00:16:3E:24:71:21
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:805 errors:0 dropped:0 overruns:0 frame:0
TX packets:207 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:49634 (48.4 Kb) TX bytes:19732 (19.2 Kb)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:38 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:2888 (2.8 Kb) TX bytes:2888 (2.8 Kb)
sles12:~ #

- 再起動 -

コンソールからログオンすると、プロンプトが初期値のランダムな HOSTNAME なので、一旦リブートします。

- よくあるトラブル -

"あれ ???? ping が飛ばないよー”とここでハマることがよくあります。

ifconfig で lo しかなく、 br0 に何も IP アドレスが出てこない場合、Bridged Device が、実装されている NIC とのチェックが外れていることがほとんどなので、ブリッジネットワークと、実NICの接続をチェックします。ここのチェックを入れ忘れる事が多いので注意してください。

これは、GUI 版 YaST のネットワーク設定の画面です。

また、複数 NIC を装着した場合、物理 NIC brX 仮想ブリッジを間違えてチェックしてしまう間違えも、よくある間違えです。実際のケーブリングと、物理ポートを確認してください。

a0056607_16064178.jpg

この様に、 SUSE Linux でのネットワークの設定は YaST で行うのが一番漏れもなく、確実であること。また、驚くほどタイプする作業がありません。

--
ほとんどの場合、SLES はサーバー運用になるので、Text Mode での起動となるでしょう。X 環境が使える場合は、 Windows などから GUI 版 yast2 を使ってもいいのですが、CUI テキスト版 yast コマンドの方が、軽快なので、ほとんど CUI 版を使う事になると思います。

インストール後の DHCP から固定IPへの変更は、 SUSE Linux では一番最初に行う作業でしょう。ここで YaST の使い方を覚えておけば、後の設定も楽です。


SUSE, SLES, openSUSE, DHCP 固定 IP の設定, Howto, YaST, ネットワーク設定,





[PR]
by islandcenter | 2017-09-20 16:10 | SUSE | Trackback | Comments(0)

地味で意味不明のKSKロールオーバー

総務省の「勧告」があり始めて知りました。


※ DNSについては「知っている」程度の知識なので、このブログの内容は内容は丸のみしないように.....関連文書はごっちょり出ています。

ネット史上初めての「KSKロールオーバー」が始まる、名前解決できなくなる前にDNSサーバーなど設定確認を! 今年9月は特に注意

影響があるのは、DNSサーバーを運用しているネットワークで、管理者は「何それ」と言って「朝日新聞」以外の大手メディアは「狼が来た」程度で、騒いでもいないので、突然の対策に苦慮しているようですね。

企業LAN、ネット遮断のおそれ 総務省が確認呼びかけ

詳細はこちら

KSKロールオーバーについて(JPNIC)

-まず DNSSEC-

大抵、一般企業のゾーン mycompany.com には www, mail, mydns など自社の社外向けサービスが、ISP の DNS マスターに記載されていて、企業の mydns は、ISP のマスターからゾーン転送を受けるスレーブとなって、もし、ISP の DNS が停止する場合のバックアップになります。逆に自社オンプレミスのDNSサーバーがゾーンマスターのケースもあります。

しかし、この二つは、お互い IP アドレスだけで信頼関係があるので、万が一、相手が「なりすましIP」を使うと、DNSのゾーン転送がうまく行かなくなり、メールの誤転送や、フィッシングサイトへ引き込まれたりします。そこで DNSSEC という鍵交換方式で相手のDNSが正しいかどうかを検証するのがDNSSEC という事らしいです。

. (ドット)のルートゾーンから、.jp -> .co.jp -> mycompany.co.jp までそれぞれゾーンを管理する団体が違うので、その間、どのような経路を通るのか分からないので DNSSEC を使ってお互いを確認しあう仕様になって7年目。本来、5年でルートゾーンのKSK 電子鍵 "Key Signing Key" を更新する予定だったのが、色々調整に手間取り、いよいよルートの鍵更新をするのがこの秋ということなのです。そもそも DNSSEC 自体、実装され始めて10年と経っていないDNSの保護対策なので、ワタシのように「古いエンジニア」には何がなんだかさっぱり。そもそも閉じた環境では 古いDNSサーバーをそのまま使っている場合、DNSSEC自体実装していないケースも多いようです。最新の Bind DNS では、 DNSSEC 自体デフォルトで Auto となっているケースがあるようなので、それぞれのディストリビューションに問い合わせて対策する必要がありそうです。

で、SUSE のマニュアルしらべてみましたが、named.conf の ”dnssec-validation” のパラメータの記述さえありません。勿論 YaST のオプションにも設定項目なし。逆に、dnssec の validation 機能の脆弱性情報に載っていたくらいなので、一つの脆弱性があれば、また次にも見つかる機能なので、無理して使わないのが、無難なのでしょうかね。

もともと私が愛用している Bind の教科書にも DNSSEC については、ほとんど記述がないほどの機能ですから、大多数意見では DNSSEC 自体は設定する必要はまず無いようです。上位 ISP にも問い合わせてみたら、「DNSSEC は無効にしている」という回答。そもそも資料も少ないですから。というか DNSSEC 無用(悪機能)論もあるくらいだから、ほとんど一般の管理者にとっては無視するのも仕方ないのかなと思います。DNSSEC は日本では 2017 年現在 10% 前後しか普及していないらしい論もあります。そもそもそれほど通信事業者間、公共団体で普及していないものを、取り出して「ああ、こう」言っても、聞く耳がないのも仕方がない事です。

- それでも起こるDNSのトラブル -

それでも上位ISP同志で鍵交換をする、この秋に、一般的なDNSクエリ以上のパケットサイズの通信が起こり、通常 1280 バイトのDNS更新情報が、1424 バイト程度まで膨らんでオーバーフローして情報が正しく伝わらない現象が「KSKロールオーバー」という現象です。この影響は全インターネットユーザの1/4程度が影響される可能性があるということなんですね。これほどの大袈裟な影響なのに、一般に認知されていないところは、ずいぶん疑問符が出てきます。

これによって、相手のウェブサイトの名前解決ができない。名前解決ができないため、メールが転送できない、という現象が大本営発表によると発生する(らしい)のですね。

実際に、SOHO向けルータのDNSサーバーを使っているワタシの様な零細事業者とか、スレーブDNSを自社にオンプレミスで運用しているとか、DNSについてはド素人なワタシのようなSI業者なんかがiDC の中の顧客のサーバーの面倒を見ているような場合は、「KSKロールオーバー? 何それ?」という事になり、ろくな知識もないまま慌ててしまう事になるわけです。

1) 確認方法

1-1) bind dig コマンドで dns の reply size limit の値をチェック

reply size limitの値が1424より大きいこと

sles11:~ # dig @dns2 +bufsize=4096 +short rs.dns-oarc.net txt
rst.x1008.rs.dns-oarc.net.
rst.x1968.x1008.rs.dns-oarc.net.
rst.x2454.x1968.x1008.rs.dns-oarc.net.
"173.194.171.12 sent EDNS buffer size 4096"
"173.194.171.12 DNS reply size limit is at least 2454"
"Tested at 2017-09-05 03:27:22 UTC"
sles11:~ #

※一発で答えが返らない場合もあるので2、3度繰り返してみてください。

1-2) DNSSEC Key Size Testのサイトでテストする。

にアクセスして、Result の 1~4が Pass していること、5は(This should fail なので) パスしないはず。
a0056607_13383419.jpg
以上で問題がなければ、一応、KSK ロールオーバー対策は「準備OK」という事になるそうです。

問題がある場合、上位ISPの DNS のプロに問い合わせて対策するのが一番のようですね。もっとも、「影響なし」と公表しているISPも少ないので、みんな知らないのも当たり前なのかも知れません。

2) DNS は最新版を

DNS サーバーはいったん設定を済ますと、中々中身をイジリたくないシステムです。でも Bind というソフトウェアはバグや脆弱性が多い事でも有名なソフトウェアなので、Bind を最新版に更新した方がいい。という事になります。

それにしても、この問題があまり大きく IT 関連のメディアにすら載らないし、ほとんど JPNIC と大本営総務省発表のコピペ記事で、具体性に欠けるのが最大の謎だったりします。

ご意見ある方のコメント期待しています。


KSKロールオーバー, DNSSEC, dnssec-validation, 無効化, 有効化




[PR]
by islandcenter | 2017-09-05 13:40 | SUSE | Trackback | Comments(0)