架设某大型网站服务器之全部过程(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 回收应用程序池设置
- 最新评论
