スポンサーサイト

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

SVNサーバー構築

SVNサーバー構築メモ

目的
ローカル環境でSVNを使ったバージョン管理用のサーバーを準備


■事前準備
1、OSのインストール(パーテションはデフォルト、言語は英語)
2、可能なかぎり余分なパッケージはインストールしない
3、IPアドレスは固定を割り振る
4、インストールサービスと初期設定のyum関連のコマンド
yum -y install yum-fastestmirror
yum -y install httpd
yum -y install samba
yum -y install subversion
yum -y update
yum -y install ntp

echo "server -4 ntp.bit-drive.ne.jp" >> /etc/ntp.conf
/etc/rc.d/init.d/ntpd start
chkconfig ntpd on

reboot



■sambaの設定
※ホスト名でアクセス可能にするためにSambaをインストールします。
log保存用ディレクトリの作成
mkdir /home/log

-- smb.confの内容 ここから --
[global]
 dos charset = CP932
 unix charset = UTF-8
 display charset = UTF-8
 workgroup = WORKGROUP
 server string = svn-server
 netbios name = svn-server
 unix password sync = Yes
 password level = 0
 log level = 2
 log file = /home/log/%m %U.log
 max log size = 5000

 browseable = no
 dns proxy = No
 admin users = root
 hosts allow = 192.168., 127.0.0.1
 security = user
 writable = yes

-- smb.confの内容 ここまで --

起動スクリプト(/etc/init.d/smb)の確認
smbdの記述が無いようであれば、下記にの内容に差し替え
smbの再起動で、nmbも再起動できるように、以下の内容に差し替え。


-- /etc/init.d/smbの内容 ここから --
vi /etc/init.d/smb

#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Samba smbd and nmbd daemons \
#              used to provide SMB network services.
#
# pidfile: /var/run/samba/smbd.pid
# pidfile: /var/run/samba/nmbd.pid
# config:  /etc/samba/smb.conf


# Source function library.
if [ -f /etc/init.d/functions ] ; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 1
fi

# Avoid using root's TMPDIR
unset TMPDIR

# Source networking configuration.
. /etc/sysconfig/network

if [ -f /etc/sysconfig/samba ]; then
   . /etc/sysconfig/samba
fi

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1

# Check that smb.conf exists.
[ -f /etc/samba/smb.conf ] || exit 6

RETVAL=0


start() {
        KIND="SMB"
        echo -n $"Starting $KIND services: "
        daemon smbd $SMBDOPTIONS
        RETVAL=$?
        echo
        KIND="NMB"
        echo -n $"Starting $KIND services: "
        daemon nmbd $NMBDOPTIONS
        RETVAL2=$?
        echo
        [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \
           RETVAL=1
        return $RETVAL
}

stop() {
        KIND="SMB"
        echo -n $"Shutting down $KIND services: "
        killproc smbd
        RETVAL=$?
        echo
        KIND="NMB"
        echo -n $"Shutting down $KIND services: "
        killproc nmbd
        RETVAL2=$?
        [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb
        echo ""
        return $RETVAL
}

restart() {
        stop
        start
}

reload() {
        echo -n $"Reloading smb.conf file: "
        killproc smbd -HUP
        RETVAL=$?
        echo
        return $RETVAL
}

rhstatus() {
        status smbd
        RETVAL=$?
        status nmbd
        RETVAL2=$?
        if [ $RETVAL -ne 0 ] ; then
                return $RETVAL
        fi
        if [ $RETVAL2 -ne 0 ] ; then
                return $RETVAL2
        fi
}


# Allow status as non-root.
if [ "$1" = status ]; then
       rhstatus
       exit $?
fi

# Check that we can write to it... so non-root users stop here
[ -w /etc/samba/smb.conf ] || exit 4



case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  reload)
        reload
        ;;
  status)
        rhstatus
        ;;
  condrestart)
        [ -f /var/lock/subsys/smb ] && restart || :
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
        exit 2
esac

exit $?


-- /etc/init.d/smbの内容 ここまで --

servcie smb start
chkconfig smb on



■Subversionの初期設定
1、ApacheとSubversionの連携のためmod_dav_svnする
yum -y install mod_dav_svn

2、暗号化のためのmod_sslもインストール
yum -y install mod_ssl

3、Subversionリポジトリの作成
mkdir /home/svn
svnadmin create --fs-type fsfs /home/svn/project


4、Apache経由でディレクトリ内部を操作できるように、リポジトリディレクトリのパーミッションを変更します。
chown -R apache.apache /home/svn/project

5、Basic認証用のパスワードファイルの作成とユーザーの追加
/usr/bin/htpasswd -c /home/svn/project/.htpasswd user
※既存のパスワードファイルが存在する場合は、『-c』オプションは利用しない

6、subvesion設定ファイルの記述
vi /etc/httpd/conf.d/subversion.conf

<Location '/project'>
    DAV svn
    SVNPath '/home/svn/project'
    AuthType Basic
    AuthName "2gou"
    AuthUserFile '/home/svn/project/.htpasswd'
    Require valid-user
</Location>


7、apacheを起動します
service httpd start
chkconfig httpd on


8、動作確認
WEBブラウザで、http://svn-server/project/
※Macの場合、hostファイルに記入するか、http://IPアドレス/project/で行けます。

後は、SVNクライアントからプロジエクト毎のディレクトリを作ってコミットしていくだけです。
スポンサーサイト

テーマ : Linux
ジャンル : コンピュータ

Linuxで一つのNICに複数のIPを設定する

Linuxで一つのNICに複数のIPを設定する

何でこんな事をするのか?
私の場合は、apacheのバーチャルホストの設定でIPベースの振り分けが必要なケースがありまして、こんな事をしてしまいました。

この場合は、ローカル環境でいくつかのIP振り分け時に便利でしたのでメモ。

まず、一時的に1つのNICに複数のIPを振り分ける方法
ifconfig eth0:0 192.168.1.200
ifconfig eth0:1 192.168.1.201


(RedHatのみ)
ip addr add 192.168.1.200/24 brd 192.168.1.255 dev eth0 label eth0:0
ip addr add 192.168.1.201/24 brd 192.168.1.255 dev eth0 label eth0:1



動作確認ができたら、永続的に設定する方法
①ファイルの作成
vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
vi /etc/sysconfig/network-scripts/ifcfg-eth0:1


    DEVICE=eth0:0
    BOOTPROTO=none
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.1.200
    NETMASK=255.255.255.0


記述内容は、DEVICEの部分のみ間違えないように注意すれば問題なし。

ネットワークの再起動
/etc/init.d/network restart

終わり。

テーマ : Linux
ジャンル : コンピュータ

Linuxサーバーへのパスワード無しで接続

Linuxサーバーへのパスワード無しで接続

私の環境ですと、毎回パスワードを求められて、面倒なので鍵を作ってみる。
鍵を作ると、お互いに鍵がマッチすれば、パスワードなしで利用できる。

さくらインターネットの共用サーバーでも出来たのでメモ。


ssh-keygenコマンドを利用する。

接続元で以下の2つのコマンドを実行
==================================================
接続元で鍵の生成
ssh-keygen  -t rsa

接続元で操作(接続先に、先ほど作成した鍵を送る)
ssh-copy-id -i /home/ユーザーディレクトリ/.ssh/id_rsa.pub ユーザー名@ホスト名
==================================================

オプションi:鍵ファイルの指定

ユーザーディレクトリ:借りてるサーバースペースのディレクトリ

これだけでいいんです。

こんな簡単なんですね。

テーマ : Linux
ジャンル : コンピュータ

アクセスlogチェック(/var/log/secure)

Linuxサーバーに誰がログインしたかの確認など

grep -i bye /var/log/secure
    ブルートフォースアタックの可能性あり
   
grep -i Failed /var/log/secure
    ログインパスワード間違いした時のログ

grep -i Accepted /var/log/secure
    これは、ログインされたログ


時間のある時に見てみよう。

テーマ : Linux
ジャンル : コンピュータ

ファイヤーウォール(iptables)

iptables設定スクリプトのメモです。

スクリプトファイルを作成して、実行してます。
不要な部分はコメントアウトして使えばおk。
ファイルには、実行権限が必要です。

#!/bin/sh

### IPアドレス、ネットワークアドレスの定義 ###
# サーバ機のアドレス #
MYHOST='192.168.1.61'

# 家庭内のアドレス(192.168.0.0/24と1.0/24を合わせて指定)#
HOME='192.168.1.0/24'

# NTPサーバのアドレス #
# NTP1: xxx.xxx.xxx.xxx -- プロバイダ
# NTP2: 210.173.160.57  -- MFEED(ntp2.jst.mfeed.ad.jp)
NTP1='xxx.xxx.xxx.xxx'
NTP2='210.173.160.57'

# ip_conntrack_ftpのロード #
modprobe ip_conntrack_ftp

### iptablesのコマンドパスの定義 ###
IPTABLES='/sbin/iptables'

### IPフォワードの停止 ###
echo 0 > /proc/sys/net/ipv4/ip_forward

### iptablesのチェーンの初期化 ###
$IPTABLES -F

### 暗黙のdeny(デフォルトで拒否)とするルールの設定 ###
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

### ループバックアドレスに関するアクセスを全て許可 ###
$IPTABLES -A INPUT  -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

### 家庭内からのDNS問い合わせを許可 ###
$IPTABLES -A INPUT  -p udp -s $HOME --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d $HOME --sport 53 -j ACCEPT
$IPTABLES -A INPUT  -p tcp -m state --state NEW -s $HOME --dport 53 -j ACCEPT
### DNSサーバからの外部DNS問い合わせを許可 ###
$IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT  -p udp --sport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT

### 家庭内からのNTP問い合わせを許可 ###
$IPTABLES -A INPUT  -p udp -s $HOME --dport 123 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -o $HOME --sport 123 -j ACCEPT
### NTPサーバからの外部NTP問い合わせを許可 ###
#$IPTABLES -A OUTPUT -d $NTP1 -p udp --dport 123 -j ACCEPT
#$IPTABLES -A INPUT  -s $NTP1 -p udp --sport 123 -j ACCEPT
#$IPTABLES -A OUTPUT -d $NTP2 -p udp --dport 123 --sport 123 -j ACCEPT
#$IPTABLES -A INPUT  -s $NTP2 -p udp --dport 123 --sport 123 -j ACCEPT

### 家庭内でのファイル共有(NetBIOS)を許可 ###
$IPTABLES -A INPUT  -p udp -s $HOME --dport 137:138 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d $HOME --sport 137:138 -j ACCEPT
$IPTABLES -A INPUT  -p tcp -m state --state NEW -s $HOME --dport 139 -j ACCEPT

### 家庭内からのSWAT(SWAT:901)アクセスを許可 ###
#$IPTABLES -A INPUT -p tcp -m state --state NEW -s $HOME --dport 901 -j ACCEPT

### 家庭内からのProxyアクセス(PROXY:8080)を許可 ###
#$IPTABLES -A INPUT -p tcp -m state --state NEW -s $HOME --dport 8080 -j ACCEPT

### 家庭内でのSSH(22)の使用を許可 ###
$IPTABLES -A INPUT  -p tcp -m state --state NEW -s $HOME --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW -d $HOME --dport 22 -j ACCEPT

### WWWサーバへのアクセス(HTTP:80,HTTPS:443)を許可 ###
#$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT

### 外部WWWサーバへのアクセス(HTTP:80,HTTPS:443)を許可 ###
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT

### FTPサーバへのアクセス(Active/Passive)を許可 ###
#$IPTABLES -A INPUT  -p tcp -m state --state NEW --dport 21 -j ACCEPT
#$IPTABLES -A INPUT  -p tcp -m state --state NEW --dport 4000:4029 -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp -m state --state NEW --sport 20 -j ACCEPT

### 外部FTPサーバへのアクセス(Active/Passive)を許可 ###
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 21 -j ACCEPT
$IPTABLES -A INPUT  -p tcp -m state --state NEW --sport 20 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 1024: -j ACCEPT

### メールサーバへのアクセス(SMTP:25/465)を許可 ###
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 25 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 465 -j ACCEPT

### 外部メールサーバへのアクセス(SMTP:25,POP3:110)を許可 ###
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 25 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m state --state NEW --dport 110 -j ACCEPT

### メールサーバへのアクセス(POP3:110/995,IMAP:143/993)を許可 ###
### 非SSL系は家庭内のみ許可 ###
$IPTABLES -A INPUT -p tcp -m state --state NEW -s $HOME --dport 110 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW -s $HOME --dport 143 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 993 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 995 -j ACCEPT


### Ident(113)を拒否(DROPするとレスポンスが遅くなるのでReject) ###
$IPTABLES -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset

### PINGに対する処理 ###
$IPTABLES -A INPUT  -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A INPUT  -p icmp --icmp-type 0 -j ACCEPT

### セッション確立後のパケット疎通は許可 ###
$IPTABLES -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

### 設定内容の保存 ###
/etc/rc.d/init.d/iptables save

### IPフォワードの開始 ###
echo 1 > /proc/sys/net/ipv4/ip_forward

テーマ : Linux
ジャンル : コンピュータ

プロフィール

jamasan

Author:jamasan
頑張るサラリーマン

にほんブログ村 サラリーマン日記ブログへ
にほんブログ村
ポチっとお願いします。


出来ればこっちもお願い

リンク
最新記事
最新コメント
最新トラックバック
カテゴリ
カウンター
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

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