背景需求
Linux 因为其强大的处理能力和开源免费,被广泛用于网关(实例链接)和服务器(实例链接)。实际工作中,保护 Linux 设备的安全成为产品设计的挑战。为此,本文列出保护 Linux 系统安全的关键命令。
设置安全的账户与口令
- 生成普通账户
useradd -d /home/somebody -s /bin/bash somebody
设置密码passwd somebody
添加 sudo 权限/usr/sbin/visudo
添加 somebody ALL=(ALL) ALL - 禁止 ssh 的 root 账户,更改 22 端口为 XXXXX
- /etc/ssh/sshd_config : PermitRootLogin yes -> no Port 22 -> XXXXX
- systemctl restart ssh.service
- 账户名:变动,不可向外界披露
- 口令:大小写字母+数字+特殊符号,严格保密,不能记载
定期自动更新软件,防止漏洞攻击
每周二 12:30 自动更新软件 crontab -e 添加
- CentOS: 30 12 * * 2 yum -y update && yum clean packages
- Ubuntu: 30 12 * * 2 apt-get -y autoremove; apt-get upgrade
关闭不需要的服务和端口
- 查看服务端口:netstat -tunlp
- 寻找待关闭服务
- 查看命令路径:which rpcbind -> /usr/sbin/rpcbind
- 查看软件包:rpm -qf /usr/sbin/rpcbind dpkg -S /usr/sbin/rpcbind
- 了解软件用途:rpm -qi rpcbind
- 查找服务名称:systemctl list-units | grep rpcbind
- 关闭和禁止服务: systemctl [stop disable] rpcbind.[service socket]
使用 nmap 扫描主机
- 扫描自己:nmap -sSU -Pn host_ip
- 内网扫描:
- nmap -sS -Pn host_ip
- nmap -sU -Pn host_ip -p udp_port
- 外网扫描:
- nmap -sS -Pn host_ip
- nmap -sU -Pn host_ip -p udp_port
配置防火墙
- 查看防火墙规则:iptables -L -v -n | less
修补 bash 漏洞
- 执行命令如果显示 shellshock 则存在漏洞:env x=’() { :;}; echo shellshock’ bash -c “echo testing”
监控系统
- 监控系统性能:glances
- 安装:yum install -y glances
- 以 3 秒间隔刷新:glances -t 3
- 审计 Linux 系统日志
- 安装:yum install -y lynis
- 扫描:lynis -c
- 警告:grep Warning /var/log/lynis.log
- 建议:grep Suggestion /var/log/lynis.log