Posts Tagged ‘ Security

iptables 封锁的指令与简单的封锁程式

安装了一台新的 Linux Server,有个来自中国的 IP“218.25.253.100”连续好几天一直在尝试以 ssh 登入我的 Server,虽然我也装了 fail2ban,不过只设三个小时的封锁时间,所以每天会看到 fail2ban 告诉我这个 IP 被封锁了 n 次!!看了很烦,所以直接用 iptables 把它给封锁了。
Read more

用 Fail2Ban 防范暴力破解 (SSH、vsftp、dovecot、sendmail)

Fail2Ban 可以用来防护 Linux Server 上的 SSH、vsftp、dovecot...等服务免于遭骇客使用暴力密码入侵。我以前曾写过即时封锁想要入侵 SSH 的程式,不过 Fail2Ban 厉害多了,也完全可以取代我写的程式。

安装 Fail2Ban

安装前可以先用下列指令来查看可安装的版本:

yum info fail2ban

像我的系统 (CentOS 5.x) 查出来有两个版本: 0.8.14 与 0.6.0,来自不同的套件库,但默认却安装 0.6.0,所以我必须要指定安装的版本为 0.8.14,以下的说明也是针对 0.8.*

安装 Fail2Ban:

yum install fail2ban

yum install fail2ban-版本

启动 Fail2Ban:

service fail2ban start
chkconfig fail2ban on

Read more

增加 ssh 的安全性设定

编辑 /etc/ssh/sshd_config,加入或修改下列参数:

#禁止 root 以 SSH 登入
PermitRootLogin no

#仅允许特定群组登入
AllowGroups group1 group2

#仅允许特定帐号登入
#(注意,AllowUsers 会覆写 AllowGroups,若你有群组登入的需求,就不能设 AllowUsers)
AllowUsers user1 user2

#禁止使用空白密码登入
PermitEmptyPasswords no

#限定只能使用 SSH2 协定
Protocol 2

#限定最多可以同时连线的数目
MaxStartups 5

免费的 Windows 防火墙软件

免费的 Windows 防火墙软件,有需要时,可以拿来试用看看:

  1. COMODO Personal Firewall (占内存约 23MB, 教学1, 教学2)
    本产品有繁体中文版,安装好 CFP 之后,先到“安全性”->“任务”->“定义一个新的可信任网络区域”,新增好之后,就可以启用“网络上的芳邻”了,此个人防火墙的评价也不错,又是终身免费,推荐大家使用。
  2. Online Armor Free Edition (教学)
  3. ZoneAlarm (版本比较)
    在安装好 ZoneAlarm 之后,只要到“Firewall”里的“Zones”将相关网卡设为“Trusted”之后,就能让别人从“网络上的芳邻”存取这一台电脑所分享的资源。ZoneAlarm 本身俱有一些简单的防毒能力,不过,我们通常都会把它关掉。(5.5.094 版下载 & 中文化)
  4. Kerio Personal Firewall (占内存约 15MB, 版本比较)
    安装好 Kerio Personal Firewall 之后,必须先到“Network Security”里的“Trusted area”将相关网卡设为“Trusted”,然后回到“Applications”,将“Microsoft File and Printer Sharing”里“Trusted”区域的权限全部设为“permit”之后,才能让别人从“网络上的芳邻”存取到这一台电脑所分享的资源。
  5. Sygate Personal Firewall
    Sygate Personal Firewall 是一套评价很高的防火墙软件,不过,我在它的“网络上的芳邻”相关设定上试了半天,必须经过一些“奇怪”的步骤,才能让别人在“网络上的芳邻”存取到这一台电脑所分享的资源,所以我就不推荐了。
  6. Outpost Free
    Outpost 也是一套评价很高的防火墙软件,不过它的免费版本似乎比较旧了,所以我就没有多做测试了。
  7. 费尔个人防火墙 中文版
  8. PC Tools Firewall Plus 免费版本

以上免费的防火墙,我比较推荐 COMODO Personal Firewall,另外,ZoneAlarm也不错啦。

参考网页

如何即时封锁想要用“暴力密码”破解 SSH 的入侵者

本程式无法处理 IPv6 的问题,请改用功能更强大、更完整的 Fail2Ban,请参考本站文章:


粉久之前写了一支 Log 分析的程式,可以统计、分析前一天系统的 Log,在这一份报表里面,总是会看到有一些人使用“暴力法”,尝试以各种帐号、密码,借由 SSH 或 FTP 入侵服务器! 而我只能看着“前一天”的报表,分析他们用过哪些帐号、统计他们尝试了几次…实在有点不是滋味
Read more

iptables 防火墙的一些基本用法

  • 列出目前的规则
  • iptables -L -n
  • 删除 “INPUT” 的第 1 条规则
  • iptables -D INPUT 1
  • 丢弃来自 192.168.1.203 的封包
  • iptables -A INPUT -p all -s 192.168.1.203 -j DROP
  • 禁止 192.168.1.203 的用户以 SSH 登入(Port:22)
  • iptables -A INPUT -p tcp -s 192.168.1.203 --dport 22 -j DROP
  • 储存防火墙的设定到 filename
  • iptables-save > filename
  • 从 filename 读取防火墙的设定
  • iptables-restore < filename

    Cookie 是什么?

    很多网站在你浏览网页之后,会在你的浏览器中留下一些小小的资料,这就是所谓的“Cookie”。当你再次浏览这些网站时,系统便会去读取这些 Cookie,找回与你曾经有过的片刻记忆。

    “Cookie”不是饼干,Cookie 是服务器暂存在你电脑上的一笔资料,好让服务器用来辨认你的电脑。就好比是格林童话故事中,沿途撒下面包屑避免在森林中迷路的小孩。

    为什么需要 Cookie?

    HTTP 的协议本身是“无记忆状态 (Stateless) ”的,无论是用户端还是网页服务器,每一个页面都没有关联,每一次的请求都是单独的请求。服务器借由 Cookie 来让同一个用户的各项操作都可以产生关联。

    当你在浏览网站的时候,服务器会先送一些小小的资料放在你的浏览器上,Cookie 会帮你在网站上所打的文字或是一些选择都纪录下来。当下次你再光临同一个网站,网页服务器会先查看有没有上次留下的 Cookie,有的话,就会依据 Cookie 里的内容来判断用户,送出特定的网页内容给你。

    Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie 来识别用户,以方便送出为用户量身而做的内容,像是 Web 接口的免费 email 网站,都有用到 Cookie。

    Cookie 会不会有危险?其实 Cookie 中记载的资料有限,Cookie 是安全的。网站不可能经由 Cookie 获得你的 email 地址或是其他私人资料,更没有办法透过 Cookie 来存取你的电脑。

    但是如果你实在不喜欢网页服务器乱丢 Cookie 到你家,当然可以让浏览器拒绝网站存放 Cookie 到你的浏览器。

    IE 浏览器从“工具”选单 → Intertnet 选项 → 安全性,按“自订层级”,到 Cookie 的部分,全都设为“关闭”,再重新启动浏览器即可。

    当你关闭 Cookie 之后,很多网站的个人化服务功能很可能就不能再使用了。

    IE 的 Cookie 默认存放位置是在: C:\WINDOWS\Temporary Internet Files

    你可以直接删掉这里面的东西或是利用“Internet 选项”里的清除档案按钮来清除。

    Cookie 的内容

    大家想不想知道哪个网站有设 Cookie?你的 Cookie 资料又为何?其实,用一行简单的 JavaScript 指令就可以一清二楚了。

    首先,开启一个网站,例如 http://www.google.com ,一旦网站开启后,在浏览器的位址列中输入以下的 JavaScript 指令:

    javascript:alert("Cookie:"+document.cookie)

    javascript:document.write(document.cookie)

    按下 Enter 后,你会见到跳出一个小警告视窗,上面便会标明你的 Cookie 资料,试试看吧!

    比较新的浏览器,如 Chrome 与 Firefox 都有内建“开发人员工具”,只要按 F12 开启“开发人员工具”,可以在“Application”或“储存空间”页签看到网站所储存的 Cookie 内容。

    什么是 Session?

    讲到 Cookie 就会有人提到 Session。

    Session 的资料是存放在 Web 服务器端。用解释的不好解释,我们先来举个例子...

    有一家咖啡店要举办咖啡买三送一的活动,若以“Cookie”或“Session”的作法来看:

    • Cookie:
      相当于是店家发给你一张“小卡片”,每次你来买一杯咖啡就在卡片上盖个印章,集满三个印章,那咖啡店就会送你一杯免费的咖啡。
      其中,购买咖啡的记录是留在你携带的卡片上,如果卡片遗失你的记录就不存在了。
    • Session:
      相当于是店家请你加入他们的会员,然后发给你一张“会员卡”(Session ID)。每次你拿会员卡来买咖啡都会在店家的电脑里留下记录,买了三杯咖啡就会送你一杯免费的咖啡。
      其中,购买咖啡的记录是储存在店家的电脑里,如果会员卡遗失了可以透过核对会员的资料来重新取得会员卡,未来这张会员卡甚至可能在它的连锁店使用。

    可以说,Cookie 只做一件事,就是存取服务器暂存在客户端的资料。而 Session 则是一个涵盖范围比较广、比较完整的保存机制。并且 Session 仍需借由 Cookie、网址或表单...等三种方式来识别用户的 Session ID,才能接续之后服务器要做的事情。

    只要“网站是将任何用户的资料储存在服务器,并且用 Cookie、网址或表单来识别单一用户”,这样就已经是在实作 Session 了。由于“识别用户”是很普遍的功能,你所使用的程式框架 (Framework) 有可能在无声无息之中就已经帮你完成整个机制了,你只要把心思用在程式的其它部份即可。

    参考网页

    return top