工具 | 说明 |
ssh | SSH 客户端,用于远程登录服务器。 |
sshd | 存在于服务端的 SSH 守护进程。 |
scp | 基于 SSH 的安全远程文件复制程序。 |
sftp | 基于 SSH 的安全文件传输程序。 |
ssh-agent | 用于缓存私钥的身份验证代理。 |
ssh-add | 为 ssh-agent 添加私钥身份。 |
ssh-keygen | 生成、管理并转换 SSH 验证密钥。 |
/etc/ssh/ 目录中。用户特定的 SSH 配置信息保存在用户主目录中的 ~/.ssh/ 中,主要文件如下:/root/.ssh/authorized_keys:用于保存已认证用户的公钥。/etc/ssh/ssh_config:SSH 客户端的全局配置文件。此文件中的设置将应用于系统上的所有用户。通常,该文件包含默认的连接设置。用户级别的配置文件(如 ~/.ssh/config)可以覆盖全局配置文件中的参数。/etc/ssh/sshd_config:SSH 服务器的主要配置文件。此文件定义了 SSH 服务器的行为和设置,如:端口号、root 登录选项、登录超时、密钥验证等。要更改 SSH 服务器设置,请编辑该文件并重启 SSH 服务。/etc/ssh/ssh_host_*key 和 /etc/ssh/ssh_host_*key.pub:这是 SSH 服务器的私钥和公钥文件,用于其身份验证和连接加密。文件名中的星号(*)可以是 rsa、ecdsa、ed25519 等不同类型的密钥。这些文件在服务器端生成,并在建立 SSH 连接时与远程客户端共享。SSH 连接的安全性基于这些密钥。/etc/ssh/sshd_config 文件,找到并修改以下行:Port <custom_port_number>
<custom_port_number> 替换为您想要的自定义端口号。enforcing(TencentOS Server 默认配置),需要调整 SELinux 的策略以允许新的 SSH 端口。运行以下命令:sudo semanage port -a -t ssh_port_t -p tcp <custom_port_number>
sudo firewall-cmd --add-port=<custom_port_number>/tcp --permanentsudo firewall-cmd --reload
sudo systemctl restart sshd
/etc/ssh/sshd_config 文件,修改以下配置。该配置可以降低被攻击的风险,同时可以帮助您更好地跟踪和审查在您的系统上执行的操作。PermitRootLogin no
sudo sshd -t 验证配置语法,并保持当前会话不断开,重启后先确认新的 SSH 连接可正常建立,再断开当前会话。sudo systemctl restart sshd
ssh-keygen -t rsa
/home/<username>/.ssh 目录下生成名为 id_rsa 的私钥文件和名为 id_rsa.pub 的公钥文件,-t 表示密钥类型是 rsa。ssh-copy-id username@remote-server
id_rsa.pub 文件(即公钥)追加到远程服务器的 /home/<username>/.ssh/authorized_keys 文件中。如果该文件不存在,将自动创建。ssh username@server-ip
sudo dnf install vsftpdsudo systemctl enable vsftpdsudo systemctl start vsftpd
/etc/vsftpd/vsftpd.conf,原始配置文件中可能包含以下参数,按照需求修改或添加以下配置:# 禁止匿名登录:只允许已验证的用户访问。anonymous_enable=NO# 启用本地用户的 FTP 访问。local_enable=YES# 开启写权限,用以创建/更新文件或目录。视需求决定是否开启。write_enable=YES# 允许基于 chroot 的安全性:将用户限制在其主目录。chroot_local_user=YES# 确保带有写权限的用户始终处于 chroot 环境。allow_writeable_chroot=YES# 启用用户登录信息的记录。xferlog_enable=YES# 监听:启用 pasv_min_port 和 pasv_max_port 之间的被动模式端口范围。pasv_enable=YESpasv_min_port=40000pasv_max_port=50000# 禁用 SSL/TLS 的隐式和显式连接,如果需要的话,# 还需要将 ssl_enable 关闭force_local_data_ssl=NOforce_local_logins_ssl=NOssl_enable=NO
sudo firewall-cmd --add-port=21/tcp --permanentsudo firewall-cmd --add-port=40000-50000/tcp --permanentsudo systemctl restart firewalld
sudo groupadd ftp-userssudo useradd -m -g ftp-users -s /sbin/nologin <ftp_user>sudo passwd <ftp_user>
/sbin/nologin 可禁止其交互式登录(如 SSH),仅保留 FTP 等非交互服务访问权限。/etc/named.conf,将以下内容添加到 options 块:options {...allow-query {localhost;192.168.0.0/24;};...};
/etc/named.conf 内修改相关区域(zone)的设置。具体操作是添加一个 allow-transfer 配置参数,仅指定允许接收区域传递的辅助 DNS 服务器的 IP 地址或地址范围。以下是一个区域传递限制的示例:zone "example.com" {type master;file "/etc/named/zones/db.example.com";allow-transfer {192.168.1.2;};};
example.com 区域信息传递。/etc/named.conf,将以下内容添加到 options 块即可禁止递归查询:options {...recursion no;...};
/etc/named.conf,将以下内容添加到 options 块:options {...dnssec-validation yes;...};
dnssec-enable 选项在 BIND 9.16 及以上版本已废弃并移除,无需配置。启用 DNSSEC 验证功能仅需保留 dnssec-validation yes; 即可。/etc/named/ 目录下创建一个名为 named.blacklist 的文件。然后,在 /etc/named.conf 文件中,将以下内容添加到 options 部分:options {...response-policy { zone "blacklist"; };...};
/etc/named.conf 文件中添加以下内容:zone "blacklist" {type master;file "named.blacklist";allow-query { none; };};
named.blacklist 文件中添加一行:bad-domain.example CNAME .
postfix、sendmail 和 dovecot。在选择您的邮件服务软件包时,根据您的需求、偏好和环境综合考虑。postfix + dovecot 是目前流行的邮件服务软件组合,因为它提供了良好的安全性和性能。以下将基于这两个软件包列举一些实用的安全加固案例。dnf 安装 Postfix 和 Dovecot:sudo dnf install postfix dovecot
sudo systemctl enable postfix dovecotsudo systemctl start postfix dovecot
sudo openssl req -new -x509 -days 365 -nodes \\-out /etc/pki/tls/certs/mailserver.pem \\-keyout /etc/pki/tls/private/mailserver.keysudo chmod 0600 /etc/pki/tls/private/mailserver.key
/etc/postfix/main.cf,添加或修改以下配置项:smtp_use_tls = yessmtpd_tls_security_level = maysmtpd_tls_auth_only = yessmtpd_tls_cert_file = /etc/pki/tls/certs/mailserver.pemsmtpd_tls_key_file = /etc/pki/tls/private/mailserver.keysmtpd_tls_loglevel = 1smtpd_tls_session_cache_timeout = 3600s
/etc/dovecot/conf.d/10-ssl.conf,添加或修改以下内容:ssl = requiredssl_cert = </etc/pki/tls/certs/mailserver.pemssl_key = </etc/pki/tls/private/mailserver.key
< 前缀为 Dovecot 配置语法,表示从指定文件中读取内容。sudo systemctl restart postfixsudo systemctl restart dovecot
/etc/dovecot/dovecot.conf 文件,修改或添加以下行:auth_mechanisms = plain login
/etc/dovecot/conf.d/10-auth.conf 文件,找到以下行并取消注释,以禁用不安全的纯文本身份验证:disable_plaintext_auth = yes
/etc/postfix/main.cf,添加下列配置项:smtpd_sasl_auth_enable = yessmtpd_sasl_security_options = noanonymoussmtpd_sasl_local_domain = <myhostname>smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated, reject_unauth_destination
/etc/postfix/master.cf,以将 Dovecot 用作邮件传输代理(MTA)的身份验证代理。找到以下部分:smtp inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes-o smtpd_sasl_type=dovecot
文档反馈