Обновлено: подвожу итог. Выполнив команду sudo iptables
, мы увидим названия наших сетевых интерфейсов (например wlan0 - локалка, ppp0 - интернет).
- Вы имеете IP-адрес по типу «192.168.x.x».
Беспокоиться не о чем - вы за NAT-ом. Разве что прошивку роутера обновляйте иногда. - Вы имеете «белый IP», а
sudo iptables -L
выдаёт это:Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Чтобы ваш комп не поимели, выполните это:
sudo iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -i ppp0 -j DROP
- То же самое, но необходимо открыть порты для SSH, сервера CS:GO, торрентов, DC++ и клиента Bitcoin.
Показываю только на примере DC++:sudo iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -i ppp0 -p tcp --dport 2000 -j ACCEPT sudo iptables -A INPUT -i ppp0 -p udp --dport 2001 -j ACCEPT sudo iptables -A INPUT -i ppp0 -j DROP
В случае с SSH, почитайте в интернете как сменить порт по умолчанию, использовать файл ключа вместо пароля, запретить удалённый root, а также задействовать knockd.
- Вы имеете «белый IP» и раздаёте интернет по Wi-Fi в режиме точки доступа.
Команды выше необходимо продублировать для цепочки FORWARD. Итоговый вариант:poff dsl-provider ifconfig wlan0 down /etc/init.d/dnsmasq stop iptables -F iptables -t nat -F
ifconfig wlan0 up ifconfig wlan0 192.168.150.1 /etc/init.d/dnsmasq start sysctl net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i ppp0 -p tcp --dport 2000 -j ACCEPT iptables -A INPUT -i ppp0 -p udp --dport 2001 -j ACCEPT iptables -A INPUT -i ppp0 -j DROP iptables -A FORWARD -i ppp0 -j DROP pon dsl-provider hostapd /etc/hostapd.conf
Естественно, sudo перед каждой командой (если не root и не su). Спасибо anc за помощь!
- И ещё одна команда. На роутерах можно настроить NAT и пробросить порты на 192.168.1.2 для всё тех же торрентов и CS:GO. Можно ли пробросить в нашем случае?
iptables -A INPUT -i ppp0 -p tcp --dport 17011 -j ACCEPT
iptables -A PREROUTING -t nat -i ppp0 -p tcp --dport 17011 -j DNAT --to [IP ноутбука]:17011 iptables -A INPUT -p tcp -m state --state NEW --dport 17011 -i ppp0 -j ACCEPT
Как сделать uPNP даже не спрашивайте! За совет спасибо Prius!
==============================================================
Всем привет! Меняю Opensuse на CentOS на домашнем сервачке, неожиданно выяснилось что правила iptables пустые! У меня комп голой задницей смотрит в интернет. :-(
Конфиг: eth0 - нет айпи. dsl0 - PPPoE через eth0. Белый IP. wlan0 - раздача интернета, IP: 192.168.150.1.
Раздачу делал по этому руководству:
ifconfig wlan0 down ifconfig wlan0 up ifconfig wlan0 192.168.150.1 /etc/init.d/dnsmasq start sysctl net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -o dsl0 -j MASQUERADE hostapd /etc/hostapd.conf
Вопрос 1: как с помощью iptables, dsl0 - закрыть все порты (кроме парочки), на wlan0 - разрешить всё? Я понимаю что это прекрасно гуглится, но я всё равно не могу разобраться. Вот так правильно?
iptables -i dsl0 -P INPUT DROP
А как делать исключения, например открыть порт для DC++?Вопрос 2: SSH. Как сделать так, чтобы через него не поимели? Поделитесь советами! (SSH это одна из причин смены дистра: пока он поддерживался, на SSH периодически приходили обновления).
Вопрос 3: никогда не работал с SElinux, какие могут быть подводные камни?