все мое повествование как обычно основано только на моем личном опыте , моем переводе
ipchains-HOWTO и немногой толики здравого смысла ....
Большинство файрволлов на бесплатных юниксах основаны не на просмотре самого
содержимого пакетов, а на просмотре служебной информации в заголовках пакетов (от кого и
куда идет) - этого хватает на 99% и позволяет не загружать процессор анализом трафика ....
Зачем они нужны ? ну для чистого юникса без дополнительных "примочек" или программ они
как собаке пятая нога .. проще будет отключить ненужные сервисы или чуть-чуть поправить
соответствующие конфиги ..а вот если за юниксом сидит толпа беззащитных виндузятников ...
которые могут упасть от любого чиха ... или на сервере крутится что-то монстрообразное, что
хоть и имеет защиту по паролям, но лучше его прикрыть (типа оракла), вот тут-то и входит в
свою роль файрволл .... ниже я буду давать реальные примеры использования ipchains,
выдранные из /etc/rc.d/rc.local ;-) с маленькими моими комментариями ...они начинаются со
знака # ;-)))
#Включил форвардинг
echo 1 > /proc/sys/net/ipv4/ip_forward
# вообще-то это не обязательно ... последние дистрибуты сами это делают,
# но я хАчу ! да и душе спокойнее ....
#Теперь народ нормально пингует внешние интерфейсы
#и нормально ходит на сервисы, прибинденные только на внешние интерфейсы
#Включаем маскарадинг
insmod ip_masq_user
#Теперь пишем правила
# очищаем все цепочки - опять же для успокоения души или для повторного запуска
# скрипта, вынесенного в отдельный файлик ...
ipchains -F
# Я решил закрыть только нужные порты .. а остальное оставить открытым ...
# Меняем дефаулт полиси - теперь те пакетики, которые я явно не разрешил
# фиг куда уйдут ....
ipchains -P forward DENY
# открыть ping и traceroute нуружу
ipchains -A forward -j MASQ -s 10.0.0.0/24 -p icmp -d 0.0.0.0/0
# это для тех, кто хочет сам со своей машины убедиться, что интернет есть
# и его пакетик уходит далеко-далеко .....
# открыть почту наружу
ipchains -A forward -j MASQ -s 10.0.0.0/24 -p tcp -d 0.0.0.0/0 pop-3
ipchains -A forward -j MASQ -s 10.0.0.0/24 -p tcp -d 0.0.0.0/0 smtp
ipchains -A forward -j MASQ -s 10.0.0.0/24 -p tcp -d 0.0.0.0/0 nntp
# теперь пользователи из приватной сети могут нормально читать и писать почту
# не с моих серверов ....
# Ниже строка разрешает пользователю только с компа a.b.c.d лезть по
# 540 порту (uupc) на комп с адресом q.w.e.r и только на него
ipchains -A forward -j MASQ -s a.b.c.d/32 -p tcp -d q.w.e.r/32 540
# необходимо по внутренним причинам ... для транспарент сквида, который я
# до сих пор не сделал ...
ipchains -A input -i lo -j ACCEPT
# прикрываем телнет для всех, кроме внутренней сетки ...a.b.c.d/q.w.e.r
# соответствено адрес и маска внешней сети ...
ipchains -A input -p tcp -s ! 10.0.0.0/255.0.0.0 -d a.b.c.d/q.w.e.r
telnet -j REJECT
#прикрываем оракл и все его причиндалы
ipchains -A input -p tcp -s ! 10.0.0.0/255.0.0.0 -d a.b.c.d/q.w.e.r 8888
-j REJECT
ipchains -A input -p tcp -s ! 10.0.0.0/255.0.0.0 -d a.b.c.d/q.w.e.r 8890
-j REJECT
ipchains -A input -p tcp -s ! 10.0.0.0/255.0.0.0 -d a.b.c.d/q.w.e.r 1521
-j REJECT
ipchains -A input -p tcp -s ! 10.0.0.0/255.0.0.0 -d a.b.c.d/q.w.e.r 1526
-j REJECT
#устанавливаем приоритеты на телнет и pop3
ipchains -A output -p TCP -d 0.0.0.0 telnet -t 0x01 0x10
ipchains -A output -p TCP -d 0.0.0.0 ssh -t 0x01 0x10
ipchains -A output -p TCP -d 0.0.0.0/0 pop-3 -t 0x01 0x02
# пускаем редиректор ....
/usr/sbin/redir --laddr=a.b.c.d --lport=80 --caddr=10.0.0.1 --cport=80
--syslog &
Вот и весь реальный кусок моего конфига, отвечающий за редиректор ... Как видите, здесть
прикрыты только те сервисы, которые либо не умеют сами прикрываться (оракл) , либо мне
было ломы врапперы для них настраивать (телнет) ....Все остальное я вручную исключил из
всяких inetd.conf ... Насчет последней строчки необходимо уточнить ....эту программку (redir) я
нашел в завалах freshmeat ... по ряду причин www сервер компании стоит в приватной подсетке
и его надо как-то наружу выставить ... с NAT в линуксе я не стал (не смог ?;-) разбираться и
воткнул этот редиректор ... это манюсенькая программка, которая втупую перебрасывает трафик
с одной дырки на другую .... все работает, только в лог файлах www теперь все посетители
приходят с одного адреса ;-)))) С моей точки зрения вроде все понятно ... но если что -
спрашивайте ....
|
|
|