#navi_header|技術| Ubuntu 12.04 LTS Server のお勉強メモ。 - 公式ガイド -- https://help.ubuntu.com/12.04/serverguide/index.html #more|| #outline|| ---- * ネットワークの設定 公式ガイド参照: - https://help.ubuntu.com/12.04/serverguide/network-configuration.html ** インターフェイスの検出~"/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"に自動的に切り替わる。 #navi_footer|技術|