명령을 내리는 Linux에서 내 IP를 숨기는 방법 [닫기]

명령을 내리는 Linux에서 내 IP를 숨기는 방법 [닫기]

저는 Linux 시스템 관리자이고 로컬 네트워크의 모든 시스템에 로그인합니다. who 명령을 통해 내 IP가 표시되는 것을 원하지 않습니다. 예를 들어, 누군가가 다음을 입력한다면:

$ who

내 IP가 노출됐어요. who Linux 명령에서 내 IP를 숨길 수 있는 방법이 있습니까?

[편집자: chrips]

이는 개인 유틸리티 서버가 해킹당하는 것을 걱정하는 사람들에게 매우 중요합니다! 분명히 공격자가 벡터를 발견하지 못하도록 현재 홈 IP를 공격자로부터 숨기고 싶을 것입니다!

답변1

가장 간단하게는 utmp 로그 파일을 읽을 수 없게 만들 수 있습니다. 이것은 심지어utmp 매뉴얼 페이지:

다른 다양한 시스템과 달리 파일을 삭제하여 utmp 로깅을 비활성화할 수 있습니다.utmp는 항상 존재해야 합니다.리눅스에서. who(1)을 비활성화하려면 다음을 수행하십시오.아니요utmp가 세상이 되도록 하세요읽을 수 있는.

이와 같이:

sudo chmod go-r /var/log/wtmp /var/run/utmp
who        # shows nothing, not even an error!
sudo who   # still works for root
rudi     :0           2017-04-18 19:08 (console)

따라서 whoIP 주소를 건너뛰는 것이 아니라 완전히 비활성화됩니다.

또 다른 아이디어(아마도 약간 어리석은 일입니다.) IP를 숨기는 것은 SSH 서버가 localhost의 다른 포트(1234)에서만 수신하도록 하는 것일 수 있습니다. 그런 다음 "프록시"(socat, netcat)를 실행하여 public_ip:22에서 localhost:1234로 전달합니다.

  1. SSH 서버 구성 /etc/ssh/sshd_config를 변경합니다.

    포트 1234

  2. SSH 서버 시스템에서 에이전트를 실행합니다.

    socat TCP-LISTEN:22, 포크 TCP:localhost:1234

이제 모든 utmp 로그( who, last)에는 동일하고 쓸모 없는 로컬 호스트 IP가 표시됩니다.

노트아마도 사용자는 여전히 실제 연결을 볼 수 있을 것입니다 netstat. 사용자 공간 프록시 대신 들어오는 SSH 트래픽에 대해 NAT 및 MASQUERADING 규칙을 설정할 socat수도 있습니다 ( ). iptables또는 언제든지 추가 "ssh hop"을 사용하여 항상 동일한 IP에서 로그인할 수 있습니다. 이것은 독자들에게 연습문제로 남겨둔다. ;)

답변2

who유틸리티는 데이터베이스의 데이터를 구문 분석합니다 /var/run/utmp. login시스템에 로그인하면(다른 많은 유틸리티의 경우 참고자료 참조) 이 데이터베이스가 업데이트되고, 파일이 존재하는 경우 man utmp데이터가 지속적으로 기록됩니다./var/log/wtmp

이러한 기록은 시스템이 충돌하거나 실패하기 시작하는 이유와 시기를 추적하는 데 유용하며 수정해서는 안 됩니다.

따라서 대답은 다음과 같습니다. sum 을 작성하는 프로그램의 동작을 수정 하거나 이러한 (바이너리) 파일을 직접 수정하지 않고 who는 이 작업을 수행할 수 없습니다 . 이렇게 하면 시스템이 1) 안전하지 않게 되고 2) 오류 발생 시 진단이 어려워질 수 있으므로 이 작업을 수행해서는 안 됩니다./var/run/utmp/var/log/wtmp

관련 정보