내 시스템을 망친 비공개 소스 VPN 프로그램(Fedora Linux)이 있습니다. 이를 실행한 후 몇 가지 사항이 변경되었고 VPN이 작동했지만 연결을 종료했을 때 시스템이 더러워진 상태에 있었고 네트워크가 끊어졌습니다( 특히 DNS(올바르게 복원된 경우에도 /etc/resolv.conf
).
이 프로그램(제 기억이 맞다면 GUI가 포함된 Java 프로그램)이 내 시스템에서 변경한 내용을 추적하고 싶습니다. 여기에는 최소한 파일 시스템 및 네트워크 구성이 포함되어야 합니다.
strace 사용을 고려했지만 출력이 너무 혼란스럽고 수준이 낮아서 무슨 일이 일어나고 있는지 이해할 수 없었습니다. 나도 찾았어FSSBfs 수준에서는 문제가 없을 수도 있지만 여전히 네트워크 구성에 무슨 일이 일어나고 있는지 이해해야 하고 어떤 도구를 사용해야 할지 모르겠습니다.
어떤 도구를 사용할 수 있나요?
답변1
제가 제안하고 싶은 것 중 하나는 "ip ro", "ip ad" 및 "iptables-save"를 앞뒤로 실행하여 비교하는 것입니다. resolv.conf가 복구되더라도 DNS가 손상되어 VPN의 UDP 트래픽이 손상되었을 수 있음을 나타냅니다. 아마도 UDP가 활성화된 동안 UDP를 차단하려고 시도했지만 제대로 복구하는 것을 잊어버렸을 수도 있습니다.
또한 /etc에서 "git init"를 실행하고 모든 것을 저장한 다음("git add .; git commit -m start") 의심스러운 변경 사항을 적용한 후 "git diff"로 확인하는 것이 유용하다는 것을 알았습니다. . 뭔가 예상치 못한 방식으로 변화하는 것을 발견하면 놀랄 수도 있습니다. 또한 /etc 외부의 변경 사항이 git-diff에 표시되지 않는 /etc의 심볼릭 링크를 찾습니다.
마지막으로 strace는 실제로 매우 사용자 정의가 가능합니다. 예를 들어 "strace -f -e Trace=%file -o strace.log my-command [args]"는 파일 작업만 가져옵니다. 프로그램이 완료된 후 open() 시스템 호출의 일부 변형을 사용하는 행만 검사하여 출력의 하위 집합을 추가로 지정할 수 있습니다.