У тебя есть своя собственная локальная сеть,
ты решил, что тебе пора ее подключать к Интернету по выделенной лини. Ну, что же дело хорошее, сегодня я постараюсь тебе
помочь немного с этим 🙂 Начнем с установки FreeBSD, поскольку мы помешаны на
безопасности, о ней надо позаботиться заранее 🙂 Вырубай все, везде отвечай
твердо нет :), то что нам надо мы сами потом включим 🙂 Во время установки системы у тебя спросит
«Хотите ли вы посмотреть коллекцию портов?», отвечай да. Сейчас мы установим дополнительное
программное обеспечение. Лезем в раздел security и выбираем там программу с названием PortSentry, позже она нам пригодиться 🙂 После установки нам надо откомпилировать
ядро… За основу возьмем готовое ядро GENERIC. Оно лежит по адресу /sys/i386/conf. Пиши новое ядро для системы внимательно, удаляй все не нужное (например, удаляй нафиг поддержку USB, COM, LPT, SCSI, RAID и других устройств которые ты не будишь использовать в системе, USB тебе на фиг не надо ты же не собираешься к маршрутизатору подключать устройства с поддержкой USB, и так поступай со всем остальным, тем более это повысит быстродействие системы в целом… Более подробную информацию ты найдешь в файле LINT). Дальше в новое ядро добавляем следующие строчки:

Options IPFIREWALL #Включаем поддержку файрвола
Options IPDIVERT #это опция нужна для работы NAT
Options IPFIREWLL_VERBOSE #Пускай файрвол пишет логи
Options IPFIREWALL_VERBOSE_LIMIT=10 #Ограничение записей в лог, для событий
Options TCP_DROP_SYNFIN #Не будим принимать левые пакеты
Options ICMP_BANDLIMIT #Это опция для предотвращения DOS атак 🙂
Options ACCEPT_FILTER_DATA #Я обычно включаю эту опцию 🙂
Options TCP_RESTRICT_RST #Данную опцию тоже следует включить

После того как ты добавил и исправил все как надо,
сохрани файл под любым именем 🙂 К примеру proxy. После того как ты сохранил файл, ты даешь несколько команд:

config proxy, cd ../../compile/proxy, make depend, make, make install

Все, поздравляю, только что ты откомпилировал свое ядро, если что-то не пошло и компиляция
остановилась —  посмотри, может ты что-то не так сделал, такое бывает и попробуй пересобрать ядро заново. После чего делаем ребут системы. И машина у нас должна загрузиться с новым ядром. Если же все таки этого не
произошло не расстраивайся — систему можно загрузить со старым ядром. Для этого при
загрузке, когда она скажет хотите ли вы войти в режим восстановления, нажми Enter, там
дай команду unload, потом load kernel.old и boot. Все, система загрузиться со старым ядром.

По умолчанию система перед загрузкой ждет 9 секунд.
Мы идем в папку /boot и правим там файл loader.conf, нам надо добавить туда следующую строчку
boot_autodelay=0, это делается чтобы системы не ждала 9 секунд ответ пользователя, нам же надо чтобы если что система при перезагрузке выходила быстро в онлайн 🙂 Дальше идем в
папку /etc и начинаем править фал rc.conf. Ниже привожу пример с комментариями, так что разобраться
будет не сложно:

###rc.conf

hostname=»zlobix.evil.com» #Ссетевое имя твоей машины
firewall_enable=»YES» #Включаем файрвол
firewall_script=»/usr/local/etc/firewall.conf» #путь к файлу с политиками файрвола
firewall_type=»close» #Тип файрвола, данный тип запрещает все !
firewall_logging=»YES» #Тускай наш файрвол пишет логи
natd_program=»/sbin/natd» #Туть к демону natd
natd_interface=»ed0″ #Та каком интерфейсе у нас будит висеть NAT, интерфейс должен смотреть в сторону ISP (Inetrnet Service Provader)
tcp_extension=»NO» #Отрубаем опасные расширения для TCP/IP
tcp_keepalive=»YES» #Ставь эту опцию, твой роутер будит менее
подвержен DOS атакам.
tcp_drop_synfin=»YES» #Не принимаем левые пакеты
tcp_restrcit_rst=»YES» #Не помню что обозначает но включить рекомендую 🙂
icmp_drop_redirect=»YES» #Не работаем с ICMP
пакетами
icmp_log_redirect=»YES» #Ведем логи ICMP пакетов
ifconfig_lo0=»inet 127.0.0.1″ #настройка петлевого адреса,
оставь так как тут указано

ifconfig_ed0=»inet 167.65.89.147 nemask 255.255.255.192″ #в данном примере у нас этот
интерфейс смотрит в сторону провайдера, где ed0 имя интерфейса, inet
IP — адрес выданный провайдером, netmask маска подсети.

ifconfig_ed1=»inet 192.168.0.1 netmask 255.255.255.0″ #настройка внутреннего интерфейса, то есть который смотрит в сторону локальной сети

ifconfig_ed1_alias0=»inet 192.168.1.1 netmask 255.255.255.0″ # на один сетевой интерфейс можно повесить сразу несколько
IP адресов (IP-алиасинг), в данном примере предполагается, что сеть у нас поделена логически на две подсети 192.168.0.0/24 и 192.168.1.0/24 где /24
— код по маски по методу CIDR, который соответствует
маске подсети 255.255.255.0

syslogd_enable=»YES» #Включаем демон, который
будет отвечать за логи
inetd_enable=»NO» #Выруби этот сервис обязательно !
named_enable=»NO» #этот тоже выруби, ты же не будишь юзать свой маршрутизатор в качестве DNS сервера 🙂
nfs_client_enable=»NO» # Ниже три параметра отвечают за подержку Network File System, мой тебе совет отруби ее тоже 
nfs_server_enbale=»NO»
nfs_reserved_port_only=»NO»
fsck_y_enable=»YES»
portmap_enbale=»NO» #отключаем портмапер
sshd_enbale=»YES» #Включаем ssh, чтобы мы могли управлять нашим маршрутизатор удаленно 🙂
sshd_programm=»/usr/sbin/sshd/» #путь до демона ssh
sshd_flags=»» #Флаги запуска sshd, если не знаешь оставь так как есть
defaultrouter=»167.65.89.1″ #Вышестоящий маршрутизатор нашего провайдера
getaway_enbale=»YES» #Включаем шлюз на нашей машине
icmp_bmcastecho=»NO» #Вырубаем ответы на сообщения echo протокола ICMP, это нам сэкономит нервы 🙂
cron_enable=»NO» #Не знаю, но большинство людей включает Cron, я же его вырубаю, поскольку на маршрутизаторе он мне нафиг не нужен…
clear_tmp_enable=»YES» #Очищаем директорию tmp при каждой загрузки системы
lpd_enable=»NO» #Печатать ты тоже не будишь с маршрутизатора, так что отрубай тоже
usbd_enable=»NO» #Вырубаем демон для поддержки USB устройств
sendmail_enable=»NO» #Отрубаем sendmail, самое дырявое место во FreeBSD, постоянно находят какие-то ошибки :))))
kern_securelevel_enable=»YES» #Включаем защиту
kern_securelevel=»0″ #Устанавливаем тип защиты

Так, после того как мы разобрались с rc.conf, надо настроить наш Маршрутизатор на работу с ДНС, для этого открывай файл resolv.conf в этой же папке и пиши туда это:

###resolv.conf

nameserver=»167.65.88.18″ #Адрес DNS сервера нашего провайдера
nameserver=»167.65.88.17″ #Адрес резервного DNS сервера нашего провайдера

Как ты уже понял после nameserver=»» в кавычках указывается
IP адрес DNS сервера. DNS сервера локальной сети лучше не добавляй, береженого бог бережет 🙂 Дошло дело до ssh.
Его нам надо обезопасить 🙂 и повысить защиту, 
поэтому идем в папку /etc/ssh и открываем файл sshd_config. И правим следующие:

#sshd_config
Port 666 #На данном порте у нас будит весеть ssh 🙂
Protocol 2 #Используем более безопасный метод передачи данных
PermitRootLogin no #Отключаем возможность входа в систему пользователю root, для наших нужд мы создадим специального пользователя 🙂
PrintLastLog yes #Отображает дату последнего входа в систему
PermitEmptyPasswords no #Запрещаем вход пользователей с пустым паролем

После того как разобрались, преступим к файрволу…

Оставить мнение

Check Also

Как работает Linux: от нажатия кнопки включения до рабочего стола

Лучший способ понять, как работает операционная система, — это проследить поэтапно ее загр…