ここでは、ネットワークやXwindowなどのLinux自体の動作に関する設定を中心に説明する。
ここでは、各種の情報を集める際の表示方法について説明する。
OSのバージョンのような基本的な情報を取得するには、
$ uname -a
Linux example.com 2.6.15-1.2054_FC5 #1 SMP Tue Mar 14 15:48:20 EST 2006 x86_64 x86_64 x86_64 GNU/Linux
でわかる
ドライバなどの設定には、ハードウェアの情報が欠かせない。本体をあけてみるのが一番確実ではあるが、ソフトウェア的に表示させるには下記のようにして行う。まず、http://ezix.sourceforge.net/software/lshw.htmlからlshwをダウンロードする。
$ tar zxvf lshw-B.02.06.tar.gz
$ cd lshw-A.01.08
$ make
srcディレクトリにlshwという実行ファイルができているのでそれを実行する。rootである必要はない。必要であればパスの通っているディレクトリにコピーしておく。
IPアドレスなどネットワークの設定の確認は
$ /sbin/ifconfig
表示するには
# hostname
mail.example.com
設定するには
# hostname mail.example.com
サーバの自動起動状況を表示するには、
# chkconfig --list
Makefile 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_init 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid 0:off 1:off 2:on 3:on 4:off 5:on 6:off
alsasound 0:off 1:off 2:on 3:on 4:off 5:on 6:off
apache2 0:off 1:off 2:off 3:on 4:off 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autoyast 0:off 1:off 2:off 3:off 4:off 5:off 6:off
bluetooth 0:off 1:off 2:off 3:off 4:off 5:off 6:off
...
# chkconfig named --list
apache2 0:off 1:off 2:off 3:on 4:off 5:on 6:off
サーバの自動起動をOn、Offするには、
# chkconfig named on
# chkconfig named off
ディストリビューションによって、同じサーバのでも名前が違う場合がある。例えば、apacheのOn、OffはFC4、FC5ではhttpdであるが、openSUSE 10.0の場合はapache2である。
sshfsがお薦め。
shfsは古い。
#yum info xxx
で、パッケージxxxの情報が得られる。例えば、
# yum info mrtg
Setting up repositories
Reading repository metadata in from local files
Available Packages インストールされていない場合はこのように表示される
Name : mrtg
Arch : i386
Version: 2.11.1
Release: 3
Size : 853 k
Repo : base
Summary: Multi Router Traffic Grapher
Description:
The Multi Router Traffic Grapher (MRTG) is a tool to monitor the traffic
load on network-links. MRTG generates HTML pages containing PNG
images which provide a LIVE visual representation of this traffic.
#yum install xxx
でパッケージxxxのインストールを行う。
最新のパッケージにアップデートするには、
# yum update
自動化するには、
# chkconfig yum on
ログファイルをローテンションする。logrotate.confでlogrotate全体の設定を、/etc/logrotate.d下の各ファイルで各ログファイルの処理方法設定する。logrotate.confにデフォルトの設定を書き、/etc/logrotate.d下の各ファイルの設定で上書きされる。
オプション | 意味 |
---|---|
compress | 圧縮を行う。デフォルトではgzipで圧縮される。 |
nocompress | 圧縮しない |
compresscmd | 圧縮を行うコマンドを指定する。 |
uncompresscmd | 解凍を行うコマンドを指定する。 |
compressext | 圧縮を行う際の拡張子。 |
compressoptions | 圧縮を行う際のオプション。デフォルトではgzipのオプション"-9"が指定されている。 |
daily | 毎日行う |
dateext | 数字の代わりに日付の拡張子をつける。(FC4では機能しないがFC5では使える) |
ifempty | ログファイルが空の場合でもローテーションを実行する |
notifempty | ログファイルが空の場合はローテーションを実行しない |
include /etc/logrotate.d | 以下のディレクトリ内のファイルを含める。この場合は、/etc/logrotate.d/ |
missingok | ログファイルが存在しなくてもエラーを出さない |
monthly | 毎月行う。通常は月の最初の日。 |
sharedscripts | このスクリプトで複数のログファイルを処理する。(prescriptおよびpostscriptを書くログファイルに対して実行する) |
firstaction/endscript | 一番最初に実行するスクリプトを書く |
prerotate/endscript | ローテートを実行する前に実行するスクリプト |
postrotate/endscript | ローテーション実行後に実行するスクリプトをpostrotate~endscriptの間に書く。 |
lastaction/endscript | postrotateよりもさらに後に実行するスクリプトを書く |
rotate 4 | ローテーションを行う回数。この場合は4回。5個目からは古いものから順に削除される。 |
size 100k | サイズが指定サイズより大きい場合は実行する。この場合は100kB以上の場合。 |
weekly | 毎週実行する |
LinuxでCDやDVDを焼く場合、まずmkisofsでisoファイルを作成し、それをcdrecordなどのコマンドで焼く。なおmkisofsは標準状態では日本語に対応していないので注意。下記のようなオプションで作成するとWindowsマシンでもロングファイル名などがきちんと表示される。
例)dir1、dir2内のファイルをdisk.isoにまとめる。ボリュームラベルにはVolumeLabelを指定。
$ mkisofs -V "VolumeLabel" -U -J -r -T -o disk.iso ./dir1 ./dir2
主要なオプション(詳しくはmanページを参照)
オプション | 意味 |
---|---|
-V | ボリュームラベルを指定する。これは、Windowsの場合ドライブ名として表示される。 |
-U | -d -l -L -N -relaxed-filenames -allow-lowercase -allow-multidot -no-iso-translateのすべてを指定した状態になる。ISO9660規格に違反するが、通常はこれで良い。 |
-r | Unixで利用する情報を付加する。 |
-J | Windowsからロングファイル名でアクセスできるようにするためにJolietでディレクトリテーブルを作成する。 |
-o | アウトプットファイルを指定する。 |
まずは
$cdrecord -scanbus
でCD/DVDドライブを見つけるためにデバイスの一覧を表示させる。
rsyncはその特別なアルゴリズムにより、すでに存在するファイルを転送しないだけでなく、バイナリの差分のみを転送する非常に優れたバックアップツールである。使い方は下記の通り。
$ rsync -avz -e "ssh -l ユーザー名" コピー元 コピー先
オプションのaは属性の保存を、vはコピー中詳細表示を、zは転送時に圧縮を指定している。
例:
$ rsync -avz -e "ssh -l foo" /hoge example.com:/home/foo/backup
例えばopenSUSE 10.0で/var/log/messagesを見ると時々
Mar 26 22:01:32 linux sshd[18645]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:34 linux sshd[18647]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:35 linux sshd[18649]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:37 linux sshd[18651]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:38 linux sshd[18653]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:40 linux sshd[18655]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:41 linux sshd[18657]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:43 linux sshd[18659]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:44 linux sshd[18661]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:46 linux sshd[18663]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:47 linux sshd[18665]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:49 linux sshd[18667]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:50 linux sshd[18669]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:51 linux sshd[18671]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:53 linux sshd[18673]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:54 linux sshd[18675]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:56 linux sshd[18677]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:57 linux sshd[18679]: Invalid user test123 from 65.205.238.12 Mar 26 22:01:59 linux sshd[18681]: Invalid user tester from 65.205.238.12 Mar 26 22:02:00 linux sshd[18683]: Invalid user tester from 65.205.238.12 Mar 26 22:02:02 linux sshd[18685]: Invalid user tester from 65.205.238.12 Mar 26 22:02:03 linux sshd[18687]: Invalid user tester from 65.205.238.12 Mar 26 22:02:05 linux sshd[18689]: Invalid user tester from 65.205.238.12 Mar 26 22:02:06 linux sshd[18691]: Invalid user tester from 65.205.238.12 Mar 26 22:02:08 linux sshd[18693]: Invalid user tester from 65.205.238.12 Mar 26 22:02:09 linux sshd[18695]: Invalid user tester from 65.205.238.12 Mar 26 22:02:11 linux sshd[18697]: Invalid user tester from 65.205.238.12
このようなログが記録されていることがある。また、FC5でも、/var/log/secure内のログを見ると、似たようなsshを拒否したログを見つけることができる。これは、ssh対する辞書攻撃を試みているのであるが、これを簡単に防ぐにはDenyHostsが有効である。
DenyHostsはログファイルをcronで時々監視して攻撃してきたホストを/etc/hosts.denyに追加するPythonで書かれたスクリプトである。
FC4、FC5の場合はyumを使って簡単にインストールすることができる(yum install denyhostsでインストールして、/etc/init.d/denyhosts
startで起動するだけである。)。
openSUSE 10.0の様にソースを取ってきてインストールする必要がある場合は、ファイルは、ここ(http://denyhosts.sourceforge.net/)からダウンロードする。
yumでインストールする場合は、
# yum install denyhosts
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
core [1/3]
updates [2/3]
extras [3/3]
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for denyhosts to pack into transaction set.
denyhosts-2.4b-1.fc5.noar 100% |=========================| 18 kB 00:00
---> Package denyhosts.noarch 0:2.4b-1.fc5 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
denyhosts noarch 2.4b-1.fc5 extras 94 k
Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 94 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): denyhosts-2.4b-1.f 100% |=========================| 94 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: denyhosts ######################### [1/1]
Installed: denyhosts.noarch 0:2.4b-1.fc5
Complete!
設定ファイルは
/etc/denyhosts.conf
にある。必要であれば設定を書き換える。
あとは、
/etc/init.d/denyhosts start
で起動する。また、
# chkconfig denyhosts on
として、サーバ起動時に、自動的にDenyHostsも起動するようにしておく。
一方ソースからインストールする場合は、
# tar zxvf DenyHosts-2.4b.tar.gz
# cd DenyHosts-2.4b/
# python setup.py install
これで、/usr/share/denyhosts/にインストールされるはずである。
一度インストールする際に、下記のようなエラーが起きた。# python setup.py installここで、python-develをインストールしたら問題なくインストールすることができた。 |
そして、
# cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
として、デフォルトの設定ファイルをコピーする。
openSUSE 10.0の場合は、下記の行のコメントを外し、他のOSの行はコメントアウトする。
SECURE_LOG = /var/log/messages
次に、
# cp daemon-control-dist daemon-control
daemon-controlファイルで変更できる箇所は、次の3つの行のみである。通常はデフォルトのままで動くはずであるが、必要であれば変更する。
DENYHOSTS_BIN = "/usr/bin/denyhosts.py" DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts" DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"
もしdaemon-controlのownerがrootになっていないようであれば、rootに変更する。
# chown root daemon-control
また、アクセス権は0700にする。
# chmod 700 daemon-control
あとは、
# ./daemon-control start
でデーモンとして起動する。
# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
とすると、
# /etc/init.d/denyhosts start
で起動できるようになる。サーバ起動時に、自動的にDenyHostsも起動するようにするには下記のように打つ。
# chkconfig denyhosts on
なお、sshに対する攻撃に対しては、sshのポート番号を変えてしまうというのも一つの手である。
もしsshのポート番号を変えることができるようであれば、変えてしまった方がssh経由の攻撃を受けるリスクはずっと低くなる。
変更方法は、/etc/ssh/sshd_config内の
#Port 22
とコメント化されている行を
Port 22222
の様に変更して、再起動する。(この場合は22222番ポートを指定している。)
FC4やFC5ではデフォルトではsshサーバの設定でCompressionの項目はdelayedになっている。
この設定だといくつかのsshクライアントでは圧縮転送を指定すると接続できない。
Compression yes
とすることによって、接続できるようになる。
/etc/profileで設定する。
ログイン時には、~/.bash_profileがあれば読み込み、無ければ、~/.bash_loginがあれば読み込み、無ければ~/.profileが読み込まれる。
また、bashが起動するたびに、.bashrcが読み込まれる。
なお、ログアウト時には、~/.bash_logoutが読み込まれる。
2通りある。
一つ目は、
export 環境変数=値
二つ目は
シェル変数=値 export シェル変数
setコマンドでシェル変数を、printenvで環境変数を表示できる。
HISTSIZEはヒストリに保存するコマンド数を指定する。
HISTFILESIZEはヒストリファイルに保存するコマンド数を指定する。
HISTCONTROLはignoredupsで重複するものを記録しない。ignorespaceで空白などで始まるコマンドは記録しない。ignorebothでその両方とも指定。
.bashrcなどには下記のように書く
HISTSIZE=10000 HISTFILESIZE=10000 HISTCONTROL=ignoreboth export HISTSIZE HISTFILESIZE HISTCONTROL
パスを追加するには、例えば/home/hogehogeというパスを追加するには、
PATH="$PATH":/home/hogehoge
使用しているターミナルによっては、英数字以外の文字で文字化けする場合がある。
下記の設定をすると、英語のみになる。
export LANG=C
もしくは
unset LANG
で解除してもよい。
Ubuntuのインストールは非常に簡単である。
まず、Ubuntuのダウンロードページ(http://www.ubuntu.com/getubuntu/download)からDesktopバージョンをダウンロードし、CD-Rに焼く。
CDからパソコンを立ち上げると、メニューが出てくるのでその中の一番上の、「start or install Ubuntu」を選択する。するとしばらくの後、Ubuntuが起動し、ネットワークがつながっていれば、FirefoxでWebページを閲覧することも可能である。ただし、このままではCDからプログラムが読み込まれるため動作は非常に遅い。
ハードディスクへのインストールであるが、起動したUbuntuのデスクトップにあるinstallアイコンをダブルクリックする。インストーラが立ち上がり、「使用言語」、「時間の設定」、「キーボードの設定」、「パーティションの設定」、「アカウントの設定」について訊かれるので、それぞれ設定していけばよい。パーティションの設定以外は特に問題ないはずである。
CDからのインストールが始まるのでそのまま待てば、インストールは以上で完了である。
基本的にUbuntuではrootアカウントではなく、sudoを使って各種管理コマンドを実行するのが基本である。
どうしてもrootでログインしたい場合は
$sudo passwd root
で、パスワードを設定する。
sshサーバが初期状態ではインストールされていない。外部からsshで接続したい場合は、sshdをインストールする必要がある。
GUIで共有フォルダを設定すれば、もしsambaサーバがインストールされていない場合は自動的にインストールするかどうか聞いてくる。手動でsambaサーバをインストールしても良い。
問題は、SambaのパスワードはLinuxのパスワードとは別に設定しなければならない点である。具体的にはターミナルから
$sudo smbpasswd username
で設定することになる。usernameには各自のユーザー名を入れること。
apt-getコマンドを使います。具体的には、
$sudo apt-get upgrade
自動的に行いたい場合は、cronの設定に
apt-get -y upgrade
を書き込みます。-yは質問に常にyesで答えると言うことです。
本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6、FC7はFedora Core 7をopenSUSEはNovellのSUSE Linux OSSを表します。
ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。