Linux系统加固

1、禁用telnet协议 
    systemctl status telnet
    systemctl stop telnet
    systemctl disable telnet

2、存在空口令账号:​ awk -F ":" '($2==""){print $1}' /etc/shadow

3、修改snmp默认团体字
 /etc/snmp/snmpd.conf
1、修改团体名(snmpd的访问密码,默认为public,修改自己的)
com2sec notConfigUser default public
重启snmp服务
systemctl restart snmpd

禁止匿名用户登录FTP
vim /etc/vsftpd/vsftpd.conf
local_enable=Yes                 #启用本地用户
anonymous_enable=NO              #关闭匿名用户访问
write_enable=YES                 #开放服务器的写权限(若要上传,必须开启)
local_umask=077 
禁止root用户登录FTP
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
systemctl restart vsftpd.service

设置密码复杂度策略
debian
 vim /etc/pam.d/common-password
redhat
vim  /etc/pam.d/system-auth 
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
###
retry=3 定义登录/修改密码失败时,可以重试的次数;
minlen=8 密码最小长度为8个字符。
lcredit=-1 密码应包含的小写字母的至少一个
ucredit=-1 密码应包含的大写字母至少一个
dcredit=-1 将密码包含的数字至少为一个
ocredit=-1 设置其他符号的最小数量,例如@,#、! $%等,至少要有一个
enforce_for_root 确保即使是root用户设置密码,也应强制执行复杂性策略

检查是否设置口令生存周期
执行:cat /etc/login.defs,检查是否配置了以下参数。
PASS_MAX_DAYS 配置项决定密码最长使用期限;
PASS_MIN_DAYS 配置项决定密码最短使用期限;
PASS_WARN_AGE设置口令过期前警告天数;

设置命令行界面超时退出
debian 
echo 'export TMOUT=1800' >> /etc/profile
redhat
echo 'export TMOUT=1800' >> /etc/bashrc
source /etc/bashrc

禁止root用户远程登录
系统默认目录:/etc/ssh/sshd_config
升级后的目录:/usr/openssh/openssh-9.8p1/etc/sshd_config
PermitRootLogin no
系统默认服务:systemctl status sshd.service
升级后的服务:systemctl status sshd9.service

使用PAM认证模块禁止wheel组之外的用户su为root
groupadd wheel
usermod -G wheel xxxxxx
编辑su文件(vim /etc/pam.d/su),在开头添加下面两行:
auth sufficient pam_rootok.so 和
auth required pam_wheel.so use_uid

### Linux 系统加固图解教程 #### 准备工作 在开始Linux系统加固之前,确保已经完成基本的安装并拥有管理员权限。这一步骤对于后续的安全设置至关重要[^1]。 #### 更新现有系统 为了保证系统的安全性,在进行任何更改前应当先进行全面更新。通过命令行执行如下操作来获取最新的补丁和支持: ```bash sudo apt update && sudo apt upgrade -y ``` 上述命令适用于基于Debian/Ubuntu 的发行版;其他版本可能需要调整相应的包管理器指令。 #### 关闭不必要的服务 减少攻击面的一个有效方法是关闭那些不使用的守护进程和服务。可以利用`systemctl`工具查看当前活动的服务列表,并停用不需要启动项: ```bash sudo systemctl list-units --type=service --state=running sudo systemctl disable <serviceName> ``` 这里 `<serviceName>` 需要替换为实际想要禁用的具体服务名称。 #### 安全配置SSH访问 远程登录通常依赖于SSH协议,默认情况下它允许root账户直接登陆,这是潜在的风险之一。编辑 `/etc/ssh/sshd_config` 文件修改相关参数以增强安全性: - 将 `PermitRootLogin yes` 改成 `no` - 修改默认端口号(例如改为22以外) - 启用公钥认证而非密码验证 完成后记得重启 SSH 服务使改动生效: ```bash sudo service ssh restart ``` 这些措施有助于防止暴力破解尝试和其他形式的未授权访问行为。 #### 设置防火墙规则 使用UFW (Uncomplicated Firewall) 或者 iptables 来定义入站流量过滤策略。简单来说就是只开放必要的端口而阻止其余连接请求。下面是一个启用 UFW 并仅允许 HTTP(S), SSH 访问的例子: ```bash sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable ``` 以上命令假设服务器上运行着 Nginx Web Server 和 OpenSSH server 。根据实际情况调整所涉及的应用程序及其对应的端口范围。 #### 应用 SELinux/AppArmor 强制访问控制机制 如果希望进一步提高文件和应用程序级别的保护力度,则可考虑开启SELinux(Apple Armor作为替代方案),这是一种强制性的访问控制系统(MAC),能够更精细地限制主体对客体资源的操作权限。具体实施细节取决于目标平台的选择以及业务需求分析结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值