Redhat系のファイル管理コマンドをまとめてみた

Redhat系のファイル管理コマンドにはrpmとyumがあります。rpm コマンドは、rpm 形式のパッケージを管理するときに使います。yum コマンドも、rpm 形式のパッケージを管理するときに使います。

何が違うの?

yum は内部で rpm を呼び出して使っています。そして rpm より高度な機能を提供しています。通常は yum を使ったほうが便利だと思います。主に下記のような違いがあります。

(1) 依存関係の解決
rpm : 依存関係のあるパッケージを自動ではインストールしてくれない。
yum : 依存関係のあるパッケージを自動でインストールしてくれる。

(2) インストール時のパッケージ名指定
rpm : パッケージファイル(拡張子が「.rpm)の完全な名前(or URL)を指定する必要がある。
yum : 必要なのはパッケージ名のみ。

(3) インストールされていないパッケージの検索
rpm : インストールされていないパッケージの情報検索には不向き。
yum : リポジトリを参照することで、インストールされていないパッケージ情報も検索できる。
(さらに…)

Linuxのパッケージ管理について

Linuxでソフトウェアをいろいろインストールするときに、パッケージインストールコマンドをバシバシ叩いてインストールするけど、ディストリビューションによってコマンドが違っていたり、そもそのパッケージって何だ?とか、俗にいう黒い画面はよく分からん。って話を聞くのでちょっとだけ纏めておきます。

そもそもパッケージとは?

Linuxソフトウェアは、ソースコードの状態で公開されています!でも、ソースコードのままだと、ユーザーがコンパイル作業が必要になります!これって初心者にはたいへんだよねぇ。。
ってことで、あらかじめコンパイル済みのバイナリなど関連のファイル群をひとまとめにした「パッケージ」という単位で提供されるようになっています!パッケージを利用すると、Linuxシステムへのソフトウェアのインストールやアンインストール、またはアップグレードの作業を簡単に行うことができます。ここでMac使いのひとはピンときたはず。macportsとかと同じ概念だよね。
(さらに…)

Firefox OSを試してみたよ。

Firefox OSがWin/Mac/Linuxに入れるみたいだから入れてみたよ。
【環境】
 OS : Ubuntu 12.04

インストールは簡単でここからタウンロードする。

タウンロードしたら適当なフォルダに格納して解凍する。

$ tar Icvf b2g-18.0a1.en-US.linux-i686.tar.bz2

解凍先のb2gディレクトリ移動して、gitからGaiaをチェックアウトする。

$ cd ~/b2g
$ git clone git://github.com/mozilla-b2g/gaia

次にプロファイルの作成します。ちょっと時間がかかるので辛抱強く待つ。

$ make -C gaia profile

プロファイルを指定してb2gを起動する。これでGaia UIが起動する。

$ ./b2g -profile gaia/profile

こんな感じ。

メモ(chkconfigのランレベル)

いつもchkconfigのランレベルを忘れちゃうのでメモを。

ランレベル  モード
  0     システムの停止モード
  1     シングルユーザモード
  2     マルチユーザモード(ネットワークなし)
  3     マルチユーザモード(テキストログイン)
  4     カスタムモード(未使用)
  5     マルチユーザモード(グラフィカルログイン)
  6     システムの再起動モード

ちなみにサービスを個別に指定する場合は以下のとおり。

$ chkconfig –level 3 サービス名 on

確認

$ chkconfig –list サービス名
サービス名 0:off 1:off 2:on 3:on 4:on 5:on 6:off
$

iptablesの設定

apacheの設定に続いて、iptablesの設定も書いときます。

まずはファイルが無いので作成する

$ sudo vi /etc/sysconfig/iptables

開いたら以下を書いて閉じる。
※可読性をよくするためにスペースを入れるけど、実際に書く時はスペースなしで。

*filter
#このホストに対して入ってくるパケットを通過させるか遮断させるかを設定
#すべてのパケットを許可([0:0] : 「パケットカウンタ:バイトカウンタ」)
:INPUT ACCEPT [0:0]					
 
#このホストを経由するパケットに対しての設定
:FORWARD ACCEPT [0:0]				
 
#このホストから送られるパケットに対する設定
:OUTPUT ACCEPT [0:0]
 
# ユーザ定義チェーン
:RH-Firewall-1-INPUT - [0:0]
 
#「-j」オプション:あるチェインを別チェインにジャンプさせる.
# ここではINPUTチェインを、ユーザー定義チェインにジャンプさせることで、INPUTとFORWARDチェインで入ってくるパケットをユーザー定義チェインでチェックさせる。
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
 
# ループバック(lo)は通信を許可する。
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
 
# pingで疎通確認したいからICMPも通信を許可する。
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
 
#「-p」に続けて番号を入力することで、プロトコルを指定
# 50(ESP)と51(AH)を許可
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
 
#「5353」:マルチキャストDNS
# これは専用のアドレス「224.0.0.251」にパケットを投げて応答をもらうことで、
# わざわざIPアドレスとホスト名の変換を行わなくてもマシンを認識できる仕組み。
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
 
# ポート「631」は印刷データの送受信のためのプロトコルで、これも「ACCEPT」で許可。
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
 
# この「state」はパケットの状態を指定するためのモジュール。
# 今回は「ESTABLISHED(過去に接続されたことがある)」または「RELATED(既存の接続に関係している)」と
# 見なされた場合に、接続を許可する。
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
#「-m tcp」でtcpモジュールを有効にした後に、「-p tcp」でプロトコルがtcpの場合に限定する。
# SSH, HTTP, FTP1, FTP2, MYSQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
 
# 接続許可のルールに一致しなかったパケット。
# それらのパケットはすべて「REJECT(エラーパケット送信)」します。
#「–reject–with」はエラーパケットの種類を指定するためのもので、
# 今回は「icmp-host-prohibited(ホストによって禁止されました)」というメッセージを送るように指定しています。
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

設定が完了したらiptablesを再起動させます。

$ sudo /etc/rc.d/init.d/iptables restart

Apacheの設定

最近、Apacheの設定について何度か聞かれたので、ちょっとだけ書いときます。
時間があるときに追加していくようにします。

Apacheの設定ファイルを開く

$ sudo vi /etc/httpd/conf/httpd.conf

Linuxのディストリビューションによっては /usr/local/apache/conf/httpd.conf かも。

■ 基本的なセキュリティ
・ServerTokensディレクティブ
ServerTokensは、クライアントに返信するサーバ応答ヘッダに含める情報を制御します。
デフォルトのままだと、応答ヘッダに「Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2」みたいにApacheやPHPのバージョンが
見えてしまうので、下記のように変更することで「Server: Apache」とでるように変更する。

#ServerTokens FULL
ServerTokens Prod // こっちに変更

することで「Server: Apache」になります。

・ServerSignatureディレクティブ
エラーメッセージ出力時にフッタを表示しないようにします。

#ServerSignature On
ServerSignature Off // こっちに変更

編集内容にエラーがないかチェック

sudo service httpd configtest

編集に問題がなさそうならapacheの再起動

sudo /sbin/service httpd restart

あとはディレクトリ毎に.htaccessの設定する感じかなと。