Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Hej, robie projekt "centralne zarządzanie siecią bezprzewodową", mam już skonfigurowanego radius-a z mysql-em (logowanie odbywa się poprzez indywidualny login oraz hasło), mam postawiony główny urząd ceryfikacji oraz serwer dhcp.
Mam takie pytania:
1) Co i jak logować w przypadku jeśli przyjdzie pewniego dnia policja z danymi że tego dnia o tej godzinie z takiego adresu na taki adres nastąpił atak bądź ktoś ściągał jakieś nielegalne rzeczy.
2) Jak ogarnąć certyfikaty żeby nie biegać do każdego nowego uzytkownika z pendrivem wgrywając mu certyfikat (myślałem o stronce z tym że użytkownik musiał by mieć jakiś dostęp do internetu).
3)Jakieś dodatkowe sugestie co by można jeszcze zaimplementować.
Docelowo myślałem o jakiejś stronce w php z pod której będzie można sprawdzić kto i kiedy oraz jaki adres ip został mu przyznany, plus możliwość edycji użytkowników sieci.
No i tutaj będe miał do Was późniejsprawe abyście pomogli mi w kwestii połączenia tego wszystkiego.
Z góry dziękuje za jakiekolwiek uwagi.
Offline
Docelowo myślałem o jakiejś stronce w php z pod której będzie można sprawdzić kto i kiedy oraz jaki adres ip został mu przyznany, plus możliwość edycji użytkowników sieci.
Tu nagios było by fajne, są tam też statystyki więc będziesz miał kompleksowe informacje dotyczące sieci, możesz sobie również do niego napisać jakieś wtyczki w razie potrzeby :D
Offline
Tu nagios było by fajne, są tam też statystyki więc będziesz miał kompleksowe informacje dotyczące sieci, możesz sobie również do niego napisać jakieś wtyczki w razie potrzeby :D
Widze, że ten nagios to ciekawa rzecz, teraz tylko czy jest gdzieś sensowanie opisana kofiguracja tego narzędzia
Offline
BiExi napisał(-a):
Ulogd + jakaś baza danych i masz ładne logowanie
Są też jakieś graficzne narzędzia do przeglądania logów
A macie jakąś dokumentacje lub info jak to skonfigurować bo na stronie netfilter mało info jest.
Offline
a da się wyświetlić logi z pliku w php, bo ulogd cos u mnie nie działa
Offline
Wie ktoś czy da się połączyc serwer dhcp z radiusem by przy autoryzacji użytkownika w radiusie wyświetlany był też adres ip jaki został mu przydzielony ?
Offline
Offline
Bardzo łatwo.
Jedno malutkie pytanko.
Czy wiek ktoś, jak wbić do łba serwerowi dhcp, żeby oferował prawidłowy DHCP-Pack tylko przypadku, kiedy Radius uwierzytelni duszyczkę prawidłowo?
A w przeciwnym razie przydzielał adres IP 127.0.0.1,DNS 127.0.0.2 i 3, Gateway 127.0.0.5 itp. :P
Czy to w ogóle wykonalne?
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2011-10-28 15:44:32)
Offline
Czy jest możliwość w freeradiusie lub już w iptables jakoś podzielić użytkowników na grupy, przykładowo żeby kadra zarządzająca miała dostęp do wszystkiego, a użytkownicy zwykli mieli ograniczony dostęp np. do przeglądania stron itp. ?
Offline
też o tym myslałem, tylko niewiem jak ustawić w serwerze dhcp, że ten użytkownik należy do takiej grupy i trzeba mu przydzielić adres z tego zakresu.
Offline
mam radiusa, a do tego serwer dhcp który po przepuszczeniu przez radiusa przydziela dynamicznie adresy z zadanego zakresu.
Offline
zapodaj configami, może co doradzimy
Offline
dhcp:
log-facility local7; ddns-update-style none; option domain-name-servers 192.168.0.1; default-lease-time 86400; max-lease-time 604800; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.2 192.168.0.254; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; }
a które konfigi chcesz jeszcze zobaczyć, z radiusa ich troche sporo jest.
Offline
dhcp i radiusa
Offline
clients.conf
client 192.168.0.50/32 { secret = haslo }
eap.conf
eap { default_eap_type = peap timer_expire = 60 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 4096 md5 { } leap { } gtc { auth_type = PAP } tls { certdir = ${confdir}/certs cadir = ${confdir}/certs private_key_password = haslo private_key_file = ${certdir}/server.key certificate_file = ${certdir}/server.pem CA_file = ${cadir}/ca.pem dh_file = ${certdir}/dh random_file = /dev/urandom CA_path = ${cadir} cipher_list = "DEFAULT" make_cert_command = "${certdir}/bootstrap" cache { enable = no lifetime = 24 # hours max_entries = 255 } verify { } } ttls { default_eap_type = md5 copy_request_to_tunnel = no use_tunneled_reply = no virtual_server = "inner-tunnel" } peap { default_eap_type = mschapv2 copy_request_to_tunnel = yes use_tunneled_reply = yes virtual_server = "inner-tunnel" } mschapv2 { } }
radiusd.conf
prefix = /usr exec_prefix = /usr sysconfdir = /etc localstatedir = /var sbindir = ${exec_prefix}/sbin logdir = /var/log/freeradius raddbdir = /etc/freeradius radacctdir = ${logdir}/radacct name = freeradius confdir = ${raddbdir} run_dir = ${localstatedir}/run/${name} db_dir = ${raddbdir} libdir = /usr/lib/freeradius pidfile = ${run_dir}/${name}.pid user = freerad group = freerad max_request_time = 30 cleanup_delay = 5 max_requests = 1024 listen { type = auth ipaddr = * port = 0 } listen { ipaddr = * port = 0 type = acct } hostname_lookups = no allow_core_dumps = no regular_expressions = yes extended_expressions = yes log { destination = files file = ${logdir}/radius.log syslog_facility = daemon stripped_names = yes auth = yes auth_badpass = no auth_goodpass = no } checkrad = ${sbindir}/checkrad security { max_attributes = 200 reject_delay = 1 status_server = yes } proxy_requests = yes $INCLUDE proxy.conf $INCLUDE clients.conf thread pool { start_servers = 5 max_servers = 32 min_spare_servers = 3 max_spare_servers = 10 max_requests_per_server = 0 } modules { $INCLUDE ${confdir}/modules/ $INCLUDE eap.conf $INCLUDE sql.conf } instantiate { exec expr expiration logintime } $INCLUDE policy.conf $INCLUDE sites-enabled/
sql.conf
sql { database = "mysql" driver = "rlm_sql_${database}" server = "localhost" login = "login" password = "haslo" radius_db = "radius" acct_table1 = "radacct" acct_table2 = "radacct" postauth_table = "radpostauth" authcheck_table = "radcheck" authreply_table = "radreply" groupcheck_table = "radgroupcheck" groupreply_table = "radgroupreply" usergroup_table = "radusergroup" deletestalesessions = yes sqltrace = no sqltracefile = ${logdir}/sqltrace.sql num_sql_socks = 5 connect_failure_retry_delay = 60 lifetime = 0 max_queries = 0 nas_table = "nas" $INCLUDE sql/${database}/dialup.conf }
/sites-enabled/default
authorize { preprocess auth_log chap mschap digest suffix eap { ok = return } files sql expiration logintime pap } authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap } digest unix eap } preacct { preprocess suffix files } accounting { detail unix radutmp sql sql_log exec attr_filter.accounting_response } session { radutmp sql } post-auth { reply_log sql sql_log exec Post-Auth-Type REJECT { attr_filter.access_reject } } pre-proxy { } post-proxy { eap }
/sites-enabled/inner-tunnel
server inner-tunnel { listen { ipaddr = 127.0.0.1 port = 18120 type = auth } authorize { chap mschap suffix update control { Proxy-To-Realm := LOCAL } eap { ok = return } files sql expiration logintime pap } authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap } unix eap } session { radutmp } post-auth { Post-Auth-Type REJECT { attr_filter.access_reject } } pre-proxy { } post-proxy { eap } }
dhcp
log-facility local7; ddns-update-style none; option domain-name-servers 192.168.0.1; default-lease-time 86400; max-lease-time 604800; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.2 192.168.0.254; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; }
Offline
Jest takie narzędzie jak dnsmasq, ale niewiem czy się do tego nada
Offline
prawde mówiąc nie bawiłem się w taką konfigurację... ale z tego co wiem to musisz skonfigurować jeszcze plik `raddb/sites-available/dhcp` i dodać go do `raddb/sites-enabled` , musisz również wyedytować plik `share/dictionary` i odkomentować `$INCLUDE dictionary.dhcp` , tutaj masz jeszcze kilka linków:
http://www.mail-archive.com/freeradius-users@lists. … msg59082.html
http://www.trzepak.pl/viewtopic.php?t=21917
http://www.trzepak.pl/viewtopic.php?t=26694
http://freeradius.1045715.n5.nabble.com/SoH-and-DHCP-td4616593.html
http://freeradius.1045715.n5.nabble.com/FreeRADIUS-DHCP-td2773716.html
powinny wystarczyć do skonfigurowania freeradiusa, co do konfiguracji dhcpd pod radiusa to nie wiem, jak coś znajdę to dopiszę...
Offline
Dzięki za materiały, popróbuje coś skonstruować.
a propo znalazłem na sieci coś takiego, do zapobiegania zmianie adresu ip przez użytkownika, bo jeśli mam zarządzać uprawnieniami poprzez przydzielony adres ip to takie coś musi się tam znaleźć. I takie pytanie bo skrypt wywala się na warunku
if [ \( $1 = 'add' -o $1 = 'old' \) -a \ `sudo $IPTABLES -L FORWARD | grep -i -c “ $3 “` -eq 0 ] then sudo $IPTABLES -A FORWARD -i $INT_INTERFACE -o $EXT_INTERFACE \ -m mac --mac-source $2 -s $3 -j ACCEPT sudo $IPTABLES -A FORWARD -o $INT_INTERFACE -i $EXT_INTERFACE \ -d $3 -j ACCEPT fi
a dokładniej na grep -i -c “ $3 “`ja prawde mówiąc też niewiem skąd i do czego służyć ma ta linijka jakby ktoś był w stanie wytłumczyć o co tam chodzi to byłbym wdzięczny
skrypt zarządzający regułami łańcucha forward:
# skrypt posiada trzy parametry: # 1) add (nowa dzierżawa DHCP) | # del (wygasająca dzierżawa) | # old (odnowiona dzierżawa – # np. w wypadku restartu dnsmasq w czasie trwania dzierżawy) # 2) adres MAC klienta # 3) adres IP klienta otrzymany z DHCP IPTABLES='/sbin/iptables' EXT_INTERFACE=<EXTERNAL INTERFACE> INT_INTERFACE=<INTERNAL INTERFACE> # jeśli dzierżawa jest nowa ($1 = add) lub odnowiona ($1 = old) # i nie ma jeszcze takiej reguły w łańcuchu FORWARD # to pozwalamy na przekazywanie pakietów w obie strony. if [ \( $1 = 'add' -o $1 = 'old' \) -a \ `sudo $IPTABLES -L FORWARD | grep -i -c “ $3 “` -eq 0 ] then sudo $IPTABLES -A FORWARD -i $INT_INTERFACE -o $EXT_INTERFACE \ -m mac --mac-source $2 -s $3 -j ACCEPT sudo $IPTABLES -A FORWARD -o $INT_INTERFACE -i $EXT_INTERFACE \ -d $3 -j ACCEPT fi # jeśli dzierżawa wygasa ($1 = del) # i istnieją reguły w łańcuchu FORWARD # pozwalające na przekazywanie pakietów w obie strony # to je usuwamy. if [ $1 = 'del' -a \ `sudo $IPTABLES -L FORWARD | grep -i -c “ $3 “` -ne 0 ] then sudo $IPTABLES -D FORWARD -i $INT_INTERFACE -o $EXT_INTERFACE \ -m mac --mac-source $2 -s $3 -j ACCEPT sudo $IPTABLES -D FORWARD -o $INT_INTERFACE -i $EXT_INTERFACE \ -d $3 -j ACCEPT fi
Konfiguracja dnsmasq.conf
# dnsmasq uruchamiany jest jako użytkownik dnsmasq, grupa dnsmasq user=dnsmasq group=dnsmasq # wypisujemy interfejsy, na których nasłuchuje dnsmasq interface=<INTERNAL_INTERFACE> # wypisujemy interfejsy, na których _NIE_ nasłuchuje dnsmasq except-interface=<EXTERNAL_INTERFACE> # podajemy dokładnie, na których adresach # dnsmasq powinien nasłuchiwać listen-address=127.0.0.1 listen-address=<IP_ADDRESS> # wymuszamy bindowanie określonego adresu dla usług # zadeklarowanych powyżej bind-interfaces # ustawiamy domenę domain=<DOMAIN> # ustawiamy skrypt, który ma być uruchamiany # przy uzyskaniu/wygaśnięciu dzierżawy DHCP dhcp-script=/opt/local/dnsmasq/dnsmasq_event # ustawiamy (umowną) nazwę sieci na mynetwork1, # zakres adresów IP i okres dzierżawy DHCP dhcp-range=mynetwork1,<LOWEST_IP>,<HIGHEST_IP>,2h # serwer DHCP ma być "autorytatywny" dhcp-authoritative
a wywala cos takiego:
grep: “: Nie ma takiego pliku ani katalogu [: 23: closing paren expected grep: “: Nie ma takiego pliku ani katalogu [: 35: =: unexpected operator
Ostatnio edytowany przez czeri (2011-11-11 13:49:38)
Offline
Chyba, że znacie jakieś inne metody zapobiegające zmianie adresu ip ?
Offline
Czy Radius jest w stanie logować odwiedzane witryny przez użytkowników, czy trzeba do tego zaprzęgać coś innego jak np. iptables?
Offline
Myślałem o iptables + ulog i nakładka graficzna nulog. Z tym, że mam problem z połączeniem logów radiusa z ulog-iem.
Nulog wyświetla mi adres ip źródłowy i docelowy, godzinę oraz port źródłowy i docelowy, chciałbym aby wyświetlał jeszcze nazwę użytkownika który tą strone odwiedzał, kiedy dany użytkownik sie zalogował oraz kiedy się wylogował. Czy macie jakieś pomysły jak się do tego zabrać ? i czy to jest osiągalne za pomocą tych narzędzi, czy trzeba by użyć czego innego?
Offline