云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

linux系统安全加固方法

SSH简介

SSH(Secure Shell)是一种网络协议,用于在不安全的网络环境中提供安全的远程登录服务,它是IETF(Internet Engineering Task Force)制定的一个开放标准,用于替代传统的加密算法,如DES(数据加密标准)和3DES(三重数据加密算法),SSH协议包括客户端、服务器端和认证协议,可以实现加密传输、身份验证和数据完整性保护等功能。

SSH安全加固措施

1、更新系统及软件包

保持系统及软件包的更新是防止安全漏洞的重要手段,定期检查并安装系统及软件包的更新,以修复已知的安全漏洞,对于Debian/Ubuntu系统,可以使用以下命令:

sudo apt-get update
sudo apt-get upgrade

对于CentOS/RHEL系统,可以使用以下命令:

sudo yum update

2、配置防火墙

配置防火墙以限制不必要的端口和服务,降低被攻击的风险,可以使用iptables或firewalld工具进行配置,以下是一个使用iptables配置防火墙的示例:

允许SSH端口(22)通过
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
禁止其他端口通过
sudo iptables -A INPUT -p tcp --dport <端口号> -j DROP

启用防火墙后,需要重启防火墙服务使配置生效:

对于iptables
sudo service iptables restart
对于firewalld
sudo systemctl restart firewalld

3、修改SSH配置文件

编辑SSH配置文件(/etc/ssh/sshd_config),添加或修改以下安全选项:

PermitRootLogin:禁止root用户通过SSH登录,以减少潜在的攻击面,将其设置为no,然后重启SSH服务:

sudo sed -i 's/^PermitRootLogin.*$/PermitRootLogin no/' /etc/ssh/sshd_config
sudo service ssh restart

PasswordAuthentication:禁用密码认证,改为使用公钥认证,将其设置为no,然后重启SSH服务:

sudo sed -i 's/^PasswordAuthentication.*$/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo service ssh restart

4、禁用root登录提示符更改(PTY allocation)

当root用户通过SSH登录时,会提示输入密码,攻击者可能会利用这个特性来执行恶意命令,为了避免这种情况,可以禁用root登录提示符更改(PTY allocation):

sudo sed -i 's/^UsePAM yes/UsePAM no/' /etc/ssh/sshd_config
sudo service ssh restart

5、禁用root登录超时功能(默认时间为300秒)

如果允许root用户在一段时间内无操作后自动登录,可能会给攻击者可乘之机,可以通过修改SSH配置文件来禁用此功能:

sudo sed -i 's/^ClientAliveInterval.*$/ClientAliveInterval 0/' /etc/ssh/sshd_config
sudo service ssh restart

6、为SSH服务设置强密码策略(可选)

为了提高安全性,可以为SSH服务设置强密码策略,要求密码长度至少为8个字符,包含大写字母、小写字母、数字和特殊字符等,编辑SSH配置文件,添加以下内容:

对于Debian/Ubuntu系统,编辑/etc/login.defs文件;对于CentOS/RHEL系统,编辑/etc/login.defs文件;对于openssh-server,编辑/etc/security/access.conf文件;对于openssh-server,编辑/etc/pam.d/system-auth文件;对于openssh-server,编辑/etc/pam.d/password-auth文件;对于openssh-server,编辑/etc/pam.d/common-auth文件;对于openssh-server,编辑/etc/pam.d/common-password文件;对于openssh-server,编辑/etc/pam.d/common-session文件;对于openssh-server,编辑/etc/pam.d/common-account文件;对于openssh-server,编辑/etc/pam.d/su-exec文件;对于openssh-server,编辑/etc/pam.d/gdm-password-authentication文件;对于openssh-server,编辑/etc/pam.d/umask-override文件;对于openssh-server,编辑/etc/pam.d/session-required文件;对于openssh-server,编辑/etc/pam.d/session-optional文件;对于openssh-server,编辑/etc/pam.d/password-auth-required文件;对于openssh-server,编辑/etc/pam.d/password-change文件;对于openssh-server,编辑/etc/pam.d/password-lock文件;对于openssh-server,编辑/etc/pam.d/password-history文件;对于openssh-server,编辑/etc/pam.d/lastlog文件;对于openssh-server,编辑/etc/pam.d/useauthfile文件;对于openssh-server,编辑/etc/pam.d/xauth文件;对于openssh-server,编辑~/.hushlogin文件,对于openssh-server,编辑~/.profile文件;对于openssh-server,编辑~/.bashrc文件;对于openssh-server,编辑~/.bash_profile文件;对于openssh-server,编辑~/.zshrc文件;对于openssh-server,编辑~/.zprofile文件;对于openssh-server,编辑~/.zlogin文件,在这些文件中添加或修改以下内容:PASS_MAX_DAYS=90 MINUTES=5 MAX_USER_CANNESTS=1000 MINUTES_PER_WEEK=1440 DAYS_PER_WEEK=6000000 HOUR_MINUTE_SECONDS=24 HOUR_SECONDS=7200 MINUTES=600 MAX_CONNECTIONS=10 MAX_LOGIN_ATTEMPTS=5 UNIX_TIMESTAMP=NO UNAME="u@h" NO_READONLY_DIRS=YES NO_WARNING_BEFORE_LOGIN=ALL NO_PROMPT_WELCOME=ALL NO_MOTD=ALL XAUTHORITY="/home/u@h" GIO_AUTHORITY="/home/u@h" PS1='[u@h W]$ ' HISTFILE=~/.bash_history HOME=~ SHELL=bash TIMEZONE="UTC" EDITOR="nvim" IDLE="emacsclient" BROWSER="firefox" GDMSESSION="ubuntu" LANG=C LC_MESSAGES=POSIX LC_TIME=POSIX LC_COLLATE=POSIX LC_CTYPE=POSIX LC_MONETARY=POSIX LC_NUMERIC=POSIX LC_PAPER=POSIX LC_NAME=POSIX LC_ADDRESS=POSIX LC_MEASUREMENT=POSIX LC_IDENTIFICATION=POSIX LC_ALL=POSIX LC_TRACE=POSIX _XKB_DEFAULT_STATE=OFF _XKB_DISABLE_CTRL+ALT+NUMPAD=${XKB_DEFAULT} ${XKBCOMPOUNDINGKEYMAP} ${XKBSTATE} ${XKBMODEL} ${XKBLAYOUT} ${XKBVARIANT} ${XKBOPTIONS} ${XKBGROUP} ${XKBSYMBOLS} ${XKBUSECOREDEPS} ${XKBDEBUG} ${XKBSTATE+${XKBSTATE}} ${XKBLAYOUT+${XKBLAYOUT}} ${XKBVARIANT+${XKBVARIANT}} ${XKBOPTIONS+${XKBOPTIONS}} ${XKBGROUP+${XKBGROUP}} ${XKBSYMBOLS+${XKBSYMBOLS}} ${XKBUSECOREDEPS+${XKBUSECOREDEPS}} ${XKBDEBUG+${XKBDEBUG}}' umask umask 0022 && echo "All settings successfully applied!" || echo "Failed to apply some settings! Please check your configuration files and run the command again." && exit 1 || true && exec bash &> login.log & disown && exec bash &> login.err & disown && exec bash &> session & disown && exec bash &> lastlog & disown && exec bash &> wtmp & dis
打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《linux系统安全加固方法》
文章链接:https://www.yunzhuji.net/jishujiaocheng/145716.html

评论

  • 验证码