Настройка файрвола в Linux 1455 дней назад Цитата('3','2071923','6','65144')">Сообщить о спамеНастройка файрвола в Linux
Не для кого не секрет что сегодня подключив компьютер к интернету нельзя гарантировать свою безопасность. В сети запущено немыслемое количество сканеров портов, и вы даже можете не подозревать, что на вашем компе ищут уязвимости.
Конечно, самым лучшим способом избавится от этой головной боли это совсем не выходить в интернет... Но оно нам надо? Не для этого мы здесь собрались. Наиболее совершенной защитой от таких напастей можно считать Файрвол - программный фильтр для IP трафика. Вот и поговорим о его настройке.
В старых дистрибутивах Linux, основаных на старом ядре (2.2.x) для этого служила команда ipchains. В ядре 2.4.x уже появилась более мощная в своих возможностях команда iptables. ipchains рассматривать не буду, а расскажу о типовых настройках iptables.
Имеем: сеть небольшого предприятия (192.168.0.0/24 сеть класса С), почтовый сервер внутри сети предприятия, выход в интернет через этот же сервер, прокси сервер, ну еще например FTP и WEB сервер. Интерфейс eth0 смотрит в сторону локальной сети. eth1 в сторону инета. У eth1 IP адрес допустим 123.123.123.123
Для удобства настройки я рекомендую написать скрипт (например iptables.rc, который будет устанавливать нужные правила. У меня например все свои скрипты лежат в оном месте в /usr/local/srcipts/
Пример iptables.rc:
- !/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward #Включение форвадинга пакетов. Так на всякий случай.
/sbin/iptables -F
/sbin/iptables -t nat -F #Очистка таблицы преобразования адресов.
/sbin/iptables -P INPUT DROP #Устанавливаем правила по умолчанию в DROP
/sbin/iptables -P FORWARD DROP #т.е. отсекание не разрешенных пакетов.
- blacklist
/sbin/iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP #Blacklist. Я заношу сюда IP
/sbin/iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP #с которых приходят письма с вирусами.
- Фильтрация поддельных IP
- Здесь создаются правила фильтрации поддельных ip адресов, т.е. которые принадлежат
- зарезервированому диапазону частных сетей, и которые не могут в принципе маршрутизироваться в internet
/sbin/iptables -A INPUT -s 192.168.0.0/16 -i eth1 -j DROP
/sbin/iptables -A INPUT -s 10.0.0.0/8 -i eth1 -j DROP
/sbin/iptables -A INPUT -s 172.16.0.0/12 -i eth1 -j DROP
/sbin/iptables -A INPUT -s 192.168.111.0/24 -i eth1 -j DROP
- Преобразование сетевых адресов
- Пакеты приходящие от клиентских тачек, имеют адрес отправителя принадлежащий частной сети
- Поэтому чтобы они маршрутизировались в инете необходимо подменить адрес источника на
- настоящий IP.
- нужно это правило если провайдер предоставил прямой ip адрес (без всяких PPPoe и VPN)
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 123.123.123.123
- Нужно это правило если подключение идет через PPPoe, VPN или даже DialUp.
- Хотя если изменить ppp0 на eth1 все будет работать. Только нагрузка на проц будет выше.
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24 -o ppp0
- SMTP (почтовый сервер)
- Разрешаем всем конектиться к данному порту, чтобы принимать почту. (если стоит почтовый сервер)
/sbin/iptables -A INPUT -p tcp --dport 25 -i eth1 -j ACCEPT
- httpd (WEB сервер)
- Аналогично...
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- Разрешаем конектится из локальной сети к любому сервису (если доверяете своим юзерам)
- Иначе можно разрешить только необходимые сервисы... см. далее.
/sbin/iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j ACCEPT
- pop3
/sbin/iptables -A INPUT -p tcp --dport 110 -s 192.168.0.0/24 -i eth0 -j ACCEPT
- smtp
/sbin/iptables -A INPUT -p tcp --dport 25 -s 192.168.0.0/24 -i eth0 -j ACCEPT
- squid (proxy server)
/sbin/iptables -A INPUT -p tcp --dport 3128 -s 192.168.0.0/24 -i eth0 -j ACCEPT
- FTP server
/sbin/iptables -A INPUT -p tcp --dport 21 -s 192.168.0.0/24 -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 20 -s 192.168.0.0/24 -i eth0 -j ACCEPT
- Разрешаем приходить и форвадится связанным пакетам (которые являются ответами на запросы)
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
- Теперь правила, которые разрешают форвадинг пакетов в инет.
- Можно прописать только для конкретных ip (например для себя а всех остальных только через прокси)
- Но тогда можно будет через мэйлер читать почту только со своего сервера, а если разрешить
- форвадинг тогда клиентам можно будет все (включая троянов), так что лучше этого не делать.
/sbin/iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
- Порадовать пользователей прелестями ICQ. хотя ICQ может прогонять свой трафик через прокси
/sbin/iptables -A FORWARD -s 192.168.0.11 -p tcp --dport 5190 -j ACCEPT
Комментарии: 1 Просмотров: 1847
|