ローカル SMB サーバーの設定
このステップでは、Samba を使用してローカル SMB (Server Message Block) サーバーを設定します。SMB は、コンピュータ上のアプリケーションがリモートサーバー上のファイルやリソースにアクセスできるようにするネットワークファイル共有プロトコルです。Samba は、SMB ネットワークプロトコルのフリーソフトウェアによる再実装です。これは、後のステップで Hydra SMB 攻撃のターゲットとなります。
まず、Samba をインストールしましょう。~/project ディレクトリでターミナルを開きます。
sudo apt update
sudo apt install samba -y
このコマンドは、パッケージリストを更新し、その後 Samba パッケージをインストールします。-y フラグは、インストール中のプロンプトに自動的に「yes」と答えます。
次に、Samba を設定する必要があります。最初に、元の設定ファイルをバックアップします。
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
次に、既存の設定ファイルを上書きすることで、新しい、クリーンな設定ファイルを作成します。このアプローチは、デフォルトの Ubuntu Samba 設定との競合を回避します。
次のコマンドをコピーしてターミナルで実行してください。コマンドが正しくコピーされていることを確認してください。
sudo tee /etc/samba/smb.conf > /dev/null << 'EOF'
[global]
workgroup = WORKGROUP
server string = Samba Server
netbios name = fileserver
security = user
map to guest = never
## 匿名アクセスを無効化
restrict anonymous = 2
## Hydra との互換性のために明示的に SMBv1 と NTLMv1 を有効化
server min protocol = NT1
client min protocol = NT1
ntlm auth = ntlmv1-permitted
## ローカルホストへのバインド
interfaces = 127.0.0.1
bind interfaces only = yes
## ログ
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
debug level = 3
[share]
path = /home/labex/project/share
browsable = yes
writable = yes
guest ok = no
read only = no
valid users = labex
EOF
このコマンドは、/etc/samba/smb.conf の内容を完全に、私たちのクリーンな設定に置き換えます。
重要な設定点:
map to guest = never - 匿名ゲストアクセスを防止
restrict anonymous = 2 - 匿名アクセスを完全に無効化
server min protocol = NT1 と client min protocol = NT1 - Hydra との互換性のために SMBv1 を有効化
ntlm auth = ntlmv1-permitted - テストのために NTLMv1 認証を許可
interfaces = 127.0.0.1 と bind interfaces only = yes - ローカルホストへのアクセスのみを制限
guest ok = no - 共有へのゲストアクセスを無効化
valid users = labex - 特定のユーザーへのアクセスのみを許可
なぜファイル全体を上書きするのか:
- Ubuntu のデフォルト Samba 設定との競合を回避
- Hydra テストに最適化されたクリーンで最小限の設定を保証
- 重複または競合するディレクティブの可能性を排除
- すべてのユーザーにとって一貫した出発点を提供
この設定により、Hydra は匿名アクセスからの干渉なしに、認証試行を正しく検出できます。
次に、共有ディレクトリを作成します。
mkdir ~/project/share
sudo chmod 777 ~/project/share
これは、~/project ディレクトリに share という名前のディレクトリを作成し、そのパーミッションを 777 に設定します。これは、すべての人が読み取り、書き込み、実行の権限を持つことを意味します。注意: 実際の状況では、より制限的なパーミッションを使用する必要があります。この実験環境では、簡略化のために 777 を使用しています。
次に、Samba ユーザーを追加する必要があります。このユーザーは、SMB サーバーに認証するために使用されます。システム上に既に存在する labex ユーザーを使用します。まず、labex ユーザーの Samba パスワードを設定します。
sudo smbpasswd -a labex
labex ユーザーの新しいパスワードを入力するよう求められます。password と入力し、確認します。
New SMB password:
Retype new SMB password:
Added user labex.
最後に、変更を適用するために Samba サービスを再起動します。
sudo /etc/init.d/smbd restart
sudo /etc/init.d/nmbd restart
出力は次のようになります。
* Stopping SMB/CIFS daemon smbd [ OK ]
* Starting SMB/CIFS daemon smbd [ OK ]
* Stopping NetBIOS name server nmbd [ OK ]
* Starting NetBIOS name server nmbd [ OK ]
このコマンドは、Samba 設定の構文エラーをチェックし、アクティブな設定を表示します。エラーなしで設定が確認された出力が表示されるはずです。
これで、適切なセキュリティ設定を持つローカル SMB サーバーが設定されました。share という名前の共有ディレクトリを作成し、labex ユーザーに Samba パスワードを追加しました。設定は、Hydra 攻撃と正しく動作するように最適化されています。