This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dumb_firewall [2013/12/15 13:36] kyxap Page moved from stuff:iptables:dumb_firewall to iptables:dumb_firewall |
dumb_firewall [2021/11/17 21:12] (current) kyxap |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Простой фаервол, открывающий полный доступ для WHITELIST и только избранные порты для остальных. | + | {{tag>iptables}}====== Простой фаервол, открывающий доступ только для белого списка. ====== |
+ | |||
+ | Полный доступ для WHITELIST и только избранные порты для остальных. | ||
<code bash> | <code bash> | ||
- | #!/bin/sh | + | #!/usr/bin/env bash |
+ | |||
+ | iptables="echo /sbin/iptables" | ||
+ | |||
+ | WHITELIST=( 10.0.0.0/8 ) | ||
- | iptables="/sbin/iptables" | + | TCP_PORTS=( 22 1514 1515 1516 55000 5601 ) |
+ | UDP_PORTS=( 1514 ) | ||
- | WHITELIST="123.123.123.123 | + | TCP=${TCP_PORTS[@]} |
- | 123.123.123.124/32 | + | UDP=${UDP_PORTS[@]} |
- | 111.111.111.0/24 | + | |
- | 111.222.0.0/16" | + | |
#### START #### | #### START #### | ||
Line 24: | Line 29: | ||
# allow smtp, http | # allow smtp, http | ||
- | $iptables -A INPUT -p tcp -m multiport --dports 25,53,80 -j ACCEPT | + | $iptables -A INPUT -p tcp -m multiport --dports ${TCP// /,} -j ACCEPT |
- | $iptables -A INPUT -p udp -m multiport --dports 53 -j ACCEPT | + | $iptables -A INPUT -p udp -m multiport --dports ${UDP// /,} -j ACCEPT |
# start whitelisting | # start whitelisting | ||
- | for i in $WHITELIST; | + | for i in ${WHITELIST[@]}; |
do | do | ||
$iptables -A INPUT -s $i -j ACCEPT | $iptables -A INPUT -s $i -j ACCEPT |