Linux系统安全配置

目录

  • 账户锁定安全策略配置
            • 账户密码安全配置
            • 限制任何用户使用su切换用户
  • SSH安全加固
            • 1.禁止root远程登录
          •       2.禁止使用密码登录,改用密钥登录系统
            • 3.防止绕过2的验证方式登录
            • 4. SSH登录安全机制
            • 5. 设置某个ip或ip段的主机连接目标机SSH端口
            • 6. 更改默认端口
  • FTP服务安全配置
            • 1. 什么是FTP服务
            • 2.Linux下vsftpd的默认主配置文件
  • Apache 服务安全配置
          • 1.什么是apache服务
          • 2.账号设置
          • 3. 授权设置
            • 3.1修改httpd.conf文件,找到 server root设置为:
            • 3.2设置文件夹权限,非root用户禁止修改浏览
          • 4.日志设置
            • 4.1Apache 日志格式分类(1)
            • 4.1.1 错误日志:
            • 4.1.2 访问日志:
          • 5.禁止访问外部文件
            • 5.1 禁止访问除了WEB目录以外的文件
            • 5.2 设置可访问目录
            • 5.3 禁止目录列出
          • 6.隐藏敏感信息
            • 6.1 隐藏版本号
          • 7. 安全配置apache服务(使用密码认证机制访问策略)
            • 7.1 创建密码文件
            • 7.2 访问控制
            • 7.3 创建.htaccess文件,进行限制访问登录
  • 检查相关服务状态
  • 审计策略
          • 1.1 系统日志策略配置文件
          • 1.2 系统特殊文件安全性
  • 参考文章

账户锁定安全策略配置

账户密码安全配置

配置文件: /etc/login.defs在这里插入图片描述

PASS_MAX_DAYS
密码最长的有效期设置 最好设置的有效期较短比较安全
PASS_MIN_DAYS
与第一个相反,设置最短密码有效期时间
PASS_MIN_LEN
设置密码长度不低于xxx位,建议设置的密码为8位以上较为安全
PASS_WARN_AGE
密码失效日期警告天数

限制任何用户使用su切换用户

使用命令 vim /etc/pam.d/su
添加一行内容为auth required pam_wheel.sogroup=<用户名>
指定xxx用户可以使用su

SSH安全加固

SSH 配置文件: /etc/ssh/sshd_config

1.禁止root远程登录

        修改该文件的#PermitRootLogin yes一行,把yes改为no
Linux系统安全配置_第1张图片

      2.禁止使用密码登录,改用密钥登录系统

PasswordAuthentication yes 改为 on 禁止使用密码验证方式登录系统
Linux系统安全配置_第2张图片

3.防止绕过2的验证方式登录

ChallengeResponseAuthentication yes 改为 no

4. SSH登录安全机制

UsePAM yes 改为 no
则标识拒绝登录ssh服务器
Linux系统安全配置_第3张图片

5. 设置某个ip或ip段的主机连接目标机SSH端口

路径: /etc/ssh/sshd_config
在文件末尾添加上

allowusers [email protected]
192.168.220.138 为我的ip,可以更改为其他ip地址

设置之后,其他主机都被拒绝访问连接,只能138这个ip可以访问

6. 更改默认端口

ssh默认端口为22 Port
/etc/ssh/sshd_config 中的Port 22 改为其他任何端口
只要不超过65535 不占用特殊端口就行

如果把默认端口更改为其他端口后,出现连接失败的状况
提示: "   Connection refuse .... " 的字样,可能防火墙屏蔽了指定端口

                       参考链接
解决方案:

1.执行 " service iptables stop"
把防火墙关闭,就可以访问目标端口
service iptables start 开启防火墙
service iptables stop 关闭防火墙
service iptables status 查看防火墙状态

2.或者 添加防火墙规则,添加指定端口号

FTP服务安全配置

1. 什么是FTP服务

FTP Server 服务器是一种专供其他电脑检索文件和存储的特殊电脑。文件服务器通常比一般的个人电脑拥有更大的存储容量,并具有一些其他的功能,如磁盘镜像、多个网络接口卡、热备援多电源供应器。到后来,文件服务器逐渐进化成带有RAID(Redundant Array of Independent Disk)存储子系统和其他高可用特性的高性能系统。
参考链接: FTP服务器
参考链接: FTP Server

2.Linux下vsftpd的默认主配置文件
  1. /etc/vsftpd/user_list # 根据vsftpd.conf 的 userlist_deny进行决定
  2. /etc/vsftpd/ftpusers # 指定了某些用户限制访问FTP服务器
  3. /etc/vsftpd/vsftpd.conf
    以上三个是vsftpd的主要配置文件
    详细参考 : 参考链接
    参考链接
名称 内容
允许匿名登录 anonymous_enable=YES
允许本地local登录 local_enable=YES
开放本地用户写权限 write_enable=YES
激活上传和下载日志 xferlog_enable=YES
数据连接端口 connect_from_port_20=YES
允许匿名用户上传文件 anon_upload_enable=YES
开 启匿名用户的写和创建目录的权限 anon_mkdir_write_enable=YES
匿名用户对文件系统的上传目录具有写权限 write_enable=YES
----- -------

Apache 服务安全配置

1.什么是apache服务

Apache服务 参考链接
简单了解下apache;进行安装apache 等相关服务
参考链接

2.账号设置

配置文件: /etc/httpd/conf/httpd.conf
debain系统:

service apache2 start  # 开启apache2服务
service apache2 stop	# 关闭apache2服务
service apache2 restart	#重启apache2服务

centos系统:

service httpd start   # 开启httpd服务
service httpd stop 	#关闭httpd服务
service httpd restart	#重启httpd服务

使用专用的用户账号和用户组运行apache服务

  1. 如果没有专用的用户,则新键用户,并在apache配置文件中指定
  • i. 创建apache用户组 groupadd apache
  • ii. 创建Apache 用户 并加入到Apache用户组 useradd apache -g apache
  • iii. 将下面两行设置参数加入apache配置文件的httpd.conf中
  1. User apache
  2. Group apache
  1. 检查httpd.conf 配置文件是否允许使用非专用账户(如 root 用户)
    运行apache服务,Linux默认使用apache 或者 nobody用户
如果开启状态下,使用ps-aux 命令  查看apache进程可找到什么类型的用户在运行
3. 授权设置
3.1修改httpd.conf文件,找到 server root设置为:

Server Root /usr/local/apache

  • 默认设置为/etc/httpd/
3.2设置文件夹权限,非root用户禁止修改浏览
  • 执行 chmod 600 /etc/httpd/conf/httpd.conf,设置配置文件属主可读写
  • 执行 chmod 644 /var/log/httpd/*.log设置日志文件为属主可读写,其他用户只有只读权限
    • /etc/httpd/conf/httpd.conf 默认权限为644,根据需要进行修改权限为600
    • /var/log/httpd/*.log 日志文件默认权限644
      Linux系统安全配置_第4张图片
4.日志设置

参考链接

4.1Apache 日志格式分类(1)

apache中日志记录格式有两种,普通型(common)和复合型(combined),安装时默认使用普通型

配置文件: /etc/httpd/conf/httpd.conf

Linux系统安全配置_第5张图片

%h %I %u %t %r $>s $b
远端主机 远端登录名 远端用户名 时间 请求第一行 状态 传送字节
4.1.1 错误日志:
1.	LogLevel notice   # 日志的级别
2.	Error /etc/httpd/logs/error_log  # 日志的保存位置

Linux系统安全配置_第6张图片

4.1.2 访问日志:
1.#CustomLog logs/access_log common
  	#访问日志配置文件
2. #LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio  	# 日志的格式

5.禁止访问外部文件
5.1 禁止访问除了WEB目录以外的文件
1. 修改 /etc/httpd/conf/httpd.conf 配置文件
		1. Order Deny ,Allow
		2. Deny from all
5.2 设置可访问目录
1. Order Allow,Deny
2. Allow from /web
3. /web 为网站的根目录
5.3 禁止目录列出

删除/etc/httpd/conf/httpd.conf配置文件中的Options
的Indexes

1. 修改httpd.conf文件
		1.#Options Indexes FollowSymLinks #删掉Indexes
		2.Options FollowSymLinks
		3.AllowOverride None
		4.Order allow,deny
		5.Allow from all

Indexes的作用就是当web根目录下没有index.html文件时,自动显示目录所有文件

6.隐藏敏感信息
6.1 隐藏版本号

隐藏web页面显示Apache版本号以及其他敏感信息

修改 httpd.conf 文件

  1. 找到 “ServerSignature On” 一行
    On 改为 off
  2. ServerTokens OS” 改为 “ServerTokens Prod
    3.关闭TRACE功能,防止Trace方法被恶意利用
    在httpd.conf文件中添加一行
    " TraceEnable off"
注意: 该参数适用于apache 2.0以上版本
7. 安全配置apache服务(使用密码认证机制访问策略)
7.1 创建密码文件

使用htpasswd命令创建密码文件,Apache将会用它来验证用户身份进行访问web网站

命令 参数
-c 创建加密的文件
-n 不更新加密文件;只将加密后的用户名密码显示在屏幕上
-m 默认采用MD5算法对密码进行加密
-d 采用CRYPT算法对密码进行加密
-p 不对密码进行加密,即明文密码
-s 采用SHA算法对密码进行加密
-b 在命令行一并输入用户名和密码而不是根据提示输入密码
-D 删除指定用户

[root@localhost httpd]# htpasswd -c /etc/httpd/.htpasswd admin # 设置用户名
New password: # 输入密码
Re-type new password: # 重新输入一次新的密码
Adding password for user admin
[root@localhost httpd]#
在这里插入图片描述

ls -a 查看.htpasswd 该隐藏文件
cat filename 查看文件内容
在这里插入图片描述

7.2 访问控制

在httpd.conf文件中添加以下内容
Linux系统安全配置_第7张图片

/var/www/html/1.php  # web目录文件
7.3 创建.htaccess文件,进行限制访问登录

这里我们给1.php这个文件进行限制登录
使用nano命令,设置.htaccess文件

nano /var/www/html/.htaccess 

写入以下代码:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user

最后通过浏览器访问该xxx/1.php文件,提示需要账号密码才能访问该页面
Linux系统安全配置_第8张图片

检查相关服务状态

chkconfig --list
查看相关服务,2,3,4,5
如果为开启状态标识服务已经是启动状态
who
查看系统用户状态
关闭|启动|重启某个服务
chkconfig --level stop|on|restart

审计策略

1.1 系统日志策略配置文件

系统日志文件(默认): /var/log/messages
安全日志文件(默认): /var/log/secure
cron日志文件:          /var/log/cron
查看日志文件:cat /etc/logrotate.d/syslog
检查日志文件是否存在;并备份文件
备份方法:cp -p /etc/logrotate.d/syslog

1.2 系统特殊文件安全性

使用chattr命令对以下文件设置不可更改属性

[root@localhost sysconfig]# chattr +i /etc//passwd
[root@localhost sysconfig]# chattr +i /etc/shadow
[root@localhost sysconfig]# chattr +i /etc/group
[root@localhost sysconfig]# chattr +i /etc/gshadow

参考文章

1.参考文章
2. 阿里云
3.参考文章
4.SSH安全配置
5. Linux安全加固方法

你可能感兴趣的:(系统安全加固)