さくらVPSでは、iptablesが最初からはないため、新規作成する必要がある。
#touch /etc/sysconfig/iptables
または
#vi /etc/sysconfig/iptables
以下設定のうち、-Aの続きに空行があるとだめみたいなので注意。
便宜上間にコメント入れているが、実際は余計なものは含まないようにすること。
---
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j 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
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#--ここは任意 22はSSH 80はHTTP 443はHTTPS 20,21はFTP, 3306はMySQL 5432はPostgreSQL
-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 443 -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
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
#--ここからメール送受信ポート関連
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
#---
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
----ここまで
以上
スポンサードリンク
2013年5月20日月曜日
メールサーバ構築(Postfix/Dovecot) Dovecot(非SSL)編
メール受信するためのソフトDovecotインストール設定方法
1.インストール
#yum install dovecot -y
2.設定ファイルを編集(10-auth.conf)
# vi /etc/dovecot/conf.d/10-auth.conf
#プレーンテキスト認証も許可する
disable_plaintext_auth = no
# 追記 プレインログインのみ
auth_mechanisms = plain login
3.設定ファイルを編集(10-mail.conf)
# vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
4.設定ファイルを編集(10-master.conf)
# vi /etc/dovecot/conf.d/10-master.conf
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
5.dovecotを起動または再起動
# /etc/rc.d/init.d/dovecot start
6.dovecot自動起動設定
# chkconfig dovecot on
以上
1.インストール
#yum install dovecot -y
2.設定ファイルを編集(10-auth.conf)
# vi /etc/dovecot/conf.d/10-auth.conf
#プレーンテキスト認証も許可する
disable_plaintext_auth = no
# 追記 プレインログインのみ
auth_mechanisms = plain login
3.設定ファイルを編集(10-mail.conf)
# vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
4.設定ファイルを編集(10-master.conf)
# vi /etc/dovecot/conf.d/10-master.conf
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
5.dovecotを起動または再起動
# /etc/rc.d/init.d/dovecot start
6.dovecot自動起動設定
# chkconfig dovecot on
以上
メールサーバ構築(Postfix/Dovecot) Postfix(非SSL)編
最終的には、SSL対応したメールサーバにするが、まずは、
送信、受信ができるようにしてみる。
環境は以下のとおり。
サーバ:さくらVPS
SMTP : Postfix
POP/IMAP : Dovecot
SMTP-AUTH有効。
また、バーチャルホストの設定はまだしない。
まずはメインドメインからの送受信が行えるようにすることが今回の目的。
まずは、Postfixの設定。
■Postfixの設定
1. /etc/postfix/main.cfファイルを変更する
[root@mail ~]# vi /etc/postfix/main.cf
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
header_checks = regexp:/etc/postfix/header_checks
body_checks = regexp:/etc/postfix/body_checks
smtpd_banner = $myhostname ESMTP
# ファイルの終わりに追加
# 送受信メールサイズを10Mに制限
message_size_limit = 10485760
# メールボックスサイズを1Gに制限
mailbox_size_limit = 1073741824
# SMTP-Auth用
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,permit
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
2.ヘッダチェックファイル(/etc/postfix/header_checks)を変更する
# アドレスなしメール拒否
/^From:.*<#.*@.*>/ REJECT
/^Return-Path:.*<#.*@.*>/ REJECT
#↑ ファイル最初に追記すればよい。
3.ボディチェックファイル(/etc/postfix/body_checks)を新規作成する
# 本文にexample.comが含まれていたら拒否
/^(|[^>].*)example.com/ REJECT
4./etc/postfix/master.cfでsubmissionポート設定(587番ポート対応)をする
submission inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
5.ファイアウォール設定(/etc/sysconfig/iptables)に下記ポートの許可を記述する
ファイルがない場合は、新規作成すればよいが、下記以外にもまるまる
設定する必要がある。iptablesについての記述方法は別ページに記載する。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
<参考>
※25番、587番がなければメール送信できない
※110番995番がなければメールPOP受信できない
※143番993番がなければメールIMAP受信できない
6.Postfix再起動
#/etc/rc.d/init.d/postfix start
7.次回サーバ起動時に自動起動する設定をする
chkconfig postfix on
----
送信、受信ができるようにしてみる。
環境は以下のとおり。
サーバ:さくらVPS
SMTP : Postfix
POP/IMAP : Dovecot
SMTP-AUTH有効。
また、バーチャルホストの設定はまだしない。
まずはメインドメインからの送受信が行えるようにすることが今回の目的。
まずは、Postfixの設定。
■Postfixの設定
1. /etc/postfix/main.cfファイルを変更する
[root@mail ~]# vi /etc/postfix/main.cf
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
header_checks = regexp:/etc/postfix/header_checks
body_checks = regexp:/etc/postfix/body_checks
smtpd_banner = $myhostname ESMTP
# ファイルの終わりに追加
# 送受信メールサイズを10Mに制限
message_size_limit = 10485760
# メールボックスサイズを1Gに制限
mailbox_size_limit = 1073741824
# SMTP-Auth用
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,permit
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
2.ヘッダチェックファイル(/etc/postfix/header_checks)を変更する
# アドレスなしメール拒否
/^From:.*<#.*@.*>/ REJECT
/^Return-Path:.*<#.*@.*>/ REJECT
#↑ ファイル最初に追記すればよい。
3.ボディチェックファイル(/etc/postfix/body_checks)を新規作成する
# 本文にexample.comが含まれていたら拒否
/^(|[^>].*)example.com/ REJECT
4./etc/postfix/master.cfでsubmissionポート設定(587番ポート対応)をする
submission inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
5.ファイアウォール設定(/etc/sysconfig/iptables)に下記ポートの許可を記述する
ファイルがない場合は、新規作成すればよいが、下記以外にもまるまる
設定する必要がある。iptablesについての記述方法は別ページに記載する。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
<参考>
※25番、587番がなければメール送信できない
※110番995番がなければメールPOP受信できない
※143番993番がなければメールIMAP受信できない
6.Postfix再起動
#/etc/rc.d/init.d/postfix start
7.次回サーバ起動時に自動起動する設定をする
chkconfig postfix on
----
2013年5月19日日曜日
MacからWindows8へリモートデスクトップ接続する方法
MacからWindows8へリモートデスクトップ接続する方法。
Mac用のOfficeを購入するとバンドルされているらしい、
MicroSoft Remote Desktop Connection Client。
でもMac用のOfficeはマクロとかの互換性がまだまだらしいので買う予定ない・・・。
あきらめるか、と思っていたら、
Microsoft社純正のMac用リモートクライアントアプリがリリースされている!!
すごいな〜。これじゃますますMacを開発環境にしていいじゃん、と。
ダウンロードはこちらから。
http://www.microsoft.com/ja-jp/download/details.aspx?id=465
あと、Macから接続する前に必ず、リモート接続される側のWindowsの
設定でリモート接続許可をしておくこと。
コントロールパネル システム システムの詳細設定 システムのプロパティ画面の
リモートタブのリモートデスクトップ接続欄にチェックを入れること。
使ってみた感想
起動後、デフォルトでは1024x768のディスプレイサイズになっているが、
設定からフルスクリーンやその他のサイズ指定もでき使用しているディスプレイ環境
に会わせてリモートデスクトップができるのはすばらしい。
かなり重宝しそう!
以上
Mac用のOfficeを購入するとバンドルされているらしい、
MicroSoft Remote Desktop Connection Client。
でもMac用のOfficeはマクロとかの互換性がまだまだらしいので買う予定ない・・・。
あきらめるか、と思っていたら、
Microsoft社純正のMac用リモートクライアントアプリがリリースされている!!
すごいな〜。これじゃますますMacを開発環境にしていいじゃん、と。
ダウンロードはこちらから。
http://www.microsoft.com/ja-jp/download/details.aspx?id=465
Microsoft Remote Desktop Connection Client for Mac 2.0.1
あと、Macから接続する前に必ず、リモート接続される側のWindowsの
設定でリモート接続許可をしておくこと。
コントロールパネル システム システムの詳細設定 システムのプロパティ画面の
リモートタブのリモートデスクトップ接続欄にチェックを入れること。
使ってみた感想
起動後、デフォルトでは1024x768のディスプレイサイズになっているが、
設定からフルスクリーンやその他のサイズ指定もでき使用しているディスプレイ環境
に会わせてリモートデスクトップができるのはすばらしい。
かなり重宝しそう!
以上
2013年5月18日土曜日
以前のサーバで使ってたJavaのJarファイルが実行後エラーになった!その対処
以前の自宅サーバで使っていたJAVAのJARファイルを実行すると、
以下のようなエラーが出力された。
---
Exception in thread "main" java.lang.ClassFormatError: com.gomitrader.MarketUpdater (unrecognized class file version)
at java.lang.VMClassLoader.defineClass(libgcj.so.10)
at java.lang.ClassLoader.defineClass(libgcj.so.10)
at java.security.SecureClassLoader.defineClass(libgcj.so.10)
at java.net.URLClassLoader.findClass(libgcj.so.10)
at java.lang.ClassLoader.loadClass(libgcj.so.10)
at java.lang.ClassLoader.loadClass(libgcj.so.10)
at gnu.java.lang.MainThread.run(libgcj.so.10)
なんでだ!?
色々調べてみると、さくらVPSにプリインストールされているJAVAは、
バージョン1-5であった。
[hoge@hogeserver dist]$ java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-3)
そこで、バージョン1.6, 1.7をインストールする。
$sudo yum install -y java-1.6*
$sudo yum install -y java-1.7*
これで無事さくらVPSでも実行できるようになった!やった。
さくらVPS 住所確認はがきがきてからすること
本登録をして料金を支払ったら、住所確認のためはがきが郵送されてくる。
そこに番号が記載されているので、会員メニューからその番号を入力する。
その後、ネームサーバに登録が可能となる。
さくらVPSのネームサーバを使用する場合、
お名前.comで取得したドメインは、お名前.comのページより、
別ネームサーバを指定するこうもくで設定する必要がある。
そのあと、さくらVPSでサブドメインの設定やらをしよう。
そこに番号が記載されているので、会員メニューからその番号を入力する。
その後、ネームサーバに登録が可能となる。
さくらVPSのネームサーバを使用する場合、
お名前.comで取得したドメインは、お名前.comのページより、
別ネームサーバを指定するこうもくで設定する必要がある。
そのあと、さくらVPSでサブドメインの設定やらをしよう。
2013年5月16日木曜日
ドキュメントルートにFTPでアップロードできない場合の対処方法
FTPアップロードするときのユーザ名と、
ドキュメントルートのアクセス権限を確認しよう。
デフォルトでは、ドキュメントルートはrootユーザ rootグループになっている。
FTPアクセスするユーザがhogeの場合は、まずアップロードできません。
どうするか?
以下のようにしましょう。
1.グループにwwwを追加
#groupadd www
#gpasswd www
2.ユーザにwwwを追加
#useradd www
#passwd www
3.ドキュメントルートのファイルアクセスさせたいユーザをwwwグループに追加
※このとき、-Gオプションにすること。-gとするとプライマリグループがかわってしまうため。
#usermod -G www hoge
4./etc/httpd/conf/httpd.confのUser Groupをwww wwwに変更
5.ドキュメントルートディレクトリの所有者・アクセス権限を変更
#chown www:www ドキュメントルート
#chmod 755 ドキュメントルート
6.httpdを再起動
/etc/rc.d/init.d/httpd restart
これでhogeユーザでFTPアップロードできるようになるはず。
ただし、すでにrootまたは別ユーザでindex.htmlがドキュメントルートに
存在する場合は、一度これを削除しないと上書きできないからアップロードに
失敗します。
(アクセス権限が644のため、上書きできない。注意!)
以上
ドキュメントルートのアクセス権限を確認しよう。
デフォルトでは、ドキュメントルートはrootユーザ rootグループになっている。
FTPアクセスするユーザがhogeの場合は、まずアップロードできません。
どうするか?
以下のようにしましょう。
1.グループにwwwを追加
#groupadd www
#gpasswd www
2.ユーザにwwwを追加
#useradd www
#passwd www
3.ドキュメントルートのファイルアクセスさせたいユーザをwwwグループに追加
※このとき、-Gオプションにすること。-gとするとプライマリグループがかわってしまうため。
#usermod -G www hoge
4./etc/httpd/conf/httpd.confのUser Groupをwww wwwに変更
5.ドキュメントルートディレクトリの所有者・アクセス権限を変更
#chown www:www ドキュメントルート
#chmod 755 ドキュメントルート
6.httpdを再起動
/etc/rc.d/init.d/httpd restart
これでhogeユーザでFTPアップロードできるようになるはず。
ただし、すでにrootまたは別ユーザでindex.htmlがドキュメントルートに
存在する場合は、一度これを削除しないと上書きできないからアップロードに
失敗します。
(アクセス権限が644のため、上書きできない。注意!)
以上
Coda2がすばらしくよい
さくらVPSにしてもりもりサイト作ろう!と思ったが、
オーサリングツールどれにしようか迷った。
今までnetbeansでjavaやらHTML+PHPやら作っていたが、
折角macなのでcoda2を使うことにしてとりあえずお試し版を使ってみた。
結果、
ものすごくよい。
ネットで色々な人が書いているようにこれはいい。
それだけ。
オーサリングツールどれにしようか迷った。
今までnetbeansでjavaやらHTML+PHPやら作っていたが、
折角macなのでcoda2を使うことにしてとりあえずお試し版を使ってみた。
結果、
ものすごくよい。
ネットで色々な人が書いているようにこれはいい。
それだけ。
さくらVPSにインストールしないといけないもの
さくらVPSは、よく使われるサーバのデーモンのうち、
最初から以下のものしかインストールされていない。
SSH接続用 open-SSH
メール送信用 postfix
DB SQLite
なので、以下のサービスをインストールする
HTTP (apache)
FTP (vsftpd)
DB (MySQL, PostgreSQL)
POP (dovecot)
Wordpress
node.js
PHP
1.HTTPDインストール
#yum install httpd
#which httpd
/usr/sbin/httpd
#httpd -v
#cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_org
#vi /etc/httpd/conf/httpd.conf
ServerName www.hogehoge.com:80
デフォルトの初回ドメインを入力する
#/etc/rc.d/init.d/httpd start
ブラウザからhttp://サーバIP を入力してapacheページが表示されたらOK.
www.hogehoge.comと設定したがDNSに登録されているドメインではないため、
サーバのIPでアクセスを確認すること。
#chkconfig httpd on
ま、詳しい設定はすべてインストール終わってからすることにする。
2.FTPDインストール
#yum install vsftpd
#which vsftpd
/usr/sbin/vsftpd
#vsftpd -v
#/etc/rc.d/init.d/vsftpd start
VSFTPDの設定ファイルを修正する
#vi /etc/vsftpd/vsftpd.conf
>>ここから設定を変更する
>匿名ユーザの接続は許可しない
anonymous_enable=NO
>ログを記録する
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
>asciiによるアップロード・ダウンロード許可
ascii_upload_enable=YES
ascii_download_enable=YES
>バナーに表示する文字を設定 FTPのバージョンを表示しない
ftpd_banner=Welcome .... Ftp
>ホームディレクトリより上層へのアクセスを禁止する
chroot_local_user=YES
>リストに記載したユーザは上層へのアクセスを許可する
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
>ディレクトリごとの削除を許可する
ls_recurse_enable=YES
>>ここから追加する
>タイムスタンプ時間を日本の時間にする
use_localtime=YES
>PASVモード接続先IPをホスト名から取得する
pasv_addr_resolve=YES
>サーバのホスト名またはIPアドレス指定
pasv_address=自分のサーバのIホスト名またはIP
>PASVモード接続ポート
pasv_min_port=60000
pasv_max_port=60030
>SSL有効
ssl_enable=YES
>証明書を指定
rsa_cert_file=/etc/pki/tls/certs/vsfpd.pem
>ログイン時にSSL接続を強制しない (暗号化しない接続も許可)
force_local_logins_ssl=NO
force_local_data_ssl=NO
>>編集終了
ホームディレクトリより上層へのアクセスを許可するユーザの登録
#echo ユーザ名 >> /etc/vsftpd/chroot_list
ユーザ新規登録時に/home/etcディレクトリを作成するようスケルトン登録
#mkdir /etc/skel/etc
#cp /etc/localtime /etc/skel/etc
既存ユーザは、/home/ユーザ/etcディレクトリを作成すること
etcのアクセス権限を各ユーザに変更
#chown ユーザ:ユーザ /home/ユーザ/etc
もしFTPサーバへアクセスを禁止したいユーザがいれば
#echo 禁止したいユーザ >> /etc/vsftpd/ftpusers
サーバ証明書を作成する
#make /etc/pki/tls/certs/vsftpd.pem
国名やら県名サイト名メールアドレスを入力する
Organaization ....は空エンターでよい
VSFTPD起動
#/etc/rc.d/init.d/vsftpd start
#chkconfig vsftpd on
#chkconfig --list vsftpd
macから接続する場合
CyberDuckを使用する
FTP
FTP-SSL (Explicit AUTH TLS)
初回接続時はサーバ証明書が偽物なので偽装サーバの警告が表示されるが、
問題ないので次回より警告しないようにする。
3. MySQLインストール
#yum install *mysql*
#which mysql
/usr/sbin/mysql
#mysql --version
/etc/init.d/mysqld start
一連の処理が実行され、OKと表示されればよい。
#chkconfig mysqld on
#mysql_secure_installation
rootパスワード以外はすべて空ENTERまたはYでENTER押せばよい。
※今までのいちいち匿名ユーザ消したりという作業を省略できる。
#任意のユーザ(hoge)をパスワード(password)登録する
>grant all on *.* to hoge indetified by 'password';
#select user,host,password from mysql.user;
文字コードをUTF8に統一
# vi /etc/my.cnf
以下セクション・キーを追加する
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
#old_passwords=1
default-character-set=utf8
character-set-server=utf8
skip-character-set-client-handshake
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
mysql再起動
既にあるデータベースの文字コードをこれで変更できる
alter database データベース名 character set 文字コード; [ENTER]
4. PostgreSQLインストール
#yum install *postgresql*
#which psql
#psql --version
5. SQLite関係をインストール
#yum install *sqlite*
#which sqlite
6. PHPインストール
#yum -y install php php-mbstring php-pear php-mysql php-gd mysql-devel
/etc/httpd/conf/httpd.confに以下2行を追加する
AddType application/x-httpd-php .php
AddType application/x-httpd-source .php
/var/www/html/にinfo.phpファイルを作成し以下を記述
<?php phpinfo(); ?>
ブラウザからhttp://サーバIP/info.phpをアドレス入力し、
PHPの情報が表示されればoK
8.HTTPDにサブドメイン・マルチサイト設定をする
9.メールサーバをインストールする(postfix, dovecot)
10.iptablesファイルを作成する
11.
最初から以下のものしかインストールされていない。
SSH接続用 open-SSH
メール送信用 postfix
DB SQLite
なので、以下のサービスをインストールする
HTTP (apache)
FTP (vsftpd)
DB (MySQL, PostgreSQL)
POP (dovecot)
Wordpress
node.js
PHP
1.HTTPDインストール
#yum install httpd
#which httpd
/usr/sbin/httpd
#httpd -v
#cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_org
#vi /etc/httpd/conf/httpd.conf
ServerName www.hogehoge.com:80
デフォルトの初回ドメインを入力する
#/etc/rc.d/init.d/httpd start
ブラウザからhttp://サーバIP を入力してapacheページが表示されたらOK.
www.hogehoge.comと設定したがDNSに登録されているドメインではないため、
サーバのIPでアクセスを確認すること。
#chkconfig httpd on
ま、詳しい設定はすべてインストール終わってからすることにする。
2.FTPDインストール
#yum install vsftpd
#which vsftpd
/usr/sbin/vsftpd
#vsftpd -v
#/etc/rc.d/init.d/vsftpd start
VSFTPDの設定ファイルを修正する
#vi /etc/vsftpd/vsftpd.conf
>>ここから設定を変更する
>匿名ユーザの接続は許可しない
anonymous_enable=NO
>ログを記録する
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
>asciiによるアップロード・ダウンロード許可
ascii_upload_enable=YES
ascii_download_enable=YES
>バナーに表示する文字を設定 FTPのバージョンを表示しない
ftpd_banner=Welcome .... Ftp
>ホームディレクトリより上層へのアクセスを禁止する
chroot_local_user=YES
>リストに記載したユーザは上層へのアクセスを許可する
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
>ディレクトリごとの削除を許可する
ls_recurse_enable=YES
>>ここから追加する
>タイムスタンプ時間を日本の時間にする
use_localtime=YES
>PASVモード接続先IPをホスト名から取得する
pasv_addr_resolve=YES
>サーバのホスト名またはIPアドレス指定
pasv_address=自分のサーバのIホスト名またはIP
>PASVモード接続ポート
pasv_min_port=60000
pasv_max_port=60030
>SSL有効
ssl_enable=YES
>証明書を指定
rsa_cert_file=/etc/pki/tls/certs/vsfpd.pem
>ログイン時にSSL接続を強制しない (暗号化しない接続も許可)
force_local_logins_ssl=NO
force_local_data_ssl=NO
>>編集終了
ホームディレクトリより上層へのアクセスを許可するユーザの登録
#echo ユーザ名 >> /etc/vsftpd/chroot_list
ユーザ新規登録時に/home/etcディレクトリを作成するようスケルトン登録
#mkdir /etc/skel/etc
#cp /etc/localtime /etc/skel/etc
既存ユーザは、/home/ユーザ/etcディレクトリを作成すること
etcのアクセス権限を各ユーザに変更
#chown ユーザ:ユーザ /home/ユーザ/etc
もしFTPサーバへアクセスを禁止したいユーザがいれば
#echo 禁止したいユーザ >> /etc/vsftpd/ftpusers
サーバ証明書を作成する
#make /etc/pki/tls/certs/vsftpd.pem
国名やら県名サイト名メールアドレスを入力する
Organaization ....は空エンターでよい
VSFTPD起動
#/etc/rc.d/init.d/vsftpd start
#chkconfig vsftpd on
#chkconfig --list vsftpd
macから接続する場合
CyberDuckを使用する
FTP
FTP-SSL (Explicit AUTH TLS)
初回接続時はサーバ証明書が偽物なので偽装サーバの警告が表示されるが、
問題ないので次回より警告しないようにする。
3. MySQLインストール
#yum install *mysql*
#which mysql
/usr/sbin/mysql
#mysql --version
/etc/init.d/mysqld start
一連の処理が実行され、OKと表示されればよい。
#chkconfig mysqld on
#mysql_secure_installation
rootパスワード以外はすべて空ENTERまたはYでENTER押せばよい。
※今までのいちいち匿名ユーザ消したりという作業を省略できる。
#任意のユーザ(hoge)をパスワード(password)登録する
>grant all on *.* to hoge indetified by 'password';
#select user,host,password from mysql.user;
文字コードをUTF8に統一
# vi /etc/my.cnf
以下セクション・キーを追加する
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
#old_passwords=1
default-character-set=utf8
character-set-server=utf8
skip-character-set-client-handshake
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
mysql再起動
#/etc/rc.d/init.d/mysqld restart
mysqlへ接続
#mysql -u USER -p
文字コード設定が反映されていることを確認
show variables like 'char%';既にあるデータベースの文字コードをこれで変更できる
alter database データベース名 character set 文字コード; [ENTER]
4. PostgreSQLインストール
#yum install *postgresql*
#which psql
#psql --version
5. SQLite関係をインストール
#yum install *sqlite*
#which sqlite
6. PHPインストール
#yum -y install php php-mbstring php-pear php-mysql php-gd mysql-devel
/etc/httpd/conf/httpd.confに以下2行を追加する
AddType application/x-httpd-php .php
AddType application/x-httpd-source .php
/var/www/html/にinfo.phpファイルを作成し以下を記述
<?php phpinfo(); ?>
ブラウザからhttp://サーバIP/info.phpをアドレス入力し、
PHPの情報が表示されればoK
7. Wordpressインストール
前提として、
バーチャルホストで2ドメインを1台のサーバで動かしている環境。
www.example1.com
www.exampel2.com
www.example1.comには、blogのみwordpressを使用する。
www.example2.comには、すべてwordpressを使用し、サブドメインを使用する。
前提として、
バーチャルホストで2ドメインを1台のサーバで動かしている環境。
www.example1.com
www.exampel2.com
www.example1.comには、blogのみwordpressを使用する。
www.example2.comには、すべてwordpressを使用し、サブドメインを使用する。
(blog.example2.com app.example2.comのようなもの)
注意点としては、wordpressをインストールする際、
www.example2.comのときは、ドキュメントルートにwordpressをインストールすること。
wordpressをインストールとは、例えば、example2.comのドキュメントルートが、
/var/www/example2.com/の場合、
wp-contentやらwordpressディレクトリ以下の色々なファイルすべてが、
/var/www/example2.com/直下に配置されているということをさす。
注意点としては、wordpressをインストールする際、
www.example2.comのときは、ドキュメントルートにwordpressをインストールすること。
wordpressをインストールとは、例えば、example2.comのドキュメントルートが、
/var/www/example2.com/の場合、
wp-contentやらwordpressディレクトリ以下の色々なファイルすべてが、
/var/www/example2.com/直下に配置されているということをさす。
※すでにPHPインストールでしているが、以下のものが必要なので注意。
yum install php-mysql
yum install php-mbstring
※最新のファイルを本家サイトで確認すること。 2013/05時点は3.5.1が最新
#wget http://ja.wordpress.org/wordpress-3.5.1-ja.zip
※ root のホームディレクトリにダウンロードしたことにする
unzip wordpress-3.5.1-ja.zip
HTMLのドキュメントルートにコピーする
cp -R wordpress /var/www/
cd /var/www/wordpress
cp wp-config-sample.php wp-config.php
※複数のwordpressをインストールする場合は、わかりやすくするため
example1BLOG example2BLOGなどとして設定すればよいいかも。
//設定ファイルのデータベース設定を書き換える
/** WordPress のためのデータベース名 */
define('DB_NAME', 'example1BLOG');
/** MySQL データベースのユーザー名 */
define('DB_USER', 'DB任意ユーザ名');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'DB任意パスワード');
mysqlにルートでログイン
mysql -u root -p
grant all privileges on example1BLOG.* to ユーザ@localhost identified by 'xxxxxxxx';
exit;
mysql -u ユーザ -p
mysql -u ユーザ -p
create database example2BLOG;
cd /etc/httpd/conf.d/
echo "Alias /wordpress /var/www/wordpress" > wordpress.conf
cat wordpress.conf
/etc/init.d/httpd reload
//ブラウザで以下にアクセスして、adminパスワードを入れてメールアドレス入力してOK
http://サーバアドレス/wordpress
8.HTTPDにサブドメイン・マルチサイト設定をする
9.メールサーバをインストールする(postfix, dovecot)
10.iptablesファイルを作成する
11.
2013年5月15日水曜日
さくらVPS最初に設定すること
まずは、文字環境の日本語化とユーザの登録とSSH接続のセキュリティ設定をする。
以降、自分の環境はMac OS Xなのでターミナル経由での接続とする
前提として、CentOSを使用する。
0.ホスト名を変更する
/etc/hosts
/etc/sysconfig/network
を変更する
0.sudoを行えるようにする。
まずsudoがインストールされているか確認する
$yum list installed | grep sudo
インストールされていない場合 suになり、インストール
$su -
#yum install sudo -y
/etc/sudoersがあるか確認
#ls /etc | grep sudoers
/etc/sudoersにユーザを追加するが、これはsuでviで開いても編集できない。
visudoコマンドで/etc/sudoersが編集可能なので、このコマンドで行うこと
#visudo
viの中で%wheel で検索 (コマンド入力モードで/%wheelと入力する)
その近辺にsudoコマンドを許可したいユーザを列挙していく。
ユーザ名 ALL=(ALL) ALL
もしグループで登録したいときは
%グループ名 ALL=(ALL) ALL
とする。
ちなみにALL=(ALL) ALLは、実行可能なコマンドなどの詳細設定だが、
詳細は、visudoのマニュアルを参照のこと。
これでCentOSでもsudoが使えるようになるので確認する。
#exit
※試しに、httpデーモンを再起動してみる。
$sudo /etc/rc.d/init.d/httpd restart
パスワードの入力が促され、正しく認証できたら実行できるはず。
0.文字環境を日本語化する
さくらVPSのデフォルトOSであるCentOSは、英語環境らしい。
なので、のちのち日本語が含まれたファイルをVPSコントロールパネルの
コンソール以外のSSH関係のソフトのviで開くと、文字化けが起きてしまう。
だから以下設定をして日本語環境にする
#cp /etc/sysconfig/i18n /etc/sysconfig/i18n_org
#vi /etc/sysconfig/i18n
#LANG="C"
LANG="ja_JP.UTF-8"
いったんSSH終了する
#exit
#printenv | grep LANG
LANG=ja_JP.UTF8
と表示されるOK
1.サーバへSSH接続する
(client)$ssh root@サーバIP
2.ユーザを作成する
(Server)#adduser hogehoge
(Server)#passwd hogehoge
Webサイトのドキュメントルートアクセス用に
ユーザにwww グループにwwwを追加する
wwwグループ追加
#groupadd www
グループにパスワード付与
#gpasswd www
wwwユーザ追加
#useradd www
wwwユーザにパスワード付与
#passwd www
メインのユーザをwwwグループに追加
このとき-Gとすること -gとするとプライマリグループを変更してしまうので注意
#usermod -G www ユーザ名
最後にちゃんと登録されているか確認
cat /etc/group | grep www
※HTTPの設定のUser Groupをwww wwwに後で変更すること
また、ドキュメントルートは、755 もしくは 644にすること
3. sshd設定を変更する
(Server)#vi /etc/ssh/sshd_config
(1) #Port 22を変更する
Port 任意のポート番号
(2)SSH接続でrootに直接ログインすることを禁止の編集
PermitRootLogin no
4. SSHデーモン再起動
(server)$/etc/init.d/sshd restart
5.クライアント側で鍵ペアを作成する
(client)$ssh-keygen
Enter File in which to save the key.... と聞かれるのでそのままENTER
Enter passphrase : 任意のパスワードを入力する
もう一度同じパスワードを入力する
6.~/.ssh/にid_rsaとid_ras.pubができていることを確認する
id_rsaが秘密かぎ
id_rsa.pubが公開鍵
7.公開鍵をさくらVPSにscp転送する
(client)$scp -P SSH設定のポート(デフォルトは22) .ssh/id_rsa.pub ユーザ名@サーバIP:~
8.サーバへ接続
(client) ssh ユーザ名@サーバIP -p ポート
9.サーバ側でユーザの公開鍵をセットするための設定をする
(server) $mkdir .ssh
(server) $chmod 700 .ssh
以降、自分の環境はMac OS Xなのでターミナル経由での接続とする
前提として、CentOSを使用する。
0.ホスト名を変更する
/etc/hosts
/etc/sysconfig/network
を変更する
0.sudoを行えるようにする。
まずsudoがインストールされているか確認する
$yum list installed | grep sudo
インストールされていない場合 suになり、インストール
$su -
#yum install sudo -y
/etc/sudoersがあるか確認
#ls /etc | grep sudoers
/etc/sudoersにユーザを追加するが、これはsuでviで開いても編集できない。
visudoコマンドで/etc/sudoersが編集可能なので、このコマンドで行うこと
#visudo
viの中で%wheel で検索 (コマンド入力モードで/%wheelと入力する)
その近辺にsudoコマンドを許可したいユーザを列挙していく。
ユーザ名 ALL=(ALL) ALL
もしグループで登録したいときは
%グループ名 ALL=(ALL) ALL
とする。
ちなみにALL=(ALL) ALLは、実行可能なコマンドなどの詳細設定だが、
詳細は、visudoのマニュアルを参照のこと。
これでCentOSでもsudoが使えるようになるので確認する。
#exit
※試しに、httpデーモンを再起動してみる。
$sudo /etc/rc.d/init.d/httpd restart
パスワードの入力が促され、正しく認証できたら実行できるはず。
0.文字環境を日本語化する
さくらVPSのデフォルトOSであるCentOSは、英語環境らしい。
なので、のちのち日本語が含まれたファイルをVPSコントロールパネルの
コンソール以外のSSH関係のソフトのviで開くと、文字化けが起きてしまう。
だから以下設定をして日本語環境にする
#cp /etc/sysconfig/i18n /etc/sysconfig/i18n_org
#vi /etc/sysconfig/i18n
#LANG="C"
LANG="ja_JP.UTF-8"
いったんSSH終了する
#exit
#printenv | grep LANG
LANG=ja_JP.UTF8
と表示されるOK
1.サーバへSSH接続する
(client)$ssh root@サーバIP
2.ユーザを作成する
(Server)#adduser hogehoge
(Server)#passwd hogehoge
Webサイトのドキュメントルートアクセス用に
ユーザにwww グループにwwwを追加する
wwwグループ追加
#groupadd www
グループにパスワード付与
#gpasswd www
wwwユーザ追加
#useradd www
wwwユーザにパスワード付与
#passwd www
メインのユーザをwwwグループに追加
このとき-Gとすること -gとするとプライマリグループを変更してしまうので注意
#usermod -G www ユーザ名
最後にちゃんと登録されているか確認
cat /etc/group | grep www
※HTTPの設定のUser Groupをwww wwwに後で変更すること
また、ドキュメントルートは、755 もしくは 644にすること
3. sshd設定を変更する
(Server)#vi /etc/ssh/sshd_config
(1) #Port 22を変更する
Port 任意のポート番号
(2)SSH接続でrootに直接ログインすることを禁止の編集
PermitRootLogin no
4. SSHデーモン再起動
(server)$/etc/init.d/sshd restart
5.クライアント側で鍵ペアを作成する
(client)$ssh-keygen
Enter File in which to save the key.... と聞かれるのでそのままENTER
Enter passphrase : 任意のパスワードを入力する
もう一度同じパスワードを入力する
6.~/.ssh/にid_rsaとid_ras.pubができていることを確認する
id_rsaが秘密かぎ
id_rsa.pubが公開鍵
7.公開鍵をさくらVPSにscp転送する
(client)$scp -P SSH設定のポート(デフォルトは22) .ssh/id_rsa.pub ユーザ名@サーバIP:~
8.サーバへ接続
(client) ssh ユーザ名@サーバIP -p ポート
(server) $mkdir .ssh
(server) $chmod 700 .ssh
(server) $mv id_rsa.pub .ssh/
(server) $cd .ssh
(server) $touch authorized_keys
(server) $cat id_rsa.pub >> authorized_keys
(server) $chmod 600 authorized_keys
(server) $cd .ssh
(server) $touch authorized_keys
(server) $cat id_rsa.pub >> authorized_keys
(server) $chmod 600 authorized_keys
※authorized_keysファイルを作成する
(公開鍵を書き込んでおくファイル sshdはこれを確認するので必ず必要。)
(公開鍵を書き込んでおくファイル sshdはこれを確認するので必ず必要。)
10.ssh接続認証設定を変更する
(Server)#vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
※%hは各ユーザのホームディレクトリ
11. sshを再起動
#/etc/init.d/sshd restart
12. いったんサーバからでる
#exit
13. クライアントからssh接続して接続できることを確認
ssh ユーザ@サーバIP -i .ssh/id_rsa -p 設定ポート番号
または
ssh ユーザ@サーバIP -p 設定ポート番号
<おまけ>
クライアントの.sshにconfigファイルを作成し
以下を書き込むとより簡単に接続できる。
複数のサーバをターミナルで管理する場合は、同じ記述を複数繰り返せばよい。
ただし、id_rsa id_rsa.pub は id_rsa.サーバ名 id_rsa.pub.サーバ名
とすること。
複数のサーバをターミナルで管理する場合は、同じ記述を複数繰り返せばよい。
ただし、id_rsa id_rsa.pub は id_rsa.サーバ名 id_rsa.pub.サーバ名
とすること。
ssh 設定サーバ名
Host 設定サーバ名
HostName サーバIP または ドメイン
User ユーザ名
Port 設定したポート
IdentityFile ~/.ssh/id_rsa.サーバ名1
Host 設定サーバ名
Host 設定サーバ名
HostName サーバIP または ドメイン
User ユーザ名
Port 設定したポート
IdentityFile ~/.ssh/id_rsa.サーバ名2
Host 設定サーバ名
HostName サーバIP または ドメイン
User ユーザ名
Port 設定したポート
IdentityFile ~/.ssh/id_rsa.サーバ名3
以上
さくらVPSに移行!
自宅にてサーバ稼働させていたが、電力料金やらマシンの故障を考えたら
レンタルサーバに移行することが望ましいと考えたので、
さくらインターネットのVPSへ移行する。
そのときのとりあえずメモ。
1.さくらVPSは
2週間のお試し期間を試すことができる。
この場合は、必ずクレジットカード支払いをしないといけないようだ。
ほかに銀行振込等もあるが、これではお試し期間は使用できないよう。
ただ、逆にすぐにバリバリ使いたいと思っても、本登録して
支払いをしても本登録完了のはがきが手元にくるまでは
ネームサーバを使用できず、独自ドメインへの変更ができない。
うーん、残念。
あと最近VPSでは標準サービスと思われるスナップショットがない。
なんでかな〜。とりあえずサポートには早急に機能追加するようにお願いしてみた。
2.登録までの簡単な流れ
さくらインターネットのサイトから、好みのVPSのプランを選択する。
申し込み登録をする。
2週間お試しするにはクレジット登録が必要。
3.登録後サーバへアクセスする方法
登録が終わると、会員ID, サーバrootユーザのパスワードが送付されてくる。
メールに記載されているURLよりVPSコントロールパネルへアクセスする。
メールに記載されているサーバIPと初期パスワードでログインする。
仮想サーバ操作で、起動ボタンを押し起動することでサーバは稼働する。
ちなみに初期パスワードは、コントロールパネルの右上から変更可能。
さくらVPSのサーバ操作は、ターミナル経由でするが、
コントロールパネルのリモートコンソールが非常に使いづらい。
VIの操作が矢印キーが使えないのとたびたび接続が不安定になる。
JavaプラグインのVNCも不安定かつ遅すぎる。
別アプリでターミナル接続するほうがよい。
Mac OS Xの場合は、標準のターミナル経由。
Windowsの場合は、Teratermがよいかな。
レンタルサーバに移行することが望ましいと考えたので、
さくらインターネットのVPSへ移行する。
そのときのとりあえずメモ。
1.さくらVPSは
2週間のお試し期間を試すことができる。
この場合は、必ずクレジットカード支払いをしないといけないようだ。
ほかに銀行振込等もあるが、これではお試し期間は使用できないよう。
ただ、逆にすぐにバリバリ使いたいと思っても、本登録して
支払いをしても本登録完了のはがきが手元にくるまでは
ネームサーバを使用できず、独自ドメインへの変更ができない。
うーん、残念。
あと最近VPSでは標準サービスと思われるスナップショットがない。
なんでかな〜。とりあえずサポートには早急に機能追加するようにお願いしてみた。
2.登録までの簡単な流れ
さくらインターネットのサイトから、好みのVPSのプランを選択する。
申し込み登録をする。
2週間お試しするにはクレジット登録が必要。
3.登録後サーバへアクセスする方法
登録が終わると、会員ID, サーバrootユーザのパスワードが送付されてくる。
メールに記載されているURLよりVPSコントロールパネルへアクセスする。
メールに記載されているサーバIPと初期パスワードでログインする。
仮想サーバ操作で、起動ボタンを押し起動することでサーバは稼働する。
ちなみに初期パスワードは、コントロールパネルの右上から変更可能。
さくらVPSのサーバ操作は、ターミナル経由でするが、
コントロールパネルのリモートコンソールが非常に使いづらい。
VIの操作が矢印キーが使えないのとたびたび接続が不安定になる。
JavaプラグインのVNCも不安定かつ遅すぎる。
別アプリでターミナル接続するほうがよい。
Mac OS Xの場合は、標準のターミナル経由。
Windowsの場合は、Teratermがよいかな。
2012年11月25日日曜日
WindowsからのSFTP接続
最近Macからではなく、Windowsからの接続する機会が多い。
Windows8が世間では不評だが、個人的には気に入っている。
Appleとはそろそろ決別し、Microsoftへ回帰しようと思っている。
選択と集中!
Macはデザインはいいが、Windowsと比べると、
自由さや生産性に欠ける。(単に自分が不慣れなだけか!?)
まぁそういうことはさておいて、件名の件。
FTPはセキュリティ的に危ういので、SFTPを基本としている。
でもWindowsで選択できるSFTPクライアントツールは、
WinSCPが支持されているようだが、個人的には、FileZilla。
WinSCPは、鍵接続にPutty用に変換された鍵しか使用できず、
別途変換しろと注意されて終わりだが、
FileZillaは、一応同じように注意するが、その後、自動変換出力してくれる。※出力ファイル名と出力先を指定する必要がある。
このファイルをWinSCPで使用することも可能。
Puttyを使用したことがある人で変換方法知っている人はよいが、
もし同じように困っている人は、FileZillaをお試しください。
以上
Windows8が世間では不評だが、個人的には気に入っている。
Appleとはそろそろ決別し、Microsoftへ回帰しようと思っている。
選択と集中!
Macはデザインはいいが、Windowsと比べると、
自由さや生産性に欠ける。(単に自分が不慣れなだけか!?)
まぁそういうことはさておいて、件名の件。
FTPはセキュリティ的に危ういので、SFTPを基本としている。
でもWindowsで選択できるSFTPクライアントツールは、
WinSCPが支持されているようだが、個人的には、FileZilla。
WinSCPは、鍵接続にPutty用に変換された鍵しか使用できず、
別途変換しろと注意されて終わりだが、
FileZillaは、一応同じように注意するが、その後、自動変換出力してくれる。※出力ファイル名と出力先を指定する必要がある。
このファイルをWinSCPで使用することも可能。
Puttyを使用したことがある人で変換方法知っている人はよいが、
もし同じように困っている人は、FileZillaをお試しください。
以上
SSHサーバを鍵認証のみの接続にする
SSHサーバへの外部からのアクセスを安全にする。
その備忘録。
内容としては、以下。
・パスワード空のときは接続できない
・鍵接続のみ。パスワードによる接続は禁止。
・ROOTでの接続は不可能とする。
1.rootになる
$su -
2.SSHサーバ設定ファイルを開く
#vi /etc/ssh/sshd_config
3. 設定ファイルの以下キーワードを有効にする。
※先頭に#がある場合は、削除する。#はコメントアウトの意味なので。
・空パスワードを禁止にする設定へ変更する
PermitEmptyPasswords no
・ROOTログイン禁止
PermitRootLogin no
・パスワードによるアクセス禁止(=鍵認証のみ)
PasswordAuthentication no
以上
その備忘録。
内容としては、以下。
・パスワード空のときは接続できない
・鍵接続のみ。パスワードによる接続は禁止。
・ROOTでの接続は不可能とする。
1.rootになる
$su -
2.SSHサーバ設定ファイルを開く
#vi /etc/ssh/sshd_config
3. 設定ファイルの以下キーワードを有効にする。
※先頭に#がある場合は、削除する。#はコメントアウトの意味なので。
・空パスワードを禁止にする設定へ変更する
PermitEmptyPasswords no
・ROOTログイン禁止
PermitRootLogin no
・パスワードによるアクセス禁止(=鍵認証のみ)
PasswordAuthentication no
以上
2012年8月25日土曜日
SELinuxの無効・有効化
SELinuxって本当に厄介だ。
SELinuxは、ルートに対してもフォルダのアクセス制限を設ける機能らしい。
万が一侵入やサーバを乗っ取られても被害を最小限に抑えることが目的らしい。
でも!サーバを構築する上で非常に厄介。
たとえば、Windows共有サーバ=Sambaサーバを構築しても
SELinuxが有効であれば、普通に構築するだけではサーバにアクセスはできても
ファイルの読み書きなどができない・・・。
サーバ構築の際、動作確認するためには、SELinuxを一時的に無効にしたほうが
いいときもある。
そこでその方法について備忘録。
■SELinuxの状態確認
#getenforce
Enforcing 有効
Permissive 無効
■SELinuxを有効化(次回OS再起動まで有効)
#setenforce 1
■SELinuxを無効化 (次回OS再起動まで有効)
#setenforce 0
■SELinuxを永久に有効化
#vi /etc/selinux/config
SELinux=enforcing
■SELinuxを永久に無効化
#vi /etc/selinux/config
SELinux=disabled
以上
SELinuxは、ルートに対してもフォルダのアクセス制限を設ける機能らしい。
万が一侵入やサーバを乗っ取られても被害を最小限に抑えることが目的らしい。
でも!サーバを構築する上で非常に厄介。
たとえば、Windows共有サーバ=Sambaサーバを構築しても
SELinuxが有効であれば、普通に構築するだけではサーバにアクセスはできても
ファイルの読み書きなどができない・・・。
サーバ構築の際、動作確認するためには、SELinuxを一時的に無効にしたほうが
いいときもある。
そこでその方法について備忘録。
■SELinuxの状態確認
#getenforce
Enforcing 有効
Permissive 無効
■SELinuxを有効化(次回OS再起動まで有効)
#setenforce 1
■SELinuxを無効化 (次回OS再起動まで有効)
#setenforce 0
■SELinuxを永久に有効化
#vi /etc/selinux/config
SELinux=enforcing
■SELinuxを永久に無効化
#vi /etc/selinux/config
SELinux=disabled
以上
2012年8月22日水曜日
動画・写真配信サーバ構築(DLNAサーバ)
写真や動画を一元管理するため、DLNAサーバを構築する。
DLNAサーバとは、写真や動画をネットワーク経由でストリーミング配信するもの。
このサーバを設置すると、iPhoneやiPad、パソコンでファイルを見ることができる。
その備忘録。
< 注意 >
mediatombをyumでインストールするためには、まずRPMforgeリポジトリを追加する
必要があるらしいが、これが結構厄介。
priority=1と設定する必要があるが、mediatombインストール後、mediatombの設定変更前に
priority=1はコメントアウトするようにしたほうがよい。
こうしないと、それ以後、yumを使ってupdateやinstallができなくなる。
また、mediatombインストールし設定変更後に上記priority=1をコメントアウトして、
yum updateを行うと折角設定したものが、初期化されてしまい、また設定し直し・・・
ということになりかねない。
■RPMfrogeリポジトリ導入
注意!! CentOS6の場合は、以下だがCentOS5の場合は少し違うので注意。
1. yumのplugin-prioritiesをインストールする。
#yum -y install yum-plugin-priorities
2. 標準リポジトリ設定ファイル編集
#vi /etc/yum.repos.d/CentOS-Base.repo
↓ ----- ここから設定ファイル本文
3. rpmforgeの最新版をダウンロードする。
注意!! 最新版を確認し、URL指定すること。
#wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
4. RMPForgeリポジトリをインストールする
#rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm
5.ダウンロードしたファイルを削除する
#rm -f rpmforge-release-*
6.rpmforge-releaseをアップデートする
#yum -y update rpm forge-release
■DLNAサーバソフトmediatombインストール
1. mediatombをダウンロード
本家サイト http://mediatomb.cc/pages/download#source_codeから最新のバージョンを確認。
(2012.08.21時点の最新をダウンロード)
#wget http://jaist.dl.sourceforge.net/sourceforge/mediatomb/mediatomb-0.12.1.tar.gz
2. ダウンロードしたMediatombパッケージを展開
#tar zxvf mediatomb-0.12.1.tar.gz
3. /usr/src/にredhatディレクトリを作成
#mkdir /usr/src/redhat
4. /usr/src/redhatにSPECSディレクトリを作成
#mkdir /usr/src/redhat/SPECS
5. /usr/src/redhatにSOURCEディレクトリを作成
#mkdir /usr/src/redhat/SOURCE
6. 権限を付与
#chmod 755 -R /usr/src/redhat
7. ダウンロードしたファイル mediatomb.specをコピー
#cp mediatomb-0.12.1/mediatomb.spec /usr/src/redhat/SPECS/
8.ダウンロードしたファイルmediatomb-0.12.1.tar.gzをコピー
#cp mediatomb-0.12.1.tar.gz /usr/src/redhat/SOURCES/
#cp mediatomb-0.12.1.tar.gz /root/rpmbuild/SOURCES/
9. mediatomb.specをバックアップ待避
#cp /usr/src/redhat/SPECS/mediatomb.spec /usr/src/redhat/SPECS/mediatomb_orignal.spec
10. mediatomb.specのBuildRequiresのモジュール定義を編集
変更後
BuildRequires: sqlite-devel, mysql-devel, libexif-devel, taglib-devel, file, js-devel, zlib-devel, expat-devel
11. MediaTombのRPMを作成する
#rpmbuild -bb --clean /usr/src/redhat/SPECS/mediatomb.spec
※ここでもしビルド依存性の失敗でエラーが発生した場合、
必要なモジュールをすべてyumインストールすればよい。
その後、再度11.のRPM作成を実行。
ex) taglib-devel is needed by ... とエラー表記されている場合
#yum -y install taglib-devel
12.MediaTombのRPMインストール
#yum -y localinstall --nogpgcheck /root/rpmbuild/RPMS/x86_64/mediatomb-0.12.1-1.el6.x86_64.rpm
13.後始末(インストールに使用したファイルを削除)
#rm -f /root/rpmbuild/RPMS/x86_64/mediatomb-*
#rm -rf mediatomb-0.12.1
#rm -f mediatomb-0.12.1.tar.gz
14. 2. 標準リポジトリ設定ファイル編集のpriority記述をコメントアウトする。(重要)
15. ファイアウォールのポート50500 TCP/UDP許可する。
■MySQLデータベース作成
1. MySQLにログイン
#mysql -u root -p
2. mediatombデータベースを作成
mysql > create database mediatomb;
3.mediatombユーザ作成
mysql > grant all privileges on media tomb.* to mediatomb@localhost identified by 'パスワード';
4. MySQLログアウト
mysql > exit;
5.mediatombデータベース初期設定
#mysql -p mediatomb < /usr/share/mediatomb/mysql.sql
Enter password:
■Mediatomb設定・稼働開始
1. mediatomb設定ファイルを待避
#cp /etc/mediatomb.conf /etc/mediatomb_original.conf
2.MediaTombの設定ファイルを変更する
#vi /etc/mediatomb.conf
↓ ----- ここから設定ファイル本文
3. config.xmlを作成するため起動し、即終了させる。
#service mediatomb start; service mediatomb stop
4. MegiaTombのconfig.xmlファイルを編集する。
#vi /etc/mediatomb/config.xml
↓ ----- ここから設定ファイル本文
<!-- ブラウザアクセス時にログイン認証する -->
<accounts enabled="yes" session-timeout="30">
<account user="shuji" password="shujinewhara19805587"/>
</accounts>
<!-- ここまで -->
5. Mediatomb起動
#service mediatomb start
6. Mediatombサービス自動起動設定
#chkconfig mediatomb on
■MediaTombサーバで公開するファイルを選択
1. ブラウザのアドレスバーからMediaTombにアクセス
http://サーバのアドレス:50500
2. ログイン画面が表示される
3. ユーザ名・パスワードを入力
※MegiaTombのconfig.xmlファイルのaccountタグ設定と同一を入力する
4. MediaTombの画面が表示される
5. 公開するファイルを選択
左上のFileSystemをクリックする。
サーバのディレクトリツリーが表示される。
任意のディレクトリまたはファイルを選択し、右上のプラスボタンで追加する。
6. 選択したファイルが公開されているか確認する。
左上のDataBaseをクリックする。
追加したディレクトリのツリーと、
写真を追加したらPhotos, 動画はMovieなどの表示がされていればOK.
ちなみに、公開したファイルを左クリックするとダウンロードできます。
■MediaTombクライアントで公開ファイルを閲覧
iPhoneやiPadで DLNAアプリをインストールして閲覧できます。
確認したところ、まだあまり使いやすいアプリはないみたいです・・・。
またなぜかサーバ側のMediaTombを再起動しないと、クライアント側で、
MediaTombの検索に失敗してしまうみたい・・・。
サーバ側の問題!?またこの件については解決次第追記します。
DLNAサーバとは、写真や動画をネットワーク経由でストリーミング配信するもの。
このサーバを設置すると、iPhoneやiPad、パソコンでファイルを見ることができる。
その備忘録。
< 注意 >
mediatombをyumでインストールするためには、まずRPMforgeリポジトリを追加する
必要があるらしいが、これが結構厄介。
priority=1と設定する必要があるが、mediatombインストール後、mediatombの設定変更前に
priority=1はコメントアウトするようにしたほうがよい。
こうしないと、それ以後、yumを使ってupdateやinstallができなくなる。
また、mediatombインストールし設定変更後に上記priority=1をコメントアウトして、
yum updateを行うと折角設定したものが、初期化されてしまい、また設定し直し・・・
ということになりかねない。
■RPMfrogeリポジトリ導入
注意!! CentOS6の場合は、以下だがCentOS5の場合は少し違うので注意。
1. yumのplugin-prioritiesをインストールする。
#yum -y install yum-plugin-priorities
2. 標準リポジトリ設定ファイル編集
#vi /etc/yum.repos.d/CentOS-Base.repo
↓ ----- ここから設定ファイル本文
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
priority=1
↑ ----- ここまで設定ファイル本文3. rpmforgeの最新版をダウンロードする。
注意!! 最新版を確認し、URL指定すること。
#wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
4. RMPForgeリポジトリをインストールする
#rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm
5.ダウンロードしたファイルを削除する
#rm -f rpmforge-release-*
6.rpmforge-releaseをアップデートする
#yum -y update rpm forge-release
■DLNAサーバソフトmediatombインストール
1. mediatombをダウンロード
本家サイト http://mediatomb.cc/pages/download#source_codeから最新のバージョンを確認。
(2012.08.21時点の最新をダウンロード)
#wget http://jaist.dl.sourceforge.net/sourceforge/mediatomb/mediatomb-0.12.1.tar.gz
2. ダウンロードしたMediatombパッケージを展開
#tar zxvf mediatomb-0.12.1.tar.gz
3. /usr/src/にredhatディレクトリを作成
#mkdir /usr/src/redhat
4. /usr/src/redhatにSPECSディレクトリを作成
#mkdir /usr/src/redhat/SPECS
5. /usr/src/redhatにSOURCEディレクトリを作成
#mkdir /usr/src/redhat/SOURCE
6. 権限を付与
#chmod 755 -R /usr/src/redhat
7. ダウンロードしたファイル mediatomb.specをコピー
#cp mediatomb-0.12.1/mediatomb.spec /usr/src/redhat/SPECS/
8.ダウンロードしたファイルmediatomb-0.12.1.tar.gzをコピー
#cp mediatomb-0.12.1.tar.gz /usr/src/redhat/SOURCES/
#cp mediatomb-0.12.1.tar.gz /root/rpmbuild/SOURCES/
9. mediatomb.specをバックアップ待避
#cp /usr/src/redhat/SPECS/mediatomb.spec /usr/src/redhat/SPECS/mediatomb_orignal.spec
10. mediatomb.specのBuildRequiresのモジュール定義を編集
変更前
BuildRequires: sqlite-devel, mysql-devel, libexif-devel, taglib-devel, file-devel, js-devel, zlib-devel
変更後
BuildRequires: sqlite-devel, mysql-devel, libexif-devel, taglib-devel, file, js-devel, zlib-devel, expat-devel
11. MediaTombのRPMを作成する
#rpmbuild -bb --clean /usr/src/redhat/SPECS/mediatomb.spec
※ここでもしビルド依存性の失敗でエラーが発生した場合、
必要なモジュールをすべてyumインストールすればよい。
その後、再度11.のRPM作成を実行。
ex) taglib-devel is needed by ... とエラー表記されている場合
#yum -y install taglib-devel
12.MediaTombのRPMインストール
#yum -y localinstall --nogpgcheck /root/rpmbuild/RPMS/x86_64/mediatomb-0.12.1-1.el6.x86_64.rpm
13.後始末(インストールに使用したファイルを削除)
#rm -f /root/rpmbuild/RPMS/x86_64/mediatomb-*
#rm -rf mediatomb-0.12.1
#rm -f mediatomb-0.12.1.tar.gz
14. 2. 標準リポジトリ設定ファイル編集のpriority記述をコメントアウトする。(重要)
15. ファイアウォールのポート50500 TCP/UDP許可する。
■MySQLデータベース作成
1. MySQLにログイン
#mysql -u root -p
2. mediatombデータベースを作成
mysql > create database mediatomb;
3.mediatombユーザ作成
mysql > grant all privileges on media tomb.* to mediatomb@localhost identified by 'パスワード';
4. MySQLログアウト
mysql > exit;
5.mediatombデータベース初期設定
#mysql -p mediatomb < /usr/share/mediatomb/mysql.sql
Enter password:
■Mediatomb設定・稼働開始
1. mediatomb設定ファイルを待避
#cp /etc/mediatomb.conf /etc/mediatomb_original.conf
2.MediaTombの設定ファイルを変更する
#vi /etc/mediatomb.conf
↓ ----- ここから設定ファイル本文
MT_INTERFACE="NOT_SET"
↓
MT_INTERFACE="eth0" ← ネットワークインタフェース名を指定
↑----- ここまで設定ファイル本文
#service mediatomb start; service mediatomb stop
4. MegiaTombのconfig.xmlファイルを編集する。
#vi /etc/mediatomb/config.xml
↓ ----- ここから設定ファイル本文
<!-- ブラウザアクセス時にログイン認証する -->
<accounts enabled="yes" session-timeout="30">
<account user="shuji" password="shujinewhara19805587"/>
</accounts>
<!-- ここまで -->
<storage>
<!--sqliteを無効化-->
<sqlite3 enabled="no">
<database-file>mediatomb.db</database-file>
</sqlite3>
<!--mysql有効化-->
<mysql enabled="yes">
<host>localhost</host>
<username>mediatomb</username>
<!--MySQL mediatombユーザのパスワードを指定-->
<password>パスワード</password>
<database>mediatomb</database>
</mysql>
</storage>
<!--PS3を使う人はここをyes に-->
<protocolInfo extend="yes"/><!-- For PS3 support change to "yes" -->
<import hidden-files="no">
<filesystem-charset>UTF-8</filesystem-charset>
<metadata-charset>CP932</metadata-charset>
<extension-mimetype ignore-unknown="no">
<map from="jpg" to="image/jpeg"/>
<map from="jpeg" to="image/jpeg"/>
<map from="gif" to="image/gif"/>
<map from="png" to="image/png"/>
<map from="m4v" to="video/mp4"/>
<map from="mp4" to="video/mp4"/>
<map from="mpg" to="video/mpeg"/>
<map from="mpeg" to="video/mpeg"/>
<map from="mp3" to="audio/mpeg"/>
<map from="ogg" to="application/ogg"/>
<map from="asf" to="video/x-ms-asf"/>
<map from="asx" to="video/x-ms-asf"/>
<map from="wma" to="audio/x-ms-wma"/>
<map from="wax" to="audio/x-ms-wax"/>
<map from="wmv" to="video/x-ms-wmv"/>
<map from="wvx" to="video/x-ms-wvx"/>
<map from="wm" to="video/x-ms-wm"/>
<map from="wmx" to="video/x-ms-wmx"/>
<map from="m3u" to="audio/x-mpegurl"/>
<map from="pls" to="audio/x-scpls"/>
<map from="flv" to="video/x-flv"/>
<!-- Uncomment the line below for PS3 divx support -->
<!--PS3でdivX対応させる場合はここをコメントアウトをはずす-->
<map from="avi" to="video/divx"/>
<!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->
<!-- <map from="avi" to="video/avi"/> -->
</extension-mimetype>
↑ ----- ここまで設定ファイル本文
5. Mediatomb起動
#service mediatomb start
6. Mediatombサービス自動起動設定
#chkconfig mediatomb on
■MediaTombサーバで公開するファイルを選択
1. ブラウザのアドレスバーからMediaTombにアクセス
http://サーバのアドレス:50500
2. ログイン画面が表示される
3. ユーザ名・パスワードを入力
※MegiaTombのconfig.xmlファイルのaccountタグ設定と同一を入力する
4. MediaTombの画面が表示される
5. 公開するファイルを選択
左上のFileSystemをクリックする。
サーバのディレクトリツリーが表示される。
任意のディレクトリまたはファイルを選択し、右上のプラスボタンで追加する。
6. 選択したファイルが公開されているか確認する。
左上のDataBaseをクリックする。
追加したディレクトリのツリーと、
写真を追加したらPhotos, 動画はMovieなどの表示がされていればOK.
ちなみに、公開したファイルを左クリックするとダウンロードできます。
■MediaTombクライアントで公開ファイルを閲覧
iPhoneやiPadで DLNAアプリをインストールして閲覧できます。
確認したところ、まだあまり使いやすいアプリはないみたいです・・・。
またなぜかサーバ側のMediaTombを再起動しないと、クライアント側で、
MediaTombの検索に失敗してしまうみたい・・・。
サーバ側の問題!?またこの件については解決次第追記します。
以上
2012年8月21日火曜日
内部向DNSサーバ
自宅サーバを用意したものの、LAN内からドメインでのサイトアクセスができない。
coregaのルータを使用しているときは何も気にせずアクセスできていたが、
NECのAtermにかえてからできなくなった。
内部向けDNSサーバを構築することで、内部からでもwwwアクセスできるらしい。そのときの備忘録。
なお、構築に関して、こちらのサイトを参考にさせていただきました。
とても参考になりました。
http://centossrv.com/bind.shtml
ホスト名:websaba.com
内部IP:192.168.0.20
DNSソフト : BIND
内部向けDNSサーバとして構築し、外部向け設定は省略する。(※1)
すべての操作はrootで行う。
#は、rootユーザでの操作を意味する。
朱色はコメントアウト箇所
赤色は追加箇所
青色は変更箇所
注意点として、
設定ファイルの"}"のあとは、";"(セミコロン)が必要なので注意!
1. BIND一連のソフトをインストールする
#yum -y install bind bind-chroot caching-nameserver
2. chroot化(※2)のためスクリプトを作成する。
#vi bind-chroot-admin
↓ ----- ここからスクリプト本文
#!/bin/sh
# bind-chroot install check
rpm -q bind-chroot > /dev/null 2>&1
[ $? -ne 0 ] && echo bind-chroot not install && exit 1
# bind-chroot enabled
sed -i '/^ROOTDIR=/d' /etc/sysconfig/named
echo ROOTDIR=/var/named/chroot >> /etc/sysconfig/named
# file copy
filelist=`mktemp`
rpm -ql bind|grep ^/etc >> ${filelist}
rpm -ql bind|grep ^/var >> ${filelist}
for file in `cat ${filelist}`
do
# directory make
if [ -d ${file} ]; then
DIRNAME=/var/named/chroot${file}
[ ! -d ${DIRNAME} ] && mkdir -p ${DIRNAME}
fi
# file copy
if [ -f ${file} ]; then
DIRNAME=/var/named/chroot`dirname ${file}`
[ ! -d ${DIRNAME} ] && mkdir -p ${DIRNAME}
/bin/cp -a ${file} ${DIRNAME}
fi
done
rm -f ${filelist}
chown named:named /var/named/chroot/var/named/data
chmod 770 /var/named/chroot/var/named/data
chown named:named /var/named/chroot/var/named/dynamic
echo "Finished."
exit
↑ ----- ここまでスクリプト本文
3. chrootスクリプト(2.で作成したスクリプト)を実行する
#sh bind-chroot-admin
#cp /var/named/chroot/etc/named.conf /var/named/chroot/etc/named_original.conf
5. BIND設定ファイル書き換える。
#vi /var/named/chroot/etc/named.conf
↓ ----- ここからBIND設定ファイル本文
options {
#listen-on port 53 { 127.0.0.1; };
#listen-on-v6 port 53 { ::1; };
version "unknown"; ← bindのバージョン情報の非表示化
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
#サーバー及び、サーバーと同じネットワーク内のホストからの問合せのみ許可する。
allow-query { localhost; localnets; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
forwarders{
#ルータ経由の場合は、ルータのアドレスを設定する
192.168.0.1;
#プロバイダのDNSサーバを設定する ex)フレッツ東日本の場合
220.210.194.67;220.210.194.68;};
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
#error (connection refused) resolvingエラーログの出力抑止
category lame-servers { null; };
};
#内部向け設定
view "internal" {
match-clients { localnets; };
match-destinations { localnets; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.websaba.com.zone";
};
↑ ----- ここまでBIND設定ファイル
6.内部向けDNS用のゾーン定義ファイルを作成する
#vi /var/named/chroot/etc/named.websaba.com.zone
↓ ----- ここから設定ファイル本文
zone "websaba.com" { type master; file "websaba.com.db"; }; zone "0.168.192.in-addr.arpa" { type master; file "0.168.192.in-addr.arpa.db"; };↑ ----- ここまで設定ファイル本文
7. IPv4のみ有効にする(error network unreachable resolvingエラーログの出力抑制)
#echo OPTIONS="-4" >> /etc/sysconfig/named
8. ルートゾーン最新化
#dig . ns @198.41.0.4 +bufsize=1024 > /var/named/chroot/var/named/named.ca
9. ルートゾーン自動更新スクリプト作成
#vi named.root_update
↓ ----- ここからスクリプト本文
#!/bin/bash
new=`mktemp`
errors=`mktemp`
dig . ns @198.41.0.4 +bufsize=1024 > $new 2> $errors
if [ $? -eq 0 ]; then
sort_new=`mktemp`
sort_old=`mktemp`
diff_out=`mktemp`
sort $new > $sort_new
sort /var/named/chroot/var/named/named.ca > $sort_old
diff --ignore-matching-lines=^\; $sort_new $sort_old > $diff_out
if [ $? -ne 0 ]; then
(
echo '-------------------- old named.root --------------------'
cat /var/named/chroot/var/named/named.ca
echo
echo '-------------------- new named.root --------------------'
cat $new
echo '---------------------- difference ----------------------'
cat $diff_out
) | mail -s 'named.root updated' root
cp -f $new /var/named/chroot/var/named/named.ca
chown named. /var/named/chroot/var/named/named.ca
chmod 644 /var/named/chroot/var/named/named.ca
/etc/rc.d/init.d/named restart > /dev/null
fi
rm -f $sort_new $sort_old $diff_out
else
cat $errors | mail -s 'named.root update check error' root
fi
rm -f $new $errors
↑ ----- ここまでスクリプト本文
10. ルートゾーン自動更新スクリプトの実行権限を変更
#chmod 700 named.root_update
11. ルートゾーン自動更新スクリプト自動実行 (月次実行)
#cp named.root_update /etc/cron.monthly
12.内部向け正引きゾーンデータベース作成
#vi /var/named/chroot/var/named/websaba.com.db
↓ ----- ここから設定ファイル本文
$TTL 86400
@ IN SOA websaba.com. root.websaba.com.(
2011062001 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS websaba.com.
IN MX 10 websaba.com.
@ IN A 192.168.1.20 ← サーバーのプライベートIPアドレスを指定(websaba.com用)
* IN A 192.168.1.20 ← サーバーのプライベートIPアドレスを指定(*.websaba.com用)
↑ ----- ここまで設定ファイル本文
13.内部向け逆引きゾーンデータベース作成#vi /var/named/chroot/var/named/0.168.192.in-addr.arpa.db
↓ ----- ここから設定ファイル本文
$TTL 86400
@ IN SOA websaba.com. root.websaba.com.(
2011062001 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS websaba.com.
20 IN PTR websaba.com. ← 行先頭にサーバのLANの最下位アドレスを指定すること
↑ ----- ここまで設定ファイル本文
14.bind再起動
#/etc/rc.d/init.d/named restart
or
#service named restart
#service named restart
15. ルータの53番ポートをTCP/UDP共に解放する。
ここはルータ毎の設定によるので、詳細は省略。
16. iptablesでファイアウォール構築している場合は、53番を解放する。
17. 自宅内のパソコンのDNS設定を変更する
DNSサーバのIPが192.168.0.20
ルータのIPが192.168.0.1
の場合、
DNSに上記IPを割り当てればよい。
結果、自宅内部からwwwドメインで自分のサイトにアクセスできるようになった。
(※1)
著者の環境は固定IPではないため、内部向けのDNSサーバとする。
固定IPでなければ外部向けDNSサーバは構築できないようです。
(※2)
chrootとは、もしサーバが乗っ取られた場合にそのパス以外にアクセスできない
ようにする機構のこと。
ファイアウォールをコマンドで実行する
ファイアウォールをコマンドで実行する方法の備忘録。
iptablesが正体。
IPv6用にip6tablesもあるのでそれも同時に行う方がベター。
ルートユーザで行うこと。
■iptablesの起動
#/etc/rc.d/init.d/iptables restart
■ip6tablesの起動
#/etc/rc.d/init.d/ip6tables restart
iptablesが正体。
IPv6用にip6tablesもあるのでそれも同時に行う方がベター。
ルートユーザで行うこと。
■iptablesの起動
#/etc/rc.d/init.d/iptables restart
■ip6tablesの起動
#/etc/rc.d/init.d/ip6tables restart
■iptables ip6tablesの自動起動設定
#chkconfig iptables on
#chkconfig ip6tables on
#chkconfig iptables on
#chkconfig ip6tables on
■自動起動設定の確認
#chkconfig --list iptables
#chkconfig --list ip6tables
※3 4 5 が:onとなっていればよい
確認には、別な方法もある
chkconfig | grep iptables
chkconfig | grep ip6tables
以上
2012年7月21日土曜日
CSVファイルをMySQLに取り込む
ソフトで毎回MySQL DBをオープンして登録するより、
ファイルに一気に出力し、そのあと一気にMySQLに登録させる方が早いことに気づいた。
その備忘録。
MySQL コマンド
load data local infile "CSVファイルのパス" into table テーブル名 fields terminated by ','
使用例)
CSVファイルは、/homeディレクトリ直下にData.csvがある。
CSVファイルは、,で区切られている。
登録するテーブルは、DataTableとする。
mysql > load data local infile /home/Data.csv into table DataTable fields terminated by ','; [ENTER]
※注意点
CSVファイルの,区切りで区切られている順に登録テーブルの列が定義されていること。
CSVファイルの文字列は、"" または '' で囲まれていないこと。
もし、""で囲まれている場合は、以下をSQLの最後に追加すればよい。
enclosed by '"';
以上
ファイルに一気に出力し、そのあと一気にMySQLに登録させる方が早いことに気づいた。
その備忘録。
MySQL コマンド
load data local infile "CSVファイルのパス" into table テーブル名 fields terminated by ','
使用例)
CSVファイルは、/homeディレクトリ直下にData.csvがある。
CSVファイルは、,で区切られている。
登録するテーブルは、DataTableとする。
mysql > load data local infile /home/Data.csv into table DataTable fields terminated by ','; [ENTER]
※注意点
CSVファイルの,区切りで区切られている順に登録テーブルの列が定義されていること。
CSVファイルの文字列は、"" または '' で囲まれていないこと。
もし、""で囲まれている場合は、以下をSQLの最後に追加すればよい。
enclosed by '"';
以上
登録:
投稿 (Atom)



