Category Archives: OS

Apparently there’s dependencies nginx

There’s to resolve problem and I have to apt-get upgrade otherwise my site might be die. I totally didn’t notice this problem though. First I tried this case how to resolve. BUT, this way wasn’t resolve this problem.Orz Don’t forget restore config file. Actually We have a method that is to resolve a problem. Let’s me show you apt-cache policy. As you can see, default repository is the highest position in this file. I need write this file to success apt-get upgrade and resolve dependence. It’s like this, I can write config file for apt. Let’s me show you apt-cache policy again. dotdeb is having file priority have changed from […]

Debian8をCLIで立ち上げたいので、Target(旧ランレベルの役割のとこ)をsystemctlで変更した

ペネトレーションテストに使っているDebian8なのですが、OpenVASのインストールほやほやの時は使っていたGUIですが、気づいたらCliしか使っていない事に気づいたので、そもそもあまりリソースを割り当てていないゲストOSなので不要なリソースを使わせたくない!ってことで、Cliに変更しました。 Gdmは必要な時だけ〜ですね〜。 現在の状態を確認するには。 GraphicalTargetと出ました!Systemdにはrunlevelという概念はなくTargetってものになりますってのが下のファイルを見たらそうなっています。 Resqueってのはレスキューモード。シングルユーザモードです。 ちなみにTargetはいくらでも作れるそうです。 get と来たら set と来るのが定石なんでしょうか。 リブートすればCliのログイン画面が出たら成功です。と言うか失敗してたらアウトだ。 SystemdのOS起動時の挙動について せっかくなんで少し調べてみよう。 BIOS > ブートローダ > Kernel > Systed という流れで以前と同じように見えます。 もっとも変わったところは従来のInitはランレベルによってそれぞれの起動スクリプトを実行していくという流れでしたが、Systemdが起動されると、さきほど設定したDefaultTargetを確認、Unitの関係を解析して最適な順序でプロセス起動やMountを並列に実行する。 ということらしいです。 Systemdを少し触りだすと、Service restart httpd とかやっちゃうから気をつけよう。 やらない? そうかぃ(゚∀゚); これ欲しいなぁと思ってて いたんですが、こっち買っちゃった。

Ubuntuのインストーラーのパーティショナーが分かりにく杉内

Linuxも何も見ないでGUIでサクサクッとあっちゅうまにインストール完了!という時代ですが、分かりにくいなあというのを久しぶりに発見。 まずはインストールを追っていきますか。 最初に言語の選択ですが、日本語でOK。 UbuntuサーバーをインストールでFA。 日本語を選択した場合、翻訳が完全ではないよと出るのだが、それが原因で分かりにくいという事ではないのでそのまま進める。 キーボードレイアウトはそのまま進んでいけば106系では使えるようです。 CDからインストーラーコンポーネントを呼び出されて、そのままの勢いでネットワーク設定まで進んでいきますが、DHCPが動いているとそのまま自動割り振りされます。 割り振りされたあとで、どうする?って聞いてきますので・・・ なので、いったん戻って手動を選択する必要が。 DHCPで良い人はそのまま進めばいいと思うよ。 ネームサーバーはISPの指示に従いましょう。うちでは同じくゲートウェイのアドレスで良いし、ネームサーバーを立てている人はそのネームサーバーのローカルIPで。 直接つながっている人はISP指定のネームサーバーで。   ホスト名と続いてドメインネームの入力ですが、任意で決めましょう。 おんなじような画像が続くと何を挿入しているか分からなくなってきますね・・・ ドメインネームの入力ですが、空白でも問題なければ問題ないです。説明になってないなあw 環境によるという事だに。 前回のPuppetでは悩まされましたが、産まれたてのOSではそんな悩まされることはないでしょうからね。 ユーザーの追加ですが、Ubuntuはデフォルトでsudoを使うようになっていてrootでのログインができないようになっていた気がするので作っておけば間違いないです。 いいや、俺はrootを使うんだ!って進んでいるとちょっとホラーな感じでダメー!と警告されてしまいます。おとなしくユーザーを追加しよう。 ホームディレクトリの暗号化をするかどうか、別にいらないのでいいえ。 時刻の同期が始まって、RH系でいうところの Japan>Tokyo/Asia を選択した状態と思われるがそのままでOK。 さて、次、問題のパーティショナーです! ここでは1台のHDDまるっとOSを入れる事を前提として進めます。 RH系なら画像のようにガイドを選択した後で自由に変更することができますのですが、何かちょっと上手く動かないようです。 空のディスクの場合は手動でそのまま進めば問題ないと思います。 何か入っているディスクの場合は、まずはガイドで全体を使い~で進めます。 問題の分かりにくいところはここで。 デフォルトでスワップ領域とルートパーティションに分けられているのですが、この数字は自動で設定されたルートパーティションの大きさになるようです。 なので自分で区切る場合はこの数字をなぜか減らす必要があるようです。 VMwareのデフォルトで進めて失敗したとちょっと思いましたがw 5GBに減らした状態で進めます。 画像のようにルートパーティションが5GBになってますので、論理ボリュームマネージャの設定を選択します。 現在15GBの空きがあるはずなので、例えば5GBを/homeに割り当てるとしましょうか。 論理ボリュームの作成を選びます。 ここではUbuntu-vgを選択します。 論理ボリューム名は好きなものを、ここではhomeにしました。 5GBに設定してみます。 そんな感じでどんどん追加していきます。ここでは残りをすべて/varに割り当ててみました。 出来上がったら完了を選択すると、パーティショニングのページに戻ってきます。 画面上で作成したパーティションを確認しますと選んで通りになっているはずです。 今は分けただけで、割り振りはまだです。このままでは進めませんので、どこにマウントするのかとファイルシステムを選択する必要があるで設定します。 それぞれの容量のところを選択すると、画像では/homeに割り当てる予定のhomeを選んでいます。 各パーティションの設定になりますので、画面に従って/homeでext4にしてみます。 同じ調子で/varも設定します。振り分けに問題ないか全体的にみて確認しましょう。 んで、一番下のパーティションの終了とディスク変更の書き込みを選択します。 テストしながら進めているので、さっきの画像よりディスクの容量が増えていますが気にしないでください。気にしたら負けですw ここまで来ると終わったも同然です。 後は自動アップデートをするかしないか。ソフトウェアは何をインストールするか。 最初はOpensshさえチェックしていれば問題ないかと。 LampとかSambaとか選択できますので、そこは各自自由に。 でもこないだのPuppetやらを使うのが時代の流行りのようなので、Opensshだけを選択するケースが多いのではないかと。 続いてGrubをどうするか、だけれどこれは環境によるので好きにしましょう。 OSを複数入れている人は間違えちゃうとえらいこっちゃになるので注意。 終わったのでブートしてdfで見てみます。 設定した通りになっているようです。 振り分けのポリシーはどういうサーバーにするのかでじっくり考えよう。 じゃあーの。  

Jailを試してみよう

正直なところJailと関係はないけれどせっかくなので前戯の紹介。 Jailを試してみよう 準備編 Jailを試してみよう 試す前にFreeBSDのアレコレ ではでは本題にいっきまーす。 Jailを手動で構築 まずJailはDockerと同じくOSレベルでの仮想化なので、ホストがFreeBSDなのでもちろん子プロセスもFreeBSDです。 そんな説明はまずはどうでもよし! あと、書籍ではZFSとの組み合わせが管理しやすいとありますが、UFSでもう作っちゃってるもんだから、もうUFSで行っちゃいましょう。 ソースコードを使うのが一番確実な方法という事なので、まずはWorldの再構築から・・・なんだそりゃ?と言うところから始めるわけですが、まぁ何とかなるでしょう。 まずはソースの準備をしました。 # cd /usr # mkdir -p /usr/mysouce # cd /usr/mysouce # fetch ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/amd64/9.1-RELEASE/src.txz # xz -dv src.txz # tar -xvf src.tar # cd /usr/mysouce/usr/src # make -j5 buildworld 終わったにょろーん。 ————————————————————– >>> World build completed on Mon Oct 20 02:10:41 JST 2014 ————————————————————– Jail環境を構築します。 # mkdir -p /usr/jail/testjail # cd /usr/mysouce/usr/src # make installworld DESTDIR=/usr/jail/testjail/ # make distribution DESTDIR=/usr/jail/testjail/ こんな感じにできました。 # ls -l /usr/jail/testjail/ total 76 -rw-r–r–   2 root  wheel  1014 Oct 20 02:19 .cshrc -rw-r–r–   2 root  wheel   256 Oct 20 02:19 .profile -r–r–r–   1 root  wheel  6203 Oct 20 02:19 COPYRIGHT drwxr-xr-x   2 root  wheel  1024 Oct 20 02:16 […]

Jailを試してみよう 試す前にFreeBSDのアレコレ

Jailを試してみよう準備編に続いての基本編です。基本編と言ってもFreeBSDの基本なので、Jailを試してみようというタイトルはおかしい!とフォントを大にして自分で言っておきます。   PortsとPackagesどう違うの 前回にも少し触れましたが、FreeBSDでアプリケーションをインストールする時にPorts CollectionというPorts Committerという世界各地にいらっしゃる方が管理しているものを使います。 Portsはソースからビルドしてインストールする形式で最新のものが利用可能です。なおかつmake時にオプションやら機能を設定できます。 Packagesはビルドされたものがパッケージ化されているものです。万が一、古いバージョンしかなかった場合にバグの影響を受ける可能性もあるというもののようです。 Ports Collectionの更新は、Portsnapでおこないます。 Portsでのインストール方法は、ディレクトリへ移動してmakeします。スクリプトで使っているのはこんな感じです。 たとえばVimの場合。 cd `whereis vim | awk ‘{ print $2 }’` make BATCH=yes NO_GUI=yes install clean rehash では、インストール済みのアプリケーションのアップグレードは?というと、Portupgradeを使います。名前からするとPorts Collectionのアップグレードっぽい感じがしますが、インストール済みアプリのアップグレードにあたります。 Portupgradeをググっていると、設定ファイルやデータの整合性がとれなくなったりする事もあるようです。Yumみたいに使っていると宜しくないという事ですかね。 例えるならYumはPackagesですしね。 Yumは便利ですけど、CentOSの場合ものによっては結構古いバージョンだったりもしますから、一長一短な感じですね。当ブログでもrpmを探してきて導入することは多いです。 しかもLinuxの場合、最新のものをソースからビルドしたものは自分で管理しないといけないですし(rpmの管理をするアプリはあった気がしますが)、Ports Collectionの場合はPorts Committerたちによって更新されているようなので、信頼度は高いということでしょう。 Portupgrade -a でインストール済みのPortsをアップグレード。-R で依存関係にあるすべてのPortsもアップグレードしてくれるようです。 こうして簡単にまとめてみるとLinuxの方が初心者向けな感じがしますし、FreeBSDの方は玄人向けで、スキルがあれば新しいものが使えてカスタマイズや管理がやりやすい感じがします。   FreeBSDのアップグレード FreeBSD自身のアップグレードですが、FreeBSD開発の最前線のcurrentと、currentで試験済みでもそのままリリースされる訳ではなくて、そのリリースのための開発をしているstableという2個の開発ブランチが存在するようで、セキュアであるという事を重視しているのがその辺からも伺えます。 エンドユーザーが使っているのはリリース版です。 アップグレードの方法は簡単で # freebsd-update fetch# freebsd-update install   バックアップのこと スナップショットをやろうと思います。まずデフォルトでインストールしてますのでUFSになってますので、UFSのスナップショットをやりますか。 過去にはLVMのスナップショットを検証したことがありました。 お名前.comVPSのスナップショットを試してみた ではでは、ファイルシステムを確認から。 # mount /dev/ada0p2 on / (ufs, local, journaled soft-updates) devfs on /dev (devfs, local, multilabel) /dev/ada0p3 on /usr (ufs, local, journaled soft-updates) /dev/ada0p4 on /var (ufs, local, journaled soft-updates) こんな感じでufs、Local、journaled soft-updates と表示されています。 スナップショットを取ろうとしてもエラーが出て取得できません。 なんでやねーん。 root@bsd:/root # snapshot make /usr:usrsnap mount: /usr/.snap/usrsnap.0: /usr: Snapshots are not yet supported when running with journaled soft updates: Operation […]

UnixBenchを走らせておいてVMstatを眺めてみる

UnixBenchという伝統的なベンチマークがあり、Linuxでは定番のようなものでググったら山ほど検索結果が出てきます。今までにも何度も使ってきたベンチマークで、KVMの仮想VMのベンチマークの時には何回も使っていましたが、各項目や数値に関しては、おおざっぱにしか取り上げてはいませんでしたので、少しばかり中身を追いかけてみようと思います。 基本事項としてはまず1コアのテストをして、後で実際のコア数の並列テストをする。最近のUnixBenchはそうなってると思われる。 では、各項目に進む。 Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10 ドライストーンは整数演算(浮動小数点演算を覗いたということ)のプログラミングの性能に注目したテストらしく、直訳でもよさげなので直訳すると、2個のレジスタを使った整数演算テストしますという事だろう。1コアの場合と数コアの場合をそれぞれ計10回づつやね。 ところで浮動小数点を少し説明(整数演算のところで浮動小数点の説明も変だけれど)しておくと。 浮動小数点は符号部と仮数部と指数部で表現された数値の表現法によって表現された数の事です。と聞いても記憶にないので、数式で見たらあぁ~と思い出した気がするかもしれない。 1.1030402 × 105 = 110304.02 あぁ~ってなった?数式の左側が浮動小数点方式で、xの右側が指数、左側が仮数。インターネットにプロトコルがあるようにこいつらにも決まりはあるようで、IEEE 754 だとかあるらしい。 ウィキペディアから拝借すると 単精度の場合: (-1) 符号部×2指数部 ‐127 ×(1+仮数部) という感じらしい。 んで、なんで浮動小数点演算と整数演算を分けてベンチるのかというと、CPUではその2つの計算は別系統なのだ。 だっふんだ。 Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10 続いてウェットストーン。で、これが浮動小数点演算です。さっき説明したので省略しますが、Double Precison てのは倍精度の事で、浮動小数点方式には半精度、単精度、倍精度、四倍精度とあって、そのなかの倍精度。 さっき出てきたIEEE754だと、符号部 1 ビット ・ 指数部 11 ビット ・ 仮数部 52 ビットの64ビットが倍精度。その半分が単精度で32ビットです。 浮動小数点演算と言えば、複雑な計算だったり、でかい数値を扱う計算とか座標計算とかとか。座標計算と言っても、空間移動とかビームを跳ね返したりとかじゃなくて、身近なところだと3Dゲームがゴリゴリ動いているのはこいつがゴリゴリ動いているはずで。ゲームに限らず科学技術的な計算がこいつの役目だろう。 反対に整数演算は表計算ソフトとかビジネスソフトの処理でゴリゴリ動いていると思っておけば分かりやすいかもしれない。あれ、反対かな。ビジネスソフトとかで整数演算をゴリゴリ行っている。まぁどっちでもいいか。 Execl Throughput  1 2 3 Cの関数でExecというのがありますが、それにLがついたものです。同じように考えてもいいかなぁと思います。んで、これはシステムコールですが、execlを何回くりかえせるかっていうベンチ。システムコールはカーネルに渡すもんだし、OSとCPUの性能を見れるのかな。  File Copy 1024 bufsize 2000 maxblocks  1 2 3 File Copy 256 bufsize 500 maxblocks  1 2 3 File Copy 4096 bufsize 8000 maxblocks  1 2 3 これは名前のまんまで、2Mを1Mごと、500Kを256Kごと、8Mを4Mごとに処理するのですが、容量を見て分かるようにCPUのキャッシュとメモリで事足りるので、ディスクの性能は測れませぬ。 ちなみに過去に悩んでた事ですが、FreeBSDとソラリスで何故か低い結果がでるのだね。 Pipe Throughput  1 2 3 4 5 6 7 8 […]

CentOS7でsshの許可はローカルだけにしたいときー!

coreosでdtrfs、RH系でxfsと、ファイルシステムが色々と採用されているっぽいのですが、initについては以下の参考サイトによると意外なことに。 Linux Daily Topics 2014年2月14日 問題の核心はinitにあらず ─Ubuntuの孤立 タイトルにも書いてありますが、Fedora/Red Hat,openSUSE、など比較的メジャーなディストリはsystemdを採用しつつあるらしく、Debianも一応利用可能という事でsystemdが使えるそうだ。 そんな訳で、CentOSもsystemdなんだけど、ファイアウォール回りも結構変わっていて、タイトルの通り、sshの入り口をローカルだけにしたいとき、例えば入口となるサーバーだけsshを開けておいて、他のサーバーはグローバルなsshは閉じているという構成にしたい時に、iptablesでは簡単にできていたのだけど、firewalldというものになったら少しステップを踏む必要があったので、作業メモしておこうと思います。 とりあえず、よく使いそうなコマンドたちを。 [root@cent7 ~]# firewall-cmd -h | grep service   –get-services       Print predefined services [P]   –new-service=<service>                        Add a new service [P only]   –delete-service=<service>                        Delete and existing service [P only]   –list-services      List services added for a zone [P] [Z]   –add-service=<service>                        Add a service for a zone [P] [Z] [T]   –remove-service=<service>                        Remove a service from a zone [P] [Z]   –query-service=<service>                        Return whether service has been added for a zone [P] [Z] [root@cent7 ~]# firewall-cmd -h | grep inter   –get-default-zone   Print default zone for connections and interfaces   –get-zone-of-interface=<interface>                        Print name of […]