замучался я с этим впн-ом
вообщем, есть первоочередная задача, которая должна была быть сделана позавчера - установка шлюза между "офис" <-> "инет"
ядро, файрволл, прокси, антивирь - сам
впн жрёт моск, а главное ВРЕМЯ, а его мало. горю!
ковырялся субботу + воскресенье - активно рыл по инету, пробовал разные настройки, максимум чего добился: dial -> carrier Disconnected!
вообщем, прошу помощи в настройке, а там уже время появится - разберусь в мелочах
итак, имеем: пров дал ип локалки + шлюз + маску, с которым соединение установлено, он пингуется
пров дал ип впн-сервера, авторизовывающего через pap + chap, с которым имеем:Sep 10 10:31:06 gw ppp[383]: tun0: Phase: deflink: Connected!
Sep 10 10:31:06 gw ppp[383]: tun0: Phase: deflink: opening -> dial
Sep 10 10:31:06 gw ppp[383]: tun0: Phase: deflink: dial -> carrier
Sep 10 10:31:11 gw ppp[383]: tun0: Phase: deflink: Disconnected!
Sep 10 10:31:11 gw ppp[383]: tun0: Phase: deflink: carrier -> hangup
файлы:
/etc/ppp/ppp.conf
default:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr тут_айпи_впн_прова_без(/0) тут_ип_этого_самого_шлюза(/0 тоже нет) тут_маска_сети_шлюза(кстати, совпадает с маской сети прова)
pppoe:
set device pppoe:rl0: # ISP. bez : v konce rugaetsa
set mru 1492
set mtu 1492
set speed sync
accept lqr
disable ipv6cp
# enable lqr
# set lqrperiod 5
# set cd 5
# set crtscts off
# set timeout 0
# set redial 0 0
# accept chap
# accept pap
set authname LOGIN
set authkey PASS
# set dial
# set login
# enable dns
add default HISADDR # otobrajat IP prisoedinennoi storoni
/etc/rc.conf
ifconfig rl0 up
ifconfig_rl0="inet тут_локальный_айпи_прова netmask 255.255.255.0 -arp up"
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="pppoe"
keymap="ru.koi8-r"
hostname="gw.domain.com"
gateway_enable="YES"
defaultrouter="тут_шлюз_прова" #ISP gw
firewall_enable="YES" #fw on
firewall_script="/etc/firewall.sh"
firewall_type="close" #fw zapreshaet vse
firewall_logging="YES" #fw pishet logi
natd_program="/sbin/natd"
natd_interface="rl0" #doljen smotret v storonu ISP
tcp_extension="NO" #opasnie rashirenia dla tcp/ip
tcp_keepalive="YES" #menee podverjeni DOS-atakam
tcp_drop_synfin="YES" #ne prinimaem levie paketi
tcp_restrict_rst="YES"
icmp_drop_redirect="YES" #ne rabotaem s ICMP-paketami
icmp_log_redirect="YES" #logi ICMP-paketov
ifconfig_lo0="inet 127.0.0.1" #loopback
ifconfig_xl0="inet 192.168.0.1 netmask 255.255.255.0" #local
syslogd_enable="YES" #demon logov
inetd_enable="NO" #nujen tolko dlya FTP-servera
named_enable="YES" #dns
nfs_client_enable="NO"
nfs_server_enable="NO"
nfs_reserved_port_only="NO"
fsck_y_enable="YES"
portmap_enable="NO" #port mapper off
sshd_enable="YES"
sshd_program="/usr/sbin/sshd"
sshd_flags=""
icmp_bmcastecho="NO" #otveti na soobsheniya echo protokola ICMP
cron_enable="YES"
clear_tmp_enable="YES" #ochistka /tmp pri zagruzke
lpd_enable="NO"
usbd_enable="NO"
sendmail_enable="NO" #s kakogo-to hera eta suka vse-ravno zapuskaetsa. chmod -x sendmail FTW
kern_securelevel_enable="YES"
kern_securelevel="1"
cursor="blink"
keyrate="fast"
/etc/firewall.sh (ТЕСТОВЫЙ. РЕАЛЬНЫЙ ФАЙЛ С ПРАВИЛАМИ ПЕРЕИМЕНОВАН)
#!/bin/sh
ipfw='/sbin/ipfw -q'
${ipfw} add 110 allow all from any to any
${ipfw} add 120 allow all from any to any via any
/etc/sysctl.conf
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.tcp.log_in_vain=1
net.inet.udp.log_in_vain=1
net.inet.tcp.sendspace=130000
net.inet.tcp.recvspace=130000
net.link.ether.inet.log_arp_movements=1
net.link.ether.inet.max_age=600
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
net.inet.icmp.icmplim=100
net.inet.ip.ttl=128
net.inet.ip.redirect=0
net.inet.ip.fw.one_pass=0 #pri 0 paket, vihodyashii iz dummynet, prodoljit hod po pravilam fw
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.ip.random_id=1
net.inet.tcp.msl=15000
net.inet.tcp.icmp_may_rst=0
net.inet.tcp.sack.enable=0
vfs.usermount=0
kern.ipc.somaxconn=1024
#kern.ps_showallprocs=0
#kern.maxusers=256
kern.securelevel=1
#kern.polling.enable=1
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0
security.bsd.hardlink_check_uid=0
security.bsd.hardlink_check_gid=0
security.bsd.conservative_signals=1
security.bsd.unprivileged_proc_debug=0
security.bsd.unprivileged_read_msgbuf=0
security.bsd.unprivileged_get_quota=0
ну и в результате имеем это:
/var/log/ppp.log
Sep 10 11:46:23 gw ppp[919]: tun0: Phase: deflink: Connected!
Sep 10 11:46:23 gw ppp[919]: tun0: Phase: deflink: opening -> dial
Sep 10 11:46:23 gw ppp[919]: tun0: Phase: deflink: dial -> carrier
Sep 10 11:46:28 gw ppp[919]: tun0: Phase: deflink: Disconnected!
Sep 10 11:46:28 gw ppp[919]: tun0: Phase: deflink: carrier -> hangup
Sep 10 11:46:28 gw ppp[919]: tun0: Phase: deflink: Connect time: 5 secs: 0 octets in, 0 octets out
Sep 10 11:46:28 gw ppp[919]: tun0: Phase: deflink: 0 packets in, 0 packets out
Sep 10 11:46:28 gw ppp[919]: tun0: Phase: total 0 bytes/sec, peak 0 bytes/sec on Mon Sep 10 11:46:23 2007
Sep 10 11:46:28 gw ppp[919]: tun0: Phase: deflink: hangup -> opening
Sep 10 11:46:28 gw ppp[919]: tun0: Phase: deflink: Enter pause (30) for redialing.
# netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.20.1.254 UGS 0 41 rl0
10.20.1/24 link#1 UC 0 0 rl0
10.20.1.31 00:c0:26:2c:c4:d4 UHLW 1 10 lo0
10.20.1.254 link#1 UHLW 2 0 rl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
192.168.0 link#2 UC 0 0 xl0
192.168.0.1 00:01:02:6f:04:0b UHLW 1 0 lo0
Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UHL lo0
fe80::%rl0/64 link#1 UC rl0
fe80::2c0:26ff:fe2c:c4d4%rl0 00:c0:26:2c:c4:d4 UHL lo0
fe80::%lo0/64 fe80::1%lo0 U lo0
fe80::1%lo0 link#3 UHL lo0
ff01:1::/32 link#1 UC rl0
ff01:3::/32 fe80::1%lo0 UC lo0
ff01:4::/32 link#4 UC tun0
ff02::%rl0/32 link#1 UC rl0
ff02::%lo0/32 fe80::1%lo0 UC lo0
ff02::%tun0/32 link#4 UC tun0
# ifconfig
rl0: flags=88c3<UP,BROADCAST,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::2c0:26ff:fe2c:c4d4%rl0 prefixlen 64 scopeid 0x1
inet ИП_ЛОКАЛКИ_ПРОВА netmask 0xffffff00 broadcast 10.20.1.255
ether 00:c0:26:2c:c4:d4
media: Ethernet autoselect (none)
status: no carrier
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=9<RXCSUM,VLAN_MTU>
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:01:02:6f:04:0b
media: Ethernet autoselect (none)
status: no carrier
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
Opened by PID 919
вообщем как-то вот так..
данные взяты с неподключённого к инету компа
да и ещё - ядро сконфигурировано с опциями:
options IPFIREWALL
options IPDIVERT # NAT
options IPFIREWALL_VERBOSE # fw logging
options IPFIREWALL_VERBOSE_LIMIT=50 # ogr dla zapisei
options TCP_DROP_SYNFIN # ne budem prinimat levie paketi
options ACCEPT_FILTER_DATA # hz
options ICMP_BANDLIM # pomojet v otbivanii DOS-atak
подозреваю, что компактность конфиг-файлов имеет просторы для отпимизации, но это не горит, а горит рабочий шлюз
подозреваю, что tun0 без айпишника в ifconfig не спроста.. и куда вообще айпишник впна делся неясно
также подозреваю, что рутить нужно уметь грамотно..
непонятно, почему tun0 имеет mtu 1500, хотя задавалось 1492
завтра приедет книжка за 700р по фре 6.2, но она всё-равно будет есть время, а его, повторюсь, нету :(