نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
هدف از این آموزش خلاص شدن از شر SSH عمومی و اتصالات RDP عمومی است. با قرار دادن این همه پشت یک سرویس دهنده HTML5 بسیار مناسب ، می توانیم لایه ای از امنیت را برای دسترسی به ابر خود اضافه کنیم.
Guacamole همچنین دسترسی از راه دور را ثبت می کند ، بنابراین دسترسی غیرمجاز بسیار قابل ردیابی می شود.
توجه: برای اجازه رمزگذاری (گزینه B) به یک نام دامنه نیاز داریم. اگر یکی ندارید ، می توانید از این مرحله بگذرید و فقط گزینه A را اجرا کنید .
با چرخاندن VPS در منطقه Vultr مورد نظر خود شروع به کار کنید. یک 1024 MB
VPS کافی خواهد بود ، زیرا Guacamole آنقدر خواستار نیست.
با فعال کردن شبکه خصوصی در VPS شروع کنید. اینجا کاملاً مستند است
ابتدا بگذارید کمی تصویر را سخت کنیم. و بگذارید بررسی کنیم که تصویری که ارائه شده است ufw
را فعال کرده است یا خیر .
root@vultr:~# ufw status
Status: inactive
به طور پیش فرض غیرفعال است ، بنابراین باید چند قانون اضافه کنیم.
بیایید با پیکربندی این درگاه ها شروع کنیم.
ufw allow 22/tcp
ufw allow 8080/tcp
بعدی فایروال را فعال کنید.
ufw enable
اگر اخطار دریافت می کنید نگران نباشید. اگر پورت را اضافه کنید 22
، با هیچ مشکلی روبرو نخواهید شد.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
پس از فعال کردن ، وضعیت فایروال را بخواهید و پیکربندی پورت ما را خواهیم دید.
ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
8080/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
قبل از شروع نصب باید دوباره را به روزرسانی و به روز کنیم. با بسته هایی مانند Tomcat
Java که مستقر در جاوا هستند ، یک جریان ثابت از اشکالات کشف شده و رفع اشکالات مرتبط با آنها وجود دارد. معمولاً این کار خوب است که ابتدا این کار را انجام دهید به جای عجله مستقیم در نصب ما.
apt-get update
apt-get -y upgrade
بعد همه وابستگی هاست. Guacamole تعداد کمی از آنها را دارد. (یک لیست کامل از وابستگی ها و عملکرد آنها را می توان در اینجا یافت ). بیایید با نصب همه آنها ادامه دهیم.
apt-get -y install build-essential tomcat8 freerdp libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities libswscale-dev libvncserver-dev libpulse-dev libssl-dev
وقتی نصب کننده از رمز عبور MySQL درخواست می کند ، یکی از آنها را تهیه کنید و حتماً به آن توجه داشته باشید. بعدا برای ایجاد بانک اطلاعاتی Guacamole از این رمز عبور استفاده خواهیم کرد.
اکنون که همه وابستگی هایمان را داریم ، می توانیم با بارگیری Guacamole بارگیری کنیم. خود Guacamole بیشتر به صورت منبع است و نه باینری. ابتدا /tmp
برای جلوگیری از به هم ریختگی سایر قسمتهای دیسک به پوشه حرکت می کنیم . سپس تمام کد منبع را بارگیری کنید.
چهار فایل منبع / باینری برای بارگیری وجود دارد:
guacamole-0.9.13-incubating.war
: این برنامه وب است. WAR
فایل یک بسته وب زیپ ارائه یک وب سایت واحد میزبانی بر روی وب سایت تامکت استguacamole-server-0.9.13-incubating.tar.gz
: این پرونده guacd
برنامه باطن را ارائه می دهد . این جریانها را از طریق RDP و SSH ایجاد می کند.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: ما از یک پایگاه داده محلی MySQL استفاده خواهیم کرد ، بنابراین به JDBC
کانکتور همراه نیاز داریم .mysql-connector-java-5.1.43.tar.gz
: بدون درایور پایگاه داده ، اتصال JDBC کاری نمی کند. این پرونده توسط خود تیم MySQL تهیه شده است.توجه: بارگیری ها به نزدیکترین سرور حل شده است .
cd /tmp
wget http://apache.belnet.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.43.tar.gz
هنگامی که همه این پرونده ها را بارگیری کردیم ، استخراج tar.gz
کنید.
tar -xzvf guacamole-server-0.9.13-incubating.tar.gz
tar -xzvf guacamole-auth-jdbc-0.9.13-incubating.tar.gz
tar -xzvf mysql-connector-java-5.1.43.tar.gz
حالا که همه کد منبع را استخراج کردیم ، بیایید چند guacamole
پوشه درست کنیم ، اینها توسط برنامه guacamole و وابستگی های آن استفاده می شوند.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
همه چیز برای باینری های Guacamole جدید ما آماده است. اکنون می توانیم مراحل کامپایل و نصب را شروع کنیم. به پوشه Guacamole Server استخراج شده بروید.
cd /tmp/guacamole-server-0.9.13-incubating
برنامه را پیکربندی کنید تا init.d
بعداً یک پرونده برای اجرای آن بعنوان سرویس بعداً ایجاد شود.
./configure --with-init-dir=/etc/init.d
این دستور باید با "بله" در تمام کتابخانه ها و پروتکل ها پایان یابد. اگر اینگونه نیست ، برگردید و دستور apt-get را بررسی کنید تا مطمئن شوید که هیچ بسته ای را از دست نداده اید.
------------------------------------------------
guacamole-server version 0.9.13-incubating
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebp ............. yes
Protocol support:
RDP ....... yes
SSH ....... yes
Telnet .... yes
VNC ....... yes
Services / tools:
guacd ...... yes
guacenc .... yes
Init scripts: /etc/init.d
Type "make" to compile guacamole-server.
سپس سرور Gucamole را کامپایل و نصب کنید.
make && make install
پس از اتمام این کار ، ldconfig
مجدداً مسیر جستجوی کتابخانه های اضافه شده را بازسازی کنید.
ldconfig
با استفاده از systemctl
تنظیمات guacd
(Guacamole Daemon) شروع به کار کنید.
systemctl enable guacd
اکنون باینری های Guacamole نصب شده اند. اکنون برنامه وب را برای Tomcat آماده خواهیم کرد.
با انتقال war
پرونده به guacamole
پوشه ای که تازه ایجاد کردیم شروع کنید ، پس از انجام این کار یک لینک منطقی در فهرست tomcat ایجاد کنید تا به war
پرونده ما اشاره کنید.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
سپس به کانکتور mysql و JDBC احتیاج داریم. درایور JDBC در extensions
پوشه ، اتصال دهنده در lib
پوشه مورد نیاز است .
cp mysql-connector-java-5.1.43/mysql-connector-java-5.1.43-bin.jar /etc/guacamole/lib/
cp guacamole-auth-jdbc-0.9.13-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.13-incubating.jar /etc/guacamole/extensions/
پس از اتصال و JDBC ، باید tocamt8
فایل را ویرایش کنیم . این پرونده حاوی tomcat8
تنظیمات زیادی است و در مورد ما باید GUACAMOLE_HOME
متغیر را در انتهای پرونده اضافه کنیم.
nano /etc/default/tomcat8
همراه با موارد زیر
GUACAMOLE_HOME=/etc/guacamole
مورد بعدی ایجاد بانک اطلاعاتی است. Guacamole پیکربندی اتصال خود را در یک پایگاه داده ذخیره می کند ، نه درون یک پرونده.
با root password
استفاده از آن هنگام نصب وارد شوید.
mysql -u root -p
اولین قدم ایجاد بانک اطلاعاتی به نام 'guacamole_db' است.
create database guacamole_db;
سپس create user
دستور را اجرا کنید . با این کار یک کاربر با رمز عبور ایجاد می کند mysupersecretpassword
، این کاربر فقط قادر به اتصال از آن localhost
خواهد بود.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
اعطای CRUD
عملیات به این کاربر برای بانک اطلاعات guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
امتیازات را بشویید و از پوسته خارج شوید.
flush privileges;
exit
با افزودن طرحواره Guacamole به دیتابیس تازه ایجاد شده ما تمام شوید.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
پس از اتمام این کار ، باید guacamole.properties
فایل را ویرایش کنیم . این پرونده شامل پیکربندی سرور MySQL ما است که اخیراً ایجاد شده است.
nano /etc/guacamole/guacamole.properties
جزئیات اتصال و اعتبارنامه را اضافه کنید.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
با ایجاد پیوند نمادین به پوشه اشتراک Tomcat ، کار خود را تمام کنید ، زیرا در اینجاست که WAR
فایل در جستجوی این خصوصیات است.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
با راه اندازی مجدد tomcat8
سرور پایان دهید و guacd
daemon سرور را شروع کنید.
service tomcat8 restart
service guacd start
می توانید با استفاده از دستور وضعیت تأیید کنید.
service tomcat8 status
service guacd status
اکنون می توانید VPS خود را در پورت مرور کنید 8080
http://<yourpublicip>:8080/guacamole/
از نام کاربری guacadmin
و همان رمز عبور استفاده کنید guacadmin
. این امکان دسترسی به یک سرور خالی Guacamole را به شما می دهد.
در گوشه بالا سمت راست در نام کاربری خود guacadmin
کلیک کنید و را انتخاب کنید Settings
. هنگامی که در صفحه تنظیمات هستید به Users
تب بروید و کاربر را انتخاب کنید guacadmin
.
اکنون رمزعبور خود را به چیز دیگری تغییر دهید یا یک کاربر سرپرست جدید ایجاد کنید و پیش فرض را حذف کنید guacadmin
.
این مراحل آخر است: تمیز کردن بعد از اتمام کار.
کد منبع بارگیری شده و باینری ها را از /tmp
پوشه حذف کنید.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
همچنین برنامه وب Guacamole را به صورت پیش فرض قرار دهید. در اکوسیستم tomcat برنامه ای که ROOT
پوشه را دریافت می کند برنامه ای است که با دسترسی به وب سایت به طور پیش فرض شروع می شود.
ROOT
مکان نگهدار قدیمی را حذف کنید .
rm -rf /var/lib/tomcat8/webapps/ROOT
و یک پیوند نمادین ایجاد کنید تا سرور guacamole ROOT
یکی باشد.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
این کار به راه اندازی مجدد Tomcat نیاز دارد.
service tomcat8 restart
tomcat8/server.xml
پرونده را ویرایش کرده و درگاه اتصال را تغییر دهید.
nano /etc/tomcat8/server.xml
جستجو Connector port
کنید
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
و جایگزین 8080
با 80
.
به طور پیش فرض ، tomcat اجازه اتصال بندرهای زیر را نمی دهد 1024
. برای فعال کردن این امر ، لازم است که tomcat8 را برای ایجاد صحافی معتبر بگوییم.
default
پرونده tomcat8 را ویرایش کنید و AUTHBIND
خط را uncomment کنید و از گزینه استفاده کنیدyes
nano /etc/default/tomcat8
AUTHBIND=yes
هنگامی که این کار انجام شد ، intall authbind
.
apt-get install authbind
آن را پیکربندی کنید تا درگاه 80
tomcat8 ادعا شود.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
درگاه را 80
از طریق فایروال مجاز کنید و قانون را برای آن حذف کنید 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
شروع مجدد tomcat.
service tomcat8 restart
این است ، اکنون Guacamole باید در حال اجرا در بندر 80
باشد.
Tomcat در واقع یکی از بهترین و قوی ترین برنامه هایی نیست که می توانید از آن استفاده کنید certbot
. خوشبختانه نگینکس است. ما فقط به توپی tomcat به Nginx خواهیم رسید. با استفاده از قابلیت خارج از جعبه Certbot با هزینه قربانی کردن یک بیت رم.
apt-get install nginx
پس از نصب ، پیکربندی پیش فرض را ویرایش کنید.
nano /etc/nginx/sites-available/default
همه پیکربندی های مثال را حذف کنید و پیکربندی زیر را اضافه کنید.
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
با این کار پروکسی برای وب سایت در حال اجرا ایجاد می شود 8080
. Nginx را مجدداً راه اندازی کنید و آن را در حالت بوت فعال کنید.
systemctl restart nginx
systemctl enable nginx
بررسی کنید که آیا همه چیز کار می کند یا خیر.
systemctl status nginx
پورت آزمایش را غیرفعال کنید 8080
و اجازه دهید ترافیک در پورت انجام شود 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
قبل از استفاده certbot
، باید صحیح را ppa
به سیستم حاوی بسته های certbot اضافه کنیم.
add-apt-repository ppa:certbot/certbot
"" را فشار دهید ENTER
تا تغییر پیکربندی را بپذیرید.
به روز رسانی apt
برای جمع آوری بسته های جدید.
apt-get update
در آخر ، ماژول Nginx را برای اختصاص گواهینامه ها نصب کنید.
apt-get -y install python-certbot-nginx
دیوار آتش را مجاز کنید HTTPS
.
ufw allow 443/tcp
قبل از درخواست مجوزهای جدید ، به نام DNS احتیاج داریم.
nano /etc/nginx/sites-available/default
server_name
تنظیم زیر را اضافه کنید .
server_name rdp.example.com;
پیکربندی را تغییر دهید تا این تنظیم جدید منعکس شود.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
بررسی کنید که آیا همه کار می کنند یا Nginx را دوباره راه اندازی کنید.
nginx -t
service nginx restart
اکنون یک گواهی را با certbot درخواست کنید.
certbot --nginx -d rdp.example.com
ایمیل خود را تهیه کنید و با سؤالاتی که از طرف نصب کننده مطرح می شود موافقت کنید. (با اطمینان می توانید " No
" را برای به اشتراک گذاشتن ایمیل خود انتخاب کنید.) Certbot به طور خودکار از آنچه که باید با آن بپرسد بپرسید HTTPS
. ما از گزینه 2 استفاده خواهیم کرد redirect to HTTPS
.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
آخرین کاری که انجام خواهیم داد ، بروزرسانی DH
پارامترها است. اینها به طور پیش فرض برای استانداردهای 2017 کمی ضعیف هستند.
موارد جدیدی ایجاد کنید.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
در مرحله بعد ، آنها را به سایت پیش فرض در Nginx اضافه کنید.
nano /etc/nginx/sites-available/default
آنها را به پیکربندی سرور اضافه کنید.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
خطاها را بررسی کنید.
nginx -t
با راه اندازی مجدد سرور ، تغییرات را اعمال کنید.
service nginx restart
8080
قانون قدیمی را پاک کنید
ufw delete allow 8080/tcp
توجه: اگر می خواهید "502 بد دروازه" را بدست آورید ، به Tomcat8 مجدداً راه اندازی خواهید شد .
service tomcat8 restart
بیایید مجوزهای رمزگذاری شده نیاز به تمدید داشته باشند. ما می توانیم برای این کار شغلی ایجاد کنیم. شروع با ویرایش crontab
.
crontab -e
خط زیر را اضافه کنید.
00 2 * * * /usr/bin/certbot renew --quiet
در صورت وجود هرگونه گواهینامه نیاز به تمدید در ساعت 2:00 صبح بررسی می شود و در صورت انجام آنها آنها را تمدید می کند.
به سرور Guacamole ( http://<ip>/
یا یکی https://rdp.example.com)
) بروید.
برای این آزمایش به دو مورد دیگر نیاز دارید: یکی Linux VM و دیگری Windows Server 2012 R2 با یک IP خصوصی که در هر دو فعال است.
" username
" را در گوشه بالا سمت راست کلیک کرده و به " Settings
" بروید ". سپس به " Connections
" بروید و " " را انتخاب کنید New Connection
.
تنظیمات زیر را پر کنید (می توانید دیگران را به طور پیش فرض بگذارید).
Name: Windows Server 2012 R2
Location: ROOT
Protocol: RDP
Maximum number of connections: 1
Maximum number of connections per user: 1
Parameters > Hostname: 10.99.0.12
Parameters > Port: 3389
Username: Administrator
Password: <password> (provided by Vultr)
Security mode: Any
Ignore server certificate: <checked>
"" را فشار داده save
و به صفحه اصلی برگردید. اکنون می توانید روی Windows Server 2012 R2
اتصال " " کلیک کنید و RDP به این دستگاه تبدیل می شود.
"" را فشار دهید Ctrl+Shift+Alt
. با این کار منو در طرف آن ظاهر می شود. در اینجا می توانید سایر کارهای اداری را برای Guacamole قطع یا انجام دهید.
با کلیک بر روی username
در بالای در منو و رفتن به " Settings
". سپس به Connections
برگه "" بروید و "" را انتخاب کنید New Connection
.
تنظیمات زیر را پر کنید (می توانید دیگران را به طور پیش فرض بگذارید).
Name: Linux
Location: ROOT
Protocol: SSH
Maximum number of connections: 5
Maximum number of connections per user: 2
Parameters > Hostname: 10.99.0.11
Parameters > Port: 22
Username: root
Password: <password> (provided by Vultr)
"" را فشار داده save
و به صفحه اصلی برگردید. اکنون می توانید روی این اتصال تازه ایجاد شده کلیک کرده و از طریق SSH به سرور لینوکس خود متصل شوید.
اکنون یک دروازه وب RDP / SSH HTML5 دارید. اکنون می توانید دسترسی عمومی RDP و SSH به سیستم عامل خود را فایر کنید و از هر مرورگر مدرن به محیط خود دسترسی پیدا کنید. برای اطلاعات بیشتر در مورد آنچه Guacamole می تواند ارائه دهد ، یک فیلم عالی وجود دارد که تمام امکانات این سیستم عامل را در اینجا نشان می دهد .
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o
TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من
Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th
با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB
ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.
رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد