Материал из Wiki.VDSPlanet.ru.
Быстрый firewall для вашей системы.
Находим iptables
[root@vps /]# which iptables
или
[root@vps /]# whereis iptables
Создаем whitelist (IP проходит через firewall) и blacklist (пакеты с IP постоянно отбрасываются). Оба файла можно оставить пустыми:
[root@vps /]# touch /usr/local/etc/whitelist.txt && touch /usr/local/etc/blacklist.txt
В каждый файл (по желанию) добавляем IP адреса, для примера:
4.2.2.2 66.35.15.20 209.1.1.1 143.11.36.17
firewall.sh Script
То что идет ниже вставляем в /etc/init.d/firewall.sh и редактируем в зависимости от ваших нужд:
#!/bin/sh
#
## Местоположение файлов
#
WHITELIST=/usr/local/etc/whitelist.txt
BLACKLIST=/usr/local/etc/blacklist.txt
#
## Порты которые мы будем использовать.
#
ALLOWED="22 25 53 80 443 465 587 993"
#
## Обозначаем точное местонахождение IPtables
#
IPTABLES=/sbin/iptables
#
## очишаем правила
#
$IPTABLES -F
echo 'Clearing Tables F'
$IPTABLES -X
echo 'Clearing Tables X'
$IPTABLES -Z
echo 'Clearing Tables Z'
echo 'Allowing Localhost'
#Allow localhost.
$IPTABLES -A INPUT -t filter -s 127.0.0.1 -j ACCEPT
#
## Белый список
#
for x in `grep -v ^# $WHITELIST | awk '{print $1}'`; do
echo "Permitting $x..."
$IPTABLES -A INPUT -t filter -s $x -j ACCEPT
done
#
## Черный список
#
for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do
echo "Denying $x..."
$IPTABLES -A INPUT -t filter -s $x -j DROP
done
#
## Разрешенные порты
#
for port in $ALLOWED; do
echo "Accepting port TCP $port..."
$IPTABLES -A INPUT -t filter -p tcp --dport $port -j ACCEPT
done
for port in $ALLOWED; do
echo "Accepting port UDP $port..."
$IPTABLES -A INPUT -t filter -p udp --dport $port -j ACCEPT
done
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p udp -j DROP
$IPTABLES -A INPUT -p tcp --syn -j DROP
$IPTABLES -A INPUT -p icmp -j DROP
Запускаем Firewall
[root@vps /]# chmod 700 /etc/init.d/firewall.sh [root@vps /]# /etc/init.d/firewall.sh

