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.jb51.net -m

  echo www.jb51.net:password | chpasswd

  chroot用户

  代码如下:

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

时间: 2024-08-31 12:10:50

Linux环境中远程开启ssh端口和更改ssh用户根目录的相关文章

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

 SSH端口默认是22了,我们为了服务器的安全一般会把SSH端口22修改成其它的端口好了,下文小编来各位整理一篇SSH端口修改教程供各位参考.   vps一到手,第一件事就是更改ssh端口,使用一个不容易被拆解的端口号,防止被黑. 更改端口号是通过修改SSH的配置文件实现的,登录ssh后,输入: vim /etc/ssh/sshd_config 向下找到#Port 22这段 进入vi插入模式,进行编辑 删除掉Port 22前面的#,然后下一行输入新的端口号如:Port 10000(这个你自己定,

oracle-linux环境下,用python怎么取得指定用户的环境变量

问题描述 linux环境下,用python怎么取得指定用户的环境变量 在linux环境下,例如当前用户是root,通过os.environ取到的是当前用户的环境变量. 当时我想去其他用户的环境变量,例如oracle用户,有什么办法? 谢谢 解决方案 这个需要你su先切换用户,然后再获取对应环境变量 解决方案二: 其他用户环境变量直接读配置文件获取得了.对应用户目录下 .bashrc . .bash_profile

linux中禁止root用户与ssh端口更改方法

首先修改配置文件 ssh端口更改方法 vi /etc/ssh/sshd_config 找到  #Port 22  这一句,这里是标识默认使用22端口,修改为如下: Port 22       不删除22号端口是因为未确定新的端口号正常使用 Port 888 然后保存退出 执行/etc/init.d/sshd restart     重启ssh服务 这样SSH端口将同时工作与22和800上. 现在编辑防火墙配置:vi /etc/sysconfig/iptables 启用800端口(复制1份22端口

Linux SSH 安全策略 更改 SSH 端口_Linux

默认的 SSH 端口是 22.强烈建议改成 10000 以上.这样别人扫描到端口的机率也大大下降.修改方法:# 编辑 /etc/ssh/ssh_config vim /etc/ssh/ssh_config   # 在 Host * 下 ,加入新的 Port 值.以 18439 为例:  Port 22      Port 18439        # 编辑 /etc/ssh/sshd_config (同上2图)           vim /etc/ssh/sshd_config  #加入新的 

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

  在Linux系统中的SSH端口转发,有很多种的转发操作,而且还是一种很好用的关于端口使用的程序,所以今天我们就来了解下关于SSH端口转发具体内容吧! 通常情况下两个不同的网络之间总会开放某一些特定的端口用于通讯使用,而SSH所使用的22端口通常就在开放之列.基于SSH的端口转发就是利用SSH作为中间的代理,达到绕过两个网络之间的限制,顺利的进行任意的端口的访问. 端口转发可以分为三种: 正向端口转发; 反向端口转发; 动态端口转发. 为了演示这三种端口转发方式的用法我们先假设存在有2个网域O

Linux中SSH端口修改与禁止Root远程登陆方法总结

操作系统:CentOS release 5.5 (Final) 编辑配置文件: #vi /etc/ssh/ssh_config Port 22 #加入新的 Port 值 Port 10124 编辑配置文件: vi /etc/ssh/sshd_config Port 22 #加入新的 Port 值 Port 10124 生产机器禁止ROOT远程SSH登录:     #vi /etc/ssh/sshd_config     把     PermitRootLogin yes     改为     P

Linux VPS安全设置之一 修改SSH端口(CentOS/Debian)_Linux

老左在之前的不少文章中已经分享过在centos或者在debian环境下安装lnmp和llsmp的教程,老左用人格担保肯定是可行的,因为我都是在实战操作后截图及写下来的文章.可以让VPS初学者手把手的学习如何在Linux VPS上安装系统及建立网站.老左第一次使用VPS不会安装环境,准备请一个网友安装,还准备收费50元,鉴于此我就自学. 我们在学会了VPS的安装和建站之后,肯定需要附带学习VPS的安全设置.因为VPS和主机不同,主机商可能会给我们备份,而且主机的安全性都有主机商承担.但是,如果现在

linux修改SSH端口与iptables防火墙配置

linux修改ssh端口22  代码如下 复制代码 vi /etc/ssh/ssh_config vi /etc/ssh/sshd_config 然后修改为port 8888 以root身份service sshd restart (redhat as3) 使用putty,端口8888 Linux下SSH默认的端口是22,为了安全考虑,现修改SSH的端口为1433,修改方法如下:  代码如下 复制代码 /usr/sbin/sshd -p 1433 首先修改配置文件  代码如下 复制代码 vi /

linux服务器重启后ssh端口总是密码错

问题描述 linux服务器重启后ssh端口总是密码错 putty通过ssh连接azure上的linux, 刚开始都是好的,但是在linux中用shutdown -r 0 重启后,再连上去首先提示"连接证书"改变了,然后就是登录总是说登录失败. 解决方案 找下服务商解决,另外可能需要排除一下是不是被黑了.: 解决方案二: 是不是重启后,进入其他用户了,证书是你当前用户吗 解决方案三: Hi, 我尝试了下你所描述的过程,在使用shutdown -r 0 并重启后还是能够成功的连接上虚拟机,