در نظر داشته باشید در این آموزش مبنا سیستم عامل لینوکس توزیع های مبتنی بر دبیان است. در صورتی که از سیستم عامل یا توزیع متفاوتی استفاده می کنید، ممکن است بخش هایی از این آموزش متفاوت باشد.

فایل لیست آی پی های ستون را می توانید از طریق این دو لینک دریافت کنید:

https://edge.sotoon.ir/ip-list.txt

https://edge.sotoon.ir/ip-list.json

ابتدا فایل زیر را بر روی سرور های خود قرار دهید:

#!/bin/bash
 
 
if ! [ -f "/etc/debian_version" ]; then
   echo "Your Operating System is not supported."
 
 
   exit 1
fi
 
 
if ! [ -x "$(command -v ipset)" ]; then
   apt-get update
   apt-get install ipset netfilter-persistent ipset-persistent
 
 
   if [ $? -eq 0 ]; then
       echo "Internet Connection Issue. Please Install IPSET Package Manually."
 
 
       exit 1
   fi
fi
 
 
curl -s -o /tmp/sotoon-ips.txt https://edge.sotoon.ir/ip-list.txt
 
 
if [ $? -ne 0 ]; then
   echo "Could not be able to download IP list. Please try again."
 
   exit 1
fi
 
 
ipset -N sotoon-ips nethash -exist
ipset flush sotoon-ips
 
 
for ip in `cat /tmp/sotoon-ips.txt`; do
   ipset add sotoon-ips $ip;
done

سپس پرمیشن اجرا را به آن بدهید:

chmod +x /path/to/script.sh

برای اطمینان از عملکرد اسکریپت یکبار به صورت دستی آن را اجرا کنید. سپس می توانید با قرار دادن آن در crontab سیستم خود هر ۲۴ ساعت یکبار آن را اجرا کنید.

0 0 * * * /path/to/script.sh > /dev/null 2>&1

پس از انجام مراحل بالا متناسب با قوانین فایروال، می توانید از این IPSet استفاده کنید:

-A INPUT -m set --match-set sotoon-ips src -j ACCEPT

نمونه ساده ای از قوانین می تواند به این شکل باشد:

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m set --match-set sotoon-ips src -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable