zoukankan      html  css  js  c++  java
  • Lamp下安全配置随笔

    Apache方面:

    1、apache有两个指令可以输出服务器的细节,即ServerSignature和ServerTokens。

    当这两个指令一起使用时,会输出apache的版本号,php的版本号,ip,端口等信息。很明显这样是很不安全的。

    此时有两种解决办法,一:禁用ServerSignature。二:如果不能禁用,则可以将指令设置为“Prod”(这样只会显示最少的信息)。

    2、在httpd.conf文件中,其DocumentRoot指令所对应的目录为公共目录,用户很容易就可访问到,这里面最好不要放重要的文件。

    3、httpd.conf文件中有大量的注释语句,这些注释语句有时候回带来负面的效果,建议删除。

    4、在not found错误页面一般会显示你的apache版本号,服务器操作系统名称等信息。解决办法是:

    用vim编辑器打开配置文件,查找“ServerSignature”,默认情况下它是打开状态。我们需要关闭服务器签名。ServerTokens Prod告诉Apache只在每一个请求网页的服务器响应的头部,仅返回Apache产品名称。

    # vim /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora)
    # vim /etc/apache/apache2.conf (Debian/Ubuntu)
    ServerSignature Off
    ServerTokens Prod
    # service httpd restart (RHEL/CentOS/Fedora)
    # service apache2 restart (Debian/Ubuntu)

    5、默认情况下,输入url后apache会自动查找目标目录里面的index.php文件,如果没找到,在页面上会显示路径目录里的所有内容,这样是很不安全的。解决办法是:

    修改Apache配置文件httpd.conf;找到下面这一句删除掉Indexes即可。把Options Indexes FollowSymLinks改成Options FollowSymLinks即可。

    PHP方面:

    与安全有关的配置参数

    1、disable_functions = string,默认值:null,可以设定你希望禁用的函数,如:disable_functions = fopen,popen,file

    2、disable_classes = string,默认值:null,可以禁用类

    3、display_errors = On|Off,默认值:on,正常情况下在开发过程中如果有什么错误会被报错到网页上,但当网站运营时,如果继续将报错显示在网页上明显不合适,所以要将该参数设置为off

    4、max_execution_time = integer,默认值:30,此参数可以指定脚本的执行秒数,可以防止用户占用过多的cpu时间(如果设置为0,则没有时间限制)

    5、memory_limit = integerM,默认值:128M,此指令可以指定脚本使用的内存(此指令只有在配置PHP时启用--enable-memory-limit)

    6、open_basedir = string,默认值:null,这个指令可以建立一个基目录,所有的文件操作都只能在这个目录下进行,(与apache的documentroot指令类似)。

    7、user_dir = string,默认值:null,辞职岭可以设定一个目录名,php脚本必须放在这里才能执行。(例如:如果设置为demo,则用户Jon希望执行demo.php,则应该在Jon的用户目录下简历demo目录,之后再将demo.php放在该文件夹里面)。

    MySql方面:

    1、禁用所有不需要使用的系统服务(如你不需要用web服务器发送电子邮件,则可以禁用该服务)。

    2、关闭未使用的端口。

    3、mysql守护进程的一些安全选项:

    --skip-networking。若启用此选项,则你的mysql数据库不接受任何远程连接(这样虽然安全,但也意味着你自己也不能远程调试你的数据库)

    --skip-name-resolve。防止用户用主机名连接,只允许使用ip地址和localhost

    --skip-show-database。防止没有SHOW DATABASES权限的用户使用此命令查看数据列表。

    --safe-user-create。防止没有权限的用户创建新用户。



  • 相关阅读:
    java 重定向和转发的区别
    Python练习100则--部分概念的没有做
    MYSQL忘记root密码后如何修改
    二分查找注意点
    数据库连接串整理
    MYSQL mysqldump数据导出详解
    MVCC的一些理解
    MySQL 加锁处理分析-转载
    扩展1
    maven-windows使用
  • 原文地址:https://www.cnblogs.com/red-code/p/5297929.html
Copyright © 2011-2022 走看看