명령을 내리는 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 서버가 다른 포트(1234)와 localhost에서만 수신하도록 허용하는 것입니다. 그런 다음 "프록시"(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.

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

따라서 대답은 다음과 같습니다. 및 who에 쓰는 프로그램의 동작을 수정 하거나 이러한 (바이너리) 파일을 직접 수정하지 않으면 불가능합니다 . 그리고 이렇게 하면 잠재적으로 시스템이 1) 불안정해지고 2) 오작동 시 진단이 어려워질 수 있으므로 그렇게 해서는 안 됩니다./var/run/utmp/var/log/wtmp

관련 정보