Внешняя почта через шлюз
Добавлено: 2008-04-28 21:11:34
Имеется сервер. На нем стоит squid,ipfw,nat.
Сквид считает интернет трафик.
Вообщем хочу что с клиентской машины я мог получать почту. Но так как я нахожусь за сервером(шлюзом), то скорее всего надо будет сделать НАТ.
Настройки rc.conf с клиентской машины
netstat -r
С сервера rc.conf
netstat -r
На сервере rl0 смотрит в мир,sk0 смотрит в сеть.
Конфиг rc.firewall
Жду советов...заранее благодарю.
Сквид считает интернет трафик.
Вообщем хочу что с клиентской машины я мог получать почту. Но так как я нахожусь за сервером(шлюзом), то скорее всего надо будет сделать НАТ.
Настройки rc.conf с клиентской машины
Код: Выделить всё
defaultrouter="192.168.33.1"
hostname="notebook.manefesto"
ifconfig_msk0="inet 192.168.33.2 netmask 255.255.255.0"
netstat -r
Код: Выделить всё
Internet:
Destination Gateway Flags Refs Use Netif Expire
default server UGS 0 55 msk0
localhost localhost UH 0 4 lo0
192.168.33.0 link#1 UC 0 0 msk0
server 00:15:e9:b5:7b:63 UHLW 2 34709 msk0 614
notebook 00:1e:8c:48:67:0d UHLW 1 42889 lo0
Код: Выделить всё
ifconfig_sk0="inet 192.168.33.1 netmask 255.255.255.0"
defaultrouter="192.168.33.1"
hostname="server.manefesto"
gateway_enable="YES"
natd_enable="YES"
natd_interface="tun0"
ifconfig_rl0="DHCP"
hostname="server.manefesto"
Код: Выделить всё
Internet:
Destination Gateway Flags Refs Use Netif Expire
default cable-gw4.ccl.ru UGS 0 375 tun0
localhost localhost UH 0 0 lo0
172.25.64.0/18 link#1 UC 0 0 rl0
192.168.33.0 link#2 UC 0 0 sk0
server 00:15:e9:b5:7b:63 UHLW 1 0 lo0
notebook 00:1e:8c:48:67:0d UHLW 1 15510 sk0 479
cable-gw4.ccl.ru x.x.x.x UGH 0 0 tun0
Конфиг rc.firewall
Код: Выделить всё
#!/bin/sh
fw="/sbin/ipfw -a add"
nif="sk0"
iif="tun0"
ipfw -f flush
$fw add divert natd all from any to any via $iif
#пускаем всех из внутренней сетки
$fw 00010 allow all from any to any via $nif
$fw 00015 check-state
$fw 00110 allow tcp from any to 195.222.130.67 53 out via $iif setup keep-state
$fw 00120 allow udp from any to 195.222.130.67 53 out via $iif keep-state
$fw 00200 allow tcp from any to any 80 out via $iif setup keep-state
$fw 00210 allow tcp from any to any 443 out via $iif setup keep-state
$fw 00220 allow tcp from any to any 25 out via $iif setup keep-state
$fw 00221 allow tcp from any to any 110 out via $iif setup keep-state
$fw 00222 allow tcp from any to any 22 out via $iif setup keep-state
$fw 00223 allow tcp from any to any 43 out via $iif setup keep-state
$fw 00224 allow tcp from any to any 5190 out via $iif #setup keep-state
#ftp
$fw 00225 allow tcp from me to any 20,21 out via $iif # setup keep-state
$fw 00226 allow tcp from any to me 49152-65535 in via $iif
#разрешаем icmp запросы
$fw 00230 allow icmp from any to any out via $iif keep-state
$fw 00240 allow tcp from me to any out via $iif setup keep-state uid root
#################################################################
# Интерфейс смотрящий в Internet (Входящая секция)
# Опрашиваем запросы начала сессии идущие из Интернета
# в локальную сеть или к гейту
#################################################################
# Запрещаем весь входящий траффик из зарезервированных адресных пространств
$fw 00300 deny all from 192.168.0.0/16 to any in via $iif #RFC 1918 private IP
$fw 00301 deny all from 172.16.0.0/12 to any in via $iif #RFC 1918 private IP
$fw 00302 deny all from 10.0.0.0/8 to any in via $iif #RFC 1918 private IP
$fw 00303 deny all from 127.0.0.0/8 to any in via $iif #loopback
$fw 00304 deny all from 0.0.0.0/8 to any in via $iif #loopback
$fw 00305 deny all from 169.254.0.0/16 to any in via $iif #DHCP auto-config
$fw 00306 deny all from 192.0.2.0/24 to any in via $iif #reserved for docs
$fw 00307 deny all from 204.152.64.0/23 to any in via $iif #Sun cluster interconnect
$fw 00308 deny all from 224.0.0.0/3 to any in via $iif #Class D & E multicast
# Запрещаем публичные пинги
$fw 00310 deny icmp from any to any in via $iif
# Запрещаем ident
$fw 00315 deny tcp from any to any 113 in via $iif
# Запрещаем весь сервис Netbios. 137=имя, 138=дейтаграмма, 139=сессия
# Netbios это сервис общего доступа MS/Windows .
# Блокируем MS/Windows hosts2 name server requests 81
$fw 00320 deny tcp from any to any 137 in via $iif
$fw 00321 deny tcp from any to any 138 in via $iif
$fw 00322 deny tcp from any to any 139 in via $iif
$fw 00323 deny tcp from any to any 81 in via $iif
# Запрещаем пакеты прибывшие позже
$fw 00330 deny all from any to any frag in via $iif
# Запрещаем ACK пакеты которые не совпадают с динамической таблицей правил
$fw 00332 deny tcp from any to any established in via $iif
# Разрешаем входящую www функцию потому что у меня стоит сервер apache
$fw 00400 allow tcp from any to me 80 in via $iif setup limit src-addr 2
# Разрешаем входящие безопасные FTP, Telnet, and SCP из интернета
$fw 00410 allow tcp from any to me 22 in via $iif setup limit src-addr 2
# Разрешаем входящие небезопасные Telnet сессии из интернета
# указано как небезопасные потому что ID & PW передаются через интернет
# открытым текстом
# Удаляем эту группу правил, если у вас нет работающего telnet сервера.
$fw 00420 allow tcp from any to me 23 in via $iif setup limit src-addr 2
# Остальное отбрасывается по умолчанию
# отбрасываем и протоколируем все непрошедшие пакеты,
# что бы можно было увидеть какие они
$fw 00999 deny log all from any to any