انجمنهای فارسی اوبونتو
کمک و پشتیبانی => شبکه و سرویس دهندهها => نویسنده: Bijan در 28 شهریور 1391، 01:50 قظ
-
با سلام
برای اینکه چک کنم کدوم پورتها در سیستم باز هستش با nmap چک کردم. فایروال فعال و تمام ورودی ها در حالت پیش فرض بسته اند. اما زمانی که با nmap چک میکنم میگه دو پورت 80 و 23 باز هستش این در حالتی هستش که آی پی رو که آی اس پی بهم اختصاص داده چک میکنم. به طور دستی هم اینها رو بستم اما میگه باز هستش اما زمانی که با دستور nmap localhost چک میکنم میگه پورتهای 25، 53، 139، 445، 631، 1080، 8080، 9050، 8089 بازه البته پورتهای 8080 و 9050 میدونم به خاطر چی بازن! میخوام بدونم تفاوت در چیه؟ پورتهای باز در حالت دوم رو هم دستی بستم ولی بازم میگه بازه! اینم میدونم که برنامه که از پورتی که استفاده میکنه ببندیمش پورت هم بسته میشه!
-
تفاوت دو حالت رو نمیدونم ولی اگر فایروال در حالت "تمامه ورودی ها بسته باشه" بوده و توش رول برایه باز کردن اون پرت ها وارد نکردین , یک جایه کار مشکل داره .
با netstat چک کنین ببینین بازم باز نشون میده .
این رو هم بزنین که شاید رول یا چیزی از قبل تو iptables بوده بتونین ببینین :
sudo iptables -L
-
این خروجیش بود:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- localhost anywhere tcpflags:! FIN,SYN,RST,ACK/SYN
ACCEPT udp -- localhost anywhere
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere limit: avg 10/sec burst 5
DROP all -- anywhere 255.255.255.255
DROP all -- anywhere 192.168.1.255
DROP all -- base-address.mcast.net/8 anywhere
DROP all -- anywhere base-address.mcast.net/8
DROP all -- 255.255.255.255 anywhere
DROP all -- anywhere 0.0.0.0
DROP all -- anywhere anywhere state INVALID
LSI all -f anywhere anywhere limit: avg 10/min burst 5
INBOUND all -- anywhere anywhere
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix "Unknown Input"
ufw-before-logging-input all -- anywhere anywhere
ufw-before-input all -- anywhere anywhere
ufw-after-input all -- anywhere anywhere
ufw-after-logging-input all -- anywhere anywhere
ufw-reject-input all -- anywhere anywhere
ufw-track-input all -- anywhere anywhere
DROP all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
DROP all -- anywhere anywhere
DROP tcp -- anywhere anywhere tcp dpt:netbios-ssn
DROP all -- anywhere anywhere
DROP icmp -- anywhere anywhere
DROP all -- anywhere anywhere
DROP tcp -- anywhere anywhere
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
DROP icmp -- anywhere anywhere icmp echo-request
DROP icmp -- anywhere anywhere icmp echo-request
DROP udp -- 192.168.1.0/24 anywhere udp dpt:ipp
DROP tcp -- 192.168.1.0/24 anywhere tcp dpt:ipp
DROP tcp -- 192.168.1.0/24 anywhere tcp dpt:netbios-ssn
DROP udp -- 192.168.1.0/24 anywhere udp dpt:netbios-ssn
DROP udp -- 192.168.1.0/24 anywhere udp dpt:microsoft-ds
DROP tcp -- 192.168.1.0/24 anywhere tcp dpt:microsoft-ds
DROP tcp -- 192.168.1.0/24 anywhere tcp dpt:smtp
DROP udp -- 192.168.1.0/24 anywhere udp dpt:25
DROP udp -- 192.168.1.0/24 anywhere udp dpt:microsoft-ds
DROP tcp -- 192.168.1.0/24 anywhere tcp dpt:microsoft-ds
DROP tcp -- 192.168.1.0/24 anywhere tcp dpt:netbios-ssn
DROP tcp -- txr-System-Product-Name.Home anywhere tcp dpt:netbios-ssn
DROP all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere limit: avg 10/sec burst 5
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix "Unknown Forward"
ufw-before-logging-forward all -- anywhere anywhere
ufw-before-forward all -- anywhere anywhere
ufw-after-forward all -- anywhere anywhere
ufw-after-logging-forward all -- anywhere anywhere
ufw-reject-forward all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- txr-System-Product-Name.Home localhost tcp dpt:domain
ACCEPT udp -- txr-System-Product-Name.Home localhost udp dpt:domain
ACCEPT all -- anywhere anywhere
DROP all -- base-address.mcast.net/8 anywhere
DROP all -- anywhere base-address.mcast.net/8
DROP all -- 255.255.255.255 anywhere
DROP all -- anywhere 0.0.0.0
DROP all -- anywhere anywhere state INVALID
OUTBOUND all -- anywhere anywhere
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level info prefix "Unknown Output"
ufw-before-logging-output all -- anywhere anywhere
ufw-before-output all -- anywhere anywhere
ufw-after-output all -- anywhere anywhere
ufw-after-logging-output all -- anywhere anywhere
ufw-reject-output all -- anywhere anywhere
ufw-track-output all -- anywhere anywhere
Chain INBOUND (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state RELATED,ESTABLISHED
LSI all -- anywhere anywhere
Chain LOG_FILTER (5 references)
target prot opt source destination
Chain LSI (2 references)
target prot opt source destination
LOG_FILTER all -- anywhere anywhere
LOG tcp -- anywhere anywhere tcpflags: FIN,SYN,RST,ACK/SYN limit: avg 1/sec burst 5 LOG level info prefix "Inbound "
DROP tcp -- anywhere anywhere tcpflags: FIN,SYN,RST,ACK/SYN
LOG tcp -- anywhere anywhere tcpflags: FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5 LOG level info prefix "Inbound "
DROP tcp -- anywhere anywhere tcpflags: FIN,SYN,RST,ACK/RST
LOG icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 5 LOG level info prefix "Inbound "
DROP icmp -- anywhere anywhere icmp echo-request
LOG all -- anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix "Inbound "
DROP all -- anywhere anywhere
Chain LSO (0 references)
target prot opt source destination
LOG_FILTER all -- anywhere anywhere
LOG all -- anywhere anywhere limit: avg 5/sec burst 5 LOG level info prefix "Outbound "
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain OUTBOUND (1 references)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
Chain ufw-after-forward (1 references)
target prot opt source destination
Chain ufw-after-input (1 references)
target prot opt source destination
ufw-skip-to-policy-input udp -- anywhere anywhere udp dpt:netbios-ns
ufw-skip-to-policy-input udp -- anywhere anywhere udp dpt:netbios-dgm
ufw-skip-to-policy-input tcp -- anywhere anywhere tcp dpt:netbios-ssn
ufw-skip-to-policy-input tcp -- anywhere anywhere tcp dpt:microsoft-ds
ufw-skip-to-policy-input udp -- anywhere anywhere udp dpt:bootps
ufw-skip-to-policy-input udp -- anywhere anywhere udp dpt:bootpc
ufw-skip-to-policy-input all -- anywhere anywhere ADDRTYPE match dst-type BROADCAST
Chain ufw-after-logging-forward (1 references)
target prot opt source destination
LOG all -- anywhere anywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "
Chain ufw-after-logging-input (1 references)
target prot opt source destination
LOG all -- anywhere anywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "
Chain ufw-after-logging-output (1 references)
target prot opt source destination
Chain ufw-after-output (1 references)
target prot opt source destination
Chain ufw-before-forward (1 references)
target prot opt source destination
ufw-user-forward all -- anywhere anywhere
Chain ufw-before-input (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ufw-logging-deny all -- anywhere anywhere state INVALID
DROP all -- anywhere anywhere state INVALID
ACCEPT icmp -- anywhere anywhere icmp destination-unreachable
DROP icmp -- anywhere anywhere icmp source-quench
DROP icmp -- anywhere anywhere icmp time-exceeded
DROP icmp -- anywhere anywhere icmp parameter-problem
DROP icmp -- anywhere anywhere icmp echo-request
ACCEPT udp -- anywhere anywhere udp spt:bootps dpt:bootpc
ufw-not-local all -- anywhere anywhere
ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns
ACCEPT udp -- anywhere 239.255.255.250 udp dpt:1900
ufw-user-input all -- anywhere anywhere
Chain ufw-before-logging-forward (1 references)
target prot opt source destination
Chain ufw-before-logging-input (1 references)
target prot opt source destination
Chain ufw-before-logging-output (1 references)
target prot opt source destination
Chain ufw-before-output (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ufw-user-output all -- anywhere anywhere
Chain ufw-logging-allow (0 references)
target prot opt source destination
LOG all -- anywhere anywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW ALLOW] "
Chain ufw-logging-deny (2 references)
target prot opt source destination
RETURN all -- anywhere anywhere state INVALID limit: avg 3/min burst 10
LOG all -- anywhere anywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "
Chain ufw-not-local (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere ADDRTYPE match dst-type LOCAL
RETURN all -- anywhere anywhere ADDRTYPE match dst-type MULTICAST
RETURN all -- anywhere anywhere ADDRTYPE match dst-type BROADCAST
ufw-logging-deny all -- anywhere anywhere limit: avg 3/min burst 10
DROP all -- anywhere anywhere
Chain ufw-reject-forward (1 references)
target prot opt source destination
Chain ufw-reject-input (1 references)
target prot opt source destination
Chain ufw-reject-output (1 references)
target prot opt source destination
Chain ufw-skip-to-policy-forward (0 references)
target prot opt source destination
DROP all -- anywhere anywhere
Chain ufw-skip-to-policy-input (7 references)
target prot opt source destination
DROP all -- anywhere anywhere
Chain ufw-skip-to-policy-output (0 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain ufw-track-input (1 references)
target prot opt source destination
Chain ufw-track-output (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state NEW
ACCEPT udp -- anywhere anywhere state NEW
Chain ufw-user-forward (1 references)
target prot opt source destination
Chain ufw-user-input (1 references)
target prot opt source destination
Chain ufw-user-limit (0 references)
target prot opt source destination
LOG all -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning prefix "[UFW LIMIT BLOCK] "
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain ufw-user-limit-accept (0 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain ufw-user-logging-forward (0 references)
target prot opt source destination
Chain ufw-user-logging-input (0 references)
target prot opt source destination
Chain ufw-user-logging-output (0 references)
target prot opt source destination
Chain ufw-user-output (1 references)
target prot opt source destination
به طور پیش فرض تمام ورودی ها رو بستم. با دستور lsof که لیست فایلهای باز هم چک میکنه امتحان کردم که lsof -i :445 هم چک میکنم میگه پورت در حال گوش دادنه:
txr@txr-System-Product-Name:~$ sudo lsof -i :445
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
smbd 965 root 27u IPv6 8621 0t0 TCP *:microsoft-ds (LISTEN)
smbd 965 root 29u IPv4 8626 0t0 TCP *:microsoft-ds (LISTEN)
txr@txr-System-Product-Name:~$ sudo lsof -i :139
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
smbd 965 root 28u IPv6 8624 0t0 TCP *:netbios-ssn (LISTEN)
smbd 965 root 30u IPv4 8628 0t0 TCP *:netbios-ssn (LISTEN)
txr@txr-System-Product-Name:~$ sudo lsof -i :25
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
master 1262 root 12u IPv4 10257 0t0 TCP *:smtp (LISTEN)
master 1262 root 13u IPv6 10258 0t0 TCP *:smtp (LISTEN)
این سه نمونه از پورتهایی که باز هستن
-
من iptables تونو کامل نخوندم ولی تا جایی که نگاه کردم , با این که همرو پیش فرض drop کردین ولی توش رول برایه باز کردن یک سری پرت وارد کردین . برایه همین اون پرت هارو باز نشون میده.
iptables تون نیاز به تمیز کاری داره . بعضی از رول ها تکراری هستن یا بعضیاشون مورد دار هستن مثل این :
ACCEPT all -- anywhere anywhere
-
سرویس ها رو که غیر فعال کردم درست شد با دستورات زیر سرویس smbd و ipp کاملا این سرویسها رو در زمان startup غیر فعال میکنه و به طور اتوماتیک شروع به کار نمیکنن و پورتهای ۱۳۹، ۴۴۵ و ۶۳۱ بسته میشه.
sudo -s
echo "manual" >> /etc/init/myjob.override
به جای myjob سرویس مورد نظر رو تایپ میکنید مثل smbd, cups و ....
http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting (http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting)
فقط سوالی دیگه ای که دارم در بعضی از سایتها نوشته بود دستور زیر رو بزنید سرویس مورد نظرتون باید غیر فعال بشه اما امتحان که کردم فقط برای سرویس smtp جواب داد و این روش در مورد smbd و ipp (cups جواب نداد!
sudo update-rc.d -f postfix remove
مورد دیگه اینکه با اینکه دستی هم این پورتها رو میبستم باز بسته نمیشد! اون چیزی که خودم متوجه شدم اینه که تا زمانی که سرویس مورد نظر فعال باشه پورت رو ببندید جواب نمیده و باید حتما سرویس مورد نظرتون رو غیر فعال کنید چون تا اون جایی که یادمه من رولی به فایروال جهت باز بودن پورتی ندادم!
-
sudo update-rc.d -f postfix remove
این دستور سرویستون رو از تو ران لول ها حذف میکنه . وقتی سیستم میاد بالا وارد یک رانلول مبشه که بسته به تنظیمات اون رانلول یک سری از سرویس ها شروع به کار میکنن . حالا ممکنه اون سرویس مستقیما خودش اجرا نشه تو رانلول از طریق سرویس دیگه ای فراخانی بشه اون موقع با دستور بالا از کار نمیفته.
en.wikipedia.org/wiki/Runlevel
www.debian-administration.org/articles/212
توضیح کامل ترش تو این کتاب هست :
http://ubuntuone.com/4dUevco1gOcGioDjMZDNWF
اگر پرت یک سرویس رو موقع اجرا بودن اون سرویس تو iptables ببندین همون جا پرتش بسته میشه. من برایه ssh تست کردم همین جوری شد. شاید رولتون مشکل داشته.
-
فرقش اینه که یکی درگاههای باز رایانه و اونیکی درگاههای باز مودم رو نشون میده