【原创】XP下将硬盘FAT32分区转为NTFS分区
其实一条简单的指令就可以实现不破坏硬盘数据把FAT32转为NTFS分区。 点击屏幕左下角“开始”,找到运行,在其中输入:cmd,确定,打开“命令提示符”;在命令提示符下输入:
convert X:/FS:NTFS(其中X是盘符)。
执行后,重新启动电脑,进入系统以后,在查看磁盘属性就已经是NTFS格式了。
转载请标明出处:http://liuxinxiu.com/
【原创】FreeBSD下设置root用户异地登陆sshd(附:FreeBSD SSH配置详解)
本次教程使用的是:FreeBSD-8.1
修改freebsd下可以用sshd权限可允许普通用户登录ssh, 但不能用超级用户root用户登录的方法!
在/etc/ssh/sshd_config最后中加入
PermitRootLogin yes #允许root登录
PermitEmptyPasswords no #不允许空密码登录
PasswordAuthentication yes # 设置是否使用口令验证。
就可以了=========================================
之后再,vi编辑/etc/inetd.conf,去掉ssh前的#,保存退出 (开启监听ssh服务)
编辑/etc/rc.conf
最后加入:sshd_enable="yes"即可
最后激活sshd服务:
techo#/etc/rc.d/sshd start
用下面命令检查服务是否启动,在22端口应该有监听。
#netstat -an ## check port number 22
===================================================================
***********************************************************************************
##############################################
记得修改完配置文件后,重新启动sshd服务器(/etc/rc.d/sshd restart)即可。
几点补充说明
1,如果重启后还是不行请重新载入sshd_config 文件
/etc/rc.d/sshd reload
2,如果出现using keyboard-interactive authentication
password:
请确认PasswordAuthentication是否已经改成yes
另外如果客户端是putty那么请确认"尝试'智能键盘'认证(SSH-2)"的勾是否有去掉
3,如果是使用root帐号登陆
请确认密码是否为空
空密码无法登陆
4请确认是否有安装SSH
sysinstall>>>configure>>>networking>>>sshd是否的勾是否有打上
【原创】freeBSD更改系统root密码,注:root安装系统默认为空
本次教程使用的是:FreeBSD-8.1
FreeBSD 5 之以后的版本,都按照如下步骤操作:
首先重启FreeBSD执行命令和linux一致:shutdown -r now
在系统启动提示以下画面时候按spacebar选择数字键:4 按enter进入单用户模式,图如下:
待系统运行至,提示以下信息时:
Enter full pathname of shell or RETURN for /bin/sh:
再按Enter进入单用户,提示
挂载档案系统,输入:
# fsck -p \\文件档案系统檢查
接下来开始重新设置root用户密码,输入:passwd 回车
# passwd \\更改密碼,
\\现New password: 时候键盘输入你想设置的密码,这里无*号提示,记住你输入密码的位数!
New password:
\\更改密碼,在出现Retype new password: 时候,键盘再次输入你上一步设置的密码!
Retype new password:
返回到以下界面说明设置成功!
之后输入:exit 退出,重新加载多用户。
# exit \\离开单用戶进入多用戶正常模式,再次启动系统,root用户使用新设置的密码进行登入!
==========================================================================
验证完成!root用户进入系统的画面@!
==========================================================================
freeBSD 比较早的版本使用以下步骤:
==========================================================================
重置root密码其实很简单
第一步:重启服务器,在出现模式选择时,选择单用户模式 选择 4(Boot FreeBSD in single user Mode) 系统出现提示,按回车确认继续
第二步:输入 fsck -y (检查系统文件) 磁盘检查完成后,挂载所有系统分区
第三步:输入 mount -a
第四步: 重设root用户密码 输入 passwd 回车 之后会提示再输入一遍,确认后 Ctrl+D 系统继续启动,就可以了.
------------------------------------------------------------------------------------------------------
Nginx简单的防盗链和带宽限制
很多时候,服务不是被用户流量击垮,而是被大量的对你没有任何贡献的盗链击倒,所以作为一个web站点防盗链是首先要考虑的问题,目前来说,对于各个web服务器,简单的防盗链方法多数是做rewrite,判断referer是否有效,当然高端的伪造referer的情况不在这里讨论。
在apache下,防盗链的方法有很多,你可以看看apache的日志,有多少是外部直接referer过来的,有可能比内部引用还多,尤其是图片和下载类站点更加明显。在apache下,最简单的防盗链使用类似这个形式:
SetEnvIfNoCase Referer "^http://www.google.com" local_ref=1
SetEnvIfNoCase Referer "^http://google.com" local_ref=1
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
或者在apache下使用RewriteEngine on,然后使用RewriteCond {HTTP_REFERER} 来定义,这些都是防止比较低级的盗链,如果是面对迅雷或者其他的话,这个远远不够,但是不是这里讨论的范围。
对于nginx而言,本身也有简单的防盗链模块ngx_http_referer_module,配置比较简单,定义文件类型:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
valid_referers none blocked server_names *.163.com 163.com baidu.com;
if ($invalid_referer) {return 403;}
expires 30d;
}
具体的可以参考这里:http://wiki.nginx.org//NginxHttpLimitZoneModule,同时还有一个第三的防盗链相关模块,ngx_http_accesskey_module:
location /download {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg "key";
accesskey_signature "mypass$remote_addr";
}
具体的使用方法:http://wiki.nginx.org//NginxHttpAccessKeyModule
对于带宽限制,apache可以动态编译一些模块进去,mod_evasive20.so和mod_bw.so都是对防止简单的dos和带宽限制而存在的,而对于nginx,可以使用nginx的标准模块ngx_http_limit_zone_module,进行会话的并发连接数控制:
http {
limit_zone one $binary_remote_addr 10m;
#定义一个叫“one”的记录区,总容量为 10M,以变量 $binary_remote_addr 作为会话的判断基准(即一个地址一个会话)
...
server {
...
location /icons_rar/ {
limit_conn one 2;
limit_rate 2k;
}
limit_conn 一个会话只能进行两个连接。超过一个,则返回503。
imit_rate 来控制该目录的下载速度为2KB/S
# 如果限制当前server内域名下所有目录下载显示则写 / 如:
server {
...
location / {
limit_conn one 2;
limit_rate 2k;
}
之后用迅雷下载文件测试:
这是简单的nginx的方案,更高级的应用应该是在客户端类型或者根据日志分析后,针对具体问题做文章,例如对$http_user_agent的特殊内容进行匹配,然后返回503。
为什么要返回503?如果直接返回403,有可能被下载工具发现,403的状态被认为被禁止了,然后进行调整继续作案。而返回一个503,对服务器来说影响不大,只占用一个nginx的线程而已。
先说到这里,以后再继续补充。
【原创】linux服务器更改DNS设置,Centos-5.4 让yum使用搜狐sohu镜像下载源
今日朋友买一北京VPS,本人帮其安装环境,先前YUM类库,出现无法解析域名,查看DNS设置得知问题所在。
粗心的机房管理员,设置好DNS也不测试下。
=============================================
详细更改如下:
进入/etc/ 打开DNS设置文件
原来机房管理设置的DNS 202.96.128.166 为原来北京地区DNS经在本地WIN测试已经不可用!@
新设置为:202.106.0.20 / 202.99.160.68
主DNS:202.106.0.20 (北京DNS)
次DNS:202.99.160.68 (河北DNS)
更改完成后,重启服务器即可,而不要使用重启网络配置命令:/etc/init.d/network restart
之所以不使用::/etc/init.d/network restart 重启网络命令是因为重启后会先关闭网络连接,此时SSH客户端已和服务器断开连接,导致启动服务无法发往服务器端。服务器所有网站将无法访问,SSH也无法连接@!
而选择重启服务器,再次启动机器时,会自动加载最新修改完的网络配置。
==================================================================
重启后,执行下载,可以完成!
之后删除 entOS-Base.repo 文件,或者备份成其他名称:
mv CentOS-Base.repo CentOS-Base.repo.bak
*****************************************
重命名:CentOS-Base-sohu.repo 为:CentOS-Base.repo
mv CentOS-Base-sohu.repo CentOS-Base.repo
*******************************************
现在使用 yum 就会选择国内搜狐开源镜像站!@
推荐 yum使用的CENTOS 国内镜像站点,单CD安装CENTOS
centos官方镜像列表
http://www.centos.org/modules/tinycontent/index.php?id=32
CENTOS 国内镜像
http://mirrors.163.com/centos/ (浙江省杭州市 电信,武汉电信访问快,竟提供最新的4.7及5.2)
http://mirrors.shlug.org/centos/ (上海市电信真如IDC机房,武汉电信访问慢)
http://mirrors.ta139.com/centos/ (移动线路,武汉电信访问快)
http://centos.ustc.edu.cn/centos/ (中国科学技术大学,教育网线路 -官方镜像)
http://mirror.centos.net.cn/ (北京市 网通, -官方镜像)
--------------------------------------------------------------------------------
CentOS USTC mirror
http://centos.ustc.edu.cn/centos/
--------------------------------------------------------------------------------
安装CentOS 4的方法:
下载CentOS-4.7.ServerCD.iso 单张光盘安装CentOS4.7,安装后可以用yum update升级,适合服务器使用
安装后请按照以下步骤修改CenOS-Base.repo,以后就可以方便的用yum安装软件了.
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.save
wget http://centos.ustc.edu.cn/CentOS-Base.repo
修改以上文件后, 如需要安装gcc, 直接yum install gcc就可以了
--------------------------------------------------------------------------------
安装CentOS 5的方法:
下载centos/5.2/isos/i386/CentOS-5.2-i386-netinstall.iso,刻盘安装CentOS5.2,安装地方 设置为HTTP,Server centos.ustc.edu.cn, 目录 为centos/5.2/os/i386。
安装后请按照以下步骤修改CenOS-Base.repo,以后就可以方便的用yum安装软件了.
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.save
wget http://centos.ustc.edu.cn/CentOS-Base.repo.5
mv CentOS-Base.repo.5 CentOS-Base.repo
为Centos5添加网易163、Sohu的yum源
将yum的目标服务器更改为中国大陆服务器镜像
以下的URL地址我都验证过了在当前完全可以下载,而且速度挺快.
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
vi /etc/yum.repos.d/CentOS-Base.repo
- # CentOS-Base.repo
- #
- # This file uses a new mirrorlist system developed by Lance Davis for CentOS.
- # The mirror system uses the connecting IP address of the client and the
- # update status of each mirror to pick mirrors that are updated to and
- # geographically close to the client. You should use this for CentOS updates
- # unless you are manually picking other mirrors.
- #
- # If the mirrorlist= does not work for you, as a fall back you can try the
- # remarked out baseurl= line instead.
- #
- #
- [base]
- name=CentOS-$releasever - Base
- baseurl=http://mirror.be10.com/centos/$releasever/os/$basearch/
- http://ftp.iasi.roedu.net/mirrors/centos.org/$releasever/os/$basearch/
- http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/
- http://ftp.hostrino.com/pub/centos/
- gpgcheck=1
- gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
- #released updates
- [update]
- name=CentOS-$releasever - Updates
- baseurl=http://mirror.be10.com/centos/$releasever/os/$basearch/
- http://ftp.iasi.roedu.net/mirrors/centos.org/$releasever/os/$basearch/
- http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/
- http://ftp.hostrino.com/pub/centos/
- gpgcheck=1
- gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
- #packages used/produced in the build but not released
- [addons]
- name=CentOS-$releasever - Addons
- baseurl=http://mirror.be10.com/centos/$releasever/os/$basearch/
- http://ftp.iasi.roedu.net/mirrors/centos.org/$releasever/os/$basearch/
- http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/
- http://ftp.hostrino.com/pub/centos/
- gpgcheck=1
- gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
- #additional packages that may be useful
- [extras]
- name=CentOS-$releasever - Extras
- baseurl=http://mirror.be10.com/centos/$releasever/os/$basearch/
- http://ftp.iasi.roedu.net/mirrors/centos.org/$releasever/os/$basearch/
- http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/
- http://ftp.hostrino.com/pub/centos/
- gpgcheck=1
- gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
- #additional packages that extend functionality of existing packages
- [centosplus]
- name=CentOS-$releasever - Plus
- baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
- gpgcheck=1
- enabled=0
- gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
- #contrib - packages by Centos Users
- [contrib]
- name=CentOS-$releasever - Contrib
- baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
- gpgcheck=1
- enabled=0
- gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
=======================================================================
或者直接下载SOHU 163 开源镜像服务器的配置文件到当前目录:
或者直接下载163 SOHU 镜像服务区
====================================
wget http://mirrors.163.com/.help/CentOS-Base-163.repo
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
yum makecache
yum update
【原创文章】更改windows2003默认的用户名,及其修改用户密码(图解)
今天有个朋友问我修改2003服务器系统默认的administrator帐号的方法,现在写出来和大家分享下。
一种方法是按"开始"--"运行" 输入: gpedit.msc
然后在"计算机配置"--"windows设置"--"安全设置"--"本地策略"--"安全选项" 那里
找到最下面的"帐号:重命名系统管理员帐号"那里改用户名.在"交互式登陆:不显示上一次的用户名"设置为"启用".
或者可以打开“我的计算机”--“控制面板”---“用户帐户”--“本地用户和组”---“用户”--“administrator”--右键单击“administrator”--选择“重命名”----在出现的名称设置框中,设置新的管理员名称----输入新的用户名。
重新启动系统,就可生效@!
原来2003默认管理帐号:administartor 已经无法登入!
使用新修改后的帐号(liuxinxiu.com)和密码(liuxinxiu.com)进行登入!
=========================================================================
具体修改密码的方法如下:
重复输入2次新密码点击:“确定” 然后重新启动系统!就可生效!@
改服务器密码对安全还是很有必要的,要是服务器用默认帐号密码简单,用穷举法很容易破解管理员权限。
修改windows2003默认远程桌面端口号【文章】:http://liuxinxiu.com/3389
为linux添加ip或网卡的方法
ls ifcfg-eth0*
可以看到有
ifcfg-eth0
如果以前配过别的ip,可能会有
ifcfg-eth0:0
ifcfg-eth0:1
等等
如果没有,就编辑一个ifcfg-eth0:0的文件,如果有,就在最大数上加一。文件内容:
IPADDR=”192.168.0.10″
NETMASK=”"
IPADDR就是要加的新的IP,如果有多个连续IP,可以写成:
IPADDR=”192.168.0.10-11″
NETMASK=”"
文件编辑完之后,运行:
/etc/init.d/network reload
用ifconfig看新的IP是否已经加上。
如果是为第二块网卡配IP,在/etc/sysconfig/network-scripts目录下编辑一个ifcfg-eth1的文件:
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
修改一下IPADDR,NETMASK和GATEWAY的参数。
运行:
/etc/init.d/network reload
用ifconfig看新的IP是否已经加上。
高级SSH安全技巧【转载】
在这篇文章中我将为你展示一些简单的技巧,帮助你提高你的SSH服务的安全。SSH服务器配置文件是/etc/ssh/sshd_conf。在你对它进行每一次改动后都需要重新启动SSH服务,以便让改动生效。
1、修改SSH监听端口
默认情况下,SSH监听连接端口22,攻击者使用端口扫描软件就可以看到主机是否运行有SSH服务,将SSH端口修改为大于1024的端口是一个明智的选择,因为大多数端口扫描软件(包括nmap)默认情况都不扫描高位端口。
打开/etc/ssh/sshd_config文件并查找下面这样的行:
Port 22
修改端口号并重新启动SSH服务:
/etc/init.d/ssh restart
2、仅允许SSH协议版本2
有两个SSH协议版本,仅使用SSH协议版本2会更安全,SSH协议版本1有安全问题,包括中间人攻击(man-in-the-middle)和注入(insertion)攻击。编辑/etc/ssh/sshd_config文件并查找下面这样的行:
Protocol 2,1
修改为
Protocol 2
3、仅允许特定的用户通过SSH登陆
你不一个允许root用户通过SSH登陆,因为这是一个巨大的不必要的安全风险,如果一个攻击者获得root权限登陆到你的系统,相对他获得一个普通用户权限能造成更大的破坏,配置SSH服务器不允许root用户通过SSH登陆,查找下面这样的行:
PermitRootLogin yes
将yes修改为no,然后重新启动服务。现在,如果你想使用特权用户,你可以先以其他用户登陆,然后再转换到root。
创建一个没有实际权限的虚拟用户是一个明智的选择,用这个用户登陆SSH,即使这个用户遭到破解也不会引起什么破坏,当创建这个用户时,确保它属于wheel组,因为那样你才能切换到特权用户。
如果你想让一列用户都能通过SSH登陆,你可以在sshd_config文件中指定它们,例如:我想让用户anze、dasa、kimy能通过SSH登陆,在sshd_config文件的末尾我添加下面这样一行:
AllowUsers anze dasa kimy
4、创建一个自定义SSH banner
如果你想让任何连接到你SSH服务的用户看到一条特殊的消息,你可以创建一个自定义SSH banner,只需要创建一个文本文件(我的是/etc/ssh-banner.txt),然后输入你想的任何文本消息,如:
*This is a private SSH service. You are not supposed to be here.*
*Please leave immediately. *
编辑好后,保存这个文件,在sshd_config中查找下面这样一行:
#Banner /etc/issue.net
取消掉注释【将#去掉】,然后将路径修改为你自定义的SSH banner文本文件。
5、使用DSA公钥认证
代替使用用户名和密码对SSH进行认证,你可以使用DSA公钥进行认证,注意你既可以使用登陆名,也可以使用DSA公钥进行认证,使用DSA公钥认证可以预防你的系统遭受字典攻击,因为你不需要用登陆名和密码登陆SSH服务,而是需要一对DSA密钥,一个公钥和一个私钥,在你本地机器上保存私钥,将公钥放在服务器上。当你发起一个SSH登陆会话时,服务器检查密钥,如果它们匹配的话,你就可以直接进入shell,如果它们不匹配,你的连接将被自动断开。
在本例中的私人计算机叫‘工作站1’,服务器叫‘服务器1’。在两个机器上我有相同的home目录,如果服务器和客户端上的home目录不同将不能工作,实现,你需要在你的私人计算机上创建一对密钥,命令:~$ ssh-keygen -t dsa,它将要求你为私钥输入一个密语,但是你可以保留为空,因为这不是一个推荐的做法。密钥对创建好了:你的私钥在~/.ssh/id_dsa,你的公钥在.ssh/id_dsa.pub。
接下来,拷贝~/.ssh/id_dsa.pub中的内容到‘服务器1’的~/.ssh/authorized_keys文件中,~/.ssh/id_dsa.pub的内容看起来象下面这样:
~$ cat .ssh/id_dsa.pub
ssh-dss AAAAB3NzaC1kc3MAAACBAM7K7vkK5C90RsvOhiHDUROvYbNgr7YEqtrdfFCUVwMWc
JYDusNGAIC0oZkBWLnmDu+y6ZOjNPOTtPnpEX0kRoH79maX8NZbBD4aUV91lbG7z604ZTdr
LZVSFhCI/Fm4yROHGe0FO7FV4lGCUIlqa55+QP9Vvco7qyBdIpDuNV0LAAAAFQC/9ILjqII7n
M7aKxIBPDrQwKNyPQAAAIEAq+OJC8+OYIOeXcW8qcB6LDIBXJV0UT0rrUtFVo1BN39cAWz5pu
Fe7eplmr6t7Ljl7JdkfEA5De0k3WDs
9/rD1tJ6UfqSRc2qPzbn0p0j89LPIjdMMSISQqaKO4m2fO2VJcgCWvsghIoD0AMRC7ngIe6bta
NIhBbqri10RGL5gh4AAACAJj1/rV7iktOYuVyqV3BAz3JHoaf+H/dUDtX+wuTuJpl+tfDf61rb
WOqrARuHFRF0Tu/Rx4oOZzadLQovafqrDnU/No0Zge+WVXdd4ol1YmUlRkqp8vc20ws5mLVP
34fST1amc0YNeBp28EQi0xPEFUD0IXzZtXtHVLziA1/NuzY= anze@station1.example.com
如果文件~/.ssh/authorized_keys已经存在,请将上面的内容附加在该文件的后面。剩下的只是给该文件设置正确的权限了:
~$ chmod 600 ~/.ssh/authorized_keys
现在,配置sshd_config文件使用DSA密钥认证,确保你将下面三行前的注释去掉了:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
重新启动服务,如果你的配置没有错误,现在你就可以SSH到你的服务器,而且无需任何交互动作(如输入用户名和密码)就直接进入你的home目录了。
如果你只想使用DSA认证登陆,确保你在sshd_config中取消掉注释并修改PasswordAuthentication这一行,将yes改为no:
PasswordAuthentication no
任何在服务器上没有公钥的人试图连接到你的SSH服务,它就被拒绝,给它显示如下一个拒绝提示信息:
Permission denied (publickey).
6、使用TCP wrappers仅允许指定的主机连接
如果你想在你的网络上只允许特定的主机才能连接到你的SSH服务,但又不想使用或弄乱你的iptables配置,那这个方法非常有用,你可以使用TCP wrappers。在这个例子中对sshd进行TCP包裹,我将创建一条规则允许本地子网192.168.1.0/24和远程193.180.177.13的自己连接到我的SSH服务。
默认情况下,TCP wrappers首先在/etc/hosts.deny中查找看主机是否允许访问该服务,接下来,TCP wrappers查找/etc/hosts.allow看是否有规则允许该主机服务指定的服务,我将在/etc/hosts.deny中创建一个规则,如下:
sshd: ALL
这意味着默认情况下所有主机被拒绝访问SSH服务,这是应该的,否则所有主机都能访问SSH服务,因为TCP wrappers首先在hosts.deny中查找,如果这里没有关于阻止SSH服务的规则,任何主机都可以连接。
接下来,在/etc/hosts.allow中创建一个规则允许指定的主机使用SSH服务:
sshd: 192.168.1.0/24 193.180.177.13
现在,只有来自192.168.1.0/24和193.180.177.13的主机能够访问SSH服务了,其他主机在连接时还没有到登陆提示符时就被断开了,并收到错误提示,如下:
ssh_exchange_identification: Connection closed by remote host
=====================================================
方法1、iptables。
iptables -A INPUT -s 192.168.1.100 --destination-port 22 -j ACCEPT
iptables -A INPUT --destination 22 -j DROP
方法2:
vi /etc/ssh/sshd_config
添加一行:
allowusers root@192.168.1.100
注:root为你用来登入服务器的用户名。
==========================================================
7、使用iptables允许特定的主机连接
作为TCP wrappers的一个代替品,你可以使用iptables来限制SSH访问(但可以同时使用这个两个的),这里有一个简单的例子,指出了如何允许一个特定的主机连接到你的SSH服务:
~# iptables -A INPUT -p tcp -m state --state NEW --source 193.180.177.13 --dport 22 -j ACCEPT
并确保没有其他的主机可以访问SSH服务:
~# iptables -A INPUT -p tcp --dport 22 -j DROP
保存你的新规则,你的任务就完成了,规则是立即生效的
8、SSH时间锁定技巧
你可以使用不同的iptables参数来限制到SSH服务的连接,让其在一个特定的时间范围内可以连接,其他时间不能连接。你可以在下面的任何例子中使用/second、/minute、/hour或/day开关。
第一个例子,如果一个用户输入了错误的密码,锁定一分钟内不允许在访问SSH服务,这样每个用户在一分钟内只能尝试一次登陆:
~# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
~# iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -j DROP
第二个例子,设置iptables只允许主机193.180.177.13连接到SSH服务,在尝试三次失败登陆后,iptables允许该主机每分钟尝试一次登陆:
~# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT
~# iptables -A INPUT -p tcp -s 193.180.177.13 -m state --syn --state NEW --dport 22 -j DROP
9、结论
这些技巧都不是很难掌握,但是它们对于保护你的SSH服务却是很强劲的手段,花一点代价换来的是睡一个好觉。