快捷搜索:  

架设某大型网站服务器之全部过程(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
如果你要利用我写的expect自动输入脚本来启动,你需要修改,在里面加入条件判断结构.

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.

所以在以后创建的系统帐户id=550X, 这样会存在安全隐患,

所以在创建用户时请指定id=50x(x=5开始.):例如创建user: #groupadd –g 505 user #adduser –u 505 –g user user 注意所有的系统帐号id请不要超过5500.

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论