Veselin Публикувано 23 Септември, 2008 Доклад Сподели Публикувано 23 Септември, 2008 Итак разбираемся с тем что у нас имеется: 1. Сервер с Suse 9.x только что поднятый. 2. Куча клиентских машин в рабочей группе настроенных на получение адреса по DHCP. 3. /dev/hands требуется, желательно версией попрямее. 4. Пакеты rp-pppoe, freeradius, radiusclient, pppd(с поддержкой radius(библиотека radius.so)), nacctd, iptables, htb(со скриптом запуска), dhcp-server, named, mysql, также потребуется биллинг, который работает с radius.(FreeNIBS, UTM(кстати в случае с UTM лучше использовать его radius-server(тогда freeradius не нужен)Но UTM платный и это его главный минус :|)). 5. Опыт в редактировании конфигов, пользования MySQL, опыт в первоначальной настройке сервера: сетевые интерфейсы и .т.п. Ставим пакеты, перечисленные в пункте 4 , удовлетворяем все зависимости которые они запросят. Надеюсь с установкой пакетов все справятся. Тем более что почти все они есть в Suse. Условимся, что ip интерфейса eth0 сервера, который смотрит в инет, 21x.9x.1xx.23. Условимся, что ip интерфейса eth1 сервера, который смотрит в локалку, 192.168.1.1. Условимся, что локальный домен: byte.local Сеть 192.168.2.10/24 будет использоваться для pppoe. Настройка DHCP сервера. Если кому хочется бегать от машины к машине и прописывать на них ip адреса, то можно пропустить данных шаг. Но я человек ленивый и считаю, что на клиентских машинах никаких настроек не должно быть Чтобы не бегать =) Ставим dhcp-server. Конфиг /etc/dhcpd.conf делаем примерно таким: *******Начало /etc/dhcpd.conf******** authoritative; default-lease-time 259200; # 3 days max-lease-time 604800; # 1 week option domain-name "byte.local"; #имя локального домена option routers 192.168.1.1; #маршрут по умолчанию option domain-name-servers 192.168.1.1; #DNS сервер option broadcast-address 192.168.1.255; #Адрес широковещательных пакетов subnet 192.168.1.0 netmask 255.255.255.0 { # Подсеть range 192.168.1.10 192.168.1.254; #С какого по какой ip выделять адреса. # записи ниже нужны если вдруг у кого есть жгучее желание иметь постоянный ip в # локалке host baltazar.byte.local { #имя хоста hardware ethernet 00:50:BF:44:27:D5; # MAC адрес клиента fixed-address 192.168.1.10; # ip который хотим ему давать. } } *******Конец /etc/dhcpd.conf******** Вот и все. Запускаем демон dhcpd: /etc/init.d/dhcpd start Если что не так – смотрим логи, ищем ошибки. Кого мучает паранойя или есть умники в сети c DHCP-серверами =), кое-что в конфиг придется добавить. Search Google. Настройка DNS-сервера. Зачем DNS? Ну во-первых кеш, во-вторых удобно, если есть биллинг юзер заходит stat.byte.local, вводит логин\пасс, попадает на статистику. Красиво… Можно также поставить апач и сделать небольшую информ-страничку с новостями для юзеров, типа [ch9562]с 00:00 до 02:00 в пятницу будет проходить профилактика[ch9577], ну и т.п. Итак ставим named, идем править /etc/named.conf ********Начало named.conf*********** options { directory "/var/lib/named"; dump-file "/var/log/named_dump.db"; statistics-file "/var/log/named.stats"; !!!!!!!!!!!!forwarders { ЗДЕСЬ IP ВАШЕГО ПРОВА; 192.168.1.1; }; forward first; listen-on port 53 { any; }; notify no; }; zone "." in { type hint; file "root.hint"; }; zone "localhost" in { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" in { type master; file "127.0.0.zone"; }; zone "byte.local" in { type master; file "byte.local.zone"; }; zone "1.168.192.in-addr.arpa" in { type master; file "192.168.1.zone"; }; zone "2.168.192.in-addr.arpa" in { type master; file "192.168.2.zone"; }; ********Конец named.conf*********** Теперь идем создавать файлы в директории “/var/lib/named” byte.local.zone 192.168.1.zone 192.168.2.zone Короче те, что описали с named.conf. Итак содержимое этих файлов: *************** byte.local.zone**************** $TTL 1W @ IN SOA @ root ( 42 ; serial (d. adams) 2D ; refresh 4H ; retry 6W ; expiry 1W ) ; minimum IN NS @ IN A 192.168.1.1 ice A 192.168.1.1 ns1 CNAME ice ns2 A 192.168.2.1 stat CNAME ns2 *************** byte.local.zone**************** *************** 192.168.1.zone**************** $TTL 1W @ IN SOA ice. root.ice. ( 42 ; serial (d. adams) 2D ; refresh 4H ; retry 6W ; expiry 1W ) ; minimum IN NS ice. 1 IN PTR ice-ns1. 2 IN PTR ap2100-1 *************** 192.168.1.zone**************** *************** 192.168.2.zone**************** $TTL 1W @ IN SOA ice. root.ice. ( 42 ; serial (d. adams) 2D ; refresh 4H ; retry 6W ; expiry 1W ) ; minimum IN NS ice. 1 IN PTR stat-pppoe. *************** 192.168.2.zone**************** Вот и все. Запускаем демон named: /etc/init.d/named start Если что не так – смотрим логи, ищем ошибки. Повторюсь, что кого мучает паранойя или есть умники в сети, кое-что для безопасности в конфиг named придется добавить. Search Google. Настройка PPPoE-сервера и демона pppd. Здесь начинается самое сложное А именно найти radius.so под Вашу версию pppd. В принципе можно пересобрать pppd из сырцов c поддержкой mschap,mppe и библиотеку тоже. Короче эту часть я оставляю на откуп Вам. Вот линк: http://www.opennet.ru/base/net/pptp_mppe_mppc.txt.html. Хоть там и про pptpd, но установка pppd таким же образом. Если у вас лежит в /usr/lib/pppd/версия pppd/ библиотека radius.so, то можно не беспокоиться и спокойно продолжать настройку дальше. Ставим rp-pppoe. Конфиг /etc/ppp/pppoe-server-options: ***************pppoe-server-options**************** # PPP options for the PPPoE server # LIC: GPL logfile /var/log/pppoe.log debug mtu 1472 mru 1472 auth require-pap #require-chap default-asyncmap ktune lcp-echo-interval 20 lcp-echo-failure 2 ms-dns 192.168.1.1 ms-dns ЗДЕСЬ IP ВАШЕГО ПРОВА plugin radius.so plugin radattr.so 192.168.2.1: nobsdcomp noccp noendpoint noipdefault noipx novj receive-all ***************pppoe-server-options**************** К конфиге /etc/ppp/options: lock Для запуска сервера pppoe создадим скриптик pppoed запуска в /etc/init.d Скриптик для Suse. Для других систем подгоняйте сами **************pppoed******************** #!/bin/bash # init file for rp-pppoe server # # description: PPPOE kernel mode server # # processname: pppoe-server # chkconfig: - 45 45 # source function library . /etc/rc.status case "$1" in start) echo -n "Starting PPPOE server: " /usr/sbin/pppoe-server -I eth1 -L 192.168.2.1 -R 192.168.2.10 #Здесь eth1 - ваш pppoe server интерфейс #192.168.2.1 - IP PPPoE сервера #192.168.2.10 - Первый IP адрес клиента touch /var/lock/subsys/pppoed rc_status -v ;; stop) echo -n "Shutting down PPPOE server: " killproc pppoe-server rm -f /var/lock/subsys/pppoed rc_status -v ;; restart) $0 stop $0 start ;; status) status pppoe-server ;; *) echo "Usage: pppoed {start|stop|restart|status}" exit 1 esac exit 0 **************pppoed******************** При желании вместо pppoe-server можно использовать pptpd. Опции практически те же Конфиги даны только с поддержкой PAP. При желании и возможностях можно прикрутить и CHAP(MSCHAP). Для проверки работает ли pppoe-сервер можно в файле /etc/ppp/pppoe-server-options закомментировать строку “plugin radius.so” и в файле /etc/ppp/pap-secrets написать test * test 192.168.2.10 Запускаем pppoe-server: /etc/init.d/pppoed start На любом клиенте создаем PPPoE соединение и используя логин\пароль test подключаемся. Смотрим дал ли нам сервер ip 192.168.2.10, и есть ли DNS-сервера и есть ли default route на 192.168.2.1 Если что не так копаем логи. После экспиримента строчку из pap-secrets удалить, в файле /etc/ppp/pppoe-server-options строку “plugin radius.so” разкомментировать и перезапустить pppoed. Адрес на коментара Сподели в други сайтове More sharing options...
Veselin Отговорено 23 Септември, 2008 Автор Доклад Сподели Отговорено 23 Септември, 2008 Настройка HTB. Подробнее о htb можно узнать здесь: http://www.opennet.ru/base/net/htb_saga.txt.html Скрипт запуска htb можно скачать здесь: http://freshmeat.net/projects/htb.init Копируем этот скрипт в /etc/init.d Создаем директорию /etc/sysconfig/htb Создаем там файлы: ppp0 ppp0-2.root ppp0-2:10.ppp тут и прописывается ограничение пропускной способности для клиентов. *********ppp0******* DEFAULT=30 R2Q=10 *********ppp0******* *****ppp0-2.root******* RATE=96Kbit BURST=9k *****ppp0-2.root******* *****ppp0-2:10.ppp***** RATE=96Kbit BURST=9k LEAF=sfq RULE=*,192.168.2.0/24 *****ppp0-2:10.ppp***** Эти файлы рассчитаны на пропуск примерно 11-12 kb\sec. Я не буду рассказывать про то, как настраивается htb. Про это отлично написано в статье, указанной выше. Также я написал небольшой скриптик для того, чтобы создавать такие файлы для всех интерфейсов ppp с 0 по 254 *************create.ppp.shapers************* #!/bin/bash COUNTER=1 while [ $COUNTER -lt 254 ]; do echo Shaper for interface ppp$COUNTER created! rm -f /etc/sysconfig/htb/ppp$COUNTER rm -f /etc/sysconfig/htb/ppp$COUNTER-2.root rm -f /etc/sysconfig/htb/ppp$COUNTER-2:10.ppp cp /etc/sysconfig/htb/ppp0 /etc/sysconfig/htb/ppp$COUNTER cp /etc/sysconfig/htb/ppp0-2.root /etc/sysconfig/htb/ppp$COUNTER-2.root cp /etc/sysconfig/htb/ppp0-2:10.ppp /etc/sysconfig/htb/ppp$COUNTER-2:10.ppp let COUNTER=COUNTER+1 done /etc/init.d/htb.init restart *************create.ppp.shapers************* Т.е. для того чтобы изменить пропускную способность для всех, изменяем всё что относится к ppp0, а потом запускаем скрипт. Для того чтобы правила применялись при подключении клиента, необходимо создать в директории /etc/ppp/ip-up.d скрипт shaper.start ********shaper.start****** #!/bin/bash /etc/init.d/htb.init restart ********shaper.start****** а в директории /etc/ppp/ip-down.d скрипт shaper.stop ********shaper.stop****** #!/bin/bash /etc/init.d/htb.init restart ********shaper.stop****** Настройка Iptables. Вот скрипт, который я использую для настройки файрволла. ****************main.rules.iptables**************** #!/bin/sh iptables --flush iptables -t nat --flush clear ########################################################################### # # 1. Configuration options. # # # 1.1 Internet Configuration. # INET_IP="21x.9x.1xx.23" INET_IFACE="eth0" # # 1.2 Local Area Network configuration. # # LAN_IP="192.168.1.1" LAN_IP_RANGE="192.168.1.0/24" LAN_IFACE="eth1" # # 1.3 VPN Configuration. # VPN_IP="192.168.2.1" VPN_IP_RANGE="192.168.2.0/24" VPN_IFACE="ppp+" # # 1.4 Localhost Configuration. # LO_IFACE="lo" LO_IP="127.0.0.1" # # 1.5 IPTables Configuration. # IPTABLES="iptables" ########################################################################### # # 2. Module loading. # /sbin/depmod -a # # 2.1 Required modules # /sbin/modprobe ip_tables /sbin/modprobe ip_conntrack /sbin/modprobe iptable_filter /sbin/modprobe iptable_mangle /sbin/modprobe iptable_nat /sbin/modprobe ipt_LOG /sbin/modprobe ipt_limit /sbin/modprobe ipt_state # # 2.2 Non-Required modules # #/sbin/modprobe ipt_owner #/sbin/modprobe ipt_REJECT #/sbin/modprobe ipt_MASQUERADE /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_conntrack_irc /sbin/modprobe ip_nat_ftp /sbin/modprobe ip_nat_irc ########################################################################### # # 3. /proc set up. # # # 3.1 Required proc configuration # echo "1" > /proc/sys/net/ipv4/ip_forward # # 3.2 Non-Required proc configuration # #echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter #echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp #echo "1" > /proc/sys/net/ipv4/ip_dynaddr ########################################################################### # # 4. rules set up. # ###### # 4.1 Filter table # # # 4.1.1 Set policies # $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP # # 4.1.2 Create userspecified chains # $IPTABLES -N bad_tcp_packets # # Create separate chains for ICMP, TCP and UDP to traverse # $IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets # # 4.1.3 Create content in userspecified chains # $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:" $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP # # allowed chain # $IPTABLES -A allowed -p TCP --syn -j ACCEPT $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A allowed -p TCP -j DROP # # TCP rules # $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed # # UDP ports # #$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT # # ICMP rules # $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT # # 4.1.4 INPUT chain # $IPTABLES -A INPUT -p tcp -j bad_tcp_packets # # Rules for special networks not part of the Internet # $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT #$IPTABLES -A INPUT -p ALL -i $VPN_IFACE -s $VPN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $VPN_IP -j ACCEPT # # Special rule for DHCP requests from LAN, which are not caught properly # otherwise. # $IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT # # Rules for incoming packets from the internet. # $IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets # #SQUID # $IPTABLES -A INPUT -s 192.168.1.0/24 -p tcp --dport 3128 -j DROP #$IPTABLES -A INPUT -p tcp --dport 3128 -s 192.168.2.0/24 -j ACCEPT # # Log weird packets that don't match the above. # $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: " # # 4.1.5 FORWARD chain # $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets # # Accept the packets we actually want to forward # $IPTABLES -A FORWARD -s 192.168.1.10 -d 192.168.0.1 -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # # Log weird packets that don't match the above. # $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: " # # 4.1.6 OUTPUT chain # $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets # # Special OUTPUT rules to decide which IP's to allow. # $IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $VPN_IP -j ACCEPT # # Log weird packets that don't match the above. # $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: " ###### # 4.2 nat table # # # 4.2.1 POSTROUTING chain # # # Enable simple IP Forwarding and Network Address Translation # $IPTABLES -t nat -A POSTROUTING -o $INET Адрес на коментара Сподели в други сайтове More sharing options...
Veselin Отговорено 23 Септември, 2008 Автор Доклад Сподели Отговорено 23 Септември, 2008 $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP $IPTABLES -t nat -A PREROUTING -i $VPN_IFACE -d ! $VPN_IP_RANGE -p tcp --dport 80 -j REDIRECT --to-port 3128 ****************main.rules.iptables**************** Кроме того, чтобы пользователя пускало в сеть надо добавлять при каждом его входе правило в FORWARD и INPUT цепочки с его ip адресом, а также удалять их, когда пользователь отсоеденился. Для этого делаем скрипты: *******/etc/ppp/ip-up.d/iptables************* #!/bin/bash IPT=/usr/sbin/iptables UIP=$5 $IPT -A FORWARD -s $UIP -j ACCEPT $IPT -A INPUT -s $UIP -j ACCEPT *******/etc/ppp/ip-up.d/iptables************* *******/etc/ppp/ip-down.d/iptables************ #!/bin/bash IPT=/usr/sbin/iptables UIP=$5 $IPT -D FORWARD -s $UIP -j ACCEPT $IPT -D INPUT -s $UIP -j ACCEPT *******/etc/ppp/ip-down.d/iptables************ Кстати, мысль для создания собственного биллинга: громим правило из скрипта(который кроном проходит по базе трафика и лимитов) при привышении лимита, пишем в базу пользователей что этот юзер залочен. Трафик перестает бежать, пользователь пытается переподключится и получает ошибку о неправильном логине\пароле, т.к. его аккаунт заблокирован. Я так и сделал, возможно, даже выложу скрипты и Web-интерфейс как только приведу в божеский вид. Проект типа сделаю. Настройка прозрачного прокси SQUID. В принципе эту часть можно и пропустить, если вам не интересно кеширование и блокирование баннеров, порно, а также статистика по посещенным адресам. Вот конфиг моего сквида, здесь все просто. ***********squid.conf************** #Порт HTTP-PROXY http_port 3128 #Порт ICP icp_port 0 #Не кешировать скрипты acl QUERY urlpath_regex cgi-bin/? no_cache deny QUERY #Кол-во ОЗУ для SQUID cache_mem 128 MB #Путь к директории кеша и его размер(1000) cache_dir ufs /var/cache/squid 10000 16 256 #Путь к лог-файлу доступа к SQUID(Статистика работы через SQUID) cache_access_log /var/log/squid/access.log #Путь к лог-файлу SQUID - в нем события запуска SQUID и дочерних программ cache_log /var/log/squid/cache.log #Путь к лог-файлу Strore cache_store_log /var/log/squid/store.log #Ротация логов logfile_rotate 10 #Таблица MIME-типов для SQUID mime_table /etc/squid/mime.conf #PID-файл SQUID pid_filename /var/run/squid.pid #Пользователь для анонимного доступа к FTP ftp_user anonymous@ #SQUID формирует страницу с папками на FTP - этот параметр - кол-во папок ftp_list_width 32 #Пассивный режим FTP ftp_passive on #Проверка подлинности FTP ftp_sanitycheck on #redirect_program /usr/local/rejik3/redirector /usr/local/rejik3/rejik.conf #это для режика #Списки контроля доступа acl server src 192.168.1.1/255.255.255.255 #Наш сервер acl clients src 192.168.2.1-192.168.2.254/255.255.255.255 #Стандартные ACL acl all src 0.0.0.0/0.0.0.0 #Все acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 #Адрес localhost acl SSL_ports port 443 563 #Порты SSL acl SMTP port 25 #Для защиты от спама Оказывается SQUID может делать relay #Служебные ACL acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT #Теперь разрешаем доступ тому, кто указан в ACL http_access allow server http_access allow clients http_access deny !Safe_ports http_access deny SMTP http_access deny all #Разрешаем ICP-доступ всем icp_access deny all error_directory /etc/squid/errors #Акселерация(для transparent прокси) httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on ***********squid.conf************** На этом настройка squid завершена, его можно запустить. Если нужна статистика по посещенным URL, советую использовать SARG (он есть в дистрибутиве) Адрес на коментара Сподели в други сайтове More sharing options...
Veselin Отговорено 23 Септември, 2008 Автор Доклад Сподели Отговорено 23 Септември, 2008 Настройка FreeRADIUS(NetUP Radius)+RadiusClient Решил написать различные варианты настройки с 2-мя серверами radius. Вы можете выбрать один из них. Хочу напомнить, что NetUP Radius входит в состав платного биллинга UTM. Поэтому советую использовать его, только если он куплен у производителя, а не украден в ближайшем варезнике. Тем более самописных биллинг можно очень легко заточить под свои задачи и сеть. Итак, настраиваем radius client. Правим /etc/radiusclient/servers и /etc/radiusclient/radiusclient.conf ******servers******** 127.0.0.1 oh2iFa ******servers******** Последовательность символов после ip это секрет для соединения сервера и клиента. Т.е. на сервере и на клиенте последовательность должна быть одинаковой. ********radiusclient.conf*************** auth_order radius,local login_tries 4 login_timeout 60 nologin /etc/nologin issue /etc/radiusclient/issue # RADIUS settings authserver localhost:1812 acctserver localhost:1812 servers /etc/radiusclient/servers dictionary /etc/radiusclient/dictionary login_radius /usr/sbin/login.radius # RADIUS server seqfile /var/run/radius.seq mapfile /etc/radiusclient/port-id-map default_realm radius_timeout 10 radius_retries 3 login_local /bin/login ********radiusclient.conf*************** Настройка сервера NetUP Radius: В /netup/utm/utm.cfg добавляем строки: radius_port=1812 radius_host=127.0.0.1 radius_secret_key=oh2iFa password_store_method=plain_text и в автозагрузку добавляем /netup/utm/bin/netup_radius/netup_radiusd Настройка сервера FreeRADIUS(с поддержкой MySQL). Конфиг радиус сервера следующий(взято и опробовано из статьи Алекса Б. Юдкина): ************ radiusd.conf********** prefix = /usr exec_prefix = ${prefix} sysconfdir = /etc localstatedir = /var sbindir = ${exec_prefix}/sbin logdir = ${localstatedir}/log/radius raddbdir = ${sysconfdir}/raddb radacctdir = ${logdir}/radacct # Месторасположение конфигурационных и лог файлов. confdir = ${raddbdir} run_dir = ${localstatedir}/run/radiusd # Каталог с подгружаемыми модулями. libdir = ${exec_prefix}/lib # Месторасположение pid-файла. Содержащего идентификатор процесса. pidfile = ${run_dir}/radiusd.pid # Имя пользователя и группа от которых запускается FreeRADIUS user = radius group = radius # Максимальное время (в секундах) используемое для обработки запроса. max_request_time = 30 # Удалить запросы которые обрабатываются более чем max_request_time delete_blocked_requests = no # Время ожидания (в секундах) перед очисткой reply запроса отправленного NAS. cleanup_delay = 5 # Максимальное количество запросов хранимых сервером. Это число должно быть равно # количеству клиентов помноженному на 256. # К примеру для четырех клиентов оно будет 1024. max_requests = 5120 # Закрепить за ip адресом. По умолчанию RADIUS сервер при старте принимает # запросы со всех ip адресов. bind_address = 127.0.0.1 # Закрепить за FreeRADIUS конкретный port. Если указан ноль, # то значение берется из /etc/services port = 0 # Запретить/разрешить ip адреса в dns имена. # Включение этой опции может сильно снизить производительность. hostname_lookups = no # Создавать/несоздавать отладочные файлы при падении сервера. allow_core_dumps = no # Разрешить использование регулярных выражений. regular_expressions = yes extended_expressions = yes # Записывать полный User-Name аттрибут если найден в запросе. log_stripped_names = no # Записывать в лог попытки авторизации. log_auth = yes # Записывать в логи пароли при авторизации. # log_auth_badpass - не корректные пароли # log_auth_goodpass - корректные пароли log_auth_badpass = yes log_auth_goodpass = no # Включить/выключить коллизию пользователей. usercollide = no # конвертировать логин и/или пароль до или после авторизации. lower_user = no lower_pass = no # удалить пробелы в логине и/или пароле. nospace_user = no nospace_pass = no # настройки безопасности от возможных DoS аттак. security { # Максимальное допустимое количество аттрибутов в RADIUS пакете. max_attributes = 200 # Задержка (в секундах) перед отправкой Access-Reject пакета. reject_delay = 1 # Не отвечать на запросы Status-Server status_server = no } # Конфигрурация клиентов RADIUS сервера. # Описывается в отдельном файле. $INCLUDE ${confdir}/clients.conf # Отключить snmp поддержку. snmp=no # Настрока пула процессов. thread pool { # количество первоначально запущенных процессов. start_servers = 5 # Максимально возможное количество процессов. max_servers = 32 # Динамическая регулировка количества процессов. min_spare_servers = 3 max_spare_servers = 10 # Количество принимаемых запросов процессом. МОжет помочь при утечках памяти в # RADIUS сервере. Если выставить 300, процессы будут периодически перегружаться # для уборки мусора. max_requests_per_server = 0 } # Секция конфигурации динамических модулей. modules { # Модуль PAP авторизации. # Необходим для обработки запросов с PAP авторизацией. # encryption_scheme указывает в каком виде хранятся пароли. # clear - подразумевает в открытом виде. pap { encryption_scheme = clear } # Модуль CHAP авторизации. # Необходим для обработки запросов с CHAP авторизацией. # authtype подразумевает обработку запросов только с аттрибутом Auth-Type=CHAP chap { authtype = CHAP } # Модуль преобработки запросов. # Т.е. перед авторизацией пакета. preprocess { # huntgroups - хинт группы см. файл huntgoups. # hints - хинты. huntgroups = ${confdir}/huntgroups hints = ${confdir}/hints # Обработка Cisco VSA. with_cisco_vsa_hack = no } # Модуль Microsoft CHAP авторизации. # Поддерживает так же еще и Microsoft CHAP v2 # authtype подразумевает обработку запросов только с аттрибутом Auth-Type=MS-CHAP # use_mppe = no указывает на отсутствие компресии VPN туннеля. mschap { authtype = MS-CHAP use_mppe = no } # Модуль записей Livingston RADIUS типа. # usersfile содержит авторизационные записи пользователей. # Рекомендуется использовать только для тестов и выставления значений по умолчанию. # acctusersfile содержит пользователей подлежащих учету (аккаунтингу). # compat - совместимость. При использовании файлов только FreeRADIUS можно отключить. files { usersfile = ${confdir}/users compat = no } # Запись детального лога аккаунтинговых пакетов. detail { detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d detailperm = 0600 } # Запись детального лога пакетов авторизации. detail auth_log { detailfile = ${radacctdir}/%{Client-IP-Address}/auth-detail-%Y%m%d detailperm = 0600 } # Запись детального лога reply пакетов. detail reply_log { detailfile = ${radacctdir}/%{Client-IP-Address}/reply-detail-%Y%m%d detailperm = 0600 } # Создать уникальный ключ для аккаунтинг сессии. # Многие NAS повторно используют Acct-Session-ID. # key перечисление аттрибутов для генерации Acct-Session-ID acct_unique { key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port-Id" } # Конфигурация авторизации и аккаунтинга посредством СУБД # содержится в отдельном файле cakesql.conf $INCLUDE ${confdir}/sql.conf } # Авторизация # сначала идет пакет передается в preprocess # где может быть модифицирован. # Далее chap mschap обрабатывают chap и mschap авторизацию. authorize { preprocess chap mschap # Не ведем логи пакетов авторизации. # auth_log files mysql } # Аунтификация # Секция содержит модули доступные, для аунтификации. authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap } } # Преобразование аккаунтинговых пакетов. preacct { preprocess } # Секция ведения аккаунтинга. accounting { # Создание Acct-Session-Id если ваш NAS генрит их вполне корректно можете убрать Адрес на коментара Сподели в други сайтове More sharing options...
Veselin Отговорено 23 Септември, 2008 Автор Доклад Сподели Отговорено 23 Септември, 2008 # Создание Acct-Session-Id если ваш NAS генрит их вполне корректно можете убрать. acct_unique # Не создаем detail лог. detail # Помещать аккаунтинговые пакеты в СУБД mysql } # Секция ведения логов reply-пакетов. post-auth { # Не ведем детальный лог репли пакетов. reply_log } Редактируем sql.conf: ************** sql.conf*************** sql mysql { # Database type # Current supported are: rlm_sql_mysql, rlm_sql_postgresql, # rlm_sql_iodbc, rlm_sql_oracle, rlm_sql_unixodbc, rlm_sql_freetds driver = "rlm_sql_mysql" # Connect info server = "localhost" login = "root" password = "ВАШ ПАРОЛЬ НА MySQL" # Database table configuration radius_db = "radius" ************** sql.conf*************** Файл naslist: localhost local other Файл clients: localhost oh2iFa В пакете с радиусом идет дамп базы для него: /usr/share/doc/freeradius/db_mysql.sql Создаем базу данных radius и применяем sql-файл к ней. Теперь в базу можно забивать пользователей. Руками или через самописный Web-интерфейс . Описание полей БД можно найти в документации по FreeRADIUS. Настройка NetAcct Скачать netacct можно здесь: http://netacct-mysql.gabrovo.com/?section=download&PHPSESSID=a1ad535ef569bfb3a0bc2c3885578c7c Рекомендую скачать последний stable. Там же есть русская дока по нему. Для пользователей NetUP UTM рекомендую использовать именно этот коллектор. Подробно о его конфигурировании можно прочитать в документации по UTM. Net-acct необходимо сконфигурировать с опцией "--with-mysql" с указанием пути к mysql(для UTM собираем без поддержки mysql). После компиляции и установки программы создаем базу данных для net-acct с помощью sql-файла netacct.sql, который присутствует в архиве. Также можно добавить пользователя netacct в MySQL и предоставить ему права на базу netacct. Правим конфиг **************/etc/naccttab************** flush 60 #Через какой интервал кидать в базу инфу(сек) fdelay 60 #Время (cек),через которое, после завершения сетевой активности, #данные о трафике могут быть записаны в базу. database mysql mysql_user netacct #пользователь в MySQL mysql_password netacct #пароль пользователя для базы mysql_host localhost #хост mysql_database netacct #имя базы данных mysql_table accounting #имя таблицы notdev eth0 #какой интерфейс не слушать, что бы не было двойного обсчета device eth1 #интерфейс на котором будет считаться трафик ignoremask 255.255.255.0 # исключить из подсчета трафик идущий внутри сети ignorenet 127.0.0.0 255.0.0.0 # игнор для loopback debug 2 # уровень отладки debugfile /tmp/nacctd.debug # куда класть лог отладки headers tr 40 38 headers lo 14 12 headers isdn 4 0 headers eth 14 12 headers plip 14 12 # For dynamic slip/ppp dynamicip /var/run # где хранятся файлы динам. ip dynamicnet 202.36.94.0 255.255.255.0 exclude-name-lookup 202.36.94.1 255.255.255.255 exclude-name-lookup 202.36.94.253 255.255.255.255 # For disabling certain fields # This is commented out by default # Field 7 is disabled by default so we match the old (pre 0.5) output format # disable 2 # disable output of protocol # disable 3 # disable output of source address # disable 4 # disable output of source port # disable 5 # disable output of destination address # disable 6 # disable output of destination port disable 7 # disable output of packets count # disable 8 # disable output of byte count # disable 9 # disable output of device name # disable 10 # disable output of user name **************/etc/naccttab************** Запускаем nacctd. В случае проблем проверяем права на базу, и копаем логи. Адрес на коментара Сподели в други сайтове More sharing options...
Veselin Отговорено 23 Септември, 2008 Автор Доклад Сподели Отговорено 23 Септември, 2008 Публикувам тази статия защото смятам че ще помогне на много хора . на този линк има добра и безплатна билинг система http://lms.rulez.pl/download.php Адрес на коментара Сподели в други сайтове More sharing options...
stefanchuchkov Отговорено 24 Август, 2011 Доклад Сподели Отговорено 24 Август, 2011 Публикувам тази статия защото смятам че ще помогне на много хора . на този линк има добра и безплатна билинг система http://lms.rulez.pl/download.php Колега, ползвал ли си тази система за билинг, и как. Сега докато я гледам ми се върти из главата една идея, но незнам дали ще се получи. И така идеята ми е на машина със Server 2003/2008 едно от двете( PHP, MySQL и другите изисквания като Пърл не са ограничение или спънка). DHCP и DNS отново са лесни, чудно ми е само дали ще се получи накрая работеща система. Не ми се работи с линукс или други дестрибуции, за да мога да пусна на 1 сървър билинга, ексчейндж, уеб и т.н. Поздрави!!! Адрес на коментара Сподели в други сайтове More sharing options...
Администратор 111111 Отговорено 24 Август, 2011 Администратор Доклад Сподели Отговорено 24 Август, 2011 На сървър 2008 R2 затова има сървиз за виртуални машини за да палиш каквото си искаш на една машина @Veselin нямаше ли да е по лесно да го форматираш малко или направо да дадеш едно текстово фаелче Харесай поста ^^^ Форумът е за взаимопомощ а не за свършване на чужда работа ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ Адрес на коментара Сподели в други сайтове More sharing options...
stefanchuchkov Отговорено 25 Август, 2011 Доклад Сподели Отговорено 25 Август, 2011 На сървър 2008 R2 затова има сървиз за виртуални машини за да палиш каквото си искаш на една машина Колега не си ми разбрал въпроса според мен. Гледайки изискванията всичко от което имам нужда го има в сървър дистрибуциите на уиндоус, защо ми е да паля виртуална машина с микротик или линукс. Не съм го пробвал дали става по този начин. Адрес на коментара Сподели в други сайтове More sharing options...
gbdesign Отговорено 25 Август, 2011 Доклад Сподели Отговорено 25 Август, 2011 (Редактирано) LMS си е чудесен, ма от какъв точно зор искаш да го слагаш на Уиндоус!! Да разглеждаш сайта ли?... да не съм проспал излизането на iptables за Уиндоус... Редактирано 25 Август, 2011 от gbdesign Адрес на коментара Сподели в други сайтове More sharing options...
Balthazar Отговорено 31 Август, 2011 Доклад Сподели Отговорено 31 Август, 2011 Явно всички сме го проспали.. а и няма много голяма логика с тоя униндоус ама както и да е Адрес на коментара Сподели в други сайтове More sharing options...
Recommended Posts
Създайте нов акаунт или се впишете, за да коментирате
За да коментирате, трябва да имате регистрация
Създайте акаунт
Присъединете се към нашата общност. Регистрацията става бързо!
Регистрация на нов акаунтВход
Имате акаунт? Впишете се оттук.
Вписване