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.[/quote]
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[/quote]
Widze, że ten nagios to ciekawa rzecz, teraz tylko czy jest gdzieś sensowanie opisana kofiguracja tego narzędzia
Offline
[quote=BiExi]Ulogd + jakaś baza danych i masz ładne logowanie
Są też jakieś graficzne narzędzia do przeglądania logów[/quote]
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
zerknij [url=http://freeradius.org/features/dhcp.html]tutaj[/url] i [url=http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg59082.html]tutaj[/url]. czy tak ciężko wpisać w google freeradius dhcp?
Offline
[quote=siarka2107]zerknij [url=http://freeradius.org/features/dhcp.html]tutaj[/url] i [url=http://www.mail-archive.com/freeradius-users@lists.freeradius.org/msg59082.html]tutaj[/url]. czy tak ciężko wpisać w google freeradius dhcp?[/quote]
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.freeradius.org/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
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00119 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.82.50' WHERE u.id=1 |
0.00062 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.82.50', 1731267815) |
0.00043 | SELECT * FROM punbb_online WHERE logged<1731267515 |
0.00064 | SELECT topic_id FROM punbb_posts WHERE id=185501 |
0.00361 | SELECT id FROM punbb_posts WHERE topic_id=19839 ORDER BY posted |
0.00089 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=19839 AND t.moved_to IS NULL |
0.00012 | SELECT search_for, replace_with FROM punbb_censoring |
0.00131 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=19839 ORDER BY p.id LIMIT 0,25 |
0.00091 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=19839 |
Total query time: 0.00985 s |