#The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet dhcp #The secondary network interface auto eth1 iface eth1 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 #The pppoe network interface auto nameprovider # имя вашего интернет провайдера iface nameprovider inet ppp provider nameprovider
1.3 Создаем в директории /etc/ppp/peers/ файл nameprovider :
user логин #вместо слова логин пишем свой который дал провайдер pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452" noipdefault usepeerdns defaultroute replacedefaultroute hide-password lcp-echo-interval 20 lcp-echo-failure 3 connect /bin/true noauth persist maxfail 5 mtu 1492 noaccomp default-asyncmap
# Secrets for authentication using CHAP # client server secret IP addresses логин * пароль *
Dnsmasq это DHCP и DNS сервера в одной программе. Она может быть использована для создания подключения к интернету с возможностью автоматической выдачи IP адреса и одновременным кэшированием соответствия доменов их IP адресам (DNS-кэширование). Это кэширование дает отличный прирост скорости работы с интернетом, т.к. не нужно постоянно обращаться за IP адресом к DNS-серверу - он держит эти параметры у себя в кэше. Dnsmasq легковесное приложение, разработанное для персонального использования, или как DHCP сервер для сети, в которой не более 50 компьютеров.https://wiki.archlinux.org/index.php/Dnsmasq
#!/bin/bash /sbin/modprobe ip_conntrack /sbin/modprobe iptable_nat /sbin/modprobe ip_nat_ftp #Описываем переменные IPTS="/sbin/iptables" LAN="eth1" WAN="ppp0" #Чистим правила $IPTS -F $IPTS -t nat -F #Политики по умолчанию для трафика, не соответствующего ни одному из правил $IPTS -P INPUT ACCEPT $IPTS -P OUTPUT ACCEPT $IPTS -P FORWARD DROP #Теперь закроем наши сервисы так, чтобы они могли работать только для LAN $IPTS -I INPUT 1 -i $LAN -j ACCEPT $IPTS -I INPUT 1 -i lo -j ACCEPT $IPTS -A INPUT -p UDP --dport bootps -i ! $LAN -j REJECT $IPTS -A INPUT -p UDP --dport domain -i ! $LAN -j REJECT #Отбросим все TCP/UDP-пакеты, обращающиеся к привилегированным портам $IPTS -A INPUT -p TCP -i ! $LAN -d 0/0 --dport 0:1023 -j DROP $IPTS -A INPUT -p UDP -i ! $LAN -d 0/0 --dport 0:1023 -j DROP #Сообщаем ядру, что ip-форвардинг разрешен echo "1" > /proc/sys/net/ipv4/ip_forward #Добавляем правила для NAT $IPTS -I FORWARD -i $LAN -d 192.168.0.0/255.255.255.0 -j DROP $IPTS -A FORWARD -i $LAN -s 192.168.0.0/255.255.255.0 -j ACCEPT $IPTS -A FORWARD -i $WAN -d 192.168.0.0/255.255.255.0 -j ACCEPT $IPTS -t nat -A POSTROUTING -o $WAN -j MASQUERADE #время жизни пакета данных в протоколе IP $IPTS -t mangle -A OUTPUT -o $WAN -j TTL --ttl-set 64 #запрещаем пинг $IPTS -A INPUT -i eth0 -p icmp --icmp-type 8 -j DROP $IPTS -A INPUT -i $WAN -p icmp --icmp-type 8 -j DROP #Пробрасываем нужные порты # для ФТП $IPTS -t nat -A PREROUTING -p tcp --dport ftp-data -i $WAN -j DNAT --to 192.168.0.102 $IPTS -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTS -t nat -A PREROUTING -p tcp --dport 1024 -i $WAN -j DNAT --to 192.168.0.102 $IPTS -t nat -A PREROUTING -p tcp --dport ftp -i $WAN -j DNAT --to 192.168.0.102 $IPTS -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # для Веб сервера $IPTS -t nat -A PREROUTING -p tcp --dport 80 -i $WAN -j DNAT --to 192.168.0.101 # для игрового сервера $IPTS -t nat -A PREROUTING -p tcp --dport 2106 -i $WAN -j DNAT --to 192.168.0.40 $IPTS -t nat -A PREROUTING -p tcp --dport 7777 -i $WAN -j DNAT --to 192.168.0.40 # для ДНС сервера $IPTS -t nat -A PREROUTING -p tcp --dport 53 -i $WAN -j DNAT --to 192.168.0.103 $IPTS -t nat -A PREROUTING -p udp --dport 53 -i $WAN -j DNAT --to 192.168.0.103 # Почтовый сервер $IPTS -t nat -A PREROUTING -p udp --dport 110 -i $WAN -j DNAT --to 192.168.0.10 $IPTS -t nat -A PREROUTING -p tcp --dport 25 -i $WAN -j DNAT --to 192.168.0.10
#!/bin/bash IPTAB="/sbin/iptables" RUN="/bin/bash" PATH="/sbin:/bin:/usr/sbin:/usr/bin" NAME="$0" N="/etc/init.d/$NAME" if [ ! -f /etc/rc.router ]; then echo "/etc/rc.router does not exist" exit 0 fi case "$1" in start|restart) echo -n "Starting up iptables...." $RUN /etc/rc.router echo "DONE." ;; stop) $IPTAB -t filter -F $IPTAB -t filter -X $IPTAB -t nat -F $IPTAB -t nat -X $IPTAB -t mangle -F $IPTAB -t mangle -X echo "DONE." exit 0; ;; *) echo "Usage: $N {start|restart|stop}">&2 exit 1 ;; esac exit 0
# # this is the configuration file for rinetd, the internet redirection server # # you may specify global allow and deny rules here # only ip addresses are matched, hostnames cannot be specified here # the wildcards you may use are * and ? # # allow 192.168.2.* # deny 192.168.2.1? # # forwarding rules come here # # you may specify allow and deny rules after a specific forwarding rule # to apply to only that forwarding rule # # bindadress bindport connectaddress connectport # для веб сервера 188.16.38.55 80 192.168.0.101 80 # для правильной работы ФТП 188.16.38.55 1024 192.168.0.102 1024 188.16.38.55 21 192.168.0.102 21 188.16.38.55 20 192.168.0.102 20 # для игрового сервера 188.16.38.55 7777 192.168.0.40 7777 188.16.38.55 2106 192.168.0.40 2106 # для ДНС 188.16.38.55 53 192.168.0.103 53 # logging information # logfile /var/log/rinetd.log # uncomment the following line if you want web-server style logfile format # logcommon