Среда, 07 января 2015 11:20

пример настройки iptables

Автор
Оцените материал
(5 голосов)
#!/bin/sh

echo "Loading iptables rules"
#определеяем сетевые карты
int_if="eth1"
ext_if="eth0"
ext_ip=`ifconfig  $ext_if | grep "inet addr" | awk '{print$2}' | sed 's/addr://'`
echo "$ext_ip"
echo 1 > /proc/sys/net/ipv4/ip_forward
#очищаем старые правила
iptables -F
iptables -X
iptables -t nat -F
iptables -t mangle -F
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
modprobe ip_nat_ftp
modprobe ip_nat_pptp
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

echo "loopback allowed..."

iptables -A INPUT -i $int_if -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
echo "SSH allowed ..."
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

echo "RDP"
#iptables -t nat -A PREROUTING -p tcp -d $ext_ip --dport 9000 -j DNAT --to-destination 10.0.0.3:3389
#iptables -t nat -A PREROUTING -p tcp -d $ext_ip --dport 15432 -j DNAT --to-destination 10.0.0.3:4899
#iptables -A FORWARD -o $int_if -d 10.0.0.3 -p tcp --dport 3389 -j ACCEPT

echo "Ping allowed ..."
iptables -A INPUT -i $ext_if -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -i $ext_if -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
#iptables -A INPUT -p all -s 109.173.124.161 -j ACCEPT
iptables -A INPUT -i $ext_if -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i $ext_if -p udp --dport 1723 -j ACCEPT
iptables -A INPUT -i $ext_if -p 47 -j ACCEPT
iptables -A FORWARD -i $ext_if -p 47 -j ACCEPT
echo "mail rules ..."
iptables -A INPUT -p tcp -m multiport --dport 25,465,487,110,143,993,995,443 -j ACCEPT

echo "Allow established"
iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j ACCEPT
iptables -A INPUT -s 185.8.6.16 -p all -j ACCEPT
#iptables -A INPUT -s 62.173.134.10 -p all -j ACCEPT
echo "SQUID redirect"
#iptables -t nat -A PREROUTING -p tcp -s 10.0.0.0/24 -i $int_if -m multiport --dport 80,3128,8080,8081 -j REDIRECT --to-port 3128
#iptables -A INPUT -p TCP -i $int_if --dport 3128 -j ACCEPT

echo "NAT for users"
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $ext_if -j MASQUERADE
#iptables -t nat -A POSTROUTING -o $ext_if -s 192.168.0.0/24 -j SNAT --to-source $ext_ip

echo "Local clients to inet"
iptables -A FORWARD -p ALL -m state --state RELATED,ESTABLISHED -j ACCEPT

 Дополнительные ограничения, например заблокировать все соединения, не инециализированные самим хостом.

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT

Сбрасывать все соединеня на внешнем интерфесе с адресов серых сетей

iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP -m comment --comment "Сбрасываем сеть С"
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP -m comment --comment  "Сбрасываем сеть А"
iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP -m comment --comment  "Сбрасываем сеть B"
iptables -A INPUT -i eth1 -s 224.0.0.0/4  -j DROP -m comment --comment  "Сбрасываем мультикаст"
iptables -A INPUT -i eth1 -s 240.0.0.0/5 -j DROP -m comment --comment  "Сбрасываем сеть Е"

Записать действия над пакетом и сбросить.

iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: "
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

Работаем с диспазоном адресов

iptables -A INPUT -p tcp --destination-port 22 -m iprange --src-range 10.100.0.10-10.100.0.200 -j ACCEPT

Разрешаем только 2 соединения на 22 порт

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j REJECT

 

Прочитано 2415 раз Последнее изменение Понедельник, 11 декабря 2017 08:44

Добавить комментарий


Защитный код
Обновить