CentOS 6系統手動安裝LAMP環境(通用版)

來源:互聯網
上載者:User


一、安裝/配置Apache

1.更新系統&安裝Apache

yum update
yum install httpd

推薦:使用如下命令備份Apache設定檔

cp /etc/httpd/conf/httpd.conf ~/httpd.conf.backup

為了給大家拓展思路,本次在CentOS上的教程,和大家分享Apache的另外一種綁定網域名稱和建立虛擬機器的方式~

2.編輯/etc/httpd/conf.d/vhost.conf,假設我們要綁定example.com和example.org兩個網域名稱,則參照下面內容加入檔案,

NameVirtualHost *:80

<VirtualHost *:80>
     ServerAdmin webmaster@example.com
     ServerName example.com
     ServerAlias www.111cn.net
     DocumentRoot /srv/www/example.com/public_html/
     ErrorLog /srv/www/example.com/logs/error.log
     CustomLog /srv/www/example.com/logs/access.log combined
</VirtualHost>

<VirtualHost *:80>
     ServerAdmin webmaster@example.org
     ServerName example.org
     ServerAlias www.example.org
     DocumentRoot /srv/www/example.org/public_html/
     ErrorLog /srv/www/example.org/logs/error.log
     CustomLog /srv/www/example.org/logs/access.log combined
</VirtualHost>

3.因為我們上文指定了幾個目錄而這幾個目錄還不存在,所以,使用如下命令建立相應目錄,

mkdir -p /srv/www/example.com/public_html
mkdir /srv/www/example.com/logs

mkdir -p /srv/www/example.org/public_html
mkdir /srv/www/example.org/logs

4.啟動Apache

/etc/init.d/httpd start

日後每次修改vhost.conf檔案,都需要使用如下命令使Apache重新載入設定檔

/etc/init.d/httpd reload

5.設定Apache開機啟動

/sbin/chkconfig --levels 235 httpd on

二、安裝/配置MySQL

1.安裝MySQL

yum install mysql-server

2.設定MySQL開機自動啟動

/sbin/chkconfig --levels 235 mysqld on

3.啟動MySQL

/etc/init.d/mysqld start

MySQL的設定檔位於/etc/my.cnf

4.安裝mysql_secure_installation(MySQL安全設定)

mysql_secure_installation

5.附上常用的MySQL命令

登入MySQL

mysql -u root -p

建立資料庫vmvps(注意MySQL命令列下都需要以;結尾),並將該資料庫所有許可權賦予vmvps_user(密碼為123)

create database vmvps;
grant all on vmvps.* to 'vmvps_user' identified by '123';

退出MySQL

quit

三、安裝/配置PHP

1.安裝PHP

yum install php php-pear php-mysql

2.編輯設定檔/etc/php.ini,修改如下內容

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php.log
max_execution_time = 300
memory_limit = 64M
register_globals = Off

最後,重啟Apache,大功告成~

/etc/init.d/httpd restart


四、CentOS配置VSFTP伺服器

[1] 安裝VSFTP

[root@localhost ~]# yum -y install vsftpd

[2] 配置vsftpd.conf檔案


[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
#anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# The target log file can be vsftpd_log_file or xferlog_file.
# This depends on setting xferlog_std_format parameter
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES

#chown_username=whoever
#
# The name of log file when xferlog_enable=YES and xferlog_std_format=YES
# WARNING - changing this filename affects /etc/logrotate.d/vsftpd.log
#xferlog_file=/var/log/xferlog
#
# Switches between logging into vsftpd_log_file and xferlog_file files.
# NO writes to vsftpd_log_file, YES to xferlog_file
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES
ascii_download_enable=YES

#
# You may fully customise the login banner string:
ftpd_banner=Welcome to lightnear FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd with two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
local_root=/var/public_root
tcp_wrappers=YES

use_localtime=YES


[3] 增加FTP帳戶

[root@localhost ~]# useradd cent -s /sbin/nologin
[root@localhost ~]# passwd cent

[4] 編輯user_list檔案,允許cent使用者訪問FTP


[root@localhost ~]# vi /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
cent


[5] 建立我們的根目錄,並設定存取權限

[root@localhost ~]# mkdir /var/public_root
[root@localhost ~]# chown -R cent /var/public_root
[root@localhost ~]# chmod -R 755 /var/public_root
[6] 開啟vsftpd服務

[root@localhost ~]# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]
[7] 預設開啟vsftp服務

[root@localhost var]# chkconfig vsftpd on

五、防火強配置

iptables 常用配置

iptables有多個參數,iptable因為是按照順序來執行的,有匹配的就不進行下一步了。
-I表示插入一條,這個用的較多
-A表示追加到最後
-D表示刪除一條

-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
接收ping包

禁止所有資料包,一般用在最後
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

常用的IPTABLES規則如下:

只能收發郵件,別的都關閉
iptables -I Filter -m mac –mac-source 00:0F:EA:25:51:37 -j DROP
iptables -I Filter -m mac –mac-source 00:0F:EA:25:51:37 -p udp –dport 53 -j ACCEPT
iptables -I Filter -m mac –mac-source 00:0F:EA:25:51:37 -p tcp –dport 25 -j ACCEPT
iptables -I Filter -m mac –mac-source 00:0F:EA:25:51:37 -p tcp –dport 110 -j ACCEPT
IPSEC NAT 策略
iptables -I PFWanPriv -d 192.168.100.2 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp –dport 80 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:80

iptables -t nat -A PREROUTING -p tcp –dport 1723 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:1723

iptables -t nat -A PREROUTING -p udp –dport 1723 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:1723

iptables -t nat -A PREROUTING -p udp –dport 500 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:500

iptables -t nat -A PREROUTING -p udp –dport 4500 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.2:4500


FTP伺服器的NAT
iptables -I PFWanPriv -p tcp –dport 21 -d 192.168.100.200 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp –dport 21 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.200:21
只允許訪問指定網址
iptables -A Filter -p udp –dport 53 -j ACCEPT
iptables -A Filter -p tcp –dport 53 -j ACCEPT
iptables -A Filter -d www.3322.org -j ACCEPT
iptables -A Filter -d img.cn99.com -j ACCEPT
iptables -A Filter -j DROP
開放一個IP的一些連接埠,其它都封閉
iptables -A Filter -p tcp –dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT
iptables -A Filter -p tcp –dport 25 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp –dport 109 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp –dport 110 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp –dport 53 -j ACCEPT
iptables -A Filter -p udp –dport 53 -j ACCEPT
iptables -A Filter -j DROP
多個連接埠
iptables -A Filter -p tcp -m multiport –destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT
連續連接埠
iptables -A Filter -p tcp -m multiport –source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter -p tcp –source-port 2:80 -s 192.168.20.3 -j REJECT
指定時間上網
iptables -A Filter -s 10.10.10.253 -m time –timestart 6:00 –timestop 11:00 –days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP
iptables -A Filter -m time –timestart 12:00 –timestop 13:00 –days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
iptables -A Filter -m time –timestart 17:30 –timestop 8:30 –days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT

禁止多個連接埠服務
iptables -A Filter -m multiport -p tcp –dport 21,23,80 -j ACCEPT
將WAN 口NAT到PC
iptables -t nat -A PREROUTING -i $INTERNET_IF -d $INTERNET_ADDR -j DNAT –to-destination 192.168.0.1


將WAN口8000連接埠NAT到192。168。100。200的80連接埠
iptables -t nat -A PREROUTING -p tcp –dport 8000 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.200:80
MAIL伺服器要轉的連接埠
iptables -t nat -A PREROUTING -p tcp –dport 110 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.200:110
iptables -t nat -A PREROUTING -p tcp –dport 25 -d $INTERNET_ADDR -j DNAT –to-destination 192.168.100.200:25
只允許PING 202。96。134。133,別的服務都禁止
iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
iptables -A Filter -j DROP

禁用BT配置
iptables –A Filter –p tcp –dport 6000:20000 –j DROP

禁用QQ防火牆配置
iptables -A Filter -p udp –dport ! 53 -j DROP
iptables -A Filter -d 218.17.209.0/24 -j DROP
iptables -A Filter -d 218.18.95.0/24 -j DROP
iptables -A Filter -d 219.133.40.177 -j DROP

基於MAC,只能收發郵件,其它都拒絕
iptables -I Filter -m mac –mac-source 00:0A:EB:97:79:A1 -j DROP
iptables -I Filter -m mac –mac-source 00:0A:EB:97:79:A1 -p tcp –dport 25 -j ACCEPT
iptables -I Filter -m mac –mac-source 00:0A:EB:97:79:A1 -p tcp –dport 110 -j ACCEPT

禁用MSN配置  www.111cn.net
iptables -A Filter -p udp –dport 9 -j DROP
iptables -A Filter -p tcp –dport 1863 -j DROP
iptables -A Filter -p tcp –dport 80 -d 207.68.178.238 -j DROP
iptables -A Filter -p tcp –dport 80 -d 207.46.110.0/24 -j DROP

只允許PING 202。96。134。133 其它公網IP都不許PING
iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
iptables -A Filter -p icmp -j DROP

禁止某個MAC地址訪問internet:
iptables -I Filter -m mac –mac-source 00:20:18:8F:72:F8 -j DROP

禁止某個IP地址的PING:
iptables –A Filter –p icmp –s 192.168.0.1 –j DROP

禁止某個IP地址服務:
iptables –A Filter -p tcp -s 192.168.0.1 –dport 80 -j DROP
iptables –A Filter -p udp -s 192.168.0.1 –dport 53 -j DROP

只允許某些服務,其他都拒絕(2條規則)
iptables -A Filter -p tcp -s 192.168.0.1 –dport 1000 -j ACCEPT
iptables -A Filter -j DROP

禁止某個IP地址的某個連接埠服務
iptables -A Filter -p tcp -s 10.10.10.253 –dport 80 -j ACCEPT
iptables -A Filter -p tcp -s 10.10.10.253 –dport 80 -j DROP

禁止某個MAC地址的某個連接埠服務

iptables -I Filter -p tcp -m mac –mac-source 00:20:18:8F:72:F8 –dport 80 -j DROP

禁止某個MAC地址訪問internet:
iptables -I Filter -m mac –mac-source 00:11:22:33:44:55 -j DROP

禁止某個IP地址的PING:
iptables –A Filter –p icmp –s 192.168.0.1 –j DROP

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.