SQL'in Kullanıma Hazır Hale Getirilmesi

Veritabanını denemek için sahte veriler oluşturmamız gerekir. Bunun için aşağıdaki adımları takip etmelisiniz:

  • usergroup tablosuna, grup adlarına karşılık gelen kullanıcılar eklenmelidir.
  • radcheck tablosuna, her kullanıcı için 'Cleartext-Password' özelliğinde bir parola girilmelidir.
  • radreply tablosuna, her kullanıcı adı için kendisine has özellikli bir radius cevap mesajı girilmelidir.
  • radgroupreply tablosuna, tüm grup üyelerine geri döndürülecek özellikler girilmelidir.

Aşağıda MySQL veritabanından örnek 'radius' tabloları verilmiştir. PostgreSQL için küçük değişiklikler olsa da tam olarak aynı içerik kullanılmaktadır.

Bu örnekte üç farklı kullanıcı tipi vardır. Kullanıcılardan birinin (fredf) IP adresi AEN tarafından dinamik olarak atanırken, ikincisi (barney) statik bir IP adresi kullanmaktadır. Üçüncüsü kullanıcı (dialrouter) ise çevirmeli ağ ile yönlendiricisi bağlantısını temsil etmektedir:

mysql> select * from usergroup;
+----+---------------+-----------+
| id | UserName      | GroupName |
+----+---------------+-----------+
|  1 | fredf         | dynamic   |
|  2 | barney        | static    |
|  2 | dialrouter    | netdial   |
+----+---------------+-----------+
3 rows in set (0.01 sec)
    
mysql> select * from radcheck;
+----+----------------+--------------------+------------------+------+
| id | UserName       | Attribute          | Value            | Op   | 
+----+----------------+--------------------+------------------+------+
|  1 | fredf          | Cleartext-Password | wilma            | :=   |
|  2 | barney         | Cleartext-Password | betty            | :=   |
|  2 | dialrouter     | Cleartext-Password | dialup           | :=   |
+----+----------------+--------------------+------------------+------+
3 rows in set (0.01 sec)
    
mysql> select * from radreply;
    
+----+------------+-------------------+---------------------------------+------+
| id | UserName   | Attribute         | Value                           | Op   |
+----+------------+-------------------+---------------------------------+------+
|  1 | barney     | Framed-IP-Address | 1.2.3.4                         | :=   |
|  2 | dialrouter | Framed-IP-Address | 2.3.4.1                         | :=   |
|  3 | dialrouter | Framed-IP-Netmask | 255.255.255.255                 | :=   |
|  4 | dialrouter | Framed-Routing    | Broadcast-Listen                | :=   |
|  5 | dialrouter | Framed-Route      | 2.3.4.0 255.255.255.248         | :=   |
|  6 | dialrouter | Idle-Timeout      | 900                             | :=   |
+----+------------+-------------------+---------------------------------+------+
6 rows in set (0.01 sec)
    
mysql> select * from radgroupreply;
+----+-----------+--------------------+---------------------+------+
| id | GroupName | Attribute          | Value               | Op   |
+----+-----------+--------------------+---------------------+------+
| 34 | dynamic   | Framed-Compression | Van-Jacobsen-TCP-IP | :=   |
| 33 | dynamic   | Framed-Protocol    | PPP                 | :=   |
| 32 | dynamic   | Service-Type       | Framed-User         | :=   |
| 35 | dynamic   | Framed-MTU         | 1500                | :=   |
| 37 | static    | Framed-Protocol    | PPP                 | :=   |
| 38 | static    | Service-Type       | Framed-User         | :=   |
| 39 | static    | Framed-Compression | Van-Jacobsen-TCP-IP | :=   |
| 41 | netdial   | Service-Type       | Framed-User         | :=   |
| 42 | netdial   | Framed-Protocol    | PPP                 | :=   |
+----+-----------+--------------------+---------------------+------+
12 rows in set (0.01 sec)

Bu örnekte 'barney' kullanıcısı statik IP adresini alması için sadece radreply'ın IP adresiyle ilgili bir özelliğine ihtiyaç duymaktadır. Diğer özellikler radgroupreply tarafından 'static' bölümünde sağlandığından burada başka bir özelliğe ihtiyacı yoktur.

'fred' kullanıcısı IP adresini dinamik olarak AEN'dan aldığından radreply bölümünde bir girdiye ihtiyaç duymaz. Bu yüzden bütün 'dynamic' grup girdilerini SADECE radgroupreply bölümden alacaktır.

'dialrouter' çevirmeli ağ yönlendiricisi olduğundan ve statik IP adresine ihtiyaç duyduğundan route ve mask özellikleri gereklidir. Bunlar için de ilave girdiler yapılmalıdır.

'dialrouter' ilave olarak bir idle-timeout özelliğine sahip olduğundan aktif olmadığında yönlendirici tarafından bağlantısı kesilebilir. Bu özelliği isterseniz diğer kullanıcılara da verebilirsiniz. Başka özellikler eklemek sizin isteğinize bağlıdır.

Operatör ('op') değerlerinin birçok tabloda kullanıldığına dikkat edin. Parola kontrol özelliği := ile birlikte KULLANILMALIDIR. Geri dönen özelliklerin çoğu bir := operatorü içermelidir. Aynı tipte birden fazla değer (örneğin çoklu Cisco- AVpair's) döndürüyorsanız += operatörü kullanılmalıdır, aksi halde sadece ilki döndürülecektir.

Eğer kullanıcı adlarındaki bütün alan adlarını ayırıyorsanız, SQL tablolarına yazdığınız kullanıcı adlarına alan adlarını EKLEMEYİN. Bu ayırma işlemi veritabanı kontrol edilmeden önce yapılmalıdır. Bu yüzden name@domain kullanıcı adı, eğer ayırma işlemini yapıyorsanız ASLA veritabanındaki 'name' kullanıcısıyla eşleşmeyecektir. Bir kere bu olmadan çalıştırdıktan sonra eğer daha karmaşık alan kontrolleri isterseniz geriye dönüp alan adlarını ayırmamak (veritabanında kullanıcı isimlerini name@domain şeklinde tutmak) üzerine çalışabilirsiniz.