Стоит FreeBSD 6.2
1. Надо что бы клиент, который выходит через сервак с фри мог принимать и отправлять почту.
2. На серваке стоит squid и ipfw
3. fxp0 - картачка смотрящая в инет nve0 - смотрит в локалку Вот правила фаирволла:
ipfw='/sbin/ipfw -q'
${ipfw} add fwd 192.168.1.222 tcp from any to any http in via nve0 # HTTP запросы пользователей попадают на компьютер с http прокси
${ipfw} add pass all from any to any
${ipfw} add fwd 127.0.0.1,3128 tcp from any to any http in via nve0 #HTTP запросы попадают в "лапы" прокси
${ipfw} add pass all from any to any
Что бы решить вопрос с приемом и отправкой почты с клиента в инет через сервак (с squid), какие надо дописать правила? Помогите пожалуйста?
З.Ы. в ipfw у меня написаны только эти правила. Я только учусь и прошу отнестись с пониманием
Стоит FreeBSD 6.2
${ipfw} add fwd 192.168.1.222 tcp from any to any http in via nve0 # HTTP запросы пользователей попадают на компьютер с http прокси
${ipfw} add pass all from any to any
${ipfw} add fwd 127.0.0.1,3128 tcp from any to any http in via nve0 #HTTP запросы попадают в "лапы" прокси
${ipfw} add pass all from any to any[code]
Squid, насколько я знаю, не умеет проксировать почту. В твоих правилах ты заворачиваешь только http-порты (80, 8080). Это в общем правильно, но когда идет обращение к другим портам, 25-му, 110-му? Относительно них правил нет, поэтому ipfw просто игнорирует эти запросы.
Когда у меня такая проблема возникла я недолго думая отправил обращение ко всем портам, кроме http-шных напрямую через NAT. Т.е. у меня вначале стоят такие правила:
/usr/local/billing/rc.firewall
${ipfw} -f flush
${ipfw} add fwd 192.168.1.222 tcp from any to any http in via nve0
${ipfw} add pass all from any to any
${ipfw} add fwd 127.0.0.1,3128 tcp from any to any http in via nve0
${ipfw} add pass all from any to any
${ipfw} add fwd 192.168.1.2 tcp from any to any 5190 in via nve0
${ipfw} add pass all from any to any
${ipfw} add divert natd all from any to any via fxp0
${ipfw} add allow all from any to any
${ipfw} add allow tcp from any to 192.168.1.222 110 via nve0 setup
${ipfw} add allow tcp from any to 192.168.1.222 20,21 in via nve0 setup
${ipfw} add allow tcp from any to 192.168.1.222 5190 in via nve0 setup
${ipfw} add allow tcp from any to 192.168.1.222 49152-65535 via nve0 setup
SKTV# ipfw -ad list
00100 0 0 fwd 192.168.1.222 tcp from any to any dst-port 80 in via nve0
00200 2416 774256 allow ip from any to any
00300 0 0 fwd 127.0.0.1,3128 tcp from any to any dst-port 80 in via nve0
00400 0 0 allow ip from any to any
00500 0 0 fwd 192.168.1.2 tcp from any to any dst-port 5190 in via nve0
00600 0 0 allow ip from any to any
00700 0 0 allow tcp from any to 192.168.1.222 dst-port 110 via nve0 setup
00800 0 0 allow tcp from any to 192.168.1.222 dst-port 20,21 in via nve0 setup
00900 0 0 allow tcp from any to 192.168.1.222 dst-port 5190 in via nve0 setup
01000 0 0 allow tcp from any to 192.168.1.222 dst-port 49152-65535 via nve0 setup
65535 125 8487 deny ip from any to any
Попробуй так:
${ipfw} add fwd 127.0.0.1,3128 tcp from any to any http via fxp0
${ipfw} add divert natd all from any to any via fxp0
В принципе, этого для самого начала достаточно будет. Тут надо понимать как работают правила. Проверка идет сверху вниз. Как только доходит до подходящего условия - все, стоп. А у тебя везде было понатыкано ${ipfw} add pass all from any to any, поэтому тут и останавливалось и ничего толком не делало. Да и с ним вообще весь брандмауэр теряет смысл.
Еще надо:
${ipfw} add fwd 192.168.1.222 tcp from any to any http in via nve0
${ipfw} add fwd 127.0.0.1,3128 tcp from any to any http via fxp0
${ipfw} add divert natd all from any to any via fxp0
${ipfw} add allow all from any to any via lo0
${ipfw} add deny ip from any to 127.0.0.0/8
${ipfw} add deny ip from 127.0.0.0/8 to any
ipfw='/sbin/ipfw -q'
${ipfw} -f flush
${ipfw} add divert natd all from any to any via fxp0
${ipfw} add fwd 192.168.1.222 tcp from any to any http in via nve0
${ipfw} add pass all from any to any
${ipfw} add fwd 127.0.0.1,3128 tcp from any to any http in via nve0
${ipfw} add pass all from any to any
${ipfw} add allow all from any to any
${ipfw} add divert natd all from any to any via fxp0
${ipfw} add fwd 192.168.1.222 tcp from any to any http in via nve0
${ipfw} add pass all from any to any
${ipfw} add fwd 127.0.0.1,3128 tcp from any to any http in via nve0
${ipfw} add pass all from any to any
${ipfw} add allow all from any to any
У меня такой работает
Разумеется работает. Только у тебя всё идет напрямую через NAT. До правила fwd дело просто не доходит. Вместо всех вышеприведенных строк оставь только две:
${ipfw} add fwd 127.0.0.1,3128 tcp from any to any http via fxp0
${ipfw} add divert natd all from any to any via fxp0
${ipfw} add fwd 192.168.1.222 tcp from any to any http in via nve0 # HTTP запросы пользователей попадают на компьютер с http прокси
${ipfw} add fwd 127.0.0.1,3128 tcp from any to any http in via nve0 #HTTP запросы попадают в "лапы" прокси
${ipfw} add divert natd all from any to any via fxp0
З.Ы. Короче. Мне надо что бы все урезалось кроме:
1. С локалки ходили в инет через прокси
2. Уходили и приходили pop и smtp
3. Разрешить Аську и фтп