Linux环境中远程开启ssh端口和更改ssh用户根目录

  远程密令临时开启ssh端口

  nux服务器,我们一般是通过ssh通道远程管理,这就需要我们开启ssh端口,如22。但开启端口有被暴力破解的风险,你会说可以设置复杂的密码或使用证书避免。就算破解不了密码,但openssh也可能会有漏洞,你会说可以更改ssh端口,但还是有可能被扫描出来。还有一种选择,我们可以只允许指定IP访问ssh,通过vpn登录管理服务器,但局限很明显,万一紧急情况vpn登录不上去了怎么办。下面给出一种个人觉得比较满意的解决方案,即使用iptables的recent模块,通过密令临时开启ssh端口。当然,密令需要保管好,防止外泄。

  1、iptables规则设定

  #指定78字节的icmp数据包(包含IP头部20字节,ICMP头部8字节)通过被加入sshopen列表。

  代码如下:

  iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -m recent --set --name sshopen --rsource -j ACCEPT

  #检查sshopen列表是否存在你的来源IP,如果存在,即从第一次使用密令开始15秒钟内开启ssh端口22,超过15秒端口自动关闭,不再允许新连接,已连接的不会断开。

  代码如下:

  iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT

  2、临时开启ssh端口密令

  linux下:

  代码如下:

  ping -s 50 host

  3、我目前使用的iptables规则

  代码如下:

  -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

  -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

  -A INPUT -p tcp -m tcp --dport 123 -j ACCEPT

  -A INPUT -p icmp -m icmp --icmp-type 8 -m length --length 50 -m recent --set --name sshopen --rsource -j ACCEPT

  -A INPUT -p tcp -m tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT

  -A INPUT -i lo -j ACCEPT

  -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

  -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT

  -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  -A OUTPUT -o lo -j ACCEPT

  -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT

  -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT

  -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

  -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT

  使用jailkit chroot更改ssh用户根目录

  安装jailkit

  代码如下:

  cd /tmp

  wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz

  tar xzf jailkit-2.16.tar.gz

  cd jailkit-2.16

  ./configure

  make

  make install

  cp extra/jailkit /etc/init.d/jailkit

  chmod u+x /etc/init.d/jailkit

  chkconfig jailkit on

  初始化chroot环境

  代码如下:

  jk_init -v -j /home/chroot sftp scp jk_lsh netutils extendedshell

  service jailkit start

  代码如下:

  useradd www. -m

  echo www.:password | chpasswd

  chroot用户

  代码如下:

  jk_jailuser -m -n -j /home/chroot --shell=/bin/bash www.

(0)

相关推荐

  • Linux中SSH端口号更改方法介绍

    SSH端口默认是22了,我们为了服务器的安全一般会把SSH端口22修改成其它的端口好了,下文小编来各位整理一篇SSH端口修改教程供各位参考. vps一到手,第一件事就是更改ssh端口,使用一个不容易被 ...

  • Linux配置防火墙 开启80端口.3306端口的方法

    vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火 ...

  • Linux中如何开启8080端口供外界访问

    装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理.于是请教大神,在费一番周折后,总结步骤如下: 操作方法 01 修改文件/etc/sysconfig/iptables [root@bog ...

  • 如何在Linux环境下测试端口的连通性?

    在工作中有很多时候都在去测试一下服务器端口是否能连通是否正常的情况,下面小编与大家分享一下在Linux环境下如何测试端口的连通性,分别测试TCP端口与UDP端口,希望可以给大家带来帮助,谢谢. 操作方 ...

  • Linux下的SSH端口转发配置方法

    通常情况下两个不同的网络之间总会开放某一些特定的端口用于通讯使用,而SSH所使用的22端口通常就在开放之列。基于SSH的端口转发就是利用SSH作为中间的代理,达到绕过两个网络之间的限制,顺利的进行任意 ...

  • Linux中如何修改SSH端口号免受黑客攻击

    通过ssh可管理Linux设备,但是Linux ssh如果没设置好,很容易被黑客攻击,那么要如何保证Linux ssh的安全呢?下面小编给大家介绍一种保护Linux ssh免受黑客攻击的方法,即修改S ...

  • 在Linux下的SSH端口转发的程序

    在Linux系统中的SSH端口转发,有很多种的转发操作,而且还是一种很好用的关于端口使用的程序,所以今天我们就来了解下关于SSH端口转发具体内容吧! 通常情况下两个不同的网络之间总会开放某一些特定的端 ...

  • Linux修改SSH端口和禁止Root远程登陆

    Linux修改ssh端口22 vi /etc/ssh/ssh_config vi /etc/ssh/sshd_config 然后修改为port 8888 以root身份service sshd res ...

  • linux修改ssh端口的二种方法

    平滑修改linux中的sshd端口 第一种: 1、假如要改SSH的默认端口(22),那么你只要修改: 复制代码 代码如下: /etc/ssh/sshd_config中Port 22 这里把22改成自己 ...