使用dropbear做ssh转发服务

dropbear是个轻量级sshd服务器,比openssh占用的内存小得多,如果你需要并发开很多ssh连接,dropbear是个不错的选择。不过dropbear在forward大量连接的时候貌似没有openssh稳定。下面以配置一个转发用户为例说明如何使用dropbear。

  1. 下载安装dropbear

    wget https://matt.ucc.asn.au/dropbear/dropbear-2013.56.tar.bz2
    tar xvf dropbear-2013.56.tar.bz2
    cd dropbear-2013.56
    ./configure
    make
    make install
    

    如果需要修改默认参数,例如默认监听的端口、默认的密钥文件、是否启用X11 Forwarding等等,可以在make之前修改options.h文件。如果make的时候提示缺少zlib,可以用以下命令安装

    apt-get install ^zlib* #debian
    yum install zlib* #redhat
    
  2. 配置dropbear
    sshd服务器需要先配置公钥才能使用,可以只配置dss或rsa中的一种,这样跟客户端协商的时候只使用一种加密方式:

    mkdir /etc/dropbear
    /usr/local/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
    /usr/local/bin/dropbearkey -t rsa -s 4096 -f /etc/dropbear/dropbear_rsa_host_key
    

    配置好之后就可以直接启动了

    /usr/local/sbin/dropbear -p 222  #在222端口监听
    

    如果启动有异常,可以用/usr/local/sbin/dropbear -E -F检查。

  3. 配置一个专门用于转发的用户

    useradd fwd -s /usr/sbin/nologin  #debian
    useradd fwd -s /sbin/nologin  #redhat
    passwd fwd   #设置用户密码
    

    检查/etc/shells中有没有/usr/sbin/nologin,如果没有需要加上:

    cat /etc/shells|grep nologin  #检查输出是否有nologin
    echo "/usr/sbin/nologin" >> /etc/shells #追加nologin到shells