我想禁用公共访问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端口,使用脚本,这样做,如果你有控制台进入你的服务器,如果你阻止了。
不知道你想做什么。
如果您只需要禁用ssh并连接到您的服务器,只需停止sshd并使用telnet或其他东西。
为了安全起见,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 restart或service ssh restart ,这取决于您的分配)和ssh将只能从VPN内部访问。