Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##!/bin/bash
- export IPT="iptables"
- # Внешний интерфейс
- export WAN=ppp0
- export WAN_IP=89.109.14.142
- # Локальная сеть
- export LAN1=enp6s0
- export LAN1_IP_RANGE=192.168.0.0/24
- # Очищаем правила
- $IPT -F
- $IPT -F -t nat
- $IPT -F -t mangle
- $IPT -X
- $IPT -t nat -X
- $IPT -t mangle -X
- # Запрещаем все, что не разрешено
- $IPT -P INPUT DROP
- $IPT -P OUTPUT DROP
- $IPT -P FORWARD DROP
- # Разрешаем localhost и локалку
- $IPT -A INPUT -i lo -j ACCEPT
- $IPT -A INPUT -i $LAN1 -j ACCEPT
- $IPT -A OUTPUT -o lo -j ACCEPT
- $IPT -A OUTPUT -o $LAN1 -j ACCEPT
- # Рзрешаем пинги
- $IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
- $IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
- $IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
- $IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
- # Разрешаем все исходящие подключения сервера
- $IPT -A OUTPUT -o $WAN -j ACCEPT
- # Разрешаем все входящие подключения сервера
- #$IPT -A INPUT -i $WAN -j ACCEPT
- # разрешаем установленные подключения
- $IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
- $IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
- $IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
- # Отбрасываем неопознанные пакеты
- $IPT -A INPUT -m state --state INVALID -j DROP
- $IPT -A FORWARD -m state --state INVALID -j DROP
- # Отбрасываем нулевые пакеты
- $IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
- # Закрываемся от syn-flood атак
- $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
- $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
- # Блокируем доступ с указанных адресов
- #$IPT -A INPUT -s 84.122.21.197 -j REJECT
- # Пробрасываем внешний порт 8102 на локальный адрес и порт 8102
- $IPT -t nat -A PREROUTING -p tcp --dport 8102 -i ${WAN} -j DNAT --to 192.168.0.92:8102
- $IPT -A FORWARD -i $WAN -d 192.168.0.92 -p tcp --dport 8102 -j ACCEPT
- # Пробрасываем внешний порт 8000 на локальный адрес и порт 22
- $IPT -t nat -A PREROUTING -p tcp --dport 8000 -i ${WAN} -j DNAT --to 192.168.0.92:22
- $IPT -A FORWARD -i $WAN -d 192.168.0.92 -p tcp --dport 22 -j ACCEPT
- # Разрешаем доступ из локалки наружу
- $IPT -A FORWARD -i $LAN1 -o $WAN -j ACCEPT
- # Закрываем доступ снаружи в локалку
- $IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT
- # Включаем NAT
- $IPT -t nat -A POSTROUTING -o $WAN -s $LAN1_IP_RANGE -j MASQUERADE
- # открываем доступ к SSH
- $IPT -A INPUT -i $WAN -p tcp --dport 27885 -j ACCEPT
- #Открываем доступ к web серверу
- $IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
- $IPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
- #Открываем доступ к DNS серверу
- $IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT
- # Включаем логирование
- #$IPT -N block_in
- #$IPT -N block_out
- #$IPT -N block_fw
- #$IPT -A INPUT -j block_in
- #$IPT -A OUTPUT -j block_out
- #$IPT -A FORWARD -j block_fw
- #$IPT -A block_in -j LOG --log-level info --log-prefix "--IN--BLOCK"
- #$IPT -A block_in -j DROP
- #$IPT -A block_out -j LOG --log-level info --log-prefix "--OUT--BLOCK"
- #$IPT -A block_out -j DROP
- #$IPT -A block_fw -j LOG --log-level info --log-prefix "--FW--BLOCK"
- #$IPT -A block_fw -j DROP
- # Сохраняем правила
- /sbin/iptables-save > /etc/iptables.rules
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement