*簡易サーバ構築*


ここでは、本番環境へ設置する前にファイアウォールのアクセスポリシーを確認したい場合など、手元の環境でお金をかけずにサーバを構築する方法について説明しています。
僕はLinuxよりもFreeBSDひいきなので、以下の説明は全てFreeBSD(4.X)を使った場合の内容になっています。ディストリビューションの内容やソフトウェアの管理方法はOSによって異なりますが、サーバの設定方法はあまり変わらないと思いますので、適当に読み替えてください。

なお、以下の構築方法はセキュリティを全く考慮しておらず、とりあえず各プロトコルの知識がなくてもテスト用のサーバを構築できるようにすることを目的としています。
実環境に構築する場合は、

といった点に考慮して構築してください。



*WEB(SSL)サーバ構築*

1. まず、PortsまたはPackagesで「Apache」をインストールしてください。バージョンは何でも構いません。SSLも対応させたい場合は、「+mod_ssl」と書いてあるパッケージをインストールしてください。
2. 「httpd.conf」という設定ファイルを探してください。
find / -name httpd.conf
/usr/local/etc/apache/httpd.conf
3. このファイルをviなどのテキストエディタで開き、「ServerName」という設定部分を探してホスト名を指定してください。
ServerName     your.server.name
4. 「/etc/hosts」ファイルをviなどのテキストエディタで開き、先ほど設定した「your.server.name」に対するIPアドレスを指定してください。
XXX.XXX.XXX.XXX     your.server.name
5. 起動スクリプトが置いてあるディレクトリ「/usr/local/etc/rc.d/」に移動し、Apache起動スクリプトに実行権を付けてください。
cd /usr/local/etc/rc.d/
mv apache.sh.sample apache.sh
chmod +x apache.sh
6. この起動スクリプトを使って、Apacheを起動してください。コンソールに「apache」と表示されてコマンドが終了すればOKです。
/usr/local/etc/rc.d/apache.sh start
7. プロセスの一覧を表示させて、httpdデーモンが起動していることを確認してください。
ps ax | grep httpd
  316  ??  Ss     0:00.17 /usr/local/sbin/httpd -DSSL
  317  ??  I      0:00.17 /usr/local/sbin/httpd -DSSL
  318  ??  I      0:00.17 /usr/local/sbin/httpd -DSSL
  319  ??  I      0:00.17 /usr/local/sbin/httpd -DSSL
  320  ??  I      0:00.17 /usr/local/sbin/httpd -DSSL
  321  ??  I      0:00.00 /usr/local/sbin/httpd -DSSL
8. これで作業は終了です。構築したWebサーバにアクセスして、テストページが表示されることを確認してください。

↑↑上に戻る


*PROXYサーバ構築*

1. まず、PortsまたはPackagesで「Squid」をインストールしてください。バージョンは何でも構いません。
2. 「squid.conf」という設定ファイルを探してください。
find / -name squid.conf
/usr/local/etc/squid/squid.conf
3. このファイルをviなどのテキストエディタで開き、「http_port」という設定部分を探してコメントを解除してから、PROXY用ポート番号を指定してください。
http_port 3128
4. 同様に、「acl all src 0.0.0.0/0.0.0.0」という設定部分を探し、その直下に以下の行を入力してください。 acl all src 0.0.0.0/0.0.0.0
acl all-dst dst 0.0.0.0/0.0.0.0
5. 同様に、「# http_access deny all」という設定部分を探し、その直下に以下の行を入力してください。
# http_access deny all
http_access allow all
http_access allow all-dst
6. 以下のコマンドを実行してください。
squid -z
7. 起動スクリプトを使って、Squidを起動してください。コンソールに「squid」と表示されてコマンドが終了すればOKです。
/usr/local/etc/rc.d/squid.sh start
8. プロセスの一覧を表示させて、squidデーモンが起動していることを確認してください。
ps ax | grep squid
  736  ??  Is     0:00.17 /usr/local/sbin/squid -D
  738  ??  R      0:00.00 (squid) -D (squid)
9. これで作業は終了です。構築したPROXYサーバを経由して、任意のWEBページが表示されることを確認してください。

↑↑上に戻る


*FTPサーバ構築*

1. ftpデーモンは最初からディストリビューションに含まれていますが、起動していません。まず、「/etc/inetd.conf」という設定ファイルをviなどのエディタで開いてください。
2. 以下のようにFTPに関する設定部分があると思いますので(ない場合は入力してください)、先頭の「#」を消してコメント解除し、保存してください。
#ftp   stream  tcp     nowait  root    /usr/libexec/ftpd      ftpd -l
3. 「/etc/ftpusers」という設定ファイルをviなどのエディタで開き、以下の行をコメントアウトしてから保存してください。
#root
4. 以下のコマンドを実行し、inetdデーモンを再起動してください。
killall -HUP inetd
5. プロセスの一覧を表示させて、inetdデーモンが起動していることを確認してください。
ps ax | grep inetd
   74  ??  Is     0:00.17 /usr/sbin/inetd -wW
6. これで作業は終了です。構築したFTPサーバからファイルを取得できることを確認してください。

↑↑上に戻る


*FTPSサーバ構築*

1. まず、PortsまたはPackagesで「bsdftpd-ssl」をインストールしてください。バージョンは何でも構いません。
2. 「/etc/inetd.conf」という設定ファイルをviなどのエディタで開くと、以下のようにFTPに関する設定部分があると思います(ない場合は入力してください)。先頭の「#」を消してコメント解除し、デーモンのパスをインストールしたものに書き換え、保存してください。
#ftp   stream  tcp     nowait  root    /usr/local/libexec/ftpd      ftpd -l
3. SSL用の適当な証明書を作成する必要があります。まず、以下のディレクトリに移動して「certs」というディレクトリを作成してください。
cd /etc/ssl/
mkdir certs
cd certs
4. 自己署名証明書作成用のスクリプトがありますので、適当な情報を入力して証明書を生成し、指定の場所に移動してください。
/usr/local/share/doc/bsdftpd-ssl/cert/cert-dummy.sh
Making self-signed certificate
and RSA Private Key
==============================
Generating a 1024 bit RSA private key
....................................++++++
........................................++++++
writing new private key to 'cert-dummy.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Somewhere
Locality Name (eg, city) []:Some-City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SomeCorp
Organizational Unit Name (eg, section) []:SomeDep
Common Name (eg, YOUR name) []:Myname
Email Address []:someone@somewhere.com
mv cert-dummy.pem certs/ftpd.pem
4. 「/etc/ftpusers」という設定ファイルをviなどのエディタで開き、以下の行をコメントアウトしてから保存してください。
#root
4. 以下のコマンドを実行し、inetdデーモンを再起動してください。
killall -HUP inetd
5. プロセスの一覧を表示させて、inetdデーモンが起動していることを確認してください。
ps ax | grep inetd
   74  ??  Is     0:00.17 /usr/sbin/inetd -wW
6. これで作業は終了です。FTPSクライアントを使用し、構築したFTPSサーバからファイルを取得できることを確認してください。

↑↑上に戻る


*TELNETサーバ構築*

1. telnetデーモンは最初からディストリビューションに含まれていますが、起動していません。まず、「/etc/inetd.conf」という設定ファイルをviなどのエディタで開いてください。
2. 以下のようにTELNETに関する設定部分があると思いますので(ない場合は入力してください)、先頭の「#」を消してコメント解除し、保存してください。
#telnet stream  tcp     nowait  root    /usr/libexec/telnetd    telnetd
3. 「/etc/ttys」という設定ファイルをviなどのエディタで開き、以下の行に文字を追加してから保存してください。
ttyp0   none    network on      secure
4. 以下のコマンドを実行し、inetdデーモンを再起動してください。
killall -HUP inetd
5. プロセスの一覧を表示させて、inetdデーモンが起動していることを確認してください。
ps ax | grep inetd
   74  ??  Is     0:00.17 /usr/sbin/inetd -wW
6. これで作業は終了です。構築したTELNETサーバにログインできることを確認してください。

↑↑上に戻る


*RSHサーバ構築*

1. rshdデーモンは最初からディストリビューションに含まれていますが、起動していません。まず、「/etc/inetd.conf」という設定ファイルをviなどのエディタで開いてください。
2. 以下のようにRSHに関する設定部分があると思いますので(ない場合は入力してください)、先頭の「#」を消してコメント解除し、保存してください。
#shell  stream  tcp     nowait  root    /usr/libexec/rshd       rshd
3. リモートからコマンドを実行させるローカルユーザのホームディレクトリで「.rhosts」というファイルを作成し、リモート端末のホスト名(またはIPアドレス)とユーザ名を指定してください。
192.168.1.250 admin01
192.168.1.251 admin02
4. 以下のコマンドを実行し、inetdデーモンを再起動してください。
killall -HUP inetd
5. プロセスの一覧を表示させて、inetdデーモンが起動していることを確認してください。
ps ax | grep inetd
   74  ??  Is     0:00.17 /usr/sbin/inetd -wW
6. これで作業は終了です。指定したリモート端末のユーザで、構築したサーバにコマンドを発行できることを確認してください。

↑↑上に戻る


*LDAPサーバ構築*

1. まず、PortsまたはPackagesで「openldap-client」と「openldap-server」をインストールしてください。LDAPv3に対応していれば、バージョンは何でも構いません。
2. 「/usr/local/etc/openldap/」に移動し、「slapd.conf」ファイルを適当にバックアップしてください。
cd /usr/local/etc/openldap/
cp slapd.conf slapd.conf.orig
3. 「slapd.conf」ファイルをviなどのエディタで開き、サンプルの行をマネしてドメインツリーの情報を入力してください。
database        bdb
suffix          "dc=somewhere,dc=co,dc=jp"
rootdn          "cn=Manager,dc=somewhere,dc=co,dc=jp"
rootpw          secret
directory       /var/db/openldap-data
require         none
allow           bind_v2
4. 以下のコマンドを実行して、ユーザ用パスワードのハッシュ値を計算してください。
slappasswd -h \{MD5\} -s secret
{MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
5. 以下の内容を、適当なテキストファイルで保存してください。「userPassword」の部分に、生成したハッシュ値を当てはめてください。
dn: dc=somewhere,dc=co,dc=jp
objectclass: dcObject
objectclass: organization
o: Somewhere
dc: somewhere

dn: cn=Manager,dc=somewhere,dc=co,dc=jp
objectclass: organizationalRole
cn: Manager

dn: ou=users,dc=somewhere,dc=co,dc=jp
objectclass: organizationalUnit
ou: users

dn: ou=groups,dc=somewhere,dc=co,dc=jp
objectclass: organizationalUnit
ou: groups

dn: cn=users01,ou=groups,dc=somewhere,dc=co,dc=jp
objectclass: posixGroup
cn: users01
gidNumber: 2000

dn: uid=user011,ou=users,dc=somewhere,dc=co,dc=jp
objectclass: inetOrgPerson
objectclass: posixAccount
uid: user011
userPassword: {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
uidNumber: 11
gidNumber: 2000
sn: Someone
cn: User011
homeDirectory: /home/user011
6. 以下のコマンドを実行して、エントリを登録してください。
ldapadd -x -D "cn=Manager,dc=somewhere,dc=co,dc=jp" -W -f somewhere.ldif
Enter LDAP Password: secret

adding new entry "cn=Manager,dc=somewhere,dc=co,dc=jp"

adding new entry "dc=somewhere,dc=co,dc=jp"

adding new entry "cn=Manager,dc=somewhere,dc=co,dc=jp"

adding new entry "ou=users,dc=somewhere,dc=co,dc=jp"

adding new entry "ou=groups,dc=somewhere,dc=co,dc=jp"

adding new entry "uid=user011,ou=users,dc=somewhere,dc=co,dc=jp"
7. 起動スクリプトを使って、slapdを起動してください。コンソールに「Starting slapd.」と表示されてコマンドが終了すればOKです。
/usr/local/etc/rc.d/slapd.sh start
8. プロセスの一覧を表示させて、slapdデーモンが起動していることを確認してください。
ps ax | grep slapd
  228  ??  Ss     0:00.02 /usr/local/libexec/slapd -u ldap -g ldap
9. これで作業は終了です。「uid=user011,ou=users,dc=somewhere,dc=co,dc=jp」というDNに対してツリーが閲覧できたり、「secret」というパスワードで認証できることを確認してください。

↑↑上に戻る


*自前認証局構築*

1. まず、PortsまたはPackagesで「OpenSSL」をインストールしてください。バージョンは何でも構いません。
2. 適当な場所に、認証局構築用のディレクトリを作成してください。
mkdir CA
3. 「CA.sh」というスクリプトを探し、ディレクトリの中にコピーしてください。
find / -name CA.sh
/usr/local/openssl/misc/CA.sh
cp /usr/local/openssl/misc/CA.sh ./CA/
4. 「openssl.cnf」という設定ファイルのサンプルを探し、ディレクトリの中にコピーしてください。
find / -name openssl.cnf\*
/usr/local/openssl/openssl.cnf.sample
cp /usr/local/openssl/openssl.cnf.sample ./CA/openssl.cnf
5. コピーした「openssl.cnf」をviなどのテキストエディタで開き、以下の部分を変更してください。
#policy         = policy_match
policy          = policy_anything
6. コピーした「CA.sh」をviなどのテキストエディタで開き、以下の部分を変更してください。日数の部分は、環境に合わせて適宜変更してください。
#DAYS="-days 365"       # 1 year
DAYS="-days 730"
#CADAYS="-days 1095"    # 3 years
CADAYS="-days 7300"
#REQ="$OPENSSL req $SSLEAY_CONFIG"
REQ="$OPENSSL req $SSLEAY_CONFIG -config ./openssl.cnf"
#CA="$OPENSSL ca $SSLEAY_CONFIG"
CA="$OPENSSL ca $SSLEAY_CONFIG -config ./openssl.cnf"
#VERIFY="$OPENSSL verify"
VERIFY="$OPENSSL verify -config ./openssl.cnf"
#X509="$OPENSSL x509"
X509="$OPENSSL x509 -config ./openssl.cnf"
7. 「CA.sh」を実行し、証明書の内容やパスフレーズを入力してください。
./CA.sh -newca
CA certificate filename (or enter to create)
Making CA certificate ...
Generating a 1024 bit RSA private key
...............++++++
.............................++++++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase:********
Verifying - Enter PEM pass phrase:********
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Some-State
Locality Name (eg, city) []:Some-City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Some-Company
Organizational Unit Name (eg, section) []:Somewhere
Common Name (eg, YOUR name) []:Someone
Email Address []:someone@somewhere.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from ./openssl.cnf
Enter pass phrase for ./demoCA/private/./cakey.pem:********
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 0 (0x0)
        Validity
            Not Before: Nov 17 02:32:33 2006 GMT
            Not After : Nov 12 02:32:33 2026 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Some-State
            localityName              = Some-City
            organizationName          = Some-Company
            organizationalUnitName    = Somewhere
            commonName                = Someone
            emailAddress              = someone@somewhere.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                0E:D2:EF:C3:51:50:2F:36:8A:6C:6B:D5:5C:9D:C5:9B:03:38:3E:8E
            X509v3 Authority Key Identifier:
                keyid:0E:D2:EF:C3:51:50:2F:36:8A:6C:6B:D5:5C:9D:C5:9B:03:38:3E:8E

Certificate is to be certified until Nov 12 02:32:33 2026 GMT (7300 days)

Write out database with 1 new entries
Data Base Updated
8. これで作業は終了です。ユーザから取得した証明書発行要求(CSR)をベースに証明書を発行してみてください。
./CA.sh -newreq
Generating a 1024 bit RSA private key
.........++++++
........++++++
writing new private key to 'newkey.pem'
Enter PEM pass phrase:********
Verifying - Enter PEM pass phrase:********
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Some-State
Locality Name (eg, city) []:Some-City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Some-Company
Organizational Unit Name (eg, section) []:Somewhere
Common Name (eg, YOUR name) []:Someone01
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Request is in newreq.pem, private key is in newkey.pem
#./CA.sh -sign
Using configuration from ./openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:********
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Nov 17 03:10:59 2006 GMT
            Not After : Nov 17 03:10:59 2007 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Some-State
            organizationName          = Some-Company
            organizationalUnitName    = Somewhere
            commonName                = Someone01
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                1A:69:E2:76:D4:27:CD:E4:4F:E7:7B:5A:AF:1E:0F:5E:A1:66:64:4C
            X509v3 Authority Key Identifier:
                keyid:0E:D2:EF:C3:51:50:2F:36:8A:6C:6B:D5:5C:9D:C5:9B:03:38:3E:8E

Certificate is to be certified until Nov 17 03:10:59 2007 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=JP, ST=Some-State, L=Some-City, O=Some-Company, OU=Somewhere, CN=Someone/emailAddress=someone@somewhere.com
        Validity
            Not Before: Nov 17 03:10:59 2006 GMT
            Not After : Nov 17 03:10:59 2007 GMT
        Subject: C=JP, ST=Some-State, O=Some-Company, OU=Somewhere, CN=Someone01
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:c2:14:bc:9d:65:a6:50:23:72:55:1c:e4:33:2e:
                    e1:41:73:2b:fe:5a:6b:92:dd:34:ea:eb:6f:c4:97:
                    25:c1:aa:49:a5:ca:b3:0a:25:f1:4a:68:01:3e:8f:
                    c6:de:81:7b:61:45:b0:4f:6c:f8:5e:db:c5:ef:97:
                    a1:5b:74:f2:ba:36:99:28:be:f6:cc:b3:ab:24:d8:
                    a0:0b:6b:f5:85:85:f1:4b:37:b7:91:16:68:23:79:
                    3f:7f:f2:8f:3e:eb:59:d0:1f:f5:e5:a2:ef:e1:fe:
                    1d:23:14:09:33:04:ee:02:50:5a:69:66:d9:cd:90:
                    27:df:9d:a4:2f:20:05:97:25
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                1A:69:E2:76:D4:27:CD:E4:4F:E7:7B:5A:AF:1E:0F:5E:A1:66:64:4C
            X509v3 Authority Key Identifier:
                keyid:0E:D2:EF:C3:51:50:2F:36:8A:6C:6B:D5:5C:9D:C5:9B:03:38:3E:8E

    Signature Algorithm: sha1WithRSAEncryption
        82:3c:06:ed:91:91:0f:51:4e:e1:d7:83:d4:75:c4:cf:5e:16:
        57:2b:79:4e:10:b3:0d:0c:ed:16:39:b9:d5:b8:3e:5c:1c:5c:
        1e:86:f1:2d:74:fd:72:a3:0b:e6:96:00:08:2c:86:e0:7e:40:
        33:87:0a:19:17:aa:74:67:8e:18:07:cf:67:8a:38:c9:e8:81:
        b8:0d:8c:10:68:33:30:f8:fe:0c:6d:a5:97:3d:8c:cf:48:8a:
        72:81:2b:38:d4:37:b9:fe:a1:7f:80:86:c0:8c:7d:de:6a:c2:
        5a:6b:69:9e:41:0b:02:77:23:2c:6e:7f:0b:17:ba:43:0d:12:
        47:14
-----BEGIN CERTIFICATE-----
MIIC7DCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCSlAx
EzARBgNVBAgTClNvbWUtU3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTEVMBMGA1UE
ChMMU29tZS1Db21wYW55MRIwEAYDVQQLEwlTb21ld2hlcmUxEDAOBgNVBAMTB1Nv
bWVvbmUxJDAiBgkqhkiG9w0BCQEWFXNvbWVvbmVAc29tZXdoZXJlLmNvbTAeFw0w
NjExMTcwMzEwNTlaFw0wNzExMTcwMzEwNTlaMGExCzAJBgNVBAYTAkpQMRMwEQYD
VQQIEwpTb21lLVN0YXRlMRUwEwYDVQQKEwxTb21lLUNvbXBhbnkxEjAQBgNVBAsT
CVNvbWV3aGVyZTESMBAGA1UEAxMJU29tZW9uZTAxMIGfMA0GCSqGSIb3DQEBAQUA
A4GNADCBiQKBgQDCFLydZaZQI3JVHOQzLuFBcyv+WmuS3TTq62/ElyXBqkmlyrMK
JfFKaAE+j8begXthRbBPbPhe28Xvl6FbdPK6NpkovvbMs6sk2KALa/WFhfFLN7eR
FmgjeT9/8o8+61nQH/Xlou/h/h0jFAkzBO4CUFppZtnNkCffnaQvIAWXJQIDAQAB
o3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl
ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUGmnidtQnzeRP53tarx4PXqFmZEwwHwYD
VR0jBBgwFoAUDtLvw1FQLzaKbGvVXJ3FmwM4Po4wDQYJKoZIhvcNAQEFBQADgYEA
gjwG7ZGRD1FO4deD1HXEz14WVyt5ThCzDQztFjm51bg+XBxcHobxLXT9cqML5pYA
CCyG4H5AM4cKGReqdGeOGAfPZ4o4yeiBuA2MEGgzMPj+DG2llz2Mz0iKcoErONQ3
uf6hf4CGwIx93mrCWmtpnkELAncjLG5/Cxe6Qw0SRxQ=
-----END CERTIFICATE-----
Signed certificate is in newcert.pem

↑↑上に戻る


*RADIUSサーバ構築*

1. まず、PortsまたはPackagesで「freeradius」をインストールしてください。バージョンは何でも構いません。
2. 「/usr/local/etc/raddb/」に移動し、「clients」「users」ファイルをコピーしてください。
cd /usr/local/etc/raddb/
cp clients.sample clients
cp users.sample users
3. 「clients」ファイルをviなどのエディタで開き、サンプルの行をマネしてRADIUSクライアントのIPアドレスとシークレットキーを入力してください。
XXX.XXX.XXX.XXX     your-secret
4. 「users」ファイルをviなどのエディタで開き、先頭に以下の行を追加してください。
testuser    Auth-Type := Local, Password = "testpass"
    Service-Type = Framed-User
5. 起動スクリプトを使って、freeradiusを起動してください。コンソールに「radiusd」と表示されてコマンドが終了すればOKです。
/usr/local/etc/rc.d/radiusd.sh start
6. プロセスの一覧を表示させて、radiusdデーモンが起動していることを確認してください。
ps ax | grep radiusd
  470  ??  Is     0:00.17 /usr/local/bin/radiusd -y 
  471  ??  I      0:00.00 /usr/local/bin/radiusd -y 
7. これで作業は終了です。構築したRADIUSサーバにアクセスして、ユーザ認証が成功することを確認してください。

↑↑上に戻る


*TACACSサーバ構築*

1. まず、PortsまたはPackagesで「tac_plus」をインストールしてください。バージョンは何でも構いません。
2. 「/usr/local/etc/」に移動し、「tac_plus.conf」ファイルをコピーしてください。
cd /usr/local/etc/
cp tac_plus.conf.sample tac_plus.conf
3. 「tac_plus.conf」ファイルをviなどのエディタで開き、先頭に以下の行を追加してください。
user=testuser {
    name = "Test User"
    login = cleartext testpass
}
4. 起動スクリプトを使って、tac_plusを起動してください。コンソールに「tac_plus」と表示されてコマンドが終了すればOKです。
/usr/local/etc/rc.d/tac_plus.sh start
5. プロセスの一覧を表示させて、tac_plusデーモンが起動していることを確認してください。
ps ax | grep tac_plus
  427  ??  I      0:00.17 /usr/local/sbin/tac_plus -C /usr/local/etc/tac_plus.conf
6. これで作業は終了です。構築したTACACSサーバにCisco機器からアクセスして、ユーザ認証が成功することを確認してください。

↑↑上に戻る


*DHCPサーバ構築*

1. まず、PortsまたはPackagesで「isc-dhcp3-server」をインストールしてください。バージョンは何でも構いません。
2. 「/usr/local/etc/」に移動し、「dhcpd.conf」ファイルをコピーしてください。
cd /usr/local/etc/
cp dhcpd.conf.sample dhcpd.conf
3. 「dhcpd.conf」ファイルをviなどのエディタで開き、先頭に以下の行を追加してください。各設定値は、適当な値に読み替えてください。
ddns-update-style none;
subnet 192.168.1.0 netmask 255.255.255.0 {
 range 192.168.1.100 192.168.1.199;
 option domain-name-servers 192.168.1.200, 192.168.1.201;
 option domain-name "somewhere.local";
 option netbios-name-servers 192.168.1.200, 192.168.1.201;
 option routers 192.168.1.254;
 option broadcast-address 192.168.1.255;
 default-lease-time 600;
 max-lease-time 7200;
}
4. クライアント用のデータベースファイルを生成してください。
touch /var/db/dhcpd.leases
5. 「/etc/rc.conf」ファイルをviなどのエディタで開き、以下の行を追加してください。インターフェース名は、適当な値に読み替えてください。
dhcpd_enable="YES"
dhcpd_conf=/usr/local/etc/dhcpd.conf
dhcpd_ifaces="fxp0"
6. 設定を追加したら再起動し、再度ログインしてください。
7. プロセスの一覧を表示させて、dhcpdデーモンが起動していることを確認してください。
ps ax | grep dhcpd
  231  ??  Is     0:00.06 /usr/local/sbin/dhcpd -cf /usr/local/etc/dhcpd.conf fxp0
8. これで作業は終了です。同一ネットワークにDHCPクライアントを接続して、IPアドレスその他の情報を取得できることを確認してください。

↑↑上に戻る


*NTPサーバ構築*

1. ntpdデーモンは最初からディストリビューションに含まれていますが、起動していません。まず、「/etc/rc.conf」という設定ファイルをviなどのエディタで開いてください。
2. 以下の行を追加し、保存してください。
xntpd_enable="YES"
3. 「/etc/ntp.conf」という設定ファイルを、以下の内容で作成してください。
server  127.127.1.0
fudge   127.127.1.1 stratum 2
driftfile /etc/drift
4. 以下のコマンドを実行し、ntpdデーモンを起動してください。
/usr/sbin/ntpd
5. プロセスの一覧を表示させて、ntpdデーモンが起動していることを確認してください。
ps ax | grep ntpd
  601  ??  Ss     0:00.17 ntpd
6. これで作業は終了です。構築したNTPサーバを使って時刻同期できることを確認してください(同期できるようになるまでに、しばらく時間が掛かることがあります)。

↑↑上に戻る


*SYSLOGサーバ構築*

1. syslogdデーモンは最初からディストリビューションに含まれていますが、デフォルトのままではリモートから受信したログを受け付けません。まず、「/etc/rc.conf」という設定ファイルをviなどのエディタで開いてください。
2. 以下の行を追加し、保存してください。各オプションについては、syslogdのマニュアルを参照してください。
syslogd_flags="-cnvv"
3. 「/etc/syslog.conf」という設定ファイルを、受信するログに合わせて適切に設定してください。
local7.* /var/log/router.log
4. 設定を追加したら再起動し、再度ログインしてください。
5. プロセスの一覧を表示させて、syslogdデーモンが指定したオプションで起動していることを確認してください。
ps ax | grep syslogd
  85  ??  Ss     0:00.76 /usr/sbin/syslogd -cnvv
6. これで作業は終了です。他のネットワーク機器などからSYSLOGを転送し、指定した出力先にログが出力されることを確認してください。

↑↑上に戻る


*PPTPゲートウェイ構築*

1. まず、PortsまたはPackagesで「PopTop」をインストールしてください。バージョンは何でも構いません。
2. 設定ファイルのサンプルがありますので、ファイル名を変更してください。
cp /usr/local/etc/pptpd.conf.sample /usr/local/etc/pptpd.conf
3. 設定ファイルをviなどのエディタで開き、以下の行でコメント/コメントアウトしてから保存してください。
noipparam
#logwtmp
4. 「/etc/ppp/options.pptpd」という設定ファイルを作成し、以下の内容を入力してください。
lock
debug
name pptp

auth
require-chap
proxyarp
-chap
-chapms
+chapms-v2
mppe-128
mppe-stateless
5. 「/etc/ppp/ppp.conf」という設定ファイルの中に、以下の内容を入力してください。
「ifaddr」の部分は、ゲートウェイのIPアドレスやプールIPアドレスを適当に入力してください。
pptp:
 set dial
 set login
 set ifaddr 172.31.255.254 172.31.255.100 172.31.255.199
 set mppe 128
 enable mschapv2
 enable mppe
 enable proxy
6. 「/etc/ppp/ppp.secret」という設定ファイルの中に、ユーザ名とパスワードを入力してください。
hogehoge piyopiyo
7. 「/etc/rc.conf」ファイルをviなどのエディタで開き、以下の行を追加してください。
pptpd_enable="YES"
8. 起動スクリプトに実行権限を付けて、pptpdを起動してください。コンソールに「Starting pptpd.」と表示されてコマンドが終了すればOKです。
chmod +x /usr/local/etc/rc.d/pptpd.sh
/usr/local/etc/rc.d/pptpd.sh start
9. プロセスの一覧を表示させて、pptpdデーモンが起動していることを確認してください。
ps ax | grep pptpd
  578  ??  Is     0:00.00 /usr/local/sbin/pptpd
10. これで作業は終了です。WindowsのPPTPクライアントなどを使用して、リモート接続できることを確認してください。

↑↑上に戻る


*PPPoEゲートウェイ構築*

1. pppoedデーモンは最初からディストリビューションに含まれていますが、起動していません。まず、「/etc/ppp/」というディレクトリに移動してください。
cd /etc/ppp/
2. 「ppp.conf」ファイルをコピーしてください。
cp ppp.conf ppp.conf.orig
3. 「ppp.conf」ファイルをviなどのエディタで開き、以下の内容に修正してください。インターフェース名とDNSサーバは、適当な値に読み替えてください。
pppoe-in:
 set device PPPoE:fxp0
 allow mode direct
 set mru 1454
 set mtu 1454
 set speed sync
 enable lqr pap chap
 accept dns
 accept nbns
 set dns 1.1.1.1 1.1.1.2
 accept chap
 accept pap
4. ユーザ用のアカウントファイル「ppp.secret」を作成し、ユーザ名とパスワード、割り当てるIPアドレスを指定してください。
guest00@somewhere.co.jp guest00 2.2.2.1
guest01@somewhere.co.jp guest01 2.2.2.2
5. 「/etc/rc.conf」ファイルをviなどのエディタで開き、以下の行を追加してください。インターフェース名は、適当な値に読み替えてください。
pppoed_enable="YES"
pppoed_interface="fxp0"
pppoed_flags="-l pppoe-in"
6. 設定を追加したら再起動し、再度ログインしてください。
7. プロセスの一覧を表示させて、pppoedデーモンが起動していることを確認してください。
ps ax | grep pppoed
  93  ??  Is     0:00.01 /usr/libexec/pppoed -l pppoe-in -p * fxp0
8. これで作業は終了です。設定ファイル内で指定したインターフェースにPPPoEクライアントを接続して、PPPoEで接続できることを確認してください。

↑↑上に戻る



ネットワークセキュリティ関係者の部屋 > sERVER