Задача: разрешить пользователям локальной сети иметь доступ к ресурсам глобальной сети (Internet).
ОС: CentOS v5.8
Все действия выполняются от пользователя root. Настроим NAT. eth0 - локальная сеть, eth1 - интернет.:
MASQUERADE - удобно использовать, если у вас динамический IP. Отредактировать в файле /etc/sysctl.conf параметр:
Применить настройки:
Если требуется чтоб пользователи могли из локальной сети подключатся к удаленным VPN PPTP серверам тогда потребуется модуль ip_nat_pptp.. Для этого надо отредактировать файл /etc/sysconfig/iptables-config добавив нужные модули:
И перезапустить iptables:
После этого больше ничего делать не потребуется.
И напоследок минимальный скрипт, который дает доступ только к http/https и разрешает пинговать внешние ресурсы:
Этот скрипт надо запускать каждый раз когда вы вносите в него изменения. После всех изменений сами правила для iptables будут сохранены в /etc/sysconfig/iptables. Именно его система будет загружать при загрузке системы.
ОС: CentOS v5.8
Все действия выполняются от пользователя root. Настроим NAT. eth0 - локальная сеть, eth1 - интернет.:
shell> iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE shell> echo 1 > /proc/sys/net/ipv4/ip_forward shell> /etc/init.d/iptables restart
MASQUERADE - удобно использовать, если у вас динамический IP. Отредактировать в файле /etc/sysctl.conf параметр:
net.ipv4.ip_forward = 1
Применить настройки:
shell> sysctl -p
Если требуется чтоб пользователи могли из локальной сети подключатся к удаленным VPN PPTP серверам тогда потребуется модуль ip_nat_pptp.. Для этого надо отредактировать файл /etc/sysconfig/iptables-config добавив нужные модули:
IPTABLES_MODULES="ip_nat_pptp ip_nat_ftp"
И перезапустить iptables:
/etc/init.d/iptables restart
После этого больше ничего делать не потребуется.
И напоследок минимальный скрипт, который дает доступ только к http/https и разрешает пинговать внешние ресурсы:
!/bin/bash ipt="/sbin/iptables" lan="eth0" # lan wan="eth1" # wan subnet="192.168.40.0/22" # local subnet # flush all $ipt -F $ipt -X $ipt -t nat -F $ipt -t nat -X # policy default $ipt -P INPUT DROP $ipt -P OUTPUT ACCEPT $ipt -P FORWARD DROP # allow lo $ipt -A INPUT -i lo -j ACCEPT # permit established $ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # permit ssh $ipt -A INPUT -p tcp --dport 22 -j ACCEPT # permit ports $ipt -t filter -A FORWARD -s $subnet -p tcp -m multiport --dport http,https -j ACCEPT $ipt -t filter -A FORWARD -s $subnet -p icmp -j ACCEPT # NAT (lan -> wan) $ipt -t nat -A POSTROUTING -o $wan -j MASQUERADE $ipt -t filter -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT # save iptables rules service iptables save
Этот скрипт надо запускать каждый раз когда вы вносите в него изменения. После всех изменений сами правила для iptables будут сохранены в /etc/sysconfig/iptables. Именно его система будет загружать при загрузке системы.
Комментариев нет:
Отправить комментарий