Dustin J. Mitchell / Michal Purzynski
"please open port foo from bar to bing"
"that is already open.. R/WFM"
"please open port foo from bar to bing"
"ok" / "that flow SHOULD be allowed already, let me know if it does not work"
"bar1 can’t access bing3.. missed something?"
"Please give all webheads access to the cache servers"
"uhh, what webheads? which cache servers?"
"Hi, my service timeouts"
"My bad... typo in a config"
"I need you to tell me what flows are allowed from/to my subnets"
"I'll get back to you next quarter"
Gather data about permitted and denied traffic
Support dynamic queries against that data
Support automated verification of expected behavior
They support all of the devices we don’t have
They cannot combine policies - that makes the result incorrect
They don’t scale and a single query takes over 40 minutes
Good luck scripting them. API - objects in XML?
Compliance rules are frequently hard coded to things like PCI
We want to use vim
"The staging web servers should have access to the staging DB severs on port 5432."
"The office network should not have access to the DB servers."
"This route-table change should not affect reachability."
def test_worker_ssh():
"""Bug 1289789: worker managers have outbound access to all managed
subnets via SSH"""
rules.assertPermits(
worker_managers,
managed_use1 + managed_staging_use1 + managed1_usw2,
'ssh')
managed1_usw2 = IPSet([IP('10.14.136.0/24')])
managed1_use1 = IPSet([IP('10.13.136.0/24')])
managed1_staging_use1 = IPSet([IP('10.13.133.0/24')])
worker_managers = IPSet([
host('worker-manager1.scl3.mozilla.com'),
host('worker-manager2.scl3.mozilla.com'),
])
match {
source-address [ worker-manager1 worker-manager2 ];
destination-address worker-subnets;
application junos-ssh;
}
then {
permit;
}
def test_worker_ssh():
"""Bug 1289789: worker managers have outbound access to all managed
subnets via SSH"""
rules.assertPermits(
worker_managers,
managed_use1 + managed_staging_use1 + managed1_usw2,
'ssh')
"""
Workers are EC2 instances created in various Amazon regions. They
are managed by worker-managers, both via the AWS APIs and directly
by connecting to the workers using SSH.
Workers are not able to communicate between themselves, but do have
full Internet access.
"""
Workers are EC2 instances created in various Amazon regions. They are managed by worker-managers, both via the AWS APIs and directly by connecting to the workers using SSH.
Workers are not able to communicate between themselves, but do have full Internet access.
test_worker_ssh - Bug 1289789: worker managers have outbound access to all managed subnets via SSH
[IPv4] x [IPv4] => {permitted, denied}
[apps] x [IPv4] x [IPv4] => {permitted, denied}