Table of Contents

Настройка шлюза в классе

ISP1

FreeBSD/Debian/Ubuntu

# cat /etc/resolv.conf
search          isp.un
nameserver      127.0.0.1
# cat /etc/hosts
127.0.0.1               localhost localhost.isp.un
172.16.1.254            gate.isp.un gate

FreeBSD

[gate.isp.un:~] # cat /etc/rc.conf
hostname="gate.isp.un"
ifconfig_em0="inet 10.N.M.252"
ifconfig_em0_alias0="inet 172.16.1.254/24"
defaultrouter="10.N.M.254"
gateway_enable=yes

keyrate="fast"
sshd_enable=yes

pf_enable=yes
[gate.isp.un:~] # cat > /etc/pf.conf
ext_ip="10.N.M.252"

table <int_net> {127/8, 172.16/12, !172.16.1.254, 10.N.M/24 ,192.168/16}

nat from <int_net> to !<int_net> -> $ext_ip
[gate.isp.un:~] # cat route.sh
for i in `jot 55 1`
do
        route add 192.168.${i}/24 172.16.1.${i}
done
[gate.isp.un:~] # sh

# for i in `jot 55 1`; do rmuser -y user$i; done

# for i in `jot 55 1`; do echo user$i:::russian:::::/bin/csh:password$i; done | adduser -f -

# for i in `jot 55 1`; do echo user$i::::::::/bin/csh:password$i; done | adduser -f -

Debian/Ubuntu

root@nessus.isp.un:~# cat /etc/hostname
nessus.isp.un
root@nessus.isp.un:~# grep forw /etc/sysctl.conf
...
net.ipv4.ip_forward=1
...
root@nessus.isp.un:~# sysctl -f
root@nessus.isp.un:~# cat nat.sh
iptables -t nat --flush

iptables -t nat -A POSTROUTING -s 172.16.1.254 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.1.0/24,192.168.0.0/16 -j SNAT --to-source 10.M.N.178

conntrack -F
root@nessus.isp.un:~# sh nat.sh

root@nessus.isp.un:~# iptables-save > /etc/iptables.rules
root@nessus.isp.un:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        pre-up iptables-restore < /etc/iptables.rules
        address 10.N.M.178
        netmask 255.255.255.0
        gateway 10.N.M.254

auto eth0:0
iface eth0:0 inet static
        address 172.16.1.254
        netmask 255.255.255.0

# up route add -net 192.168.1.0 netmask 255.255.255.0 gw 172.16.1.1
# ...
# up route add -net 192.168.55.0 netmask 255.255.255.0 gw 172.16.1.55
# cat route.bash
for i in {1..55}
do
        #route add -net 192.168.${i}.0 netmask 255.255.255.0 gw 172.16.1.${i}
        #echo "  " up route add -net 192.168.${i}.0 netmask 255.255.255.0 gw 172.16.1.${i}
done
root@nessus.isp.un:~# cat createuser.bash
for i in {1..55}
do
        echo $i
        useradd user${i} -m -s /bin/bash
        echo user${i}:password${i} | chpasswd
#       userdel -r user${i} 
done

FreeBSD/Ubuntu

DNS

# cat /usr/local/etc/namedb/named.conf

# cat /etc/bind/named.conf.options

# cat /etc/bind/named.conf.local
options {
...
        forwarders {
                10.N.M.Z;
        };

...
        allow-recursion { any; };
...
//        dnssec-validation auto;
...
};

zone "un" {
        type master;
//        file "/usr/local/etc/namedb/master/un";
//        file "/etc/bind/un";
};

//For lin7 (depricate), msc (depricate)
zone "168.192.in-addr.arpa" {
        type master;
//        file "/usr/local/etc/namedb/master/192.168.rev";
//        file "/etc/bind/192.168.rev";
};

//for lin2
zone "corp1.un" IN {type forward;forwarders {192.168.1.10;};};
...
zone "corp55.un" IN {type forward;forwarders {192.168.55.10;};};

//zone "corp1.un" IN {type forward;forwarders {172.16.1.1;};};
...
//zone "corp55.un" IN {type forward;forwarders {172.16.1.55;};};
# cat un
$TTL 3h
@ SOA ns root.gate.isp.un. 44 1d 12h 1w 3h

                NS      ns

ns              A       172.16.1.254
isp             A       172.16.1.254
;voip1           A       80.250.209.226

gate.isp        A       172.16.1.254
mail.isp        A       172.16.1.254
;openvas.isp     A       172.16.1.252

;for lin1, asterisk1
;$GENERATE 1-55 server.corp$ A 172.16.1.$

;for lin2, asterisk2
;$GENERATE 1-55 ns$ A 172.16.1.$
;$GENERATE 1-55 ns$ A 192.168.$.10
;$GENERATE 1-55 corp$ NS ns$

;for lin5
;$GENERATE 1-9 router$.isp A 172.16.1.19$

;for lin7, lin3
;$GENERATE 1-55 server.corp$ A 192.168.$.10
;$GENERATE 1-55 www.corp$ A 192.168.$.20
;$GENERATE 1-55 gate.corp$ A 192.168.$.1
;$GENERATE 1-55 router.corp$ A 192.168.$.1
;$GENERATE 1-55 switch.corp$ A 192.168.$.3
;$GENERATE 1-55 switch1.corp$ A 192.168.$.3
;$GENERATE 1-55 switch2.corp$ A 192.168.$.4
;$GENERATE 1-55 switch3.corp$ A 192.168.$.5
;$GENERATE 1-9 lan.corp$ A 192.168.10$.10
;$GENERATE 10-55 lan.corp$ A 192.168.1$.10
;$GENERATE 10-55 corp$ A 192.168.$.10
;$GENERATE 10-55 mgmt.corp$ A 192.168.$.20

;for CGP
;$GENERATE 1-9 mail.corp$ A 172.16.1.10$
;$GENERATE 10-15 mail.corp$ A 172.16.1.1$
;$GENERATE 1-9 corp$ A 172.16.1.10$
;$GENERATE 10-15 corp$ A 172.16.1.1$

;corp1 MX 10 mail.corp1
;corp2 MX 10 mail.corp2
;corp3 MX 10 mail.corp3
;corp4 MX 10 mail.corp4
;corp5 MX 10 mail.corp5
;corp6 MX 10 mail.corp6
;corp7 MX 10 mail.corp7
;corp8 MX 10 mail.corp8
;corp9 MX 10 mail.corp9
;corp10 MX 10 mail.corp10
;corp11 MX 10 mail.corp11
;corp12 MX 10 mail.corp12
;corp13 MX 10 mail.corp13
;corp14 MX 10 mail.corp14
;corp15 MX 10 mail.corp15

;$GENERATE 1-9 mail.comp$ A 172.16.1.20$
;$GENERATE 10-15 mail.comp$ A 172.16.1.2$
;$GENERATE 1-9 comp$ A 172.16.1.20$
;$GENERATE 10-15 comp$ A 172.16.1.2$

;$GENERATE 1-9 autoconfig.corp$ A 172.16.1.10$
;$GENERATE 1-9 user1.corp$ A 172.16.1.10$
;$GENERATE 1-9 www.corp$ A 172.16.1.10$
;$GENERATE 1-9 corp$ MX 10 mail.corp$
;$GENERATE 1-9 corp$ A 172.16.1.10$
;$GENERATE 1-9 mail.comp$ A 172.16.1.20$
;$GENERATE 1-9 comp$ MX 10 mail.comp$
;$GENERATE 1-9 comp$ A 172.16.1.20$
# cat isp.dns.sh
STANDS="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 51 53 54 55"

for i in $STANDS
do

#dir=/etc/bind
#dir=/usr/local/etc/namedb/master

echo zone "comp$i.un" \{type master\; file \"${dir}/comp$i.un\"\;\}\;

cat > ${dir}/comp$i.un<<EOF
\$TTL 3h
@ SOA ns root.ns 45 1d 12h 1w 3h

                NS      ns
                NS      ns.corp$i.un.
                A       192.168.$i.10
;                MX 10       mail

ns              A       172.16.1.254
mail            A       192.168.$i.10
;mail            A       172.16.1.$(( $i + 200))
EOF

done

for i in $STANDS
do
echo zone "corp$i.un" IN \{type forward\;forwarders \{192.168.$i.10\;\}\;\}\;
done

for i in $STANDS
do
echo zone "corp$i.un" IN \{type forward\;forwarders \{172.16.1.$i\;\}\;\}\;
done

ISP2

Debian/Ubuntu

# git clone http://val.bmstu.ru/unix/conf.git

# cat conf/isp2/readme.txt

root@gate.isp2.un:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 172.16.2.254
        netmask 255.255.255.0

auto eth0:0
iface eth0:0 inet static
        pre-up iptables-restore < /etc/iptables.rules
        address 10.N.M.179
        netmask 255.255.255.0
        gateway 10.N.M.254
root@gate.isp2.un:~# cat nat.sh
iptables -t nat --flush

iptables -t nat -A POSTROUTING -s 172.16.2.254 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.2.0/24 -j SNAT --to-source 10.N.M.179

conntrack -F
root@gate.isp2.un:~# grep forw /etc/sysctl.conf
...
net.ipv4.ip_forward=1
...

FreeBSD

[gate.isp2.un:~] # cat /etc/rc.conf
hostname="gate.isp2.un"
ipv6_network_interfaces=none
ifconfig_em0="inet 172.16.2.254/24"
ifconfig_em0_alias0="inet 10.N.M.126/24"
defaultrouter="10.N.M.254"
gateway_enable="YES"
pf_enable=yes
keyrate="fast"
sshd_enable=yes
named_enable=yes
[gate.isp2.un:~] # cat /etc/pf.conf
ext_ip="10.N.M.126"

table <int_net> {127/8, 172.16/12, !172.16.2.254, 10.N.M/24}

nat from <int_net> to !<int_net> -> $ext_ip

Voip1

SIP

[radio:~] # cat /usr/local/asterisk/etc/asterisk/sip.conf
[general]
context=office
udpbindaddr=80.250.209.226
udpbindport=5060
allowguest=no
alwaysauthreject=yes
disallow=all
allow=alaw
dtmfmode=rfc2833

;register => xxxxxxxx:xxxxxxxx@sipnet.ru/sipnet_xxxxxxxx

[sipnet_xxxxxxx]
defaultuser=xxxxxxxx
secret=xxxxxxxx
host=sipnet.ru
type=peer
insecure=invite
fromuser=xxxxxxxx
fromdomain=sipnet.ru
canreinvite=no
callbackextension=sipnet_xxxxxxxx

[200](!)
type=friend
host=dynamic
canreinvite=no

[202](200)
secret=tpassword202

[204](200)
secret=tpassword204
;canreinvite=no
;mailbox=204@isp

[000000](!)
;type=friend
type=user
host=dynamic
context=voip
;nat=yes
;qualify=yes
;canreinvite=no

[000001](000000)
secret=spassword1

[000002](000000)
secret=spassword2

[000003](000000)
secret=spassword3

[000004](000000)
secret=spassword4

[000005](000000)
secret=spassword5

[000006](000000)
secret=spassword6

[000007](000000)
secret=spassword7

[000008](000000)
secret=spassword8

[000009](000000)
secret=spassword9

[000010](000000)
secret=spassword10

[000011](000000)
secret=spassword11

[000012](000000)
secret=spassword12

[000013](000000)
secret=spassword13

IAX

root@server.corp13.un:~# cat /etc/asterisk/iax.conf
...
[corp1]
type=user
host=dynamic
secret=apassword1
auth=md5

[corp01]
type=peer
host=server.corp1.un
username=corp13
secret=apassword13
auth=md5

[corp2]
type=user
host=dynamic
secret=apassword2
auth=md5

[corp02]
type=peer
host=server.corp2.un
username=corp13
secret=apassword13
auth=md5

[corp3]
type=user
host=dynamic
secret=apassword3
auth=md5

[corp03]
type=peer
host=server.corp3.un
username=corp13
secret=apassword13
auth=md5

[corp4]
type=user
host=dynamic
secret=apassword4
auth=md5

[corp04]
type=peer
host=server.corp4.un
username=corp13
secret=apassword13
auth=md5

[corp5]
type=user
host=dynamic
secret=apassword5
auth=md5

[corp05]
type=peer
host=server.corp5.un
username=corp13
secret=apassword13
auth=md5

[corp6]
type=user
host=dynamic
secret=apassword6
auth=md5

[corp06]
type=peer
host=server.corp6.un
username=corp13
secret=apassword13
auth=md5

[corp7]
type=user
host=dynamic
secret=apassword7
auth=md5

[corp07]
type=peer
host=server.corp7.un
username=corp13
secret=apassword13
auth=md5

[corp8]
type=user
host=dynamic
secret=apassword8
auth=md5

[corp08]
type=peer
host=server.corp8.un
username=corp13
secret=apassword13
auth=md5

[corp9]
type=user
host=dynamic
secret=apassword9
auth=md5

[corp09]
type=peer
host=server.corp9.un
username=corp13
secret=apassword13
auth=md5

[corp10]
type=user
host=dynamic
secret=apassword10
auth=md5

[corp10]
type=peer
host=server.corp10.un
username=corp13
secret=apassword13
auth=md5

[corp11]
type=user
host=dynamic
secret=apassword11
auth=md5

[corp11]
type=peer
host=server.corp11.un
username=corp13
secret=apassword13
auth=md5

[corp12]
type=user
host=dynamic
secret=apassword12
auth=md5

[corp12]
type=peer
host=server.corp12.un
username=corp13
secret=apassword13
auth=md5
root@server.corp13.un:~# cat /etc/asterisk/extensions.conf
...
exten => _89XXXXXXXXX,1,Dial(SIP/sipnet_xxxxxxxx/${EXTEN})

exten => _8XX,1,Dial(SIP/0000${EXTEN:1})

;exten => sipnet_xxxxxxxx,1,Dial(SIP/204&SIP/202)

exten => sipnet_xxxxxxxx,1,Dial(SIP/000001&SIP/000002&SIP/000003&SIP/000004&SIP/000005&SIP/000006&SIP/000007&SIP/000008&SIP/000009&SIP/000010&SIP/000011&SIP/000012)

exten => _0XX4XX,1,Set(CALLERID(num)=013${CALLERID(num)})
exten => _0XX4XX,n,Dial(IAX2/corp${EXTEN:1:2}/${EXTEN:3})

[voip]

exten => _89XXXXXXXXX,1,Dial(SIP/sipnet_xxxxxxxx/${EXTEN})

...