Часть Первая или как все началось.
Подумал я тут, и значит решил пописать о том, что делаю с серваком на работе, вдруг кому пригодится
или наоборот мне подскажу, что я дебил и нужно делать так-то, в любом случае это будет полезно, не
считая варианта что кроме меня это никто читать не будет)
Помню возникла у меня как-то задача, построить простейший интернет шлюз на работе,
по простому говоря инет приходит на сервак, а сервак благославляет все остальные компы инетом.
И все бы было заебца, но грозятся люди в масках притопать, а значит паленную венду серверную ставить не
есть круто, а ведь там все весело пару щелчков и у тебя dhcp настроен, еще пару щелчков и уже домен замучен.
Ахуеть, красота какая :)
Ну как бы там не было остановился я на дистрибутиве
ubuntu 7.10, во-первых бесплатно, а во-вторых
привык что убунту это лехко + к ней куча доков.
Итак, что же я такого сделал в итоге.
Ну я думаю все знают, что убунта ставится даже удобнее и проще чем винда, даже в консольном режиме,
так что нащелкав "next", у меня установилась новая убунта, естественно никаким графическим
интерфейсом там не пахло, но как бы, этого я и хотел, иначе как себя человеком чувствовать если у
тебя сервер с графической оболочкой под линуксом, позор да и только :)
ну в первую очередь я обратил внимание что сетевая карточка на которую идет инет называется
eth0,
это хотя бы можно понять по команде
route, она единственна кто получил айпишник и маршруты, а вот
вторую которая путем не хитрых вычислений получается
eth1, я и должен был настроить.
для начала присвоил ей айпишник
sudo ifconfig eth1 192.168.0.1ну и после этого надо было естественно настроить связь одной сетевой карты с другой,что бы
пакеты из одной шли во вторую мне потребовалось немного поманить iptables и погуглить
и получилось такое делокак раз таки вход в первый карту, выход во вторую :)
sudo iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -m state --state NEW -j ACCEPT
sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPTну и зачем внешней сети видеть нашу внутреннию, правда?
sudo iptables -A POSTROUTING -t nat -j MASQUERADEда.. я все эти 4 команды закинул в один файл, который если чтото собьется запускаю,с конфигами
то ничего оне случится, а вот с таким настройками, после перезагрузки запросто
(
echo "sudo ifconfig eth1 192.168.0.1" > .auto
echo "sudo iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -m state --state NEW -j ACCEPT" >> .auto
echo "sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT >> .auto
echo "sudo iptables -A POSTROUTING -t nat -j MASQUERADE» >> .autoв итоге есть файл
.auto внутри которого сложенны команды,
sudo bash .auto и все в шоколаде.
)
после этого сконфигурируем шлюз между двумя картами вот такой штукой
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"до сих пор не понимаю что она делает)
ну и в файле
/etc/sysctl.conf нужно было раскомментировать пару строк
(
но стоит всетаки сначало забекапить файл конфига, малоли что вы решите еще поменять (:
sudo cp /etc/sysctl.conf /etc/sysctl.conf-backupесли что
cp — это копировать,
/etc/sysctl.conf — какой файл,
/etc/sysctl.conf-backup— новый файл, ну малоли вдруг кто не знает Оо
)
для этого я воспользовался редактором нано
sudo nano /etc/sysctl.confнайдем строчки:
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1и уберем экранирующие символы, всмысле раскомментрируем)
да кстати в
nano сохранять
ctrl+o, если что, ну в общем там внизу все комбинации описаны,
вроде все с
ctrl Начинаются %)после таких конфигурация у нас получился простейший нетворк гетэвэй.
Но ебать!
Стопудова если будет еще и простейший dhcp сервис будет куда удобнее, не вбивать же каждому компу
в сетиайпишник,айпишник, маску, гетэвэй ручками, это же тупо %)
Поэтому Часть Вторая или как я запустил dhcp.
Тут на самом деле все просто, что даже дебил который дрищет без перерыва третий день, поймет,
а ведь ему совсем не до того.
итак установил я сначала сам демон, который будет все делать.
sudo aptitude install dnsmasqну и на время пока мы его затачиваем под себя, его следует вырубить
sudo /etc/init.d/dnsmasq stopвот теперь его можно надрачиватьестественно для начала, как всегда нужно забекапить конфиг-файл
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf-backupа теперь не боясь ничего отредактируем сранный конфигурационный файл %)
sudo nano /etc/dnsmasq.confв нем я добавил буквально две строчки
interface=eth1
dhcp-range=192.168.0.20,192.168.0.250,72hто сеть для которой мы являемся dhcp сервером, диапозон айпишников выдаваемых и время на какое выдаем.
Ну и вообщем мне оставалось только запустить dhcp-сервер
sudo /etc/init.d/dnsmasq startну а стаические айпишники у меня пока тупо на каждом компе выставленны ручками %)
Вот и все ребятки, возможно если меня пропрет еще раз, напишу как я прихуячил еще самба шару или еще чо базового. :)