Авторские статьи Анонимность и защита от вирусов в сети

Discussion in 'Статьи' started by teab0t, 14 Jul 2009.

  1. teab0t

    teab0t New Member

    Joined:
    12 Jul 2009
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    В этой заметке будет рассмотрена следующая цепочка приложений: shorewall + (psad + syslog-ng) + squid + havp + clamav + privoxy + tor.

    где:
    shorewall - файрвол (www.shorewall.net)
    psad - детектор сканирования портов (www.cipherdyne.org)
    syslog-ng - продвинутый syslog (www.balabit.com/network-security/syslog-ng/)
    squid - прокси (www.squid-cache.org);
    havp - http анти-вирус прокси (www.server-side.de);
    clamav - антивирусный сканер (www.clamav.org)
    privoxy - прокси-фильтр (www.privoxy.org)
    tor - программа для анонимного серфинга (www.torproject.org)

    Логика работы цепочки:
    Веб браузер -> squid прокси (кэширование веб трафика) ? -> havp анти-вирусный прокси (проверка на вирусы проходящего трафика) -> privoxy (фильтр трафика) -> tor обеспечние анонимности -> Интернет


    Установка ПО
    Установить с помощью пакетного менеджера вашего дистрибутива соответствующие пакеты:
    shorewall
    psad
    syslog-ng
    squid
    havp
    clamav
    privoxy
    tor

    Конфигурация ПО

    psad (/etc/psad/psad.conf)
    Code:
    SYSLOG_DAEMON		syslog-ng
    HOME_NET			NOT-USED
    syslog-ng (/etc/syslog-ng/syslog-ng.conf)
    Code:
    destination psadpipe { pipe("/var/lib/psad/psadfifo"); };
    filter f_kerninfo { facility(kern); };
    log { source(src); filter(f_kerninfo); destination(psadpipe); };
    shorewall
    Конфигурация shorewall на отдельном компьютере.
    /etc/shorewall/interfaces
    Code:
    #ZONE   INTERFACE       BROADCAST       OPTIONS
    net           eth0                      detect          dhcp,tcpflags,routefilter,nosmurfs,logmartians
    /etc/shorewall/zones
    Code:
    #ZONE   TYPE            OPTIONS         IN                             OUT
    #                                                             OPTIONS                 OPTIONS
    fw      firewall
    net     ipv4
    /etc/shorewall/policy
    Code:
    #SOURCE  DEST  POLICY  LOG  LIMIT:BURST LEVEL
    fw                net       REJECT   info
    net               all        DROP       info
    all                all        DROP       info
    #LAST LINE -- DO NOT REMOVE
    /etc/shorewall/rules
    Code:
    #ACTION              SOURCE  DEST  PROTO  DEST  SOURCE  ORIGINAL  RATE    USER/   MARK
    #                                                                          PORT  PORT(S)   DEST          LIMIT   GROUP
    #SECTION ESTABLISHED
    #SECTION RELATED
    SECTION NEW
    HTTP/ACCEPT     fw              net
    HTTP/DROP          net             fw
    HTTPS/ACCEPT   fw              net
    FTP/ACCEPT        fw              net
    FTP/DROP             net             fw
    
    Auth/DROP            fw              net
    Auth/DROP            net             fw
    
    DNS/ACCEPT       fw              net
    Ping/ACCEPT        fw              net
    Ping/DROP             net             fw
    
    ICQ/ACCEPT         fw              net
    ICQ/DROP              net             fw
    JabberSecure/ACCEPT \
                                    fw              net
    JabberSecure/DROP \
                                    net             fw
    #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
    squid (/etc/squid/squid.conf)

    Code:
    http_port 3128
    
    acl manager proto cache_object
    acl localhost src 127.0.0.1/32
    acl to_localhost dst 127.0.0.0/8
    
    acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
    acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
    acl localnet src 192.168.0.0/16 
    acl SSL_ports port 443
    acl Safe_ports port 80          # http
    acl Safe_ports port 21          # ftp
    acl Safe_ports port 443         # https
    #acl Safe_ports port 70         # gopher
    #acl Safe_ports port 210                # wais
    #acl Safe_ports port 1025-65535 # unregistered ports
    #acl Safe_ports port 280                # http-mgmt
    #acl Safe_ports port 488                # gss-http
    #acl Safe_ports port 591                # filemaker
    #acl Safe_ports port 777                # multiling http
    #acl Safe_ports port 901                # SWAT
    acl purge method PURGE
    acl CONNECT method CONNECT
    
    http_access allow manager localhost
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !Safe_ports
    # Deny CONNECT to other than SSL ports
    http_access deny CONNECT !SSL_ports
    
    http_access allow localnet
    http_access allow localhost
    http_access deny all
    
    cache_peer localhost parent 8080 7 no-query no-digest no-netdb-exchange default
    
    visible_hostname localhost
    
    never_direct allow all
    Для анонимного серфинга раскомментируйте следующие строки:
    Code:
    request_header_access Allow allow all
    request_header_access Authorization allow all
    request_header_access WWW-Authenticate allow all
    request_header_access Proxy-Authorization allow all
    request_header_access Proxy-Authenticate allow all
    request_header_access Cache-Control allow all
    request_header_access Content-Encoding allow all
    request_header_access Content-Length allow all
    request_header_access Content-Type allow all
    request_header_access Date allow all
    request_header_access Expires allow all
    request_header_access Host allow all
    request_header_access If-Modified-Since allow all
    request_header_access Last-Modified allow all
    request_header_access Location allow all
    request_header_access Pragma allow all
    request_header_access Accept allow all
    request_header_access Accept-Charset allow all
    request_header_access Accept-Encoding allow all
    request_header_access Accept-Language allow all
    request_header_access Content-Language allow all
    request_header_access Mime-Version allow all
    request_header_access Retry-After allow all
    request_header_access Title allow all
    request_header_access Connection allow all
    request_header_access Proxy-Connection allow all
    request_header_access All deny all
    havp (/etc/havp/havp.config)
    Code:
    PARENTPROXY localhost
    PARENTPORT 8118
    
    PORT 8080
    BIND_ADDRESS 127.0.0.1
    ENABLECLAMLIB true
    CLAMBLOCKBROKEN true
    ENABLECLAMD true
    CLAMDSERVER 127.0.0.1
    CLAMDPORT 3310
    Для хранения временных вайлов HAVP необходим временный каталог, который должен располагаеться на файловой системе с функцией принудительного блокирования. Чтобы не создавать отдельного раздел диска для дирректории HAVP, создадим образ и смонтируем его на эту дирректорию с включеным блокированием. Воспользуемся командой dd:

    Code:
    dd if=/dev/zero of=havp.img count=1 bs=256M
    Врезультате будет создан файл образа размером 256Mb. Переместим этот образ в соответствующую дирректорию, отформатируем и примонтируем его:
    Code:
    mv havp.img /usr/
    mkfs.ext3 /usr/havp.img
    mount /usr/havp.img /usr/tmp/havp -o loop,mand
    chown -R havp:havp /usr/tmp/havp
    Для монтирования полученного образа файла во время загрузки, добавляем в /etc/fstab:
    Code:
    /usr/havp.img                   /usr/tmp/havp           ext3            loop,mand,noexec        0 0
    clamav (/etc/clamd.conf)

    Code:
    TCPSocket 3310
    TCPAddr 127.0.0.1
    AllowSupplementaryGroups yes
    Code:
    usermod -a -G havp clamav 
    privoxy (/etc/privoxy/config)

    Code:
    forward-socks4a / localhost:9050 .
    tor (/etc/tor/torrc)

    Code:
    SocksPort 9050 # what port to open for local application connections
    SocksListenAddress 127.0.0.1 # accept connections only from localhost
    Для корректной работы tor, необходимо установить точное системное время

    Используемый материал

    http://www.opennet.ru/base/net/shorewall.txt.html
    http://blog.doylenet.net/?p=46
    https://wiki.torproject.org/noreply/TheOnionRouter/SquidProxy
    http://www.cyberciti.biz/faq/linux-detect-port-scan-attacks/
    http://forum.antichat.ru/thread126658.html
     
    #1 teab0t, 14 Jul 2009
    Last edited: 14 Jul 2009