架设某大型网站服务器之全部过程(5)
只是原理和主要的代码告诉大家:使用 netstat 来统计重复的连线 IP,
将这些来自同一 IP 的连线统计一下, 如果超过一个设定值(您自己选择的!),那麽该 IP 就会被iptables 机制挡掉了! 利用shell script 结合iptables来完成(其中用到的linux命令主要有:netstat awk cut sort)。。。 shell脚本中部分主要代码: /////////////////////////////////////// basedir="/usr/local/syscmf" #=== Part A, about the TIME WAIT signle ===# netstat -an|grep 80|grep TIME| awk '{print $5}'| cut -d':' -f1| sort |uniq -c| \ awk '{if ($1 >= 12) print $2}' > $basedir/netstata sleep 14s netstat -an|grep 80|grep TIME| awk '{print $5}'| cut -d':' -f1| sort |uniq -c| \ awk '{if ($1 >= 12) print $2}' > $basedir/netstatb sleep 14s netstat -an|grep 80|grep TIME| awk '{print $5}'| cut -d':' -f1| sort |uniq -c| \ awk '{if ($1 >= 12) print $2}' > $basedir/netstatc cat $basedir/netstat1 $basedir/netstat2 $basedir/netstat3 | sort | uniq -c | \ awk '{ if ( $1 == 3 ) print $2 }' > $basedir/netstat-wait.now denyip_netstat=`cat $basedir/netstat-wait.now` #=== Part B, about the SYN RECV signle ===# netstat -an|grep 80|grep SYN| awk '{print $5}'| cut -d':' -f1| sort |uniq -c| \ awk '{if ($1 >= 12) print $2}' > $basedir/netstat1 sleep 12s netstat -an|grep 80|grep SYN| awk '{print $5}'| cut -d':' -f1| sort |uniq -c| \ awk '{if ($1 >= 12) print $2}' > $basedir/netstat2 sleep 12s netstat -an|grep 80|grep SYN| awk '{print $5}'| cut -d':' -f1| sort |uniq -c| \ awk '{if ($1 >= 12) print $2}' > $basedir/netstat3 cat $basedir/netstat1 $basedir/netstat2 $basedir/netstat3 | sort | uniq -c | \ awk '{ if ( $1 == 3 ) print $2 }' > $basedir/netstat-syn.now denyip_netstat=`cat $basedir/netstat-syn.now` /////////////////////////////////////// 关于防止别人来猜测ssh用户登录的密码,修改默认的ssh端口22为922(与防火墙中规则指定的922相一致.) 修改方法如下:
#vi /etc/ssh/sshd_config 修改: #Port 22 为: Port 922 注意:修改后的ssh连接方法:ssh user@ip –p 922 如果你不想指定-p参数,请修改 /etc/ssh/ssh_config的 #Port 22 为: Port 922 |
建议将提供服务的服务器中的ssh服务端与客服端的ssh通信端口都修改……
10.测试上线
所有的配置完毕,重启服务器.测试好准备上线.
注意:以下服务不能重复多次启动,必须服务在停止的情况下才能启动,否则会出现启动错误.
#su - oracle usr/local/syscmf/oracle.sh #/etc/rc.d/init.d/jboss start |
关于这两个服务的启动用户与权限:
1.Oracle:
用户:oracle(可以进行系统登录)
切忌有关oracle的操作请在oracle用户环境中进行操作.你实在要在root用户中操作,请不要忘了#su – oracle –c “lsncrctl start”……..
a.Oracle服务停止: $sqlplus /nolog SQL>conn / as sysdba SQL>shutdown immediate SQL> exit $lsnrctl stop b.Oracle服务启动: $lsnrctl start $sqlplus /nolog SQL>conn / as sysdba SQL> startup c.Oracle服务强制启动: 在oracle服务已进启动的情况下也可启动oracle服务. $sqlplus /nolog SQL>conn / as sysdba SQL> startup force |
2.Jboss: 用户:xxxx (不可以进行系统登录) 切忌有关jboss的操作请在jboss用户环境中进行操作.你实在要在root用户中操作,请不要忘了 #su – xxxx /site/jboss/bin/run.sh 或者 #/etc/init.d/jboss start a.xxxx用户环境下: 无法登录如何使用呢? 远程文本界面启动法: 以root登录系统:切换root可以登录到xxxx用户环境来进入xxxx. #su – xxxx Jboos 启动 $/site/jboss/bin/run.sh Jboss停止 $/site/jboss/bin/shutdown.sh –S 远程图形界面法: 关于开启远程图形界面登录的问题: 只允许oracle用户可以远程图形界面登录,为了便于操作oracle. 下面是开启改功能的过程: #su – oracle $vncserver Password:******** Password:******** $exit $ps –ef|grep vnc 将看到的vnc进程kill -9. $vi .vnc/xstartup 修改: twm & 为 gnome-session & $vncserver 注意:只允许开启一个vnc服务进程…..对应的端口为5801 在已进有vncserver启动的情况下不要在次启动vncserver服务.否则它将在增加一个vnc服务进程……. http://ip:5801 输入密码即可远程图形登录系统了. 由于是oracle登录到系统的….要启动jboss.需要如下操作: $su – Password:******** #su – xxxx Jboos 启动 $/site/jboss/bin/run.sh Jboss停止 $/site/jboss/bin/shutdown.sh –S b.root用户环境下: Jboos 启动 #su – xxxx /site/jboss/bin/run.sh 或者 #service jboss start 或者 #/etc/init.d/jboss start Jboss停止 #su – xxxx /site/jboss/bin/shutdown.sh –S 或者 #service jboss stop 或者 #/etc/init.d/jboss stop 关于(系统,软件)日志分析,根据自己的使用习惯搭建….. 关于系统用户创建问题,由于系统里面创建的xxxx用户指定了-u=5500. |
顶(0)
踩(0)
上一篇:Apache FAQ帮助集锦
下一篇:2003 回收应用程序池设置
- 最新评论