PDA

View Full Version : جلوگیری از دسترسی کاربران به اینترنت در شبکه تو لینوکس



bahman1366
چهارشنبه 29 آبان 1392, 09:06 صبح
من میخوام تو لینوکس کاربران را کنترل کنم به این شکل که چند تا کامپیوتر دارم که با همدیگه شبکه هستند،من از طریق برنامه اسکویید(به عنوان پرکسی سرور) دسترسی کاربران به اینترنت رو کنترل میکنم مٍثلا به یه کامپیوتر اجازه دسترسی به انترنت رو میدم ولی به بقیه کامپیوتر ها این اجازه رو نمیدم،اما مشکل اینجاست که وقتی کامپیوتری که به اینترنت دسترسی نداره از آی پی کامپیوتری که به اینترنت دسترسی داره به عنوان gateway خودش استفاده کنه میتونه از طریق اون کامپیوتر به اینترنت دسترسی داشته باشه بدون اینکه اسکویید بفهمه،آیا روشی هست که بشه این حالت رو کنترل کرد که نتونه از کامپیوتر دیگه استفاده کنه،اگه کسی تجربه ای در این باره داره لطفا کمک کنه.

ahmad24shargh
چهارشنبه 29 آبان 1392, 15:31 عصر
شاید :


sudo /sbin/iptables -A PREROUTING -s your.internal.network.0/mask -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128


یه جای دیگم اینو دیدم.اگر کاربر اسکویید از طریق uid 13 سرویس بده :


# Shortcuts
filter="iptables -t filter"
nat="iptables -t nat"

# Proxy HTTP access through Squid
$nat -A OUTPUT -m owner --uid-owner 13 -j ACCEPT
$nat -A OUTPUT -p tcp --dport 80 -j REDIRECT -p tcp --to-port 3128

# Reject HTTPS
$filter -A OUTPUT -m owner --uid-owner 13 -j ACCEPT
$filter -A OUTPUT -p tcp --dport 443 -j REJECT

کلا باید rule مورد نیاز رو در iptable تعریف کنید.

bahman1366
پنج شنبه 30 آبان 1392, 11:12 صبح
شاید :


sudo /sbin/iptables -A PREROUTING -s your.internal.network.0/mask -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128


یه جای دیگم اینو دیدم.اگر کاربر اسکویید از طریق uid 13 سرویس بده :


# Shortcuts
filter="iptables -t filter"
nat="iptables -t nat"

# Proxy HTTP access through Squid
$nat -A OUTPUT -m owner --uid-owner 13 -j ACCEPT
$nat -A OUTPUT -p tcp --dport 80 -j REDIRECT -p tcp --to-port 3128

# Reject HTTPS
$filter -A OUTPUT -m owner --uid-owner 13 -j ACCEPT
$filter -A OUTPUT -p tcp --dport 443 -j REJECT

کلا باید rule مورد نیاز رو در iptable تعریف کنید.

میشه ایناییکه نوشتین رو توضیح بدین من ازش سردر نیاوردم،اسکویید چه جوری میفهمه که درخواستی که براش ارسال شده از کدوم کامپیوتره ؟ (از کامپیوتر مجاز اومده یا از کامپیوتری هست که اینترنت نداره )

ahmad24shargh
پنج شنبه 30 آبان 1392, 18:33 عصر
دستورات بالا کل درخواستهای دسترسی به وب رو به پورت 3128 ریدایرکت میکنه که به این ترتیب توسط اسکویید پردازش میشند.برای چیزی که شما میخواید باید از لیست کنترل دسترسی در پیکربندی اسکویید استفاده کنید :
http://www.deckle.co.uk/squid-users-guide/squid-access-control-and-access-control-operators.html

یه مقاله جالب :
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch32_:_Controlling_Web_Access_with_S quid

اگر به طور جدی میخواید از یه سیستم به عنوان router و دیوار آتش استفاده کنید باید از یه دیستروی تخصصی استفاده کنید که pfsense یه نمونه خوبه که به راحتی میتونید از اسکویید به عنوان Transparent Proxy در اون استفاده کنید و تنظیم مجوزهای دسترسی ساده تر انجام میشه.حداقل تو یه ماشین مجازی اونو تست و مطالعه کنید.واسط گرافیکی برای تنظیمات داره.اینم اسکرین شاتهاش :
http://pfsense.org/screenshots/index.html