Category Archives: Source

Linuxのchmodコマンドを学習する

【コマンドの例】
[cxc@cxcserver ~]$ ll cxc.txt #現在のステータスが表示される
-rw-rw-r– 1 cxc cxc 63 Jan 2 16:48 cxc.txt
[cxc@cxcserver ~]$ chmod 777 cxc.txt #8進法でアクセス権限を変更
[cxc@cxcserver ~]$ ll cxc.txt
-rwxrwxrwx 1 cxc cxc 63 Jan 2 16:48 cxc.txt
[cxc@cxcserver ~]$ chmod a-x cxc.txt
[cxc@cxcserver ~]$ ll cxc.txt
-rw-rw-rw- 1 cxc cxc 63 Jan 2 16:48 cxc.txt
[cxc@cxcserver ~]$ chmod g-w cxc.txt
[cxc@cxcserver ~]$ ll cxc.txt
-rw-r–rw- 1 cxc cxc 63 Jan 2 16:48 cxc.txt
[cxc@cxcserver ~]$

swfObjectを使ってページにflashを埋め込む方法

1.SWFObject v1.5 の説明:
var so = new SWFObject(‘myflash.swf’, ‘myflash’, ‘655’, ‘133’, ‘8’, ‘#FFFFFF’);
so.addParam(‘wmode’, ‘transparent’);
so.write(‘flashcontent’);

2.SWFObject v2.1の説明:
swfobject.addDomLoadEvent(function() {
var att = { data:”myflash.swf”, width:”655″, height:”133″ };
var par = { wmode:”transparent”, flashvers: “8”, bgcolor: “#FFFFFF”};
var id = “flashcontent”;
var myObject = swfobject.createSWF(att, par, id);
});

LinuxシステムにリモートダイヤルVPN(pptpd)を構築

LinuxシステムにリモートダイヤルVPN(pptpd)を構築

1.依存関係パッケージをインストール
yum install ppp -y

2.pptpdサービスパッケージをダウンロード
wget ftp://rpmfind.net/linux/epel/6/x86_64/pptpd-1.4.0-3.el6.x86_64.rpm
rpm -ivh pptpd-1.4.0-3.el6.x86_64.rpm

3.配置ファイルを修正
3.1 vim /etc/ppp/options.pptpd –DNSサーバの設定
name pptpd   –pptpdサービスを指定
ms-dns 8.8.8.8
ms-dns 8.8.4.4
3.2 vim /etc/pptpd.conf
ppp /usr/sbin/pppd –この行のコメントを解除
localip 154.87.2.164,154.87.87.67,154.87.85.73 –外部IPを書いて、3個VPNを構築
remoteip 192.168.0.1-10,192.168.0.20 –VPNサービスを接続する割り当てクライアントのIPアドレス
3.3 vim /etc/ppp/chap-secrets –VPNログインユーザー名

3.4 ログインユーザ名         サービス名 ログインパスワード  割り当てIP
test1 pptpd startnews24 *
test2 pptpd startnews24 *
test3 pptpd startnews24 192.168.0.9
3.5 pptpfが再起動
/etc/init.d/pptpd restart

システムのテキストファイルから文字列を検索する方法

処理の流れ
1.findコマンドである範囲内のすべてのファイルを見つける
2.findサブコマンドにfileコマンドを利用してファイルの種類を判断する,
テキストファイルをフィルタリング
3.テキストから文字列をフィルタリング
コマンド1
find / -type f -fstype ext4 -exec sh -c \
‘file=”{}”;type=$(file $file);[[ $type =~ ” text” ]] && echo $file’ \; \
|xargs grep abcdef

コマンド2
find / -type f -fstype ext4 -user root -exec sh -c \
‘file=”{}”;type=$(file $file);[[ $type =~ ” text” ]] && echo $file’ \; \
|xargs grep abcdef

コマンド3

find / -type f -fstype ext4 -mtime -60 -exec sh -c \
‘file=”{}”;type=$(file $file);[[ $type =~ ” text” ]] && echo $file’ \; \
|xargs fgrep -l abcdef

 

UbuntuでLAMP環境の合理化、高速化、最適化などを設定する対策

1.php加速
apt-get install php-apc

2.php5-mysqlのモジュールを合理化する
cd /etc/php5/conf.d/
mv mysqli.ini mysqli.ini.bak
mv pdo_mysql.ini pdo_mysql.ini.bak
mv pdo.ini pdo.ini.bak

3.apacheとphpのバージョン情報を隠す
sed -i ‘s/ServerTokens OS/ServerTokens Prod/g’ /etc/apache2/conf.d/security
sed -i ‘s/ServerSignature On/ServerSignature Off/g’ /etc/apache2/conf.d/securitysed -i ‘/expose_php/{s/On/Off/g}’ /etc/php5/apache2/php.ini

4.mod_securityをインストール
mod_security       //セキュリティモジュール,さまざまな攻撃を防ぐ
apt-get install libapache-mod-security
cd /etc/modsecurity/
cp modsecurity.conf-recommended modsecurity.conf

5.圧縮とブラウザのキャッシュを設定
役割:データ圧縮でスループットを向上させる,ブラウザのキャッシュを設定してリクエスト数を経る,apacheパフォーマンスを向上させることができる

設定内容:

cat /etc/apache2/httpd.conf
<IfModule mod_deflate.c>
<Location />
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has same problems…
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won’t work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don’t compress images and other
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
AddOutputFilterByType DEFLATE application/x-javascript
# Make sure proxies don’t deliver the wrong content
#Header append Vary User-Agent env=!dont-vary
</Location>
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/* “access plus 1 month”
ExpiresByType text/css “access plus 1 month”
ExpiresByType text/javascript “access plus 1 month”
ExpiresByType application/x-javascript “access plus 1 month”
</IfModule>
<IfModule mod_headers.c>
Header unset Server
Header unset X-Powered-By
</IfModule>

 

zabbixでsendEmailを使用してアラームメッセージを送信する

1.sendEmailをダウンロードしてインストールする
ダウンロードURL:
http://caspian.dotconf.net/menu/Software/SendEmail/
sendEmailのインストール方法:
# tar xvzf sendEmail-v1.56.tar.gz
# cp sendEmail-v1.56/sendEmail /usr/local/bin/
# chmod +x /usr/local/bin/sendEmail

2.zabbixサーバー側メールを送信するスクリプト

 2.1 /etc/zabbix/alertscriptsを作成
# mkdir -p /etc/zabbix/alertscripts
# chown -R zabbix:zabbix /etc/zabbix/alertscripts

 2.2 /etc/zabbix/zabbix_server.confを修正
AlertScriptsPath=/etc/zabbix/alertscripts

 2.3 zabbix serverが再起動

 2.4 メールを送信するスクリプトを作成
# vim /etc/zabbix/alertscripts/SendEmail.sh

#!/bin/bash
SMTP_server=’smtp.xXX.com’ # SMTPサーバ
username=’zabbix@XXX.com’ # ユーザ名
password=’zabbix_StartNews24′ # パスワード
from_email_address=’zabbix@XXX.com’ # 送信者のメールアドレス
to_email_address=”$1″ # 受信者のEmail,zabbixの第一パラメータ
message_subject_utf8=”$2″ # メール件名,zabbixの第2パラメータ
message_body_utf8=”$3″ # メール本文,zabbixの第3パラメータ

#件名文字化けを防ぐ
message_subject_shift-jis=iconv -t shift-jis -f UTF-8 << EOF
$message_subject_utf8
EOF

[ $? -eq 0 ] && message_subject=”$message_subject_shift-jis” || message_subject=”$message_subject_utf8″

# メールの内容はshift-jisで表示される
message_body_shift-jis=iconv -t shift-jis -f UTF-8 << EOF
$message_body_utf8
EOF

[ $? -eq 0 ] && message_body=”$message_body_shift-jis” || message_body=”$message_body_utf8″

# メールを送信
sendEmail=’/usr/local/bin/sendEmail’
$sendEmail -s “$SMTP_server” -xu “$username” -xp “$password” -f “$from_email_address” -t “$to_email_address” -u “$message_subject” -m “$message_body” -o message-content-type=text -o message-charset=shift-jis

# chown zabbix:zabbix /etc/zabbix/alertscripts/SendEmail.sh
# chmod +x /etc/zabbix/alertscripts/SendEmail.sh

3.zabbix管理画面にEmail警告を配置
「Media types」->Type->Script->Script name ->SendEmail.sh

4.zabbix管理画面にactionを定義
4.1 actionを作成
4.2 「Actions」->Default subject->{TRIGGER.STATUS}:{TRIGGER.NAME}{HOST.NAME}
ディフォルトのアラーム内容
警告ホスト:{HOST.NAME}
ホストIP: {HOST.IP}
警告時間:{EVENT.DATE} {EVENT.TIME}
警告レベル:{TRIGGER.SEVERITY}
警告メッセージ:{TRIGGER.NAME}
問題詳細:{ITEM.NAME}:{ITEM.VALUE}
イベントID:{EVENT.ID}

Ubuntuにlampをインストールしてapache+MySQL+php環境を構築した方法

1.ターミナルでLAMPインストールの実行
$ sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql
2.apache環境を設定
2.1 /home/直下「apache/etc」、「apache/www」ディレクトリを作成
$ cd /home/
$ mkdir apache
$ cd /apache
mkdir etc
mkdir www

2.2 /etc/apache2直下の「sites-available/」、「 sites-enabled/」ディレクトリの全てファイルを「/home/apache/etc/」にコピーする
cd /etc/apache2
$ cp -R sites-available /home/apache/etc
$ cp -R sites-enabled /home/apache/etc

2.3 apache2.conf配置ファイルを修正
$ sudo vim /etc/apache2/apache2.conf
# Include the virtual host configurations:
Include /home/apache/etc/sites-enabled/

3.phalconフレームワークをインストール

3.1 gitとphp5-devをインストール
$ sudo apt-get install git-core gcc autoconf
$ sudo apt-get install php5-dev

3.2 phalconをダウンロードしてインストール
$ cd ~/download path/
$ git clone git://github.com/phalcon/cphalcon.git
$ cd cphalcon/build
$ sudo ./install

3.3 php.iniを編集してphpatcon.soを追加
$ sudo vim /etc/php5/apache2/php.ini
extension=phalcon.so #phalcon.so拡張を追加

3.4 phalconルールを追加 .htaccess
$ vim /home/apache/etc/sites-available/プロジェクト名
AllowOverride None Noneを Allへ変更 ;

4.phpmyadminのインストール
4.1 $ cp -R phpmyadmin /home/apache/www/

4.2 $ sudo vim /etc/hosts
127.0.0.1 phpmyadmin
4.3 phpmyadminを編集
$ cd /home/apache/etc/sites-available
$ cp default phpmyadmin
$ vim phpmyadmin
4.4 ServerName phpmyadmin,DocumentRootと<Directory パス>を変更

ServerAdmin webmaster@arkgame.com
ServerName phpmyadmin
DocumentRoot /home/apache/www/phpmyadmin
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/apache/www/phpmyadmin>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
4.5 リンクを作成
$ cd /home/apache/etc/sites-enabled
$ ln -s ../sites-available/phpmyadmin,

 4.6 apacheが再起動
$ sudo apache2ctl graceful;

「ubuntu」にApacheバーチャルホストを設定して複数サイトを運用する

1.phalconバージョンを設定
1.1 phalconをダウンロードして「/home/apache/www/phalcon 」に設定する
$ svn co https://github.com/phalcon/cphalcon/tags/v1.2.3/ext /home/apache/www/phalcon
1.2 phalconをインストール
$ cd /home/apache/www/phalcon
$ sudo ./install
1.3 インストール後確認
$ sudo make test;

2.apache バーチャルホストの設定
2.1 apache2配置ファイルディレクトリの操作
$ cd /etc/apache2
$ sudo vim apache2.conf
 2.2 参照ファイルパスをコメントアウト
例:
#Include sites-enabled/
#Include /home/apache/etc/sites-enabled/

 2.3 追加
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
VirtualDocumentRoot /home/apache/www/%0/
<Directory /home/apache/www/>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

#VirtualDocumentRoot /Users/apple/Documents/www/%0/
ErrorLog “/var/log/apache2/error.vhost.log”
CustomLog “/var/log/apache2/access.vhost.log” common
</VirtualHost>

2.4 SSLを導入
$ sudo a2enmod ssl
証明書を作成
$ sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999

2.5 alias vhost_aliasを導入
$ sudo a2enmod alias
$ sudo a2enmod vhost_alias

2.6 rewrite設定
$ sudo a2enmod rewrite

linuxに「passwd: User not known to the underlying authentication」の解決

linuxにユーザーを作成時下記メッセージが出る
passwd: User not known to the underlying authentication

対策:
1–> $sudo /usr/sbin/pwck
Password:
user adm: directory /var/adm does not exist
user news: directory /etc/news does not exist
user uucp: directory /var/spool/uucp does not exist
user gopher: directory /var/gopher does not exist
user ftp: directory /var/ftp does not exist
user pcap: directory /var/arpwatch does not exist
user avahi-autoipd: directory /var/lib/avahi-autoipd does not exist
user oprofile: directory /home/oprofile does not exist
user sabayon: directory /home/sabayon does not exist
pwck: no changes
2–> $sudo /usr/sbin/pwconv

3–> $sudo passwd ***
passwd: all authentication tokens updated successfully.

linuxにiptablesで特定のポートを別のサーバーへ転送する方法

コマンド下記:
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -I PREROUTING -p tcp –dport 8081 -j DNAT –to xxx.xxx.xxx.xxx
#iptables -t nat -I POSTROUTING -p tcp –dport 8081 -j MASQUERADE
#service iptables save
#service iptables restart