« Отговор #11 -: Jun 28, 2006, 01:15 »
Такаа.
Следващото писание се предоставя без никакви гаранции.
В описаната схема компютърът с два мрежови интерфейса ще го наричам "сървър". Приемам, че интернет връзката ти идва по интерфейс eth0 - ако не е така, ще трябва да замениш съответните стойности. За яснота още тук ще дефинирам външния и вътрешния интерфейс на сървъра:
ext_if=eth0
int_if=eth1
Сега, описаната схема е доста упростена, но би трябвало да е работеща. За целта ти трябва:
1) Работеща мрежова връзка м/у сървъра и лаптопа. Тук ще приема, че сървъра има IP адрес към вътрешната мрежа 192.168.1.1/24, а лаптопа - 192.168.1.2/24 (ще рече с мрежова маска 255.255.255.0).
2) Както е отбелязал ray - във файла /etc/sysctl.conf трябва да присъства следния ред:
net.ipv4.ip_forward=1
Ако реда присъства трябва да се убедиш, че стойността в края на реда е 1, ако не присъства (или е коментиран с # отпред) до добавяш (или съответно разкоментираш).
Това ще включи препращането на пакети на сървъра и ще работи след рестартиране на машината.
3) Конфигуриран iptables - слагаш следния скрипт във файл, например /etc/firewall.sh:
#! /bin/sh
iptables=/sbin/iptables
ext_if=eth0
int_if=eth1
$iptables -F
$iptables -t nat -F
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT
$iptables -t nat -A POSTROUTING -o $ext_if -j MASQUERADE
Правиш същия файл изпълним и собственост на root:
chmod 750 /etc/firewall.sh
chown root:root /etc/firewall.sh
4) Стартиране на скрипта - в /etc/network/interfaces би трябвало да имаш нещо такова:
auto eth0
iface eth0 inet static
address X.X.X.X
netmask Y.Y.Y.Y
Ако интернет адреса ти се конфигурира с DHCP вместо 'inet static' ще е 'inet dhcp' и няма да има долу адресите.
Трябва да се добави скрипта от предишната точка, така че да се стартира при вдигане на интерфейса. Това става горе-долу така:
...
iface eth0 inet static
address X.X.X.X
netmask Y.Y.Y.Y
up /etc/firewall.sh
5) Настройки на лаптопа:
IP адрес и мрежова маска - горе писах - от същата мрежа като eth1 на сървъра.
Default gateway - адреса на eth1 на сървъра.
DNS server - тук има два варианта:
а) слагаш си DNS сървърите на доставчика ти и при смяна на доставчика ги променяш на две места, или
б) инсталираш си пакета dnsmasq, който общо-взето без настройки превръща машината ти във forwarding DNS сървър. Би трябвало да стане с 'apt-get install dnsmasq'.
Това е общо взето. Както казах - това е quick'n'dirty решение. Скрипта за iptables е куц, изброените варианти не са единствени или най-добри, но са според мен най-лесни за начинаещ.
Предупреждение - скрипта за iptables оставя машината в адски несигурно състояние - приема всякакви връзки отвън по подразбиране!!!