忿忿的泥巴坨 发表于 2024-6-14 23:51:17

SSH & Samba

1. SSH的安装与设置

Secure Shell (SSH) 是一种网络协议,允许用户通过加密的通道安全地访问另一台计算机。SSH广泛用于远程登录系统、管理服务器和进行安全数据传输。在Ubuntu这样的Linux发行版中,安装和设置SSH服务是一项常见且相对简单的任务。以下是在Ubuntu系统上安装和设置SSH的步骤。
(1) 安装SSH服务器

~$ sudo apt-get update
~$ sudo apt install openssh-server安装完成后,SSH服务会自动启动。你可以利用以下命令来检查SSH服务的状态:
~$ sudo systemctl status ssh如果服务正在运行,你将看到关于SSH服务的详细信息。
ubuntu@Ubuntu20:~$ systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: e>
   Active: active (running) since Thu 2024-06-13 00:00:31 CST; 1h 0min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 929 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 945 (sshd)
      Tasks: 1 (limit: 4607)
   Memory: 2.4M
   CGroup: /system.slice/ssh.service
             └─945 sshd: /usr/sbin/sshd -D 0 of 10-100 startups

Warning: some journal files were not opened due to insufficient permissions.

ubuntu@Ubuntu20:~$ (2)通过CMD连接到SSH服务器,当然也可以通过MobaXterm进行连接。

C:\Users>ssh ubuntu@192.168.56.2
ubuntu@192.168.56.2's password:
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.15.0-107-generic x86_64)

* Documentation:https://help.ubuntu.com
* Management:   https://landscape.canonical.com
* Support:      https://ubuntu.com/advantage

441 updates can be applied immediately.
356 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable

New release '22.04.3 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Your Hardware Enablement Stack (HWE) is supported until April 2025.
Last login: Thu Jun 13 00:01:22 2024 from 192.168.56.1
ubuntu@Ubuntu20:~$(3)SSHD设置文件

SSH的设置文件分为客户端文件ssh_config与服务端文件sshd_config,这里主要说的是服务端设置,如果你的系统是装在物理机上,项目组内共享,建议进行一定的安全设置。
以限定登录IP为例,在/etc/ssh/sshd_config文件中利用 AllowUsers 与 DenyUsers 两个参数来设置允许哪些用户通过哪些主机来访问,并限制哪些主机通过哪些用户来访问。
关于设置文件内容的详细信息,请参考以下官方文档:
OpenSSHhttps://www.openssh.com/ssh_confighttps://man.openbsd.org/ssh_configsshd_confighttps://man.openbsd.org/sshd_config在/etc/ssh/sshd_config文件最后添加一行,格式为“DenyUsers user@IP”,其中user指用户名,IP指客户端IP,如果想拒绝某个IP上的所有登录哀求,可写为“DenyUsers *@IP”。DenyUsers user1@IP1
#拒绝用户名为user1的用户在IP为IP1的主机上进行远程连接,但user1可在其他主机上连接,同时其他用户可以在IP为IP1的主机上远程连接
DenyUsers user1@*
#拒绝user1的所有连接请求
DenyUsers *@IP1
#拒绝IP为IP1的主机上的所有链接当然,这里也可以通过/etc/hosts.allow与/etc/hosts.deny文件来实现对SSH哀求的访问限制,对于公用的服务器,建议设置合理的限制,只允许一定范围内的用户可以访问。
2. Samba的安装与设置

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端步伐构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
对于物理机上的文件共享,Infra部门有相应的要求,请按照 关于 Linux (Ubuntu)上的 文件共享 安全 进行相应的设置。
(1)安装Samba

~$ sudo apt-get install samba(2)备份设置文件

~$ cd /etc/samba
~$ sudo cp smb.conf smb.conf.bak关于samba设置的参数详解请参考官方文档。
下面临一些常见的参数做一些说明
设置项说明global全局设置:这部分设置项的内容对整个Samba服务器都有效homes宿主目次共享设置:设置Linux用户的默认共享,对应用户的宿主目次。当用户访问服务器中与自己用户名同名的共享目次时,通过验证后将自动映射到该用户的宿主文件夹中printers打印机共享设置:如果需要共享打印机设备,可以在这部分进行设置workgroup设置服务器地点的工作组名称server string设置服务器的说明笔墨,用于描述Samba服务器security设置服务器的安全级别,可设为以下三个值中的一 个:user(需由本服务器验证用户名及密码)、server(需指定另一台服务器来验证用户名及密码)、ads(由Windows域控制器验证用户名及密码)log file设置 Samba 服务器的日志文件,默认存放在 /var/log/samba/目次下,表现将日志文件保存到/var/log/samba/目次中,按每个客户机创建 一 个日志文件,其中"%m"变量表现客户端主机名或IP地址passwd backend设置共享账户文件的类型, 默认利用tdbsam (TDB数据库文件)。若网络内拥有LDAP目次认证,这里可以改用ldapsam数据库文件;别的,若要兼容旧版的Samba密码文件,也可以将类型设为smbpasswdcomment设置对应共享目次的注释、说明信息path设置对应共享目次在服务器中的文件夹路径browseable设置该共享目次在“ 网上邻居 ”中是否可见, 设置为no时相当于隐藏共享目次guest ok设置是否所有人都可以访问共享目次, 与"public"设置项的作用类似writable设置该共享目次是否可写, 与"read only"设置项的作用相反,即使"read only = yes", "writable = yes"依然有效(3)添加samba用户,修改smb.conf文件
想要登录smaba的用户必须是系统中已经存在的用户,这里我们添加一个叫test的新用户,系统会为新添加的用户创建一个同名的组。用于共享文件的用户,不建议添加sudo权限,平凡用户即可。
~$ sudo useradd -d /home/test -m test
#-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
#/home/test是主目录,test是用户名
~$ sudo passwd test
#为test设置登陆密码,这里的密码是test登录系统的密码,新添加的用户默认是lock的。
~$ sudo smbpasswd -a test
#为用户test添加登录samba的密码,这个密码可以跟前面设置的登陆密码不一致。
~$ sudo pdbedit -L
# 查看samba用户修改smb.conf文件,在文件末尾添加如下内容

    comment = Share document
    path = /home/test
    security = user
    public = no
    browseable = no
    guest ok = no
    read only = yes
    valid users = test
    deadtime = 10
    load printers = no检查smb.conf,是否有错误
~$ sudo testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions            //按Enter键输出当前的配置清单
~$重启samba
~$ sudo service smbd restart在windows端连接是可能会遇到连接错误的提示,根本缘故原由是由于Windows 10 及以上系统 SMB 客户端有一条安全规则,默认克制不安全的 Lanmam 工作站登录(即不允许 guest 登录),保障 SMB 安全。Linux 下 samba 的默认设置是,用户登陆失败后映射到 guest 账户。
https://img2024.cnblogs.com/blog/1975317/202406/1975317-20240613005831036-1186248323.png
百度的解决方案大部分是选择“Enable insecure guest logons", 也就是启用不安全的来宾登录战略,这里不建议修改这个设置,可以通过修改samba服务端的默认设置,即在smb.conf中设置,不允许guest访问。
#/etc/samba/smb.conf
#map to guest = bad user
修改为
map to guest = never
#重启smba服务
~$ sudo service smba restartwindows端登录,注意路径后面的符号"$",完整路径包含”$", 如果直接访问 \192.168.56.2,会表现空缺,前面的smb.conf中将共享文件夹名称隐藏了,只有手动拼写完整路径,才能看到Share路径。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: SSH & Samba