iptables > ipfw

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
J.Korvin
сержант
Сообщения: 232
Зарегистрирован: 2008-11-22 12:03:41

iptables > ipfw

Непрочитанное сообщение J.Korvin » 2008-12-16 2:07:51

Здравствуйте, не давно начал изучать FreeBSD и столкнулся с проблемой firewall не сильно понятный и плохо документирован. Прошу помочь как будет выглядеть firewall на ipfw. Вот мой на iptables
Система чем мне интересная что у меня в скрипте можна быстро делать изменения по ip доступ и порты. Нужно для того чтобы организовать nat с маскарадингом ну как полный так и по портах. Сервер с 2 сетями и PPPOE поднят к провайдеру как раз на него и нужен NAT. Кто не сочтет за трудность помогите буду признателен. Заранее благодарю. :oops:
И вот обязательно ли это:
Для работы nat в ipfw надо :
В /etc/make.conf добавить строку CFLAGS+= -DIPFIREWALL_NAT
и пересобрать модуль ipfw.ko
# cd /usr/src/sys/modules/ipfw
# make && make install

Код: Выделить всё

#!/bin/bash
fr=/sbin/iptables
rt=/sbin/route

#RUN config PPTP TUNEL
pptp="0" #Start pptp yes(1) pptp no(0)
pidtun="/var/run/ppp0.pid" #Procesed TUNEL

#READ NAT IP
natip=`cat /etc/firewall/nat/ip`
natport=`cat /etc/firewall/nat/port`
inter=`cat /etc/firewall/nat/interfiseNAT`

#READ IP SSH
ipssh=`cat /etc/firewall/openssh/ssh_ip`

#Ethernet interfase
internal1=`cat /etc/firewall/lan1`
internal2=`cat /etc/firewall/lan2`
external=`cat /etc/firewall/wan`

#Ports READ LAN 1
tcplan1=`cat /etc/firewall/port.lan1/tcp`
udplan1=`cat /etc/firewall/port.lan1/udp`

#Ports READ LAN 2
tcplan2=`cat /etc/firewall/port.lan2/tcp`
udplan2=`cat /etc/firewall/port.lan2/udp`

#Ports READ WAN
tcpwan=`cat /etc/firewall/port.wan/tcp`
udpwan=`cat /etc/firewall/port.wan/udp`

#IP_READ
vip_ip=`cat /etc/firewall/vip_ip`
ban_ip=`cat /etc/firewall/ban_ip`

#PPTP + LAN + PPPE
ipl=`cat /etc/firewall/vpn/ipl`
ipgw=`cat /etc/firewall/vpn/gw`
lanvpn=`cat /etc/firewall/vpn/vpninterfise`
provider=`cat /etc/firewall/vpn/provider`

#CLEAR_ALL
echo -en "Clear all..."
$fr -F INPUT 
$fr -F OUTPUT 
$fr -F FORWARD
$fr -t nat -F
echo "OK"

#Forearding
echo -en "Forwarding open ..."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "OK"

#Nat setings
echo -en "Nat aplay setings..."
$fr -t nat -A POSTROUTING -s $natip -m multiport -p tcp --dports $natport -o $inter -j MASQUERADE
$fr -t nat -A POSTROUTING -s $natip -p icmp -o $inter -j MASQUERADE

#iptables -t nat -A POSTROUTING -s 192.168.4.1 -m multiport -p tcp --dports 80,21,49152:65534 -o eth0 -j MASQUERADE
#$fr -t nat -A POSTROUTING -s $natip -p tcp --dport $natport -o eth0 -j MASQUERADE
#$fr -t nat -D POSTROUTING -s 192.168.4.1  -o eth0 -j MASQUERADE
#? ?°?·???µ?????‚?? ?????‘ ???? ???°???°???°????
#$fr -A FORWARD -p tcp --dport 80 -i eth0 -j ACCEPT
#$fr -A FORWARD -i eth0 -o eth1 -p tcp -m tcp -d 192.168.4.17 -m multiport --sports pop3,smtp -j ACCEPT
#$fr -A FORWARD -o eth0 -i eth1 -p tcp -m tcp -s 192.168.4.17 -m multiport --dports pop3,smtp -j ACCEPT
echo "OK"


#LOCALHOST_OPEN 
echo -en "Open localhost..."
$fr -A INPUT -s localhost -j ACCEPT
$fr -A INPUT -d localhost -j ACCEPT
$fr -A OUTPUT -s localhost -j ACCEPT
$fr -A OUTPUT -d localhost -j ACCEPT
echo "OK"

#VIP_IP
echo -en "Open VIP IP..."
for ip in $vip_ip
{
$fr -A INPUT -s $ip -j ACCEPT
$fr -A OUTPUT -s $ip -j ACCEPT
}
echo "OK"

#BAN_IP
echo -en "Cloced BAN IP..."
for ip in $ban_ip
{
$fr -A INPUT -s $ip -j DROP
$fr -A OUTPUT -s $ip -j DROP
}
echo "OK"

#TCP_PORTS LAN 1
echo -en "Open TCP LNA1..."
for port in $tcplan1
{
$fr -A INPUT -i $internal1 -p tcp -m tcp --dport $port -j ACCEPT
}
echo "OK"

echo -en "Open UDP LAN1..."
for port in $udplan1
{
$fr -A INPUT -i $internal1 -p udp --dport $port -j ACCEPT
}
echo "OK"

#TCP_PORTS LAN 2
echo -en "Open TCP LNA2..."
for port in $tcplan2
{
$fr -A INPUT -i $internal2 -p tcp -m tcp --dport $port -j ACCEPT
}
echo "OK"

echo -en "Open UDP LAN2..."
for port in $udplan2
{
$fr -A INPUT -i $internal2 -p udp --dport $port -j ACCEPT
}
echo "OK"


#UDP_PORTS WLAN
echo -en "Open TCP WAN..."
for port in $tcpwan
{
$fr -A INPUT -i $external -p tcp -m tcp --dport $port -j ACCEPT
}
echo "OK"

echo -en "Open UDP WAN..."
for port in $udpwan
{
$fr -A INPUT -i $external -p udp --dport $port -j ACCEPT
}
echo "OK"

#Open SSH IP Adress
echo -en "Open IP ssh..."
$fr -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource
$fr -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --rttl --name SSH --rsource -j LOG --log-prefix "SSH_brute_force "
$fr -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --rttl --name SSH --rsource -j DROP
for ips in $ipssh
{
$fr -A INPUT -s $ips -p tcp -m tcp --dport 22 -j ACCEPT
}
echo "OK"

$fr -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$fr -A INPUT -j REJECT --reject-with icmp-net-unreachable

#CLOSED_ALL
echo -en "Closed all..."
$fr -A INPUT -j DROP
$fr -A OUTPUT -j DROP
#$fr -P FORWARD  DROP
echo "OK"
sleep 1
echo -en "Script Done ...."
echo "OK"
Эсли ты с ножом значит ты с мясом.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: iptables > ipfw

Непрочитанное сообщение dikens3 » 2008-12-16 10:45:22

Может кто и захочет сделать работу за тебя, но не думаю.

Что касается firewall, документации на него очень много.
Что касается NAT, то при подключении к PPPoE его можно включить автоматически и никаких PREROUTING(divert на NAT в FREEBSD) не потребуется.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
J.Korvin
сержант
Сообщения: 232
Зарегистрирован: 2008-11-22 12:03:41

Re: iptables > ipfw

Непрочитанное сообщение J.Korvin » 2008-12-16 11:09:21

А можно поподробней как занатить все на пример с сети 192.168.4.0/24 на интерфейс tun0, когда сеть 192,168,4,0/24 на интерфейсе le0?
Эсли ты с ножом значит ты с мясом.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: iptables > ipfw

Непрочитанное сообщение paradox » 2008-12-16 11:14:56

Код: Выделить всё

ipfw add 100 divet natd all from any to any via tun0

Код: Выделить всё

natd -f /etc/natd.conf -dynamic -n tun0
и все
наскоко я помню

Код: Выделить всё

natd.conf

Код: Выделить всё

log             no
deny_incoming   no
use_sockets     yes
same_ports      yes
verbose         no
unregistered_only       yes

Аватара пользователя
J.Korvin
сержант
Сообщения: 232
Зарегистрирован: 2008-11-22 12:03:41

Re: iptables > ipfw

Непрочитанное сообщение J.Korvin » 2008-12-16 11:39:04

А возможна например один порт занатит? И только для ip например 192,168,4,5??
Эсли ты с ножом значит ты с мясом.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: iptables > ipfw

Непрочитанное сообщение paradox » 2008-12-16 11:41:53

можно и порт
можно и айпи

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: iptables > ipfw

Непрочитанное сообщение dikens3 » 2008-12-16 13:00:47

J.Korvin писал(а):А можно поподробней как занатить все на пример с сети 192.168.4.0/24 на интерфейс tun0, когда сеть 192,168,4,0/24 на интерфейсе le0?
В случае с PPPoE nat, всё что выходит через интерфейс tun(0-x) натится автоматически.
Вопрос в том, что выпускать нужно только то что необходимо, что в общем то правильно.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.