IBM Cloud: VPC의 Flow Logs를 사용해 보았습니다.

19030 단어 닌비아예ribmcloud

1. 소개



IBM Cloud의 VPC Gen2에서 Flow Logs가 GA되어 있기 때문에 시도했습니다.
htps : // c ぉ d. 이 bm. 이 m/도 cs/vpc? 토피 c = vpc-f ぉ w- ぉ gs
htps : // c ぉ d. 이 bm. 이 m/도 cs/vpc? 토피 c = vpc-fl - 아나 ly

주요 특징은 다음과 같습니다.
  • 네트워크 인터페이스 (vNIC)에 대한 액세스 로그 얻기
  • 취득 범위를 지정할 수 있다.
  • VPC의 모든 네트워크 인터페이스에 대한 액세스 로그 얻기
  • Subnet의 모든 네트워크 인터페이스에 대한 액세스 로그 가져 오기
  • Instance (VSI)의 모든 네트워크 인터페이스에 대한 액세스 로그 얻기
  • 특정 Network Interface에 대한 액세스 로그 가져오기

  • 얻은 액세스 로그를 ICOS(IBM Cloud Object Storage)에 저장합니다.
  • 다층적으로 설정하는 것은 가능하지만, 그 경우는 보다 입도의 세세한 설정이 우선한다. 유효한 사용 사례로는 다음을 고려할 수 있습니다.
  • VPC 레벨에서 Flow Logs를 획득하고 ICS Bucket1에 저장합니다.
  • Public Subnet 등의 주시해야 할 범위에 대해서는 별도로 ICOS Bucket2에 보관한다.
  • Trobule Shooting을 위해 특정 VSI에 대해서는 ICOS Bucket3에 보관한다.

  • TCP/UDP가 지원됩니다. ICMP는 현재 지원되지 않습니다.
  • 5분 놓거나 100KB에 이른 시점에서 ICOS에 보관됩니다.

  • 2. ICOS 설정



    ICOS가 VPC에서 액세스할 수 있도록 IAM을 설정합니다.
    htps : // c ぉ d. 이 bm. 이 m/도 cs/vpc? 토피 c = vpc-r ring-g-f-w--g-c-c 및 r # fl-be-fe-r-begin

    Manage -> Access(IAM) -> Authorizations에서 다음과 같이 권한을 부여합니다.


    3. Flow Logs 설정



    h tps : // c ぉ d. 이 bm. 이 m/도 cs/vpc? 토피 c = vpc-r ring g-f w w-g g-c c 및 r # fl - r drin g-u


    전항에서 ICOS에 대한 IAM 설정을 했기 때문에 Flow Logs의 저장처를 지정할 수 있게 되어 있습니다.


    4. 로그를 확인해 봅니다.



    확실히 ICOS에 보관됩니다.


    하지만, ,, 계층이 깊다・・・


    다음에 따르면ibm_vpc_flowlogs_v1/account={account}/region={region}/vpc-id={vpc-id}/subnet-id={subnet-id}/endpoint-type=vnics/instance-id={vsi-id}/vnic-id={vnic-id}/record-type={all|ingress|egress|internal}/year={xxxx}/month={yy}/day={zz}/hour={hh}/stream-id={stream-id}/{sequence-number}.gz 라고 하는 포맷으로 되어 있는 것 같습니다.
    h tps : // c ぉ d. 이 bm. 이 m/도 cs/vpc? 토피 c = vpc-fl - 아나 ly # f w w

    이 파일을 확장하면 json 파일이므로 그대로는 가독성이 낮기 때문에 jq 명령으로 성형합니다. 그러면 09:00 전후 5분 동안 38건의 액세스가 있었는데, 모두 알 수 없는 주소의 액세스이며, 이들이 차단되었음을 알 수 있습니다. target_ip이 VSI의 private IP이므로 실제로 어떤 Global IP에 액세스하고 있는지 Floating IP와 비교해야합니다.
    $ cat 00000002 | jq
    {
      "version": "0.0.1",
      "collector_crn": "crn:v1:bluemix:public:is:us-south:a/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx::flow-log-collector:r006-18597fe0-a324-40ee-9ade-bc3e3fcd3998",
      "attached_endpoint_type": "vnic",
      "network_interface_id": "0717-315e4fce-c142-41a8-9f50-1b09b6865db8",
      "instance_crn": "crn:v1:bluemix:public:is:us-south-1:a/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx::instance:0717_2c155a6b-c737-4050-9278-9f954941ad18",
      "vpc_crn": "crn:v1:bluemix:public:is:us-south:a/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx::vpc:r006-0d78cc86-87f6-4fe2-b0c7-ca603862d178",
      "capture_start_time": "2020-07-26T23:58:45Z",
      "capture_end_time": "2020-07-27T00:03:45Z",
      "state": "ok",
      "number_of_flow_logs": 38,
      "flow_logs": [
        {
          "start_time": "",
          "end_time": "",
          "connection_start_time": "2020-07-26T23:57:23Z",
          "direction": "I",
          "action": "rejected",
          "initiator_ip": "185.156.73.67",
          "target_ip": "10.240.0.7",
          "initiator_port": 53424,
          "target_port": 5242,
          "transport_protocol": 6,
          "ether_type": "IPv4",
          "was_initiated": false,
          "was_terminated": true,
          "bytes_from_initiator": 0,
          "packets_from_initiator": 0,
          "bytes_from_target": 0,
          "packets_from_target": 0,
          "cumulative_bytes_from_initiator": 54,
          "cumulative_packets_from_initiator": 1,
          "cumulative_bytes_from_target": 0,
          "cumulative_packets_from_target": 0
        },
        {
          "start_time": "2020-07-26T23:59:25Z",
          "end_time": "2020-07-26T23:59:25Z",
          "connection_start_time": "2020-07-26T23:59:25Z",
          "direction": "I",
          "action": "rejected",
          "initiator_ip": "85.93.20.247",
          "target_ip": "10.240.0.7",
          "initiator_port": 8080,
          "target_port": 13845,
          "transport_protocol": 6,
          "ether_type": "IPv4",
          "was_initiated": true,
          "was_terminated": true,
          "bytes_from_initiator": 54,
          "packets_from_initiator": 1,
          "bytes_from_target": 0,
          "packets_from_target": 0,
          "cumulative_bytes_from_initiator": 54,
          "cumulative_packets_from_initiator": 1,
          "cumulative_bytes_from_target": 0,
          "cumulative_packets_from_target": 0
        },
    (途中略)
      ]
    }
    

    다음과 같이 적절히 성형하면 좋을 것입니다.
    # cat 00000002 | jq -r '.flow_logs[] | [.connection_start_time, .initiator_ip, .target_ip, .target_port, .direction, .action ] | @csv'|sort
    "2020-07-26T23:56:52Z","103.145.12.97","10.240.0.7",5060,"I","rejected"
    "2020-07-26T23:56:54Z","5.44.197.24","10.240.0.7",443,"I","rejected"
    "2020-07-26T23:56:57Z","185.176.27.34","10.240.0.7",15786,"I","rejected"
    "2020-07-26T23:57:23Z","185.156.73.67","10.240.0.7",5242,"I","rejected"
    "2020-07-26T23:57:24Z","94.53.166.68","10.240.0.7",88,"I","rejected"
    "2020-07-26T23:57:32Z","222.186.61.19","10.240.0.7",6666,"I","rejected"
    "2020-07-26T23:57:34Z","185.176.27.26","10.240.0.7",15794,"I","rejected"
    "2020-07-26T23:57:51Z","185.176.27.14","10.240.0.7",15796,"I","rejected"
    "2020-07-26T23:58:03Z","172.93.4.78","10.240.0.7",16880,"I","rejected"
    "2020-07-26T23:59:00Z","45.129.33.2","10.240.0.7",40040,"I","rejected"
    "2020-07-26T23:59:07Z","185.176.27.34","10.240.0.7",15787,"I","rejected"
    "2020-07-26T23:59:15Z","103.114.104.142","10.240.0.7",32614,"I","rejected"
    "2020-07-26T23:59:15Z","109.103.100.197","10.240.0.7",23,"I","rejected"
    "2020-07-26T23:59:25Z","85.93.20.247","10.240.0.7",13845,"I","rejected"
    "2020-07-26T23:59:25Z","92.63.196.28","10.240.0.7",62883,"I","rejected"
    "2020-07-26T23:59:30Z","87.251.74.200","10.240.0.7",7989,"I","rejected"
    "2020-07-26T23:59:31Z","103.114.104.142","10.240.0.7",10486,"I","rejected"
    "2020-07-26T23:59:47Z","103.114.104.142","10.240.0.7",27340,"I","rejected"
    "2020-07-26T23:59:55Z","185.176.27.102","10.240.0.7",15789,"I","rejected"
    "2020-07-27T00:00:10Z","103.114.104.142","10.240.0.7",32821,"I","rejected"
    "2020-07-27T00:00:10Z","194.26.29.170","10.240.0.7",1546,"I","rejected"
    "2020-07-27T00:00:34Z","194.26.29.170","10.240.0.7",1604,"I","rejected"
    "2020-07-27T00:00:58Z","194.26.29.170","10.240.0.7",1661,"I","rejected"
    "2020-07-27T00:01:09Z","89.248.168.217","10.240.0.7",5051,"I","rejected"
    "2020-07-27T00:01:16Z","46.101.206.205","10.240.0.7",24114,"I","rejected"
    "2020-07-27T00:01:28Z","58.218.56.94","10.240.0.7",5900,"I","rejected"
    "2020-07-27T00:01:35Z","185.176.27.26","10.240.0.7",15793,"I","rejected"
    "2020-07-27T00:01:40Z","138.197.89.186","10.240.0.7",22497,"I","rejected"
    "2020-07-27T00:01:41Z","146.88.240.4","10.240.0.7",3283,"I","rejected"
    "2020-07-27T00:01:52Z","185.217.0.187","10.240.0.7",123,"I","rejected"
    "2020-07-27T00:01:54Z","194.26.29.170","10.240.0.7",1899,"I","rejected"
    "2020-07-27T00:02:20Z","87.251.74.224","10.240.0.7",52346,"I","rejected"
    "2020-07-27T00:02:25Z","211.118.42.219","10.240.0.7",54222,"I","rejected"
    "2020-07-27T00:02:46Z","194.26.29.170","10.240.0.7",1709,"I","rejected"
    "2020-07-27T00:03:01Z","124.235.118.14","10.240.0.7",6381,"I","rejected"
    "2020-07-27T00:03:04Z","107.6.171.130","10.240.0.7",6000,"I","rejected"
    "2020-07-27T00:03:18Z","159.203.74.227","10.240.0.7",31573,"I","rejected"
    "2020-07-27T00:03:19Z","45.129.33.9","10.240.0.7",3869,"I","rejected"
    

    좋은 웹페이지 즐겨찾기