Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: poisoner в May 16, 2006, 21:58



Титла: Отваряне на mysql порта да се вижда отвън
Публикувано от: poisoner в May 16, 2006, 21:58
Искам да ползвам майескуела който е пуснат на един компютър (ще го нареча сървър) от друг отдалечен компютър (ще го нарича клиент). Значи на сървъра има пуснат майескуел, има и файрлол. Майескуела от локалхост си баца без грижа, но от отдалечен комп не. Като опитам да се свържа си въвеждам паролата и си чака без да даде никакво съобщение.
Примерен код
mysql -u poisoner -h server -p
Enter password:

// тука си седи и нищо повече не прави, нито грешка нито нищо

Като сканирам с нмап ми казва че порта е филтриран, а не би трябвало.
Примерен код
nmap server -p 3306

Starting Nmap 4.03 ( http://www.insecure.org/nmap/ ) at 2006-05-16 21:45 EEST
Interesting ports on server (ххх.ххх.х.х.х.х):
PORT     STATE    SERVICE
3306/tcp filtered mysql

Nmap finished: 1 IP address (1 host up) scanned in 10.594 seconds

а на сървъра файрлола е следния
Примерен код
$IPT -F
$IPT -t nat -F

$IPT -P INPUT DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -m state --state NEW -i lo -j ACCEPT
$IPT -A INPUT -p icmp -j ACCEPT
$IPT -A INPUT -p udp -j ACCEPT
$IPT -A INPUT -s 0/0 -d $INT -p tcp -j ACCEPТ

$IPT -A INPUT -s 0/0 -d $EXT -p tcp --dport 3306 -j ACCEPT # mysqld
...
# и някой други отворени портове


Дистро сървър:
Федора коре 4 - Linux 2.6.16-1.2108_FC4 #1 Thu May 4 23:52:01 EDT 2006 i686 athlon i386 GNU/Linux


Титла: Отваряне на mysql порта да се вижда отвън
Публикувано от: Йордан в May 16, 2006, 22:15
Пробвай с това
$IPT -A INPUT -s 0/0 -d $EXT -p tcp --dport mysql -j ACCEPT
И привери интерфеса !!!


Титла: Отваряне на mysql порта да се вижда отвън
Публикувано от: kdpetkov в May 16, 2006, 22:18
Здравей, виж в /etc трябва да имаш файл my.cnf, който съдържа конфигурацията на mysql. Ако ли не би трябвало да имаш файлове my-huge.cnf, my-small.cnf и my-medium.cnf. копирай my-medium.cnf kato my.cnf и в него трябва да коментираш реда --skip-networking. Също така в стартовия скрипт (/etc/rc.d/rc.mysqld на slackware, предполагам, че на федора е нещо като /etc/init.d/mysql) също има ред --skip-networking, трябва и него да редактираш и да рестартираш mysqld


Титла: Отваряне на mysql порта да се вижда отвън
Публикувано от: Йордан в May 16, 2006, 22:18
// accept all tcp on port 3306 from localhost
iptables -I INPUT 1 -i lo -p tcp --dport mysql -j ACCEPT
// accept all udp on port 3306 from localhost
iptables -I INPUT 2 -i lo -p udp --dport mysql -j ACCEPT
// accept tcp on port 3306 from allowed_ip
iptables -I INPUT 3 -i eth0 -p tcp --dport mysql -s allowed_ip -j ACCEPT
// accept udp on port 3306 from allowed_ip
iptables -I INPUT 4 -i eth0 -p udp --dport mysql -s allowed_ip -j ACCEPT
// drop all other packets
iptables -A INPUT -j DROP


Титла: Отваряне на mysql порта да се вижда отвън
Публикувано от: poisoner в May 16, 2006, 23:34
@GigaVolt пробвах ги примерите дето даде но пак си седи филтриран и не може да се свърже.
@kdpetkov нямам други освен мъ.цнф, и в /етс/инит.д/мъсялд няма също скип-нетворкинг. Но не мога да те разбера какъв е смисъла, аз и без тва го нямам в my.cnf, skip-networking та да го коментирам, то е все тая.

ЕДИТ:
през my.cnf го биндах на вънщното айпи и пак не е достъпен.





Титла: Отваряне на mysql порта да се вижда отвън
Публикувано от: в May 17, 2006, 11:31
Трябва просто да видиш дали при стартирането на mysql не се подава опцията --skip-networking от скрипта, който го стартира, а и дали имаш потребител на mysql, който има право да се свързва от друг хост изобщо.


Титла: Отваряне на mysql порта да се вижда отвън
Публикувано от: Йордан в May 17, 2006, 11:34
iptables -F
След това логва ли се  :D


Титла: Отваряне на mysql порта да се вижда отвън
Публикувано от: martos в May 17, 2006, 11:47
iptables -P INPUT ACCEPT
iptables -F


Титла: Отваряне на mysql порта да се вижда отвън
Публикувано от: poisoner в May 17, 2006, 18:28
@kdpetkov не мога да видя никъде да му се подава това --скип-нетворкинг
Цитат
[18:20:03][root@server] ~ $ grep "skip" /etc/my.cnf
[18:20:08][root@server] ~ $ grep "skip" /etc/init.d/mysqld
[18:20:15][root@server] ~ $

Юзър който да има достъп от хост на клиентската машина съм си добавил, но то въобще не стига до там да проверява тоя юзър.


@GigaVolt и @martos
това съм го пробвал и преди да флушна файрлола но ще пробвам пак(първия път когато го правих забравих -П ИНПУТ АЦЦЕПТ, направо -Ф както е написал гигаволт и си отрязах достъпа до сървъра)
Цитат
[18:20:15][root@server] ~ $ iptables -P INPUT ACCEPT
[18:21:51][root@server] ~ $ iptables -F
[18:22:03][root@server] ~ $ iptables -t nat -F
[18:22:08][root@server] ~ $

след това от клиентската машина сканирам
Цитат
[18:21:56][poisoner@oTpoBa] ~ $ nmap server -p 3306

Starting Nmap 4.03 ( http://www.insecure.org/nmap/ ) at 2006-05-17 18:22 EEST
Interesting ports on server (83.228.113.83):
PORT     STATE    SERVICE
3306/tcp filtered mysql

Nmap finished: 1 IP address (1 host up) scanned in 10.347 seconds

и отново ми пише че ев филтриран, и отново нямам достъп.
Нямам си идея кво става.

EDIT:
оправих го, май доставчика ми е затворил портовете. Редиректнах го на друг порт и вече се връзвам.
Благодаря за отговорите, и благодаря на Ahil.