Port TCP / IP diperlukan untuk operasi CIFS / SMB

44

Jika saya ingin mengizinkan drive jaringan Windows antara dua komputer yang dihembuskan, apakah saya perlu membuka port 137-139, atau apakah port 445 cukup? Saya harus mengirimkan formulir dan mendapatkan persetujuan untuk membuka port firewall, dan saya tidak ingin meminta port terbuka lebih banyak daripada yang saya butuhkan. Semua mesin di sini adalah Windows XP atau yang lebih baru.

Catatan: ketika saya mengatakan "drive jaringan Windows", saya tidak sepenuhnya yakin apakah saya merujuk ke SMB atau CIFS, dan saya tidak sepenuhnya jelas tentang perbedaan antara kedua protokol.

Jonathan
sumber

Jawaban:

58

Port 137-139 untuk NetBios / Name resolution. Tanpanya Anda harus mengakses mesin berdasarkan alamat IP yang bertentangan dengan nama NetBIOS. Contoh \\192.168.1.100\share_namemenentang\\my_file_server\share_name

Jadi port 445 sudah cukup jika Anda dapat bekerja dengan alamat IP saja.

Tim
sumber
Di situs saya, nama NetBIOS selalu sama dengan nama DNS. Jadi jika saya merujuk ke mesin dengan nama host, apakah Windows dapat menemukan mesin melalui DNS tanpa menggunakan NetBIOS?
Jonathan
5
Selama Anda memiliki DNS yang berfungsi tersedia untuk klien itu sudah cukup.
Tim
1
apakah ini juga berfungsi dengan alamat IP publik? Apakah cukup untuk membuka port 445 di firewall modem / router ADSL?
Hrqls
11
@Hrqls Secara teori, ya, tapi AFAIK membuka SMB Anda ke seluruh dunia adalah ide yang sangat buruk.
Samuel Harmer
@ Styne666, sepenuhnya setuju. Terlebih lagi: membuka apa pun, yang tidak memiliki dukungan keamanan yang memadai, untuk seluruh Internet umumnya adalah ide yang buruk. Saya akan merekomendasikan untuk menggunakan mode transport IPsec untuk melindunginya setidaknya.
dess
7

Konfigurasi ini bekerja untuk saya: 137 / UDP, 138 / UDP, 139 / TCP dan 445 / TCP. Sumber dan informasi tambahan di: http://www.icir.org/gregor/tools/ms-smb-protocols.html .

Jadi ini adalah aturan iptables untuk server Samba saya:

# The router doesn't need SMB access.
-A INPUT -s 192.168.1.1 -p udp --dport 137 -j REJECT
-A INPUT -s 192.168.1.1 -p udp --dport 138 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 139 -j REJECT
-A INPUT -s 192.168.1.1 -p tcp --dport 445 -j REJECT

# Actual Samba ports
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
Juan
sumber
4
Mengingat bahwa OP bertanya tentang komputer Windows dan tingkat pemahaman mereka tentang iptables sama sekali tidak diketahui, ini akan lebih baik ditulis daripada sebagai file konfigurasi sistem yang sama sekali berbeda.
DarkMoon
1
Dalam bahasa Inggris biasa, UDP 137 dan 138, TCP 139 dan 445
Arlen Beiler