![]() |
Админы. Помогите плз настроить Linux RH9. Задача такого плана: У меня в сети 2-а сервера.
1. Linux RH9. 2.Novell 6.0. На обоих серверах по две сетевые карты. Linux смотрит в инет (eth0), eth1 смотрит на Novell (eth3), eth4 смотрит в локалку. Пинги с локалки доходят до eth0. Пинги с Linux доходят до локалки. Тут все нормально. В интернет имеет доступ только Linux сервер. С локалки доступа в инет нету. Как мне настроить Linux, чтобы (для начала) из локалки все имели доступ в инет? (т.е чтобы Linux форвордил все запросы и туда и обратно) |
1. Почитай книгу "Брандмауры в Linux" Роберта Л. Зиглера
2. Iptables Tutorial 1.1.19 на http://iptables-tutorial.frozentux.n...-tutorial.html Вопросы 1. как настоен роутинг? на сервере Novell 2. Настройки iptables по умолчанию? или свои? PS книга для ipchains - но после корректировки правил все прекрасно работает и для iptables.(во всяком случае у меня) Я использую новел только как файл сервер и в раздаче инета он не работает... ибо лучше его как файл сервера нету, а как сервер для инета он немного сыроват... |
Я не согласен насчет Novellа. Novell на мой взгляд самая лучшая ОС для сервака. Просто с софтом под него трудновато. Я бы и не заморачивался с Linux-ом если бы смог купить почтовый сервер под Novell.
Настройки iptables по умолчанию. ip адреса Linux eth0 - x.x.x.x netmask 255.255.255.252 eth1 - 10.0.0.254 netmask 255.255.255.0 Novell eth3 - 10.0.0.1 netmask 255.255.255.0 eth4 - 192.168.0.1 netmask 255.255.255.0 локалка 192.168.0.0/24 Роутинг на сервере Novell через eth1 (default gateway 10.0.0.254) Добавлено: Еще можно добавить вопрос куда запихивать script, чтобы он инициализировался при старте? Или можно ли его как-нить запустить после старта машины из коммандной строки? И что для этого надо сделать? |
ну... насчет новелла 6 не знаю, у меня 4.12 летает и в инет не лазит... не надо ему это...
По роутингу: на новелле роутинг должен быти типа например: если eth0 локальная сеть за сервером eth0 net 192.168.0.0 netmask 0.0.0.0 gw 192.168.0.1 если eth1 - DMZ eth1 net default gw 10.0.0.254 на Linux: gw для dmz должен быть 10.0.0.1(eth1 новелла) а default на прова По IPTables: мои правила занимают ~24K (переписанные из книги) все пишется в файло /etc/sysconfig/iptables Если нужно подробнее: кусок начальных установок #------------------------------------------------------------------ # Default *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] #------------------------------------------------------------------ # LOOPBACK Inteface # Unlimited traffic on the loopback interface -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT #Я доверяю внутренней сети DMZ #------------------------------------------------------------------ # Unlimited traffic within the local network. # All internal machines have access to the fireall machine. -A INPUT -i eth0 -s x.x.x.0/24 -d any/0 -j ACCEPT -A OUTPUT -o eth0 -s any/0 -d x.x.x.0/24 -j ACCEPT <поцокано> Здесь идут основные правила iptables <поцокано> #------------------------------------------------------------------ # Masquerade internal traffic. # All internal traffic is masqueraded externally. *nat -A POSTROUTING -o eth1 -j MASQUERADE COMMIT PS В начальных установках: :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] - Лучше DROP - НО у меня плохо это работало... поэтому я оставил так как есть а все остальное убиваю... по правилам... PSS Если нужно подробнее пиши ... Поможем... |
Насчет Novella 4.хх.
4.хх не сравнится с 6.0 или с 5.1 (но 5.0) Совершенно другие технологии. Администрится проще некуда, удобна во всех случаях.(За исключением халявного софта на рынке) Неговоря о том (как ты заметил), что как FS и его привязки к NDS, его еще ни кто не переплюнул (даже мелкософт, который пытается подражать Novell-у аля ActiveDirectory и т.д.) Отвлекся немного. Этого хватит, чтобы Linux заработал? Конечно хотелось бы иметь весь спектр конфигурационных файлов для Linux, чтобы не мучаться с прописью вручную (т.к. я в пингвинах, как свинья в апельсинах). И еще вопрос как запустить скрипт с консоли (как не пытался выдает какую ту фигню, типа не может наити файлы , каталоги и т.д.). |
По первому вопросу: нет этого не хватит - это только начало и конец скриптов чтобы небыло проблем с LO - интерфейса обратной петли 127.0.0.1 в линуксе и доступ всеи DMZ-внутренней сети между двумя серверами- сети. Плюс маскарадинг сети... скрываем внутреннюю сеть от посторонних глаз...
Где стоит <поцокано> идут твои правила на сервисы машины.. например www ftp и тд что должно работать... Обязатьльно нужно разрешить и icmp протокол например: #------------------------------------------------------------------ # ICMP #------------------------------------------------------------------ #------------------------------------------------------------------ # (4) *Source_Quench # * * *incoming & outgoing requests to slow down (flow control) -A INPUT *-i eth0 -p icmp -s any/0 --icmp-type 4 -d 10.0.0.254 -j ACCEPT -A OUTPUT -o eth0 -p icmp -s 10.0.0.254 --icmp-type 4 -d any/0 -j ACCEPT # ISP -A INPUT *-i eth1 -p icmp -s any/0 --icmp-type 4 -d XXX.XXX.XXX.XXX -j ACCEPT -A OUTPUT -o eth1 -p icmp -s XXX.XXX.XXX.XXX --icmp-type 4 -d any/0 -j ACCEPT #------------------------------------------------------------------ # (12) Parameter_Problem # * * *incoming & outgoing error messages -A INPUT *-i eth0 -p icmp -s any/0 --icmp-type 12 -d 10.0.0.254 -j ACCEPT -A OUTPUT -o eth0 -p icmp -s 10.0.0.254 --icmp-type 12 -d any/0 -j ACCEPT # ISP -A INPUT *-i eth1 -p icmp -s any/0 --icmp-type 12 -d XXX.XXX.XXX.XXX -j ACCEPT -A OUTPUT -o eth1 -p icmp -s XXX.XXX.XXX.XXX --icmp-type 12 -d any/0 -j ACCEPT #------------------------------------------------------------------ # (3) *Dest_Unreachable, Service_Unavailable # * * *incoming & outgoing size negotiation, service or # * * *destination unavailability, final traceroute response -A INPUT *-i eth0 -p icmp -s any/0 --icmp-type 3 -d 10.0.0.254 -j ACCEPT -A OUTPUT -o eth0 -p icmp -s 10.0.0.254 --icmp-type 3 -d any/0 -j ACCEPT # ISP -A INPUT *-i eth1 -p icmp -s any/0 --icmp-type 3 -d XXX.XXX.XXX.XXX -j ACCEPT -A OUTPUT -o eth1 -p icmp -s XXX.XXX.XXX.XXX --icmp-type 3 -d any/0 -j ACCEPT #------------------------------------------------------------------ # (11) Time_Exceeded # * * *incoming & outgoing time out conditions, # * * *also intermediate TTL response to traceroutes -A INPUT *-i eth0 -p icmp -s any/0 --icmp-type 11 -d 10.0.0.254 -j ACCEPT -A OUTPUT -o eth0 -p icmp -s 10.0.0.254 --icmp-type 11 -d any/0 -j ACCEPT # ISP -A INPUT *-i eth1 -p icmp -s any/0 --icmp-type 11 -d XXX.XXX.XXX.XXX -j ACCEPT -A OUTPUT -o eth1 -p icmp -s XXX.XXX.XXX.XXX --icmp-type 11 -d any/0 -j ACCEPT #------------------------------------------------------------------ # (8) Echo Request # (0) Echo Reply # allow outgoing pings to anywhere -A OUTPUT -o eth0 -p icmp -s 10.0.0.254 --icmp-type 8 -d any/0 -j ACCEPT -A INPUT *-i eth0 -p icmp -s any/0 --icmp-type 0 -d 10.0.0.254 -j ACCEPT # allow incoming pings from trusted hosts -A INPUT *-i eth0 -p icmp -s any/0 --icmp-type 8 -d 10.0.0.254 -j ACCEPT -A OUTPUT -o eth0 -p icmp -s 10.0.0.254 --icmp-type 0 -d any/0 -j ACCEPT # ISP # allow outgoing pings to anywhere -A OUTPUT -o eth1 -p icmp -s XXX.XXX.XXX.XXX --icmp-type 8 -d any/0 -j ACCEPT -A INPUT *-i eth1 -p icmp -s any/0 --icmp-type 0 -d XXX.XXX.XXX.XXX -j ACCEPT # allow incoming pings from trusted hosts -A INPUT *-i eth1 -p icmp -s any/0 --icmp-type 8 -d XXX.XXX.XXX.XXX -j ACCEPT -A OUTPUT -o eth1 -p icmp -s XXX.XXX.XXX.XXX --icmp-type 0 -d any/0 -j ACCEPT Чтобы ходили пинги и т.д были ответы твоего сервера... Это встовляешь где <поцокано> - потом все вместе в файл /etc/sysconfig/iptables и перезапускаешь ipTables /etc/rc.d/init.d/iptables restart 1. Где стоит XXX.XXX... - напиши свои IP и 10.0.0..... ip внутренней сети DMZ... 2. Учти что данный кусок дает права доступа только lo, внутренней сети на твою машину и ответам сервака на пинг и тд на управляющую часть протокола tcp/ip - icmp. А тебе еще необходимо разрешить как минимум ходить telnet(или SSH что предпочтительней), DNS,WWW, FTP... и тд... Иначе не будет доступа в инет основных служб и вашей сети к ним... Т.Е доступа к ресурсам инета... PS [offtopic] Если необходимо подробнее стучись в асю... ибо это и так много... и далее приватный разговор по настройке Linux [/offtopic] Или пости сюда будем делать по шагам... с перерывами... [s]Исправлено: sergleo, 17:31 16-09-2003[/s] |
Спасибо sergleo
|
Пиши поможем...
|
sergleo
:up: |
Sergleo Проблемы
|
Ок, если вы уже набрали этот кусок кода то лучше по порядку - структура:
1. начинаем с подготовки iptables - 1-й кусок скриптов отправленный 15:46 16-09-2003 . ВНИМАНИЕ! Все остальное вставляется в участок где стоят теги <поцокано> 2. вставляем участок скриптов отправленный 17:17 16-09-2003. 3. следующим идет кусок скрипта для работы с AUTH и DNS т.к. к ним идет наибольший трафик(проверено iptraf`ом) #------------------------------------------------------------------ # Required Services #------------------------------------------------------------------ #------------------------------------------------------------------ # AUTH (113) - Allowing Your Outgoing AUTH Requests as a Client -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX *--sport 1024:65535 -d any/0 --dport 113 -j ACCEPT -A INPUT *-i eth1 -p tcp ! --syn -s any/0 --sport 113 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #--------------------------------- # AUTH server (113) # Accepting Incoming AUTH Requests -A INPUT *-i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX *--dport 113 -j ACCEPT -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 113 -d any/0 --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # OR Rejecting Incoming AUTH Requests #-A INPUT -i eth0 -p tcp -d 10.0.0.254 --dport 113 -j REJECT #-A INPUT -i eth1 -p tcp -d XXX.XXX.XXX.XXX --dport 113 -j REJECT #------------------------------------------------------------------ # DNS (53) # --------------------- #------------------------------------------------------------------ # DNS client modes (53) # --------------------- -A OUTPUT -o eth1 -p udp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d a.a.a.a --dport 53 -j ACCEPT -A INPUT *-i eth1 -p udp -s a.a.a.a *--sport 53 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT -A OUTPUT -o eth1 -p udp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d b.b.b.b --dport 53 -j ACCEPT -A INPUT *-i eth1 -p udp -s b.b.b.b --sport 53 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # TCP client to server requests are allowed by the protocol # if UDP requests fail. This is rarely seen. Usually, clients # use TCP as a secondary nameserver for zone transfers from # their primary nameservers, and as hackers. -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d a.a.a.a --dport 53 -j ACCEPT -A INPUT *-i eth1 -p tcp ! --syn -s a.a.a.a --sport 53 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d b.b.b.b --dport 53 -j ACCEPT -A INPUT *-i eth1 -p tcp ! --syn -s b.b.b.b --sport 53 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # DNS server modes (53) # --------------------- # DNS caching & forwarding nameserver # ----------------------------------- # server to server query or response # Caching only name server uses UDP, not TCP -A OUTPUT -o eth1 -p udp -s XXX.XXX.XXX.XXX --sport 53 -d a.a.a.a --dport 53 -j ACCEPT -A INPUT *-i eth1 -p udp -s a.a.a.a *--sport 53 -d XXX.XXX.XXX.XXX --dport 53 -j ACCEPT -A OUTPUT -o eth1 -p udp -s XXX.XXX.XXX.XXX --sport 53 -d b.b.b.b --dport 53 -j ACCEPT -A INPUT *-i eth1 -p udp -s b.b.b.b --sport 53 -d XXX.XXX.XXX.XXX --dport 53 -j ACCEPT #------------------------------------------------------------------ # DNS full nameserver # ------------------- # client to server DNS transaction -A INPUT *-i eth1 -p udp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 53 -j ACCEPT -A OUTPUT -o eth1 -p udp -s XXX.XXX.XXX.XXX --sport 53 -d any/0 --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # peer-to-peer server DNS transaction -A INPUT *-i eth1 -p udp -s a.a.a.a *--sport 53 -d XXX.XXX.XXX.XXX --dport 53 -j ACCEPT -A OUTPUT -o eth1 -p udp -s XXX.XXX.XXX.XXX --sport 53 -d a.a.a.a --dport 53 -j ACCEPT -A INPUT *-i eth1 -p udp -s b.b.b.b --sport 53 -d XXX.XXX.XXX.XXX --dport 53 -j ACCEPT -A OUTPUT -o eth1 -p udp -s XXX.XXX.XXX.XXX --sport 53 -d b.b.b.b --dport 53 -j ACCEPT #------------------------------------------------------------------ # Zone Transfers # due to the potential danger of zone transfers, # only allow TCP traffic to specific secondaries. -A INPUT *-i eth1 -p tcp -s a.a.a.a --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 53 -j ACCEPT -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 53 -d a.a.a.a --dport 1024:65535 -j ACCEPT -A INPUT *-i eth1 -p tcp -s b.b.b.b --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 53 -j ACCEPT -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 53 -d b.b.b.b --dport 1024:65535 -j ACCEPT Учти что это ты вставляешь после описания протокола icmp меду тегами поцокано... Блин повторяюсь... Это и все остальное вставляем до описания: #------------------------------------------------------------------ # Masquerade internal traffic. # All internal traffic is masqueraded externally. *nat -A POSTROUTING -o eth1 -j MASQUERADE т.к. используем по умолчанию таблицу *filter, а таблица *nat нужна несколько для других целей например для маскарадинга и переброса портов. Учти что ххх.ххх.ххх.ххх - IP адрес внешнего интерфейса, а.а.а.а - ip адрес 1-го DNS сервера провайдера *а b.b.b.b второй соответственно PS. далее стандартно /etc/rc.d/init.d/iptables restart *перезапускаем iptables он должен написать что у тебя все OK Вопросы? следующим рассмотри например www... Добавлено: Продолжаем... #------------------------------------------------------------------ # TCP services on selected ports #------------------------------------------------------------------ #------------------------------------------------------------------ # HTTP (80) #------------------------------------------------------------------ # Accessing Remote Web Sites as a Client -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 80 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 80 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Allowing Remote Access to a Local Web Server -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 80 -j ACCEPT -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 80 -d any/0 --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # HTTPS (443) #------------------------------------------------------------------ # Accessing Remote Web Sites Over SSL as a Client -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 443 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 443 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Allowing Remote Access to a Local SSL Web Server -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 443 -j ACCEPT -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 443 -d any/0 --dport 1024:65535 -j ACCEPT где xxx.xxx.xxx.xxx - IP адрес внешней сетевой карты... смотрящей на провайдера... Добавлено: раздаем ftp #------------------------------------------------------------------ # FTP (20, 21) - Allowing Outgoing Client Access to Remote FTP Servers # -------------------------------------------------------------------- # outgoing request -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 21 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 21 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Normal Port Mode FTP Data Channels -A INPUT -i eth1 -p tcp -s any/0 --sport 20 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 20 -j ACCEPT #------------------------------------------------------------------ # Passive Mode FTP Data Channels -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 1024:65535 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # FTP (20, 21) - Allowing Incoming Access to Your Local FTP Server # ---------------------------------------------------------------- # incoming request -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 21 -j ACCEPT -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 21 -d any/0 --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Normal Port Mode FTP Data Channel Responses -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 20 -d any/0 --dport 1024:65535 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 20 -j ACCEPT #------------------------------------------------------------------ # Passive Mode FTP Data Channel Responses -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 1024:65535 -j ACCEPT продолжение следует.... Добавлено: Остальные сервисы... #------------------------------------------------------------------ # SSH client (22) #------------------------------------------------------------------ # Allowing Client Access to Remote SSH Servers -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 22 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 22 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1020:1023 -d any/0 --dport 22 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 22 -d XXX.XXX.XXX.XXX --dport 1020:1023 -j ACCEPT #------------------------------------------------------------------ # Allowing Remote Client Access to Your Local SSH Server -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 22 -j DROP -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 22 -d any/0 --dport 1024:65535 -j DROP -A INPUT -i eth1 -p tcp -s any/0 --sport 1020:1023 -d XXX.XXX.XXX.XXX --dport 22 -j DROP -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 22 -d any/0 --dport 1020:1023 -j DROP #------------------------------------------------------------------ # Sending Mail through a remote SMTP gateway (25) # ----------------------------------------------- # SMTP client to an ISP account without a local server -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 25 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 25 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Receiving Mail as a Local SMTP server (25) # ------------------------------------------ -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 25 -j ACCEPT -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 25 -d any/0 --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # POP (110) #------------------------------------------------------------------ # Retrieving Mail as a POP Client -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 110 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 110 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Hosting a POP Server for Remote Clients -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 110 -j DROP -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 110 -d any/0 --dport 1024:65535 -j DROP #------------------------------------------------------------------ # IMAP (143) #------------------------------------------------------------------ # Retrieving Mail as an IMAP Client -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 143 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 143 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Hosting an IMAP Server for Remote Clients -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 143 -j DROP -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 143 -d any/0 --dport 1024:65535 -j DROP #------------------------------------------------------------------ # TELNET (23) #------------------------------------------------------------------ # Allowing Outgoing Client Access to Remote Sites -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 23 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 23 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Allowing Incoming Access to Your Local Server -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 23 -j DROP -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 23 -d any/0 --dport 1024:65535 -j DROP #------------------------------------------------------------------ # NNTP (119) #------------------------------------------------------------------ # Reading and Posting News as a Usenet Client -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 119 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 119 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Hosting a Usenet News Server for Remote Clients -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 119 -j DROP -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 119 -d any/0 --dport 1024:65535 -j DROP #------------------------------------------------------------------ # Allowing Peer News Feeds for a Local Usenet Server -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 119 -j DROP -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 119 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j DROP #------------------------------------------------------------------ # FINGER (79) #------------------------------------------------------------------ # Accessing Remote finger Servers as a Client -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 79 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 79 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT #------------------------------------------------------------------ # Allowing Remote Client Access to a Local finger Server -A INPUT -i eth1 -p tcp -s any/0 --sport 1024:65535 -d XXX.XXX.XXX.XXX --dport 79 -j DROP -A OUTPUT -o eth1 -p tcp ! --syn -s XXX.XXX.XXX.XXX --sport 79 -d any/0 --dport 1024:65535 -j DROP #------------------------------------------------------------------ # WHOIS client (43) # ----------------- -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 43 -j DROP -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 43 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j DROP #------------------------------------------------------------------ # Gopher client (70) # ------------------ -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 70 -j DROP -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 70 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j DROP #------------------------------------------------------------------ # WAIS client (210) # ----------------- -A OUTPUT -o eth1 -p tcp -s XXX.XXX.XXX.XXX --sport 1024:65535 -d any/0 --dport 210 -j ACCEPT -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 210 -d XXX.XXX.XXX.XXX --dport 1024:65535 -j ACCEPT далеее.... Добавлено: Разрешаем traceroute (tracert в винде...) #------------------------------------------------------------------ # UDP accept only on selected ports #------------------------------------------------------------------ #------------------------------------------------------------------ # TRACEROUTE # traceroute usually uses -S 32769:65535 -D 33434:33523 #------------------------------------------------------------------ # Enabling Outgoing traceroute Requests -A OUTPUT -o eth1 -p udp -s XXX.XXX.XXX.XXX --sport 32769:65535 -d any/0 --dport 33434:33523 -j ACCEPT #------------------------------------------------------------------ # incoming query from the ISP. All others are denied by default. -A INPUT -i eth1 -p udp -s any/0 --sport 32769:65535 -d XXX.XXX.XXX.XXX --dport 33434:33523 -j ACCEPT остались только правила запрета.... Добавлено: #------------------------------------------------------------------ # SPOOFING & BAD ADDRESSES # Refuse spoofed packets. # Ignore blatantly illegal source addresses. # Protect yourself from sending to bad addresses. #------------------------------------------------------------------ #------------------------------------------------------------------ # Refuse packets claiming to be to or from a Class A private network -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP -A INPUT -i eth1 -d 10.0.0.0/8 -j DROP -A OUTPUT -o eth1 -s 10.0.0.0/8 -j DROP -A OUTPUT -o eth1 -d 10.0.0.0/8 -j DROP #------------------------------------------------------------------ # Refuse packets claiming to be to or from a Class B private network -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP -A INPUT -i eth1 -d 172.16.0.0/12 -j DROP -A OUTPUT -o eth1 -s 172.16.0.0/12 -j DROP -A OUTPUT -o eth1 -d 172.16.0.0/12 -j DROP #------------------------------------------------------------------ # Refuse packets claiming to be to or from a Class C private network -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP -A INPUT -i eth1 -d 192.168.0.0/16 -j DROP -A OUTPUT -o eth1 -s 192.168.0.0/16 -j DROP -A OUTPUT -o eth1 -d 192.168.0.0/16 -j DROP #------------------------------------------------------------------ # Refuse Class D multicast addresses # Multicast is only illegal as a source address. # Multicast uses UDP -A INPUT -i eth1 -s 224.0.0.0/4 -j DROP -A OUTPUT -o eth1 -s 224.0.0.0/4 -j DROP #------------------------------------------------------------------ # Refuse Class E reserved IP addresses -A INPUT -i eth1 -s 240.0.0.0/5 -j DROP -A OUTPUT -o eth1 -d 240.0.0.0/5 -j DROP #------------------------------------------------------------------ # Refuse packets claiming to be from the loopback interface -A INPUT -i eth1 -s 127.0.0.0/8 -j DROP -A OUTPUT -o eth1 -s 127.0.0.0/8 -j DROP #------------------------------------------------------------------ # Refuse spoofed packets pretending to be from # the external interface's IP address -A INPUT -i eth1 -s XXX.XXX.XXX.XXX -j DROP #------------------------------------------------------------------ # Refuse malformed broadcast packets -A INPUT -i eth1 -s 255.255.255.255 -j DROP -A INPUT -i eth1 -d 0.0.0.0 -j DROP #------------------------------------------------------------------ # UNPRIVILEGED PORTS # Avoid ports subject to protocol & system administration problems. #------------------------------------------------------------------ #------------------------------------------------------------------ # Open Windows: #------------------------------------------------------------------ # establishing a connection -A OUTPUT -o eth1 -p tcp --syn -s XXX.XXX.XXX.XXX -d any/0 --dport 2000 -j DROP #------------------------------------------------------------------ # incoming connection -A INPUT -i eth1 -p tcp --syn -d XXX.XXX.XXX.XXX --dport 2000 -j DROP #------------------------------------------------------------------ # X Windows: #------------------------------------------------------------------ # establishing a remote connection -A OUTPUT -o eth1 -p tcp --syn -s XXX.XXX.XXX.XXX -d any/0 --dport 6000:6063 -j DROP #------------------------------------------------------------------ # incoming connection attempt -A INPUT -i eth1 -p tcp --syn -d XXX.XXX.XXX.XXX --dport 6000:6063 -j DROP #------------------------------------------------------------------ # SOCKS: #------------------------------------------------------------------ # establishing a connection -A OUTPUT -o eth1 -p tcp --syn -s XXX.XXX.XXX.XXX -d any/0 --dport 1080 -j DROP #------------------------------------------------------------------ # incoming connection -A INPUT -i eth1 -p tcp --syn -d XXX.XXX.XXX.XXX --dport 1080 -j DROP #------------------------------------------------------------------ # NFS: #------------------------------------------------------------------ # TCP connections -A INPUT -i eth1 -p tcp --syn -d XXX.XXX.XXX.XXX --dport 2049 -j DROP -A OUTPUT -o eth1 -p tcp --syn -d any/0 --dport 2049 -j DROP #------------------------------------------------------------------ # UDP connections -A INPUT -i eth1 -p udp -d XXX.XXX.XXX.XXX --dport 2049 -j DROP #------------------------------------------------------------------ # NFS incoming request (normal UDP mode) -A OUTPUT -o eth1 -p udp -d any/0 --dport 2049 -j DROP Добавлено: Ну вот вроде и все.... теперь маленькие пояснения... 1. Это должно работать... во всяком случае у меня работает без проблем... 2. Правила запрета идут в конце скрипта что не совсем корректно для безопастности.... лучше их вставлять после описания протокола icmp. Но таким образом я несколько разгружаю сетевые средства iptables для увеличения быстродействия... ведь они все равно работают... и ловят... 3. Правила не оптимизированы те неспользуется механизм встроенных пользовательских обьявлений цепочек... 4. нет правил для SQUID`да и всяких там конференций и RealAudio Ну вот вроде и все... Пишите... Вопросы... Замечания... добавления... Да прибудет с тобой силя Linux :) |
Круто, SergLeo - нафлудил, а как полезно!
Я тож для себя нужного почерпнул. Пасиба. |
Gorza
С чего ты взял, что жт флуд - просто развёрнутый ответ на вопрос :) |
флуд - \буквально\ - затопление
и никакого негативного смысла я не вкладывал в это слово. |
Я стартовал изучение iptables c доки
"Использование iptables на автономной dual-up машине" -> google Грамотная дока, показывающая что брандмауэр нужен даже на домашней машине.. Добавлено: Там, допустим, файл /etc/sysconfig/iptables не редактируется напрямую. Вначале создается промежуточный скрипт со списком команд iptables, уже после загрузки которого делается сохранение полученного ruleset в /etc/sysconfig/iptables (iptables-save) ..что по-моему более грамотно и понятней для новичка, ведь с утилитами iptables-save -restore все равно будет нужно работать. А Серглео все равно маладец! Добавлено: Там, допустим, файл /etc/sysconfig/iptables не редактируется напрямую. Вначале создается промежуточный скрипт со списком команд iptables, уже после загрузки которого делается сохранение полученного ruleset в /etc/sysconfig/iptables (iptables-save) ..что по-моему более грамотно и понятней для новичка, ведь с утилитами iptables-save -restore все равно будет нужно работать. А Серглео все равно маладец! |
http://devzone.stealthp.org/iptables-control/
Это скрипт для быстрой настройки ip-tables Добавлено: http://devzone.stealthp.org/iptables-control/ Это скрипт для быстрой настройки ip-tables Добавлено: Очень полезная штука ************************************ http://devzone.stealthp.org/iptables-control/ (Linux 2.4.x iptables configurator) ************************************ |
Народ а зачем вы ставите запреты в цепочки?
Наверное проще поставить default policy DROP на INPUT и OUTPUT все что нужно разрешил и все. И можешь быть уверен что ни одна зараза (пакет) не прорвется. Добавлено: "Наверное проще поставить default policy DROP на INPUT и OUTPUT" т.е. на INPUT и FORWARD Добавлено: для iptables работает |
т.к превоночально данные правила работали под ipchains - а он все же некорректно обрабатывал default ценочки(те были явные "тормаза")... Вот и осталось все как есть... Плюс по тексту если читать сообщения там идут пояснения почему так...
А далее дело вашего вкуса, что и как использовать... Это всего-лиш руководство к действию, а не ман или ховту... И не обязательно на него операться... Добавлено: Мой пост ________________ by sergleo |
Народ подскажите как в iptables (RH конфиг) реализовать сложную логику типа
"если source ИЛИ distanation адрес ххх.ххх.ххх.ххх то принять" или "если трафик не между локальными сетками, а наружу то переслать на на gateway чтобы он его SNATнул " Думаю что это надо делать с помощью набора пользовательских цепочек, но вот как именно не допру. спасибо |
Любую, сложную логику можно реализовать разбив на более простую
Цитата:
-A INPUT -d XXX.XXX.XXX.XXX -j ACCEPT или -A INPUT -s XXX.XXX.XXX.XXX -d XXX.XXX.XXX.XXX -j ACCEPT Учитывая что неспользуется все остальное например: интерфейс и порт назначения Лучше если сложную логику реализовывать с помощью определяемых пользователем цепочек более подробно почитайте HOWTO по iptables на русском например 1.1.19 на сайте www.opennet.ru _______________________________ by sergleo |
Время: 02:44. |
Время: 02:44.
© OSzone.net 2001-