시나리오는 다음과 같습니다.
Ubuntu 20.04 LTS에서 Ubuntu 22.04 LTS로 업그레이드했습니다. 그러나 업그레이드 후 호스트에 대한 전체 연결이 끊어졌고 Cloud Shell 콘솔을 통해서만 액세스할 수 있었습니다.
관찰된 행동:
공개 IP를 통해 SSH에 접속할 수 없습니다. Cloud Shell은 직렬 콘솔을 통해서만 사용하세요. 이제 ECDSA가 권장되므로 키 교환 RSA가 문제인지 테스트했지만 이는 문제가 되지 않는 것 같습니다.
실행 시 소스에 연결할 수 없습니다.
sudo apt update
nslookup google.es
어떤 출력도 제공하지 않습니다(접근할 수 없음).ip addr
IP 인터페이스가 작동 중입니다:1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000 link/ether 02:00:17:00:95:86 brd ff:ff:ff:ff:ff:ff inet 10.0.0.62/24 metric 100 brd 10.0.0.255 scope global dynamic ens3 valid_lft 62767sec preferred_lft 62767sec inet6 fe80::17ff:fe00:9586/64 scope link valid_lft forever preferred_lft forever
ip route
산출:default via 10.0.0.1 dev ens3 proto dhcp src 10.0.0.62 metric 100 10.0.0.0/24 dev ens3 proto kernel scope link src 10.0.0.62 metric 100 10.0.0.1 dev ens3 proto dhcp scope link src 10.0.0.62 metric 100 169.254.169.254 via 10.0.0.1 dev ens3 proto dhcp src 10.0.0.62 metric 100
iptables -L
산출:Chain INPUT (policy DROP) target prot opt source destination Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
out의 출력
iptables-save -c
은 다음과 같습니다.:INPUT DROP [71948:4580785] :FORWARD DROP [0:0] :OUTPUT ACCEPT[59782:3909997] COMMIT # Completed on Tue Aug 16 08:10:43 2022
50-cloud-init.yaml
Netplan에는 다음 내용을 포함하는 구성 파일이 1개만 있습니다 .ethernets: ens3: dhcp4: true match: macaddress: 02:00:17:00:95:86 set-name: ens3 version: 2
/etc/resolv.conf
산출:nameserver 127.0.0.53 options edns0 trust-ad search vcn09040100.oraclevcn.com
이것이 Oracle Cloud 구성 문제인지는 확실하지 않습니다. 비록 아무 것도 건드리지 않았고 이전에 웹 사이트를 작동하고 호스팅했지만 말입니다. VCN에는
vcn-20210904-0043
서브넷 10.0.0.0/24와 다음 수신 보안 목록이 할당됩니다.
아이디어가 부족하여 도움을 주시면 대단히 감사하겠습니다. 문제 없이 동일한 VCN을 공유하는 동일한 테넌트에서 다른 인스턴스가 실행되고 있으므로 이것이 OS 문제라고 생각하는 방향으로 기울고 있습니다.
답변1
당신은iptables네트워크 작업을 차단하는 규칙입니다. 명확한 규칙은 없지만 필터/입력에 대한 기본 DROP 정책이라는 하나의 규칙이 적용됩니다. 이는 시스템에서 수신한 모든 트래픽이 애플리케이션에서 사용되기 전에 삭제된다는 의미입니다. DNS 확인에 실패했습니다. TCP 연결(DNS가 실패했기 때문에 IP 주소에 직접 연결됨)은 SYN-SENT
상태를 유지합니다. 등.
질문에 이에 대한 내용이 전혀 기록되지 않았기 때문에 새로 고치기 전에 시스템에 어떤 규칙이 여전히 존재했는지 모르겠습니다. 기존 규칙을 규칙 세트로 삭제하는 것은 위험한 작업입니다.iptables: 기본 정책을 로 복원하지 않습니다 ACCEPT
. 따라서 모든 필터링 규칙을 수동으로 제거하려면 다음을 수행해야 합니다.
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
nat
사용 가능한 다른 테이블( , mangle
, ) 이 있지만 raw
OP의 iptables-save -c
명령은 해당 테이블이 사용 중임을 표시하지 않습니다.
위의 첫 번째 명령은 필터/입력 정책을 복원하며, 규칙과 (현재는 비어 있는) 사용자 체인을 삭제한 후에 ACCEPT
만 가능합니다 .DROP
노트:nftables이 결함은 발생하지 않으며 현재 다음을 사용한다고 nft flush ruleset
가정하면 하나의 명령으로 모든 테이블에 대해 위의 모든 작업을 수행할 수 있습니다.iptables
iptables-nft
nftablesAPI.
그 밖에 할 일: 시스템 구성의 어느 부분이 방화벽 규칙을 설정하는지 찾아 수정하십시오.
이는 와 같은 방화벽 패키지이거나 수동 규칙일 수 firewalld
있습니다 ufw
. 거기에서 어떤 수정을 해야 하는지 조사해야 합니다.
구성 파일의 직접 수동 규칙의 경우 이 명령은 다음과 같은 후보를 찾는 데 도움이 될 수 있습니다.
grep -r 'INPUT DROP' /etc
또한 시스템에는 방화벽 규칙이 없으므로 좋은 생각이 아닙니다. 하지만 여전히 클라우드 환경에서 제공하는 방화벽으로 보호받고 있습니다.