LINUX.ORG.RU

Сообщения fk0

 

linux, plain C, bounds checking — как?

Форум — Development

Хочется -fbounds-check или что-то аналогичное, да что угодно, для C. Как? Есть http://sourceforge.net/projects/boundschecking — он дата последнего обновления в 2005г. сильно смущает, как и необходимость патчить GCC. Удивительно, но все .gcc современные имеют неработающий ключ -fbounds-check и ничего в документации. Valgrind тоже не в помощь. Статический анализ хорошо, но хотелось бы в динамике. Как?

fk0
()

Эмулятор терминала с поиском и удобной прокруткой

Форум — Development

Посоветуйте эмулятор терминала или текстовый редактор, где бы можно было удобно просматривать вывод cu (а заодно и в файл писать). Нужны такие функции:

* поиск и подсветка (одновременно всех подходящих) строк (как это делает vim, например);

* если скроллбар не в конце, то при добавлении новых данных не нужно ничего ни сдвигать, ни тем более перематывать в конец (данных много, бывает желание вдумчиво изучать старые при одновременном добавлении новых);

* буфер — несколько тысяч строк.

fk0
()

Сделать su без /dev/pts — какой трюк?

Форум — Admin

Могу делать ssh -T hostname. Без -T, ввиду отсутствия /dev/pts, не пустит. Соответственно su не выполнить. Все пароли есть. Как сделаться рутом и сделать mkdir /dev/pts ? Т.н. «виртуальных терминалов» (/dev/pts/x) в оси сейчас вообще нет. Залогиниться же с консоли очень трудно... Подскажите чего-нибудь.

fk0
()

локальный postfix использующий удалённый IP через VPN как?

Форум — Admin

Задача. Есть сервер, на нём постфикс — почтовый сервер мелкой организации. Есть удалённый сервер. На нём есть openvpn и можно делать что угодно, можно выделить отдельный IP с которого всё хотелось бы перенаправить на локальный сервер. Ставить же postfix на удалённый сервер не хочется по ряду причин... А http и ftp — просто невозможно.

Хотелось бы такую маршрутизацию, чтоб всё попадающее на 25 порт удалённого сервера через VPN попадало на 25 порт локального сервера, к postfix. И наоборот тоже... И для всех остальных протоколов тоже.

В принципе, это всё легко делается через iptables ... -j SNAT. Но тогда postfix видит в качестве ip-адресов отправителя VPN-адрес удалённого сервера. Что не позволяет нормально принимать спам и т.п. Да и других протоколов (ftp, ssh, http) это тоже слегка касается, иногда адрес отправителя важен.

Как это можно всё сделать? Везде linux >= 2.6.18. Через iptables отметить (mark) нужные пакеты и через ip route посылать их в vpn и наоборот? Задача же, наверняка, типовая.

Вопрос вдогонку. Хотелось бы вообще исходящий траффик завернуть через openvpn тоже. Поблемы не вызывает. НО. Хотелось бы, чтоб при недоступности openvpn работало через местную сеть. Понятно, что через смену route add default gw ROUTERNAME можно добиться. Но как это хорошо сделать, опять же задача достаточно типовая?

fk0
()

Санкт-Петербург, Москва: инженер-программист.

Форум — Job

Санкт-Петербург, Москва: инженер-программист.

Работа на постоянной основе в Санкте-Петербурге или Москве. В Санкт-Петербурге офис в районе станции метро Выборгская. 45-60 т.р.

Что требуется: профессионально программировать на языке C, опыт работы в Unix (Linux), знание и опыт использования других языков программирования (perl, python, tcl... используемых в web-разработке), умение работать с современными средствами разработки (VCS в частности), ориентироваться в существующих средствах разработки, прикладных программах, библиотеках, готовность работы с opensource проектами. Необходимо иметь представление о работе современных web-приложений и об используемых технологиях. Иметь готовность разрабатывать сетевое ПО (не только web). Желателен опыт работы с реляционными СУБД (mysql, postgresql...) и с Berkeley DB. Английский язык на уровне чтения документации и переписки электронной почтой...

Возможно удалённое сотрудничество. Но в любом случае это не разовый «freelance» проект.

Адрес для резюме: job@prosecurity.ru

fk0
()

Санкт-Петербург, Москва: инженер-программист.

Форум — Job

Работа на постоянной основе в Санкте-Петербурге или Москве. В Санкт-Петербурге офис в районе станции метро Выборгская. 45-60 т.р.

Что требуется: профессионально программировать на языке C, опыт работы в Unix (Linux), знание и опыт использования других языков программирования (perl, python, tcl... используемых в web-разработке), умение работать с современными средствами разработки (VCS в частности), ориентироваться в существующих средствах разработки, прикладных программах, библиотеках, готовность работы с opensource проектами. Необходимо иметь представление о работе современных web-приложений и об используемых технологиях. Иметь готовность разрабатывать сетевое ПО (не только web). Желателен опыт работы с реляционными СУБД (mysql, postgresql...) и с Berkeley DB. Английский язык на уровне чтения документации и переписки электронной почтой...

Адрес для резюме: job@defen.org.ru

fk0
()

Заменить skype своим — чем? Asterisk?

Форум — Admin

Хочется свой (на своих серверах) сервер на замену skype. Нужны сообщения (чат), нужны звонки, нужны звонки с конференциями.

Что проще? Пользователей немного. Только свой сервер — не надо советовать услуги сторонних организаций (вроде sipnet). Хотелось бы ещё, потенциально и asterisk с шлюзом в GSM в будущем.

Asterisk не поддерживает SIP-сообщений вне звонка. Есть патч (https://reviewboard.asterisk.org/r/1042/diff/#index_header)... собрал — не работает. Если бы не это, то наверное всё бы устроило. Asterisk + openser и т.п. сложно как-то, особенно в настройке, да и в том же openser нет конференций, например (в старых версиях).

Посоветуйте что-нибудь.

fk0
()

dm-crypt /home и /var

Форум — Admin

Есть сервер с /, /home, /var и swap разделами. Шифровать / смысла нет (и следовательно вводить ssh в initrd для ввода пароля и т.п.) swap шифроваться может без пароля. Остаётся /var и /home. Хотелось бы, чтоб без примонтированных разделов сервер работал в «ограниченном» режиме (как минимум ssh). Монтируется вручную, через ssh.

Без /home жить можно, но сложно — не войти по ключу (в ~/.ssh). Это первая проблема. Хотелось бы как-то её обойти (понятно, что можно создать отдельных пользователей и т.п., но неудобно) Можно создать запасной /home где только .ssh с ключём будет. Может ещё что-то?

Без /var жить невозможно вообще. Практически в /var есть несколько БД для которых актуально шифрование. Может быть, сделать там симлинки, а сами БД вынести в /home, например... Не знаю.

postfix и другие подобные демоны: они будут пытаться писать в /home/USER/Maildir. Непонятно, что с ними делать. Если они без Maildir откажутся принимать почту просто — можно выкрутиться.

То же самое с базами данных. Сервер стартует, баз нет. Когда они появились — неплохо бы перестартовать, иначе же не заработает. Можно, конечно, всю эту работу вручную всунуть в скрипт монтирующий /home.

Есть же наверное, какой-то типовой подход (методика). Задача-то не экзотическая. Не всё ж с консоли при загрузке пароли вводить.

fk0
()

gprof — низкое разрешение таймера.

Форум — Desktop

Собственно суть проблемы. В выводе gprof в колонке таймера одни нули. Можно, конечно, запускать программу за дольшее время. Но проблему низкого разрешения таймера это не отменяет. На Pentium-1 с этим можно мириться, но где ж его взять, на современных процессорах gprof становится бесполезным, если нужно анализировать работу маленьких и быстрых программ. Как быть?

fk0
()

routing через openvpn

Форум — Admin

Имеем конфигурацию:

[сервер] tun0 <-----(internet)------> tun0 [openwrt] eth1.x <-- клиенты.
10.12.17.1 10.12.17.6 10.12.16.xx

Связь между сервером и коробкой с openwrt — через openvpn (соответственно, сервер выступает сервером, а openwrt — клиентом).
Нужно, чтоб с сервера были доступны клиенты (по TCP/IP).

Конфигурация сейчас на сервере:

# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.12.17.1 P-t-P:10.12.17.2 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

# route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
10.12.17.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
10.12.16.0 10.12.17.6 255.255.255.0 UG 0 0 0 tun0



Конфигурация сейчас на openwrt:

# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.12.17.6 P-t-P:10.12.17.5 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

# route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
10.12.16.64 0.0.0.0 255.255.255.192 U 0 0 0 br-lan
10.12.17.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0


Не работает. На сервере делаем ping 10.12.16.65 и видимо, что tcpdump -i tun0 icmp показывает пакет на сервере и не показывает уже на клиенте. Почему так?

Подозреваю, дело в openvpn, раньше делал похожим образом — работало. Теперь конфигурация openvpn другая.

На сервере:

port 1194
proto udp
mssfix 1300
fragment 1300
dev tun0
dev-node /dev/tun
persist-tun
persist-local-ip
comp-lzo
keepalive 10 120
verb 3
server 10.12.17.0 255.255.255.0
push «route 10.12.17.0 255.255.255.255»
client-to-client
# ^^^ не из-за него ли проблемы?
ca xxx
cert xxx
key xxx
dh xxx
persist-key
user nobody
group nogroup
max-clients 16


На клиенте:

client
remote xxx.xxxxx.xx
port 1194
mssfix 1300
fragment 1300
dev tun0
dev-node /dev/net/tun
ca xxx
cert xxx
key xxx
ns-cert-type server
persist-key
persist-tun
persist-local-ip
persist-remote-ip
comp-lzo
verb 3
user nobody
group nogroup
chroot /tmp


Подскажите что быстро сделать что здесь неправильно?

fk0
()

(полу)бесплатная электронная почта (нужна)

Форум — Security

Посоветуйте сервис бесплатной электронной почты. Бесплатный, или дешёвый, чтоб за 10 лет сразу заплатить, независимый ни от чего (свой держать — ни вариант ни разу) и безопасный (не google или mail.ru ;-). Ну и чтоб минимальная хоть защита от спама была... Раньше устраивал shell на бесплатных серверах. Но это не слишком безопасно, да и нет уж того. Да и удобнее бы ssh туда ходить и там читать, чем как-то ещё.

Типовые хостинг-провайдеры хотят от $1/мес — жаба давит $120 за 10 лет. Может посмотреть в сторону предлагающих «бесплатный хостинг», вроде byethost.

fk0
()

NFS, Debian (lenny+squeeze)

Форум — Admin

На работе использую NFS. Тут сервер перезагрузился. Всё висит...

В старые времена (sarge на сервере) — всё работало замечательно. При перезагрузке сервера можно было прозрачно работать дальше. Потом NFS стал как-то портится. То тормозил и «подвисал» непонятно из-за чего (и сейчас продолжает, при массовом обращении к множеству мелких файлов — секунд 30-60 повисит и дальше работает), то ещё чего. А теперь вот ещё и такая гадость.

Как сделать так, чтоб всё работало как раньше? Самбу не предлагать (винду рядом стоящую уже резетом перезагружаю). NFS же очень простая и хорошая система, как её и где испортили спрашивается, может в дебиане что-то не так, может альтернативный сервер (программу) поставить надо?

fk0
()

Перехват syscall gettimeofday — что за регистр r15 у пеньтиума???

Форум — Development

Поскольку мой пост об IDA тут сразу удаляют, IDA нифига не нашёл, и вообще дизассемблер забыл уже как там, то решил поступить, например, несколько проще. Да, datefudge и т.п. не срабатывает, ибо статиком линковано, например. Чё я сделал — написал вот такой вот говнокод, например:


#include <stddef.h>
#include <sys/time.h>
#include <sys/ptrace.h>
#include <asm/ptrace.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/syscall.h>
#include <linux/user.h>

#define ORIG_RAX 120
/* ORIG_RAX stores the number of syscall */

#define SYS_TIME 13
#define GETTIMEOFDAY 78
/* Machine specific syscall number is defined in ??? */
	
int main(int argc, char** argv)
{
pid_t child;
long orig_rax, eax;
int i;
struct user_regs_struct regs;
int status;
int insyscall = 0;

	child=fork();
	if(child==0) {
		ptrace(PTRACE_TRACEME, 0, NULL, NULL);
		execv(argv[1], &argv[2]);
		return 0;
	}

	i=0;
	while(1) {
		wait(&status);
		if(WIFEXITED(status)) break;

		orig_rax = ptrace(PTRACE_PEEKUSER, child, 4*ORIG_EAX, NULL);
		//printf("SYSCALL %d\n", orig_rax);

		if(orig_rax == GETTIMEOFDAY ) { /* Intercept SYS_TIME syscall */
			if(insyscall == 0) { /* Syscall entry */
				insyscall = 1;
				ptrace(PTRACE_GETREGS, child, 0, &regs);
			}
			else { /* Syscall exit */
				/* now ebx contains struct tv address */
				ptrace(PTRACE_POKEDATA, child,
					regs.bx + offsetof(struct timeval, tv_sec) - 0x10,
					0);

				i++;
			}
		}
		ptrace(PTRACE_SYSCALL, child, NULL, NULL);
	}

	fprintf(stderr, "last bx=%4.4x\n", regs.bx);
	fprintf(stderr, "exited, faked %u times.\n", i);
	return 0;
}

А к этому говнокоду прилагается ещё тестовая программка:


#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>

int main()
{
struct timeval tv;
	gettimeofday(&tv, NULL);
	printf("%4.4x, %u\n", &tv, tv.tv_sec);
	return 0;
}

Компилировать (по-ламирски...) gcc -I /usr/src/linux-headers-2.6.32-trunk-686/include -I /usr/src/linux-headers-2.6.32-trunk-common/include -I /usr/src/linux-headers-2.6.32-trunk-common/arch/x86/include fake.c -o fake && gcc test.c -o a.out

И потом запускать ./fake ./a.out — и вот такой вот вывод оно мне вот даёт, например:

bfd14a98, 0
last bx=bfd14aa8
exited, faked 1 times.

И тут видно, что struct timeval в test.c имеет например адрес bdf14a98, а после ptrace мы имеем в EBX на 0x10 больше. Сколько ни бился — ниасилил почему так.

Расскажите, откуда это 0x10 злосчастное берётся!

fk0
()

выбор видеокарты (ATI vs Nvidia) для linux

Форум — Desktop

http://www.ulmart.ru/goods/185142/ vs http://www.ulmart.ru/goods/193124/

Что лучше. Нужно 3д и нужен tv-out (принципиально!) пусть и не одновременно то и другое.

Где меньше проблем с драйверами в современных дистрибутивах, в частности debian?

По производительности, как я понимаю обе карты одинаково унылы. И, как я понимаю, это практически всё доступное (остальное ещё более уныло) из каталога ulmart. Если нет, то прошу ткнуть носом в более приличные карты, дающие композитный («колокольчик» или S-video) сигнал на выходе.

fk0
()

а почему после смены фотографии в форуме они не меняются?

Форум — Linux-org-ru

Сабж.

fk0
()

Санкт-Петербург, инженер-программист.

Форум — Job

ООО «ДефенГрупп Балт» (http://prosecurity.ru) требуется инженер-программист. Подразумевается постоянная работа, не удалённо, не freelance.

Организация конкурентноспособна на рынке труда, зарплата (приходите и договаривайтесь сами) — от 40-50т.р. Оформление согласно ТК РФ. ДМС — нет. Возможен неформальный испытательный срок с последующим увеличением оплаты труда.

Офис располагается по адресу: Санкт-Петербург, Менделеевская улица д. 9 (бизнес-центр «Менделеевский»), в районе метро Выборгская. Рабочее время примерно с ~10:00 до ~19:00.

Что требуется: *профессионально* *программировать* на языке C. Подразумевается опыт работы. Умение хотя бы работать в (командной строке) Unix, знание и опыт использования других языков программирования, средств программирования и отладки, систем контроля версий, наличие какого-то кругозора, позволяющего ориентироваться в существующих средствах разработки, прикладных программах, библиотеках... Требуются базовые знания современной электроники, чтобы понимать схему прибора при необходимости.

Задачи: программирование ЭВМ с ограниченными ресурсами без ОС, либо специализированной ОС (микроконтроллеров), возможно серверное ПО на Unix, возможно вспомогательное ПО для ПК (глубокого знания «визуального программирования» не требуется). Тематика работы: немного телекоммуникации, GSM, GPS, TCP/IP, звук, минимум математики.

fk0
()

LOR-эффект — это сколько?

Форум — Admin

Сколько соединений в секунду, примерно, испытывают сервера подвергающиеся LOR-эффекту?

fk0
()

LOR — бесполезен.

Форум — Admin

САбж.

fk0
()

Петербург: инженер-программист

Форум — Job

Требуется инженер-программист. Работа — только постоянная. Зарплата (приходите и договаривайтесь сами) средняя по рынку труда в данной отрасли. Условия работы — тоже средние. Офис — менделеевская улица д. 9 (бизнес-центр «Менделеевский»).

Что требуется: *профессионально* *программировать* на C, подразумевается опыт работы. Умение работать в Unix, знание и опыт использования других языков программирования, наличие какого-то кругозора, позволяющего ориентироваться в существующих средствах разработки, прикладных программах, библиотеках. Базовые знания современной электроники.

Задачи: программирование <del>микроконтроллеров</del> ЭВМ с ограниченными ресурсами без ОС, либо специализированной ОС, возможно немного серверное ПО на Unix, возможно вспомогательное ПО для ПК (глубокого знания «визуального программирования» не требуется). Тематика: немного телекоммуникации, GSM, GPS, немного звук, минимум математики.

Адрес для резюме: job@defen.org.ru.

fk0
()

Не могу написать ответ в форум!

Форум — Linux-org-ru
fk0
()

RSS подписка на новые темы