• linux服务器死机了怎么办?

       linux系统一直都是以开源和稳定著称,相对于Windows来说,linux在稳定性上有着巨大的优势,但是,一个如此庞大复杂的系统,死机的情况还是无法绝对避免的。当linux系统宕机时,我们该如何快速的应对呢?     inux系统死机情况也分很多种,最容易导致的就是系统负载过高。还有运行耗用内存极大的程序、应用。像这类情况还是比较容易应对的,当然,这个时候就无法依赖图形界面,比如我们冲Windows系统遗留下来的昧习 ,调出Gnome系统监视器,这样可能会加重卡死的状况。     我们不要慌,linux不像Windows,可以利用强大的文字界面操作,按Ctrl-Alt-F1,就会切换到TTY文字界面。再就需要用户名密码登入。需要注意的是键盘输入的速度可能会比较慢。下面在提示符后面输入top回车,这时会看到一张动态的表,上面列出了耗用资源最多的进程。观察它刷新一两次,按q退出,然后输入kill ,其中的 PID 你可以在 top 里面看到。这个时候应该会快了不少,如果你发现没有成功结束掉,就再输入 kill -KILL ,这次基本上就没问题了。     除了上面 这种情况外,一些底层软件的 bug 也可能导致一些奇怪的死机问题。以前有个用户就因为莫名其妙的死机强制重启把 ext4 的分区给伤了。最后是sysreccd修复了,貌似是分区表部分损坏,死机时键鼠均无反应。一般来说,系统负载高导致的死机,最可怕键盘的就是键鼠都没反应了。     这时我们可以利用reisub,这个方法可以在各种情况下安全地重启计算机。在键盘上找到一个叫做“Sys Rq”的键,在台机的键盘上通常与 Prt Sc 共键,在笔记本可能在其他位置,如 Delete以台机为例,要使用这种方法需要按住 Alt-Print(Sys Rq),然后依次按下 reisub 这几个键,按完b系统就会重启。     其实Sys Rq是一种叫做系统请求的东西,按住 Alt-Print 的时候就相当于按住了 Sys Rq 键,这个时候输入的一切都会直接由 Linux 内核来处理,它可以进行许多低级操作。     这个时候reisub中的每一个字母都是一个独立操作,他们分别表示:unRaw 将键盘控制从 X Server 那里抢回tErminate 给所有进程发送 SIGTERM 信号,让他们自己解决善后kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭Sync 将所有数据同步至磁盘Unmount将所有分区挂载为只读模式reBoot重启。

    2021.12.21 浏览:203
  • Web服务器安全配置策略:如何预防黑客爆破Web服务器配置

    一个好多WEB服务器安全配置策略,能够防止黑客爆破WEB服务器配置,毕竟,WEB服务器安全是大家首要关心的问题,黑客通过软件或者程其他方式暴力破解WEB服务器后台密码,拿到服务器后台权限对WEB服务器配置执行挂马、修改WEB服务器后台等操作。MMCloud小编就WEB服务器安全配置策略,讲一下如何预防黑客爆破WEB服务器后台密码。 WEB服务器安全配置策略 WEB服务器安全配置策略多种多样,可以通过360网站安全卫士、WEB服务器安全狗、护卫神等WEB服务器安全防护软件,进行防御黑客爆破WEB服务器后台密码。 MMCloud小编觉得,大家也可以修改WEB服务器配置新的端口和用户名,默认端口和默认服务器用户名,也能在一定程度上避免黑客爆破WEB服务器配置。 我们还能设置WEB服务器配置密码安全策略进行防御黑客暴力破解服务器密码。WEB服务器配置密码策略为输入错误规定的错误自动锁定。那样,黑客在尝试暴力破解的时候,输入次数受限,就能够短期内暂时锁定。比如:设置输入密码错误三次,然后锁定账户。 WEB服务器安全配置流程 打开开始-管理工具-本地安全策略-账户策略-账户锁定策略。 首先设置 账户锁定阈值,如:设置3次登录失败锁定 ͼ1 设置完成后,点击确定。 然后设置 账户锁定时间,如图2: ͼ2 设置完成后,点击确定。设置完成就可以输入错误三次密码自动锁定账户了。 多数WEB服务器安全防护软件都可以开启服务器账户保护功能,个人也能安装WEB服务器安全防护软件进行服务器防御。根据个人的实际需求调整。如果只是MMCloud小编这样的个人站点,可以咨询相关的服务器租用提供商。 WEB高速发展阶段,WEB服务器安全也成了首要难题,防止黑客手段暴力破解WEB服务器安全配置的方法,肯定还有更多,欢迎网络安全或者WEB服务器安全方面的专业人士批评指正!

    2021.12.21 浏览:214
  • 租用香港服务器你需要了解这些

    金融、外贸、电商、游戏行业,特别青睐中国香港服务器租用,不仅免备案,手续简单,带宽足,也安全,价格还挺实惠。这里MMCloud介绍租用香港服务器需要了解的几个方面? 香港服务器租用购买须知 香港服务器租用也称为香港服务器整租。指由香港服务器租用公司提供硬件,负责基本软件的安装、配置,负责香港服务器上基本服务功能的正常运行,让用户独享香港服务器的资源,并服务其自行开发运行的程序。 当一个客户或者是网站(尤其是小型客户)对香港服务器的相关信息并没有很深入的研究,对香港服务器的选型也没有经验时,就需要有人能够提供这种一站式的IDC服务模式。在香港服务器提供商处采用租用的方式,并在安装相应的系统软件及应用软件以实现用户独享的专用香港服务器。 香港服务器租用的优点 拥有香港服务器全部的管理权,你可以不受限制的来设置您的香港服务器,来适应您的网站,为您带来最大的收益;香港服务器上没有它人的网站,不会因为安全性或是其它因素造成您网站的中断或其它损失;独立的香港服务器拥有更多的带宽,让您网站的速度更快,承受更大的流量节约成本 香港服务器租用的缺点 主要是用户大部分情况下都看不到自己租用的香港服务器什么样子,一些比较厚道的运营商倒是会如实的告诉客户他们所租用的香港服务器是什么品牌、什么型号。不过也会有极少数IDC采用自行组装的香港服务器作为租用业务使用以便降低成本,所以能够提供给用户的就是香港服务器的简单配置资料,至于采用什么品牌的主板甚至主板芯片是什么,这些都是用户远程管理香港服务器的时候才能查看到 香港服务器租用流程 1、选择租用香港服务器的型号、带宽和产权 2、签订香港服务器租用合同 3、付款 4、租用机上架 5、机房分配IP地址,香港服务器上架成功 6、用户获取IP地址、香港服务器账号及密码,用户可正式使用香港服务器 MMCloud提供香港服务器租用、香港站群服务器、香港cn2服务器、香港高防服务器、香港云服务器等,客服QQ400-638-8808 官网:wwW.IdcbEst.cOm

    2021.12.21 浏览:195
  • 在Ubuntu 20.04/18.04上设置自己的WireGuard VPN服务器

    本教程将向您展示如何在Ubuntu上设置自己的WireGuard VPN服务器。WireGuard是专门为Linux内核设计的。它运行在Linux内核中,允许您创建快速、现代、安全的VPN隧道。 WireGuard VPN功能 轻量级和超高速,将OpenVPN吹出水面。 跨平台。WireGuard可以在Linux、BSD、macOS、Windows、Android、iOS和OpenWRT上运行。 用户身份验证是通过交换公钥来完成的,类似于SSH密钥。 它将静态隧道IP地址分配给VPN客户端。有些人可能不喜欢它,但在某些情况下它可能非常有用。 移动设备可以在Wi-Fi和移动网络之间无缝切换,而不会中断任何连接。 它的目标是在大多数使用情况下取代OpenVPN和IPSec。 WireGuard是我选择的VPN协议,无需为我的专用网络设置TLS加密。 要求 要学习本教程,您需要一个VPS(虚拟专用服务器),可以自由访问被屏蔽的网站(在您的国家或互联网过滤系统之外)。我推荐Kamatera VPS,其特点是: 30天免费试用。 起价为每月4美元(1GB内存) 基于KVM的高性能VPS 世界各地的9个数据中心,包括美国、加拿大、英国、德国、荷兰、香港和ISRALL。 按照下面链接的教程在Kamatera创建Linux VPS服务器。 如何在Kamatera上创建Linux VPS服务器 一旦你有了运行Ubuntu的VPS,请按照下面的说明操作。 本教程假设VPN服务器和VPN客户端都运行Ubuntu操作系统。 第一步:在Ubuntu服务器和桌面上安装WireGuard 登录Ubuntu服务器,然后运行以下命令安装WireGuard。 Ubuntu 20.04 Ubuntu20.04附带Linux内核5.4,它有一个内置的wireguard模块。 sudo apt update sudo apt install wireguard wireguard-tools Ubuntu 18.04 Ubuntu18.04附带Linux内核4.15,因此用户需要先安装硬件支持内核(HWE),它将在您的系统上安装内核5.4。 sudo apt update sudo apt install linux-generic-hwe-18.04-edge 重新启动Ubuntu 18.04服务器并安装WireGuard。 sudo shutdown -r now sudo apt install wireguard wireguard-tools wireguard-dkms 然后使用相同的命令在本地Ubuntu计算机(VPN客户端)上安装WireGuard。请注意,您还需要在客户端上安装openresolv包来配置DNS服务器。 sudo apt install openresolv 第2步:生成公钥/私钥对 服务器 在Ubuntu服务器上运行以下命令,创建一个公钥/私钥对,它将保存在/etc/wireguard/目录下。 wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key 客户 运行以下命令在本地Ubuntu计算机(VPN客户端)上创建公钥/私钥对。 wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key 步骤3:创建WireGuard配置文件 服务器 使用命令行文本编辑器(如Nano)在Ubuntu服务器上创建WireGuard配置文件。wg0将是网络接口名称。 sudo nano /etc/wireguard/wg0.conf 复制以下文本并将其粘贴到配置文件中。您需要使用自己的服务器私钥和客户端公钥。 [Interface] Address = 10.10.10.1/24 ListenPort = 51820 PrivateKey = cD+ZjXiVIX+0iSX1PNijl4a+88lCbDgw7kO78oXXLEc= [Peer] PublicKey = AYQJf6HbkQ0X0Xyt+cTMTuJe3RFwbuCMF46LKgTwzz4= AllowedIPs = 10.10.10.2/32 哪里: 地址:指定VPN服务器的专用IP地址。这里我使用的是10.10.10.0/24网络范围,所以它不会与您的家庭网络范围冲突。(大多数家庭路由器使用192.168.0.0/24或192.168.1.0/24)。10.10.10.1是VPN服务器的专用IP地址。 PrivateKey:VPN服务器的私钥,可在/etc/wireguard/server_private中找到。服务器上的密钥文件。 ListenPort:WireGuard VPN服务器将在默认的UDP端口51820上侦听。 公钥:VPN客户端的公钥,可以在/etc/wireguard/client_public中找到。客户端计算机上的密钥文件。 AllowedIP:VPN客户端允许使用的IP地址。在本例中,客户端只能在VPN隧道内使用10.10.10.2 IP地址。 保存并关闭文件。(要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。按Ctrl+X退出。) 更改文件权限模式,以便只有root用户可以读取文件。 sudo chmod 600 /etc/wireguard/ -R 客户 使用命令行文本编辑器(如Nano)在本地Ubuntu计算机上创建WireGuard配置文件。wg-client0将是网络接口名称。 sudo nano /etc/wireguard/wg-client0.conf 复制以下文本并将其粘贴到配置文件中。您需要使用自己的客户端私钥和服务器公钥。 [Interface] Address = 10.10.10.2/24 DNS = 10.10.10.1 PrivateKey = cOFA+x5UvHF+a3xJ6enLatG+DoE3I5PhMgKrMKkUyXI= [Peer] PublicKey = RaoAdsIEIwgV9DHNSubxWVG+nZ1GP/c3OU6A/efBJ0I= AllowedIPs = 0.0.0.0/0 Endpoint = 12.34.56.78:51820 PersistentKeepalive = 25 哪里: 地址:指定VPN客户端的专用IP地址。 DNS:指定10.10.10.1(VPN服务器)作为DNS服务器。它将通过resolvconf命令进行配置。您还可以为冗余指定多个DNS服务器,如下所示:DNS=10.10.10.1 8.8.8.8 PrivateKey:客户端的私钥,可以在/etc/wireguard/client_private中找到。客户端计算机上的密钥文件。 公钥:服务器的公钥,可以在/etc/wireguard/server_public中找到。服务器上的密钥文件。 AllowedIPs:0.0.0.0/0代表整个互联网,这意味着所有到互联网的流量都应该通过VPN路由。 端点:VPN服务器的公共IP地址和端口号。将12.34.56.78替换为服务器的真实公共IP地址。 PersistentKeepalive:每25秒向对等方发送一个经过身份验证的空数据包,以保持连接有效。如果未启用PersistentKeepalive,VPN服务器可能无法ping VPN客户端。 保存并关闭文件。 更改文件模式,以便只有root用户可以读取文件。 sudo chmod 600 /etc/wireguard/ -R 步骤4:在服务器上启用IP转发 为了让VPN服务器在VPN客户端和Internet之间路由数据包,我们需要启用IP转发。编辑sysctl。conf文件。 sudo nano /etc/sysctl.conf 在该文件末尾添加以下行。 net.ipv4.ip_forward = 1 保存并关闭文件。然后使用下面的命令应用更改。p选项将从/etc/sysctl加载sysctl设置。conf文件。此命令将在系统重新启动时保留所做的更改。 sudo sysctl -p 步骤5:在服务器上配置IP伪装 我们需要在服务器防火墙中设置IP伪装,以便服务器成为VPN客户端的虚拟路由器。我将使用UFW,它是iptables防火墙的前端。在Ubuntu上通过以下方式安装UFW: sudo apt install ufw 首先,需要允许SSH通信。 sudo ufw allow 22/tcp 接下来,找到服务器主网络接口的名称。 ip -c a 正如你所看到的,在我的Ubuntu服务器上,它被命名为enp3s0。 要配置IP伪装,我们必须在UFW配置文件中添加iptables命令。 sudo nano /etc/ufw/before.rules 默认情况下,过滤器表有一些规则。在该文件末尾添加以下行。用您自己的网络接口名称替换enp3s0。 # NAT table rules *nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.10.10.0/24 -o enp3s0 -j MASQUERADE # End each table with the 'COMMIT' line or these rules won't be processed COMMIT 在Nano文本编辑器中,按Ctrl+W,然后按Ctrl+V,可以转到文件的末尾。 以上几行将在nat表的后路由链的末尾附加(-A)条规则。它将把你的虚拟专用网络与互联网连接起来。同时也会对外界隐藏你的人际网络。所以互联网只能看到VPN服务器的IP,却看不到VPN客户端的IP,就像你的家庭路由器隐藏了你的私人家庭网络一样。 确保每行开头没有空格。 默认情况下,UFW禁止数据包转发。我们可以允许为我们的专用网络转发。在该文件中找到ufw BEFORT forward链,并添加以下3行,如果源IP或目标IP在10.10.10.0/24范围内,这3行将接受数据包转发。 # allow forwarding for trusted network -A ufw-before-forward -s 10.10.10.0/24 -j ACCEPT -A ufw-before-forward -d 10.10.10.0/24 -j ACCEPT 保存并关闭文件。然后启用UFW。 sudo ufw enable 如果以前启用过UFW,那么可以使用systemctl重新启动UFW。 sudo systemctl restart ufw 现在,如果使用以下命令列出NAT表的后路由链中的规则: sudo iptables -t nat -L POSTROUTING 你可以看到化装规则。 UFW处理防火墙规则可能需要一些时间。如果伪装规则未显示,则再次重新启动UFW(sudo systemctl restart UFW)。 步骤6:在服务器上安装DNS解析程序 由于我们将VPN服务器指定为客户端的DNS服务器,因此需要在VPN服务器上运行DNS解析器。我们可以安装bind9 DNS服务器。 sudo apt install bind9 一旦安装,BIND将自动启动。您可以通过以下方式检查其状态: systemctl status bind9 样本输出: ● named.service - BIND Domain Name Server Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-05-17 08:11:26 UTC; 37s ago Docs: man:named(8) Main PID: 13820 (named) Tasks: 5 (limit: 1074) Memory: 14.3M CGroup: /system.slice/named.service └─13820 /usr/sbin/named -f -u bind 如果没有运行,请从以下内容开始: sudo systemctl start bind9 编辑绑定DNS服务器的配置文件。 sudo nano /etc/bind/named.conf.options 添加以下行以允许VPN客户端发送递归DNS查询。 allow-recursion { 127.0.0.1; 10.10.10.0/24; }; 保存并关闭文件。重新启动BIND9以使更改生效。 sudo systemctl restart bind9 然后,您需要运行以下命令以允许VPN客户端连接到端口53。 sudo ufw insert 1 allow in from 10.10.10.0/24 第7步:打开防火墙中的WireGuard端口 运行以下命令打开服务器上的UDP端口51820。 sudo ufw allow 51820/udp 第8步:启动WireGuard 服务器 在服务器上运行以下命令以启动WireGuard。 sudo systemctl start [email protected] 在系统启动时启用自动启动。 sudo systemctl enable [email protected] 使用以下命令检查其状态。其状态应为活动(已退出)。 systemctl status [email protected] 现在WireGuard服务器已准备好接受客户端连接。 客户 启动铁丝网。 sudo systemctl start [email protected] 在系统启动时启用自动启动。 sudo systemctl enable [email protected] 检查其状态: systemctl status [email protected] 现在进入这个网站:https://icanhazip.com/检查你的公共IP地址。如果一切顺利,它应该显示VPN服务器的公共IP地址,而不是客户端计算机的公共IP地址。 您还可以运行以下命令来获取当前的公共IP地址。 curl https://icanhazip.com 故障排除提示 不能用ping 您可以从VPN服务器ping到VPN客户端(ping 10.10.10.2),查看隧道是否工作。如果在ping中看到以下错误消息, ping: sendmsg: Required key not available 可能是AllowedIPs参数错误,比如输入错误。修复错误后,重新启动VPN服务器和VPN客户端。 另一个原因可能是您忘记在服务器配置文件中添加ListenPort=51820。 公共IP不会改变 如果VPN隧道成功建立,但客户端公共IP地址没有更改,那是因为UFW配置文件中的伪装或转发规则不起作用。我以前在/etc/ufw/中有一次输入错误。规则文件,这导致我的电脑无法浏览互联网。 请注意,我不建议在WireGuard配置文件的[Interface]部分使用SaveConfig=true。SaveConfig告诉WireGuard在关机时保存运行时配置。因此,如果在配置文件中添加额外的[Peer],然后重新启动WireGuard,新添加的配置将被覆盖。 在Linux内核中启用调试日志记录 如果使用Linux内核5.6+,可以使用以下命令启用WireGuard的调试日志记录。 sudo su - echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control 然后可以使用查看调试日志 sudo dmesg -wH 或 sudo journalctl -kf 重新启动 如果VPN仍然无法工作,请尝试重新启动VPN服务器。 sudo systemctl restart [email protected] 然后停止VPN客户端。 sudo systemctl stop [email protected] 并升级VPN客户端上的软件包。 sudo apt update; sudo apt upgrade 接下来,重新启动VPN客户端。 sudo shutdown -r now sudo systemctl start [email protected] 如果您的WiReGueVPN只能在重新启动之后工作,请考虑添加CRON作业来自动重新启动服务。 sudo crontab -e 在此文件中添加以下行。 @daily systemctl restart [email protected] WireGuard和;OpenConnect 在我的一台VPS服务器上,我安装了WireGuard和OpenConnect VPN服务器。速度测试如下。对你来说可能不会很快,因为我的电脑和VPN服务器之间的连接非常差。速度取决于VPN客户端和VPN服务器之间的延迟和数据包丢失率。 WireGuard是赢家。它比OpenConnect快近3倍。 TCP上的OpenConnect比UDP上的OpenConnect更快。惊喜 WireGuard在播放YouTube视频时可以达到52296kbps(约51Mbit/s)。 OpenConnect(采用TCP BBR算法的TLS)在播放YouTube视频时能够达到16504kbps(约16Mbit/s)。 在播放YouTube视频时,OpenConnect(UDP上的TLS)能够达到12997 Kbps(约12.7 Mbit/s)。 添加其他VPN客户端 WireGuard设计用于将一个IP地址与一个VPN客户端相关联。要添加更多VPN客户端,需要为每个客户端创建唯一的私钥/公钥对,然后在服务器的配置文件(/etc/wireguard/wg0.conf)中添加每个VPN客户端的公钥,如下所示: [Interface] Address = 10.10.10.1/24 PrivateKey = UIFH+XXjJ0g0uAZJ6vPqsbb/o68SYVQdmYJpy/FlGFA= ListenPort = 51820 [Peer] PublicKey = 75VNV7HqFh+3QIT5OHZkcjWfbjx8tc6Ck62gZJT/KRA= AllowedIPs = 10.10.10.2/32 [Peer] PublicKey = YYh4/1Z/3rtl0i7cJorcinB7T4UOIzScifPNEIESFD8= AllowedIPs = 10.10.10.3/32 [Peer] PublicKey = EVstHZc6QamzPgefDGPLFEjGyedJk6SZbCJttpzcvC8= AllowedIPs = 10.10.10.4/32 每个VPN客户端将有一个静态专用IP地址(10.10.10.2、10.10.10.3、10.10.10.4等)。重新启动WireGuard服务器,使更改生效。 sudo systemctl restart [email protected] 然后像往常一样在每个VPN客户端上添加WireGuard配置。 VPN连接中断时自动重启 有时VPN连接会由于各种原因而中断。您可以运行以下命令来检查VPN客户端是否可以ping VPN服务器的私有IP地址(10.10.10.1)。如果ping失败,则将执行右侧的命令以重新启动VPN客户端。|是Bash中的OR运算符。只有当左边的命令返回错误时,它才会执行右边的命令。 ping -c9 10.10.10.1 > /dev/null || systemctl restart [email protected] ping将进行9次,即9秒。可以在Bash shell中使用for循环,使整个命令运行6次,即54秒。 for ((i=1; i<=6; i++)) do (ping -c9 10.10.10.1 > /dev/null || systemctl restart [email protected]) done 现在,我们可以创建一个Cron作业来自动化这项任务。在VPN客户端上编辑根用户的crontab文件。 sudo crontab -e Bash不是Cron中的默认shell。可以在Crontab文件的开头添加以下行,使其成为默认值。 SHELL=/bin/bash 然后在文件末尾添加以下行。 * * * * * for ((i=1; i<=6; i++)) do (ping -c9 10.10.10.1 > /dev/null || systemctl restart [email protected]) done 这个Cron作业每分钟运行一次,每分钟有6次检查。保存并关闭文件。 高级用法 现在,我将向您展示如何在WireGuard VPN中使用策略路由、拆分隧道和VPN终止开关。请注意,不建议将它们相互结合使用。如果使用策略路由,则不应启用拆分隧道或VPN kill switch,反之亦然。本节面向高级用户。如果你是一个刚开始使用WireGuard的人,不知道它们的用途,那么就不要使用本节中的说明。 策略路由 默认情况下,VPN客户端上的所有流量都将通过VPN服务器路由。有时,您可能只希望根据传输层协议和目标端口路由特定类型的流量。这就是所谓的策略路由。 在客户端计算机上配置了策略路由,我们需要先停止VPN连接。 sudo systemctl stop [email protected] 然后编辑客户端配置文件。 sudo nano /etc/wireguard/wg-client0.conf 例如,如果在[interface]部分添加以下3行,WireGuard将创建一个名为“1234”的路由表,并将ip规则添加到路由表中。在本例中,只有当TCP用作传输层协议且目标端口为25时,即当客户端计算机发送电子邮件时,流量才会通过VPN服务器路由。 Table = 1234 PostUp = ip rule add ipproto tcp dport 25 table 1234 PreDown = ip rule delete ipproto tcp dport 25 table 1234 注意:为了配置策略路由,客户端应该运行Ubuntu20.04或更高版本。Ubuntu 18.04上的ip实用程序不支持ipproto和dport参数。 保存并关闭文件。然后启动WireGuard客户端。 sudo systemctl start [email protected] 如果要为TCP端口80和443路由流量,请使用以下语法。 Table = 1234 PostUp = ip rule add ipproto tcp dport 80 table 1234; ip rule add ipproto tcp dport 443 table 1234 PreDown = ip rule delete ipproto tcp dport 80 table 1234; ip rule delete ipproto tcp dport 443 table 1234 请记住,在更改策略路由规则之前,应该停止WireGuard VPN连接。 还可以指定如下所示的端口范围(TCP端口26到TCP端口10240)。 Table = 1234 PostUp = ip rule add ipproto tcp dport 26-10240 table 1234 PreDown = ip rule delete ipproto tcp dport 26-10240 table 1234 如果要同时指定TCP和UDP端口,请删除ipproto TCP。 Table = 1234 PostUp = ip rule add dport 26-10240 table 1234 PreDown = ip rule delete dport 26-10240 table 1234 您可能希望将VPN客户端配置为仅当通信量发送到特定IP地址时才使用VPN隧道。您可以使用to选项来实现这一点。 Table = 1234 PostUp = ip rule add to 10.0.0.0/24 table 1234 PreDown = ip rule delete to 10.0.0.0/24 table 1234 隧道分离 默认情况下,VPN客户端上的所有流量都将通过VPN服务器路由。下面介绍如何启用拆分隧道,这样只有到10.10.10.0/24 IP范围的流量才会通过WireGuard VPN进行隧道传输。当您想要为多个云服务器构建专用网络时,这非常有用,因为VPN客户端将在云服务器上运行,如果使用完整的VPN隧道,则可能会失去与云服务器的连接。 编辑客户端配置文件。 sudo nano /etc/wireguard/wg-client0.conf 改变 AllowedIPs = 0.0.0.0/0 到 AllowedIPs = 10.10.10.0/24 因此,只有当目标地址在10.10.10.0/24 IP范围内时,流量才会通过VPN路由。保存并关闭文件。然后重启WireGuard客户端。 sudo systemctl restart [email protected] 您还可以允许多个IP范围。假设VPN服务器还管理10.10.20.0/24网络,那么您可以在VPN客户端上配置AllowedIP,如下所示: AllowedIPs = 10.10.10.0/24, 10.10.20.0/24 因此VPN客户端可以通过VPN服务器访问10.10.20.0/24网络,反之亦然。 要添加单个IP地址,请使用以下语法。 AllowedIPs = 10.10.10.0/24, 10.10.20.0/24, 8.8.8.8/32 这会告诉客户端在与8.8.8.8通信时使用VPN服务器。 VPN终止开关 默认情况下,当VPN连接中断时,您的计算机可以通过普通网关访问Internet。您可能希望启用kill switch功能,它可以防止未加密的数据包通过非WireGuard接口流动。 停止WireGuard客户端进程。 sudo systemctl stop [email protected] 编辑客户端配置文件。 sudo nano /etc/wireguard/wg-client0.conf 在[interface]部分添加以下两行。 PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT 这样地: [Interface] Address = 10.10.10.2/24 DNS = 10.10.10.1 PrivateKey = cOFA+x5UvHF+a3xJ6enLatG+DoE3I5PhMgKrMKkUyXI= PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT [Peer] PublicKey = RaoAdsIEIwgV9DHNSubxWVG+nZ1GP/c3OU6A/efBJ0I= AllowedIPs = 0.0.0.0/0 Endpoint = 12.34.56.78:51820 PersistentKeepalive = 25 保存并关闭文件。然后启动WireGuard客户端。 sudo systemctl start [email protected] WireGuard接口中的多个地址 WireGuard接口可以有多个IP地址。例如,VPN客户端上可以有两个IP地址。 [Interface] Address = 10.10.10.2/24 Address = 10.10.10.3/24 .... 在这种情况下,您需要在VPN服务器上为此特定客户端允许多个IP地址,否则VPN客户端可能无法连接到VPN服务器。 [Peer] ... AllowedIPs = 10.10.10.2/32, 10.10.10.3/32 您可以使用以下命令检查属于网络接口的IP地址。 ip -c a 笔记 ifconfig命令只能显示网络接口的IP地址。 如果您在新系统中设置了另一个WireGuard接口。conf文件,然后它需要绑定到51820以外的端口,否则您将看到“地址已在使用”错误。 收尾 就这样!我希望本教程能帮助你在Ubuntu上安装和配置WireGuard。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门?

    2022.03.23 浏览:534
  • 在Ubuntu邮件服务器上设置Amavis和ClamAV

    这是Ubuntu邮件服务器从头开始教程系列的第11部分。在本文中,我将向您展示如何使用Amavis和ClamAV扫描电子邮件中的病毒。 Amavis(邮件病毒扫描程序)是邮件传输代理(MTA)之间的高性能接口,如Postfix和内容过滤器。内容过滤器是一个扫描邮件标题和正文的程序,通常会根据发现的内容采取一些行动。最常见的例子是ClamAV病毒扫描器和SpamAssassin。 Amavis使用标准SMTP协议,也可以使用Sendmail milter接口。它通常用于 通过与ClamAV(Clam AntiVirus)集成进行病毒扫描 结合SpamAssassin进行垃圾邮件检测 DKIM签名和验证。(实际上,我更喜欢使用OpenDKIM进行DKIM签名和验证。) 先决条件 你应该至少完成了Ubuntu邮件服务器从头开始教程系列的第1部分(Postfix SMTP服务器)和第2部分(Dovecot IMAP服务器)。请注意,如果您使用iRedMail或Modoboa来设置邮件服务器,那么Amavis和ClamAV已经安装并配置好了,所以您无需遵循本教程。 警告:Amavis和ClamAV需要相当数量的RAM。在安装Amavis和ClamAV之前,请确保服务器上至少有1.3 GB的可用RAM。整个邮件服务器堆栈(Postfix、Dovecot、Amavis、ClamAV、SpamAssassin、OpenDKIM、MySQL/MariaDB、PostfixAdmin和Roundcube Webmail)至少需要3 GB内存才能顺利运行。如果RAM耗尽,您将遇到邮件服务器脱机或无响应等问题。 第一步:在Ubuntu上安装Amavis Amvis可以从默认的Ubuntu存储库获得,所以运行以下命令来安装它。 sudo apt install amavisd-new -y 一旦安装,它会自动启动。您可以通过以下方式检查其状态: systemctl status amavis 输出: ● amavis.service - LSB: Starts amavisd-new mailfilter Loaded: loaded (/etc/init.d/amavis; generated) Active: active (running) since Fri 2020-08-07 15:43:40 HKT; 1min 1s ago Docs: man:systemd-sysv-generator(8) Tasks: 3 (limit: 9451) Memory: 75.4M CGroup: /system.slice/amavis.service ├─1794260 /usr/sbin/amavisd-new (master) ├─1794263 /usr/sbin/amavisd-new (virgin child) └─1794264 /usr/sbin/amavisd-new (virgin child) 如果它没有运行,可以从以下内容开始: sudo systemctl start amavis 启动时启用自动启动。 sudo systemctl enable amavis 默认情况下,它在127.0.0.1:10024上监听,如下所示: sudo netstat -lnpt | grep amavis 它以amavis用户的身份运行。要检查版本号,请运行 amavisd-new -V 样本输出: amavisd-new-2.11.0 (20160426) 要查看Amavis的日志,可以运行 sudo journalctl -eu amavis 病毒通常以电子邮件附件的形式传播。为Amavis安装以下软件包,以提取和扫描电子邮件中的存档文件,如.7z。驾驶室博士。exe。iso。罐子,还有。rar文件。 sudo apt install arj bzip2 cabextract cpio rpm2cpio file gzip lhasa nomarch pax rar unrar p7zip-full unzip zip lrzip lzip liblz4-tool lzop unrar-free 如果你使用Ubuntu18.04,那么也要安装ripole软件包。 sudo apt install ripole 请注意,如果服务器没有使用完全限定的域名(FQDN)作为主机名,Amavis可能无法启动。OS主机名可能会更改,因此建议直接在Amavis配置文件中设置有效的主机名。 sudo nano /etc/amavis/conf.d/05-node_id 找到下面这行。 #$myhostname = "mail.example.com"; 删除注释字符(#)并更改邮件。实例com连接到您的真实主机名。 $myhostname = "mail.linuxbabe.com"; 保存并关闭文件。重新启动Amavis,使更改生效。 sudo systemctl restart amavis 第2步:将Postfix SMTP服务器与Amavis集成 Amavisd new用作SMTP代理。电子邮件通过SMTP发送给它,经过处理,并通过新的SMTP连接反馈给MTA。 编辑后缀主配置文件。 sudo nano /etc/postfix/main.cf 在文件末尾添加以下行。这告诉Postfix通过将每个传入的电子邮件发送到Amavis来启用内容过滤,Amavis在127.0.0.1:10024上进行监听。 content_filter = smtp-amavis:[127.0.0.1]:10024 另外,添加以下行。 smtpd_proxy_options = speed_adjust 这将延迟到内容筛选器的后缀连接,直到收到整个电子邮件,这可以防止内容筛选器为速度较慢的SMTP客户端浪费时间和资源。 保存并关闭文件。然后编辑母版。cf文件。 sudo nano /etc/postfix/master.cf 在文件末尾添加以下行。这指示Postfix使用名为SMTP amavis的特殊SMTP客户端组件将电子邮件发送到amavis。请在每个-o之前至少允许一个空格字符(制表符或空格键)。在后缀配置中,前面的空格字符表示此行是前一行的延续。 smtp-amavis unix - - n - 2 smtp -o syslog_name=postfix/amavis -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 -o smtp_tls_security_level=none 然后在文件末尾添加以下行。这会告诉Postfix在127.0.0.1:10025上运行额外的smtpd守护程序,以接收Amavis返回的电子邮件。 127.0.0.1:10025 inet n - n - - smtpd -o syslog_name=postfix/10025 -o content_filter= -o mynetworks_style=host -o mynetworks=127.0.0.0/8 -o local_recipient_maps= -o relay_recipient_maps= -o strict_rfc821_envelopes=yes -o smtp_tls_security_level=none -o smtpd_tls_security_level=none -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_end_of_data_restrictions= -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings 保存并关闭文件。重新启动Postfix以使更改生效。 sudo systemctl restart postfix 步骤3:将Amavis与ClamAV集成 现在Postfix可以将收到的电子邮件传递给Amavis,我们需要安装ClamAV病毒扫描程序,并将其与Amavis集成,以便ClamAV可以扫描收到的电子邮件。 在Ubuntu上安装ClamAV。 sudo apt install clamav clamav-daemon ClamAV将安装两个systemd服务: clamav守护进程。服务:Clam AntiVirus用户空间守护程序 clamav freshclam。服务:ClamAV病毒数据库更新程序 首先,检查clamav freshclam的状态。服务 systemctl status clamav-freshclam 如您所见,它处于活动状态(正在运行),在我的邮件服务器上使用217.6M RAM。然后检查日志/日志。 sudo journalctl -eu clamav-freshclam 输出: 提示:如果上述命令没有立即退出,请按Q键使其退出。 我们可以看到freshclam下载了3个病毒数据库。CVD代表ClamAV病毒数据库。 每日的心血管疾病 主要的心血管疾病 字节码。心血管疾病 但是,clamd没有得到通知,因为freshclam无法通过/var/run/clamav/clamd连接到clamd。ctl。检查clamav守护程序的状态。服务 systemctl status clamav-daemon 输出: 如您所见,它无法启动,因为不符合条件。在/lib/systemd/system/clamav守护进程中。服务文件,有两个条件: ConditionPathExistsGlob=/var/lib/clamav/main.{c[vl]d,inc} ConditionPathExistsGlob=/var/lib/clamav/daily.{c[vl]d,inc} clamav守护进程。服务无法启动,原因是主。心血管疾病和日常生活。cvd启动时尚未下载。所以我们只需要重新启动这项服务。 sudo systemctl restart clamav-daemon 现在它应该在运行了。顺便说一下,它在我的邮件服务器上使用了731.4M内存。如果您的邮件服务器没有足够的内存,服务将失败。 systemctl status clamav-daemon.service 蛤蜊新鲜蛤蜊。服务将每小时检查一次ClamAV病毒数据库更新。 现在我们需要在Amavis中打开病毒检查。 sudo nano /etc/amavis/conf.d/15-content_filter_mode 取消注释以下行以启用病毒检查。 #@bypass_virus_checks_maps = ( #      /%bypass_virus_checks, /@bypass_virus_checks_acl, /$bypass_virus_checks_re); 保存并关闭文件。在/etc/amavis/conf.d/15-av_scanners文件中有很多防病毒扫描程序。默认为ClamAV。Amavis将通过/var/run/ClamAV/clamd调用ClamAV。ctl Unix套接字。我们需要将用户clamav添加到amavis组。 sudo adduser clamav amavis 然后重启Amavis和ClamAV守护进程,使更改生效。 sudo systemctl restart amavis clamav-daemon 检查日志。 sudo journalctl -eu amavis 你可以看到Amavis现在正在使用ClamAV扫描病毒。 Aug 08 17:26:19 mail.linuxbabe.com amavis[1233432]: Using primary internal av scanner code for ClamAV-clamd Aug 08 17:26:19 mail.linuxbabe.com amavis[1233432]: Found secondary av scanner ClamAV-clamscan at /usr/bin/clamscan 现在,如果你从其他邮件服务器(如Gmail)向自己的邮件服务器发送一封电子邮件,并检查邮件标题,你会发现下面这样一行,这表明这封电子邮件已被Amavis扫描。 X-Virus-Scanned: Debian amavisd-new at linuxbabe.com 您还应该检查邮件日志(/var/log/mail.log)以查找是否存在任何错误。 第4步:使用专用端口提交电子邮件 ClamAV现在可以扫描传入和传出的电子邮件。Amavis在端口10024上监听传入和传出的电子邮件。不过,使用不同的端口(如10026)来提交经过身份验证的用户的电子邮件是一种很好的做法。编辑Amavis配置文件。 sudo nano /etc/amavis/conf.d/50-user 自定义设置之间应添加使用严格;和1;线默认情况下,Amavis只监听端口10024。添加以下行,使其也在端口10026上侦听。 $inet_socket_port = [10024,10026]; 然后添加下面一行,它为端口10026设置“始发”策略。 $interface_policy{'10026'} = 'ORIGINATING'; 接下来,添加以下行,它们定义了“原始”策略。 $policy_bank{'ORIGINATING'} = { # mail supposedly originating from our users originating => 1, # declare that mail was submitted by our smtp client allow_disclaimers => 1, # enables disclaimer insertion if available # notify administrator of locally originating malware virus_admin_maps => ["virusalert/@$mydomain"], spam_admin_maps => ["virusalert/@$mydomain"], warnbadhsender => 1, # force MTA conversion to 7-bit (e.g. before DKIM signing) smtpd_discard_ehlo_keywords => ['8BITMIME'], bypass_banned_checks_maps => [1], # allow sending any file names and types terminate_dsn_on_notify_success => 0, # don't remove NOTIFY=SUCCESS option }; 保存并关闭文件。重启阿玛维斯。 sudo systemctl restart amavis 检查其状态以查看重启是否成功。 systemctl status amavis 接下来,编辑后缀主配置文件。 sudo nano /etc/postfix/master.cf 将以下行添加到提交服务中,这样来自经过身份验证的SMTP客户端的电子邮件将被传递到端口10026上侦听的Amavis。此行将覆盖/etc/postfix/main中的内容过滤器参数(-o)。我们在步骤2中添加的cf文件。 -o content_filter=smtp-amavis:[127.0.0.1]:10026 这样地: 如果已为Microsoft Outlook用户启用了smtps服务,则还需要将此行添加到smtps服务中。 保存并关闭文件。重新启动Postfix以使更改生效。 sudo systemctl restart postfix 检查其状态以查看重启是否成功。 systemctl status postfix Amavis中的垃圾邮件过滤 注意:如果您遵循了我的SpamAssassin教程,则不需要在Amavis中启用垃圾邮件检查。如果你启用它,每封邮件都会被SpamAssassin检查两次。 要在Amavis中启用垃圾邮件检查,请安装SpamAssassin和相关软件包。 sudo apt install spamassassin libnet-dns-perl libmail-spf-perl pyzor razor 编辑Amavis配置文件。 sudo nano /etc/amavis/conf.d/15-content_filter_mode 取消注释以下行以启用垃圾邮件检查。 #@bypass_spam_checks_maps = ( # /%bypass_spam_checks, /@bypass_spam_checks_acl, /$bypass_spam_checks_re); 保存并关闭文件。然后重启Amavis。 sudo systemctl restart amavis 阿马维斯的德基姆 在Linux上可以进行DKIM签名和验证的两个常见软件是OpenDKIM和Amavis。我更喜欢使用OpenDKIM,因为它更适合OpenDMARC。所以我不会解释如何在Amavis中为你的电子邮件签名。 默认情况下,Amavis可以验证传入电子邮件的DKIM签名。如果在邮件服务器上运行OpenDKIM,则可以在Amavis中禁用DKIM验证。 sudo nano /etc/amavis/conf.d/21-ubuntu_defaults 找到下面的行并将1更改为0,这样Amavis就不会验证DKIM签名。 $enable_dkim_verification = 1; 保存并关闭文件。然后重启Amavis。 sudo systemctl restart amavis 当收到传入的电子邮件时,Postfix将通过sendmail milter接口调用OpenDKIM来验证DKIM签名,然后将电子邮件传递给Amavis进行病毒检查。在发送邮件时,Postfix会打电话给OpenDKIM对邮件进行签名,然后将其传递给Amavis进行病毒检查。 提高Amavis性能 默认情况下,Amavis运行两个进程。如果您在邮件日志(/var/log/mail.log)中看到以下几行,这意味着Amavis处理电子邮件的速度不够快。 postfix/qmgr[1619188]: warning: mail for [127.0.0.1]:10024 is using up 4001 of 4008 active queue entries postfix/qmgr[1619188]: warning: you may need to reduce smtp-amavis connect and helo timeouts postfix/qmgr[1619188]: warning: so that Postfix quickly skips unavailable hosts postfix/qmgr[1619188]: warning: you may need to increase the main.cf minimal_backoff_time and maximal_backoff_time postfix/qmgr[1619188]: warning: so that Postfix wastes less time on undeliverable mail mail postfix/qmgr[1619188]: warning: you may need to increase the master.cf smtp-amavis process limit mail postfix/qmgr[1619188]: warning: please avoid flushing the whole queue when you have mail postfix/qmgr[1619188]: warning: lots of deferred mail, that is bad for performance 要提高性能,请编辑Amavis配置文件。 sudo nano /etc/amavis/conf.d/50-user 在文件之间添加以下行使用严格;和1;线这将使Amavis运行4个进程。如果你有10个CPU核,你可以把4个换成10个。请注意,运行10个以上的Amavis进程对性能几乎没有影响。 $max_servers = 4; 保存并关闭文件。然后编辑Postifx主配置文件。 sudo nano /etc/postfix/master.cf 找到smtp amavis服务定义,并将进程限制从2更改为4。 smtp-amavis unix - - n - 4 smtp -o syslog_name=postfix/amavis -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 -o smtp_tls_security_level=none 保存并关闭文件。然后重新启动Amavis和Postfix,使更改生效。 sudo systemctl restart amavis postfix 现在运行以下命令。你应该看到现在有4个Amavis进程。 sudo amavisd-nanny 按Ctrl+C键停止阿玛维保姆。 跳过病毒检查查看您的新闻稿 如果您使用邮件服务器发送新闻稿,并且启用了Amavis和ClamAV,那么当您向订阅者发送新闻稿时,大量的CPU和RAM资源将用于病毒检查。这可能会使邮件服务器无响应。您可以使用以下方法跳过新闻稿的病毒检查。 编辑后缀主配置文件。 sudo nano /etc/postfix/master.cf 在该文件开头添加以下行。这将在本地主机的端口2525上启用smtpd,并且它可以接受从同一服务器启动的客户端连接。如果有另一个进程监听端口2525,您可以将127.0.0.1:2525更改为其他内容,例如127.0.0.1:2552。请注意,content_filter参数设置为none,这意味着ClamAV不会扫描电子邮件。 127.0.0.1:2525 inet n - - - 1 smtpd -o syslog_name=postfix/2525 -o postscreen_greet_action=ignore -o content_filter= 然后在文件末尾添加以下行。将12.34.56.78替换为邮件服务器的公共IP地址。这将创建另一个Postfix提交守护程序,监听端口10587。这适用于来自另一台服务器的客户端连接。 12.34.56.78:10587 inet n - y - - smtpd -o syslog_name=postfix/10587 -o smtpd_tls_security_level=encrypt -o smtpd_tls_wrappermode=no -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o content_filter= 保存并关闭文件。然后重新启动postfix。 sudo systemctl restart postfix 如果新闻稿应用程序在邮件服务器上运行,则指定127.0.0.1:2525作为SMTP主机,而不进行SMTP身份验证。如果您的新闻稿应用程序在其他服务器上运行,请指定12.34.56.78:10587作为SMTP主机,并进行SMTP身份验证。 故障排除 如果您的Postfix SMTP服务器无法发送传出电子邮件,并且您在邮件日志(/var/log/mail.log)中发现以下错误消息, relay=none, delay=239, delays=239/0.04/0/0, dsn=4.3.0, status=deferred (server unavailable or unable to receive mail) 可能是amavis没有运行,因此您需要检查其状态: sudo systemctl status amavis 您可以通过以下方式重新启动: sudo systemctl restart amavis 导致此错误的另一个原因是,在/etc/Postfix/main中发送具有以下设置的传出电子邮件时,您正在为Postfix强制TLS连接。cf文件。 smtp_tls_security_level = enforce 因为Postfix无法建立到Amavis的TLS连接,所以邮件被推迟。您应该使用以下设置。 smtp_tls_security_level = may 然后重新启动Postfix。 收尾 我希望本教程能帮助您在Ubuntu邮件服务器上安装Amavis和ClamAV。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.24 浏览:160
  • 第4部分:如何在Ubuntu服务器上使用后缀设置SPF和DKIM

    在完成第1部分和第2部分之后,我们有了一个工作的Postfix SMTP服务器和Dovecot IMAP服务器。我们可以使用桌面电子邮件客户端发送和接收电子邮件。虽然我有正确的MX、A和PTR记录,但我的电子邮件被Gmail和Outlook mail标记为垃圾邮件。因此,在这一部分中,我们将研究如何通过在Ubuntu服务器上设置SPF和DKIM来改进向收件人收件箱发送电子邮件的方式。 什么是SPF和DKIM记录? SPF和DKIM是DNS中的两种TXT记录,允许您检测电子邮件欺骗,并帮助合法电子邮件发送到收件人的收件箱,而不是垃圾邮件文件夹。如果你的域名被电子邮件欺骗所滥用,那么如果你的电子邮件没有将你添加到通讯簿中,它们很可能会进入收件人的垃圾邮件文件夹。 SPF(发件人策略框架)记录指定允许哪些主机或IP地址代表域发送电子邮件。您应该只允许您自己的电子邮件服务器或ISP的服务器为您的域发送电子邮件。 DKIM(DomainKeys Identified Mail)使用私钥为从您的域发送的电子邮件添加签名。接收SMTP服务器使用相应的公钥验证签名,该公钥在DNS管理器中发布。 在DNS中创建SPF记录 在DNS管理界面中,创建一个新的TXT记录,如下所示。 TXT  @   v=spf1 mx ~all 说明: TXT表示这是一条TXT记录。 在名称字段中输入@。 v=spf1表示这是SPF记录,SPF记录版本为spf1。 mx意味着mx记录中列出的所有主机都被允许为您的域发送电子邮件,而所有其他主机都被禁止。 ~all表示来自您域的电子邮件应该只来自SPF记录中指定的主机。来自其他主机的电子邮件将被标记为不可信。可能的替代方案是+all,-all?都是,但很少使用。 -这一切都意味着,从不允许的主机发送的电子邮件应该被拒绝,永远不要进入收件人的收件箱或垃圾邮件文件夹。我见过facebook使用它。但是我们通常不需要这么严格的政策。 有些人可能会认为,这一切都会更好,因为它会拒绝来自不受信任主机的电子邮件。嗯,在SPF策略中使用-all可能会导致您自己的电子邮件被拒绝。当收件人有两个SMTP服务器,且主SMTP服务器脱机时,您的电子邮件将临时存储在备份SMTP服务器上。当主SMTP服务器恢复联机时,电子邮件将从备份SMTP服务器中继到主SMTP服务器。由于您没有在SPF策略中列出收件人的备份SMTP服务器,该电子邮件将被收件人的主SMTP服务器拒绝。所以你应该在SPF策略中使用~all。 请注意,一些DNS管理器要求您用下面的引号将SPF记录包装起来。 TXT  @   "v=spf1 mx ~all" 要检查您的SPF记录是否传播到公共互联网,您可以在Linux设备上使用dig实用程序,如下所示。(在Ubuntu上,需要安装bind9 dnsutils包才能使用dig命令:sudo apt install bind9 dnsutils) dig your-domain.com txt txt选项告诉dig我们只想查询txt记录。 您还可以使用dmarcian SPF surveyor来测试SPF记录语法。 配置SPF策略代理 我们还需要告诉我们的Postfix SMTP服务器检查传入电子邮件的SPF记录。这无助于确保发送电子邮件,但有助于检测伪造的传入电子邮件。 首先,安装所需的软件包: sudo apt install postfix-policyd-spf-python 然后编辑Postfix主进程配置文件。 sudo nano /etc/postfix/master.cf 在文件末尾添加以下几行,这会告诉Postfix在启动SPF策略守护程序时启动它。 policyd-spf unix - n n - 0 spawn user=policyd-spf argv=/usr/bin/policyd-spf 保存并关闭文件。接下来,编辑后缀主配置文件。 sudo nano /etc/postfix/main.cf 在文件末尾追加以下行。第一行指定后缀策略代理超时设置。以下几行将通过拒绝未经授权的电子邮件和检查SPF记录来限制收到的电子邮件。 policyd-spf_time_limit = 3600 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service unix:private/policyd-spf 保存并关闭文件。然后重新启动Postfix。 sudo systemctl restart postfix 下次,当你收到一封来自有SPF记录的域的电子邮件时,你可以在原始邮件标题中看到SPF检查结果。以下标题表示发件人从授权主机发送电子邮件。 Received-SPF: Pass (sender SPF authorized). 设置DKIM 首先,安装OpenDKIM,这是DKIM发送者身份验证系统的开源实现。 sudo apt install opendkim opendkim-tools 然后将postfix用户添加到opendkim组。 sudo gpasswd -a postfix opendkim 编辑OpenDKIM主配置文件。 sudo nano /etc/opendkim.conf 取消对以下行的注释。用放松/简单代替简单。 Canonicalization   simple Mode               sv SubDomains         no 然后在#adpaction continue行下方添加以下行。如果您的文件没有#adpaction continue行,那么只需将它们添加到子域no下面。 AutoRestart yes AutoRestartRate 10/1M Background yes DNSTimeout 5 SignatureAlgorithm rsa-sha256 在该文件末尾添加以下行。(注意,在Ubuntu 18.04和20.04上,用户ID已经设置为opendkim) #OpenDKIM user # Remember to add user postfix to group opendkim UserID opendkim # Map domains in From addresses to keys used to sign messages KeyTable refile:/etc/opendkim/key.table SigningTable refile:/etc/opendkim/signing.table # Hosts to ignore when verifying signatures ExternalIgnoreList /etc/opendkim/trusted.hosts # A set of internal hosts whose mail should be signed InternalHosts /etc/opendkim/trusted.hosts 保存并关闭文件。 创建签名表、密钥表和受信任主机文件 为OpenDKIM创建目录结构 sudo mkdir /etc/opendkim sudo mkdir /etc/opendkim/keys 将所有者从root更改为opendkim,并确保只有opendkim用户可以读取和写入keys目录。 sudo chown -R opendkim:opendkim /etc/opendkim sudo chmod go-rw /etc/opendkim/keys 创建签名表。 sudo nano /etc/opendkim/signing.table 将这一行添加到文件中。这会告诉OpenDKIM,如果服务器上的发件人正在使用@your域。com地址,则应使用默认标识的私钥对其进行签名_域名。你的领域。通用域名格式。 *@your-domain.com default._domainkey.your-domain.com 保存并关闭文件。然后创建键表。 sudo nano /etc/opendkim/key.table 添加下面一行,它告诉您私钥的位置。 default._domainkey.your-domain.com    your-domain.com:default:/etc/opendkim/keys/your-domain.com/default.private 保存并关闭文件。接下来,创建受信任的主机文件。 sudo nano /etc/opendkim/trusted.hosts 将以下行添加到新创建的文件中。这告诉OpenDKIM,如果电子邮件来自本地主机或同一域,则OpenDKIM不应对该电子邮件执行DKIM验证。 127.0.0.1 localhost *.your-domain.com 保存并关闭文件。 生成私钥/公钥对 由于DKIM用于对传出消息进行签名和验证传入消息,因此我们需要生成用于签名的私钥和用于远程验证器的公钥。公钥将在DNS中发布。 为域创建一个单独的文件夹。 sudo mkdir /etc/opendkim/keys/your-domain.com 使用opendkim genkey工具生成密钥。 sudo opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s default -v 上述命令将创建2048位密钥-d(域)指定域-D(directory)指定存储密钥的目录,我们使用默认值作为选择器(-s),也称为名称。执行命令后,私钥将被写入默认值。私有文件和公钥将被写入默认值。txt文件。 使opendkim成为私钥的所有者。 sudo chown opendkim:opendkim /etc/opendkim/keys/your-domain.com/default.private 并更改权限,以便只有opendkim用户具有文件的读写权限。 sudo chmod 600 /etc/opendkim/keys/your-domain.com/default.private 在DNS记录中发布您的公钥 显示公钥 sudo cat /etc/opendkim/keys/your-domain.com/default.txt p参数后面的字符串是公钥。 在DNS管理器中,创建一个TXT记录,输入默认值_名称字段中的domainkey。然后返回终端窗口,复制括号中的所有内容,并将其粘贴到DNS记录的值字段中。您需要删除值字段中的所有双引号和空格。如果不删除它们,那么下一步的密钥测试可能会失败。 测试DKIM密钥 在Ubuntu服务器上输入以下命令以测试密钥。 sudo opendkim-testkey -d your-domain.com -s default -vvv 如果一切正常,您将在命令输出中看到键OK。 opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key 'default._domainkey.your-domain.com' opendkim-testkey: key secure opendkim-testkey: key OK 请注意,您的DKIM记录可能需要一些时间才能传播到Internet。根据您使用的域注册器,您的DNS记录可能会立即传播,或者传播可能需要24小时。你可以去https://www.dmarcanalyzer.com/dkim/dkim-check/,输入默认值作为选择器,并输入您的域名以检查DKIM记录传播。 如果在命令输出中看到密钥不安全,请不要惊慌。这是因为您的域名上未启用DNSSEC。DNSSEC是安全DNS查询的安全标准。大多数域名都没有启用DNSSEC。绝对没有必要担心钥匙不安全。你可以继续遵循这个指南。 如果您看到查询超时错误,则需要在/etc/opendkim中注释掉以下行。conf文件并重新启动opendkim。服务 TrustAnchorFile /usr/share/dns/root.key 将Postfix连接到OpenDKIM Postfix可以通过Unix套接字文件与OpenDKIM通信。OpenDKIM使用的默认套接字文件是/var/run/OpenDKIM/OpenDKIM。sock,如/etc/opendkim所示。conf文件。但是Ubuntu附带的postfix SMTP守护程序在chroot监狱中运行,这意味着SMTP守护程序将解析与postfix队列目录(/var/spool/postfix)相关的所有文件名。所以我们需要更改OpenDKIM Unix套接字文件。 创建一个目录来保存OpenDKIM套接字文件,并且只允许OpenDKIM用户和postfix组访问它。 sudo mkdir /var/spool/postfix/opendkim sudo chown opendkim:postfix /var/spool/postfix/opendkim 然后编辑OpenDKIM主配置文件。 sudo nano /etc/opendkim.conf 查找以下行(Ubuntu 18.04) Socket local:/var/run/opendkim/opendkim.sock 或者(Ubuntu 20.04) Socket    local:/run/opendkim/opendkim.sock 替换为以下行。(如果找不到上一行,请添加下一行。) Socket local:/var/spool/postfix/opendkim/opendkim.sock 保存并关闭文件。 如果可以在/etc/default/opendkim文件中找到以下行。 SOCKET="local:/var/run/opendkim/opendkim.sock" 或 SOCKET=local:$RUNDIR/opendkim.sock 换成 SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock" 保存并关闭文件。 接下来,我们需要编辑后缀主配置文件。 sudo nano /etc/postfix/main.cf 在这个文件的末尾添加以下几行,这样Postfix就可以通过milter协议调用OpenDKIM了。 # Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = local:opendkim/opendkim.sock non_smtpd_milters = $smtpd_milters 保存并关闭文件。然后重新启动opendkim和postfix服务。 sudo systemctl restart opendkim postfix SPF和DKIM检查 你现在可以从邮件服务器向你的Gmail账户发送一封测试邮件,看看SPF和DKIM检查是否通过。在Gmail中打开的电子邮件的右侧,如果单击下拉菜单中的“显示原始邮件”按钮,可以看到身份验证结果。 如果您的邮件未签名且DKIM检查失败,您可能需要检查postfix日志(/var/log/mail.log)以查看您的配置有何问题。如果您在邮件日志中看到以下消息, warning: connect to Milter service local:opendkim/opendkim.sock: No such file or directory 您可能需要检查opendkim systemd服务是否正在实际运行。 systemctl status opendkim 如果opendkim正在运行,但仍然看到上述错误,则可能需要编辑/etc/postfix/main。cf文件,更改 smtpd_milters = local:opendkim/opendkim.sock 到 smtpd_milters = local:/opendkim/opendkim.sock 然后重新启动Postfix。 您的电子邮件服务器还将对发件人的域执行SPF和DKIM检查。您可以在电子邮件标题中看到结果。以下是使用Gmail对发件人进行的SPF和DKIM检查。 Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::c2d; helo=mail-yw1-xc2d.google.com; [email protected]; receiver=<UNKNOWN> Authentication-Results: email.linuxbabe.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com [email protected] header.b="XWMRd2co"; dkim-atps=neutral 测试电子邮件分数和位置 你也可以去https://www.mail-tester.com.你会看到一个独特的电子邮件地址。从你的域名发送电子邮件到此地址,然后检查你的分数。如你所见,我得了满分。 邮件测试员。com只能显示发件人分数。还有另一个名为GlockApps的服务,可以让你检查你的电子邮件是否放在收件人的收件箱或垃圾邮件文件夹中,或者直接被拒绝。它支持许多流行的电子邮件提供商,如Gmail、Outlook、Hotmail、YahooMail、iCloud mail等 与微软邮箱的斗争 在我的测试中,邮件进入了我的Gmail收件箱。然而,在我的outlook中,它仍然被标记为垃圾邮件。com电子邮件,尽管SPF和DKIM都已通过。微软似乎正在使用一个内部黑名单来屏蔽许多合法的IP地址。如果您的电子邮件被outlook或Hotmail拒绝,您需要提交发件人信息表。之后,outlook/hotmail将接受您的电子邮件,但仍可能标记为垃圾邮件。 如果你的电子邮件仍被标记为垃圾邮件呢? 在这篇文章中,我有更多的建议:7个有效的建议来阻止你的电子邮件被标记为垃圾邮件。 下一步 在第5部分中,我们将了解如何创建DMARC记录以保护您的域免受电子邮件欺骗。和往常一样,如果你觉得这篇文章有用,请订阅我们的免费时事通讯,或者在Twitter上关注我们,或者喜欢我们的Facebook页面。 笔记 在本文中,我在/etc/opendkim中使用了umask 002。conf文件。一位访客在下面评论道,这解决了他的问题。然而,在Ubuntu 18.04上,默认的umask在/etc/opendkim中。conf file设置为007,在我的生产服务器上运行良好。umask定义了OpenDKIM套接字文件(/var/spool/postfix/OpenDKIM/OpenDKIM.sock)的权限 002:不在opendkim组中的用户具有读取和执行权限,但没有写入权限。 007:不在opendkim组中的用户没有读、写或执行权限。 如果我没记错的话,umask 002是Ubuntu 14.04和16.04上的默认值,所以我在为Ubuntu 16.04服务器撰写本文时使用了它。 如果将postfix用户添加到opendkim组,则不需要将umask更改为002。 sudo gpasswd -a postfix opendkim 我在安装OpenDKIM部分列出了这个命令,但是为什么有些人不注意呢?我想知道。

    2022.03.23 浏览:174
  • 在Ubuntu上设置无密码SSH登录的2个简单步骤

    本教程介绍如何在Ubuntu桌面上设置无密码SSH登录。使用OpenSSH服务器验证用户登录基本上有两种方法:密码验证和公钥验证。后者也称为无密码SSH登录,因为您不需要输入密码。 设置无密码SSH登录的2个简单步骤 第一步:在你的Ubuntu桌面上生成一个公共/私有密钥对 在Ubuntu桌面(而不是服务器)上,在终端窗口中输入以下命令。 ssh-keygen -t rsa -b 4096 哪里: -t代表类型。上面的命令生成RSA类型的密钥对。RSA是默认类型。 -b代表比特。默认情况下,密钥长度为3072位。我们使用4096位的密钥来增强安全性。 当被问及要保存密钥的文件时,只需按Enter键即可使用默认文件。接下来,输入至少20个字符长的好密码短语。密码短语用于加密私钥。 私钥(您的身份证)将保存在中。主目录下的ssh/id_rsa文件。 公钥将保存在中。ssh/id_rsa。酒吧档案。 从randomart图像中,我们可以看到密钥的长度(RSA 4096)。现在运行以下命令。 file ~/.ssh/id_rsa 您应该会看到以下输出: /home/username/.ssh/id_rsa: OpenSSH private key 如果您看到“没有这样的文件或目录”错误,这意味着没有创建SSH密钥对。运行ssh-keygen-t rsa-b4096命令再次创建它。 第2步:将公钥上传到远程Linux服务器 提示:远程服务器可以运行任何Linux发行版:Debian、Ubuntu、RHEL、CentOS等等,只要它运行OpenSSH服务器,就可以使用以下方法。 使用openssh客户端软件包附带的ssh copy id命令可以轻松完成这一点。 ssh-copy-id remote-user@server-ip 输入远程用户的密码。 公钥将存储在中。ssh/authorized_keys文件位于远程用户的主目录下。现在SSH进入远程服务器。 ssh remote-user@server-ip 这一次,您需要输入RSA密钥密码来解锁私钥。您可以在登录时选择自动解锁密钥,这样以后就不必输入密码。 输入正确的密钥密码短语后,即可登录到远程Linux服务器。现在从远程服务器退出。 exit 然后再次将SSH连接到远程服务器: ssh remote-user@server-ip 这一次,您将自动登录到远程服务器,尽管您没有键入密码或密钥密码短语。此外,在使用scp命令传输文件时,不必键入密码或密钥密码短语。scp命令也由openssh客户端软件包提供,该软件包默认安装在Ubuntu桌面上。 禁用密码身份验证 虽然默认情况下使用SSH密钥登录服务器,但您仍然可以使用普通密码登录另一台计算机上的服务器。您不希望黑客发起暴力攻击来侵入您的服务器,因此在OpenSSH服务器中禁用密码验证是一种很好的做法。 要禁用密码身份验证,请在远程服务器上编辑/etc/ssh/sshd_config文件。 sudo nano /etc/ssh/sshd_config 找到这一行: #PasswordAuthentication yes 将其更改为: PasswordAuthentication no 然后找到ChallengeResponseAuthentication热线。确保它的值设置为no,如下所示。如果设置为“是”,您仍然可以使用密码登录。 ChallengeResponseAuthentication no 保存文件并重新启动SSH服务。 Debian/Ubuntu sudo systemctl restart ssh 瑞尔/森托斯 sudo systemctl restart sshd 现在如果~/中没有相应的私钥。在ssh目录下,当您尝试ssh到远程服务器时,您将看到以下错误。 Permission denied (publickey). 或 Read: Connection reset by peer 这意味着远程服务器只允许使用SSH密钥进行SSH登录,不允许密码身份验证。请注意,如果您将PasswordAuthentication设置为no,将ChallengeResponseAuthentication设置为yes,则仍然可以使用password登录。要禁用密码登录,必须将两者都设置为“否”。 备份您的公钥/私钥对 禁用SSH密码身份验证后,备份SSH密钥非常重要。如果丢失密钥,您将被锁定在服务器之外。将您的公钥/私钥对备份到USB驱动器等安全位置。 cp ~/.ssh/id_rsa* /path/to/safe/location/ 您还可以将密钥对存储在一个文件夹中,然后用加密压缩该文件夹,并将其发送到云存储,如NextCloud。 您还可以将密钥对(私钥和公钥)复制到新的Linux计算机上,并使用SSH密钥将SSH复制到服务器上。将密钥对复制到新计算机后,将其移动到新计算机。ssh/新用户的目录。 mv id_rsa* ~/.ssh/ 您需要将密钥对的所有者更改为新计算机上的用户。 sudo chown new-user:new-user ~/.ssh/id_rsa* 现在,您可以使用SSH密钥登录到新计算机上的远程服务器。 有时,我想在本地Ubuntu计算机上创建两个用户帐户来执行不同的任务。但是,我仍然希望在登录到其他用户帐户时使用SSH密钥。只需将SSH密钥对(私钥和公钥)复制到新用户的~/。ssh/folder。您需要输入RSA密钥密码短语才能解锁私钥。您可以在登录时选择自动解锁密钥,这样以后就不必输入密码。 在SSH代理中存储密钥密码短语 如果您使用的是仅限命令行的Linux框,您可能会发现每次SSH到其他Linux服务器时都需要输入密钥密码短语。这是因为SSH代理没有存储密钥密码短语。 在SSH客户端上安装并配置keychain。 sudo apt install keychain 然后编辑。bash_简介或。档案文件。在其中添加以下文本,以便用户每次登录时都会执行这两个命令。 /usr/bin/keychain $HOME/.ssh/id_rsa source $HOME/.keychain/$HOSTNAME-sh 现在注销并重新登录。你会看到这样的情况: Last login: Thu Dec 17 20:38:39 2015 from 74.125.128.103 * keychain 2.7.1 ~ http://www.funtoo.org * Found existing ssh-agent: 17651 * Adding 1 ssh key(s): /home/<username>/.ssh/id_rsa Enter passphrase for /home/<username>/.ssh/id_rsa: * ssh-add: Identities added: /home/<username>/.ssh/id_rsa 当密钥链启动时,它会检查正在运行的ssh代理,否则会启动一个。这次需要输入密钥密码短语。用户登录时会记住密钥密码,但当系统重新启动时,您必须再次输入。 现在,只要ssh服务器具有公钥,并且您正在使用的ssh客户端成功配置了私钥/公钥对和密钥链,您就可以通过ssh连接到ssh服务器,而无需键入密钥密码短语。 更改私钥密码短语 如果需要更改私钥密码短语,可以使用以下命令: ssh-keygen -f ~/.ssh/id_rsa -p 输入旧密码,然后输入新密码。 专业提示:使用屏幕让你的会话保持活跃 您是否一直在远程服务器上工作,突然您的计算机与Internet断开连接,无法继续在服务器上运行作业?您可以使用精彩的屏幕实用程序来保持会话的活力。在Ubuntu服务器上安装屏幕: sudo apt install screen 然后启动屏幕: screen 第一次启动时,您将看到一个介绍文本,只需按Enter键即可结束。然后你就可以像往常一样运行命令了。 如果您在服务器上有一个长时间运行的作业,现在不需要在服务器上执行其他操作,可以按Ctrl+a,释放这些键,然后按D键从当前屏幕会话中分离。您将看到如下消息。 [detached from 32113.pts-1.focal] 这表明上一屏幕会话ID为32113。您可以从SSH会话中注销,甚至可以关闭计算机。别担心,服务器上的作业仍在运行。当需要返回并检查进度时,请将SSH连接到服务器并运行以下命令以获取上一个屏幕会话ID。 screen -ls 样本输出: There is a screen on: 32113.pts-1.focal (05/19/2020 03:45:29 PM) (Detached) 1 Socket in /run/screen/S-linuxbabe. 然后可以重新连接到上一个屏幕会话。 screen -r 32113 如果您正在屏幕会话中,Internet连接突然中断,那么当您再次连接Internet时,可以在服务器上运行以下命令。 screen -d -r 32113 这次我们需要-d选项,因为之前的屏幕会话没有分离。我们需要先拆下它(-d),然后再重新连接到它(-r)。 下一步 我希望本教程能帮助您在Ubuntu上设置无密码ssh登录。您可能还需要设置自动安全更新。 在Ubuntu上设置自动安全更新(无人参与升级) 和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心。

    2022.03.24 浏览:787
  • 在CentOS 8/RHEL 8邮件服务器上设置Amavis和ClamAV

    这是CentOS 8/RHEL 8邮件服务器从头开始教程系列的第10部分。在本文中,我将向您展示如何使用Amavis和ClamAV扫描电子邮件中的病毒。 Amavis(邮件病毒扫描程序)是邮件传输代理(MTA)之间的高性能接口,如Postfix和内容过滤器。内容过滤器是一个扫描邮件标题和正文的程序,通常会根据发现的内容采取一些行动。内容过滤器最常见的例子是ClamAV病毒扫描器和SpamAssassin。 Amavis使用标准SMTP协议,也可以使用Sendmail milter接口。它通常用于 通过与ClamAV(Clam AntiVirus)集成进行病毒扫描 结合SpamAssassin进行垃圾邮件检测 DKIM签名和验证。(实际上,我更喜欢使用OpenDKIM进行DKIM签名和验证。) 先决条件 您应该至少完成了CentOS 8/RHEL 8邮件服务器从头开始教程系列的第1部分(Postfix SMTP服务器)和第2部分(Dovecot IMAP服务器)。请注意,如果您使用iRedMail或Modoboa来设置邮件服务器,那么Amavis和ClamAV已经安装并配置好了,所以您无需遵循本教程。 警告:Amavis和ClamAV需要相当数量的RAM。在安装Amavis和ClamAV之前,确保服务器上至少有1.3 GB的可用RAM。整个邮件服务器堆栈(Postfix、Dovecot、Amavis、ClamAV、SpamAssassin、OpenDKIM、MySQL/MariaDB、PostfixAdmin和Roundcube Webmail)至少需要3 GB内存才能顺利运行。如果RAM耗尽,您将遇到邮件服务器脱机或无响应等问题。 步骤1:在CentOS 8/RHEL 8上安装Amavis Amavis是用Perl编写的。我们需要在RHEL 8上启用EPEL(企业Linux的额外软件包)和CodeReady Linux Builder存储库,以便为Amavis安装一些Perl依赖项。 sudo dnf install epel-release sudo subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms 在CentOS 8上,启用EPEL(Enterprise Linux的额外软件包)和PowerTools存储库,为Amavis安装Perl Dependencies。 sudo dnf install epel-release -y sudo dnf config-manager --set-enabled powertools 然后安装amavis软件包。 sudo dnf install amavis -y 要检查版本号,请运行 amavisd -V 样本输出: amavisd-new-2.12.0 (20190725) 病毒通常以电子邮件附件的形式传播。为Amavis安装以下软件包,以提取和扫描电子邮件中的存档文件,如.7z。驾驶室博士。exe。iso。罐子,还有。rar文件。 sudo dnf -y install arj bzip2 cpio file gzip nomarch spax unrar p7zip unzip zip lrzsz lzip lz4 lzop 请注意,如果服务器没有使用完全限定的域名(FQDN)作为主机名,Amavis可能无法启动。OS主机名可能会更改,因此建议直接在Amavis配置文件中设置有效的主机名。 sudo nano /etc/amavisd/amavisd.conf 找到下面这行。 $mydomain = 'example.com'; # a convenient default for other settings 还建议将默认的mydomain值更改为您自己的域名。 $mydomain = 'linuxbabe.com'; # a convenient default for other settings 然后找到下面一行。 # $myhostname = 'host.example.com'; # must be a fully-qualified domain name! 删除第一个注释字符(#)并更改主机。实例com连接到邮件服务器的主机名,如下所示。 $myhostname = 'mail.linuxbabe.com'; # must be a fully-qualified domain name! 保存并关闭文件。现在我们可以开始阿玛维斯了。 sudo systemctl start amavisd 启动时启用自动启动。 sudo systemctl enable amavisd 检查其状态: systemctl status amavisd 样本输出: ● amavisd.service - Amavis mail content checker Loaded: loaded (/usr/lib/systemd/system/amavisd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-11-19 01:21:26 EST; 8s ago Docs: http://www.ijs.si/software/amavisd/#doc Main PID: 18782 (/usr/sbin/amavi) Tasks: 3 (limit: 12502) Memory: 149.5M CGroup: /system.slice/amavisd.service ├─18782 /usr/sbin/amavisd (master) ├─18806 /usr/sbin/amavisd (virgin child) └─18807 /usr/sbin/amavisd (virgin child) 提示:如果上述命令没有立即退出,请按Q。 正如你所见,阿玛维斯正在跑步。如果它没有运行,您可以使用(sudo journalctl-eu amavisd)检查日志。 Amavisd收听127.0.0.1:10024,如下所示: sudo ss -lnpt | grep amavi 它以amavis用户的身份运行。 第2步:将Postfix SMTP服务器与Amavis集成 Amavis充当SMTP代理。电子邮件通过SMTP发送给它,经过处理,并通过新的SMTP连接反馈给MTA。 运行以下命令,告诉Postfix通过将每个传入的电子邮件发送到Amavis来启用内容过滤,Amavis在127.0.0.1:10024上监听。 sudo postconf -e "content_filter = smtp-amavis:[127.0.0.1]:10024" 另外,运行以下命令。这将延迟到内容筛选器的后缀连接,直到收到整个电子邮件,这可以防止内容筛选器为速度较慢的SMTP客户端浪费时间和资源。 sudo postconf -e "smtpd_proxy_options = speed_adjust" 然后编辑母版。cf文件。 sudo nano /etc/postfix/master.cf 在文件末尾添加以下行。这指示Postfix使用名为SMTP amavis的特殊SMTP客户端组件将电子邮件发送到amavis。请在每个-o之前至少允许一个空格字符(制表符或空格键)。在后缀配置中,前面的空格字符表示此行是前一行的延续。 smtp-amavis unix - - n - 2 smtp -o syslog_name=postfix/amavis -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 -o smtp_tls_security_level=none 然后在文件末尾添加以下行。这会告诉Postfix在127.0.0.1:10025上运行额外的smtpd守护程序,以接收Amavis返回的电子邮件。 127.0.0.1:10025 inet n - n - - smtpd -o syslog_name=postfix/10025 -o content_filter= -o mynetworks_style=host -o mynetworks=127.0.0.0/8 -o local_recipient_maps= -o relay_recipient_maps= -o strict_rfc821_envelopes=yes -o smtp_tls_security_level=none -o smtpd_tls_security_level=none -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_end_of_data_restrictions= -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings 保存并关闭文件。重新启动Postfix以使更改生效。 sudo systemctl restart postfix 步骤3:将Amavis与ClamAV集成 现在Postfix可以将收到的电子邮件传递给Amavis,我们需要安装ClamAV病毒扫描程序,并将其与Amavis集成,以便ClamAV可以扫描收到的电子邮件。 在CentOS 8/RHEL 8上安装ClamAV。 sudo dnf install clamav clamav-lib clamav-data clamav-update -y ClamAV将安装两个systemd服务: [email ;protected]:Clam AntiVirus用户空间守护程序 clamav freshclam。服务:ClamAV病毒数据库更新程序 首先,开始clamav freshclam。服务 sudo systemctl start clamav-freshclam.service 启动时启用自动启动。 sudo systemctl enable clamav-freshclam.service 检查状态。 systemctl status clamav-freshclam 如您所见,它处于活动状态(正在运行),在我的邮件服务器上使用27.8 RAM。然后检查日志/日志。 sudo journalctl -eu clamav-freshclam 输出: 提示:如果上述命令没有立即退出,请按Q键使其退出。 我们可以看到freshclam下载了3个病毒数据库。CVD代表ClamAV病毒数据库。 每日的心血管疾病 主要的心血管疾病 字节码。心血管疾病 蛤蜊新鲜蛤蜊。服务将每小时检查一次ClamAV病毒数据库更新。 现在我们可以开始[email ;protected]。 sudo systemctl start [email protected] 启动时启用自动启动。 sudo systemctl enable [email protected] 检查其状态: systemctl status [email protected] 正如你所见,它正在运行。顺便说一下,它在我的邮件服务器上使用了1.2G内存。如果您的邮件服务器没有足够的内存,服务将失败。 打开Amavis配置文件。 sudo nano /etc/amavisd/amavisd.conf 您可以在该文件中找到以下行,它支持病毒检查。 # @bypass_virus_checks_maps = (1); # controls running of anti-virus code 如果取消注释这一行,病毒检查将被禁用。 @av_scanners部分定义了很多防病毒扫描程序。默认为ClamAV。Amavis将通过/run/clad给ClamAV打电话。阿玛维斯/克莱德。sock Unix套接字。ClamAV和Amvis都以amavis用户的身份运行。 关闭文件并重新启动Amavis。 sudo systemctl restart amavisd 检查日志。 sudo journalctl -eu amavisd 你可以看到Amavis现在正在使用ClamAV扫描病毒。 mail.linuxbabe.com amavis[1233432]: Using primary internal av scanner code for ClamAV-clamd mail.linuxbabe.com amavis[1233432]: Found secondary av scanner ClamAV-clamscan at /usr/bin/clamscan 现在,如果你从其他邮件服务器(如Gmail)向自己的邮件服务器发送一封电子邮件,并检查邮件标题,你会发现下面这样一行,这表明这封电子邮件已被Amavis扫描。 X-Virus-Scanned: Debian amavisd-new at linuxbabe.com 您还应该检查邮件日志(/var/log/maillog),以确定是否存在任何错误。 第4步:使用专用端口提交电子邮件 ClamAV现在可以扫描传入和传出的电子邮件。Amavis在端口10024上监听传入和传出的电子邮件。不过,使用不同的端口(如10026)来提交经过身份验证的用户的电子邮件是一种很好的做法。 编辑Amavis主配置文件。 sudo nano /etc/amavisd/amavisd.conf 找到下面这行。 $inet_socket_port = 10024; # listen on this local TCP port(s) 在开头添加一个#字符以注释掉它。 #$inet_socket_port = 10024; # listen on this local TCP port(s) 然后找到下面一行。 # $inet_socket_port = [10024,10026]; # listen on multiple TCP ports 删除第一个#字符以取消注释,这样Amavisd也会监听端口10026。 $inet_socket_port = [10024,10026]; # listen on multiple TCP ports 向下滚动一点,您可以找到下面一行,它为端口10026设置了“始发”策略。 $interface_policy{'10026'} = 'ORIGINATING'; 然后您可以找到以下几行,它们定义了“原始”策略。 $policy_bank{'ORIGINATING'} = { # mail supposedly originating from our users originating => 1, # declare that mail was submitted by our smtp client allow_disclaimers => 1, # enables disclaimer insertion if available # notify administrator of locally originating malware virus_admin_maps => ["virusalert/@$mydomain"], spam_admin_maps => ["virusalert/@$mydomain"], warnbadhsender => 1, # forward to a smtpd service providing DKIM signing service forward_method => 'smtp:[127.0.0.1]:10027', # force MTA conversion to 7-bit (e.g. before DKIM signing) smtpd_discard_ehlo_keywords => ['8BITMIME'], bypass_banned_checks_maps => [1], # allow sending any file names and types terminate_dsn_on_notify_success => 0, # don't remove NOTIFY=SUCCESS option }; 在上面几行中,您可以看到默认情况下,Amavis会将电子邮件转发到提供DKIM签名服务的SMTPD服务。Postfix和OpenDKIM将负责DKIM签名,因此我们需要注释掉forward_method指令。 # forward_method => 'smtp:[127.0.0.1]:10027', 保存并关闭文件。接下来,我们需要告诉SELinux允许Amavis使用端口10026。安装以下提供semanage命令的软件包。 sudo dnf install policycoreutils-python-utils -y 然后将10026的端口类型设置为amavisd_recv_port_t,以便Amavis能够监听端口10026。 sudo semanage port -m -t amavisd_recv_port_t -p tcp 10026 检查端口10026。 sudo semanage port -l | grep 10026 我们可以看到端口10026也可以被Amavisd使用。 重新启动Amavis sudo systemctl restart amavisd 检查其状态以查看重启是否成功。 systemctl status amavisd 接下来,编辑后缀主配置文件。 sudo nano /etc/postfix/master.cf 将以下行添加到提交服务中,这样来自经过身份验证的SMTP客户端的电子邮件将被传递到端口10026上侦听的Amavis。此行将覆盖/etc/postfix/main中的内容过滤器参数(-o)。cf文件。 -o content_filter=smtp-amavis:[127.0.0.1]:10026 这样地: 如果已为Microsoft Outlook用户启用了smtps服务,则还需要将此行添加到smtps服务中。 保存并关闭文件。重新启动Postfix以使更改生效。 sudo systemctl restart postfix 检查其状态以查看重启是否成功。 systemctl status postfix 在Amavis中禁用垃圾邮件过滤 默认情况下,Amavis中的垃圾邮件过滤处于启用状态。如果您遵循了我的SpamAssassin教程,那么不需要在Amavis中启用垃圾邮件检查。如果你启用它,每封邮件都会被SpamAssassin检查两次。 要在Amavis中禁用垃圾邮件检查,请编辑Amavis配置文件。 sudo nano /etc/amavisd/amavisd.conf 找到下面这行。 # @bypass_spam_checks_maps = (1); # controls running of anti-spam code 删除第一个注释字符(#)以禁用垃圾邮件检查。 @bypass_spam_checks_maps = (1); # controls running of anti-spam code 保存并关闭文件。然后重启Amavis。 sudo systemctl restart amavisd 在Amavis中禁用DKIM 在Linux上可以进行DKIM签名和验证的两个常见软件是OpenDKIM和Amavis。我更喜欢使用OpenDKIM,因为它更适合OpenDMARC。所以我不会解释如何在Amavis中为你的电子邮件签名。 默认情况下,DKIM签名和验证都在Amavis中启用。如果在邮件服务器上运行OpenDKIM,则可以在Amavis中禁用DKIM。 sudo nano /etc/amavisd/amavisd.conf 找到下面的两行并将两者都更改为0,这样Amavis就不会验证传入电子邮件的DKIM签名,也不会为传出电子邮件添加DKIM签名。 $enable_dkim_verification = 1; # enable DKIM signatures verification $enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key 保存并关闭文件。然后重启Amavis。 sudo systemctl restart amavisd 当收到传入的电子邮件时,Postfix将通过sendmail milter接口调用OpenDKIM来验证DKIM签名,然后将电子邮件传递给Amavis进行病毒检查。在发送邮件时,Postfix会打电话给OpenDKIM对邮件进行签名,然后将其传递给Amavis进行病毒检查。 提高Amavis性能 默认情况下,Amavis运行两个进程。如果您在邮件日志(/var/log/maillog)中看到以下行,这意味着Amavis处理电子邮件的速度不够快。 postfix/qmgr[1619188]: warning: mail for [127.0.0.1]:10024 is using up 4001 of 4008 active queue entries postfix/qmgr[1619188]: warning: you may need to reduce smtp-amavis connect and helo timeouts postfix/qmgr[1619188]: warning: so that Postfix quickly skips unavailable hosts postfix/qmgr[1619188]: warning: you may need to increase the main.cf minimal_backoff_time and maximal_backoff_time postfix/qmgr[1619188]: warning: so that Postfix wastes less time on undeliverable mail mail postfix/qmgr[1619188]: warning: you may need to increase the master.cf smtp-amavis process limit mail postfix/qmgr[1619188]: warning: please avoid flushing the whole queue when you have mail postfix/qmgr[1619188]: warning: lots of deferred mail, that is bad for performance 要提高性能,请编辑Amavis配置文件。 sudo nano /etc/amavisd/amavisd.conf 找到下面这行。将2更改为4,这将使Amavis运行4个进程。如果你有10个CPU核,你可以把4个换成10个。 $max_servers = 2; # num of pre-forked children (2..30 is common), -m 保存并关闭文件。然后编辑Postifx主配置文件。 sudo nano /etc/postfix/master.cf 找到smtp amavis服务定义,并将进程限制从2更改为4。 smtp-amavis unix - - n - 4 smtp -o syslog_name=postfix/amavis -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 -o smtp_tls_security_level=none 保存并关闭文件。然后重新启动Amavis和Postfix,使更改生效。 sudo systemctl restart amavisd postfix 现在运行以下命令。你应该看到现在有4个Amavis进程。 sudo amavisd-nanny 按Ctrl+C键停止阿玛维保姆。 跳过对您的新闻稿的病毒检查 如果您使用邮件服务器发送新闻稿,并且启用了Amavis和ClamAV,那么当您向订阅者发送新闻稿时,大量的CPU和RAM资源将用于病毒检查。这可能会使邮件服务器无响应。您可以使用以下方法跳过新闻稿的病毒检查。 编辑后缀主配置文件。 sudo nano /etc/postfix/master.cf 在该文件开头添加以下行。这将在本地主机的端口2525上启用smtpd,并且它可以接受从同一服务器启动的客户端连接。如果有另一个进程监听端口2525,您可以将127.0.0.1:2525更改为其他内容,例如127.0.0.1:2552。请注意,content_filter参数设置为none,这意味着ClamAV不会扫描电子邮件。 127.0.0.1:2525 inet n - - - 1 smtpd -o syslog_name=postfix/2525 -o postscreen_greet_action=ignore -o content_filter= 然后在文件末尾添加以下行。将12.34.56.78替换为邮件服务器的公共IP地址。这将创建另一个Postfix提交守护程序,监听端口10587。这适用于来自另一台服务器的客户端连接。content_filter参数也设置为none。 12.34.56.78:10587 inet n - y - - smtpd -o syslog_name=postfix/10587 -o smtpd_tls_security_level=encrypt -o smtpd_tls_wrappermode=no -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o content_filter= 保存并关闭文件。然后重新启动postfix。 sudo systemctl restart postfix 如果新闻稿应用程序在邮件服务器上运行,则指定127.0.0.1:2525作为SMTP主机,而不进行SMTP身份验证。如果您的新闻稿应用程序在其他服务器上运行,请指定12.34.56.78:10587作为SMTP主机,并进行SMTP身份验证。 收尾 我希望本教程能帮助您在CentOS 8/RHEL 8邮件服务器上安装Amavis和ClamAV。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.24 浏览:262
  • 站群服务器使用安全狗做安全设置的方法

    相对于单站来说,站群服务器安全策略设置更加重要,由于站群的数量较为庞大,某一个站群被篡改是很难发现的,黑客通过入侵一个网站就能控制所有的站群。 通常黑客都是将站群中的广告或者是站群导出的流量修改,这样的修改仅仅是流量的一点损失。有些黑客会直接在站群中悬挂大量垃圾网站链接,这些链接大多数都是黑链的形式存在。也就是将链接隐藏起来。 因此我们在检查站群安全的时候一定要注意检查源码,单纯的浏览网页是无法发现这些黑链的。 MMCloud工程师在SEO诊断过程中,遇到过一位朋友的站群开始的时候做的相当成功,后面突然全部被K掉。经过分析才知道,站群在一个月前就被悬挂了黑链,这位朋友平时只是简单的浏览网页检查,忽视了这种黑链的存在。导致了最后无法挽回的后果。 首先一点MMCloud工程师建议, 在没有更新文章的时候直接将站群目录写入权限锁定,使用安全狗非常方便操作,如图1、2、3,大量的实践证明这些的方法作为有效,站群目录权限一旦被锁定,所有的网页将不能被修改,文件夹内页不能创建文件,这样黑客便无计可施了。 图1 安全狗主动防御 图2  安全狗网站保护规则 图3  安全狗设置文件监控规则 其次是开启远程桌面保护,如图4、5、6,需要注意的是MMCloud工程师建议使用计算机名认证,IP认证很容易出现问题,因为我们使用的网络,大多数没有固定的IP地址。如果IP地址更换的话,就无法通过认证连接服务器了。还有一点就是修改远程登陆端口,做到了这三点站群服务器就会安全许多。 图4 安全狗主动防御 图5 安全狗设置远程桌面保护 图6 安全狗设置远程白名单 最后MMCloud工程师建议,通过安全狗设置定时重启服务器任务。因为站群服务器承载的数据量较大,后期关键词获得排名后访问量也较大,这样会导致服务器产生很多的垃圾。 实战中我们注意到Windows服务器,如果48小时没有重启的话,很容易会导致死机或者网络断线。之前我们都是在半夜人工重启服务器,现在我们可以借助于安全狗软件,如图7、8、9进行设置,这样我们就不用操心服务器卡死或者无法连接了。 图7 安全狗设置定时任务 图8 安全狗新增定时任务 图9 安全狗增加定时操作

    2021.12.21 浏览:143
  • 在Ubuntu上设置CUPS打印服务器(你好,IPP,Samba,AirPrint)

    本教程将向您展示如何在同一网络上与Windows、macOS和iOS客户端共享连接到Ubuntu计算机的打印机。CUPS(通用Unix打印系统)是Linux、FreeBSD和macOS上的默认打印系统。Linux桌面环境可能有一个专用的打印机配置实用程序,但它们都使用罩杯。 CUPS打印机可以通过多种协议在网络上共享,包括: Bonjour+IPP:Bonjour,也称为mDNS/DNS-SD(多播DNS/DNS服务发现),允许计算机在本地网络上查找服务。IPP(互联网打印协议)是传输协议。 SMB:又名Samba,主要用于与Windows客户端共享文件和打印机。 AirPrint:允许iPhone、iPad和macOS客户端通过Wi-Fi进行打印。 每种协议都有其优缺点。首先,我将向您展示如何安装和配置CUPS。然后我们将学习如何通过上述3个协议共享CUPS打印机。我建议使用这三种方法共享打印机,这样用户就可以在本地网络上轻松找到可用的打印机。 第一步:在Ubuntu上安装和配置CUPS Ubuntu桌面版预装了CUPS。如果你使用Ubuntu server edition,你需要运行以下命令从默认的Ubuntu存储库安装CUPS。 sudo-apt-install-cups 然后开始喝咖啡。 sudo systemctl启动杯 启动时启用自动启动。 sudo systemctl启用cups 检查其状态: systemctl状态杯 样本输出: 接下来,使用命令行文本编辑器(如Nano)编辑CUPS主配置文件。 sudo nano/etc/cups/cupsd。形态 首先,我们需要在本地网络上显示共享打印机。找到下面这行。 浏览 换成 浏览 因此,同一网络中的其他计算机可以看到连接到Ubuntu计算机的打印机。 默认情况下,CUPS web界面仅在localhost:631上可用。如果你运行的是Ubuntu server edition,你可能还想让CUPS监听所有可用的网络接口,这样你就可以从其他计算机访问CUPS网络接口。找到下面这行。 听本地主机:631 换成 631端口 所以CUPS将监听所有网络接口。然后找到下面几行。 &lt;地点/&gt;命令允许、拒绝&lt/地点&gt; 上述配置仅允许从本地主机访问CUPS web界面。要允许从同一网络中的其他计算机进行访问,请将allow@LOCAL添加到如下配置中。 &lt;地点/&gt;命令允许,拒绝允许@LOCAL&lt/地点&gt; 还将其添加到/admin目录,以允许从本地网络进行远程管理。 &lt;地点/管理&gt;命令允许,拒绝允许@LOCAL&lt/地点&gt; 您还可以允许特定的IP地址,如下所示: &lt;地点/&gt;订单允许,拒绝允许192.168.0.101&lt/地点&gt; 保存并关闭文件。然后重新启动CUPS,使更改生效。 sudo systemctl重新启动cups 注意,如果你在Ubuntu上启用了UFW防火墙,你需要允许同一网络中的客户端访问你的Ubuntu盒上的631端口。例如,我的专用网络使用192.168.0.0~192.168.0.255网络范围,因此我运行以下命令。 sudo ufw允许从192.168.0.0/24进入任何端口631 CUPS网络界面可在https://IP-address-of-Ubuntu-box:631.在本文中,我们不需要使用web界面,但是如果您想使用它,那么您需要将您的用户帐户添加到lpadmin组,以便在CUPS web界面中进行更改。 sudo adduser你的用户名lpadmin 第2步:在Ubuntu上安装打印机驱动程序 你需要在Ubuntu上安装驱动程序,这样它才能识别和使用打印机。如果您有HP打印机,可以使用以下命令轻松安装驱动程序。 sudo apt安装hplip 我还建议安装打印机驱动程序gutenprint软件包,该软件包为佳能、爱普生、惠普和兼容打印机提供CUPS驱动程序。 sudo apt安装打印机驱动程序gutenprint 如果您有其他打印机,可以在openprinting上找到驱动程序。组织。 安装驱动程序后,您可能需要将打印机重新连接到Ubuntu计算机的USB端口。要测试驱动程序是否正常工作,可以在Ubuntu上创建一个文本文件: echo“LinuxBabe太棒了!”&gt;文件txt 然后运行以下命令从命令行打印此文本文件。 lp文件。txt 这是一个非常基本的方法,所以现在不用担心打印质量。 步骤3:通过Bonjour/IPP协议共享CUPS打印机 安装Avahi守护进程 CUPS可以通过mDNS(多播DNS)和DNS-SD(DNS服务发现)协议(也称为Bonjour)宣布其在网络上的存在。为了做到这一点,你需要安装并运行avahi daemon,这是一个类似于Apple Bonjour服务的服务,它允许计算机自动发现本地网络上的共享设备和服务。 sudo apt安装avahi守护进程 启动avahi守护进程。 sudo systemctl启动avahi守护程序 启动时启用自动启动。 sudo systemctl启用avahi守护程序 Avahi守护进程监听UDP端口5353。在防火墙中打开它。 sudo ufw允许5353/udp IPP无人驾驶打印 Bonjour用于在本地网络上宣传打印机。为了使客户端和CUPS服务器相互通信,需要IPP(Internet打印协议)。IPP的优点是,客户端可以使用共享打印机,而无需在自己的设备上安装任何驱动程序。CUPS支持开箱即用的IPP,所以通过IPP共享CUPS打印机不需要做任何其他事情。 步骤4:在客户端计算机上添加打印机 macOS和Linux客户端 因为macOS和大多数Linux桌面发行版都安装了CUPS作为默认打印系统,一旦您在Ubuntu box上通过Bonjour/IPP启用了打印机共享,macOS和Linux用户在同一网络中就可以自动使用打印机。当他们在应用程序(文字处理器、电子邮件阅读器、照片编辑器和web浏览器)中单击打印选项时,打印机将自动可用。他们不必明确地添加打印机。这是魔法。 如果Linux计算机找不到打印机,则系统可能没有ippfind命令。运行以下命令将其安装在基于Debian的Linux发行版上。 sudo apt安装cups ipp utils 在CentOS 8上,运行以下命令。 sudo dnf安装工具 然后在客户端计算机上重新启动CUPS。 sudo systemctl重新启动cups 窗户 Windows 10附带IPP客户端。在左下搜索栏中输入打印机,然后打开打印机&amp;扫描仪。然后单击添加打印机或扫描仪按钮。它将扫描本地网络上可用的打印机。 如您所见,它找到了我的HP Deskjet打印机。选择找到的打印机,然后单击添加设备。它将在几分钟后添加到打印机列表中。 如果您使用的Windows版本不同,无法以这种方式添加打印机,则可以安装Bonjour打印服务。安装后,启动Bonjour打印机向导。它将自动扫描本地网络上可用的打印机。从屏幕截图中可以看到,它找到了我的HP打印机。 单击“下一步”,然后需要为此打印机选择驱动程序。您可以选择默认安装在系统上的Microsoft IPP类驱动程序。 单击“下一步”,打印机将被添加到Windows系统中。 在Linux上手动添加打印机 如果由于任何原因没有看到打印机,可以手动添加一台。要在桌面Linux上添加Bonjour共享打印机,请在系统设置或应用程序菜单中搜索打印机配置实用程序。单击“添加”按钮添加新打印机。 然后单击网络打印机,它会自动扫描本地网络上可用的打印机。如您所见,它找到了我的HP Deskjet打印机。单击“前进”按钮。 然后你可以给打印机一个名字和描述。我只是接受默认值。点击Apply,你就完成了。 在macOS上手动添加打印机 要在macOS上添加Bonjour共享打印机,请转到系统首选项-&gt;打印机及;扫描仪。单击加号(+)按钮添加打印机。 它会自动扫描本地网络上可用的打印机。如您所见,它找到了我的HP Deskjet打印机。 单击“添加”按钮,它将出现在打印机列表中。 第5步:通过Samba共享CUPS打印机 Samba是针对Unix和Linux的免费开源SMB/CIFS协议实现,允许Unix/Linux和Windows机器在局域网中共享文件和打印。它主要用于与Windows客户端共享文件和打印机。 要在Ubuntu上安装Samba,只需在terminal中运行以下命令。 sudo apt安装samba samba公共bin 要检查Samba服务是否正在运行,请发出以下命令。 systemctl状态smbd systemctl状态nmbd 要启动这两项服务,请发出以下命令: sudo systemctl start smbd sudo systemctl start nmbd 然后编辑主配置文件。 sudo nano/etc/samba/smb。形态 共享打印机时,建议启用spoolssd服务。当有大量打印作业时,这将使Samba更加高效。只需在[global]部分添加以下两行即可启用spoolssd服务。 rpc_服务器:spoolss=外部rpc_守护进程:spoolsd=fork 接下来,转到文件的末尾,您将看到[printers]部分。在Nano文本编辑器中,您可以通过按Ctrl+W,然后按Ctrl+V跳转到文件末尾。找到以下两行。 可浏览=没有客人确定=没有 换成 browseable=是客人ok=是 保存并关闭文件。然后重启Samba。 sudo systemctl重新启动smbd nmbd 在Windows中添加Samba共享打印机。 打开文件浏览器,在地址栏中输入Ubuntu计算机的IP地址,如//192.168.0.110。现在应列出打印机。 双击打印机将其添加到Windows系统。然后单击“确定”按钮选择要安装的驱动程序。安装驱动程序后,打印机将添加到Windows系统中。 第6步:通过AirPrint与iOS客户端共享CUPS打印机 AirPrint允许iPhone、iPad和macOS客户端通过Wi-Fi进行打印,而无需在客户端设备上安装驱动程序软件。CUPS支持AirPrint,但默认情况下avahi守护程序不会在本地网络上宣布AirPrint服务。我们需要创造一个。打印机的/etc/avahi/services/目录中的服务文件,使用带有以下命令的Python脚本。我的打印机型号是DeskJet 2130系列。将其替换为您自己的型号名称。 sudo nano/etc/avahi/services/AirPrint-DeskJet-2130-series。服务 在文件中添加以下行。 &lt;?xml版本='1.0'编码='UTF-8'&gt&书信电报;!DOCTYPE服务组系统“avahi service.dtd”&gt&书信电报;服务集团&gt&书信电报;name replace wildcards=“yes”&gt;AirPrint DeskJet-2130-series@%h&lt/名称&gt&书信电报;服务&gt&书信电报;类型&gt_ipp_tcp&lt/类型&gt&书信电报;亚型&gt_通用的_sub._ipp_tcp&lt/亚型&gt&书信电报;港口&gt;631&lt/港口&gt&书信电报;txt记录&gt;txtvers=1&lt/txt记录&gt&书信电报;txt记录&gt;qtotal=1&lt/txt记录&gt&书信电报;txt记录&gt;透明=T&lt/txt记录&gt&书信电报;txt记录&gt;URF=无&lt/txt记录&gt&书信电报;txt记录&gt;rp=打印机/DeskJet-2130-series&lt/txt记录&gt&书信电报;txt记录&gt;注=HP DeskJet 2130系列&lt/txt记录&gt&书信电报;txt记录&gt;产品=(GPL Ghostscript)&lt/txt记录&gt&书信电报;txt记录&gt;打印机状态=3&lt/txt记录&gt&书信电报;txt记录&gt;打印机类型=0x2900c&lt/txt记录&gt&书信电报;txt记录&gt;pdl=application/octet流、application/pdf、application/postscript、application/vnd。cups光栅、image/gif、image/jpeg、image/png、image/tiff、image/urf、text/html、text/plain、application/vnd。adobe reader postscript,应用程序/vnd。cups pdf&lt/txt记录&gt&lt/服务&gt&lt/服务集团&gt; 保存并关闭文件。重新启动Avahi守护进程。 sudo systemctl重启avahi守护进程 现在,同一网络中的iOS和macOS客户端应该能够使用您的打印机。下面的屏幕截图显示我的iPhone成功找到了AirPrint打印机。 收尾 我希望本教程能帮助您在Ubuntu 20.04、18.04和21.10上安装CUPS打印服务器。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。您可能还想阅读下面的文章来设置Samba文件共享服务器。 在Ubuntu上设置Samba服务器进行文件共享

    2022.03.23 浏览:595