Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Видео Unix Интернет Firewall Пример настройки ipchains для внешнего сервера RSS

Пример настройки ipchains для внешнего сервера

Текущий рейтинг: 5 (проголосовало 3)
 Посетителей: 1061 | Просмотров: 1357 (сегодня 0)  Шрифт: - +
Полдня потратил на то чтобы найти более менее рабочий пример, не нашел, 
короче пришлось самому ваять. 
Данный конфиг 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
Иcточник: http://www.opennet.ru  •  Опубликована: 05.03.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.