Marc Brown соединил хранимую процедуру с помощью sp_spaceused и sp_tables системных хранимых процедур для сбора той информации. Кроме того, если Вы не возражаете использовать Microsoft частная процедура, эта хранимая процедура является немного более коротким методом выполнения той же цели.
Я предполагаю, что можно достигнуть того, что Вы хотите с чем-то вроде этого (не протестированный, просто из памяти и вероятно работа привычки, но может дать Вам некоторые подсказки для запуска). В попытке веб-сервера:
iptables -t nat -I PREROUTING -p tcp --dport 5678 -j REDIRECT --to-port 1234
iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination database.server.com
Если у Вас нет своего сервера базы данных, непосредственно недостижимого от Вашего маршрутизатора, можно сделать то же просто отображение соответствующих портов непосредственно в маршрутизаторе.
Однако, по-моему, Вы должны все еще с помощью туннеля ssh потому что его преимущества:
1) соединение требует аутентификации, которая хороша 2), трафик шифруется 3), можно настроить соединение каждый раз, когда Вы желаете с ssh (добавляющий сжатие, добавляя больше портов для туннелирования, добавляя socks5 привязку, и т.д...
Используя Shorewall, Вы ищете правило DNAT (онлайн-документация превосходна, пойдите туда). Вы закончите с чем-то как
DNAT net loc:192.168.1.3:1234 tcp 5678
в Вашем файле правил, где 192.168.1.3 IP-адрес Вашего сервера базы данных. Вам, вероятно, придется включить routeback
опция, если Ваше входящее соединение и соединение Вашего веб-сервера с сервером базы данных находятся на том же NIC.
Однако я очень сильно убеждаю не сделать этого!! Это открывает Ваш сервер базы данных буквально любому, явно предоставляя им доступ для подмены себя веб-сервером и инвертируя любую способность к серверу базы данных к самому брандмауэру. Кроме того, все, что Вы делаете по этому соединению, было бы не зашифровано, включая Ваше имя пользователя сервера базы данных и пароль! Не делайте этого! Ваш туннель SSH обеспечивает аутентификацию и шифрование, которое не сделало бы это перенаправление портов.
Кроме того, почему Вы используете такую старую версию Shorewall? Я использовал Shorewall в течение многих лет, и когда я запустил, версия 3 была устаревшей! Необходимо, по крайней мере, быть на 4,0 к настоящему времени, или еще лучше 4.2 или 4.4. Хранение Вашего актуального защитного программного обеспечения абсолютно необходимо!