Saya malas dan karena itu saya suka ketika semuanya diatur dengan nyaman, tanpa gerakan yang tidak perlu. Terkadang saya terlalu malas untuk membuatnya nyaman.
Setelah saya perlu mengatur akses ke server melalui SMB dan ketika mencari solusi, saya menemukan artikel berikut: Memasang direktori home Nikhef Anda menggunakan SSH untuk Windows 8 . Itu adalah solusi sederhana dan mudah digunakan yang digunakan Putty. Beberapa saat kemudian, saya harus mengonfigurasi solusi ini di komputer lain dan saya menyadari bahwa Putty tidak berguna di sini karena klien ssh bawaan berdasarkan OpenSSH muncul di Windows 10.
Di bawah potongan - skema yang identik, hanya menggunakan OpenSSH di bawah Windows 10.
Skema saya diatur sebagai berikut:
- Samba berjalan di server, folder root dengan situs dibagikan atas nama pengguna www-data. Akses ke server hanya melalui ssh dengan otorisasi kunci. Server di belakang NAT, port hanya diteruskan untuk ssh.
- Dalam proses masuk ke akun di mesin rumah di Windows 10 melalui sistem OpenSSH bawaan, koneksi dibuat ke server dengan otorisasi berdasarkan kunci.
- Port 445 dari mesin jarak jauh disalurkan ke port lokal 44445 dari adaptor loopback jaringan yang tersedia di 10.255.255.1
- Pada adaptor loopback 10.255.255.1 port 44445 diproksikan ke lokal 445. Jadi, saat menghubungkan ke \\ 10.255.255.1 \, bola file jarak jauh terbuka (yang, jika perlu, dipasang sebagai drive jaringan).
Semua ini otomatis - kemalasan menang. Aman, cepat, dan tampak asli. Editor mana pun dapat membuka dan mengedit file di server jauh maupun di server lokal saya - tanpa masalah mengunduh file yang diedit dan mengaturnya dengan izin yang diperlukan. Karena itu, tidak ada masalah keamanan dengan Samba.
Jadi - langkah demi langkah pertama:
Sisi WINDOWS
OpenSSH. Windows 10 Windows Server 2019 SSH OpenSSH. . –
ssh

— "", .
1.
loopback- . .
hdwwiz.exe

« » ( Windows 10 Pro).
«» -> « , » -> « » -> «Microsoft –> Microsoft KM-Test» -> «»
, , devcon.exe, .
CMD ( ).
netsh interface show interface

. Ethernet 2.


:
netsh interface ip set address name="Ethernet 2" source=static address=10.255.255.1 mask=255.255.255.0
10.255.255.1
, TCP- 445, Windows lanmanserver . lanmanserver portproxy, .
( «start=» !!!):
sc config lanmanserver start= demand
sc config iphlpsvc start= auto
10.255.255.1 44445 445
netsh interface portproxy add v4tov4 listenaddress=10.255.255.1 listenport=445 connectaddress=10.255.255.1 connectport=44445
, lanmanserver .
loopback-,
netstat -an | find ":445 "
TCP 10.255.255.1:445 0.0.0.0:0 LISTENING
. "0.0.0.0:445" — - .
netsh interface portproxy show v4tov4
2.
. , .
mkdir %APPDATA%\CIFSoverSSH
cd %APPDATA%\CIFSoverSSH
ssh- ( , : cifsoversshkey)
ssh-keygen -t rsa -N "" -f cifsoversshkey
. , OpenSSH UNPROTECTED PRIVATE KEY FILE! . , Windows. GUI, . Windows :
icacls cifsoversshkey /RESET
icacls cifsoversshkey /grant _:F /inheritance:r
, .
icacls cifsoversshkey
, OpenSSH !
cifsoverssh.cmd :
call cmd /c start "" /B C:\Windows\System32\OpenSSH\ssh.exe user@111.111.111.111 -p remoteport -i %APPDATA%\CIFSoverSSH\cifsoversshkey -L 10.255.255.1:44445:localhost:445 -N -o "StrictHostKeyChecking=no"
:
user@111.111.111.111 – linux @
3.
: powershell -nologo -noninteractive -windowStyle hidden -command "%APPDATA%\CIFSoverSSH\cifsoversshkey.cmd"
powershell . CMD , , .
:
schtasks /CREATE /RU %username% /TN "CIFS over SSH" /TR "powershell.exe -nologo -noninteractive -windowStyle hidden -command %APPDATA%\CIFSoverSSH\cifsoversshkey.cmd" /SC ONLOGON /DELAY 0000:10 /IT /RL highest
Windows .
Linux
, ssh- .
ssh windows-
C:\Windows\System32\OpenSSH\ssh.exe user@111.111.111.111 -p remoteport
, ~/.ssh/authorized_keys ( – ).
mkdir ~/.ssh && touch ~/.ssh/authorized_keys
, windows- ( %APPDATA%\CIFSoverSSH\cifsoversshkey.pub). . , .
Samba ( Debian)
apt update && apt install samba
mv /etc/samba/smb.conf /etc/samba/smb.conf.old
touch /etc/samba/smb.conf
:
[global]
realm = webserver
server string = Web server
workgroup = WORKGROUP
# Setup charsets
dos charset = cp1251
unix charset = utf8
# Disable printers
load printers = No
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
# Setup logging
log file = /var/log/smbd.log
max log size = 50
max xmit = 65536
debug level = 1
# Setup daemon settings
domain master = No
preferred master = Yes
socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=65536 SO_RCVBUF=65536 SO_KEEPALIVE
os level = 65
use sendfile = Yes
dns proxy = No
dont descend = /proc,/dev,/etc
deadtime = 15
# Enable synlinks
unix extensions = No
wide links = yes
follow symlinks = yes
# Securtity settings
security = user
map to guest = Bad Password
guest account = nobody
create mask = 0664
directory mask = 0775
hide dot files = yes
client min protocol = SMB2
client max protocol = SMB3
[ShareName]
comment = Sites folder
path = /home/web
force user = www-data
force group = www-data
read only = No
guest ok = Yes
writable = yes
create mask = 0664
directory mask = 2775
. ShareName. Path = , . force user force group linux-, . - – www-data
Samba
systemctl restart smbd
Windows
exit
. windows ( ).
\\10.255.255.1\ShareName — .