業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」

FreeBSD14.5 : FTPサーバ , Sambaでファイルサーバー

1. FTPサーバ(Vsftpd)

1.1 事前準備

①秘密鍵作成

# cd /etc/ssl
# openssl genrsa -des3 -out server.key 2048
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

➁パスフレーズ削除

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: ←先ほどのパスフレーズを入力
writing RSA key

➂アクセス権変更

# chmod 400 server.key

④自己証明書作成

# cd /etc/ssl/
# openssl req -new -x509 -days 3650 -key server.key -out ftp.crt
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]:Osaka ←都道府県名
Locality Name (eg, city) []:Sakai ←市区町村名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Lepard ←ホスト名(または会社名)
Organizational Unit Name (eg, section) []: ←空エンター
Common Name (e.g. server FQDN or YOUR name) []:Admin ←ホスト名(または管理者名)
Email Address []:hoge@hoge.com ←管理者メールアドレス
# cat server.key ftp.crt > ftp.pem
# chmod 400 ftp.*

1.2 vsftpdインストール

1.1 vsftpdインストール

# cd /usr/ports/ftp/vsftpd
# make BATCH=yes WITH_VSFTPD_SSL=yes install clean

1.2 vsftpd設定ファイル編集

# chmod 640 /usr/local/etc/vsftpd.conf

# vi /usr/local/etc/vsftpd.conf
12行目 : 変更(anonymous(匿名)のログインを許可しない)
anonymous_enable=NO

15行目 : コメント解除(ローカルログインを許可)
local_enable=YES

18行目 : コメント解除(書き込みを許可)
write_enable=YES ←コメント解除(書き込みを許可)

22行目 : コメント解除(新規ファイルのパーミッション設定)
local_umask=022

51行目 : コメント解除(ログファイルの指定)
xferlog_file=/var/log/vsftpd.log

80行目 : コメント解除(ASCIIモードでのアップロードを許可)
ascii_upload_enable=YES

81行目 : コメント解除(ASCIIモードでのダウンロードを許可)
ascii_download_enable=YES

98行目 : コメント解除
chroot_local_user=YES

99行目 : コメント解除
chroot_list_enable=YES

101行目 : コメント解除(上記ユーザー指定ファイル)
chroot_list_file=/etc/vsftpd.chroot_list

107行目 : コメント解除(ディレクトリごとの削除を許可する)
ls_recurse_enable=YES

112行目 : IPv4有効
listen=YES

134行目 : コメント解除
background=YES

# 最終行に下記を追加
# PASV モード有効
pasv_enable=YES
# pasv_address 有効
pasv_addr_resolve=YES
# pasv モードのポート番号範囲
pasv_min_port=4000
pasv_max_port=4009
# ローカルタイムを使用
use_localtime=YES
# SSL接続を許可
ssl_enable=YES
# SSL 証明書ファイルを指定
rsa_cert_file=/etc/ssl/ftp.pem
# SSL セッションを再利用しない
require_ssl_reuse=NO
# 強制 SSL 接続を解除
force_local_logins_ssl=NO
# 強制 SSL 接続を解除
force_local_data_ssl=NO
# ドットファイルを表示
force_dot_files=YES
# echo "vsftpd: ALL" >> /etc/hosts.allow

chroot_list編集
今回は一般ユーザーhuongを書き込みました

# echo huong >> /etc/vsftpd.chroot_list

自動起動有効

# vi /etc/rc.conf
vsftpd_enable="YES" ←追加

# service vsftpd start

1.3 Firewallでパッシブポート開放する
下記ページを参考にし、4000-4009ポートを開放し、サーバーを再起動する

1.4 FileZilla で接続

Password : 一般ユーザーhuongのパスワード

次のようなセキュリティ確認画面が表示されるのでOKをクリックするとサーバーに接続される

2. Sambaでファイルサーバー

WindowsやMacのファイル共有を実現するため、Sambaを使いファイルサーバーを構築する

2.1 Sambaのインストール

# pkg install samba420

2.2 Sambaの設定

/usr/local/etc/smb4.confを新規作成

# cd /usr/local/etc/

# vi smb4.conf

[global]
#Windows クライアントとの通信に使用する文字コード
dos charset = CP932
#Samba サーバー側の FreeBSDで使われる文字コード
unix charset = UTF-8
#Windows 側で設定したワークグループ名に合わせる
workgroup = WORKGROUP
#任意の名称
server string = FreeBSD
#任意の名称
netbios name = freebsd
security = user
 
[share]
#共有するディレクトリのパス
path = /home/share
#共有ディレクトリに作成されるファイル/ディレクトリのパーミッション
create mask = 0770
#共有ディレクトリに作成されるファイル/ディレクトリのパーミッション
directory mask = 0770
#ゲストユーザー不可
guest only = No
#ゲストユーザー不可
guest ok = No
#共有ディレクトリを書き込み可能
browseable = No
read only = No
#共有ディレクトリを書き込み可能
writable = Yes

共有ディレクトリを作成
共有ディレクトリを /home/share とし、所有者を huong(Freebsdに登録されている一般ユーザー)、アクセス権限は、一般ユーザーと wheel グループに読み・書き・実行を許可

# mkdir /home/share
# chown huong:wheel /home/share
# chmod -R 0770 /home/share

/etc/rc.confを開いて、samba_server_enable="YES"を追加する

huong(Freebsdに登録されている一般ユーザー)をSamba ユーザーとして登録しパスワードを設定する(pdbedit コマンドを使用)

# pdbedit -a -u huong
new password:
retype new password:
Unix username:        huong
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-1244759181-1138094382-393284470-1000
Primary Group SID:    S-1-5-21-1244759181-1138094382-393284470-513
Full Name:            huong
Home Directory:       \\FREEBSD\huong
HomeDir Drive:
Logon Script:
Profile Path:         \\FREEBSD\huong\profile
Domain:               FREEBSD
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          Thu, 07 Feb 2036 00:06:39 JST
Kickoff time:         Thu, 07 Feb 2036 00:06:39 JST
Password last set:    Mon, 14 Sep 2026 20:20:46 JST
Password can change:  Mon, 14 Sep 2026 20:20:46 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

ファイアウォール有効の場合はsamba使用ポート(445)を開放しておく
xxxは他のルール番号と違うものにする

# vi /usr/local/etc/ipfw.rules
下記を追加
$IPF xxx allow tcp from any to any 445 in
$IPF xxx allow tcp from any to any 445 out

再起動
# service ipfw restart

sambaを起動

# service samba_server start
Performing sanity check on Samba configuration: OK
Starting nmbd.
Starting smbd.

2.3 Samba起動確認

Windowsの設定
・ワークグループ名が"WORKGROUP"になっていることを確認

ファイルエクスプローラーのアドレスバーに、"\\<Samba サーバーの IP アドレス>\<共有ディレクトリ名>" と入力
(今回は'\\192.168.11.83\share")するとログイン画面が表示されるので登録したユーザー名とパスワードを入力する