如何设置SSH,使其仅限于本地网络?


33

我正在尝试使用SSH通过路由器将运行11.10的新笔记本电脑链接到运行8.04的旧笔记本电脑。

在ubuntuforums上询问并回答了这个问题:

http://ubuntuforums.org/showthread.php?t=1648965

我认为在这里有一个更明确的答案会有所帮助。

注意:我需要先在尝试连接的便携式计算机上安装openssh-server并使用firestarter在防火墙中打开SSH端口。


您能告诉我们在该线程上slooow的答案还不够“确定”吗?否则,您的问题似乎模棱两可。
d_inevitable 2012年

@d_inevitable对于一个答案,它不是唯一的答案,也没有以其他方式表示为正确答案。这是我会选择的那个,但这就是为什么我认为迁移这个问题会很有用。在两个本地计算机之间配置SSH时,可能还包括一些一般性的指导或一个有用的链接。
klenwell 2012年

Answers:


46

您可以通过多种方式限制对ssh服务器的访问。

IMO最重要的是使用ssh密钥并禁用密码身份验证。

有关详细信息,请参见以下Wiki页面。

https://help.ubuntu.com/community/SSH/OpenSSH/Keys

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#Disable_Password_Authentication

您可以通过多种方式限制对特定子网的访问。我将假设您的ssh服务器位于IP地址为192.168.0.10的子网192.168.0.0/16上,请相应地进行调整;)

路由器

一道防线是使用路由器。确保禁用UPnP,并且不允许端口转发。

SSH配置

您可以在中设置几个选项/etc/ssh/sshd_config。一个是监听地址。如果您在子网上设置了监听地址。私有IP地址无法通过Internet路由。

http://compnetworking.about.com/od/workingwithipaddresses/f/privateipaddr.htm

ListenAddress 192.168.0.10

您也可以使用AllowUsers

AllowUsers you@192.168.0.0/16

有点相关,您也可以更改端口

Port 1234

参见http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html

TCP包装器

如论坛文章所述,您可以使用TCP Wrapper。TCP包装器使用2个文件,/etc/hosts.allow并且/etc/hosts.deny

编辑/etc/hosts.allow并添加您的子网

sshd : 192.168.0.

编辑/etc/hosts.deny,然后全部拒绝

ALL : ALL

另请参阅http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/

防火墙功能

最后,您可以对服务器进行防火墙。您可以使用iptables,ufw或gufw。

iptables

sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

请不要在iptables中使用DROP,请参阅http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject

友联

sudo ufw allow from 192.168.0.0/16 to any port 22

gufw具有图形界面

古夫

参见 https://help.ubuntu.com/community/UFW

https://help.ubuntu.com/community/IptablesHowTo


某些网络使用10.0.0.0作为IP地址,在这种情况下,将192.168.0.0/24替换为10.0.0.0/8以允许范围10.0.0.0-10.255.255.255。如果只允许单个IP,请使用192.168.1.2/32之类的名称。可以在[ serverfault.com/q/49765/51929](子网划分是如何工作的)上找到非常详细的说明
Lekensteyn 2012年

1
请不要在iptables中使用DROP-
Panther

该页面未提及使用欺骗性IP作为使用DROP over REJECT的可能原因。在Sec.SE上的此答案解释了为什么它实际上并没有相关性(源数据包大于返回的数据包)。
Lekensteyn 2014年

@Lekensteyn-在该链接中没有看到有关欺骗性IP的讨论。正如您所建议的那样,DDoS和欺骗性IP不在本讨论范围之内,而且我不认为DROP在很多方面都优于REJECT。DDos很复杂,并且没有有关DDos原因的信息,因此无法防御。例如,我已经看到WP用作DDoS,并且解决问题在于WP的正确配置,而与iptables几乎没有关系。

ListenAddress似乎是最简单,最优雅的解决方案
code_monk '16

1

ssh(安全外壳)用于安全地访问和传输数据(使用RSA_KEYS对)。您可以通过两种方式使用ssh访问数据:1.命令行2.使用文件浏览器

命令行:为此,您不需要安装任何东西。第一项任务是登录其他计算机。

ssh other_computer_username@other_computer_ip

该命令将要求输入另一台计算机的密码作为密码(用于特定的用户名)。您刚刚登录到其他计算机的外壳。认为此终端就像您的计算机外壳终端。您可以使用Shell对其他计算机执行所有操作,而您可以在计算机中执行其他操作

文件浏览器:您需要安装openssh-server

sudo apt-get install openssh-server

要登录,请转到文件-> connectToServer

在此处输入图片说明


命令行方向是我尝试的第一件事。我能够通过其LAN IP对另一台计算机执行ping操作。但是,当我尝试使用SSH时,它会挂起。因此,我假设我必须将其他计算机配置为首先允许SSH访问。
klenwell 2012年

确保您的路由器不会阻止22端口或ssh
shantanu 2012年

谢谢。我已经从经验中了解了您提到的所有内容,但是很容易从别人那里听到它的结构化提示。
lakesare
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.