CIFS über SSH mit Standard-Windows 10-Tools

Ich bin faul und deshalb mag ich es, wenn alles bequem organisiert ist, ohne unnötige Gesten. Manchmal bin ich zu faul, um es bequem zu machen.



Als ich den Zugriff auf den Server über SMB organisieren musste und nach einer Lösung suchte, stieß ich auf den folgenden Artikel: Mounten Ihres Nikhef-Ausgangsverzeichnisses mit SSH für Windows 8 . Es war eine einfache und praktische Lösung, die Putty verwendete. Wenig später musste ich diese Lösung auf einem anderen Computer konfigurieren und stellte fest, dass Putty hier überflüssig war, da der auf OpenSSH basierende integrierte SSH-Client in Windows 10 erschien.



Unter dem Schnitt - ein identisches Schema, nur unter Verwendung von OpenSSH unter Windows 10.



Mein Schema ist wie folgt organisiert:



  1. Samba wird auf dem Server ausgeführt, der Stammordner mit Sites wird im Auftrag des WWW-Datenbenutzers freigegeben. Zugriff auf den Server nur über ssh mit Schlüsselberechtigung. Server hinter NAT, Port nur für ssh weitergeleitet.
  2. Beim Anmelden bei einem Konto auf einem Heimcomputer unter Windows 10 über das integrierte OpenSSH-System wird eine Verbindung zum Server mit Schlüsselautorisierung hergestellt.
  3. Port 445 des Remote-Computers wird an den lokalen Port 44445 des Netzwerk-Loopback-Adapters getunnelt, der unter 10.255.255.1 verfügbar ist
  4. Beim Loopback-Adapter 10.255.255.1 wird der Port 44445 an den lokalen 445 übertragen. Wenn Sie also eine Verbindung zu \\ 10.255.255.1 \ herstellen, wird eine Remote-Dateifreigabe geöffnet (die bei Bedarf als Netzwerklaufwerk bereitgestellt wird).


All dies geschieht automatisch - Faulheit triumphiert. Sicher, schnell und einheimisch aussehend. Jeder Editor kann Dateien sowohl auf einem Remote-Server als auch auf meinem lokalen Server öffnen und bearbeiten - ohne Probleme die bearbeiteten Dateien herunterzuladen und ihnen die erforderlichen Berechtigungen zuzuweisen. Davon abgesehen gibt es bei Samba keine Sicherheitsprobleme.



Also - erster Schritt für Schritt:



Fensterseite



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 — .




All Articles