• Партнер

  • У тебя есть своя собственная локальная сеть,
    ты решил, что тебе пора ее подключать к Интернету по выделенной лини. Ну, что же дело хорошее, сегодня я постараюсь тебе
    помочь немного с этим 🙂 Начнем с установки 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 #Запрещаем вход пользователей с пустым паролем

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

    Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии