Add missing syn support
parent
eb9d37a7ff
commit
9a1f7d3322
|
@ -1,6 +1,7 @@
|
||||||
2.00 Alpha 2 - 04/11/2014
|
2.00 Alpha 2 - 04/11/2014
|
||||||
- Slightly better documentation
|
- Slightly better documentation
|
||||||
- Kernel module loading - 4/11/2014
|
- Kernel module loading - 4/11/2014
|
||||||
|
- Add syn matching to acl.conf rules
|
||||||
|
|
||||||
2.00 Alpha 1 - 04/10/2014
|
2.00 Alpha 1 - 04/10/2014
|
||||||
- Complete code rewrite and restructure to solve some long standing issues with v1
|
- Complete code rewrite and restructure to solve some long standing issues with v1
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Use this file to set up more complex access control lists.
|
# Use this file to set up more complex access control lists.
|
||||||
# Use tabs or single space to separate
|
# Use tabs or single space to separate
|
||||||
#
|
#
|
||||||
# <direction> <action> <interface> <src-address> <src-port> <dst-address> <dst-port> <protocol>
|
# <direction> <action> <interface> <src-address> <src-port> <dst-address> <dst-port> <protocol> <syn>
|
||||||
#
|
#
|
||||||
# Direction: Required ( IN | OUT )
|
# Direction: Required ( IN | OUT )
|
||||||
# Action: Required (ACCEPT | DROP)
|
# Action: Required (ACCEPT | DROP)
|
||||||
|
@ -12,9 +12,10 @@
|
||||||
# Dst Address: Optional ( destination of traffic )
|
# Dst Address: Optional ( destination of traffic )
|
||||||
# Dst Port: Optional ( destination port, 1 - 65535, Requires Protocol )
|
# Dst Port: Optional ( destination port, 1 - 65535, Requires Protocol )
|
||||||
# Protocol: Optional, Required if port is specified ( tcp | udp )
|
# Protocol: Optional, Required if port is specified ( tcp | udp )
|
||||||
|
# Syn: Optional, only match (not) syn packets (syn | notsyn )
|
||||||
# You can use '-' for optional fields
|
# You can use '-' for optional fields
|
||||||
#============================================================
|
#============================================================
|
||||||
#<dir> <action> <interface> <src-address> <src-port> <dst-address> <dst-port> <protocol>
|
#<dir> <action> <interface> <src-address> <src-port> <dst-address> <dst-port> <protocol> <syn>
|
||||||
#IN ACCEPT eth0 10.0.0.1 22 - - tcp
|
#IN ACCEPT eth0 10.0.0.1 22 - - tcp -
|
||||||
#IN DROP - - - - 22 tcp
|
#IN DROP - - - - 22 tcp syn
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Use this file to set up more complex access control lists.
|
# Use this file to set up more complex access control lists.
|
||||||
# Use tabs or single space to separate
|
# Use tabs or single space to separate
|
||||||
#
|
#
|
||||||
# <direction> <action> <interface> <src-address> <src-port> <dst-address> <dst-port> <protocol>
|
# <direction> <action> <interface> <src-address> <src-port> <dst-address> <dst-port> <protocol> <syn>
|
||||||
#
|
#
|
||||||
# Direction: Required ( IN | OUT )
|
# Direction: Required ( IN | OUT )
|
||||||
# Action: Required (ACCEPT | DROP)
|
# Action: Required (ACCEPT | DROP)
|
||||||
|
@ -12,9 +12,10 @@
|
||||||
# Dst Address: Optional ( destination of traffic )
|
# Dst Address: Optional ( destination of traffic )
|
||||||
# Dst Port: Optional ( destination port, 1 - 65535, Requires Protocol )
|
# Dst Port: Optional ( destination port, 1 - 65535, Requires Protocol )
|
||||||
# Protocol: Optional, Required if port is specified ( tcp | udp )
|
# Protocol: Optional, Required if port is specified ( tcp | udp )
|
||||||
|
# Syn: Optional, only match (not) syn packets (syn | notsyn )
|
||||||
# You can use '-' for optional fields
|
# You can use '-' for optional fields
|
||||||
#============================================================
|
#============================================================
|
||||||
#<dir> <action> <interface> <src-address> <src-port> <dst-address> <dst-port> <protocol>
|
#<dir> <action> <interface> <src-address> <src-port> <dst-address> <dst-port> <protocol> <syn>
|
||||||
#IN ACCEPT eth0 2002:dead:beef::/64 22 - - tcp
|
#IN ACCEPT eth0 2002:dead:beef::/64 22 - - tcp -
|
||||||
#IN DROP - - - - 22 tcp
|
#IN DROP - - - - 22 tcp syn
|
||||||
|
|
||||||
|
|
|
@ -306,13 +306,13 @@ function enable_filtering {
|
||||||
${debug} ${DebugColor} "${FUNCNAME}:${DEFAULT_COLOR} loading"
|
${debug} ${DebugColor} "${FUNCNAME}:${DEFAULT_COLOR} loading"
|
||||||
if [ -e "${FWCONFIGDIR}/ipv${IPVER}/acl.conf" ]; then
|
if [ -e "${FWCONFIGDIR}/ipv${IPVER}/acl.conf" ]; then
|
||||||
${debug} ${DebugColor} "${FUNCNAME}:${DEFAULT_COLOR} read ${FWCONFIGDIR}/ipv${IPVER}/acl.conf successful"
|
${debug} ${DebugColor} "${FUNCNAME}:${DEFAULT_COLOR} read ${FWCONFIGDIR}/ipv${IPVER}/acl.conf successful"
|
||||||
while read -r direction action interface srcaddress srcport dstaddress dstport protocol; do
|
while read -r direction action interface srcaddress srcport dstaddress dstport protocol syn; do
|
||||||
[[ ${direction} = \#* ]] && continue
|
[[ ${direction} = \#* ]] && continue
|
||||||
[[ ${direction} = "" ]] && continue
|
[[ ${direction} = "" ]] && continue
|
||||||
([[ ${direction} != "IN" ]] && [[ ${direction} != "OUT" ]]) \
|
([[ ${direction} != "IN" ]] && [[ ${direction} != "OUT" ]]) \
|
||||||
&& ${display} RED "acl.conf: Error - must begin with IN/OUT: ${DEFAULT_COLOR}${direction} ${action} ${interface} ${srcaddress} ${srcport} ${dstaddress} ${dstport} ${protocol}" && continue
|
&& ${display} RED "acl.conf: Error - must begin with IN/OUT: ${DEFAULT_COLOR}${direction} ${action} ${interface} ${srcaddress} ${srcport} ${dstaddress} ${dstport} ${protocol} ${syn}" && continue
|
||||||
([[ ${action} != "ACCEPT" ]] && [[ ${action} != "DROP" ]] && [[ ${action} != "REJECT" ]]) \
|
([[ ${action} != "ACCEPT" ]] && [[ ${action} != "DROP" ]] && [[ ${action} != "REJECT" ]]) \
|
||||||
&& ${display} RED "acl.conf: Error - action must be either ACCEPT, DROP, or REJECT : ${DEFAULT_COLOR}${direction} ${action} ${interface} ${srcaddress} ${srcport} ${dstaddress} ${dstport} ${protocol}" && continue
|
&& ${display} RED "acl.conf: Error - action must be either ACCEPT, DROP, or REJECT : ${DEFAULT_COLOR}${direction} ${action} ${interface} ${srcaddress} ${srcport} ${dstaddress} ${dstport} ${protocol} ${syn}" && continue
|
||||||
|
|
||||||
# Do some creative work with variables to make building the iptables rules fairly painless
|
# Do some creative work with variables to make building the iptables rules fairly painless
|
||||||
[[ ${dstport} != "-" ]] && dstport="--dport ${dstport}"
|
[[ ${dstport} != "-" ]] && dstport="--dport ${dstport}"
|
||||||
|
@ -325,6 +325,8 @@ function enable_filtering {
|
||||||
[[ ${direction} == "IN" ]] && chain="${InFilter}"
|
[[ ${direction} == "IN" ]] && chain="${InFilter}"
|
||||||
[[ ${protocol} != "-" ]] && protocol="-p ${protocol}"
|
[[ ${protocol} != "-" ]] && protocol="-p ${protocol}"
|
||||||
[[ ${action} == "REJECT" ]] && action="REJECT --reject-with tcp-reset"
|
[[ ${action} == "REJECT" ]] && action="REJECT --reject-with tcp-reset"
|
||||||
|
[[ ${syn} == "syn" ]] && syn="--syn"
|
||||||
|
[[ ${syn} == "notsyn" ]] && syn="! --syn"
|
||||||
|
|
||||||
${debug} ${DebugColor} "${FUNCNAME}:${DEFAULT_COLOR}${direction} ${action} ${interface} ${srcaddress} ${srcport} ${dstaddress} ${dstport} ${protocol}"
|
${debug} ${DebugColor} "${FUNCNAME}:${DEFAULT_COLOR}${direction} ${action} ${interface} ${srcaddress} ${srcport} ${dstaddress} ${dstport} ${protocol}"
|
||||||
|
|
||||||
|
@ -335,8 +337,9 @@ function enable_filtering {
|
||||||
[[ ${dstaddress} == "-" ]] && dstaddress=""
|
[[ ${dstaddress} == "-" ]] && dstaddress=""
|
||||||
[[ ${srcaddress} == "-" ]] && srcaddress=""
|
[[ ${srcaddress} == "-" ]] && srcaddress=""
|
||||||
[[ ${protocol} == "-" ]] && protocol=""
|
[[ ${protocol} == "-" ]] && protocol=""
|
||||||
|
[[ ${syn} == "-" ]] && syn=""
|
||||||
|
|
||||||
${VER_IPTABLES} -A ${chain} ${interface} ${protocol} ${srcaddress} ${srcport} ${dstaddress} ${dstport} -j ${action}
|
${VER_IPTABLES} -A ${chain} ${interface} ${protocol} ${srcaddress} ${srcport} ${syn} ${dstaddress} ${dstport} -j ${action}
|
||||||
done < "${FWCONFIGDIR}/ipv${IPVER}/acl.conf"
|
done < "${FWCONFIGDIR}/ipv${IPVER}/acl.conf"
|
||||||
${debug} ${DebugColor} "${FUNCNAME}:${DEFAULT_COLOR} done"
|
${debug} ${DebugColor} "${FUNCNAME}:${DEFAULT_COLOR} done"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue