[运维-安全]CentOS7.0环境下安装kangle和easypanel
一、康乐简介
主要特点
1、免费开源
kangle技术团队希望国人拥有一款真正好用、易用、实用的国产web服务器。
2、跨平台
可在linux、windows、freebsd、openbsd、netbsd、solaris等平台上运行。
3、可轻松查看到被攻击的url
这是kangle web服务器独有的,其它web服务器很难查找到。
4、性能高
工作模型多样化。Windows上采用iocp、Linux上采用epoll、Bsd上采用kqueue。
5、功能强大、灵活
kangle的访问控制理念来自linux的iptables防火墙,kangle拥有功能最小化的匹配模块和标记模块,通过组合,反转等可以实现用户最复杂的需求;
谈kangle的访问控制:点击查看
6、是一款做idc的专业web服务器
.实现虚拟主机独立身份,独立进程。
.隔离攻击(实现某个虚拟主机受到外部攻击,不影响到服务器上其它虚拟主机)。
.智能防cc攻击(CC是http协议的攻击,不是tcp/ip,kangle是底层的web服务器,更懂http)。
.做全能空间(php虚拟主机、java虚拟主机等)
主要特性
- kangle采用基于事件驱动(epoll等)加非阻塞socket及异步IO的方式构架,使其比传统web服务器性能更高;静态网页处理能力达到Apache的8-10倍左右。
- kangle支持isapi,fastcgi,cgi,ajp,uwsgi,fcgi,hmux,http等多种扩展接口,是一个非常开放的系统,非常方便的做负载均衡功能;
- kangle内置内存/磁盘两级缓存,采用LRU淘汰算法,缓存命中率非常高,有效降低资源占用
- 可以设置每个虚拟主机独立进程,独立身份运行(虚拟主机商的最爱,安全的实现虚拟主机功能);
- 企业版还带有独特的防CC攻击和限制虚拟主机cpu的功能,自动监测动态网页的访问频率,一但达到设定的阀值,自动对该网页保护,kangle能区分攻击访问和正常访问。一但某个虚拟主机的cpu超过设置,自动对该虚拟主机降低优先级。从而不影响其它虚拟主机。做到隔离攻击。
- 独有的命令扩展(虚拟化其它web服务器,使其它web服务器亦具有前述优点,如tomcat,这样就能安全的提供java虚拟 主机了)
- kangle具有扩展队列功能。对于突发大量的动态网页请求会加入到队列中,以使系统稳定的提供服务
- kangle的访问控制理念来自linux的iptables防火墙,kangle实现很多最小化的匹配模块和标记模块,通过组合,反转可以实现最复杂的需求;从而实现强大的访问请求控制(url,ip地址,连接数/网速限制,http头,时间控制,多种http认证,服务器负载,url重定向,url重写,内容过滤等等);
- 支持远程web方式管理.默认管理端口:3311,初始用户名:admin,密码:kangle;
- 兼容apache的自定义.htaccess功能
二、安装部署
第一步:系统支持包安装
yum -y install wget tar make automake gcc gcc-c++ pcre pcre-devel zlib-devel sqlite-devel openssl-devel libxml2 libxml2-devel libtool libtool-libs quota perl gd
第二步:安装kangle(目前最新版本 :kangle-3.4.8.tar.gz)
1、下载kangle源码包
wget http://download.kanglesoft.com/zcore.php?os=src
2、解压
tar xzf kangle-3.4.8.tar.gz
3、进入kangle目录
cd kangle-3.4.8
4、配置kangle源代码
./configure –prefix=/vhs/kangle –enable-disk-cache –enable-ipv6 –enable-ssl –enable-vh-limit
5、编译安装
make && make check && make install
6、启动kangle
/vhs/kangle/bin/kangle
7、设置centos7 kangle 启动
在/usr/lib/systemd/system/目录下新建kangle.service,内容如下:
[Unit]
Description=Kangle Web Service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/vhs/kangle/bin/kangle
ExecStop=/vhs/kangle/bin/kangle -q
[Install]
WantedBy=multi-user.target
8、使用SSH输入下列命令建立链接
ln -s ‘/usr/lib/systemd/system/kangle.service’ ‘/etc/systemd/system/multi-user.target.wants/kangle.service’
9、启动kangle
systemctl start kangle.service
(关闭kangle的命令是systemctl stop kangle.service)
10、设置为开机自动启动
systemctl enable kangle.service
三、mariadb配置
1、centos7默认安装mariadb5.5.37
yum install mariadb-server mariadb
2、启动mariadb服务
systemctl start mariadb.service
3、设置mariadb开机自动运行
systemctl enable mariadb.service
4、设置root密码
/usr/bin/mysql_secure_installation
然后根据提示一步步操作即可,如下所示:
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 安装后默认没有root密码,直接回车
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password: 输入root的新密码
Re-enter new password: 新密码确认
Password updated successfully!
Reloading privilege tables..
… Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] 删除匿名用户 Y
… Success!
Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] 关闭root远程登录 Y
… Success!
By default, MariaDB comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] 删除test数据库 Y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] 确定以上所有操作 Y
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
ln -s /usr/bin/mysql /vhs/kangle/bin/mysql
ln -s /usr/bin/mysqldump /vhs/kangle/bin/mysqldump
四、安装php
yum install php php-cli php-mysql php-gd php-xml php-pdo php-mbsring
五、安装ioncube
cd /usr/local
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar zxvf ioncube_loaders_lin_x86.tar.gz
64位ionCube
cd /usr/local
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar zxvf ioncube_loaders_lin_x86-64.tar.gz
1、到官方下载ioncube_loader_lin_5.4.so放到/usr/lib64/php/modules目录下
2、在/etc/php.d目录下新建ioncube.ini文件,内容为
zend_extension=/usr/lib64/php/modules/ioncube_loader_lin_5.4.so
六、安装pftp
1、官方下载pureftpd(目前最新版是1.0.42版)
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.gz
或者在kangle下载(1.0.36版)
wget http://download.kanglesoft.com/easypanel/source/pure-ftpd-1.0.36.tar.gz
2、解压
tar xzf pure-ftpd-1.0.42.tar.gz
3、进入目录
cd pure-ftpd-1.0.42
4、配置pureftpd源代码
./configure –prefix=/vhs/pure-ftpd with –with-extauth –with-throttling –with-peruserlimits
5、编译安装
make && make check && make install
6、设置pureftpd启动服务
(1)在/vhs/pure-ftpd/sbin下新建pureftpd.sh,内容如下:
#!/usr/bin/bash
/vhs/pure-ftpd/sbin/pure-authd –daemonize -s /var/run/ftpd.sock -r /vhs/kangle/bin/pureftp_auth
sleep 1
/vhs/pure-ftpd/sbin/pure-ftpd –daemonize -lextauth:/var/run/ftpd.sock
(2)在/usr/lib/systemd/system/下新建pureftpd.service,内容如下:
[Unit]
Description=Pure-FTPd FTP Server
After=syslog.target
[Service]
Type=forking
ExecStart=/usr/bin/sh /vhs/pure-ftpd/sbin/pureftpd.sh
[Install]
WantedBy=multi-user.target
7、建立软连接
ln -s ‘/usr/lib/systemd/system/pureftpd.service’ ‘/etc/systemd/system/multi-user.target.wants/pureftpd.service’
8、启动pureftpd
systemctl start pureftpd.service
(关闭pureftpd: systemctl stop pureftpd.service)
七、安装easypanel
1、下载easypanel(目前最新版是2.6.26)
wget http://download.kangleweb.com/easypanel/easypanel-2.6.26-x86_64-6.tar.gz
2、解压缩
tar xzf easypanel-2.6.26-x86_64-6.tar.gz
3、关闭kangle服务
/vhs/kangle/bin/kangle -q
4、复制文件
cp -a easypanel-2.6.26-x86_64/* /vhs/kangle/
5、安装
最后启动kangle和pureftp
systemctl start kangle.service
systemctl start pureftpd.service
6、装完后开始设置,不用ep自带的php52,打开/vhs/kangle/ext/tpl_php52/config.xml找到<cmd name=”nodephp” 行,修改为:
<cmd name=’nodephp’ file=’/usr/bin/php-cgi’ listen=’local’ lock=’0′ type=’mp’ proto=’fastcgi’>
<env PHP_FCGI_MAX_REQUESTS=’0′ PHPRC=’/etc/php.ini’/>
</cmd>
第八步:启动kangle和pureftp
systemctl start kangle.service
systemctl start pureftpd.service