スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

nVidiaドライバをLinux(fedora)にインストール

別にLinuxでゲームをするわけではないしグラフィックボードはなんでも良かったんだけど、GeForce9600GTが刺さっていてもったいなかったのでドライバを更新したときのメモ。
(更新しないと1024x768しか選べなかったので・・・)

副産物
プログラムは高解像度で行うと改行を気にしなくて良いので楽だということに気が付いた。
(他人が見る場合は迷惑なんだろうねぇ)


以下手順
yumを使ってお手軽にインストールしたかったのだけれどサイトを探して試してみるもどれもリンク先でエラーが起きる・・・情報が古いのかねぇ。

仕方ないので別の方法。

とりあえずnVidiaの公式HPからLinux32Bitのお目当てのドライバをDLしてくる。
恐らく拡張子が.runというやつになると思う。
ダウンロードに同意してもソースが写るだけでダウンロードが開始しなかった。
仕方ないので同意のボタンを右クリック>名前をつけて保存をしてファイルをGET。

あとはインストールなんだけどこれがないと途中でエラーになるので先にインストール

#yum install kernel-devel


そんでもって実行してみてもXシステムが立ち上がってるとインストールエラーが出る・・(涙
仕方ないのでGUI作業は一旦終了

#init 3


マトリックスの世界の気分になって以下を入力

#sh ファイルの場所.run

同意を求める作業がごちゃごちゃやればインストール完了

最後にマトリックスにお別れを

#reboot


以上です。ねよっと。
スポンサーサイト

Linuxのシステムログを管理する

Linuxでシステムログを管理する場合大抵以下のファイルを操作することになるとおもう。
/etc/syslog.conf
/etc/rsyslog.conf

これらの記述方法について調べてみたことを載せてみる。

ログはどうやらファシリティ(facility)の中に細かい項目としてプライオリティ(priority)が存在する形で管理されている

facilityは以下
  auth(security) 認証サービスのメッセージ(現在はauthprivが推奨されている)
  authpriv 認証サービス(カテゴリはauthと同じ。authとは出力結果が異なる)
  cron cronのメッセージ
  daemon デーモンのメッセージ
  kern カーネルのメッセージ
  lpr プリンタサービスのメッセージ
  mail メールサービスのメッセージ
  news ニュースサービスのメッセージ
  syslog syslogのメッセージ
  user ユーザープロセスのメッセージ
  uucp uucp転送を行うプログラムのメッセージ
  local0~7 アプリケーションに依存する

priorityは以下()は重要度
(0)debug デバッグ情報
(1)info 情報
(2)notice 通知
(3)warn 警告
(4)err 一般的なエラー
(5)crit 致命的なエラー
(6)alert 緊急に対処すべきエラー
(7)emerg システムが落ちるような状態


実際には
ログの分類 出力先のパス
と記載してログの出力先を分けてやる。
間の空白はtabキー(古いsyslogdはスペースキーで空白をつくるとエラーになるらしい)
重要なのは指定された分類よりpriorityの重要度が高いものはすべて出力される点である

ログの分類として上記の二つを使うわけだが基本形は
facility.priority
複数ある場合は;で繋ぐ
facility.priority;facility.priority

A.info;B.info は A,B.info と「,」を使って書くことができる

ワイルドカードの説明
!否定
*すべて
=特定


A.=debug(Aのデバッグのみを指す)

A.*;A.!info(Aのすべてを選らんだ後にA.infoを打ち消す ※A.infoはAのinfoより重要度の高いものすべてを指す)
は同じになる

A.info以外のすべてのAとしたい場合は
A.*;A.!=info
と記載すればよい

また
!A
というものが無い代わりに
A.none
が用意されている
.;A.none(.は*.* A.noneはAというfacility自体を打ち消す)
とすることでA以外のすべてのfacilityを表す





/etc/rsyslog.confのログ出力先のパスの前に「-」マイナス記号がついていて
意味がわからずかなり前からずーっと気になっていた。

linux的な何かのルールなのかなと思って無視していたが、調べてみたらどうやらrsyslogのルールのようだ
マイナスを付けると同期に使うfsync関数を省略できる」らしい
速度をとるか、情報をとるか。といったところ。


ねよっと。

ubuntuserverからDebianへ

時代の流れとは反対にubuntuserverからDebianへ移行することにした。
理由は以下。(注:Linux歴が半年もない筆者のレビューです)

~Debian~
○ 初期内容が極端に少ない130Mしかない(不要なものはいれない=セキュリティポリシーに合っている)
○ 伝統と歴史があるディストリビューションである(資料が多い)

× 日本語の対応は悪い(Linux自体がそうなんだろうけど)
× 保守的すぎて最新の技術導入が遅い

△ アップデートが遅い(必要なアプリだけ導入するスタイルを考えると他と比べられない点も)

印象:素直な感じ

~UbuntuServer~
○ インストールが早い
× 無駄なものを入れないといいつつ初期インストールでもいろいろ入ってしまう
× 歴史が浅い
× ベースがDebian/sidからの派生らしい(お試し不安定版)
× 動作させていたが細かいバグが目について困っていた(修正の資料は結構出回っているが面倒)

△ 半年に一回のアップグレードされる(サーバーとしてはいいのかわるいのか・・)
△ アプリが多く導入が楽だがserver用途としてはあまり無意味
△ 日本語化がDebianより楽らしいが9.04、9.10ともに日本に優しいとは思えない

× server版とdesktop版があるせいでWEB資料の検索がうまくいかない
印象:すました感じ


重要なのは印象。ってことで変えることにした。

日本語の問題はどうせリモートで操作だし、まる無視。
そもそもUbuntuはDebian系なので操作はほとんど一緒。fedoraから移行したときの苦労は無かった。



ねよっと。

Linuxでファイアウォールを作成

ゲーム製作から途方も無くかけ離れてる気がしないでもないですが、ネット部分を作成するにあたって絶対必要であろうFWの作成メモです。

〜 iptablesを使ってFWを構築 〜

iptables とは IPv4 のパケットフィルタと NAT を管理するサービスである

まずテーブルとチェインという概念がある
テーブルは三つ存在し、指定がないとデフォルトであるfilterが使用される
チェインはいくつもの「ルール」を重ねて作成してある
このルールの壁こそがFWとなるわけである


ルールを追加するときはiptables コマンドを使用する
iptables [-t table] -[AD] チェイン ルールの詳細 [オプション]
iptables [-t table] -I チェイン [ルール番号] ルールの詳細 [オプション]
iptables [-t table] -R チェイン ルール番号 ルールの詳細 [オプション]
iptables [-t table] -D チェイン ルール番号 [オプション]
iptables [-t table] -[LFZ] [チェイン] [オプション]
iptables [-t table] -N チェイン
iptables [-t table] -X [チェイン]
iptables [-t table] -P チェイン ターゲット [オプション]
iptables [-t table] -E 旧チェイン名 新チェイン名
複数の異なるテーブルを定義できる
各テーブルにはたくさんの組み込み済みチェインが含まれており、さらにユーザー定義のチェインを加えることもできる

設定されたFWのルールに当てはまった場合どうするか?というパケットの行動を決めるのが「ターゲット」である
ターゲットの種類は以下
------------------------------
ACCEPT パケットの通過を許可
DROP  パケットを破棄
QUEUE ユーザー空間に渡す(カーネルがサポートしていれば)
RETURN このチェインの検討を中止して、以前の (呼び出し元) チェイン内の次のルールから検討を再開  
------------------------------


テーブルは全部で3種類存在する
------------------------------
【テーブル】 :【登録されている組み込みチェイン】
①filter  INPUT、FORWARD、OUTPUT
②nat  PREROUTING、OUTPUT、POSTROUTING
③mangle  PREROUTING、OUTPUT カーネル2.4.18からはこれらの他に INPUT、FORWARD、POSTROUTING
------------------------------


上記であげたチェインの説明
------------------------------
INPUT 入力(受信)パケット
OUTPUT 出力(送信)パケット
FORWARD フォワードするパケット
PREROUTING 受信時に変換するチェイン
POSTROUTING 送信時に変換するチェイン
------------------------------





iptables で使えるオプションは、いくつかのグループに分けられる

コマンド 以下の説明で注記されていない限り、コマンドラインで指定できるのはこの中の 1 つだけである
------------------------------
-A(--append) chain :chain に条件やアクション(ルール)を追加します。
-P(--policy) chain :chain の基本となるルールを決定します。
-D(--delete) chain :指定チェインから1つ以上のルールを削除
-N(--new-chain)chain :新しいユーザー定義チェインを作成
-X(--delete-chain)chain :指定ユーザー定義チェインを削除
-F chain :条件の合致する chain を削除します。chain 省略時は「全て」削除します。
------------------------------


パラメータ 以下のパラメータは (add, delete, insert, replace, append コマンドで用いられて) ルールの仕様を決める。
------------------------------
-p (--protocol) :プロコトル ルールで使うプロトコル(tcp、udp、icmp、all)を指定
-s (--source) :IPアドレス[/mask] 送信元アドレス。IPアドレスのほかにホスト名などでも指定できる
-d (--destination) :IPアドレス[/mask] 接続先アドレス。IPアドレスのほかにホスト名などでも指定できる
-i (--in-interface) :デバイス パケットが入ってくるインターフェイス(eth0、eth1など)を指定
-o (--out-interface):デバイス パケットが出ていくインターフェイスを指定
-j (--jump) :ターゲット パケットがマッチしたときのアクション(ターゲット)を指定
-t (--table) :テーブル テーブル(filter、nat、mangle)を指定
------------------------------


その他のオプション
------------------------------
-v(--verbose)
詳細な出力を行う。 list コマンドの際に、
インターフェース名・ (もしあれば) ルールのオプション・TOS マスクを表示させる。
パケットとバイトカウンタも表示される。
このオプションを append, insert, delete, replace コマンドに適用すると、ルールについての詳細な情報を表示
-n(--numeric)
数値による出力を行う。 IP アドレスやポート番号を数値によるフォー
マットで表示する。デフォルトでは、iptables は (可能であれば)
これらの情報をホスト名・ネットワーク名・サービス名で表示しようとする。

-x(--exact)
厳密な数値で表示する。パケットカウンタとバイトカウン タ を 、
K(1000 の何倍か)・M (1000K の何倍か)・G (1000M の何倍か) ではなく
厳密な値で表示する。このオプションは、 -L コマンドとしか関係しない。

--line-numbers
ルールを一覧表示する際、そのルールがチェインのどの位置にあるかを表す行番号を各行の始めに付加する。

--modprobe=command
チェインにルールを追加または挿入する際に、 (ターゲットやマッチング の 拡張などで)
必要なモジュールをロードするために使う commandを指定する。

------------------------------



・iptablesの設定の流れ
 1.チェインのポリシーを決める
 2.現在設定されているルールをクリアする
 3.新しいルールを設定する
 4.再起動すると戻ってしまうので作成した設定をセーブする
 5.iptables を再起動する


================================================
             例(あくまで例)
================================================
1. チェインのポリシーを決める(以降のルールにマッチしなかった場合に適用するデフォルトルール)
 INPUT については、一旦すべて ACCEPT(許可) します。
 FORWARD は使わないので DROP(破棄) します。
 OUTPUT は、すべて ACCEPT(許可) します。
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
 
※FORWARD はルータとして動作させるときに設定します。

2. 現在設定されているルールをクリアする
 最初にルールをクリアしておきます。
sudo iptables -F

3. 新しいルールを設定する(例)
 icmp(ping)と自端末からの入力を許可
sudo iptables -A INPUT -p icmp -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT

 Web、FTP、POP、smtp による接続を許可
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT

 ssh による接続を許可
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT ローカルの他端末からWebminでの接続を許可(Webminのポート:10000)
sudo iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 10000 -j ACCEPT 
TCPの接続開始と応答、FTPデータなどを許可
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
他の接続はすべて破棄(ポリシーの再設定)
sudo iptables -P INPUT DROP

4. 再起動すると戻ってしまうので作成した設定をセーブする
 このままではサーバを再起動すると設定が消える。
 ルールをセーブする
sudo /etc/init.d/iptables save

5. iptables を再起動する
sudo service iptables restart



<超重要!!>
・ルールの評価順?
ルールは記述した順番に評価されていくことになる
どれにも当てはまらない(ターゲットで飛ばされない)場合ポリシーで指定されたターゲットに飛ばされる


・ユーザ定義チェーンのルールはいつ評価されるのか?
まずユーザ定義チェーンには、チェーンの末尾に達した時に適用するデフォルトポリシーを指定することはできない。
それが可能なのはビルトインチェーンだけ。
ポリシーを書き込んだのと同じ動作をさせる事は可能。ルールを末尾にポリシーのそれを書き込めばよい。
ユーザ定義チェーンでいずれのルールもマッチしなかった場合、規定の動作では、元のチェーンへ戻る。
戻る場所は自身へ飛ばすことになったルールの真下である。

Linuxのコマンド

UbuntuServerに少しづつ慣れてきた。
fedora8の本にコマンド系のことが詳しく書いてあったのでテキストモードには抵抗無く入れた。

GUIは楽。
男はだまってCUI。
MATRIXの世界みたいでかっこいいじゃん。

ってことでよく使うコマンドをまとめてみた。

【ファイル管理】
cd 移動
chmod : パーミッションの変更
chown : ファイル所有者の変更
cp [ オプション ] コピー元ファイル名 コピー先ファイル名
ln : ハードリンク、シンボリックリンクの作成
ls : カレントディレクトリのファイルを一覧表示
mkdir : ディレクトリの作成
mv : ファイルの移動、ファイル名変更
pwd : 現在のディレクトリパスを表示
rm : ファイル、ディレクトリの削除
rmdir : 空ディレクトリの削除
find / -name 名前 -ls : ルート以降をすべて検索(全一致じゃないとでない)


【プロセス】
kill -KILL 終了させたいプロセスID
ps aux: プロセスの稼動状況などを表示(top:リアルタイム表示)
psの注意点(ps aux | grep aaa)を実行するとgrepプロセスが「arep aaa」と表示される
上記をaaaが起動していると勘違いしないように!


【システム管理】
sudo cat /proc/cpuinfo : 搭載CPCの確認
sudo apt-get install : apt利用インストール
sudo apt-get remove : apt利用アンインストール
chkconfig --list:起動サービスの確認(ubuntuではsysv-rc-conf --list)
chkconfig [--level ランレベル] サービス名 on または off(ubuntuではsudo sysv-rc-conf)
last : ユーザのログイン履歴を表示
halt : システムのシャットダウン(shutdown -h now)


【ユーザー管理】
id : ユーザ情報の表示
passwd : ユーザのパスワードの変更
useradd : 新規ユーザアカウントの作成


【テキスト表示】
cat : テキストファイルの内容を閲覧、ファイルの連結
less : テキストファイルの内容をページ単位で表示
emacs : エディタ
vi : エディタ


【リモート】
//鍵指定リモート接続
ssh -p ポート 相手ユーザー名@アドレス : SSHログイン

//鍵なしリモート接続(デフォルトの場所にある場合は鍵があってもいける)
ssh -p ポート -i 鍵の場所 相手ユーザー名@アドレス : SSHログイン

//ファイル転送
scp -P ポート -i 鍵の場所 転送元ファイル 転送先ファイル
ファイル名の場所には (普通のパス)や(相手ユーザー名@アドレス:パス)などが入り転送方向は問題にならない
注意:Pが大文字になる

//SSHを利用した文字転送(追記方法)
cat 転送元ファイル | ssh -p ポート 相手ユーザー名@アドレス 'cat >> 相手ファイル名'


【ネットワーク設定】
ifconfig eth0(NIC名) up : NICを有効にする

【マウント】
cat /etc/mtab(cat /etc/fstab)で接続先を確認できる
mount /dev/sdb /media//マウント
umount /dev/sdb//アンマウント

USBメモリならFATフォーマットはパーミッションを捨てるので注意
NTFSフォーマットならパーミッションを管理できると思ったが何やら面倒そう(マウント時に設定するもので書き込んだ後に変更できなかったり?・・)
Winを切り捨てるような用途(鍵など)の場合なら素直にext3でフォーマット
ext3での初期化の手順
・とりあえずアンマウントumount /dev/sdb
・fdisk /dev/sdbパーティションを作成
・dで全部消しす 
・n→p→1→Enter→Enter
・w→Enter 
・mkfs.ext3 /dev/sdb1


【シェルスクリプト】
sudo vi hoge.sh
-------------------------------------
#!/bin/sh
内容を記述
-------------------------------------
sudo chmod +x hoge.sh
sudo which hogehoge //使っていないか確認
sudo alias hogehoge="hoge.sh" //登録(ここがまだ調べていないのでそのうち試す)



ねよっと。
プロフィール

あしゅ

Author:あしゅ
ぷぃぷぃ日常。
いつのまにか雑記ブログに。

カテゴリ
最新記事
検索フォーム
最新コメント
リンク
このブログをリンクに追加する
ブロとも申請フォーム

この人とブロともになる

カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。