syokunin のすべての投稿

php-4.4.4インストール

事前に必要なパッケージインストール

apt-get update
apt-get install flex \
apache-devel \
bzip2-devel \
libmcrypt libmcrypt-devel \
ncurses ncurses-devel \
openssl-devel \
libjpeg-devel zlib-devel libpng-devel \
t1lib-devel \
imap imap-devel \
openldap openldap-devel \
db4-devel

アーカイブダウンロード
展開
展開したディレクトリへ移動

===================================
MysqlとPostgresqlはソースから
/usr/local/mysql,/usr/local/pgsql/
にインストールしている
===================================

./configure \
–with-mysql=/usr/local/mysql \
–with-pgsql=/usr/local/pgsql/ \
–enable-bcmath \
–enable-calendar \
–enable-dio \
–enable-exif \
–enable-ftp \
–enable-mbregex \
–enable-mbstring \
–enable-pcntl \
–enable-shmop \
–enable-sockets \
–enable-sysvmsg \
–enable-sysvsem \
–enable-sysvshm \
–enable-wddx \
–enable-zend-multibyte \
–prefix=/usr \
–with-apxs \
–with-bz2 \
–with-config-file-path=/etc \
–with-gettext \
–with-iconv \
–with-libmbfl \
–with-mcrypt \
–with-mime-magic \
–with-mod_charset \
–with-ncurses \
–with-openssl \
–with-gd –with-jpeg-dir=/usr –with-zlib-dir=/usr \
–enable-gd-jis-conv \
–enable-gd-native-ttf \
–with-t1lib \
–with-ttf \
–with-ldap \
–enable-dba \
–with-db4 \
–with-flatfile \
–with-inifile

make
make install

Apache再起動
/etc/rc.d/init.d/httpd restart

Samba 別セグメントからアクセス

以下のPortをあける
UDP 137
UDP 138
TCP 139

これでWindowsのコンピュータ検索でサーバーIPを検索するとアクセスできる。

だれでもアクセスできるのはまずいので制限かける。

globalセクション
hosts allow にアクセスさせるIPを指定。
security = user(要認証となる)

共有ディレクトリのセクション
guest only = no
guest ok = no

(パスワード設定)
Windowsユーザーと同じユーザーをLinux側に作成。

例)
useradd test
passwd test
smbpasswd -a test
パスワード要求されるのでWindowsと同じパスワードを入力。

以上

Postfix 特定ドメイン・IPアドレス受信拒否

main.cf に以下を記述。
smtpd_client_restrictions=permit_mynetworks,check_client_access hash:/etc/postfix/reject_list,permit

受信拒否リスト作成。
/etc/postfix/reject_list というファイルを作成

hoge.com REJECT
123.123.123.123 REJECT

といった感じで記述。
対象のドメイン・IPアドレスを受信拒否する。

reject_listをDB形式に変換。
/usr/sbin/postmap /etc/postfix/reject_list

Postfixをリロードして終了。
/usr/sbin/postfix reload

SSHの公開鍵認証

■鍵作成
以下3種類のうちからクライアントの対応状況などで選択。
安全度 SSH Ver.1 RSA < SSH Ver.2 RSA < SSH Ver.2 DSA らしい。

SSH Ver.1 RSA
ssh-keygen -t rsa1

SSH Ver.2 RSA
ssh-keygen -t rsa

SSH Ver.2 DSA
ssh-keygen -t dsa

クライアントUTF-TeraTerm ProはDSAに対応してるので、DSAを例とする。

※鍵を使用するユーザーで作業
$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/******/.ssh/id_dsa):
※そのままenterでディフォルトのファイル保存先
Enter passphrase (empty for no passphrase):[パスフレーズ]
Enter same passphrase again:[パスフレーズ]

id_dsa(秘密鍵)
id_dsa.pub(公開鍵)
が生成される。

$ mv id_dsa.pub authorized_keys
$ chmod 600 authorized_keys
などとしてファイル名とパーミッション変更

■クライアントへ鍵導入
id_dsaをなにかでコピーしてTeraTermがインストールされてるディレクトリへ配置して、ログイン時使用する。
※ここで、実際ログインできることを確認しておく。

■SSHのユーザ認証を変更
sshd_confに下記を追記。
PasswordAuthentication no
# /etc/rc.d/init.d/sshd restart
などで再起動

以上で完了。

=======================================
以下はクライアントマクロファイルの例

■マクロファイル作成
(マクロ言語補足)
connect: 接続
strconcat: 変数に文字列付けたし
wait: Hostからの受信待ち
sendln: Clientから送信

(以下記述例)
;各種値設定
Host = ‘host_name’
User1 = ‘user_name’
Password1 = ‘password’
Ini = ‘TERATERM.INI’
KeyFile = ‘keyfile’;
Prompt1 = ‘$’
PromptPW = ‘Password:’
Df = ‘df’

;接続コマンド作成
;Iniはなくてもよい。
;Hostごとにマクロを複数作るときなど
;マクロごとに背景色の違うTERATERM.INIを指定し、区別するといいかも
;/2のところはssh2が使えなければ/1とする
Cmd = ”
strconcat Cmd Host
strconcat Cmd ‘ /ssh /2 /auth=publickey’
strconcat Cmd ‘ /user=’
strconcat Cmd User1
strconcat Cmd ‘ /passwd=’
strconcat Cmd Password1
strconcat Cmd ‘ /keyfile=’
strconcat Cmd KeyFile
strconcat Cmd ‘ /f=’
strconcat Cmd Ini
;接続
connect Cmd

;対話的処理スタート(dfコマンド発行)
wait Prompt1
sendln Df

※このマクロファイルをttpmacro.exeと同じフォルダにfilename.ttlなどとして保存する。

■マクロショートカットへ関連付け
ttpmacro.exeのショートカットをどこかに作る
プロパティのリンク先に
引数としてマクロファイル名を記述
(記述例)
“C:\Program Files\teraterm\ttpmacro.exe” “filename.ttl”

※鍵を使わない場合のマクロはこちら

FTP自動実行(cron&expect)

基本的な流れ
spawnでftp起動
expectで応答待ち
sendで入力文字列送信
※expectオプション「-re」は正規表現利用時

以下参考スクリプト
(cronなどで実行する)

#!/usr/bin/expect

set host “hostname”
set user “username”
set pass “password”
set file “filename”
set prompt “Name.*”
set lcd_cmd “lcd /local/to/dir”

spawn ftp $host;

expect -re “$prompt”
send “$user\r”
expect “Password:”
send “$pass\r”
expect “ftp>”
send “$lcd_cmd\r”
expect “ftp>”
send “get $file\r”
expect “ftp>”
send “bye\r”

interact
exit

====================================
ディフォルトのタイムアウトは10秒。
大きいファイルを転送する場合などは
expect -timeout -1 “ftp>”
などとしてタイムアウトしないようにする。
(任意の値(秒数)も設定可能)