summaryrefslogtreecommitdiff
path: root/ipmasq/rules/O80firewall.def
blob: d6fe9f8c097c2d44085ff073952a14b579403074 (plain)
  1. # You should not edit this file. Instead, create a file with the same
  2. # name as this one, but with a .rul extension instead of .def. The
  3. # .rul file will override this one.
  4. #
  5. # However, any changes you make to this file will be preserved.
  6. # Packet filter firewall script for ipmasq (GPL)
  7. # By Osamu Aoki <osamu@aokiconsulting.com>
  8. #
  9. # Firewall are set for external network connection ports listed in $EXTERNAL
  10. # Little consideration taken for shared port.
  11. #
  12. echo "# Firewall for outgoing packets"
  13. ###############################################################################
  14. # QUIET ADDRESS (REJECT for internal request) RULES
  15. if [ -n "$EXTERNAL" ]; then
  16. for i in $EXTERNAL; do
  17. ipnm_cache $i
  18. for j in $QADDR; do
  19. case $MASQMETHOD in
  20. ipfwadm)
  21. $IPFWADM -O -a reject -W ${i%%:*} -D $j
  22. ;;
  23. ipchains)
  24. $IPCHAINS --no-warnings -A output -j REJECT -i ${i%%:*} -d $j
  25. ;;
  26. netfilter)
  27. $IPTABLES -A OUTPUT -j REJECT -o ${i%%:*} -d $j
  28. ;;
  29. esac
  30. done
  31. done
  32. fi
  33. ###############################################################################
  34. # ALLOW OUTPUT TCP RULES
  35. if [ -n "$EXTERNAL" ]; then
  36. for i in $EXTERNAL; do
  37. ipnm_cache $i
  38. for j in $ATCPSVR; do
  39. case $MASQMETHOD in
  40. ipfwadm)
  41. $IPFWADM -O -a accept -W ${i%%:*} -S $IPOFIF/$NMOFIF $j -P tcp
  42. ;;
  43. ipchains)
  44. $IPCHAINS -A output -j ACCEPT -i ${i%%:*} -s $IPOFIF/$NMOFIF $j -p tcp
  45. ;;
  46. netfilter)
  47. $IPTABLES -A OUTPUT -j ACCEPT -o ${i%%:*} -s $IPOFIF/$NMOFIF -p tcp --source-port $j
  48. ;;
  49. esac
  50. done
  51. done
  52. fi
  53. # ALLOW OUTPUT UDP RULES
  54. if [ -n "$EXTERNAL" ]; then
  55. for i in $EXTERNAL; do
  56. ipnm_cache $i
  57. for j in $AUDPSVR; do
  58. case $MASQMETHOD in
  59. ipfwadm)
  60. $IPFWADM -O -a accept -W ${i%%:*} -S $IPOFIF/$NMOFIF $j -P udp
  61. ;;
  62. ipchains)
  63. $IPCHAINS -A output -j ACCEPT -i ${i%%:*} -s $IPOFIF/$NMOFIF $j -p udp
  64. ;;
  65. netfilter)
  66. $IPTABLES -A OUTPUT -j ACCEPT -o ${i%%:*} -s $IPOFIF/$NMOFIF -p udp --source-port $j
  67. ;;
  68. esac
  69. done
  70. done
  71. fi
  72. ###############################################################################
  73. # QUIET OUTPUT TCP RULES
  74. if [ -n "$EXTERNAL" ]; then
  75. for i in $EXTERNAL; do
  76. ipnm_cache $i
  77. for j in $QTCPSVR; do
  78. case $MASQMETHOD in
  79. ipfwadm)
  80. $IPFWADM -O -a deny -W ${i%%:*} -S 0.0.0.0/0 $j -P tcp
  81. ;;
  82. ipchains)
  83. $IPCHAINS --no-warnings -A output -j DENY -i ${i%%:*} -s 0.0.0.0/0 $j -p tcp
  84. ;;
  85. netfilter)
  86. $IPTABLES -A OUTPUT -j DROP -o ${i%%:*} -s 0.0.0.0/0 -p tcp --source-port $j
  87. ;;
  88. esac
  89. done
  90. done
  91. fi
  92. # QUIET OUTPUT UDP RULES
  93. if [ -n "$EXTERNAL" ]; then
  94. for i in $EXTERNAL; do
  95. ipnm_cache $i
  96. for j in $QUDPSVR; do
  97. case $MASQMETHOD in
  98. ipfwadm)
  99. $IPFWADM -O -a deny -W ${i%%:*} -S 0.0.0.0/0 $j -P udp
  100. ;;
  101. ipchains)
  102. $IPCHAINS --no-warnings -A output -j DENY -i ${i%%:*} -s 0.0.0.0/0 $j -p udp
  103. ;;
  104. netfilter)
  105. $IPTABLES -A OUTPUT -j DROP -o ${i%%:*} -s 0.0.0.0/0 -p udp --source-port $j
  106. ;;
  107. esac
  108. done
  109. done
  110. fi
  111. ###############################################################################
  112. # DENY OUTPUT TCP RULES
  113. if [ -n "$EXTERNAL" ]; then
  114. for i in $EXTERNAL; do
  115. ipnm_cache $i
  116. for j in $DTCPSVR; do
  117. case $MASQMETHOD in
  118. ipfwadm)
  119. $IPFWADM -O -a deny -W ${i%%:*} -S 0.0.0.0/0 $j -P tcp -o
  120. ;;
  121. ipchains)
  122. $IPCHAINS --no-warnings -A output -j DENY -i ${i%%:*} -s 0.0.0.0/0 $j -p tcp -l
  123. ;;
  124. netfilter)
  125. $IPTABLES -A OUTPUT -j LOG -o ${i%%:*} -s 0.0.0.0/0 -p tcp --source-port $j
  126. $IPTABLES -A OUTPUT -j DROP -o ${i%%:*} -s 0.0.0.0/0 -p tcp --source-port $j
  127. ;;
  128. esac
  129. done
  130. done
  131. fi
  132. # DENY OUTPUT UDP RULES
  133. if [ -n "$EXTERNAL" ]; then
  134. for i in $EXTERNAL; do
  135. ipnm_cache $i
  136. for j in $DUDPSVR; do
  137. case $MASQMETHOD in
  138. ipfwadm)
  139. $IPFWADM -O -a deny -W ${i%%:*} -S 0.0.0.0/0 $j -P udp -o
  140. ;;
  141. ipchains)
  142. $IPCHAINS --no-warnings -A output -j DENY -i ${i%%:*} -s 0.0.0.0/0 $j -p udp -l
  143. ;;
  144. netfilter)
  145. $IPTABLES -A OUTPUT -j LOG -o ${i%%:*} -s 0.0.0.0/0 -p udp --source-port $j
  146. $IPTABLES -A OUTPUT -j DROP -o ${i%%:*} -s 0.0.0.0/0 -p udp --source-port $j
  147. ;;
  148. esac
  149. done
  150. done
  151. fi
  152. echo "#"