로컬 네트워크로 제한되도록 SSH를 설정하려면 어떻게해야합니까?


33

11.10을 실행하는 새 랩톱을 SSH를 사용하여 라우터를 통해 8.04를 실행하는 이전 랩톱에 연결하려고합니다.

이 질문은 우분투 포럼에서 묻고 대답합니다.

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

나는 여기에 더 명확한 대답을하는 것이 도움이 될 것이라고 생각했습니다.

참고 : Firestarter를 사용하여 방화벽에 SSH 포트를 연결하고 열려고하는 랩톱에 openssh-server를 먼저 설치해야했습니다.


스레드에 대한 slooow의 답변에 대해 "결정적"이 아닌 것이 무엇인지 알려주십시오. 그렇지 않으면 귀하의 질문이 모호한 것 같습니다.
— d_inevitable

@d_inevitable 하나는 답이 아니며 올바른 것으로 표시되지 않습니다. 제가 선택한 것인데이 질문을 마이그레이션하는 것이 도움이 될 것입니다. 또한 두 로컬 시스템간에 SSH를 구성하는 데 대한 일반적인 지침 또는 유용한 링크를 포함시키는 데 도움이 될 수 있습니다.
— klenwell

답변:


46

여러 가지 방법으로 ssh 서버에 대한 액세스를 제한 할 수 있습니다.

가장 중요한 IMO는 ssh 키를 사용하고 비밀번호 인증을 비활성화하는 것입니다.

자세한 내용은 다음 위키 페이지를 참조하십시오

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 주소는 인터넷을 통해 라우팅 할 수 없습니다.

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를 참조하십시오 .

ufw

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 주소로 사용하며,이 경우 10.0.0.0-10 대신 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

1
iptables에서 DROP을 사용하지 마십시오 -chiark.greenend.org.uk/~peterb/network/drop-vs-reject
— Panther

이 페이지에는 DROP over REJECT를 사용하는 가능한 이유로 스푸핑 된 IP가 언급되어 있지 않습니다. Sec.SE에 대한이 답변은 왜 실제로 관련이 없는지 설명합니다 (소스 패킷이 반환 된 패킷보다 큽니다).
— Lekensteyn

@Lekensteyn-해당 링크에서 스푸핑 된 IP에 대한 토론을 보지 못했습니다. 제안한 바와 같이 DDoS와 스푸핑 된 IP는이 논의를 넘어서며 DROP이 REJECT보다 우수하다고 확신하지는 않습니다. DDos는 복잡하며 DDos의 원인에 대한 정보가 없으면 방어 할 수 없습니다. 예를 들어, WP가 DDoS로 사용되는 것을 보았고 문제를 해결하는 것이 WP의 올바른 구성에 있으며 iptables와 거의 관련이 없습니다.
— Panther

ListenAddress가장 단순하고 가장 우아한 솔루션 인 것 같습니다
— code_monk

1

ssh (보안 셸)는 데이터를 안전하게 액세스하고 전송하는 데 사용됩니다 (RSA_KEYS 쌍 사용). ssh를 사용하여 두 가지 방법으로 데이터에 액세스 할 수 있습니다. 1. 명령 행 2. 파일 브라우저 사용

커맨드 라인 :이를 위해 아무것도 설치할 필요가 없습니다. 첫 번째 작업은 다른 컴퓨터에 로그인하는 것입니다.

ssh other_computer_username@other_computer_ip

이 명령은 다른 컴퓨터의 암호 (특정 사용자 이름의 경우) 인 암호를 묻습니다. 다른 컴퓨터의 셸에 로그인했습니다. 이 터미널은 컴퓨터 쉘 터미널과 같다고 생각하십시오. 당신은 당신의 컴퓨터에서 할 수있는 다른 컴퓨터에 쉘을 사용하여 모든 것을 할 수 있습니다

파일 브라우저 : openssh-server를 설치해야합니다

sudo apt-get install openssh-server

로그인하려면 파일-> connectToServer로 이동하십시오.

여기에 이미지 설명을 입력하십시오


커맨드 라인 방향은 내가 시도한 첫 번째 것입니다. LAN IP에서 다른 컴퓨터를 핑할 수있었습니다. 그러나 SSH를 시도하면 중단됩니다. 따라서 먼저 SSH 액세스를 허용하도록 다른 컴퓨터를 구성해야한다고 가정합니다.
— klenwell

라우터가 22 포트 또는 ssh를 차단하지 않도록하십시오
— shantanu

감사. 나는 당신이 경험에서 언급 한 모든 것을 이미 알고 있었지만, 다른 사람으로부터 간단하고 구조화 된 것을 듣는 것이 매우 쉬웠습니다.
— lakesare
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.