সার্ভার ডিপ্লয়মেন্ট এবং সুরক্ষা নিশ্চিতকরণের প্রোজেক্ট
এখানে একটি প্রকল্পের ধারণা দেওয়া হলো যা সার্ভার ডিপ্লয়মেন্ট এবং সুরক্ষা নিশ্চিতকরণের উপর ভিত্তি করে। এই প্রকল্পে একটি Thrift সার্ভার ডিপ্লয় করা হবে এবং তার নিরাপত্তা ব্যবস্থা প্রতিষ্ঠিত করা হবে।
প্রকল্পের লক্ষ্য
- একটি Thrift সার্ভার তৈরি করা যা বিভিন্ন ক্লায়েন্টের থেকে অনুরোধ গ্রহণ করতে পারে।
- সার্ভারের নিরাপত্তা নিশ্চিত করা, যাতে অবৈধ প্রবেশ এবং আক্রমণ প্রতিরোধ করা যায়।
- সার্ভারের কার্যকারিতা পর্যবেক্ষণ করা এবং লগিং ব্যবস্থা বাস্তবায়ন করা।
ধাপ ১: সার্ভার তৈরি এবং কনফিগারেশন
- Thrift IDL ফাইল তৈরি করুন:
Calculator.thrift
namespace py calculator
service CalculatorService {
i32 add(1: i32 num1, 2: i32 num2),
i32 subtract(1: i32 num1, 2: i32 num2)
}
- Thrift কোড জেনারেট করুন:
thrift --gen py Calculator.thrift
- Python সার্ভার তৈরি করুন:
server.py
from thrift import Thrift
from thrift.transport import TTransport
from thrift.transport import TSocket
from thrift.protocol import TBinaryProtocol
from calculator import CalculatorService
import logging
# Set up logging
logging.basicConfig(level=logging.INFO)
class CalculatorServiceHandler:
def add(self, num1, num2):
return num1 + num2
def subtract(self, num1, num2):
return num1 - num2
def main():
handler = CalculatorServiceHandler()
processor = CalculatorService.Processor(handler)
transport = TSocket.TServerSocket(host='0.0.0.0', port=9090)
tfactory = TTransport.TBufferedTransportFactory()
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
logging.info("Starting the server...")
server.serve()
if __name__ == '__main__':
main()
ধাপ ২: সার্ভার ডিপ্লয়মেন্ট
- সার্ভার পরিবেশ তৈরি:
- Ubuntu বা CentOS সার্ভারে Python এবং Thrift ইনস্টল করুন।
sudo apt update
sudo apt install python3-pip
pip3 install thrift
কোড আপলোড করুন:
- সার্ভার কোড এবং IDL ফাইল সার্ভারে আপলোড করুন।
সার্ভার চালান:
- সার্ভারে
python3 server.pyচালান।
ধাপ ৩: সুরক্ষা নিশ্চিতকরণ
- ফায়ারওয়াল কনফিগারেশন:
- সার্ভার ফায়ারওয়াল সেটআপ করুন যাতে 9090 পোর্টে ট্রাফিক অনুমোদন করা হয়।
sudo ufw allow 9090/tcp
- TLS/SSL এনক্রিপশন:
- সার্ভারের জন্য TLS/SSL সার্টিফিকেট কনফিগার করুন। এটি করতে আপনি
OpenSSLব্যবহার করতে পারেন।
- সার্ভারের জন্য TLS/SSL সার্টিফিকেট কনফিগার করুন। এটি করতে আপনি
# Create a self-signed certificate
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
- Thrift সার্ভারে TLS সক্রিয় করুন:
server.pyফাইলে TLS সক্রিয় করার জন্য পরিবর্তন করুন।
from thrift.transport import TTransport, TSSLSocket
# Create an SSL socket
transport = TSSLSocket.TSSLServerSocket(host='0.0.0.0', port=9090, certfile='cert.pem', keyfile='key.pem')
ধাপ ৪: ক্লায়েন্ট ডেভেলপমেন্ট এবং টেস্টিং
- Python ক্লায়েন্ট তৈরি করুন:
client.py
from thrift import Thrift
from thrift.transport import TTransport
from thrift.transport import TSSLSocket
from thrift.protocol import TBinaryProtocol
from calculator import CalculatorService
def main():
transport = TSSLSocket.TSSLSocket('localhost', 9090)
tfactory = TTransport.TBufferedTransportFactory()
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
transport = tfactory.getTransport(transport)
protocol = pfactory.getProtocol(transport)
client = CalculatorService.Client(protocol)
try:
transport.open()
print("Add:", client.add(10, 5))
print("Subtract:", client.subtract(10, 5))
finally:
transport.close()
if __name__ == '__main__':
main()
- ক্লায়েন্ট চালান:
python3 client.pyচালান এবং সার্ভারের সঙ্গে যোগাযোগ নিশ্চিত করুন।
সারসংক্ষেপ
এই প্রকল্পের মাধ্যমে আপনি একটি Thrift সার্ভার ডিপ্লয় করেছেন এবং তার সুরক্ষা নিশ্চিত করেছেন। TLS/SSL ব্যবহারের মাধ্যমে ডেটা স্থানান্তরের সময় সুরক্ষা নিশ্চিত করা হয়েছে, এবং ফায়ারওয়াল কনফিগারেশন করা হয়েছে। এই প্রকল্পটি বাস্তব জীবনের উদাহরণ হিসেবে কাজ করে এবং Thrift ব্যবহারের জন্য একটি কার্যকরী প্ল্যাটফর্ম প্রদান করে।
Content added By
Read more