分类目录归档:VPS教程

lnmp一键包环境优化教程

最近群里很多小伙伴都用起了阿里云,而且大多数小伙伴都比较喜欢使用军哥的lnmp一键包,正好小V趁着今天放假就来更新一篇lnmp环境的优化教程。

第一步:Nginx的优化

编辑Nginx主配置文件:/usr/local/nginx/conf/nginx.conf

修改这个地方,这是修改后的,您可以按你的内存修改buffer 大小,多少。我的512M内存修改成现在这个配置

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 64k;
fastcgi_temp_file_write_size 128k;

第二步:php-fpm的优化

编辑php-fpm配置文件:/usr/local/php/etc/php-fpm.conf

<value name="max_children">2</value> #默认是50
<value name="StartServers">2</value> #默认是20
<value name="MinSpareServers">2</value> #默认是5
<value name="MaxSpareServers">2</value> #默认是35

第三步:关闭mysql日志

编辑mysql配置文件:/etc/my.conf找到

log-bin=mysql-bin
binlog_format=mixed

再这两行前面加上#,将其注释掉然后重启lnmp:

/root/lnmp restart

大功到成。

VPS分析日志利用nginx过滤恶意访问

学会分析网站日志是一个合格的草根站长所必须的,网站上线后经常会收到各种扫描,那么站长就要学会分析日志得出这些恶意扫面的共同点来过滤这些不友好的访问。这里已v7v3的部分日志截图为例来教大家如何过滤恶意访问,如下图:

VPS分析日志利用nginx过滤恶意访问-VPS教程-代码笔记 %

从上图可以看出这次的“攻击”都是来源与jump.bdimg.com这个域的,这时候我们就可以直接把从jump.bdimg.com这个域下过来的IP全部返回403或者503,这样就可以有效的屏蔽这些恶意访问了,代码如下:

if ($http_referer ~* jump.bdimg.com ) {
return 403;
}

有时候大家还会受到某些攻击器的骚扰,某些攻击器都有特定的user_agent标志,我们则可以直接对包含该标志user_agent的IP进行访问封锁如下图:

VPS分析日志利用nginx过滤恶意访问-VPS教程-代码笔记 %

从以上日志我们可以看出user_agent中包含了UCBrowser,我们这可以对其进行封锁,代码如下:

if ($http_user_agent ~ UCBrowser) {
return 503;
}

封锁多个user_agent标志则可以这样写:

if ($http_user_agent ~* "ua a|ua b"){
           return 503;
       }

有时候我们还可以对特定的访问方式进行封锁,一般情况下都是已GET、以及POST方式。有些扫描器则是已HEAD方式来访问网站的,如下图:

VPS分析日志利用nginx过滤恶意访问-VPS教程-代码笔记 %

遇到以上情况,我们则可以直接禁止HEAD,代码如下:

if ($request_method = HEAD ) {
    
return 403;
    
}

当然还有很多灵活的方法来应对这些不友好的访问,小V这里仅仅是教大家如何分析日志如何针对不同的攻击以及恶意访问来做出做灵活的应对方式。

另外小V还通过分析自己的网站日志得出了一些已知的不友好的user_agent关键字,

地址:http://www.v7v3.com/tool/bot.txt

大家可以将这些UA都封锁掉,也希望看到这篇文章的小伙伴把自己总结到的恶意user_agent回复下让更多人知道。

(PS:以上方法只适用于nginx)

利用lnmp一键包快速搭建nginx+php+mysql环境

之前小V写过两篇手动编译VPS环境的教程,今天小V就再来教大家使用lnmp一键包安装nginx+php+mysql环境,在安装之前我们先要执行下screen命令,因为lnmp一键包自动安装环境的时间比较长,如果中途断网的话会造成安装进程中断,可能会使VPS出现不可预料的错误。

安装步骤:

1、使用putty或类似的SSH工具登陆VPS或服务器;

登陆后运行:screen -S lnmp

如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装,详细的screen教程。

2、下载并安装LNMP一键安装包:

您可以选择使用下载版(推荐国外或者美国VPS使用)或者完整版(推荐国内VPS使用),两者没什么区别。

执行安装程序前需要您确认您的Linux发行版,可以执行:cat /etc/issue 查看是CentOS、Debian还是Ubuntu,也可以通过VPS服务商提供的控制面板上查看。确定好之后,选择下面对应系统的安装命令:

CentOS系统下执行:wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./centos.sh

Debian系统下执行:wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./debian.sh

Ubuntu系统下执行:wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./ubuntu.sh

另外有2个国外镜像下载点可以使用soft2.vpser.net 和soft3.vpser.net 具体替换方法:http://lnmp.org/faq/lnmp-download-source.html。国内VPS或服务器下载安装时可以将上面命令里的http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz替换为:http://bcs.duapp.com/lnmporg/lnmp1.0-full.tar.gz 进行下载安装,下载速度会快些。

按上述命令执行后,会出现如下提示:

(注:如果是Debian系统,会提示Where are your servers located? asia,america,europe,oceania or africa,这里是选择服务器/VPS在哪个大洲,一般都是美国VPS,直接回车就行,如果是中国的,输入asia,回车。如果输入有错误,可以按住Ctrl再按Backspace键删除,以下均可采用此方法删除。)

利用lnmp一键包快速搭建nginx+php+mysql环境-VPS教程-代码笔记 %

这一步需要设置MySQL的root密码,输入后回车进入下一步,如下图所示:

利用lnmp一键包快速搭建nginx+php+mysql环境-VPS教程-代码笔记 %

这里需要确认是否启用MySQL InnoDB,如果不确定是否启用可以输入 y ,这个可以单独在MySQL文件里关闭,输入 y 表示启用,输入 n 表示不启用。输入 y 或 n 后回车进入下一步,显示如下信息:

利用lnmp一键包快速搭建nginx+php+mysql环境-VPS教程-代码笔记 %

这一步是选择php版本,可以选择 PHP 5.3.17 或 PHP 5.2.17,安装PHP 5.3.17的话输入 y ,安装PHP 5.2.17 输入 n,输入 y 或 n 后回车,进入下一步MySQL版本的选择,如下图:

利用lnmp一键包快速搭建nginx+php+mysql环境-VPS教程-代码笔记 %

可以选择MySQL 版本 5.5.27 或 5.1.60,安装MySQL 5.5.27的话输入 y ,安装MySQL 5.1.60 输入n,输入 y 或 n 后回车,完成选择。

提示"Press any key to start…",按回车键确认开始安装。

LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。

安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。

转载于:http://lnmp.org/install.html

screen安装以及使用screen管理会话

大家在使用SSH或telnet远程连接服务器时,可能都遇到为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。那么这个时候就可以使用screen命令来解决了。

1、什么是screen?

screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。当断开或关闭终端时,只要不杀死screen的进程,待重新连接后任能继续断开前的操作。

2、如何安装screen命令?

除部分精简的系统或者定制的系统大部分都安装了screen命令,如果没有安装,CentOS系统可以执行:

yum install screen

Debian/Ubuntu系统执行:

apt-get install screen

3、screen命令使用方法?

3.1 创建screen会话

可以先执行:screen -S naizui ,screen就会创建一个名字为naizui的会话。

3.2 暂时离开,保留screen会话中的任务或程序

当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)

3.3 恢复screen会话

当回来时可以再执行执行:screen -r naizui 即可恢复到离开前创建的lnmp会话的工作界面。如果忘记了,或者当时没有指定会话名,可以执行:screen -ls screen会列出当前存在的会话列表。

3.4 关闭screen的会话

执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。

4、常用快捷键

Ctrl+a c :在当前screen会话中创建窗口

Ctrl+a w :窗口列表

Ctrl+a n :下一个窗口

Ctrl+a p :上一个窗口

Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

Linux VPS下安全的SSH端口修改教程

Linux各发行版中SSH端口默认为22,如果正式做站或其它用途,为了提高安全性就需要修改掉默认的SSH端口号,防止被有心人穷举密码。部分VPS提供商,若您的VPS服务器SSH遭受多次的暴力破解,可能会遭到罚款或临时终止服务,所以修改SSH的默认端口是有必要的。

有的朋友不知道“穷举”是什么意思,这里给这些朋友扫盲下 :

穷举法,或称为暴力破解法,是一种针对于密码的破译方法,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,问题只在于如何缩短试误时间。因此有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。详细请看百度百科:穷举法

废话不多说,先通过当前的SSH端口(默认为:22)登陆。

1、修改配置文件:/etc/ssh/sshd_config ,找到#port 22 (如图)

Linux VPS下安全的SSH端口修改教程-VPS教程-代码笔记 %

2、先将Port 22 前面的 # 号去掉,并另起一行。如定义SSH端口号为7373 ,则输入

Port 7373

Linux VPS下安全的SSH端口修改教程-VPS教程-代码笔记 %

自定义端口选择建议在万位的端口(如:10000-65535之间)

也许您会问为什么要先把port 22前面的 # 去掉呢?因为在配置文件中,# 是Linux的注释字符注释字符后的代码程序是不会执行的。SSH默认的(即非手动指定)端口为22,所以配置文件在默认的情况下以注释字符出现。当需要指定其它端口或多端口同时访问时,就要删掉注释符号,告知程序按照您的意愿来执行响应操作。

以上操作,手动指定SSH端口为22和26611(双端口号),保留22是为了防止个别防火墙屏蔽了其它端口导致无法连接VPS(如没单独指定22,新指定的26611端口防火墙也没放行,那么可能无法通过SSH连接VPS或服务器)。为了防止不必要问题的产生,所以要给自己保留条“后路”。

3、修改完毕后,重启SSH服务。

service sshd restart

4、重启完毕,尝试使用新端口登陆。

5、连接成功,需要重新添加SSH-RSA验证,点击是(或Yes)即可。

6、若能正常访问,返回第一步,根据第二步的操作将原port 22整段删掉,再按第三步重启SSH即可。

企业级iptables防火墙配置方案

在写这篇教程之前小V先给新人新人说明下什么是iptables,iptables 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。简单的来说iptables是Linux上常用的防火墙软件,下面小V给大家说一下iptables的安装、清除iptables规则、iptables只开放指定端口、iptables屏蔽指定ip、ip段及解封、删除已添加的iptables规则等iptables的基本应用,另外附加一些小V使用iptables预防网站攻击的经验。

首先是安装iptables,一般情况下iptables都是随系统一起安装了的,但也有可能是没安装的,所以小V这里说下如何安装iptables:

Centos下安装iptables

yum install iptables

Debian/Ubuntu下安装iptables

apt-get install iptables

安装好了iptables后开始配置iptables今本的安全策略:

1、清除已有的iptables规则:

iptables -F
iptables -X
iptables -Z

2、开放指定端口,保障WEB环境的安全:

#允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#禁止其他未允许的规则访问
iptables -A INPUT -j REJECT  (注意:如果22端口未加入允许规则,SSH链接会直接断开。)
iptables -A FORWARD -j REJECT

3、防Spoofing(伪造内网IP)攻击

iptables -t filter -A INPUT -i $EXTERNAL_ -s $INTERNAL_NET -j DROP
iptables -t filter -A FORWARD -i $EXTERNAL_ -s $INTERNAL_NET -j DROP

4、防服务器敏感信息扫描

iptables -t filter -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -t filter -A FORWARD -p tcp --tcp-flags ALL ALL -j DROP
iptables -t filter -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -t filter -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP
iptables -t filter -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -t filter -A FORWARD -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP

5、不回应ICMP封包(禁ping)

iptables -t filter -A INPUT -p icmp --icmp-type echo-requested -j DROP
iptables -t filter -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
iptables -t filter -A FORWARD -p  icmp -- icmp-type echo-requested -j DROP
iptables -t filter -A FORWARD -p  icmp -- icmp-type echo-reply -j DROP

保存iptables规则:

service iptables save

如果iptables不会开机自动启动的话,可以将iptables加入加入开机启动

chkconfig --level 345 iptables on

另外遇到恶意IP访问的时候可以使用iptables屏蔽:

#屏蔽单个IP的命令是
iptables -I INPUT -s 122.226.213.3 -j DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 10.159.0.0/16 -j DROP
#封IP段即从123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 76.74.239.0/24 -j DROP

屏蔽IP后记得保存iptables规则,不然重启VPS或者重启iptables之后未保存的规则会丢失。

centos5手动yum快速安装lnmp环境

目前很多VPS新手用户都是使用军哥的lnmp一键安装包那么时间上浪费不少(性能优秀的vps都至少需要17分钟安装军哥的lnmp)。其实我们可以采用yum的方式来安装lnmp环境。

YUM安装特点:

比编译安装速度快

安全,yum安装是官方版本,减少一键包带来的风险

缺点就是要自定义配置

方法:

1、导入第三方软件库

#32位

rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm
rpm -Uvh http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm

#64位

rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm
rpm -Uvh http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm

2、卸载系统自带的web server

yum remove httpd
yum update

3、安装nginx

yum install nginx
chkconfig –levels 235 nginx on #添加启动项

4、安装mysql

yum install mysql mysql-server
chkconfig –levels 235 mysqld on #加入启动项
/etc/init.d/mysqld start #启动mysql
mysql_secure_installation #mysql密码及相关设置

5、安装php

yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy

#若提示:

Resolving Dependencies
–> Running transaction check
—> Package php-cli.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: php-common = 5.2.17-20.el5 for package: php-cli
–> Processing Dependency: libgmp.so.3 for package: php-cli
—> Package php-fpm.i386 0:5.2.17-20.el5 set to be updated
—> Package php-gd.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libpng12.so.0 for package: php-gd
–> Processing Dependency: libpng12.so.0(PNG12_0) for package: php-gd
–> Processing Dependency: libfreetype.so.6 for package: php-gd
–> Processing Dependency: libt1.so.5 for package: php-gd
—> Package php-imap.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libc-client.so.1 for package: php-imap
—> Package php-ldap.i386 0:5.2.17-20.el5 set to be updated
—> Package php-mbstring.i386 0:5.2.17-20.el5 set to be updated
—> Package php-mcrypt.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libmcrypt.so.4 for package: php-mcrypt
—> Package php-mssql.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: php-pdo for package: php-mssql
–> Processing Dependency: libsybdb.so.5 for package: php-mssql
—> Package php-mysql.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: php-mysql
–> Processing Dependency: libmysqlclient.so.15 for package: php-mysql
—> Package php-odbc.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libodbc.so.1 for package: php-odbc
—> Package php-pear.noarch 1:1.9.1-1.el5 set to be updated
—> Package php-snmp.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: net-snmp for package: php-snmp
–> Processing Dependency: libnetsnmp.so.10 for package: php-snmp
—> Package php-soap.i386 0:5.2.17-20.el5 set to be updated
—> Package php-tidy.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libtidy-0.99.so.0 for package: php-tidy
—> Package php-xml.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libexslt.so.0 for package: php-xml
–> Processing Dependency: libxslt.so.1 for package: php-xml
—> Package php-xmlrpc.i386 0:5.2.17-20.el5 set to be updated
–> Running transaction check
—> Package freetds.i386 0:0.64-11.el5.centos set to be updated
—> Package freetype.i386 0:2.2.1-31.el5_8.1 set to be updated
—> Package gmp.i386 0:4.1.4-10.el5 set to be updated
—> Package libc-client.i386 0:2004g-2.2.1 set to be updated
—> Package libmcrypt.i386 0:2.5.8-4.el5.centos set to be updated
—> Package libpng.i386 2:1.2.10-17.el5_8 set to be updated
—> Package libtidy.i386 0:0.99.0-12.20070228.el5.centos set to be updated
—> Package libxslt.i386 0:1.1.17-2.el5_2.2 set to be updated
–> Processing Dependency: libgpg-error.so.0 for package: libxslt
–> Processing Dependency: libgcrypt.so.11 for package: libxslt
–> Processing Dependency: libgcrypt.so.11(GCRYPT_1.2) for package: libxslt
—> Package mysql.i386 0:5.0.95-1.el5_7.1 set to be updated
–> Processing Dependency: perl(DBI) for package: mysql
—> Package net-snmp.i386 1:5.3.2.2-17.el5_8.1 set to be updated
–> Processing Dependency: libsensors.so.3 for package: net-snmp
—> Package net-snmp-libs.i386 1:5.3.2.2-17.el5_8.1 set to be updated
—> Package php-common.i386 0:5.2.17-20.el5 set to be updated
—> Package php-gd.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libt1.so.5 for package: php-gd
—> Package php-pdo.i386 0:5.2.17-20.el5 set to be updated
—> Package unixODBC-libs.i386 0:2.2.11-10.el5 set to be updated
–> Running transaction check
—> Package libgcrypt.i386 0:1.4.4-5.el5_8.2 set to be updated
—> Package libgpg-error.i386 0:1.4-2 set to be updated
—> Package lm_sensors.i386 0:2.10.7-9.el5 set to be updated
–> Processing Dependency: /usr/sbin/dmidecode for package: lm_sensors
—> Package perl-DBI.i386 0:1.52-2.el5 set to be updated
—> Package php-gd.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libt1.so.5 for package: php-gd
–> Running transaction check
—> Package dmidecode.i386 1:2.11-1.el5 set to be updated
—> Package php-gd.i386 0:5.2.17-20.el5 set to be updated
–> Processing Dependency: libt1.so.5 for package: php-gd
–> Finished Dependency Resolution
php-gd-5.2.17-20.el5.i386 from CentALT has depsolving problems
–> Missing Dependency: libt1.so.5 is needed by package php-gd-5.2.17-20.el5.i386 (CentALT)
Error: Missing Dependency: libt1.so.5 is needed by package php-gd-5.2.17-20.el5.i386 (CentALT)
You could try using –skip-broken to work around the problem
You could try running: package-cleanup –problems
package-cleanup –dupes
rpm -Va –nofiles –nodigest
The program package-cleanup is found in the yum-utils package.
则执行yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy –skip-broken

vi /etc/php.ini #在行末添加cgi.fix_pathinfo = 1
chkconfig –levels 235 php-fpm on #加入启动项
service php-fpm start #启动

6、修改nginx配置文件,添加fastcgi支持

vi /etc/nginx/nginx.conf
#添加以下
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;

保存退出即可

7、启动nginx

/etc/init.d/nginx restart

8、运行探针

cd /usr/share/nginx/html
vi v7v3.php
#添加以下代码

正常执行的话,LNMP就安装完了。

本文转载自:rffan.info

5分钟快速安装Lamp 适用于centos

yum -y update

yum -y install gcc gcc-c++ autoconf automake libtool libevent libevent-devel gmp gmp-devel

yum -y install gd gd-devel freetype freetype-devel fontconfig fontconfig-devel libjpeg libjpeg-devel zlib zlib-devel pcre pcre-devel

yum -y install ncurses ncurses-devel libmcrypt mhash

yum -y install mysql mysql-server mysql-devel

yum -y install httpd httpd-devel

yum -y install php53*

启动apache

/etc/init.d/httpd restart

启动mysql

/etc/init.d/mysqld restart

编辑一个php测试文件

vi /var/www/html/info.php

加入:

<?php
phpinfo();
?>

现在可以通过http://ip/info.php查看LAMP信息了

设置开机启动

chkconfig httpd on

chkconfig mysqld on

附:如果需要修改的话,那么修改配置文件即可。

附1:mysql配置文件所在位置:

# ls -l /etc/my.cnf

-rw-r–r– 1 root root 441 Nov  4 02:53 /etc/my.cnf

#

附2:apache配置文件所在位置:

# ls -l /etc/httpd/

total 8

drwxr-xr-x 2 root root 4096 Jan 11 07:06 conf

drwxr-xr-x 2 root root 4096 Jan 11 07:03 conf.d

lrwxrwxrwx 1 root root   19 Jan 11 06:53 logs -> ../../var/log/httpd

lrwxrwxrwx 1 root root   27 Jan 11 06:53 modules -> ../../usr/lib/httpd/modules

lrwxrwxrwx 1 root root   13 Jan 11 06:53 run -> ../../var/run

#

附3:php配置文件所在位置:

# ls -l /etc/php.ini

-rw-r–r– 1 root root 45079 Nov 30 00:53 /etc/php.ini

转载自:rffan.info

CentOS 5 VPS深度优化教程

CentOS 是一个构建在 Red Hat Enterprise Linux (RHEL) 源代码上的 Linux 发行版,并且从二进制的角度100%兼容 RHEL 软件包,简单的说 RHEL上 可以运行的软件包在 CentOS 上不需要编译就可以直接安装运行。除了少量的版权信息外,CentOS 和 RHEL 基本上一样。CentOS 是免费的,并且有着 RHEL 的稳定,因此深受各大 hosting 服务商支持,几乎所有 Linux VPS 都支持 CentOS。

一般来说如果 VPS 配置较高我会选 CentOS,配置低的话就选 Debian,当然这是个人偏好,大多数 Linux VPS 服务商也会提供 Gentoo,不过每次安装程序,升级都要编译会消耗很多资源,耗时,而且性能没有明显提高,不推荐给配置低的 VPS。

VPS 服务商一般给的操作系统版本都是最小安装版本,或者优化过的版本。每个 VPS 服务商提供的版本都可能不同,安装 CentOS 的系统最低要求至少 64MB 内存(纯文字界面),1GB 硬盘空间。

安装和升级系统

1、登录 VPS 安装 CentOS 5。

2、安装完毕后马上升级整个系统。

yum update

有了一个干净的系统以后,剩下来就是加强和优化 Linux。

删除不必要的软件包,服务,用户,文件等

3、删除不需要的软件包。

yum remove Deployment_Guide-en-US finger cups-libs cups
bluez-libs desktop-file-utils ppp rp-pppoe wireless-tools irda-utils
nfs-utils nfs-utils-lib rdate fetchmail eject ksh mkbootdisk mtools
syslinux tcsh startup-notification talk apmd rmt dump setserial portmap yp-tools
ypbind
rpm -qa (列出所有安装了的包)
rpm -e package (删除某个包)
rpm -qi package (查询某个包)
rpm -qf command (根据程序查询包的名字)
rpm -ql package (查询某个包所有的安装文件)

4、删除一些不安全的软件包,并且用相应安全的软件替代,如: ssh/sftp/scp 替代 telnet, rsh, ftp, rcp
注意系统需要一个默认的 MTA,删除 Sendmail MTA 之前必须先安装一个,如: Postfix。

yum remove telnet rsh ftp rcp
yum install postfix
yum remove sendmail
/sbin/chkconfig postfix off

5、停掉并且删除一些不需要的 xinetd 服务。

/sbin/service xinetd stop; /sbin/chkconfig xinetd off
rm -rf /etc/xinetd.d

6、禁止一些 /etc/init.d/ 下面不需要的服务,更多信息请参考 Understanding your (Red Hat Enterprise Linux) daemons, by Len DiMaggioHardening Tips For Default Installation of Red Hat Enterprise Linux 5.

/sbin/chkconfig --list
  
for a in acpid anacron apmd atd autofs avahi-daemon bluetooth cpuspeed \
cups firstboot gpm haldaemon hidd ip6tables irqbalance isdn kdump \
kudzumcstrans messagebus microcode_ctl netfs nfs nfslock pcscd portmap \
readahead_early readahead_later rpcgssd rpcidmapd sendmail \
setroublesshoot smartd xfs xinetd yum-updatesd; \
do /sbin/chkconfig $a off; done

7、重启系统后,检查一下正在运行中的服务,看看是不是都是必须的。

netstat -an | grep LISTEN
netstat -atunp

8、为了安全起见,删除一些不需要的用户。

cp /etc/passwd /etc/passwd.sav
cp /etc/group /etc/group.sav
for a in adm lp sync news uucp operator games gopher mailnull nscd rpc;
do /usr/sbin/userdel $a -f; done
for a in lp news uucp games gopher users floopy nscd rpc rpcuser nfsnobody;
do /usr/sbin/groupdel $a -f; done

加固和优化系统

9、打开防火墙。

system-config-securitylevel-tui

10、检查和禁止全局可写的 SUID 文件。

find / -perm +4000 -user root -type f -print
find / -perm +2000 -group root -type f -print
chmod u-s /full/path/to/filename
chmod g-s /full/path/to/filename

11、安装 Bastille 软件包帮助加固。

rpm -Uvh perl-Curses-1.15-1.el5.rf.i386.rpm
rpm -ivh Bastille-3.0.9-1.0.noarch.rpm
/usr/sbin/bastille -c

12、优化 Linux 内核。

vi /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0

定制 Linux 内核

13、定制,编译,安装 Linux 内核。

yum install rpm-build ncurses ncurses-devel
rpm -ivh kernel-2.6.18-8.1.1.el5.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp --target i686 kernel-2.6.spec
cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686
sed -i 's/EXTRAVERSION = -prep/EXTRAVERSION = -8.1.1.custom.el5/' Makefile
make menuconfig
make rpm
cd /usr/src/redhat/RPMS/i686
rpm -ivh kernel-2.6.18prep-1.rpm
/sbin/mkinitrd /boot/initrd-2.6.18-prep.img 2.6.18-prep (2.6.18-prep -> /lib/modules)
vi /boot/grub/menu.1st

14、修改 iptables,只允许 ssh,http 和 https 端口打开。

/sbin/iptables -F
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
/sbin/iptables -A INPUT -j REJECT
/sbin/iptables -A FORWARD -j REJECT

然后查看一下 iptables:

iptables -L

部分文章内容转自vpsee大师之手。

VPS初级教程使用putty登录ssh管理VPS

这篇文章针对于第一次接触LinuxVPS的新手,这篇文章主要介绍SSH工具的使用。如果您已经是个老手,请忽略这篇文章。

购买VPS后,首先的需要在VPS后台获得您VPS的IP,然后下载中文版putty软件:下载地址

解压putty_0.60cn2.zip,打开文件夹里的putty.exe,将您VPS的IP填入主机名称栏目中,详情请看下图:

 VPS初级教程使用putty登录ssh管理VPS-VPS教程-代码笔记 %

在主机名(或IP地址)一栏填入VPS的IP地址,默认端口为22,无需修改,然后点击打开,如果你是初次登录此VPS会如下图警示框:

VPS初级教程使用putty登录ssh管理VPS-VPS教程-代码笔记 %

我们只需要点击是即可。

接下来会进入输入密码界面,默认为:root,如下图:

VPS初级教程使用putty登录ssh管理VPS-VPS教程-代码笔记 %

输入账户root后回车,开始输入VPS密码,这里请注意,在putty下输入VPS密码的时候屏幕上是不会有任何反应的,很多新人可能就以为是软件卡死了,其实putty是为了用户VPS的安全所以在输入密码时不会显示任何东西,好了输完密码直接回车,如果密码正确就直接登录到了SSH。成功登陆后,系统默认目录为/root。