#!/bin/sh
# Задаем некоторые переменные:
# Переменная, задающая путь к файлу запуска iptables.
iptables="/sbin/iptables"
# Название сетевой на которую интернет приходит
INET_IFACE="eth1"
# Название сетевой которая смотрит в локальную сеть
LAN_IFACE="eth0"
IP_PERM="192.168.10.5"
IP_VPN="192.168.10.2"
#IP_ELEKTRO="192.168.10.100"
TCP_BANK="1024"
UDP_BANK="87"
TCP_TRANSKREDIT_BANK="3231"
#UDP_VPN="1194"
start_fw()
{
# Удаление всех правил во всех таблицах.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
#
# Удаление пользовательских правил во всех таблицах.
#
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Включить перенаправление пакетов через ядро.
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#Пример для нескольких портов
#iptables -A FORWARD -o $INET_IFACE -m state --state NEW -p tcp -m multiport --dports 25,110,5190 -j ACCEPT
#Разрешить DNAT траффик. проброс траффика внутрь сети.
iptables -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
# Разрешаем прохождение любого трафика по интерфейсу обратной петли
iptables -A INPUT -i lo -j ACCEPT
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Разрешить уже установленные соединения
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешаем себе ping наружу - нас же не попингуешь - пакеты отбрасываются.
iptables -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-reply -j ACCEPT
iptables -A FORWARD -p icmp -m icmp -o $INET_IFACE --icmp-type echo-request -j ACCEPT
# открываем Порт Для DNS
iptables -A INPUT -i $LAN_IFACE -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
# SSH (22)
iptables -A FORWARD -o $INET_IFACE -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
# VPN клиент (1194)
iptables -t nat -A PREROUTING -p udp --dport 1194 -d 192.168.1.2 -j DNAT --to-destination $IP_VPN
iptables -t nat -A POSTROUTING -p udp --dport 1194 -d $IP_VPN -j SNAT --to 192.168.1.2
# OB (44000,44001)
iptables -A FORWARD -o $INET_IFACE -m state --state NEW -p udp -m multiport --dports 44000,44001,46000,46001 -j ACCEPT
# (3128) SQUID
iptables -A FORWARD -o $INET_IFACE -m state --state NEW -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -m state --state NEW -j ACCEPT
# SMTP клиент (25)
iptables -A FORWARD -o $INET_IFACE -m state --state NEW -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
# POP3 клиент (110)
iptables -A FORWARD -o $INET_IFACE -m state --state NEW -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT
# Для ICQ (5190)
iptables -A FORWARD -o $INET_IFACE -m state --state NEW -p tcp --dport 5190 -j ACCEPT
# HTTP/HTTPS клиент (80, 443)
#iptables -A FORWARD -o $INET_IFACE -m state --state NEW -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
#Открываем Порт для Определенного IP внутри сети(На комп Пермяковой для Клиент Банка(tcp 1024 | udp 87)
iptables -t nat -A POSTROUTING -s $IP_PERM -o $INET_IFACE -j MASQUERADE
iptables -A FORWARD -p tcp --dport $TCP_BANK -s $IP_PERM -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp --dport $UDP_BANK -s $IP_PERM -m state --state NEW -j ACCEPT
iptables -A FORWARD -p tcp --dport $TCP_TRANSKREDIT_BANK -s $IP_PERM -m state --state NEW -j ACCEPT
}
case "$1" in
start) echo -n "Starting firewall: iptables"
start_fw
echo "."
;;
stop) echo -n "Stopping firewall: iptables"
iptables -F
iptables -X
echo "."
;;
save) echo -n "Saving firewall: iptables"
iptables-save > /etc/rules-save
echo "."
;;
restart) echo -n "Restarting firewall: iptables"
iptables -F
iptables -X
cat /etc/rules-save | iptables-restore
echo "."
;;
reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"
echo "."
;;
*) echo "Usage: /etc/init.d/rc.iptables start|stop|restart|reload|force-reload"
exit 1
;;
esac
exit 0
ifconfig
eth0 Link encap:Ethernet HWaddr 00:80:48:1c:97:ac
inet addr:192.168.10.252 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::280:48ff:fe1c:97ac/64 Диапазон:Ссылка
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13041714 errors:2 dropped:0 overruns:1 frame:0
TX packets:14798654 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:1000
RX bytes:1383875222 (1.3 GB) TX bytes:276481197 (276.4 MB)
Прервано:22 Base address:0xc000
eth1 Link encap:Ethernet HWaddr 00:80:48:15:fa:cc
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::280:48ff:fe15:facc/64 Диапазон:Ссылка
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15329281 errors:0 dropped:0 overruns:0 frame:0
TX packets:14675558 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:1000
RX bytes:202339396 (202.3 MB) TX bytes:1539065011 (1.5 GB)
Прервано:18 Base address:0xc400
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Диапазон:Узел
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2308 errors:0 dropped:0 overruns:0 frame:0
TX packets:2308 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:0
RX bytes:4492864 (4.4 MB) TX bytes:4492864 (4.4 MB)