如何禁用公共SSH?

我想禁用公共访问ssh。 我如何仍然访问服务器,但阻止端口22? 我是否需要为openvpn创build另一个实例(这很好)? 有一个教程的地方基本上“隐藏”SSH后面的VPN?

根据你想要阻塞端口22的原因,将sshd从22端口移动到任何其他端口(如22222或12345)可能就足够了。这是通过添加一条线

Port 12345 

到/ etc / ssh / sshd_config并重新加载sshd config就好了

 /etc/init.d/ssh reload 

您可以有多个活动端口,只要在configuration文件中有多个这样的端口线。

TomTomTom

如果你的服务器有一个vpn连接,也许你可以设置你的ssh的服务器ListenAddress到本地的vpn端点,而不是默认的所有本地地址。

我有一个公共IP和块的Debian 8服务器,并打开访问时,我想使用knockd

 apt-get install -y knockd 

在configuration文件/etc/knockd.conf

 [options] UseSyslog [openSSH] sequence = 2009,8019,9099 seq_timeout = 20 command = /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 2000,1449,6712 seq_timeout = 20 command = /sbin/iptables -D INPUT -i eth0 -p tcp --dport 22 -j ACCEPT tcpflags = syn 

现在您需要使用/etc/init.d/knockd restart启动服务

要打开和closuresssh端口,我的电脑上有一个脚本:

打开

 #!/bin/bash PATH=$PATH:/usr/local/bin for i in 2009 8019 9099 do nmap -Pn -p ${i} --max-retries 0 myremoteserverip done 

 #!/bin/bash PATH=$PATH:/usr/local/bin for i in 2000 1449 6712 do nmap -Pn -p ${i} --max-retries 0 myremoteserverip done 

现在,最后一步是用iptables -P INPUT DROP阻止所有传入stream量

在这一点上,你可以尝试打开SSH端口,使用脚本,这样做,如果你有控制台进入你的服务器,如果你阻止了。

不知道你想做什么。

  1. 如果您只需要禁用ssh并连接到您的服务器,只需停止sshd并使用telnet或其他东西。

  2. 为了安全起见,vpn包裹了ssh通信,这意味着ssh不公开,除非vpn不安全。

你有连接的静态IP吗? 也许只是从那里允许SSH。 否则VPN也是一个选项。 我自己不允许密码authentication。 有我的4096位私人RSA密钥的人的风险是相当小的。

要更改SSH端口,可以更改/etc/init.d/sshd_config上的Port指令。 更改默认值22,然后重新启动sshd守护进程。

如果您的服务器上configuration了VPN服务,则可以使SSH仅侦听VPN接口。

编辑/ etc / ssh / sshd_config并添加此指令(假设服务器的VPN IP地址为102.168.10.1):

ListenAddress 192.168.10.1

重新启动ssh( service sshd restartservice ssh restart ,这取决于您的分配)和ssh将只能从VPN内部访问。