Site İçeriği Ders Notları ve Dökümanlar İşletim SistemleriArama İçin Kelimeler : Ders Notları ve Dökümanlar, İşletim Sistemleri, En Çalışkan Kısayollar |
| Windows XP Service Pack 2 (SP2) SQL Server ile kullanılacak şekilde Scriptler ile nasıl yapılandırıl |
|
Microsoft Windows XP Service Pack 2, Windows Firewall’ı içermektedir. Windows Firewall, ICF’nin (Internet Connection Firewall) güçlendilmiş bir sürümüdür. Windows XP Service Pack 2 yüklü bir bilgisayar üzerinde Windows Firewall standart olarak aktif gelmektedir. Windows Firewall açık olarak tutulduğu taktirde bazı network bağlantılarını bloklayacaktır, bu network bağlantıları TCP/IP, Named Pipes, Multiprotocol Remote Procedure Call (RPC) olarak sıralanabilir. Bu bloklama ile birlikte eğer bu işletim sistemi üzerinde yüklü olan bir SQL var ise bu durumdan olumsuz olarak etkilenecektir.
Microsoft Data Engine (MSDE), Microsoft SQL Server 2000 ve Microsoft SQL Server 2005 Windows Firewall dan olumsuz olarak etkilenecek olan SQL sürümleridir. Bu makalemizde Microsoft Windows XP SP2 işletim sistemine sahip ve Windows Firewall’ı aktif olan bir sistemin üzerinde SQL Server çalıştırılabilmesi için ne gibi düzenlemelerin yapılması gerektiğinden bahsedeceğiz.
Eğer elinizde SQL Server veya MSDE ye Named Pipes, TCP/IP veya RPC kullanarak ulaşmaya çalışan bir uygulama varsa ve siz Windows Firewall’un aktif olması nedeniyle bu erişime izin verememiş iseniz, Windows Firewall’ı devre dışı bırakmak yerine makalede anlatılan işlemleri uygulayarak hem güvenliğinizi sağlamaya devam etmiş olur, hem de uygulamanın çalışmasını sağlamış olursunuz.
Makalemizde iki script yer alacaktır; İlk scriptte Windows Firewall, SQL Server’ın network üzerindeki tüm protokolleri dinleyebilmesi için konfigure edilmesidir. İkinci scriptte ise Windows Firewall, SQL Server’ın sadece TCP/IP üzerinden akan paketleri dinleyebilmesi için konfigure edilmesidir.
Güvenlik nedeniyle bizler sadece esas olarak ihtiyaç duyacağımız portların açılmasını tercih etmeliyiz.
| Resim 1 |
| Resim 2 |
1. Script; - Bu script, yanlızca Microsoft Windows Service Pack 2 yüklü bir sistem üzerinde çalıştırılmalıdır !
Script’i oluşturmak için şu adımları izleyin: 1- Başlat-Çalıştır-Notepad 2- Aşağıdaki kodu mavi olarak işaretleyin, üzerine sağ tıklayın ve Kopyala seçeneğini seçin, Notepad içerisine yapıştırın.
echo off
if "%1"=="-np" goto HandleNp if "%1"=="-rpc" goto HandleRpc if "%1"=="-tcp" goto HandleTcp if "%1"=="-browser" goto HandleBrowser
rem Usage :Usage
echo "Usage: setupSqlServerPortAll -[np | rpc | tcp | browser] -port [portnum] -[enable | disable] echo "-np : Setup SQLServer to listen on Named Pipe connections for local subnet only" echo "-rpc : Setup SQLServer to listen on RPC multiprotocol for local subnet only" echo "-tcp : Setup SQLServer to listen on TCP connections for local subnet only" echo " Must specify a port if -tcp option is chosen." echo "-browser : Setup SQLServer to provide SSRP service to support named instances" echo "-port : Applies only for tcp" echo " One of the following options MUST be specified" echo "-enable: Enables a port" echo "-disable: Disables a port"
goto Exit
:HandleTcp echo %2 if "%2"=="-port" goto cont goto Usage :cont if "%3"=="" goto Usage if "%4"=="-enable" goto EnableTcp if "%4"=="-disable" goto DisableTcp goto Usage
:EnableTcp echo "Enabling SQLServer tcp access for port %3 local subnet only" netsh firewall set portopening tcp %3 SQL%3 ENABLE subnet goto Exit
:DisableTcp echo Disabling SQLServer tcp access for port %3 local subnet only" netsh firewall set portopening tcp %3 SQL%3 disable subnet goto Exit
:HandleNp if "%2"=="-enable" goto EnableNp if "%2"=="-disable" goto DisableNp goto Usage
:EnableNp echo "Enabling SQLServer named pipe access for local subnet only" netsh firewall set portopening tcp 445 SQLNP ENABLE subnet goto Exit
:DisableNp echo Disabling SQLServer named pipe access for local subnet only" netsh firewall set portopening tcp 445 SQLNP DISABLE subnet goto Exit
:HandleRpc if "%2"=="-enable" goto EnableRpc if "%2"=="-disable" goto DisableRpc goto Usage
:EnableRpc echo "Enabling SQLServer multiprotocol access for local subnet only" netsh firewall set portopening tcp 445 SQLNP enable subnet goto Exit
:DisableRpc echo Disabling SQLServer multiprotocol access for local subnet only" netsh firewall set portopening tcp 445 SQLNP disable subnet goto Exit
:HandleBrowser if "%2"=="-enable" goto EnableBrowser if "%2"=="-disable" goto DisableBrowser goto Usage
:EnableBrowser echo "Enabling SQLServer SSRP service for local subnet only" netsh firewall set portopening udp 1434 SQLBrowser enable subnet goto Exit
:DisableBrowser echo "Enabling SQLServer SSRP service for local subnet only" netsh firewall set portopening udp 1434 SQLBrowser disable subnet goto Exit
:Exit endlocal
3- Bu notepad dosyasını C:\ dizinine ConfigSQLPorts.txt ismi ile kaydedin, daha sonra dosya adını ConfigSQLPorts.bat olarak düzenleyin.
2.Script; - Bu script, yanlızca Microsoft Windows Service Pack 2 yüklü bir sistem üzerinde çalıştırılmalıdır ! - Bu script SQL Server’ın sadece TCP/IP üzerinden akan paketleri dinleyebilmesini sağlar.
Script’i oluşturmak için şu adımları izleyin: 1- Başlat-Çalıştır-Notepad 2- Aşağıdaki kodu mavi olarak işaretleyin, üzerine sağ tıklayın ve Kopyala seçeneğini seçin, Notepad içerisine yapıştırın.
echo off setlocal
if "%1"=="-port" goto HandleTcp
rem Usage :Usage
echo "Usage: setupSqlServerPort -port [portnum] -[enable | disable] [ALL | SUBNET]" echo -port : Specifies the port to be enabled or disabled. Port is not optional. echo -enable: Enables a port echo -enable ALL: enables access for ALL echo -enable SUBNET: enables access for SUBNET echo -disable: Disables a port echo one of -enable or -disable must be specified echo the default scope is SUBNET only
goto Exit
:HandleTcp if "%2"=="" goto Usage if "%3"=="-enable" goto EnableTcp if "%3"=="-disable" goto DisableTcp goto Usage
:EnableTcp set SCOPE="%4" if "%4"=="ALL" echo "Enabling SQLServer tcp access for port %2 ALL access" if "%4"=="SUBNET" echo "Enabling SQLServer tcp access for port %2 subnet only access" if "%4"=="" set SCOPE="SUBNET"
netsh firewall set portopening tcp %2 SQL_PORT_%2 ENABLE %SCOPE% goto Exit
:DisableTcp echo Disabling SQLServer tcp access for port %2" netsh firewall set portopening tcp %2 SQL_PORT_%2 disable goto Exit
:Exit Endlocal
Bu notepad dosyasını C:\ dizinine setupSqlServerPort.txt ismi ile kaydedin, daha sonra dosya adını setupSqlServerPort.bat. olarak düzenleyin.
Elimizdeki .bat file dosyalara kısaca bir bakalım;
| Resim 3 |
Başlat-Çalıştır-Cmd komutu ile Resim-1 deki gibi komut satırına düşülür.
| Resim 4 |
Cd\ komutu ile root a inilir. Dir *.bat komutu ile C:\ dizinindeki .bat file ların listelenmesi sağlanır. SetupSqlServerPort.bat komutu girilir ve aşağıdaki çıktı elde edilir.
| Resim 5 |
Bu çıktıda bizlere komut dizimi hakkında gerekli bilgilendirme yapılır, dilerseniz bir iki komut girelim;
| Resim 6 |
Setupsqlserver –port [portnumber] –[enable or disable] komutundan örnek olması maksadıyla istifade ettik. Bu komut dizimi ile Firewall üzerinden belirlediğiniz port numarasını SQL için enable veya disable duruma getirebilirsiniz.
| Resim 7 |
Setupsqlserverport – port [portnumber] –[enable or disable] subnet [networkid] komut dizimi ile verdiğiniz port numarası üzerinden sadece belirlenen subnet’in izinli olmasını sağlayabilirsiniz.
Örnekleri bu şekilde çoğaltmak mümkündür. Aslına bakacak olursanız pratikte hiçbir sistem yöneticisi bu tip bir uygulamaya gitmeyecektir. Ama çok spesifik durumlarda bu scriptlerin yerini başka birşeyin tutması da mümkün değildir. Örnek vermek gerekirse;
Geçmişte yer aldığım bir projede SQL ile entegre çalışan bir mobile uygulama yazılımı geliştirilmişti ve bu uygulama yazılımı kurulduğu sistemler üzerinde Windows Firewall dan kaynaklanan engellere maruz kalıyordu, ben bir Sistem Uzmanı olarak programın kurulduğu noktalara giderek Firewall üzerinden sorunları manuel bir şekilde çözmek için efor ve zaman harcıyordum. Sonunda bu scriptleri keşfettim ve yazılımcı arkadaşımıza bu scriptleri yazılımın içine entegre eedbilmesi halinde Windows Firewalları da bu şekilde hizaya getirebileceğini anlattım. Başarılı bir çalışma sonucunda artık yazılım kurulan noktalarda windows firewall açıkta olsa bir sorun teşkil etmiyordu, hem yazılımcı arkadaşlar hem de biz destek elemanları rahatımıza bu şekilde kavuşmuştuk Umarım yararlı bir örnek ve makale olmuştır.
| Resim 8 | Kaynak: Microsoft TechNet Yazılarla İlişiki Seçenekleri |
| < Önceki | Sonraki > |
|---|

slm bnim sorun da aynı görev yönetici...
hiç bir çözüm işe yaramadı kayıt deft...
ya ben üniversiteyi düşünüyorum o yüz...
ewet