Rootop 服务器运维与web架构

2011-05-24
发表者 Venus
暂无评论

extmail 关闭天气信息

编辑: /extsuite/extmail/html/plugins/rpc_init.js  注释掉红色部分。(加个//就可以)
rpc_url_list = [
    //http://rpc-srv01.extmail.net/phprpc/rpc.php“,
    //http://rpc-srv02.extmail.net/phprpc/rpc.php“,
    //http://rpc-srv03.extmail.net/phprpc/rpc.php“,
];

rpc_plg_list = [
    //“coolweather”,
    //“etnews”,
    “chkupdate”,
];

2011-05-24
发表者 Venus
暂无评论

tcp_wrapper

      tcp_wrapper是linux中一个安全机制[TCP_wrappers防火墙],一定程度上限制某种服务的访问权限,达到了保护系统的目的.

我们会用到一个ldd命令,具体的man一下。 ( ldd – print shared library dependencies)
[root@rhel ~]# ldd /usr/sbin/sshd | grep wrap
        libwrap.so.0 => /lib64/libwrap.so.0 (0x00002ac3b2a5d000)
##ldd命令用来查看程序的二进制文件是否与libwrap相编连。

tcp_wraper工作机制是先读取/etc/hosts.allow这个文件看是否有匹配规则,如果允许,则通过,如果未发现相关匹配,再看/etc/hosts.deny这个文件是否拒绝。所以,我们一般编辑/etc/hosts.deny文件来做访问控制。如果allow和deny中都没有相关规则,那么执行默认,默认为允许。

配置文件的格式:

服务列表 :地址列表 :选项

服务列表 :
如果有多个服务,那么就用逗号隔开
地址列表格式:
1. 标准IP地址:例如:192.168.0.254,192.168.0.56如果多于一个用“逗号”隔开
2. 主机名称:例如:www.baidu.com, .example.con匹配整个域
3. 利用掩码:192.168.0.0/255.255.255.0 指定整个网段
4. 网络名称:例如 @mynetwork
选项:
主要有allow 和 deny 这两个选项

实例:

拒绝 172.17.1.19和172.17.1.20这两个IP拒绝访问服务器的sshd服务。

vi /etc/allow.deny

Add Code:

sshd:172.17.1.19,172.17.1.20

保存退出,tcp_wrapper无需重启服务即可生效。
下次登录的时候,就会提示:Connection refused 配置生效。tcp_wrapper可以临时性的拒绝某些IP访问,比如在受到ssh暴力破解登录的时候,或者是web服务器出现某个IP不断请求异常页面时,可以通过这个来做ACL。提高服务器的安全性。

2011-05-23
发表者 Venus
暂无评论

mysql 修改最大连接数

1、mysql修改最大连接数    

     mysql的最大连接数默认是100,可以通过命令:show variables; 查看

这个数值对于并发连接很多的数据库应用是远远不够的,当连接请求大于默认连接数后,就会出现无法连接数据库的错误,因此我们需要把它适当调大一些。修改my.cnf配置文件,在[mysqld]部分加入代码:

max_connections=1000   #我这里设置为1000,然后再次查看。

mysql> show variables like “%max_connections%”;
+—————–+——-+
| Variable_name   | Value |
+—————–+——-+
| max_connections | 1000  |
+—————–+——-+
1 row in set (0.00 sec)

2、查看当前mysql数据库已建立的连接数:

[root@rhel ~]# mysqladmin -uroot -proot status    #Threads就是当前连接数

Uptime: 1322  Threads: 2  Questions: 14  Slow queries: 0  Opens: 12  Flush tables: 1  Open tables: 6  Queries per second avg: 0.011

2011-05-21
发表者 Venus
隐藏系统版本及apache、nginx、php软件版本信息已关闭评论

隐藏系统版本及apache、nginx、php软件版本信息

1、隐藏服务器系统信息
当登陆到linux系统时,会显示该linux发行版的名称、版本、内核版本、服务器的名称。为了不让这些默认的信息显示出来,我们设置它只显示一个”login:”提示符。
删除/etc/issue和/etc/issue.net这两个文件。
本地登陆输入用户名和密码前显示的信息写在/etc/issue,当然,在这个文件你也可以写入其它的信息。


而/etc/issue.net是供telnet远端登入显示的信息,内容与/etc/issue是一样的。

issue文件中的参数

\d 本地端时间的日期;
\l 显示第几个终端机介面;
\m 显示硬体的等级 (i386/i486/i586/i686…);
\n 显示主机的网路名称;
\o 显示 domain name;
\r 作业系统的版本 (相当于 uname -r)
\t 显示本地端时间的时间;
\s 作业系统的名称;
\v 作业系统的版本。

登陆系统后的显示信息是保存在/etc/motd文件中,默认为空。

2、服务软件版本信息屏蔽

通过 curl 命令 查看服务器提供HTTP服务的相关信息,可以显示出服务器的HTTP是什么程序,哪个版本,如:
[root@r1 ~]# curl -I 192.168.0.103
HTTP/1.1 200 OK
Date: Sat, 21 May 2011 13:26:56 GMT
Server: Apache/2.2.3 (Red Hat)
X-Powered-By: PHP/5.1.6
Set-Cookie: PHPSESSID=uoe9ar9mc470njdlp1litrjr37; path=/
Connection: close
Content-Type: text/html; charset=utf-8

根据提示显示用了apache 2.2.3版本,系统是redhat,php版本为5.1.6。
隐藏apache版本信息:

编辑 httpd.conf:
ServerTokens ProductOnly   (默认为OS,显示操作系统信息)
ServerSignature Off                (一般在页面出现问题时,底部显示的信息)

比如404错误信息:

Not Found

The requested URL /a.html was not found on this server.

 


Apache/2.2.3 (Red Hat) Server at 192.168.0.103 Port 80

修改后再次测试:

[root@r1 conf]# curl -I 192.168.0.103
HTTP/1.1 200 OK
Date: Sat, 21 May 2011 13:51:30 GMT
Server: Apache    //web服务器版本号系统厂商隐藏
X-Powered-By: PHP/5.1.6
Set-Cookie: PHPSESSID=rs4q0jm73ph17llmppn99kb3k0; path=/
Connection: close
Content-Type: text/html; charset=utf-8

404错误页错误提示:

Not Found

The requested URL /a.html was not found on this server.

如果想隐藏橙色部分 Server: Apache,需要修改源代码,将ap_release.h文件中浅绿色部分修改:

#define AP_SERVER_BASEVENDOR “Apache Software Foundation”
#define AP_SERVER_BASEPROJECT “Apache HTTP Server”
#define AP_SERVER_BASEPRODUCT “VENUS”   

#define AP_SERVER_MAJORVERSION_NUMBER 2    //版本号
#define AP_SERVER_MINORVERSION_NUMBER 2
#define AP_SERVER_PATCHLEVEL_NUMBER   22
#define AP_SERVER_DEVBUILD_BOOLEAN    0

隐藏Nginx版本信息:

开启 nginx.conf,在http { }里加上:
server_tokens off;

隐藏php-fpm版本信息(未测):

编辑php-fpm配置文件:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改为:
fastcgi_param SERVER_SOFTWARE nginx0.0.0; #(这个nginx0.0.0就是显示的内容)

隐藏PHP版本信息:

编辑php.ini :
expose_php = Off    //重新启动 Apache或者php-fpm即可。

测试:

[root@r1 conf]# curl -I 192.168.0.103
HTTP/1.1 200 OK
Date: Sat, 21 May 2011 13:54:15 GMT
Server: Apache
Set-Cookie: PHPSESSID=hgt5rq69ftu0sg1s0lg5tni620; path=/
Connection: close
Content-Type: text/html; charset=utf-8
我们看到X-Powered-By: PHP/5.1.6信息隐藏了。

2011-05-21
发表者 Venus
关于ssh弱口令及暴力破解已关闭评论

关于ssh弱口令及暴力破解

最近在研究服务器入侵方面的资料,然后根据进度,写写自己的想法:

看过xxx黑客的入侵教程(暂称之为黑客),过程基本还是那些:

1、拿扫描工具扫描某个网段开启ssh服务的服务器

2、其次开始密码字典穷举,匹配成功后登陆系统

3、开后门,清理登陆日志。

了解了入侵思路,那么现在考虑一下怎么防止黑客攻击,前面看到了,第一步是扫描哪些IP开启了ssh端口(22),随便拿个工具都行,到此,我们会想到什么?ssh服务的默认端口是22号,那么,我们将此端口改掉,换成一个不常用的,那么在黑客初步的IP段扫描的时候,我们就可以躲过这一次浩劫。

比如端口改为:49825 (计算机端口范围:1-65535,1-1024是系统为各种服务预留的,所以不要用)

编辑:/etc/ssh/sshd_config

修改:#Port 22 ,改为: Port 49825

重启ssh服务,OK,那么下次登录的时候需要指定端口,推荐用putty客户端,个人觉得很不错的远程登录工具。

下面说一下密码,服务器管理员,密码设置的一定要满足密码复杂性要求,大小写、数字、特殊符号,密码长度最好在18位以上,我服务器设置的是三十位以上。密码设置的乱乱的,这样,基本可以断绝暴力破解的可能性了。千万别设置为简单密码,比如123,admin888等等,如果这样,那么你不是一位合格的运维师。

再说一下软件漏洞,每个软件都不是很完美的,或多或少有漏洞,被发现只是时间问题,那么出于这种情况,我们是没的办法的,可以参考软件的官方网站,了解最新漏洞信息,然后进行升级补救。

PS:

我们可以通过第三方软件来监控服务器日志,如果某个IP,再短时间内不停的暴力登陆服务器的时候,那么程序自动判断并将其IP加入到黑名单,比如DenyHosts之类这样的工具,服务器会更安全一些。

养成良好的习惯,每天检查日志。

denyhosts链接: http://denyhosts.sourceforge.net/