第一页 上页 22 23 24 25 26 27 28 29 30 31 下页 最后页 [ 显示模式: 摘要 | 列表 ]

其实一条简单的指令就可以实现不破坏硬盘数据把FAT32转为NTFS分区。 点击屏幕左下角“开始”,找到运行,在其中输入:cmd,确定,打开“命令提示符”;在命令提示符下输入:

convert X:/FS:NTFS(其中X是盘符)。

执行后,重新启动电脑,进入系统以后,在查看磁盘属性就已经是NTFS格式了。

转载请标明出处:http://liuxinxiu.com/

本次教程使用的是: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-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 \\文件档案系统檢查


# mount -u / \\挂载 /


# mount -t ufs -a \\挂载所有文件档案

接下来开始重新设置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 系统继续启动,就可以了.
------------------------------------------------------------------------------------------------------

    很多时候,服务不是被用户流量击垮,而是被大量的对你没有任何贡献的盗链击倒,所以作为一个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;
        }


# 限制 /icons_rar/ 目录下:

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的线程而已。

先说到这里,以后再继续补充。

 

今日朋友买一北京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 就会选择国内搜狐开源镜像站!@

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

将yum的目标服务器更改为中国大陆服务器镜像

修改/etc/yum.repos.d/CentOS-Base.repo,将镜象站点地址改为在中国的镜象站点地址。不然我们通过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
 
=============================================================
        
  1. # CentOS-Base.repo
  2.     
  3. #
  4.     
  5. # This file uses a new mirrorlist system developed by Lance Davis for CentOS.
  6.     
  7. # The mirror system uses the connecting IP address of the client and the
  8.     
  9. # update status of each mirror to pick mirrors that are updated to and
  10.     
  11. # geographically close to the client. You should use this for CentOS updates
  12.     
  13. # unless you are manually picking other mirrors.
  14.     
  15. #
  16.     
  17. # If the mirrorlist= does not work for you, as a fall back you can try the
  18.     
  19. # remarked out baseurl= line instead.
  20.     
  21. #
  22.     
  23. #
  24.     
  25.  
  26.     
  27. [base]
  28.     
  29. name=CentOS-$releasever - Base
  30.     
  31. baseurl=http://mirror.be10.com/centos/$releasever/os/$basearch/
  32.     
  33. http://ftp.iasi.roedu.net/mirrors/centos.org/$releasever/os/$basearch/
  34.     
  35. http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/
  36.     
  37. http://ftp.hostrino.com/pub/centos/
  38.     
  39. gpgcheck=1
  40.     
  41. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
  42.     
  43. #released updates
  44.     
  45. [update]
  46.     
  47. name=CentOS-$releasever - Updates
  48.     
  49. baseurl=http://mirror.be10.com/centos/$releasever/os/$basearch/
  50.     
  51. http://ftp.iasi.roedu.net/mirrors/centos.org/$releasever/os/$basearch/
  52.     
  53. http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/
  54.     
  55. http://ftp.hostrino.com/pub/centos/
  56.     
  57. gpgcheck=1
  58.     
  59. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
  60.     
  61. #packages used/produced in the build but not released
  62.     
  63. [addons]
  64.     
  65. name=CentOS-$releasever - Addons
  66.     
  67. baseurl=http://mirror.be10.com/centos/$releasever/os/$basearch/
  68.     
  69. http://ftp.iasi.roedu.net/mirrors/centos.org/$releasever/os/$basearch/
  70.     
  71. http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/
  72.     
  73. http://ftp.hostrino.com/pub/centos/
  74.     
  75. gpgcheck=1
  76.     
  77. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
  78.     
  79. #additional packages that may be useful
  80.     
  81. [extras]
  82.     
  83. name=CentOS-$releasever - Extras
  84.     
  85. baseurl=http://mirror.be10.com/centos/$releasever/os/$basearch/
  86.     
  87. http://ftp.iasi.roedu.net/mirrors/centos.org/$releasever/os/$basearch/
  88.     
  89. http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/
  90.     
  91. http://ftp.hostrino.com/pub/centos/
  92.     
  93. gpgcheck=1
  94.     
  95. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
  96.     
  97. #additional packages that extend functionality of existing packages
  98.     
  99. [centosplus]
  100.     
  101. name=CentOS-$releasever - Plus
  102.     
  103. baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
  104.     
  105. gpgcheck=1
  106.     
  107. enabled=0
  108.     
  109. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
  110.     
  111. #contrib - packages by Centos Users
  112.     
  113. [contrib]
  114.     
  115. name=CentOS-$releasever - Contrib
  116.     
  117. baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
  118.     
  119. gpgcheck=1
  120.     
  121. enabled=0
  122.     
  123. 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

 

今天有个朋友问我修改2003服务器系统默认的administrator帐号的方法,现在写出来和大家分享下。
一种方法是按"开始"--"运行" 输入: gpedit.msc
然后在"计算机配置"--"windows设置"--"安全设置"--"本地策略"--"安全选项" 那里
找到最下面的"帐号:重命名系统管理员帐号"那里改用户名.在"交互式登陆:不显示上一次的用户名"设置为"启用".

或者可以打开“我的计算机”--“控制面板”---“用户帐户”--“本地用户和组”---“用户”--“administrator”--右键单击“administrator”--选择“重命名”----在出现的名称设置框中,设置新的管理员名称----输入新的用户名。

重新启动系统,就可生效@!

原来2003默认管理帐号:administartor 已经无法登入!

使用新修改后的帐号(liuxinxiu.com)和密码(liuxinxiu.com)进行登入!

=========================================================================

具体修改密码的方法如下:

重复输入2次新密码点击:“确定” 然后重新启动系统!就可生效!@


改服务器密码对安全还是很有必要的,要是服务器用默认帐号密码简单,用穷举法很容易破解管理员权限。

修改windows2003默认远程桌面端口号【文章】:http://liuxinxiu.com/3389

为linux添加ip或网卡的方法

[不指定 2010/10/21 17:38 | by 刘新修 ]
linux 加ip的方法:  cd /etc/sysconfig/network-scripts
  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安全技巧【转载】

[不指定 2010/10/18 16:32 | by 刘新修 ]

在这篇文章中我将为你展示一些简单的技巧,帮助你提高你的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服务却是很强劲的手段,花一点代价换来的是睡一个好觉。

第一页 上页 22 23 24 25 26 27 28 29 30 31 下页 最后页 [ 显示模式: 摘要 | 列表 ]