Linux防止syn flood攻击,屏蔽 SYN_RECV 的连接

今web服务器一直都有syn flood攻击。查阅了Google后方得到一些有效资料 ##################################### 抵御SYN SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。 Linux内核提供了若干SYN相关的配置,用命令: sysctl -a | grep syn 看到: net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_syncookies = 0 net.ipv4.tcp_synack_retries = 5 net.ipv4.tcp_syn_retries = 5 tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie 功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN 的重试次数。  加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分 SYN攻击,降低重试次数也有一定效果。 调整上述设置的方法是: 增加SYN队列长度到2048: sysctl -w net.ipv4.tcp_max_syn_backlog=2048 打开SYN COOKIE功能: sysctl -w net.ipv4.tcp_syncookies=1 降低重试次数: sysctl -w net.ipv4.tcp_synack_retries=3 sysctl -w net.ipv4.tcp_syn_retries=3 为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。 防止同步包洪水(Sync Flood) # iptables -A FORWARD -p [Read More →]

Posted in linux. 评论暂缺 »

putty ssh key 配置笔记

以前使用ssh没太在意。装好后就没怎么配置。登录也是直接用密码。这样不太安全,其实也更麻烦,因为每次都要输入密码。如果使用私钥公钥对验证的话。可以直接登录(前提是私钥生成时没有设置密码)以下部分修改自网上文章 系统:freebsd 7.1 release 工具:putty ———————————— 第一步:生成密匙 运行puttygen.exe,选择需要的密匙类型和长度。freebsd7.1中openssh的sshd默认使用SSH2(line 20:protocol 2,注意,很多网上教程都是说ssh1) 协议,故我们选择SSH2(RSA),长度设置为1024就可以了。 生成后密钥密码 和 确认密码 两项可以保持为空 这个东西是用来保护私匙的密码,如果没什么特别高的安全要求就不用了, 免得登录时还是要输入一次密码。 点击保存私钥 按钮保存 私钥(这里我们不保存公钥,上传时,直接从 生成框中复制)例如blvming.ppk 第二步:上传密匙 用自己的帐号登录远程系统,然后执行下面的命令: cd ~ mkdir .ssh cd .ssh cat > authorized_keys 这时候注意:要从puttygen.exe生成的 公钥生成框中直接复制 如果从文件中复制的话。容易出现这样的问题: server refused our key。 选中所有内容,按 Ctrl+C 复制 到剪贴板中,然后在Putty窗口中按Shift+Ins粘贴,再按Ctrl+D键,完成文件的创建 第三步:设置Putty 启动Putty,设置好session的各项参数,然后从左边选择“SSH->认证”, 点击 Browse 按钮,选择 blvming.ppk 文件。 再从左边选择 会话,然后点击 保存按钮把修改保存下来。然后点击 打开按钮就可以登录了。 如果上面的操作都没有问题,那这时应该就自动登录了,无需输入密码。 另外,如果还是出现拒绝key,可以设置authorized_keys的权限为 644 即: chmod 644 .ssh/authorized_keys ================================================= 如果要用SSH2协议,需要修改一下 /etc/ssh/ssh_config 文件,加入: Protocol 2,1 [Read More →]

Posted in freebsd, linux. 评论暂缺 »

linux更改密码出现passwd :/usr/share/cracklib/pw_dict: error reading header 错误

今天增加一用户时,出现以下情况。查阅了网上资料后得到如下解决方案: [root@test]passwd root Changing password for user root. New UNIX password: /usr/share/cracklib/pw_dict: error reading header PWOpen: Success 解决办法 rpm -e cracklib-dicts –nodeps yum install cracklib-dicts CrackLib是一个可用于类UNIX系统下的函数库,   一般来说,   通常只使用其中的一个函数.它可以用于编写和passwd有关的程序中,   其基本思想是很简单的,   就是防止用户使用过于简单,   容易被猜测出来或容易被一些工具搜索到的密码.CrackLib并不是一个可以直接运行使用的程序,   它是一个函数库,   你可以利用其中的函数写自己的程序,   或是加入其它程序中,   用来提高安全性.   比如,   你可以重写passwd,使用户在选择密码时受到限制CrackLib使用一个字典,   它查找字典以判断所选用密码是否是不安全的密码,   所以你也可以加入其它信息,   使用自己的字典.比如,   [Read More →]

Posted in linux. 评论暂缺 »

linux man page中显示的内容,命令后面接的数字含义备忘

1 用户命令, 可由任何人启动的。 2 系统调用, 即由内核提供的函数。 3 例程, 即库函数。 4 设备, 即/dev目录下的特殊文件。 5 文件格式描述, 例如/etc/passwd。 6 游戏, 不用解释啦! 7 杂项, 例如宏命令包、惯例等。 8 系统管理员工具, 只能由root启动。 9 其他(Linux特定的), 用来存放内核例行程序的文档。 n 新文档, 可能要移到更适合的领域。 o 老文档, 可能会在一段期限内保留。 l 本地文档, 与本特定系统有关的。

Posted in linux. 评论暂缺 »

VIM颜色设置

先看看vim编辑器提供的色彩配置方案: 首先进入vim的color目录(/usr/share/vim62/colors,不同的系统目录不同,建议在~/建立.vim目录,然后在些目录里建立对应的文件夹和文件) $ ls /usr/share/vim/vim62/colors blue.vim delek.vim evening.vim murphy.vim README.txt torte.vim darkblue.vim desert.vim koehler.vim pablo.vim ron.vim zellner.vim default.vim elflord.vim morning.vim peachpuff.vim shine.vim 然后再自己的~HOME/建立一个 .vimrc文档 [$ vi .vimrc :colorscheme evening ,假如选择其他的方案 只要替换 evening 就能够了! 然后再打开vim 看一下是不是颜色变得好看了!

Posted in linux. 评论暂缺 »

putty ssh key 配置备忘

以前使用ssh,太懒了。装好后就没怎么配置。登录也是直接用密码。这样不太安全,其实也更麻烦,因为每次都要输入密码。如果使用私钥公钥对验证的话。可以直接登录(前提是私钥生成时没有设置密码)以下部分修改自网上文章 系统:freebsd 7.1 release 工具:putty ———————————— 第一步:生成密匙 运行puttygen.exe,选择需要的密匙类型和长度。freebsd7.1中openssh的sshd默认使用SSH2(line 20:protocol 2,注意,很多网上教程都是说ssh1) 协议,故我们选择SSH2(RSA),长度设置为1024就可以了。 生成后密钥密码 和 确认密码 两项可以保持为空 这个东西是用来保护私匙的密码,如果没什么特别高的安全要求就不用了, 免得登录时还是要输入一次密码。 点击保存私钥 按钮保存 私钥(这里我们不保存公钥,上传时,直接从 生成框中复制)例如blvming.ppk 第二步:上传密匙 用自己的帐号登录远程系统,然后执行下面的命令: cd ~ mkdir .ssh cd .ssh cat > authorized_keys 这时候注意:要从puttygen.exe生成的 公钥生成框中直接复制 如果从文件中复制的话。容易出现这样的问题: server refused our key。 选中所有内容,按 Ctrl+C 复制 到剪贴板中,然后在Putty窗口中按Shift+Ins粘贴,再按Ctrl+D键,完成文件的创建 第三步:设置Putty 启动Putty,设置好session的各项参数,然后从左边选择“SSH->认证”, 点击 Browse 按钮,选择 blvming.ppk 文件。 再从左边选择 会话,然后点击 保存按钮把修改保存下来。然后点击 打开按钮就可以登录了。 如果上面的操作都没有问题,那这时应该就自动登录了,无需输入密码。 ================================================= 如果要用SSH2协议,需要修改一下 /etc/ssh/ssh_config 文件,加入: Protocol 2,1 如果没有 puttygen.exe,那么可以用 bsd/linux 自带的 ssh-keygen 生成 密匙,命令格式如下: ssh-keygen -b 密匙长度 -t 密匙类型 密匙类型可以是:rsa1 (对应SSH1 RSA)、rsa 和 dsa (对应SSH2) 不过 ssh-keygen 生成的SSH2密匙和putty的密匙格式不同,无法直接使用, 必须用 puttygen.exe 转换一下。所以大家还是用 rsa1 好了,反正一般用 [Read More →]

Posted in linux. 评论暂缺 »

Vim大全

读本文之前请注意: 1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是现在基本上都是用vim了。 2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程。 3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人。熟练使用vim的人自然不必细读,如果能留下您的宝贵意见,本人将感激不尽。 4. 本文由本人搜集整理,转载请注明出处 本文一般情况下用<C-字母>(里边的字母一般大小写无所谓,除非特别注明)表示按住ctrl同时按下相关字母,命令前加一个i表示在插入模式下用这个命令 1. 选定文字 / 拷贝粘贴 v为可视模式,可以选定多行。选定多行之后,可以用yy或者dd等等进行拷贝和剪切。 p 是粘贴 y 和d 可以直接拷贝或者剪切选定的内容 yw是拷贝一个单词 如果要复制整行的最简单办法就是V,y,p 就行了 v是可以选定一行任意个字符的,V是行选定的,一次一整行,然后通过向下或向上移动光标而选定多行。 对于v选定的,拷贝后就是这么多,选多少就拷贝多少,而V选定的,粘贴的话会自动换到下一行 <C-V>命令模式下,也是块选定,不过是列块选定 2. 折叠代码 可以zf进行折叠, 用zo打开折叠,也可以方向键向右打开折叠,zc 关闭折叠(只要在被折叠的块中的任一个语句就行) 3. 缩进代码 <是左缩进, >是右缩进 按v选定后按=就是自动格式化代码,自动缩进,内部的递归的缩进都做到了 行左移<<,行右移>>,该命令用于调整源码缩进格式简便快速。 4. 移动光标 %是从大括号的开始移动到大括号的结束位置 :后边加行号就是跳到这一行 <C-O> 光标返回到以前的位置。相当于光标移动的“撤销” <C-I> 光标返回到后来的位置。相当于光标移动的“恢复” 5. 多文件编辑 / 缓冲区命令 vim下每一个打开的文件对应一个缓冲区(buffer)。 多文件编辑会有两种情形,一种是在进入 vim 前所用的参数就是多个文件(这种情形称为 argument list)。另一种情形是进入 [Read More →]

Posted in linux. 评论暂缺 »

awk文本处理总结(入门,中级,高级)

转自:http://blog.csdn.net/blackbillow/archive/2009/01/21/3847425.aspx awk处理文本总结 – Alex.Wang 作为技术支持工程我们最最经常的工作就是经常碰到要处理文本文件,不管是什么数据库最后都可以导成文本,我们就可以对他进行处理了,这样即使你不是对所有数据库操作都很熟悉也可以对他的数据进行处理了。 我们必须的工具有两个一个是shell一个是awk,awk对于处理文本文件是最最适合的掌握了awk我们就可以很方便的处理文本文件再借助一些shell命令我们可以很方便得到自己想要的结果。现在从简单的例子来总结一下我觉得会经常碰到的问题。 awk入门篇 awk入门,文本内容example1.txt. user1 password1 username1 unit1 10 user2 password2 username2 unit2 20 user3 password3 username3 unit3 30 在unix环境中我们可以使用一下命令来打印出第一列 [root@mail awk]# awk ‘{print $1}’ example1.txt 得到的结果是如下,解释一下”‘{” 单引号大括号包含awk语句是为了和shell 命令区别,$1的意思就是文本文件的第一列,正常的awk命令跟随-F参数指定间隔符号,如果是空格或tab键就可以省略了。 user1 user2 user3 [root@mail awk]# awk ‘{if($5>20) {print $1}}’ example1.txt 这行命令和上一行比较增加了“if($5>20)”,得到的结果是 user3 这个if语句就没有必要更详细的解释了吧!就是第5列大于20的显示出满足条件的第一列 [root@mail awk]# awk ‘{if($5>20 || $5==10) {print $1}}’ example1.txt [Read More →]

Posted in linux. 评论暂缺 »

CentOS通过yum升级php到5.2.9版本的方法

(转自:http://www.ispcpcn.com/article/13/) CentOS的php版本默认为5.1.6,然后在5.2.9版本之前的的php都存在一个漏洞,但是目前网上很多地方都无法使用yum update php*升级到5.2.9,比较常见的是升级到5.2.6版本的,经过搜索国外资料,现在终于找到一种升级CentOS的php到5.2.9的方法。 注意,此方法只能在官方的php版本上升级,如果你使用网上的升级到5.2.6版本的升级方法已经升级了,将无法使用本方法升级php。 运行下面命令: # wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm # wget http://rpms.famillecollet.com/enterprise/5/remi/i386/remi-release-5-7.el5.remi.noarch.rpm # rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm 然后编辑/etc/yum.repos.d/remi.repo #vi /etc/yum.repos.d/remi.repo 在这个文件的最后增加一行: priority=1 保存退出。 /etc/yum.repos.d/epel.repo和/etc/yum.repos.d/epel-testing.repo这两个文件也按照上面的方法进行编辑!! 使用下面的命令进行升级,但是经过测试,如果单独升级php将提示失败,只有联通mysql一起升级才可以,所以我们必须执行以下命令才能升级php到5.2.9版本: yum –enablerepo=remi update php* mysql*

Posted in linux. 评论暂缺 »

关于 linux下cp 强制覆盖的问题

linux cp时总询问是否覆盖,怎样让它不询问直接覆盖? 有两个方法可以解决此问题: 1、.bashrc里面注释掉 Alias cp=’cp -i’ 2、使用 \cp 命令(在cp前加一个’\’)

Posted in linux. 评论暂缺 »