Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
system:shorewall [2016/04/25 09:30] – [Hosts] mirocow | system:shorewall [2016/12/13 23:30] (текущий) – [Интерфейсы и хосты] mirocow |
---|
{{tag>firewall iptables utils shell}} | {{tag>firewall iptables utils shell networks networking network}} |
| |
====== Shorewall - Инструмент конфигурирования шлюза/фаервола ====== | ====== Shorewall - Инструмент конфигурирования шлюза/фаервола ====== |
net ipv4 | net ipv4 |
mysql ipv4 | mysql ipv4 |
| mongo ipv4 |
| |
Подробнее: http://www.shorewall.net/manpages/shorewall-zones.html | Подробнее: http://www.shorewall.net/manpages/shorewall-zones.html |
# nano /etc/shorewall/interfaces | # nano /etc/shorewall/interfaces |
#ZONE INTERFACE BROADCAST OPTIONS | #ZONE INTERFACE BROADCAST OPTIONS |
| # |
| |
net eth0 detect tcpflags,logmartians,nosmurfs | net eth0 detect tcpflags,logmartians,nosmurfs |
| |
| |
Подробнее: http://www.shorewall.net/manpages/shorewall-interfaces.html | Подробнее: http://www.shorewall.net/manpages/shorewall-interfaces.html |
# nano /etc/shorewall/policy | # nano /etc/shorewall/policy |
# SOURCE DEST POLICY LOG LEVEL LIMIT:BURST | # SOURCE DEST POLICY LOG LEVEL LIMIT:BURST |
| # |
| |
$FW net ACCEPT | $FW net ACCEPT |
# nano /etc/shorewall/hosts | # nano /etc/shorewall/hosts |
#ZONE HOST(S) OPTIONS | #ZONE HOST(S) OPTIONS |
| # |
| |
mysql eth0:1.210.189.99 # db1.host.ru | mysql eth0:1.210.189.99 # db1.host.ru |
mysql eth0:1.210.143.80 # ws2.host.ru | mysql eth0:1.210.143.80 # ws2.host.ru |
| |
| mongo eth0:1.210.189.99 # db1.host.ru |
| mongo eth0:1.210.143.80 # ws2.host.ru |
| |
bots eth0:1.210.181.30 # backup.host.ru | bots eth0:1.210.181.30 # backup.host.ru |
# all servers from hosts | # all servers from hosts |
ACCEPT bots $FW | ACCEPT bots $FW |
ACCEPT $FW bots | ACCEPT $FW bots |
| |
# MySql | |
DNAT $FW mysql:62.210.189.99 tcp 3306 | |
DNAT mysql mysql:62.210.189.99 tcp 3306 | |
| |
DNAT $FW $FW:62.210.189.100 tcp 25 - 46.222.222.222 # SMTP | # SMTP |
| DNAT $FW $FW:62.210.189.100 tcp 25 - 46.222.222.222 |
| |
ACCEPT net $FW tcp 9999 | ACCEPT net $FW tcp 9999 |
Правила содержат действия, макросы их настройки. Все макросы находятся в папке /usr/share/shorewall и обозначаются как macro.[ACTION]. | Правила содержат действия, макросы их настройки. Все макросы находятся в папке /usr/share/shorewall и обозначаются как macro.[ACTION]. |
Пример: /usr/share/shorewall/macro.SSH, /usr/share/shorewall/macro.AMQP, /usr/share/shorewall/macro.SMTP | Пример: /usr/share/shorewall/macro.SSH, /usr/share/shorewall/macro.AMQP, /usr/share/shorewall/macro.SMTP |
| |
| <note tip>Разобраться с DNAT на localhost</note> |
| |
Подробнее: http://www.shorewall.net/manpages/shorewall-rules.html | Подробнее: http://www.shorewall.net/manpages/shorewall-rules.html |
# nano /etc/shorewall/rules | # nano /etc/shorewall/rules |
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK | #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK |
# PORT PORT(S) DEST LIMIT GROUP | # |
| PORT PORT(S) DEST LIMIT GROUP |
DNAT all mork:navoff:31840 udp 31840 | |
DNAT net mork:navoff:7777 udp 7777 | |
DNAT net mork:navoff:7777 tcp 7777 | |
| |
=== Firewall === | === Firewall === |
ACCEPT $FW net icmp | ACCEPT $FW net icmp |
ACCEPT net $FW tcp 22 | ACCEPT net $FW tcp 22 |
| |
| # MySql |
| ACCEPT mysql $FW tcp 3306 |
| |
| # MongoDB |
| ACCEPT mongo $FW tcp 27017 |
| |
ACCEPT bots $FW | ACCEPT bots $FW |
ACCEPT $FW bots | ACCEPT $FW bots |
| |
| При условии что mysql настроен на вешний IP адресс **bind-address = 0.0.0.0** |
| |
Разрешаем подключение по ssh и разрешаем все подключения из /etc/shorewall/hosts | Разрешаем подключение по ssh и разрешаем все подключения из /etc/shorewall/hosts |
| |
===== shorewall.conf ===== | ===== shorewall.conf ===== |
| |
| Внести изменения в основной конфиг |
| |
# nano /etc/shorewall/shorewall.conf | # nano /etc/shorewall/shorewall.conf |
STARTUP_ENABLED=Yes — пусть запускается | |
VERBOSITY=1 — многословность в консоли | |
SHOREWALL_COMPILER=perl — чтобы не перепуталось, если что | |
*_LOG_LEVEL — когда все заработаеткак надо, поставьте в none, чтобы не засоряло dmesg | |
LOG_MARTIANS — так же | |
IP_FORWARDING=On — для маскарадинга очень нужно. Можно, кончно, и в sysctl.conf это делать, но тут уместнее | |
CLAMPMSS=Yes — лучше включить, если у аплинка MTU меньше, чем у какой-нибудь из машин в домашней сетке. | |
No здесь может привести к крайне неприятному багу с неработающей википедией на части компов. | |
ADMINISABSENTMINDED=Yes — не мните себя б-гом, оставьте так | |
| |
| * STARTUP_ENABLED=Yes — пусть запускается |
| * VERBOSITY=1 — многословность в консоли |
| * SHOREWALL_COMPILER=perl — чтобы не перепуталось, если что |
| * *_LOG_LEVEL — когда все заработает как надо, поставьте в none, чтобы не засоряло dmesg |
| * LOG_MARTIANS — так же |
| * IP_FORWARDING=On — для маскарадинга очень нужно. Можно, кончно, и в sysctl.conf это делать, но тут уместнее |
| * CLAMPMSS=Yes — лучше включить, если у аплинка MTU меньше, чем у какой-нибудь из машин в домашней сетке. \\ No здесь может привести к крайне неприятному багу с неработающей википедией на части компов. |
| * ADMINISABSENTMINDED=Yes — не мните себя б-гом, оставьте так |
| |
| ===== Макросы ===== |
| |
| ls /usr/share/shorewall/ |
| |
| <code> |
| action.A_Drop action.SetEvent macro.A_DropDNSrep macro.DropUPnP macro.IPP macro.MongoDB macro.Puppet macro.SNMP macro.Webcache |
| action.allowInvalid actions.std macro.A_DropUPnP macro.Edonkey macro.IPPbrd macro.MSNP macro.Razor macro.SNMPTrap macro.Webmin |
| action.A_Reject action.TCPFlags macro.AllowICMPs macro.Finger macro.IPPserver macro.MSSQL macro.Rdate macro.SPAMD macro.Whois |
| action.AutoBL action.template macro.Amanda macro.FTP macro.IPsec macro.Munin macro.RDP macro.Squid macro.Xymon |
| action.AutoBLL action.Untracked macro.AMQP macro.Git macro.IPsecah macro.MySQL macro.Redis macro.SSH modules |
| action.Broadcast compiler.pl macro.Auth macro.GNUnet macro.IPsecnat macro.NNTP macro.Reject macro.Submission modules.essential |
| action.DNSAmp configfiles macro.BGP macro.Gnutella macro.IRC macro.NNTPS macro.Rfc1918 macro.SVN modules.extensions |
| action.Drop configpath macro.BitTorrent macro.Goto-Meeting macro.Jabberd macro.NTP macro.RIPbi macro.Syslog modules.ipset |
| action.dropInvalid coreversion macro.BitTorrent32 macro.GRE macro.JabberPlain macro.NTPbi macro.RNDC macro.Telnet modules.tc |
| action.DropSmurfs functions macro.BLACKLIST macro.HKP macro.JabberSecure macro.NTPbrd macro.Rsync macro.Telnets modules.xtables |
| action.Established getparams macro.Citrix macro.HTTP macro.JAP macro.OpenVPN macro.SANE macro.template prog.footer |
| action.IfEvent helpers macro.CVS macro.HTTPS macro.Jetdirect macro.OSPF macro.Sieve macro.Teredo Shorewall |
| action.Invalid lib.base macro.DAAP macro.ICPV2 macro.Kerberos macro.PCA macro.SIP macro.TFTP shorewallrc |
| action.New lib.cli macro.DCC macro.ICQ macro.L2TP macro.Ping macro.SixXS macro.Time version |
| action.NotSyn lib.cli-std macro.DHCPfwd macro.ILO macro.LDAP macro.POP3 macro.SMB macro.Trcrt wait4ifup |
| action.Reject lib.common macro.Distcc macro.IMAP macro.LDAPS macro.POP3S macro.SMBBI macro.VNC |
| action.Related lib.core macro.DNS macro.IMAPS macro.Mail macro.PostgreSQL macro.SMBswat macro.VNCL |
| action.ResetEvent macro.A_AllowICMPs macro.Drop macro.IPIP macro.mDNS macro.PPtP macro.SMTP macro.VRRP |
| action.RST macro.ActiveDir macro.DropDNSrep macro.IPMI macro.mDNSbi macro.Printer macro.SMTPS macro.Web |
| </code> |
===== Ссылки ===== | ===== Ссылки ===== |
| |