얼마 전 로컬 Wi-Fi 네트워크에서 vino 서버가 실행 중이었고 vino 서버는 인터넷의 이상한 IP가 연결을 시도하고 있음을 나타내는 메시지를 stdout에 작성했습니다. 나는 알고 싶다,“내 서버가 공격을 받았나요?”. 귀하가 통제할 수 없는 로컬, 비로컬, 공용 및 사설 네트워크의 서버를 어떻게 보호합니까?
다음은 가능한 아이디어입니까? 서버 호스트에서 실행 중인 다른 프로세스에만 서버에 액세스할 수 있도록 하고 sshd
서버 호스트에서 전달 액세스를 허용하는 방법이 있습니까? (이 아이디어는 다음에서 나온 것 같습니다.https://help.ubuntu.com/community/VNC#SSH_port-forwarding. 나는 그것이 어떻게 수행되었는지 잘 이해하지 못합니다. 설명해 주실 수 있기를 바랍니다. )
이렇게 하면 다른 컴퓨터가 SSH 및 포트 전달/터널링을 통해서만 서버에 연결할 수 있습니까?
이 접근 방식을 사용하면 동일한 로컬 네트워크에 있는 컴퓨터에만 서버에 액세스할 수 있습니까? 아니면 로컬 네트워크 외부에 있는 컴퓨터에서도 액세스할 수 있습니까?
로컬 네트워크의 다른 모든 컴퓨터가 서버에 액세스할 수 있도록 하는 것보다 더 안전하게 서버에 액세스할 수 있는 방법이 있습니까? 그렇다면 SSH가 일반적으로 다른 프로토콜보다 더 안전하기 때문에 더 안전합니까?(예를 들어 vino에서 사용하는 프로토콜?)
감사해요.
답변1
IP 테이블이 해당 작업을 수행합니다. 기본적으로 방화벽입니다.
iptables는 대부분의 Linux 시스템에 기본적으로 설치됩니다. 하지만 수동으로 설치할 수도 있습니다.
apt-get install iptabels
구성할 수 있으며,포트 및 서비스에 대한 로컬 호스트 액세스만 허용, 다음 조치를 구현하여:(이렇게 하면 프로세스가 실행 중인 호스트에서만 프로세스를 사용할 수 있습니다.)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
여기에서 다른 포트 및 서비스에 대한 제한을 추가할 수 있습니다. 허용하려는 서비스 및 포트와 아직 사용되지 않는 이 컴퓨터에서 인터넷에 연결해야 하는 방법을 찾고 있는 경우 iptables -P OUTPUT DROP
마지막에 두십시오. 다음은 배울 수 있는 좋은 웹사이트입니다:
부팅 사이에 방화벽을 저장하려면 또는 를 설치 iptables-persistent
한 후 실행하세요 .iptables-persistent save
netfilter-persistent save
여기에 설명된 첫 번째 프로세스를 수행하면 컴퓨터만 자체적으로 액세스할 수 있게 됩니다. SSH 전용 방법은 라우터 포트에서 외부 컴퓨터로 SSH 포트를 전달하지 않는 한 로컬 네트워크에서 컴퓨터로의 SSH 연결만 허용합니다. 그러면 필요한 것은 diydns 또는 no-ip 유형 서비스이거나 공용 IP를 지속적으로 아는 것뿐입니다. 외부에서 접근하려면.
다음에 설명된 작업을 수행합니다.SSH만 허용그런 다음 더 안전한 SSH 터널을 통해 포트를 서비스로 전달합니다. SSH 연결만 허용합니다. 그러나 비밀번호 대신 키 기반 인증을 사용하는 것이 좋습니다.