-
-
Save Dzhan85/16ddcde7e676e91604ebbb8ae6e7754d to your computer and use it in GitHub Desktop.
firewall.iptables.txt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
echo "Обнуляем правила" | |
iptables -X | |
iptables -t nat -X | |
iptables -F | |
iptables -t nat -F | |
echo "Блокируем весь трафик" | |
iptables -P INPUT DROP | |
iptables -P OUTPUT DROP | |
iptables -P FORWARD DROP | |
export LAN=eth1 | |
export WAN=eth0 | |
echo "Разрешаем трафик с уже установленных соединений" | |
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT | |
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT | |
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT | |
echo "Блокируем multi & broad casts" | |
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP | |
iptables -A OUTPUT -m pkttype --pkt-type broadcast -j DROP | |
iptables -A FORWARD -m pkttype --pkt-type broadcast -j DROP | |
iptables -A INPUT -m pkttype --pkt-type multicast -j DROP | |
iptables -A OUTPUT -m pkttype --pkt-type multicast -j DROP | |
iptables -A FORWARD -m pkttype --pkt-type multicast -j DROP | |
echo "Отбрасывает плохие пакеты" | |
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP | |
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP | |
iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP | |
iptables -A FORWARD -d 0.0.0.0/8 -j DROP | |
iptables -A FORWARD -d 127.0.0.0/8 -j DROP | |
iptables -A FORWARD -d 255.255.255.255 -j DROP | |
iptables -A FORWARD -d 224.0.0.0/4 -j DROP | |
iptables -A FORWARD -d 240.0.0.0/5 -j DROP | |
iptables -A FORWARD -p tcp --tcp-flags ALL ALL -j DROP | |
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP | |
iptables -A FORWARD -p icmp -m icmp --icmp-type address-mask-request -j DROP | |
iptables -A FORWARD -p icmp -m icmp --icmp-type timestamp-request -j DROP | |
iptables -A FORWARD -p icmp --fragment -j DROP | |
echo "Разрешаем PING для всех" | |
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT | |
iptables -A FORWARD -p icmp --icmp-type 0 -j ACCEPT | |
iptables -A FORWARD -p icmp --icmp-type 8 -j ACCEPT | |
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT | |
echo "Разрешаем DNS для всех" | |
iptables -A INPUT -p udp --sport 53 -j ACCEPT | |
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT | |
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/22 -p udp --dport 53 -j ACCEPT | |
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/22 -p udp --sport 53 -j ACCEPT | |
echo "Разрешаем перенаправление HTTP(S)" | |
iptables -A INPUT -p tcp --sport 80 -j ACCEPT | |
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT | |
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/22 -p tcp --dport 80 -j ACCEPT | |
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/22 -p tcp --sport 80 -j ACCEPT | |
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/22 -p tcp --dport 443 -j ACCEPT | |
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/22 -p tcp --sport 443 -j ACCEPT | |
echo "Разрешаем перенаправление FTP" | |
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/22 -p tcp --dport 20 -j ACCEPT | |
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/22 -p tcp --sport 20 -j ACCEPT | |
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/22 -p tcp --dport 21 -j ACCEPT | |
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/22 -p tcp --sport 21 -j ACCEPT | |
echo "Разрешаем перенаправление SSH (22)" | |
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT | |
iptables -A FORWARD -p tcp --sport 22 -j ACCEPT | |
echo "Разрешаем RSYNC для всех" | |
iptables -A INPUT -p tcp --sport 873 -j ACCEPT | |
iptables -A OUTPUT -p tcp --dport 873 -j ACCEPT | |
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/22 -p tcp --dport 873 -j ACCEPT | |
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/22 -p tcp --sport 873 -j ACCEPT | |
echo "Закрываем снаружи все сервисы кроме разрешенных. Работаем только для внутренней сети" | |
iptables -I INPUT 1 -i ${LAN} -j ACCEPT | |
iptables -I INPUT 1 -i lo -j ACCEPT | |
iptables -A INPUT -p UDP --dport bootps -i !${LAN} -j REJECT | |
iptables -A INPUT -p UDP --dport domain -i !${LAN} -j REJECT | |
echo "Блокируем все нестандартные порты - 1024-65535" | |
iptables -A FORWARD -p tcp --dport 1024:65535 -j DROP | |
iptables -A FORWARD -p tcp --sport 1024:65535 -j DROP | |
iptables -A FORWARD -p udp --dport 1024:65535 -j DROP | |
iptables -A FORWARD -p udp --sport 1024:65535 -j DROP | |
echo "Блокируем внешний доступ к привелегированным портам 0-1023" | |
iptables -A INPUT -p TCP -i !${LAN} -d 0/0 --dport 0:1023 -j DROP | |
iptables -A INPUT -p UDP -i !${LAN} -d 0/0 --dport 0:1023 -j DROP | |
# Ниже не редактировать !!! | |
echo "Добавляем правила для перенаправления трафика (NAT)" | |
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/22 -j ACCEPT # Перенаправляем исходящий | |
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/22 -j ACCEPT # Перенаправляем входящий | |
iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE # Маскируем внутренние IP под внешний для инета | |
echo "Выравниваем значение MTU воизбежании глюков с сайтами" | |
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu | |
echo "Сообщаем ядру о разрешении перенаправления всего трафика" | |
echo 1 > /proc/sys/net/ipv4/ip_forward | |
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment