#navi_header|技術| Ubuntu 12.04 LTS Server のお勉強メモ。 - 公式ガイド -- https://help.ubuntu.com/12.04/serverguide/index.html #more|| #outline|| ---- * サービス制御 ** chkconfig の代替 Ubuntu 12.04以降なら sysv-rc-conf or insserv を使う。sysv-rc-confのほうがchkconfigに似ている。 - Debian(Ubuntu)で サービスの起動、停止を管理するツールを調べてみた(chkconfigのかわりになるもの) | レンタルサーバー・自宅サーバー設定・構築のヒント -- http://server-setting.info/debian/debian-like-chkconfig.html --- →オススメ記事。 - SE奮闘記: Ubuntuでサービス一覧表示(chkconfigがないから) -- http://se-suganuma.blogspot.jp/2009/04/ubuntuchkconfig.html - Ubuntuでchkconfigってどうするのか? - おいらのお仕事メモ -- http://d.hatena.ne.jp/ehara_kw/20080323/1206253749 SysV管轄: # sysv-rc-conf -list Upstart管轄: # ls /etc/init ただし、Sysv管轄のように見えて実体はUpstartにリンクされてたりするので、以下のディレクトリの内容とその関連性に注意しておくこと。 /etc/init.d /etc/init * ネットワークの設定 公式ガイド参照: - https://help.ubuntu.com/12.04/serverguide/network-configuration.html ネットワークアダプタがうまく行かない時の情報収集: # cat /etc/network/interfaces # env LANG=C ifconfig # aptitude search network-manager | grep ^i # sudo dhclient 参考: https://forums.ubuntulinux.jp/viewtopic.php?id=8555 ** インターフェイスの検出~"/etc/network/interfaces"への設定 インターフェイスの検出はudevがやってくれる。 /etc/udev/rules.d/70-persistent-net.rules ↑でNAME="eth0"とかNAME="eth1"とか入ってたら、それを /etc/network/interfaces に記載して、 ifup ethX とかする。もしうまくup出来なかったら、もしかしたらマシンを再起動した方が良いかも。 "/etc/network/interfaces" については "man 5 interfaces" 参照。 とりあえずloopbackデバイス+DHCPのeth0設定だとこんな感じに。 #pre||> # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp ||< ** ネットワークサービスの制御とUpstart周り ネットワークサービス制御のUpstart設定: /etc/init/networking.conf /etc/init/network-interface.conf /etc/init/network-interface-container.conf /etc/init/network-interface-security.conf SysVInit互換設定: /etc/init.d/network-interface /etc/init.d/network-interface-container /etc/init.d/network-interface-security ※この3つは全部 /lib/init/upstart-job へのsymbolic link ↑周りは ifupdown パッケージが提供してました: dpkg -L ifupdown ** Upstart周りもうちょい詳しく。 - /etc/init/networking.conf -- "start on (local-filesystems and (stopped udevtrigger or container))" で ifup -a するだけのタスクジョブ。 - /etc/init/network-interface.conf -- net-device-addedイベントで開始される。"INTERFACE=xxxx"付きでstartとかするみたい。 -- "ifup --allow auto $INTERFACE"をpre-startしてる。 -- post-stopで "ifdown --allow auto $INTERFACE" してる。 -- "instance $INTERFACE" で"INTERFACE"ごとにインスタンス分けてる。 "network-interface" 動作中はこんな感じ。: network-interface (eth0) start/running network-interface (eth1) start/running network-interface (lo) start/running - /etc/init/network-interface-container.conf -- "workaround for missing events in container" とあり、よくわかんないけど"container"とかいうの?とかイベントのタイミングによって、loopbackデバイスのセットアップがずれちゃうみたいで、それを補正するためのworkarroundみたい。 -- 単にscriptで"initctl emit"してるだけなので、taskとして動作して終了。なのでシステム動作中は "network-interface-container stop/waiting" となってる。 - /etc/init/network-interface-security.conf -- ネットワーク系のジョブが起動するイベントをトリガに動作するジョブ。 -- pre-startで AppArmor で /etc/apparmor/init/network-interface-security/ の下の設定ファイルを処理する -- "instance $JOB${INTERFACE:+/}${INTERFACE:-}" なので、動作中はインターフェイスごとにstart/runningとなる。 network-interface-security (networking) start/running network-interface-security (network-interface/eth0) start/running network-interface-security (network-interface/eth1) start/running network-interface-security (network-interface/lo) start/running ifupdownパッケージ自体では "/etc/apparmor/init/network-interface-security/" 以下のファイルは提供していない。 isc-dhcp-clientパッケージが /etc/apparmor/init/network-interface-security/sbin.dhclient -> ../../apparmor.d/sbin.dhclient /etc/apparmor.d/sbin.dhclient の2ファイル(内1つはsymbolic link)を提供してる。内容的にはAppArmorでDHCP関連のセキュリティを設定してるっぽい。 * Firewall(ufw)勉強メモ 公式ドキュメント - https://help.ubuntu.com/12.04/serverguide/firewall.html - ufwパッケージの内容物一覧&manページ -- "dpkg -L ufw" -- "man 8 ufw" -- "man 8 ufw-framework" ''デフォルトは無効化されてる。'' 参考: - Ubuntu ufwでのiptablesの設定 - yamasaki0's diary -- http://yamasaki0.hatenablog.com/entry/2012/03/09/152153 - 第76回 Ubuntuのソフトウェアファイアウォール:UFWの利用(1):Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 -- http://gihyo.jp/admin/serial/01/ubuntu-recipe/0076 - 第77回 Ubuntuのソフトウェアファイアウォール:ufwの利用(2):Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 -- http://gihyo.jp/admin/serial/01/ubuntu-recipe/0077 設定ファイル配置は "man 8 ufw-frameowrk" の "OVERVIEW" 参照。 ufwはiptablesを使いやすくするラッパーとして動作する。 ufwコマンドで色々操作した結果は、 /lib/ufw/ user.rules user6.rules に保存される。 その他、細かく調整したい場合は /etc/default/ufw とか /etc/ufw/ の下の設定ファイルでいろいろ調整できるし、最終的にはiptables-restoreコマンドに食べさせる出力を生成するラッパーなので、iptablesのルールなども/etc/ufw/の下の".rules"ファイルでいろいろ調整できる。 例えば ufw allow 22 とかすると、 /lib/ufw/user{6}.rules が更新される。ので、再起動したあとも"ufw enable"しておけばちゃんと上記設定が反映された状態になってくれる。 (あんまり、実行したコマンドによる設定がどこに保存されるかわかりやすく書いてくれてなかったのでそこがわかんなかった。) SSHでいろいろ試しても良いけど、"nc -l (port)" でUbuntu上で待ち受けさせといていろいろためしてみるとわかりやすい。 ufw enable とか ufw disable とかすると、 /etc/ufw/ufw.conf の中の ENABLED=... が"yes"とか"no"に自動的に切り替わる。 * Samba設定 WindowsホストからUbuntuの仮想マシンに、大きめのファイルをまるっとコピーしたいときなどに便利。 - Ubuntu 12.04 LTS - Sambaサーバー - フルアクセスの共有フォルダ作成 : Server World -- http://www.server-world.info/query?os=Ubuntu_12.04&p=samba ポイント: - global設定に "unix charset = UTF-8", "dos charset = CP932" を追加。 - interfaces, bind 設定は弄らなくても良かった。(仮想マシン内からのアクセスだけを想定) - "security = share" でだれでもアクセスオッケーに。 あとは、共有用のディレクトリを用意して以下を追記 #pre||> [Share] # Windows側から見える名前 path = /work/share writable = yes guest ok = yes guest only = yes create mode = 0777 directory mode = 0777 share modes = yes # 複数人が同一ファイルに同時アクセス時に警告 ||< #navi_footer|技術|