Je suis paresseux et donc j'aime quand tout est organisé convenablement, sans gestes inutiles. Parfois, je suis trop paresseux pour le faire confortablement.
Une fois que j'ai eu besoin d'organiser l'accès au serveur via SMB et en cherchant une solution, je suis tombé sur l'article suivant: Monter votre répertoire personnel Nikhef en utilisant SSH pour Windows 8 . C'était une solution simple et facile à utiliser que Putty a utilisée. Un peu plus tard, j'ai dû configurer cette solution sur un autre ordinateur et j'ai réalisé que Putty était ici superflu puisque le client ssh intégré basé sur OpenSSH est apparu dans Windows 10.
Sous la coupe - un schéma identique, en utilisant uniquement OpenSSH sous Windows 10.
Mon schéma est organisé comme suit:
- Samba s'exécute sur le serveur, le dossier racine avec les sites est partagé au nom de l'utilisateur www-data. Accès au serveur uniquement via ssh avec autorisation de clé. Serveur derrière NAT, port transféré uniquement pour ssh.
- Lors du processus de connexion à un compte sur une machine domestique sous Windows 10 via le système OpenSSH intégré, une connexion est établie avec le serveur avec autorisation par clé.
- Le port 445 de la machine distante est tunnelé vers le port local 44445 de la carte de bouclage réseau disponible à 10.255.255.1
- Sur l'adaptateur de bouclage 10.255.255.1, le port 44445 est proxy vers le 445 local. Ainsi, lors de la connexion à \\ 10.255.255.1 \, une boule de fichiers distante s'ouvre (qui, si nécessaire, est montée en tant que lecteur réseau).
Tout cela est automatique - la paresse triomphe. Look sûr, rapide et natif. N'importe quel éditeur peut ouvrir et éditer des fichiers sur un serveur distant ainsi que sur mon serveur local - sans problème en téléchargeant les fichiers édités et en leur attribuant les autorisations nécessaires. Cela étant dit, il n'y a aucun problème de sécurité avec Samba.
Alors - première étape par étape:
Côté 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 — .