Установка Gentoo - iptables

Фото автора =) 31.05.2007 от ROM

Устанавливаем:
emerge iptables

Создаем скрипт с правилами:


#!/bin/sh
INET_IP="192.168.1.2"
INET_IFACE="eth1"
INET_BROADCAST="192.168.1.255"

LAN_IP="192.168.7.1"
LAN_IP_RANGE="192.168.7.0/16"
LAN_IFACE="eth0"

LO_IFACE="lo"
LO_IP="127.0.0.1"

IPTABLES="iptables"

/sbin/depmod -a

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state

/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

$IPTABLES -N bad_tcp_packets

$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets

$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK
   -m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn
   -m state --state NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

# открываем и закрываем наши порты
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 23 -j REJECT

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

$IPTABLES -A INPUT -p tcp -j bad_tcp_packets

$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT

$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT

$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP

# radmin:
$IPTABLES -A FORWARD -i $INET_IFACE -o $LAN_IFACE -p tcp
  -d 192.168.7.2 --dport 4999 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -d $INET_IP -p tcp --dport 4999
  -j DNAT --to-destination 192.168.7.2

$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG
  --log-level DEBUG --log-prefix "IPT INPUT packet died: "

$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets

$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG
  --log-level DEBUG --log-prefix "IPT FORWARD packet died: "

$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets

$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT

$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG
  --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "

$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP

Хочу уточнить, что это всего-лишь пример. ;)
В примере рассмотрены 2 сетевые карты:
сетевая карта с адресом 1.2 смотрит в интернет
сетевая карта с адресом 7.1 смотрит в локальную сеть

Если есть какие-либо вопросы по правилам - добро пожаловать в комменты =)

Другие ссылки по этой теме:
Установка Gentoo. Попытка #2
Radmin и iptables

Дополнение:
Чтобы сохранить правила нужно запустить

/etc/init.d/iptables save

Чтобы iptables запускался автоматически при загрузке запустисте следующую команду:

rc-update add iptables default

Допнение №2:
Строку

 echo "1" > /proc/sys/net/ipv4/ip_forward 

писать не обязательно. Нужно в /etc/sysctl.conf поставить net.ipv4.ip_forward = 1

Дополнение №3:
Полезным будет почитать следующий документ:
wiki


Популярность: 59%

Подпишитесь: rss icon RSS Записей rss iconRSS комментариев.
Понравился пост? Поддержи сайт!

Рубрики: Gentoo |

Комментарии (8)

  1. Установка Gentoo. Попытка #2 | Каждому своё... пишет:

    […] Сервер должен выполнять следующие функции: 1. Интернет-роутер, файрвол (iptables) 2. Прокси-сервер (sqiud) 3. LAMP (Apache2, Mysql4, Perl + PHP) 4. Xfs для […]

  2. Установка Gentoo - vsftpd | Каждому своё... пишет:

    […] также: Установка Gentoo - iptables Radmin и iptables Настраиваем DNS сервер - Bind/Named Настройка proxy […]

  3. УК РФ пишет:

    у меня переменная какая то не пашет….помогите

  4. admin пишет:

    Готов помочь.Что именно пишет при ругани?
    Может обсудим это в форуме?

  5. Сергей пишет:

    А у меня вроде все работает… Странно.

  6. Иван пишет:

    я тоже поставил без проблем!Спасибо

  7. Александр пишет:

    поставил, почемуто не работает(((

  8. Сергей пишет:

    я поставил, спасибо! очень полезная штука

Оставить комментарий

Подпишитесь, пожалуйста:

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.


Рубрики:

Управление:




Рейтинг блогов
Рейтинг блогов
Рейтинг блогов
Яндекс цитирования
Каталог блогов Blogdir.ru
количество читателей онлайн и всего


Я - на Карте
Каждому своё…
Блог о jQuery, Linux и немного программировании