今天收到邮件,安全整改?让我们Linux系统整改加固。请问如何处理哦
您好,您需要根据您实际的业务情况来对Linux进行加固,如下给你提供了5个方面您可以参考,谢谢。安全配置前,请注意做好数据备份工作。
01 账号安全加固
部分详细配置:
修改口令生存期如下配置即可:
[root@localhost ~]# vim /etc/login.defs
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 90 # 新建用户密码最长使用天数
PASS_MIN_DAYS 0 # 新建用户密码最短使用天数
PASS_MIN_LEN 7 # 新建用户密码到期提示天数
PASS_WARN_AGE 10 # 最小密码长度
设置口令复杂度:
[root@localhost ~]# vim /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password required pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=10
在上方文件中添加如下一行配置,其含义是至少包含一个数字、一个小写字母、一个大写字母、一个特殊字符、且密码长度>=10
限制登录超时:
[root@localhost ~]# vim /etc/profile
TMOUT=300
export TMOUT
限制TTY尝试次数:
[root@localhost ~]# vim /etc/pam.d/login
#%PAM-1.0
auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10
[root@localhost ~]# pam_tally2 --user lyshark 查询远程登录次数
修改SSH远程端口:
[root@localhost ~]# vim /etc/ssh/sshd_config
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 65534 # 登录端口改为65534
MaxAuthTries=3 # 密码最大尝试次数3
[root@localhost ~]# systemctl restart sshd
[C:\Users]$ ssh root@192.168.1.30 6553
禁止Root用户登录:创建一个普通用户以lyshark用户为例
# -----------------------------------------------------------
# 创建普通用户 lyshark
[root@localhost ~]# useradd lyshark
[root@localhost ~]# passwd lyshark
# -----------------------------------------------------------
# 给普通用户添加Sudo授权
[root@localhost ~]# vim /etc/sudoers
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
lyshark ALL=(ALL) ALL
# -----------------------------------------------------------
# 修改ROOT用户禁止登录系统
[root@localhost ~]# vim /etc/ssh/sshd_config
PermitRootLogin no
[root@localhost ~]# systemctl restart sshd
除此之外,你可以通过指定那些被允许用来使用SSH的用户名,从而使得SSH服务更为安全。
[root@localhost ~]# vim /etc/ssh/sshd_config
AllowUsers lyshark admin # 指定允许登录的用户
AllowGroup lyshark admin # 指定允许登录的用户组
小提示:不要小看任何攻击者的社工和爆破能力!
02 文件权限加固
部分详细配置:
限制GCC编译器:
首先,你需要检查单数据包以确定其包含有哪些二进制文件。然后将这些文件全部设置为000无权限。
[root@localhost ~]# rpm -q --filesbypkg gcc | grep "bin"
[root@localhost ~]# chmod 000 /usr/bin/c89
[root@localhost ~]# chmod 000 /usr/bin/c99
[root@localhost ~]# chmod 000 /usr/bin/cc
[root@localhost ~]# chmod 000 /usr/bin/gcc
[root@localhost ~]# chmod 000 /usr/bin/gcc-*
[root@localhost ~]# chmod 000 /usr/bin/gcc-*
然后,单独创建一个可以访问二进制文件的编译器的组,赋予他这个组相应的权限。
[root@localhost ~]# groupadd compilerGroup
[root@localhost ~]# chown root:compilerGroup /usr/bin/gcc
[root@localhost ~]# chmod 0750 /usr/bin/gcc
至此,任何试图使用gcc的用户将会看到权限被拒绝的信息。
03 iptables与SELinux
部分详细配置:
最小化防火墙规则:
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -p INPUT DROP
[root@localhost ~]# iptables -I INPUT -p tcp --dport 6553 -j ACCEPT
[root@localhost ~]# iptables -I OUTPUT -p tcp --dport 6553 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --doprt 80 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 443 -j ACCEPT
[root@localhost ~]# iptables-save
开启SELinux:
[root@localhost ~]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
[root@localhost ~]# setenforce 1
SELinux放行SSH端口:
[root@localhost ~]# yum install -y policycoreutils-python-2.5-29.el7.x86_64
[root@localhost ~]# semanage port -l | grep ssh
ssh_port_t tcp 22
[root@localhost ~]# semanage port -a -t ssh_port_t -p tcp 6553
[root@localhost ~]# semanage port -l | grep ssh
ssh_port_t tcp 6553, 22
设置Web目录权限:
[root@localhost html]# semanage fcontext -a -t httpd_sys_content_t /var/www/html/index.html
[root@localhost html]# ls -Z
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
04 Dokcer容器隔离
以上的安全配置仅限于在真实机中配置,同样我们可以把Web应用放入Docker容器中,这样可以把权限牢牢地锁在笼子里,即使被非法入侵,除非有沙盒逃逸漏洞,否则的话很难逃离Docker沙盒。
1.配置好阿里的Yum源,然后直接一条命令即可完成安装,安装成功后直接运行Docker。
[root@localhost ~]# yum install -y epel-release docker
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# systemctl enable docker
2.在根目录创建一个/data/的文件夹,并赋予最小的权限。
[root@localhost ~]# mkdir /data
[root@localhost /]# chmod 444 -R /data/
[root@localhost /]# chown -R dockerroot.dockerroot /data/
[root@localhost ~]# echo "hello docker" > /data/index.html
3.安装Apache服务,然后将本机的 /data/目录挂载到容器内部。
[root@localhost ~]# docker search httpd
[root@localhost ~]# docker pull docker.io/httpd
[root@localhost ~]# docker run -itd -p 80:80 -v /data:/usr/local/apache2/htdocs httpd:latest
小提示:还可以用docker部署一些蜜罐哦!
05 网站安全狗配置
安全狗可有效抵御部分SQL注入,文件上传等。
1.首先安装依赖包。
[root@localhost ~]# yum install -y mlocate lsof pciutils dmidecode wget psmisc
Package mlocate-0.26-8.el7.x86_64 already installed and latest version
Package lsof-4.87-6.el7.x86_64 already installed and latest version
Package pciutils-3.5.1-3.el7.x86_64 already installed and latest version
Package 1:dmidecode-3.1-2.el7.x86_64 already installed and latest version
Package wget-1.14-18.el7_6.1.x86_64 already installed and latest version
Nothing to do
2.下载并安装网站安全狗,这里安全狗和SELinux有些冲突,需要暂时关闭SeLinux。
[root@localhost ~]# wget http://download.safedog.cn/safedog_linux64.tar.gz
[root@localhost ~]# tar -xzvf safedog_linux64.tar.gz
[root@localhost ~]# cd safedog_an_linux64_2.8.21207/
[root@localhost safedog_an_linux64_2.8.21207]# chmod +x install.py
[root@localhost safedog_an_linux64_2.8.21207]# ./nstall.py
3.登录并启动安全狗。
[root@localhost ~]# sdcloud -u 注册用户名 -p 密码
[root@localhost ~]# sdui
[root@localhost ~]# sdstart
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。