-
Dec19
如何在Linux中防御SYN型DOS攻击
Posted in Linux, 670 views
-
在Linux中防御SYN型DOS攻击的方法比较常见的有增大队列SYN最大半连接数,减小超时值,利用SYN cookie技术,过滤可疑的IP地址等常用方法,下面分别进行分析.
- 增大队列SYN最大半连接数
在Linux中执行命令"sysctl -a|grep net.ipv4.tcp_max_syn_backlog",在返回的"net.ipv4.tcp_max_syn_backlog=256"中显示 Linux队列的最大半连接容量是256.这个默认值对于Web服务器来说是远远不够的,一次简单的SYN攻击就足以将其完全占用.因此,防御DOS攻击最简单的办法就是增大这个默认值,在Linux中执行命令"sysctl -w et.ipv4.tcp_max_syn_backlog=3000",这样就可以将队列SYN最大半连接数容量值改为3000了.
- 减小超时值
在Linux中建立TCP连接时,在客户端和服务器之间创建握手过程中,当服务器未收到客户端的确认包时,会重发请求包,一直到超时才将此条目从未连接队列是删除,也就是说半连接存在一定的存活时间,超过这个时间,半连接就会自动断开,在上述SYN攻击测试中,当经过较长的的时间后,就会发现一些半连接已经自动断开了.半连接存活时间实际上是系统所有重传次数等待的超时时间之和,这个值越大,半连接数占用的Backlog队列的时间就越长,系统能处理的 SYN请求就越少,因此,缩短超时时间就可以有效防御SYN攻击,这可以通过缩小重传超时时间和减少重传次数来实现.在Linux中默认的重传次数为5 次,总超时时间为3分钟,在Linux中执行命令"sysctl -w net.ipv4.tcp_synack_retries=1",将超时重传次数设置为1.
- 利用SYN cookie来防御DOS攻击
除了在TCP协议栈中开辟一个内存空间来存储半连接数之外,为避免因为SYN请求数量太多,导致该队列被填满的情况下,Linux服务器仍然可以处理新的 SYN连接,可以利用SYN Cookie技术来处理SYN连接.什么是SYN Cookie呢?SYN Cookie是用一个Cookie来响应TCP SYN请求的,在正常的TCP连接过程中,当服务器接收一个SYN数据包,就会返回一个SYN -ACK包来应答,然后进入TCP -SYN -RECV(半开放连接)状态来等待最后返回的ACK包.服务器用一个数据空间来描述所有未决的连接,然而这个数据空间的大小是有限的,所以攻击者将塞满这个空间,在TCP SYN COOKIE的执行过程中,当服务器收到一个SYN包的时候,他返回一个SYN -ACK包,这个数据包的ACK序列号是经过加密的,它由TCP连接的源地址和端口号,目标地址和端口号,以及一个加密种子经过HASH计算得出的,然后服务器释放所有的状态.如果一个ACK包从客户端返回后,服务器重新计算COOKIE来判断它是不是上个SYN -ACK的返回包.如果是的话,服务器就可以直接进入TCP连接状态并打开连接.这样服务器就可以避免守候半开放连接了,在Linux中执行命令"echo "echo "1" > / proc/sys/net/ipv4/tcp_syncookies"> > /etc/rc_local",这样即可启动SYN Cookie,并将其添加到了Linux的启动文件,这样即使系统重启也不影响SYN Cookie的激活状态.
- 过滤可疑的IP直址
当客户机对服务器进行攻击时.在服务器上可以进行抓包操作,这样可以对数据包中的IP进行检测,然后再对这些可疑的潮行过滤,从而将其无法正常连接服务器.利用Linux自带的"tcpdump"命令可以实现抓包操作.执行命令"tcpdump -c 1000 -l eth 0 -n dst port 80 > test.txt",就可以在当前目录下创建一个'test.txt"文件,在其中包含大量的网络数据包,通过对该文件的的分析,就很容易得到可疑的客户端IP,之后利用系统自带的"iptables"命令即可对可疑IP进行屏蔽.便如执行命令"iptables -A INPUT -s 219.29.78.79 -d 0/0 -j REJECT",即可禁止"219.29.78.79"的外部主要访问本机所有端口.其中"-j REJECT"参数表示禁止访问.
Blogged with the Flock BrowserTags: syn, dos, syn-cookie, linux
-
No Comments »
-
Dec16
caucho-request的范围
Posted in Linux, 723 views
-
在为Apache+Resin环境添加php支持的时候,php编译安装一切顺利,但是apache不能解析php页面。
发现有这样一些现象:
- 在任意一个404页面中,服务器信息仅显示Resin,而没有Apache
- 注释掉httpd.conf中的Resin条目,php可以被解析
说明apache将任意请求都发送给了Resin,而这个resin3.0不能解析php
检查httpd.conf,将SetHandler caucho-request注释掉,重启apache,php解析正常。
当前的httpd.conf中resin部分:
LoadModule caucho_module /opt/apache/modules/mod_caucho.so
ResinConfigServer localhost 6802
CauchoConfigCacheDirectory /tmp
AddHandler caucho-request jsp在Resin非常模糊的联机文档中提到了caucho-request
"caucho-request Dispatch a request to Resin"而在给出的例子中
<Location /foo/*>
SetHandler caucho-request
</Location>将caucho-request的范围限定在/foo/
Blogged with the Flock BrowserTags: resin, caucho-request, addhandler, sethandler, php, jsp
-
No Comments » addhandler caucho-request php resin sethandler
-
Dec02
-
PROCESS STATE CODES
Here are the different values that the s, stat and state output specifiers
(header "STAT" or "S") will display to describe the state of a process.
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by its parent.For BSD formats and when the stat keyword is used, additional characters may
be displayed:
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ is in the foreground process groupBlogged with the Flock Browser -
No Comments » linux ps stat
-
Nov14
用APXS编译Apache模块
Posted in Linux, 1,330 views
-
apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用
LoadModule指令在运行时加载到Apache服务器中。1. 进入apache源代码的modules目录
2. 运行如下命令自动编译、安装和修改httpd.conf文件,激活mod_proxy模块:
apache path/bin/apxs -c -i -a mod_proxy.c proxy_util.c
选项说明:
-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行到httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行前有井号前缀(#)
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块3. 如果还需要其他proxy模块如mod_proxy_http、mod_proxy_ftp,则单独
apxs -c -i proxy_http.c
apxs -c -i proxy_ftp.cBlogged with the Flock Browser -
No Comments » apache apxs module
-
Nov13
RMAN TAG参数的禁区
Posted in Database, 945 views
-
RMAN具有非常丰富的命令,为这些命令服务的保留字有几十上百个,如allocate、rsync、show、backup等等。
在书写RMAN脚本时,需要特别小心不要用到保留字,否则会导致RMAN-01007错误
以TAG参数为例:
当tag为backup时,报错RMAN> run{
2> backup tablespace user
3> tag backupRMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "backup": expecting one of: "double-quoted-string, equal, identifier, single-quoted-string"
RMAN-01007: at line 3 column 5 file: standard input当tag为backup1时,正常运行RMAN> run {
2> backup tablespace users
3> tag backup1;
4> }Starting backup at 13-NOV-08
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=/opt/u01/oracle/oradata/mydb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 13-NOV-08
channel ORA_DISK_1: finished piece 1 at 13-NOV-08
piece handle=/oracle/flash_recovery_area/MYDB/backupset/o1_mf_nnndf_BACKUP1_4kq7rcpv_.bkp tag=BACKUP1 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 13-NOV-08Starting Control File and SPFILE Autobackup at 13-NOV-08
piece handle=/oracle/flash_recovery_area/MYDB/autobackup/o1_mf_s_670678156_4kq7rfb5_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 13-NOV-08RMAN>
Blogged with the Flock Browser -
No Comments » 01009 oracle rman tag
-
Oct27
resin2升级为resin3后遇到的jsp显示问题
Posted in Linux, 1,044 views
-
将系统由resin 2.1.17升级为resin 3.0.25后,发现大部分JSP不能正常显示,错误都类似:
Caused by: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${user.ID}": Unable to find a value for "ID" in object of class "java.lang.String" using operator "." (null)
这是resin3与jstl的问题,需要将resin自带的jstl1.1禁用。
方法如下 :
将resin的conf文件中:
<servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet"/>
修改为:
<servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet">
<init enable="false"/>
</servlet>在resin的webapp配置中,添加一个<jsp>标签
<web-app id="/test" document-directory="webapps/test">
<jsp fast-jstl="false"/>
</web-app>最后,将JSP文件中
<%@ taglib prefix=’c’ uri=’http://java.sun.com/jstl/core’ %>
修改为
<%@ taglib prefix=’c’ uri=’http://java.sun.com/jsp/jstl/core’ %>现在JSP可以正常显示了
-
No Comments » jsp jstl resin
-
Oct23
Eva在Ubuntu 8.10中崩溃的问题
Posted in Linux, 1,597 views
-
从8.04升级到8.10后,原本正常运行的Eva一登录就崩溃。
Ubuntu源中的Eva已经更新为0.49版本,折衷的解决方法就是回退Eva版本至0.41
Eva 0.41在这里下载
安装完成后系统会提示Eva可更新至0.49,在新立得软件包管理器中,选中Eva,再从软件包菜单中选择“锁定版本”,就可以解除这个提示了。
Blogged with the Flock Browser -
1 Comment » eva ubuntu8
-
Oct21
ORACLE 10G AWR 速查
Posted in Database, 1,285 views
-
安装
SQL> SQLPLUS / AS SYSDBA
SQL> exec dbms_workload_repository.create_snapshot
SQL> exec:snap_id:=dbms_workload_repository.create_snapshot
SQL> var snap_id number
SQL> print snap_id
SQL> @?/rdbms/admin/awrrpt.sql操作
1.查看当前的AWR保存策略
select * from dba_hist_wr_control;
DBID,SNAP_INTERVAL,RETENTION,TOPNSQL
860524039,+00 01:00:00.000000,+07 00:00:00.000000,DEFAULT
以上结果表示,每小时产生一个SNAPSHOT,保留7天2.调整AWR配置
AWR配置都是通过dbms_workload_repository包进行配置
2.1调整AWR产生snapshot的频率和保留策略,如:如将收集间隔时间改为30 分钟一次。并且保留5天时间(注:单位都是为分钟):
exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);
2.2关闭AWR,把interval设为0则关闭自动捕捉快照
2.3手工创建一个快照
exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
2.4 查看快照
select * from sys.wrh$_active_session_history
2.5手工删除指定范围的快照
exec WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id => 22, high_snap_id => 32, dbid => 3310949047);
2.6创建baseline
exec dbms_workload_repository.create_baseline (56,59,'apply_interest_1')
2.7删除baseline
exec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name => ' apply_interest_1', cascade => FALSE);3.生产AWR报告
$ORACLE_HOME/rdbms/admin/awrrpt.sqlBlogged with the Flock Browser -
No Comments » oracle
-
Oct17
如何获得廉价的metalink帐号
Posted in Database, View, 1,523 views
-
Oracle Metalink帐号需要购买产品支持服务才可以拥有,而这个服务价格通常是产品价格的18%,非常贵。
DBA notes的Fenng分享了一个好方法:
购买
- Oracle Collaboration Suite,单用户永久License,60美元
- 软件更新License与支持服务,15美元
一共75美元,即可拥有Metalink帐号
Blogged with the Flock Browser -
No Comments » oracle
-
Oct14
crs_stat中UNKNOWN状态的处理方法
Posted in Database, 1,527 views
-
[oracle@rac01 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.dppc.db application ONLINE ONLINE rac01
ora....c1.inst application ONLINE ONLINE rac01
ora....c2.inst application ONLINE ONLINE rac02
ora....01.lsnr application ONLINE ONLINE rac01
ora.rac01.gsd application ONLINE ONLINE rac01
ora.rac01.ons application ONLINE ONLINE rac01
ora.rac01.vip application ONLINE ONLINE rac01
ora....02.lsnr application ONLINE ONLINE rac02
ora.rac02.gsd application ONLINE UNKNOWN rac02
ora.rac02.ons application ONLINE UNKNOWN rac02
ora.rac02.vip application ONLINE ONLINE rac02[oracle@rac01 ~]$ crs_stop ora.rac02.gsd -f
Attempting to stop `ora.rac02.gsd` on member `rac02`
Stop of `ora.rac02.gsd` on member `rac02` succeeded.[oracle@rac01 ~]$ crs_stop ora.rac02.ons -f
Attempting to stop `ora.rac02.ons` on member `rac02`
Stop of `ora.rac02.ons` on member `rac02` succeeded.[oracle@rac01 ~]$ srvctl start nodeapps -n rac02
[oracle@rac01 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.dppc.db application ONLINE ONLINE rac01
ora....c1.inst application ONLINE ONLINE rac01
ora....c2.inst application ONLINE ONLINE rac02
ora....01.lsnr application ONLINE ONLINE rac01
ora.rac01.gsd application ONLINE ONLINE rac01
ora.rac01.ons application ONLINE ONLINE rac01
ora.rac01.vip application ONLINE ONLINE rac01
ora....02.lsnr application ONLINE ONLINE rac02
ora.rac02.gsd application ONLINE ONLINE rac02
ora.rac02.ons application ONLINE ONLINE rac02
ora.rac02.vip application ONLINE ONLINE rac02Blogged with the Flock Browser -
No Comments » oracle

Comments