一、samba服务器
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,可以像访问windows的共享文件夹一样访问linux的共享文件夹或打印机。
安装和配置samba
sudo apt-mark hold teamviewer #标记teamviewer 这个软件不更新,速度太慢
sudo apt update #检查更新
sudo apt upgrade #安装更新
sudo apt install samba #安装samba
cd /etc/samba #修改配置文件
sudo vim smb.conf
设置共享目录
[global]
server string = %h server (Samba, Ubuntu) #%h host主机名,用hostname命令查看,或查看/etc/hostname这个文件
# Most people will want "standalone sever" or "member server". #独立服务器或成员服务器
server role = standalone server #服务器角色 独立服务器
passdb backend = tdbsam #使用passdb.tdb这个数据库文件,存储用户密码信息,不同版本位置不同,此版本在/var/lib/samba/private目录下
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
#当改变SMB密码的时,用SMB密码同步Unix密码
#系统增加使用者时,会自动将该使用者的密码也更新到/etc/smbpasswd内
unix password sync = yes #此处同步包含上两行表达含义,但由于中文语言问题,常不成功,详见https://www.pigo.idv.tw/archives/6
[homes]
browseable = no #[homes]这个目录名称不可见,登录后只能看到用户名
valid users = %S #是指任何可登陆用户都可以访问 用户是passwd中的>500号的用户。可以尝试设置成msh,tom
create mask = 0700 #创建新文件或文件夹时默认的掩码都是0700,也就是所有者有读、写、执行权限,其他用户无任何权限。
directory mask = 0700
设置samba用户密码
#建立samba用户,该用户首先必须是系统用户
sudo smbpasswd -a msh #创建msh用户,samba账号的密码可以与ubuntu账号密码不同,但用户名必须相同
sudo smbpasswd -a #创建root用户,无需设置
服务管理
sudo systemctl start smbd #启动服务
sudo systemctl status smbd #查看服务状态
windows中访问此服务器
-
打开运行窗口,输入快捷键:win+r
-
启用网络发现和文件共享(根据需要)
设置共享打印机(此操作可忽略 )
- 安装pdf打印机并修改配置文件
sudo apt install printer-driver-cups-pdf
sudo vim cupsd.conf
#cupsd.conf中增加下行
Listen 192.168.127.128:9100
sudo systemctl restart cups
浏览器输入http://192.168.127.128:9100/,若显示已禁止,继续修改cupsd.conf
<Location />
Order allow,deny
Allow From 192.168.127.0/24 #增加此行
</Location>
<Location /admin>
Order allow,deny
Allow From 192.168.127.0/24 #增加此行
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow From 192.168.127.0/24 #增加此行
</Location>
此时浏览器输入http://192.168.127.128:9100应能访问
-
windows添加打印机
如果打印成功,登录用户在自己home/pdf目录下,匿名用户在/var/spool/cups-pdf/ANONYMOUS
cups服务一旦启动,windows可以添加打印机
/var/spool/cups-pdf
cups-pdf.conf
-
行打印命令 测试
lp -d PDF f1 #行打印命令(line printer)打印f1文件 PDF为打印机名称 word文档用libreoffice打印
lpq -P PDF #显示打印队列中的打印任务的状态信息及其所包含的打印任务 -P显示中的打印机上的打印队列状态 PDF(打印机名称)
lprm -P PDF a #删除打印任务
sudo systemctl restart cups
ufw防火墙
ufw(uncomplicated firewall)是ubuntu自带简单防火墙
- 以下是常用命令,有数字的行需要练习:
1.sudo apt install ufw #如果没有安装,执行此命令
2.sudo ufw status verbose #查看 ufw 的状态
sudo ufw --help #查看 ufw 的帮助信息
sudo ufw app list #查看所有应用程序的配置
sudo ufw app info '应用程序名字' #查看更多有关应用程序配置文件和包含规则的更多信息
sudo ufw allow ssh #打开 SSH 连接 这个必须要先配置,避免服务开启后远程连接中断
3.sudo ufw enable #启用 ufw,启用时无法直接使用ip访问
4.sudo ufw disable #关闭防火墙
5.sudo ufw status verbose #启用后查看
6.sudo ufw allow samba #新建规则,同时打开应用程序端口
7.sudo ufw status numbered #查看每条规则前数字
8.sudo ufw delete 1 #删除编号为1的规则,上条命令可以看到数字
sudo ufw allow http #打开80端口 - HTTP
sudo ufw allow 8080/tcp #打开8080端口 - HTTP
#备注:这里注意 http 和 tcp 区别,udp 和 tcp 一样
9.sudo ufw allow 137:138/udp #允许访问某个范围的端口,udp 一样
sudo ufw allow 8000:8100/tcp
10.sudo ufw allow 139/tcp #此处两句执行后,应可以访问samba服务器
10.sudo ufw allow 445/tcp
sudo ufw allow from 55.56.57.58 #允许此IP地址访问本机所有端口
sudo ufw deny from 192.168.92.1/24 #拒绝某个子网访问本句所有端口
#samba 的端口号 137udp 138udp 139tcp 445tcp
#以下三条语句未测试:
#允许55.56.57.58访问本机22端口,需要指定 IP 地址后面的任何端口和端口号:
sudo ufw allow from 55.56.57.58 to any port 22 #需测试
#允许子网
#允许连接到 IP 地址的子网的命令与使用单个 IP 地址时基本相同,区别是需要指定网络掩码。
sudo ufw allow from 192.168.1.0/24 to any port 3306
#允许连接到特定的网络接口
#为了允许在特定端口上访问,我们假设端口 3306 仅适用于特定的网络接口 eth2,那么您需要指定允许输入以及网络接口的名称:
sudo ufw allow in on eth2 to any port 3306
- 说明:
ufw规则文件在/etc/ufw/下,按顺序before.rules,user.rules,after.rules,before.rules规则为UFW在运行用户自定义的规则之前运行的规则,after.rules为UFW启用用户自定义规则之后运行的规则。规则有冲突时,先设置的规则会提前生效,后面规则不会覆盖上面规则