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。防止没有权限的用户创建新用户。
Lamp下安全配置随笔的更多相关文章
- Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)
Centos下安装配置LAMP(Linux+Apache+MySQL+PHP) 关于LAMP的各种知识,还请大家自行百度谷歌,在这里就不详细的介绍了,今天主要是介绍一下在Centos下安装,搭建一 ...
- windows下配置lamp环境(5)---配置MySQL5.6
开始配置mysql 1.创建配置文件my.ini 1.进入C:\wamp\MySQL 2.把my-default.ini 另存一份:my.ini 3.开始编辑mysql的配置文件,打开my ...
- windows下配置lamp环境(3)---配置PHP5.4
下面配置php Php文件夹里有两个php.ini-*文件,随便修改一个,去掉后缀,变成php.ini (如图) 打开php.ini ,添加php扩展目录723行左右(其实放哪都无所谓,只不过php. ...
- windows下配置lamp环境(2)---配置Apache服务器2.2.25
配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...
- linux下lamp.sh一键配置lamp环境流程
linux下lamp.sh一键配置lamp环境流程 一.总结 一句话总结: 2.将网站从github上clone到/data/www/网站域名/ 3.更改网站目录权限:chown -R apache: ...
- Centos 7环境下安装配置Hadoop 3.0 Beta1简记
前言 由于以前已经写过一篇Centos 7环境下安装配置2.8的随笔,因此这篇写得精简些,只挑选一些重要环节记录一下. 安装环境为:两台主机均为Centos 7.*操作系统,两台机器配置分别为: 主机 ...
- lamp下mysql安全加固
lamp下mysql安全加固 1.修改root用户口令,删除空口令 缺省安装的MySQL的root用户是空密码的,为了安全起见,必须修改为强密码,所谓的强密码,至少8位,由字母.数字和符号组成的不规律 ...
- lAMP下新建维护站点全过程
由于window2003年7.15日微软对此不进行更新和支持,因此换了服务器系统由原来的windows2003直接升级到linux,关于LAMP的环境配置请查看我其他的相关博客,在这仅讲述一下LAMP ...
- Ubuntu下HTTPS配置
Ubuntu下HTTPS配置非常简单,对大部分用户而言,使用普通的自签名证书,只需按照步骤进行就可以了,无需了解密钥.证书的更多知识,更深的背景知识还有RSA算法.DES算法.X509规范.CA机构. ...
随机推荐
- javase基础笔记4——异常/单例和类集框架
继承 extends final关键 多态 是在继承的基础上 接口 interface 异常 exception 包的访问可控制权限 private default protect public 异常 ...
- Linux学习笔记(22) Linux启动管理
1. 系统运行级别 运行级别 含义 关机 1 单用户模式,可想象为windows的安全模式,主要用于系统修复 2 不完全的命令行模式,不含NFS服务 完全的命令行模式,就是标准字符界面 4 系统保留 ...
- this和super
1.this * 每个类的每个非静态方法(没有被static修饰)都会隐含一个this引用名称,它指向调用这个方法的对象. * 当在方法中使用本类的属性时,都会隐含地使用this名称,当然也可以明确指 ...
- SpringRMI解析1-使用示例
Java远程方法调用,即JavaRMI(JavaRemote Method Invocation),是Java编程语言里一种用于实现远程过程调用的应用程序编程接口.它使客户机上的运行的程序可以调用远程 ...
- Ubuntu mysql
To install mysql database in the ubuntu: 1. sudo apt-get install mysql-server 2. apt-get isntall ...
- 5.19[bzoj树网的核]
围观了final,SJTU还是飞了,泽民同志劲啊! 膜拜归膜拜...回来开题 bzoj1999树网的核 最近就喜欢给自己找切不动的题...QAQ ok.....昨天在家里做了一个下午+晚上 又困&am ...
- Docker(linux container) 所依赖的底层技术
1 Namespace 用来做PID的隔离,有了namespace,在docker container里头看来,就是一个完整的linux的世界.在host看来,container里的进程,就是一个普通 ...
- 每天一个linux命令--locate
linux下,不知道自己安装的程序放在哪里了,可以使用locate命令进行查找. [hongye@dev107 ~]$ locate activemq.xml /home/hongye/hongyeC ...
- django 模版语法及使用
模版的定义 模版是一个文本,用语分离文档的表现形式和内容,通常用于生成html 模版当中能够使用的python语法非常少,for ,if 之类,还有ifequal,结束的时候也要写endifequal ...
- storm UI
Storm UI ——本文主要解释下storm ui上各项属性的含义. 通过http://UI_Server:8080可以打开Storm Web UI看看Storm集群的状态. 1. mainpage ...