Lamp下安全配置随笔
2016-03-20 15:38
337 查看
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产品名称。
5、默认情况下,输入url后apache会自动查找目标目录里面的index.php文件,如果没找到,在页面上会显示路径目录里的所有内容,这样是很不安全的。解决办法是:修改Apache配置文件httpd.conf;找到下面这一句删除掉Indexes即可。把Options Indexes FollowSymLinks改成Options FollowSymLinks即可。PHP方面:与安全有关的配置参数1、disable_functions = string,默认值:null,可以设定你希望禁用的函数,如:disable_functions = fopen,popen,file2、disable_classes = string,默认值:null,可以禁用类3、display_errors = On|Off,默认值:on,正常情况下在开发过程中如果有什么错误会被报错到网页上,但当网站运营时,如果继续将报错显示在网页上明显不合适,所以要将该参数设置为off4、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。防止没有权限的用户创建新用户。
# 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,file2、disable_classes = string,默认值:null,可以禁用类3、display_errors = On|Off,默认值:on,正常情况下在开发过程中如果有什么错误会被报错到网页上,但当网站运营时,如果继续将报错显示在网页上明显不合适,所以要将该参数设置为off4、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。防止没有权限的用户创建新用户。
相关文章推荐
- MFC 控件添加热键
- nodejs-EventEmitter
- C++思维导视
- 使用SecureCRT时按 (ctrl+S) 突然假死的问题
- Leetcode: 125. Valid Palindrome(JAVA)
- DIV的盒子模型
- 结构体的调用
- Nyoj 吝啬的国度(图论&&双DFS)
- nodejs-fs模块
- Linux下文件的读写操作( open read write)
- @ModelAttribute的简单学习
- 有关表单与CSS的基础知识及实例应用(新手,有待完善...)
- Eclipse调试常用技巧
- Tomcat 7 FindClass org/apache/catalina/startup/Bootstrap failed
- java安全(三)摘要算法MD5
- Bzoj 3171: [Tjoi2013]循环格 费用流
- JavaScript中的设计模式:状态模式
- 访问一个网页过程中发生了什么
- 纪念一下今天开了CSDN的博客
- 【机房重构】 数据类型转换