約2年ぶりくらいに、前に勤めていた会社の先輩と会いました。
全然変わってなかったですね。でもワタクシは太った太ったと相当言われてしまった。
だらだらと飲みながら4時間くらい話してました。
というか、ほとんど話を聞いていたという感じだったです。
話のネタがないとだめですねぇ~。
それでも久しぶりに会えて気持ちがリフレッシュしました。
約2年ぶりくらいに、前に勤めていた会社の先輩と会いました。
全然変わってなかったですね。でもワタクシは太った太ったと相当言われてしまった。
だらだらと飲みながら4時間くらい話してました。
というか、ほとんど話を聞いていたという感じだったです。
話のネタがないとだめですねぇ~。
それでも久しぶりに会えて気持ちがリフレッシュしました。
1.マシンのデフォルト状態の確認
1.1 OSの確認
cat /etc/redhat-release #CentOsの場合
1.2 CPUの確認
cat /etc/proc/cpuinfo
1.3 CPUの種類の確認
uname -m #x86_64など
1.4 ハード容量の確認
df -h
2..ユーザー作成
2.1 作業用ユーザーの作成
useradd ユーザー名
passwd ユーザー名 パスワード
2.2 パスの追加
rootと作成ユーザーそれぞれで
vi ~/.bash_profile
==viモード===
$PATH=****:/sbin:/usr/sbin #PATHに/sbinと/usr/sbinを追加
==viモード終了===
2.3 作成ユーザーにsudoコマンド権限を付与
rootで
visudo
文末に以下の一文を追加
ユーザー名 ALL = NOPASSWD: ALL
3.ネットワーク設定の確認
sudo system-config-network #IPアドレス等を確認
4.パケットフィルタリング設定
sudo lokkit #SecurityLevelをEnabledに、Allow incomingをSSH、HTTP、HTTPSのみに
5.時刻確認
date
6.SSH設定
sudo service sshd stop #sshサービスをストップ
vi /etc/ssh/sshd_config
==viモード===
Port ポート番号 #ポート番号を22から変更
PermitRootLogin no #rootユーザーでのログイン禁止
AllowUsers ユーザー名1 ユーザー名2 #ログインが許可されるユーザーのリスト
==viモード終了===
sudo service sshd start
sudo lokkit #SSHのチェックを外し新しくSSHのポート番号として設定したポートのtcp接続を許可する
7.不要サービスの停止
7.1 nmapのインストール
sudo yum install -y nmap
7.2 Listenポートの確認
sudo nmap localhost #場合によってはsudo nmap -sT localhost
7.3 tcp接続を許可しているポートのプロセス/サービス名の確認
sudo lsof -i:ポート名
7.4 不要サービスの停止
sudo service サービス名 stop
8.自動起動設定
不要サービスが再起動時に立ち上がらないように自動起動をoffにする
sudo ntsysv --level 35 #不要サービスのチェックを外す
9.必要サービスの立ち上げまたはインストール
9.1 mysqlの起動
9.1.1 サービス開始
sudo service mysqld start
sudo ntsysv --level 35 #mysqldにチェックを入れる
9.1.2 tcpポートを閉じる
sudo vi /etc/my.cnf
==viモード===
[mysqld] #[mysqld]のセクションに
skip-networking #skip-networkingを記述
==viモード終了===
9.1.3 サービス再起動
sudo service mysqld restart
9.1.4 一般ユーザーの作成
shell>mysql --user=root mysql
msyql>create user 'ユーザー名'@'localhost' identified by 'パスワード' with grant option
9.1.5 データベースの作成
shell>mysql -u ユーザー名 -p
shell>passwd パスワード #パスワードの入力を求められるので入力
mysql>create database データベース名
9.1.6 phpMyAdminのインストール
・ダウンロードしてきたphpMyAdminをドキュメントルートにアップロード #php5.2未満はver2.11を利用
・config.inc.phpの設定
$cfg['blowfish_secret'] = 'パスフレーズを設定' #変更
$cfg['DefaultLang'] = 'utf-8'; #追加
$cfg['DefaultCharset'] = 'utf-8'; #追加
$cfg['Lang'] = 'ja-utf-8'; #追加
・mcryptのインストール
sudo yum install -y mcrypt
9.2 postfixのインストール
9.2.1 postfixインストール
sudo yum install -y postfix
9.2.2 使用するメールサーバーを既存のもの(sendmail)からpostfixに変更
sudo yum install -y system-switch-mail #メールサーバー変更ツールをインストール
sudo system-switch-mail #sendmailからpostfixに変更
9.2.3 SMTPポートを閉じる
sudo vi /etc/postfix/master.cf
==viモード===
smtp inet n - n - - smtpd #この行をコメントアウトする
==viモード終了===
sudo service postfix restart
9.2.4 自動起動設定
sudo ntsysv --level 35 #postfixにチェックを入れる
9.3 apacheの設定
9.3.1 Basic認証設定
sudo vi /etc/httpd/conf/httpd.conf
==viモード===
<Directory "/home/ユーザー名/public_html">
AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /home/ユーザー名/.htpasswd
Require valid-user
</Directory>
==viモード終了===
sudo service httpd restart
.htpasswdを作成して/home/ユーザー名にアップロード
9.3.2 htaccessの有効化
sudo vi /etc/httpd/conf/httpd.conf
==viモード===
<Directory "/home/ユーザー名/public_html">
AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /home/ユーザー名/.htpasswd
Require valid-user
Options All #追加
AllowOverride All #追加
</Directory>
サービス(httpdやmysqld、postgresql、sshdなど)のしくみと自動起動設定、起動・停止・起動方法について
1.各サーバーのサービス名
主なサーバーのサービス名は暗記しておく。
apache・・・httpd
mysql・・・・msyqld
postgres・・postgresql
ssh・・・・・・sshd
そのマシンに登録されているサービスを一覧表示するには
chkconfig --list
特定のサービスを見るには
chkconfig --list httpd
2.サービスの起動スクリプト
サービスの起動スクリプトは/etc/init.dに格納されている。
例えば
/etc/init.d mysqld restart
でmysqlが再起動できるが、これは
service mysqld restart
と同じである。つまりserviceは/etc/init.dと同じ役割を果たす
3.現在のランレベルの確認・変更
現在のランレベルは
runlevel
で確認できる。N 5の場合ランレベル5、N 3の場合ランレベル3である
起動時のランレベルを変更するには
vi /etc/inittab
==viモード===
id:?:initdefault: #?の部分を起動時のランレベル(例えば3)に変更する。
============
ちなみにランレベル5からランレベル3に変更しただけで
仕様メモリが500Mから300Mへおおよそ3割減
4.サービスの自動起動設定
ntsysv --level ? #?のランレベルで自動起動設定されているものが表示される
ランレベル3・・・通常の起動
ランレベル5・・・Xウィンドウでの起動
あとのランレベルはあまり意識しなくて良い。通常ランレベル3と5でサービスが自動起動されればよいので、
ntsysv --level 35
で自動起動を設定する
5.ランレベルごとのサービス起動
ランレベルごとのサービス起動状態をみるには
chkconfig --list サービス名
が一番よいが、そのほかには
ls /etc/rc?.d
でも確認できる。先頭がKのファイルは実行されない、先頭がSのファイルはスタート時に実行されるサービスである。
/etc/rc?.dは/etc/rc.d/rc?.dへのシンボリックリンクとなっている
参考サイト:http://safe-linux.homeip.net/web/PostgreSQL/03-phpPgAdmin.html
1.yumでpostgreをインストールした場合の状態
postgresスーパーユーザー(linxu上のユーザー):postgres
デフォルトデータベース:template0
データベース格納先:/var/lib/pgsql/data
2.postgresユーザーの存在を確める
id postgres #postgresユーザーの存在確認 uid gid 所属グループがわかる
finger postgres #postgresのユーザー情報確認 ログイン名、ホームディレクトリ、ログインシェルなど
3.phpPgAdminの動作に必要なソフトの確認
3.1 postgresのインストール確認
rpm -qa | grep postgres
psql --version
3.2 pgsql-phpのインストール確認
rpm -qa | grep php-pgsql
(インストールされていない場合は yum install php-pgsqlでインストール)
4.PostgreSQL内で管理されているスーパーユーザーpostgres(2のものとは別)に
パスワードを設定する
5.Postgresへのローカルホストからの接続をすべて許可する
vi /var/lib/pgsql/data/pg_hba.conf #postgresの設定ファイルを開く
==vi モード====
:$ #ページの最終行へ
#host all all 127.0.0.1/32 ident sameuser #ipV4用の設定をコメントアウト
host all all 127.0.0.1 255.255.255.255 trust #ローカルホストからの接続を許可する設定を追記。phpPgAdminからの接続は、同じサーバーのphpからのアクセスとなるので内部アクセスとなる。よってpostgresのポートを外部に公開する必要も無い。
==viモード終了===
/etc/init.d/postgresql -restart #postgresの再起動
6.postgreSQL内で管理されるpostgres以外のスーパーユーザーを作成する
su postgres #LinuxのpostgreSQL操作ユーザーpostgresに切り替える
createuser -P #パスワード尽きでユーザー作成
Enter name of role to add: #ユーザーを入力
Enter password for new role: #パスワードを入力
Enter it again: #パスワードを再入力
Shall the new role be a superuser? (y/n) y #作成するユーザーにスーパーユーザーの権限を与えるの”y”を入力
7.phpPgAdminをインストール
http://phppgadmin.sourceforge.net/?page=download
からダウンロードしてきたフォルダ名をphpPgAdminに変更してドキュメントルートに設置
8.phpPgAdminの設定
/confの”config.inc.php”を編集
8.1 接続ホストの設定
$conf['servers'][0]['host'] = '';
↓
$conf['servers'][0]['host'] = 'localhost' #localhostからの接続を許可する
8.2 rootやpostgresユーザーからの接続拒否設定を確認する
$conf['extra_login_security'] = true;
8.3 所有者以外のデータベースを拒否する
$conf['owned_only'] = false;
↓
$conf['owned_only'] = true;
9.インターネット経由でのphpPgAdminへのアクセスをhtaccessで制限する
9.1 IPアドレスの制限
9.2 Basic認証の制限
1.設定ファイル編集
vi /etc/ssh/sshd_config
===viモード====
Port 10022 #SSHサーバがクライアントからの接続を待ち受けるポートの番号(22以外で)
PermitRootLogin no #rootユーザーのログインを禁止する
PasswordAuthentication no #パスワードを禁止する(公開鍵認証を行なう場合)
AllowUsers sam tak #ログインが許可されるユーザーリスト(SSH利用ユーザーを追加しない場合)
2.SSHサーバへのアクセス制限
自分の固定IPアドレスが変わるとSSH操作ができなくなることをあらかじめ了承いただく
vi /etc/hosts.allow
===viモード===
sshd : 127.0.0.1 www.example.com .example.com 192.168.0. : allow
sshd : ALL : deny
3.公開鍵認証の設定
3.1 サーバーに公開鍵設置用のディレクトリを作成する
mkdir ~/.ssh #ホームディレクトリに隠しディレクトリを作成する
3.2 公開鍵と秘密鍵の作成
≪teratermでの設定≫
①生成ボタンをクリック
②パスフレーズを入力
③確認用パスフレーズを入力(②と同じもの)
④公開鍵の保存ボタンをクリック
⑤秘密鍵の保存ボタンをクリック
④のタイミングでidentity.pubというファイル名の公開鍵が
⑤のタイミングでid_rsaという秘密鍵が生成される。
3.3 公開鍵のサーバーアップ
3.2で作成した公開鍵identity.pubのファイル名をauthorized_keysというファイル名に変更して3.1で作成したフォルダにアップロードする
3.4 公開認証を利用したログイン
teratermにてログイン操作を行なう
①3.1でディレクトリを作成したユーザ名を入力
②3.2の②で入力したパスフレーズを入力
③RSA/DSA鍵を使うを詮索する
④3.2の⑤で生成した秘密鍵を参照する
⑤OKボタンをクリックする
3.5 公開鍵を追記する
1つのユーザーに対して公開鍵を追加することができる
3.2の手順に従って公開鍵と秘密鍵を作成する
公開鍵(identity.pub)をテキストで開いてssh-rsaを含め全ての文字をコピーする
サーバーの~/.ssh/authorized_keysに1行改行してコピーした文章を貼り付ける
3.6 公開鍵を有効にする
sudo /etc/init.d/sshd stop #ssh設定を変更する前にsshサーバを停止
vi /etc/ssh/sshd_config
===viモード===
RSAAuthentication yes #SSH1における公開鍵認証を有効にする
=============
sudo /etc/init.d/sshd start #sshサーバーを起動