iptables + ispmanager lite

Kenny

newbie
Регистрация
17 Авг 2006
Сообщения
492
Реакции
174
Статья будет полезна тем, кто использует хостинг панели на серверах или на виртуальном пространстве, но кому не хочется копаться в настройках фаервола.

Дано:
1. 3 сетевых интерфейса (на одном висят сайты, второй нужен для ДНС, третий - локальный)
2. Панель - IPSManager Lite
3. iptables
4. Фтп принудительно использует порты 49152:65535

Код:
#!/bin/sh

FW="/sbin/iptables"

#
$FW -F # Сбрасываем все правила iptables
$FW -X # Сбрасываем все правила iptables, кроме дефолтных 

# ---Firewall---

# Переменные
FTPCON="20:21" # Команды FTP
FTPDATA="49152:65535" # Данные FTP

# IP аддреса
HOME="ip_address" # Admin's Home
ALIASWEB="ip_address" # IP аддрес интерфейса, на котором будут висеть сайты
ALIASDNS="ip_address" # 2-ой IP аддрес, чтобы нормально работал DNS
ALIASLAN="ip_address" # IP в локалке (если есть)
ALIASLOOP="127.0.0.1" # IP LoopBack (замыкание на себя)

# Интерфейсы
INTWEB="" # Название интерфейса, на котором будут висеть сайты
INTDNS="" # Интефейс для DNS2
INTLAN="" # Интерфейс локальной сети (если есть)

# Применительно к самому серверу (дропаем форвардинг, чтобы никто не юзал сервак, как шлюз)
$FW -P INPUT DROP 
$FW -P FORWARD DROP

# (разрешаем все для себя)
$FW -A INPUT -s $ALIASLOOP -d $ALIASLOOP -j ACCEPT
$FW -A INPUT -s $ALIASWEB -d $ALIASWEB -j ACCEPT
$FW -A INPUT -s $ALIASLAN -d $ALIASLAN -j ACCEPT
$FW -A INPUT -s $ALIASDNS -d $ALIASDNS -j ACCEPT

#
$FW -A INPUT -p icmp --icmp-type 8 -m limit --limit 10/s --limit-burst 20 -j ACCEPT                     # ICMP
$FW -A INPUT -p icmp --icmp-type 11 -m limit --limit 10/s --limit-burst 20 -j ACCEPT                    # ICMP

# ---Доступ к сервисам---

# SSH
$FW -A INPUT -i $INTWEB -s $HOME -d $ALIASWEB -p tcp --dport 22 -j ACCEPT                      # Admin's Home

# FTP
$FW -A INPUT -i $INTWEB  -p tcp --dport $FTPDATA -j ACCEPT                        # Разрешаем FTP Data
$FW -A INPUT -i $INTWEB -p tcp --dport $FTPCON -j ACCEPT                 # Разрешаем FTP

# HTTP
$FW -A INPUT -i $INTWEB -p tcp --dport 80 -j ACCEPT                                                            # Разрешаем http

# P2P
$FW -A INPUT -i $INTWEB  -p tcp --dport 411 -j ACCEPT                          # Разрешаем p2p (если есть) 

# ispmanager 
$FW -A INPUT -i $INTWEB  -p tcp --dport 443 -j ACCEPT                          # Разрешаем ISP Manager

# DNS
$FW -A INPUT -i $INTWEB -p udp --dport 53 -j ACCEPT # Разрешаем DNS для двух айпишнегов
$FW -A INPUT -i $INTDNS -p udp --dport 53 -j ACCEPT #

# POP
$FW -A INPUT -i $INTWEB -p tcp --dport 110 -j ACCEPT # Разрешаем POP3

# SMTP
$FW -A INPUT -i $INTWEB -p tcp --dport 25 -j ACCEPT # Разрешаем SMTP

#
$FW -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT # Дропаем битые пакеты, которые идут на вшнешний мир, если когда-нить NAT будет
$FW -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT

Навеяно темой
 
Если 3 сетевухи, вероятно сервер используется как шлюз для локалки.
Для полноты картины может нужно бы написать про nat ? (еще с нарезкой скоростей пользователям :) )
 
Не, шлюзом не используется. Просто есть внутренняя локальная сеть из нескольких машин, для дальнейшего объединения в кластер по средством iptables. Но, это уже отдельная статья =) Если будет нужна статья по НАТу через iptables/ipfw, могу написать или выложить свои рабочие конфиги
 
Не лучше ли поставить CFS?
 
Может быть и лучше, но так привычнее
 
Назад
Сверху