debian – iptables به rsyslog اجازه می دهد

من از iptables-persistent برای کنترل شبکه در یک جعبه debain استفاده می کنم. برای ساعت هایی که اجازه می دهد ترافیک خروجی در udp port 514 اجازه داده شود ترافیک خروجی:

با استفاده از این خط من قادر به telnet به سرور rsyslog من در udp 514 نیست – هر ایده ای در مورد چرا؟

 # اجازه Rsyslog
-خروجی -o enp0s25 -p udp -m اتصال --tatetate NEW، ESTABLISHED --dport 514 -j ACCEPT

 گربه /etc/iptables/rules.v4

* فیلتر

– ورودی -i lo-j ACCEPT
ورودی -i lo -s 127.0.0.0/8 -j REJECT
OUTPUT -o lo -j ACCEPT

-A INPUT -p icmp -m state -state NEW -cmp-type -j ACCEPT
INPUT -p icmp -m state – state ایجاد شده، مرتبط با -j ACCEPT
OUTPUT -p ICMP -J ACCEPT

-A INPUT -i enp0s25 -p tcp -m state -state NEW، ESTABLISHED -dport 22 -j ACCEPT
-خروجی -o enp0s25 -p tcp -m حالت -State ESTABLISHED -sport 22 -j ACCEPT

-O خروجی -o enp0s25 -p udp -m اتصال –tatetate NEW، ESTABLISHED –dport 514 -j ACCEPT

– ورودی -i enp0s25 -p udp -m state – state NEW، ESTABLISHED –dport 1194 -j ACCEPT
OUTPUT -p udp -m state – state ESTABLISHED –port 1194 -j ACCEPT

-A INPUT -i enp0s25 -p udp -m state – state established –port 53 -j ACCEPT
-خروجی -o enp0s25 -p udp -m حالت – دولت NEW، ESTABLISHED –dport 53 -j ACCEPT
ورودی -i enp0s25 -p tcp -m حالت – حالت ایستگاه –port 80 -j ACCEPT
ورودی -i enp0s25 -p tcp -m حالت – حالت ایستگاه –port 443 -j ACCEPT
-خروجی -o enp0s25 -p tcp -m حالت – دولت NEW، ESTABLISHED –dport 80 -j ACCEPT
-خروجی -o enp0s25 -p tcp -m حالت – دولت NEW، ESTABLISHED –dport 443 -j ACCEPT

-A INPUT -i tun0 -j ACCEPT
-خروجی -o tun0 -j ACCEPT

-A INPUT -m محدودیت – محدود 3 / دقیقه -j LOG –log-prefix "iptables_INPUT_denied:" –log-level 4
-F FORWARD -m limit –limit 3 / min -j LOG –log prefix "iptables_FORWARD_denied:" –log-level 4
-O خروجی -m محدودیت – محدود 3 / دقیقه -j LOG –log-prefix "iptables_OUTPUT_denied:" –log-level 4

-A INPUT -j REJECT
-A FORWARD -j REJECT
-خروجی -j REJECT

COMMIT

چگونه می توان کشور را مسدود کرد، اما https را با IPtables / IPset اجازه می دهد؟

در اینجا این است که چگونه:

 #! / bin / sh
# حذف #، سپس # در خط در بالا اضافه کنید تا فعال شود logs!
# اختیاری: تغییر نام [BLOCKED - INBOUND] به کشور مشخص شده (فقط یک نام در یک زمان مجاز است)
# استفاده برای AsusWRT مرلین به شرح زیر است:
# sh / jffs/scripts/scriptname.sh "xx xx xx xx"
# یا sh / jffs/scripts/countryblock.sh "xx"
# فایل را که میخواهید بفرستید، سپس فقط یک ورودی در / jffs / scripts / firewall-start اضافه کنید (بالای Skynets)
# مثلا:
# sh / jffs/scripts/countryblock.sh "il"
# chmod 0755 / jffs/scripts/countryblock.sh

اگر [ -z "$1" ]؛ سپس اکو "کشور فیلد را نمی توان خالی کرد - لطفا دوباره امتحان کنید"؛ اکو خروج 2؛ فی
اگر [ "${#1}" -gt "246" ]؛ سپس کشور فهرست = "کشورهای متعدد"؛ کشور لیست دیگر = "$ 1"؛ فی
اگر [ "$(nvram get wan0_proto)" = "pppoe" ] || [ "$(nvram get wan0_proto)" = "pptp" ] || [ "$(nvram get wan0_proto)" = "l2tp" ]؛ سپس
    iface = "ppp0"
چیز دیگری
    iface = "$ (nvram get wan0_ifname)"
فی
modprobe xt_set
اگر! ipset -L -n CountryBlock> / dev / null 2> & 1؛ سپس ipset -q ایجاد CountryBlock هاش: net --maxelem 200000 نظر؛ فی
iptables -t raw -D PREVENTION -i "$ iface" -m set -match-set CountryBlock src -j DROP 2> / dev / null
# iptables -t raw -D PREROUTING -i "$ iface" -m set -match-set CountryBlock src -j LOG --log prefix "[BLOCKED - INBOUND]" --log-tcp-sequence --log-tcp- options -log-ip-options 2> / dev / null
iptables -t raw -D predefined -i "$ iface" -m set -match-set CountryBlock src -p tcp -m tcp -m multiport --portsport 80،443 -j ACCEPT 2> / dev / null
iptables -t raw -D PREROUTING -i br0 -m set -match-set CountryBlock dst -j DROP 2> / dev / null
# iptables -t raw -D PREROUTING -i br0 -m set -match-set CountryBlock dst -j LOG --log-prefix "[BLOCKED - OUTBOUND]" --log-tcp-sequence --log-tcp-options - log-ip-options 2> / dev / null
iptables -t raw -D preeroing -i br0 -m set -match-set CountryBlock dst -p tcp -m tcp -m multiport --dports 80،443 -j ACCEPT 2> / dev / null
iptables -t raw -I PREROUTING -i "$ iface" -m set -match-set CountryBlock src -j DROP 2> / dev / null
# iptables -t raw -I PREROUTING -i "$ iface" -m set -match-set CountryBlock src -j LOG --log prefix "[BLOCKED - INBOUND]" --log-tcp-sequence --log-tcp- options -log-ip-options 2> / dev / null
iptables -t raw -I PREROUTING -i "$ iface" -m set -match-set CountryBlock src -p tcp -m tcp -m multiport --sports 80،443 -j ACCEPT 2> / dev / null
iptables -t raw -I PREROUTING -i br0 -m set -match-set CountryBlock dst -j DROP 2> / dev / null
# iptables -t raw -I PREROUTING -i br0 -m set -match-set CountryBlock dst -j LOG --log prefix "[BLOCKED - OUTBOUND]" --log-tcp-sequence --log-tcp-options - log-ip-options 2> / dev / null
iptables -t raw -I PROEROUTING -i br0 -m set -match-set CountryBlock dst -p tcp -m tcp -m multiport -dports 80،443 -j ACCEPT 2> / dev / null
echo "ممنوعیت دامنه های شناخته شده برای ($ {1})"
اکو "فهرست های دانلود"
برای کشور در 1 دلار؛ انجام دادن
    / usr / sbin / curl -fsL --retry 3 http://ipdeny.com/ipblocks/data/aggregated/"$country"-aggregated.zone >> /tmp/CountryBlock.txt
انجام شده
echo "Filtering IPv4 Ranges and Applying Blacklists"
grep -F "/" /tmp/CountryBlock.txt | sed -n "s / \ r //؛ / ^ $ / d؛ / ^ [0-9,\.,\/] * $ / s / ^ / add CountryBlock / p" | sed "s / $ / & نظر " کشور: کشور کشور لیست  "/" | ipset بازگرداندن -!
rm -rf "/tmp/CountryBlock.txt"