firewalld_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package iptables
  2. import (
  3. "net"
  4. "strconv"
  5. "testing"
  6. )
  7. func TestFirewalldInit(t *testing.T) {
  8. if !checkRunning() {
  9. t.Skip("firewalld is not running")
  10. }
  11. if err := FirewalldInit(); err != nil {
  12. t.Fatal(err)
  13. }
  14. }
  15. func TestReloaded(t *testing.T) {
  16. var err error
  17. var fwdChain *Chain
  18. fwdChain, err = NewChain("FWD", "lo", Filter, false)
  19. if err != nil {
  20. t.Fatal(err)
  21. }
  22. defer fwdChain.Remove()
  23. // copy-pasted from iptables_test:TestLink
  24. ip1 := net.ParseIP("192.168.1.1")
  25. ip2 := net.ParseIP("192.168.1.2")
  26. port := 1234
  27. proto := "tcp"
  28. err = fwdChain.Link(Append, ip1, ip2, port, proto)
  29. if err != nil {
  30. t.Fatal(err)
  31. } else {
  32. // to be re-called again later
  33. OnReloaded(func() { fwdChain.Link(Append, ip1, ip2, port, proto) })
  34. }
  35. rule1 := []string{
  36. "-i", fwdChain.Bridge,
  37. "-o", fwdChain.Bridge,
  38. "-p", proto,
  39. "-s", ip1.String(),
  40. "-d", ip2.String(),
  41. "--dport", strconv.Itoa(port),
  42. "-j", "ACCEPT"}
  43. if !Exists(fwdChain.Table, fwdChain.Name, rule1...) {
  44. t.Fatalf("rule1 does not exist")
  45. }
  46. // flush all rules
  47. fwdChain.Remove()
  48. reloaded()
  49. // make sure the rules have been recreated
  50. if !Exists(fwdChain.Table, fwdChain.Name, rule1...) {
  51. t.Fatalf("rule1 hasn't been recreated")
  52. }
  53. }
  54. func TestPassthrough(t *testing.T) {
  55. rule1 := []string{
  56. "-i", "lo",
  57. "-p", "udp",
  58. "--dport", "123",
  59. "-j", "ACCEPT"}
  60. if firewalldRunning {
  61. _, err := Passthrough(Iptables, append([]string{"-A"}, rule1...)...)
  62. if err != nil {
  63. t.Fatal(err)
  64. }
  65. if !Exists(Filter, "INPUT", rule1...) {
  66. t.Fatalf("rule1 does not exist")
  67. }
  68. }
  69. }