170 lines
4.4 KiB
YAML
170 lines
4.4 KiB
YAML
x-response-rules: &httpResponseRules
|
|
rules:
|
|
- Method("GET") -> Header("Accept", "application/octet-stream") => File("sample.exe")
|
|
- Method("GET") -> Header("Accept", "image/jpeg") => File("default.jpg")
|
|
- Method("GET") -> PathPattern(".*\\.(?i)(jpg|jpeg)$") => File("default.jpg")
|
|
- Method("GET") -> Header("Accept", "image/png") => File("default.png")
|
|
- Method("GET") -> PathPattern(".*\\.(?i)png$") => File("default.png")
|
|
- Method("GET") -> Header("Accept", "image/gif") => File("default.gif")
|
|
- Method("GET") -> PathPattern(".*\\.(?i)gif$") => File("default.gif")
|
|
- Method("GET") -> Header("Accept", "image/x-icon") => File("default.ico")
|
|
- Method("GET") -> PathPattern(".*\\.(?i)ico$") => File("default.ico")
|
|
- Method("GET") -> Header("Accept", "text/plain") => File("default.txt")
|
|
- Method("GET") -> PathPattern(".*\\.(?i)txt$") => File("default.txt")
|
|
- Method("GET") -> Header("Accept", "text/html") => File("default.html")
|
|
- Method("GET") -> PathPattern(".*\\.(?i)htm(l)?$") => File("default.html")
|
|
- Method("GET") => File("default.html")
|
|
- => Status(204)
|
|
|
|
x-dns-respond-rules: &dnsRespondRules
|
|
options:
|
|
ttl: 30s
|
|
cache:
|
|
type: ttl
|
|
ttl: 30s
|
|
initialCapacity: 500
|
|
rules:
|
|
- A(`.*\\.google\\.com`) => IP(1.1.1.1)
|
|
- A(`.*\\.reddit\\.com`) => IP(2.2.2.2)
|
|
- A(`.*\\.cloudflare\\.com`) => Incremental(10.0.0.0/16)
|
|
- => Random(10.1.0.0/16)
|
|
default:
|
|
type: incremental
|
|
cidr: 10.10.0.0/16
|
|
|
|
x-http-handlers: &httpHandlers
|
|
endpoints:
|
|
plainHttp:
|
|
handler: http_mock
|
|
tls: false
|
|
options:
|
|
<<: *httpResponseRules
|
|
https:
|
|
handler: http_mock
|
|
tls: true
|
|
options:
|
|
<<: *httpResponseRules
|
|
|
|
data:
|
|
pcap: /var/lib/inetmock/data/pcap
|
|
audit: /var/lib/inetmock/data/audit
|
|
fakeFiles: ./assets/fakeFiles
|
|
|
|
api:
|
|
listen: unix:///var/run/inetmock.sock
|
|
|
|
health:
|
|
client:
|
|
http:
|
|
ip: 127.0.0.1
|
|
port: 80
|
|
https:
|
|
ip: 127.0.0.1
|
|
port: 443
|
|
rules:
|
|
- name: HTTP GET /index.html
|
|
rule: http.GET("https://stackoverflow.com/index.html") => Status(200) -> Header("Content-Type", "text/html") -> Contains(`<title>INetSim default HTML page</title>`)
|
|
- name: HTTP GET default ico
|
|
rule: http.GET("https://google.com/favicon.ico") => Status(200) -> SHA256("cb3f33cb0c7bae881d13be647cb928aa7fec9e9fcd6ec758751374bf7436d41a")
|
|
- name: HTTP POST - Status 204
|
|
rule: http.POST("https://api.icndb.com/jokes/new", `{"joke":"asdf","categories":[]}`) => Status(204)
|
|
- name: HTTP PUT - Status 204
|
|
rule: http.PUT("https://api.icndb.com/jokes/37", `{"joke":"asdf","categories":[]}`) => Status(204)
|
|
|
|
tls:
|
|
curve: P256
|
|
minTLSVersion: TLS10
|
|
includeInsecureCipherSuites: false
|
|
validity:
|
|
ca:
|
|
notBeforeRelative: 17520h
|
|
notAfterRelative: 17520h
|
|
server:
|
|
NotBeforeRelative: 168h
|
|
NotAfterRelative: 168h
|
|
rootCaCert:
|
|
publicKeyPath: ./assets/demoCA/ca.pem
|
|
privateKeyPath: ./assets/demoCA/ca.key
|
|
certCachePath: /tmp/inetmock/
|
|
|
|
listeners:
|
|
udp_53:
|
|
name: ''
|
|
protocol: udp
|
|
listenAddress: ''
|
|
port: 1053
|
|
endpoints:
|
|
plainDns:
|
|
handler: dns_mock
|
|
<<: *dnsRespondRules
|
|
tcp_80:
|
|
name: ''
|
|
protocol: tcp
|
|
listenAddress: ''
|
|
port: 80
|
|
<<: *httpHandlers
|
|
tcp_443:
|
|
name: ''
|
|
protocol: tcp
|
|
listenAddress: ''
|
|
port: 443
|
|
<<: *httpHandlers
|
|
tcp_853:
|
|
name: ''
|
|
protocol: tcp
|
|
listenAddress: ''
|
|
port: 853
|
|
endpoints:
|
|
DoT:
|
|
handler: dns_mock
|
|
tls: true
|
|
<<: *dnsRespondRules
|
|
tcp_3128:
|
|
name: ''
|
|
protocol: tcp
|
|
listenAddress: ''
|
|
port: 3128
|
|
endpoints:
|
|
proxyPlain:
|
|
handler: http_proxy
|
|
options:
|
|
target:
|
|
ipAddress: 127.0.0.1
|
|
port: 80
|
|
proxyTls:
|
|
handler: http_proxy
|
|
tls: true
|
|
options:
|
|
target:
|
|
ipAddress: 127.0.0.1
|
|
port: 443
|
|
tcp_8080:
|
|
name: ''
|
|
protocol: tcp
|
|
listenAddress: ''
|
|
port: 8080
|
|
<<: *httpHandlers
|
|
tcp_8443:
|
|
name: ''
|
|
protocol: tcp
|
|
listenAddress: ''
|
|
port: 8443
|
|
<<: *httpHandlers
|
|
tcp_9110:
|
|
name: ''
|
|
protocol: tcp
|
|
listenAddress: ''
|
|
port: 9110
|
|
endpoints:
|
|
metrics:
|
|
handler: metrics_exporter
|
|
options:
|
|
route: /metrics
|
|
tcp_9010:
|
|
name: ''
|
|
protocol: tcp
|
|
listenAddress: ''
|
|
port: 9010
|
|
endpoints:
|
|
traces:
|
|
handler: go_pprof
|