The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Пример настройки ipchains для внешнего сервера (ipchains linux script firewall)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: ipchains, linux, script, firewall,  (найти похожие документы)
From: btr <none at btr.name> Newsgroups: email Date: Mon, 20 Oct 2004 14:31:37 +0000 (UTC) Subject: Пример настройки ipchains для внешнего сервера Пример настройки ipchains для внешнего сервера WWW, DNS, POP3, IMAP Полдня потратил на то чтобы найти более менее рабочий пример, не нашел, короче пришлось самому ваять. Данный конфиг ipchains-а, открывает для локальной сети службы FTP, SSH, SMTP, WWW, DNS, POP3, IMAP. Для внешнего мира остается только SMTP, DNS и WWW. #!/bin/sh # write btr icq:#105360 . /etc/rc.d/init.d/functions . /etc/sysconfig/network echo 1 > /proc/sys/net/ipv4/ip_forward if [ ! -x /sbin/ipchains ] then exit 0 fi # Ваш интерфейс смотрящий в Инет. INT="eth0" LOOPBACKINT="lo" # IP адрес на интерфейсе. IPADDR="195.195.195.195" # Ваша сеть NET="195.195.195.0/24" LOOPBACK="127.0.0.0/8" LOCALHOST="127.0.0.0/8" ANYWHERE="any/0" PRIVPORTS="0:1023" UNPRIVPORTS="1024:65535" case "$1" in start) INT="eth0" LOOPBACKINT="lo" # Описание выше IPADDR="195.195.195.195" NET="195.195.195.0/24" LOOPBACK="127.0.0.0/8" LOCALHOST="127.0.0.0/8" ANYWHERE="any/0" PRIVPORTS="0:1023" UNPRIVPORTS="1024:65535" # Сбрасываем правила и выставляем разрешить все по дефолту. ipchains -F ipchains -X ipchains -P input ACCEPT ipchains -P output ACCEPT ipchains -P forward ACCEPT ipchains -A input -i lo -j ACCEPT ipchains -A output -i lo -j ACCEPT ipchains -A forward -i lo -j ACCEPT # Разрешаем ICMP ipchains -A input -i $INT -p icmp --icmp-type source-quench -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type source-quench -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type parameter-problem -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type parameter-problem -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type destination-unreachable -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type destination-unreachable -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type time-exceeded -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type time-exceeded -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type echo-reply -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type echo-request -d 0.0.0.0/0 -j ACCEPT ipchains -A output -i $INT -p icmp --icmp-type echo-reply -d 0.0.0.0/0 -j ACCEPT ipchains -A input -i $INT -p icmp --icmp-type echo-request -d $IPADDR -j ACCEPT # ХЗ для чего это но надо =))) ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET -d $IPADDR -j ACCEPT # SMTP, чтобы почта ходила. Юзается для всего мира. ipchains -A output -i $INT -p tcp -s $IPADDR -d $ANYWHERE 25 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $ANYWHERE 25 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $ANYWHERE $UNPRIVPORTS -d $IPADDR 25 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 25 -d $ANYWHERE $UNPRIVPORTS -j ACCEPT # FTP открываем чисто для своих =) ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET 21 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET 21 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $NET $UNPRIVPORTS -d $IPADDR 21 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 21 -d $NET $UNPRIVPORTS -j ACCEPT # POP3 для клиентов. ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET 110 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET 110 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $NET $UNPRIVPORTS -d $IPADDR 110 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 110 -d $NET $UNPRIVPORTS -j ACCEPT # SSH открываем для своей сети. ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET 22 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET 22 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $NET $UNPRIVPORTS -d $IPADDR 22 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 22 -d $NET $UNPRIVPORTS -j ACCEPT # WWW для всего мира естественно. ipchains -A output -i $INT -p tcp -s $IPADDR -d $ANYWHERE 80 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $ANYWHERE 80 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $ANYWHERE $UNPRIVPORTS -d $IPADDR 80 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 80 -d $ANYWHERE $UNPRIVPORTS -j ACCEPT # IMAP для клиентов. ipchains -A output -i $INT -p tcp -s $IPADDR -d $NET 143 -j ACCEPT ipchains -A input -i $INT -p tcp ! -y -s $NET 143 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p tcp -s $NET $UNPRIVPORTS -d $IPADDR 143 -j ACCEPT ipchains -A output -i $INT -p tcp ! -y -s $IPADDR 143 -d $NET $UNPRIVPORTS -j ACCEPT # DNS для всех. ipchains -A output -i $INT -p udp -s $IPADDR -d $ANYWHERE 53 -j ACCEPT ipchains -A input -i $INT -p udp -s $ANYWHERE 53 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p udp -s $ANYWHERE $UNPRIVPORTS -d $IPADDR 53 -j ACCEPT ipchains -A output -i $INT -p udp -s $IPADDR 53 -d $ANYWHERE $UNPRIVPORTS -j ACCEPT # NTP, для своей сети, юзается для коррекции времени =)) ipchains -A output -i $INT -p udp -s $IPADDR -d $NET 113 -j ACCEPT ipchains -A input -i $INT -p udp -s $NET 113 -d $IPADDR $UNPRIVPORTS -j ACCEPT ipchains -A input -i $INT -p udp -s $NET $UNPRIVPORTS -d $IPADDR 113 -j ACCEPT ipchains -A output -i $INT -p udp -s $IPADDR 113 -d $NET $UNPRIVPORTS -j ACCEPT # разрешаем ICMP ipchains -A input -i $INT -p icmp -d $IPADDR -j ACCEPT ipchains -A output -i $INT -p icmp -s $IPADDR -j ACCEPT # Остальное, что не разрешено в запретку. ipchains -A input -i $INT -j DENY ipchains -A output -i $INT -j DENY ipchains -A forward -i $INT -j DENY ;; forward) ipchains -F ipchains -X ipchains -P input ACCEPT ipchains -P output ACCEPT ipchains -P forward ACCEPT #MASQ ipchains -A input -i lo -j ACCEPT ipchains -A output -i lo -j ACCEPT ipchains -A forward -i lo -j ACCEPT ipchains -A forward -j REJECT ;; stop) echo -n "Shutting Firewalling Services: " ipchains -F ipchains -X ipchains -P input ACCEPT ipchains -P output ACCEPT ipchains -P forward ACCEPT ;; restart|reload) $0 stop $0 start ;; *) echo -n "Usage: ipchains {start|stop|restart|reload}" exit 1 esac exit 0

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру